[LLVMdev] LLVM 3.2 on Xcode

Alexey Samsonov samsonov at google.com
Sat Dec 22 09:39:05 PST 2012


Hi, Richard!

On Fri, Dec 21, 2012 at 7:35 PM, Relph, Richard <Richard.Relph at amd.com>
 wrote:

> Different, but still failing (this time with Xcode 4.4…)
>
> /Users/rrelph/llvm/tot/xcode/bin/Debug/clang
> sanitizer_allocator_test.cc.i386.o sanitizer_common_test.cc.i386.o
> sanitizer_flags_test.cc.i386.o sanitizer_libc_test.cc.i386.o
> sanitizer_list_test.cc.i386.o sanitizer_printf_test.cc.i386.o
> sanitizer_stackdepot_test.cc.i386.o sanitizer_test_main.cc.i386.o
> gtest-all.cc.i386.o libRTSanitizerCommon.test.osx.a -o
> /Users/rrelph/llvm/tot/xcode/projects/compiler-rt/lib/sanitizer_common/tests/Sanitizer-i386-Test
> -lstdc++ -lpthread -m32
> clang: error: no such file or directory: 'libRTSanitizerCommon.test.osx.a'
> make: ***
> [/Users/rrelph/llvm/tot/xcode/projects/compiler-rt/lib/sanitizer_common/tests/Sanitizer-i386-Test]
> Error 1
> Command /bin/sh failed with exit code 2
>
> We usually use unix makefile generators on Mac, so Xcode build indeed may
be broken =/
Could you send build instructions so that I can reproduce and test this on
my Mac?



> Additionally, there are still the 8 functions declared noreturn in
> asan_report.cc that clang expects to "not return". These generate 16
> warnings during the ALL_BUILD build and 8 more warnings during the
> check-all build.
>

This looks like a known issue: see LLVM revision 163411 and its discussion
on llvm-commits list.
TL;DR: the compiler is wrong here: the functions are in fact noreturn,
because there is a local variable that has a noreturn destructor.
this is already fixed in new Clang, but not in your host compiler.

