[llvm-commits] [PATCH] Shared library for LLVM (issue198059)
Chris Lattner
clattner at apple.com
Wed Feb 17 11:38:40 PST 2010
On Feb 17, 2010, at 11:31 AM, Jeffrey Yasskin wrote:
> Ping?
This looks fine to me (though I can't review the lit changes), please name it llvm/tools/llvm-shlib though. FWIW, I'd rather get this in sooner rather than later in case any issues pop up. Would it also be possible to get a single test to verify that the library is working?
-Chris
>
> On Tue, Feb 9, 2010 at 9:58 AM, Jeffrey Yasskin <jyasskin at google.com> wrote:
>> I've fixed the llvm-config problem:
>> http://codereview.appspot.com/download/issue198059_5012.diff
>>
>> On Fri, Feb 5, 2010 at 2:22 PM, <jyasskin at gmail.com> wrote:
>>> Reviewers: llvm-commits_cs.uiuc.edu,
>>>
>>> Message:
>>> We've had requests from packagers in the Unladen Swallow merge PEP that
>>> we link shared against LLVM instead of statically. This patch builds a
>>> libLLVM2.7svn.(so|dylib) and adds an --enable-shared configure flag to
>>> have the tools linked shared. (2.7svn is just $(LLVMVersion) so it'll
>>> change to "2.7" in the release.)
>>>
>>> On my mac laptop, libLLVM2.7svn.dylib is 39MB, and opt (for example) is
>>> 15M static vs 440K shared.
>>>
>>> I know of two things that are less than ideal here:
>>> 1) llvm-config gets rebuilt on the second build from an empty objdir.
>>> It's noticing that libLLVM.dylib got created after it did and might have
>>> dependencies. I'm looking into how to fix this.
>>> 2) The library doesn't include any version information. Since we expect
>>> to break the ABI with every release, I don't expect this to be much of a
>>> problem. If we do release a compatible 2.7.1, we may be able to hack its
>>> library to work with binaries compiled against 2.7.0, or we can just ask
>>> them to recompile. I'm hoping to get a real packaging expert to look at
>>> this for the 2.8 release.
>>>
>>> Current patch at
>>> http://codereview.appspot.com/download/issue198059_3001.diff.
>>>
>>> Description:
>>> We've had requests from packagers in the Unladen Swallow merge PEP that
>>> we link shared against an LLVM instead of statically. This patch builds
>>> a libLLVM2.7svn.(so|dylib) and adds an --enable-shared configure flag to
>>> have the tools linked shared. (2.7svn is just $(LLVMVersion) so it'll
>>> change to "2.7" in the release.)
>>>
>>> On my mac laptop, libLLVM2.7svn.dylib is 39MB, and opt (for example) is
>>> 15M static vs 440K shared.
>>>
>>> I know of two things that are less than ideal here:
>>> 1) llvm-config gets rebuilt on the second build from an empty objdir.
>>> It's noticing that libLLVM.dylib got created after it did and might have
>>> dependencies. I'm looking into how to fix this.
>>> 2) The library doesn't include any version information. Since we expect
>>> to break the ABI with every release, I don't expect this to be much of a
>>> problem. If we do release a compatible 2.7.1, we may be able to hack its
>>> library to work with binaries compiled against 2.7.0, or we can just ask
>>> them to recompile. I'm hoping to get a real packaging expert to look at
>>> this for the 2.8 release.
>>>
>>> Fixes http://llvm.org/PR3201.
>>>
>>> Please review this at http://codereview.appspot.com/198059/show
>>>
>>> Affected files:
>>> M Makefile
>>> M Makefile.config.in
>>> M Makefile.rules
>>> M autoconf/configure.ac
>>> M configure
>>> M test/Makefile
>>> M test/Unit/lit.cfg
>>> M test/Unit/lit.site.cfg.in
>>> A tools/shlib/Makefile
>>> M unittests/Makefile.unittest
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>
>>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list