[llvm-commits] [compiler-rt] r163412 - in /compiler-rt/trunk: Makefile make/lib_info.mk make/options.mk
Alexander Potapenko
glider at google.com
Tue Sep 11 01:50:24 PDT 2012
Ping?
On Mon, Sep 10, 2012 at 1:31 PM, Alexander Potapenko <glider at google.com> wrote:
> BTW is libcompiler_rt.dylib intentionally placed under
> llvm-build/tools/clang/... instead of llvm-build/lib/clang/... (the
> place where libcompiler_rt.a resides)?
>
> On Sun, Sep 9, 2012 at 11:28 AM, Alexey Samsonov <samsonov at google.com> wrote:
>>
>>
>> On Fri, Sep 7, 2012 at 11:57 PM, Daniel Dunbar <daniel at zuster.org> wrote:
>>>
>>> Author: ddunbar
>>> Date: Fri Sep 7 14:57:23 2012
>>> New Revision: 163412
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=163412&view=rev
>>> Log:
>>> build: Add support for building dylibs.
>>>
>>> Modified:
>>> compiler-rt/trunk/Makefile
>>> compiler-rt/trunk/make/lib_info.mk
>>> compiler-rt/trunk/make/options.mk
>>>
>>> Modified: compiler-rt/trunk/Makefile
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/Makefile?rev=163412&r1=163411&r2=163412&view=diff
>>>
>>> ==============================================================================
>>> --- compiler-rt/trunk/Makefile (original)
>>> +++ compiler-rt/trunk/Makefile Fri Sep 7 14:57:23 2012
>>> @@ -117,7 +117,7 @@
>>> $(call Set,Tmp.ObjPath,$(ProjObjRoot)/$(Tmp.Name))
>>>
>>> # Top-Level Platform Target
>>> -$(Tmp.Name):: $(Tmp.Configs:%=$(Tmp.ObjPath)/%/libcompiler_rt.a)
>>> +$(Tmp.Name):: $(Tmp.Configs:%=$(Tmp.Name)-%)
>>> .PHONY: $(Tmp.Name)
>>>
>>> clean::
>>> @@ -131,6 +131,13 @@
>>> define PerPlatformConfig_template
>>> $(call Set,Tmp.Config,$(1))
>>> $(call Set,Tmp.ObjPath,$(ProjObjRoot)/$(Tmp.Name)/$(Tmp.Config))
>>> +$(call Set,Tmp.SHARED_LIBRARY,$(strip \
>>> + $(call GetCNAVar,SHARED_LIBRARY,$(Tmp.Key),$(Tmp.Config),$(Tmp.Arch))))
>>> +
>>> +# Compute the library suffix.
>>> +$(if $(call streq,1,$(Tmp.SHARED_LIBRARY)),
>>> + $(call Set,Tmp.LibrarySuffix,dylib),
>>> + $(call Set,Tmp.LibrarySuffix,a))
>>>
>>> # Compute the archs to build, depending on whether this is a universal
>>> build or
>>> # not.
>>> @@ -142,8 +149,8 @@
>>> $(call
>>> VarOrDefault,$(Tmp.Key).Arch.$(Tmp.Config),$($(Tmp.Key).Arch))))
>>>
>>> # Copy or lipo to create the per-config library.
>>> -$(call
>>> Set,Tmp.Inputs,$(Tmp.ArchsToBuild:%=$(Tmp.ObjPath)/%/libcompiler_rt.a))
>>> -$(Tmp.ObjPath)/libcompiler_rt.a: $(Tmp.Inputs) $(Tmp.ObjPath)/.dir
>>> +$(call
>>> Set,Tmp.Inputs,$(Tmp.ArchsToBuild:%=$(Tmp.ObjPath)/%/libcompiler_rt.$(Tmp.LibrarySuffix)))
>>> +$(Tmp.ObjPath)/libcompiler_rt.$(Tmp.LibrarySuffix): $(Tmp.Inputs)
>>> $(Tmp.ObjPath)/.dir
>>> $(Summary) " FINAL-ARCHIVE: $(Tmp.Name)/$(Tmp.Config): $$@"
>>> -$(Verb) $(RM) $$@
>>> $(if $(call streq,1,$(words $(Tmp.ArchsToBuild))), \
>>> @@ -152,7 +159,7 @@
>>> .PRECIOUS: $(Tmp.ObjPath)/.dir
>>>
>>> # Per-Config Targets
>>> -$(Tmp.Name)-$(Tmp.Config):: $(Tmp.ObjPath)/libcompiler_rt.a
>>> +$(Tmp.Name)-$(Tmp.Config)::
>>> $(Tmp.ObjPath)/libcompiler_rt.$(Tmp.LibrarySuffix)
>>> .PHONY: $(Tmp.Name)-$(Tmp.Config)
>>>
>>> # Per-Config-Arch Libraries
>>> @@ -172,10 +179,21 @@
>>> $(call GetCNAVar,AR,$(Tmp.Key),$(Tmp.Config),$(Tmp.Arch))))
>>> $(call Set,Tmp.ARFLAGS,$(strip \
>>> $(call GetCNAVar,ARFLAGS,$(Tmp.Key),$(Tmp.Config),$(Tmp.Arch))))
>>> +$(call Set,Tmp.CC,$(strip \
>>> + $(call GetCNAVar,CC,$(Tmp.Key),$(Tmp.Config),$(Tmp.Arch))))
>>> +$(call Set,Tmp.LDFLAGS,$(strip \
>>> + $(call GetCNAVar,LDFLAGS,$(Tmp.Key),$(Tmp.Config),$(Tmp.Arch))))
>>> $(call Set,Tmp.RANLIB,$(strip \
>>> $(call GetCNAVar,RANLIB,$(Tmp.Key),$(Tmp.Config),$(Tmp.Arch))))
>>> $(call Set,Tmp.RANLIBFLAGS,$(strip \
>>> $(call GetCNAVar,RANLIBFLAGS,$(Tmp.Key),$(Tmp.Config),$(Tmp.Arch))))
>>> +$(call Set,Tmp.SHARED_LIBRARY,$(strip \
>>> + $(call GetCNAVar,SHARED_LIBRARY,$(Tmp.Key),$(Tmp.Config),$(Tmp.Arch))))
>>> +
>>> +# Compute the library suffix.
>>> +$(if $(call streq,1,$(Tmp.SHARED_LIBRARY)),
>>> + $(call Set,Tmp.LibrarySuffix,dylib),
>>> + $(call Set,Tmp.LibrarySuffix,a))
>>>
>>> # Compute the object inputs for this library.
>>> $(call Set,Tmp.Inputs,\
>>> @@ -188,10 +206,14 @@
>>> -$(Verb) $(RM) $$@
>>> $(Verb) $(Tmp.AR) $(Tmp.ARFLAGS) $$@ $(Tmp.Inputs)
>>> $(Verb) $(Tmp.RANLIB) $(Tmp.RANLIBFLAGS) $$@
>>> +$(Tmp.ObjPath)/libcompiler_rt.dylib: $(Tmp.Inputs) $(Tmp.ObjPath)/.dir
>>> + $(Summary) " DYLIB: $(Tmp.Name)/$(Tmp.Config)/$(Tmp.Arch): $$@"
>>> + $(Verb) $(Tmp.CC) -arch $(Tmp.Arch) -dynamiclib -o $$@ \
>>> + $(Tmp.Inputs) $(Tmp.LDFLAGS)
>>> .PRECIOUS: $(Tmp.ObjPath)/.dir
>>>
>>> # Per-Config-Arch Targets
>>> -$(Tmp.Name)-$(Tmp.Config)-$(Tmp.Arch):: $(Tmp.ObjPath)/libcompiler_rt.a
>>> +$(Tmp.Name)-$(Tmp.Config)-$(Tmp.Arch)::
>>> $(Tmp.ObjPath)/libcompiler_rt.$(Tmp.LibrarySuffix)
>>> .PHONY: $(Tmp.Name)-$(Tmp.Config)-$(Tmp.Arch)
>>>
>>> # Per-Config-Arch-SubDir Objects
>>>
>>> Modified: compiler-rt/trunk/make/lib_info.mk
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/make/lib_info.mk?rev=163412&r1=163411&r2=163412&view=diff
>>>
>>> ==============================================================================
>>> --- compiler-rt/trunk/make/lib_info.mk (original)
>>> +++ compiler-rt/trunk/make/lib_info.mk Fri Sep 7 14:57:23 2012
>>> @@ -53,8 +53,7 @@
>>>
>>> # The names of all the available options.
>>> AvailableOptions := AR ARFLAGS \
>>> - CC CFLAGS FUNCTIONS OPTIMIZED \
>>> + CC CFLAGS LDFLAGS FUNCTIONS OPTIMIZED \
>>> RANLIB RANLIBFLAGS \
>>> - VISIBILITY_HIDDEN \
>>> - KERNEL_USE \
>>> - STRIP LIPO
>>> + VISIBILITY_HIDDEN KERNEL_USE \
>>> + SHARED_LIBRARY STRIP LIPO
>>>
>>> Modified: compiler-rt/trunk/make/options.mk
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/make/options.mk?rev=163412&r1=163411&r2=163412&view=diff
>>>
>>> ==============================================================================
>>> --- compiler-rt/trunk/make/options.mk (original)
>>> +++ compiler-rt/trunk/make/options.mk Fri Sep 7 14:57:23 2012
>>> @@ -23,11 +23,20 @@
>>> # default.
>>> VISIBILITY_HIDDEN := 0
>>>
>>> +# Whether the library is being built for kernel use.
>>> +KERNEL_USE := 0
>>> +
>>> +# Whether the library should be built as a shared object.
>>> +SHARED_LIBRARY := 0
>>> +
>>> # Miscellaneous tools.
>>>
>>> AR := ar
>>> # FIXME: Remove these pipes once ranlib errors are fixed.
>>> ARFLAGS := cru 2> /dev/null
>>> +
>>> +LDFLAGS :=
>>> +
>>> RANLIB := ranlib
>>> # FIXME: Remove these pipes once ranlib errors are fixed.
>>> RANLIBFLAGS := 2> /dev/null
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>>
>>
>> We get the following build error on our Mac 10.6 bot:
>> <...>
>>
>> DYLIB: clang_darwin/asan_osx_dynamic/i386:
>> /Users/buildbot/src/llvm-buildbot/slave/mac10.6/build/llvm-build/tools/clang/runtime/compiler-rt/clang_darwin/asan_osx_dynamic/i386/libcompiler_rt.dylib
>> DYLIB: clang_darwin/asan_osx_dynamic/x86_64:
>> /Users/buildbot/src/llvm-buildbot/slave/mac10.6/build/llvm-build/tools/clang/runtime/compiler-rt/clang_darwin/asan_osx_dynamic/x86_64/libcompiler_rt.dylib
>> ld: library not found for -lc++
>> clang: error: linker command failed with exit code 1 (use -v to see
>> invocation)
>>
>> --
>> Alexey Samsonov, MSK
>>
>
>
>
> --
> Alexander Potapenko
> Software Engineer
> Google Moscow
--
Alexander Potapenko
Software Engineer
Google Moscow
More information about the llvm-commits
mailing list