>
>  On Dec 21, 2012, at 12:13 AM, Alexey Samsonov <samsonov at google.com>
> wrote:
>
>  Hi Richard!
>
> On Thu, Dec 20, 2012 at 12:48 AM, Nick Kledzik <kledzik at apple.com> wrote:
>
>>  Those look like the linker is being passed the same .o file built
>> twice, ex:
>>   ../Objects-normal/x86_64/asan_globals_test.o
>>  ../lib/asan/tests/asan_globals_test.cc.asan.o
>>
>>  So, the symbols are colliding.  Something is set up wrong in the xcode
>> project.
>>
>>  -Nick
>>
>>   On Dec 19, 2012, at 9:48 AM, Relph, Richard wrote:
>>
>>  Following a blend of instructions on 3 web pages, I have succeeded in
>> getting LLVM 3.2 (with clang, extras, and compiler-rt) building - but not
>> testing - on Xcode. I used CMake 2.8.10 GUI to create the Xcode project
>> file. Below are my notes.
>>
>>  First, I believe CMake ends up setting things up so that Xcode has 1
>> warning after scanning the project having to do with hires images or some
>> such… it takes a long time to fix that up in a project as large as this,
>> but I'm not sure there's anything we can do about it.
>> Second, a build of the ALL_BUILD target in Xcode produces 16 warnings
>> about 8 functions declared noreturn, but without a expected
>> __builtin_unreachable() before the end of the function. (The first attempt
>> to build produced 2 errors, the first an unable to create directory error
>> for
>> runtime/libprofile/LLVM.build/Debug/profile_rt-static.build/Objects-normal/x86_64;
>> the second a libtool failure… both went away upon a rebuild.)
>> Third, a build of the check-all target produced 8 warnings about the 8
>> functions declared noreturn as for ALL_BUILD, and 6 or 7 "errors", mostly
>> from asan_mac_test.mm. After fixing up these "errors" (int vs. size_t
>> comparisons and malloc being assigned to volatile pointers), I got 372
>> duplicate symbol errors from this:
>>
>>  Ld
>> /Volumes/Shared/NewShared/llvm/3.2/xcode/projects/compiler-rt/lib/asan/tests/Debug/AsanTest
>> normal x86_64
>>     cd /Volumes/Shared/NewShared/llvm/3.2/source
>>     setenv MACOSX_DEPLOYMENT_TARGET 10.8
>>
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
>> -arch x86_64 -isysroot
>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk
>> -L/Volumes/Shared/NewShared/llvm/3.2/xcode/projects/compiler-rt/lib/asan/tests/Debug
>> -F/Volumes/Shared/NewShared/llvm/3.2/xcode/projects/compiler-rt/lib/asan/tests/Debug
>> -filelist
>> /Volumes/Shared/NewShared/llvm/3.2/xcode/projects/compiler-rt/lib/asan/tests/LLVM.build/Debug/AsanTest.build/Objects-normal/x86_64/AsanTest.LinkFileList
>> -mmacosx-version-min=10.8 -framework Foundation -Wl,-search_paths_first
>> -Wl,-headerpad_max_install_names -lpthread
>> /Volumes/Shared/NewShared/llvm/3.2/xcode/lib/Debug/libgtest.a
>> /Volumes/Shared/NewShared/llvm/3.2/xcode/lib/Debug/libgtest_main.a
>> /Volumes/Shared/NewShared/llvm/3.2/xcode/lib/Debug/libLLVMSupport.a
>> /Volumes/Shared/NewShared/llvm/3.2/xcode/lib/clang/3.2/lib/darwin/Debug/libclang_rt.asan_osx.a
>> /Volumes/Shared/NewShared/llvm/3.2/xcode/lib/Debug/libgtest.a
>> /Volumes/Shared/NewShared/llvm/3.2/xcode/lib/Debug/libLLVMSupport.a
>> -lpthread -fobjc-link-runtime
>> /Volumes/Shared/NewShared/llvm/3.2/source/../xcode/projects/compiler-rt/lib/asan/tests/asan_globals_test.cc.asan.o
>> /Volumes/Shared/NewShared/llvm/3.2/source/../xcode/projects/compiler-rt/lib/asan/tests/asan_test.cc.asan.o
>> /Volumes/Shared/NewShared/llvm/3.2/source/../xcode/projects/compiler-rt/lib/asan/tests/asan_mac_test.mm.asan.o
>> -o
>> /Volumes/Shared/NewShared/llvm/3.2/xcode/projects/compiler-rt/lib/asan/tests/Debug/AsanTest
>>
>>  duplicate symbol __Z11GlobalsTesti in:
>>
>> /Volumes/Shared/NewShared/llvm/3.2/xcode/projects/compiler-rt/lib/asan/tests/LLVM.build/Debug/AsanTest.build/Objects-normal/x86_64/asan_globals_test.o
>>
>> /Volumes/Shared/NewShared/llvm/3.2/source/../xcode/projects/compiler-rt/lib/asan/tests/asan_globals_test.cc.asan.o
>> duplicate symbol _kStartupStr in:
>>
>> /Volumes/Shared/NewShared/llvm/3.2/xcode/projects/compiler-rt/lib/asan/tests/LLVM.build/Debug/AsanTest.build/Objects-normal/x86_64/asan_mac_test.o
>>
>> /Volumes/Shared/NewShared/llvm/3.2/source/../xcode/projects/compiler-rt/lib/asan/tests/asan_mac_test.mm.asan.o
>> and 370 more…
>>
>>   Recently the way we build ASan unit tests has changed. Could you
> please check if your XCode build works for the trunk?
>
>>  _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>>
>
>
>  --
> Alexey Samsonov, MSK
>
>
>


-- 
Alexey Samsonov, MSK
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121222/55be0f11/attachment.html>


More information about the llvm-dev mailing list