Disregard the Python errors, that was because of me. (The warnings remain, 
though.)

Le 2013-11-23 à 11:58:33, Félix Cloutier <[email protected]> a écrit :

> Right, I forgot to delete llvm-build.
> 
> I deleted llvm-build and made a clean build, but now I get different linker 
> errors. First, I get about 50 warnings that there is direct access to several 
> weak symbols from lldb-platform:
> 
> ld: warning: direct access in (anonymous 
> namespace)::ASTInfoCollector::ReadLanguageOptions(clang::LangOptions const&, 
> bool) to global weak symbol 
> llvm::IntrusiveRefCntPtr<clang::TargetInfo>::getPtr() const means the weak 
> symbol cannot be overridden at runtime. This was likely caused by different 
> translation units being compiled with different visibility settings.
> ld: warning: direct access in (anonymous 
> namespace)::ASTInfoCollector::ReadTargetOptions(clang::TargetOptions const&, 
> bool) to global weak symbol 
> llvm::IntrusiveRefCntPtr<clang::TargetInfo>::getPtr() const means the weak 
> symbol cannot be overridden at runtime. This was likely caused by different 
> translation units being compiled with different visibility settings.
> ld: warning: direct access in (anonymous 
> namespace)::ASTInfoCollector::ReadTargetOptions(clang::TargetOptions const&, 
> bool) to global weak symbol 
> llvm::IntrusiveRefCntPtr<clang::TargetInfo>::getPtr() const means the weak 
> symbol cannot be overridden at runtime. This was likely caused by different 
> translation units being compiled with different visibility settings.
> [...]
> 
> lldb-platform still compiles (although this looks very odd), but the LLDB 
> framework doesn't compile because symbols used by LLDBWrapPython.cpp are 
> apparently not found (54 of them):
> 
>   "lldb::SBDebugger::GetSummaryForType(lldb::SBTypeNameSpecifier)", 
> referenced from:
>       __wrap_SBDebugger_GetSummaryForType in LLDBWrapPython.o
>   "lldb::SBDebugger::GetSyntheticForType(lldb::SBTypeNameSpecifier)", 
> referenced from:
>       __wrap_SBDebugger_GetSyntheticForType in LLDBWrapPython.o
>   "lldb::SBTypeSummary::GetOptions()", referenced from:
>       __wrap_SBTypeSummary_GetOptions in LLDBWrapPython.o
>   "lldb::SBTypeSummary::SetOptions(unsigned int)", referenced from:
>       __wrap_SBTypeSummary_SetOptions in LLDBWrapPython.o
>   "lldb::SBTypeSummary::GetDescription(lldb::SBStream&, 
> lldb::DescriptionLevel)", referenced from:
>       __wrap_SBTypeSummary_GetDescription in LLDBWrapPython.o
>       lldb_SBTypeSummary___str__(lldb::SBTypeSummary*) in LLDBWrapPython.o
> [...]
> 
> Any idea?
> 
> Le 2013-11-23 à 00:05:34, Jason Molenda <[email protected]> a écrit :
> 
>> I added --enable-cxx11 to build-llvm.pl, removed my existing llvm-build 
>> directory, did a clean build with Xcode and I got a successful link.
>> 
>> The problem came up due to the changes in r195239.  When included in C++11 
>> mode, SmallPtrSet.h calls a method in SmallPtrSet.cpp (in llvm).  llvm was 
>> being built in C++03 mode so the additional method wasn't emitted for 
>> SmallPtrSet.o; lldb included SmallPtrSet.h in C++11 mode so a reference to 
>> that function was emitted.
>> 
>> (just to state the obvious - I'm sure we were all on the same page here)
>> 
>> 
>> 
>> On Nov 22, 2013, at 6:42 PM, Félix Cloutier <[email protected]> wrote:
>> 
>>> I'm building from Xcode, so I guess I need to change scripts/build-llvm.pl. 
>>> Xcode reports this when I build:
>>> 
>>> % cd 
>>> '/Users/felix/Projets/OpenSource/lldb/llvm-build/Release+Asserts/x86_64' && 
>>> '/Users/felix/Projets/OpenSource/lldb/llvm/configure' 
>>> --enable-targets=x86_64,arm --disable-terminfo --enable-cxx11 
>>> --enable-optimized --enable-assertions --enable-libcpp 
>>> --build=x86_64-apple-darwin11
>>> 
>>> --enable-cxx11 is there, but even with that build completing successfully I 
>>> still get the same error.
>>> 
>>> Félix
>>> 
>>> Le 2013-11-22 à 04:15:21, Arnaud A. de Grandmaison <[email protected]> 
>>> a écrit :
>>> 
>>>> On 11/22/2013 07:56 AM, Félix Cloutier wrote:
>>>>> Hello people,
>>>>> 
>>>>> I got the lldb source fresh from SVN, and even after doing the little 
>>>>> Python dance for Mavericks (setting SDKROOT to macosx10.8 like Jason 
>>>>> Molenda suggested yesterday), I still get compile errors. The linker 
>>>>> bails out with this when it tries to link lldb-platform:
>>>>> 
>>>>> Undefined symbols for architecture x86_64:
>>>>>  "llvm::SmallPtrSetImpl::SmallPtrSetImpl(void const**, unsigned int, 
>>>>> llvm::SmallPtrSetImpl&&)", referenced from:
>>>>>      llvm::SmallPtrSet<DWARFDebugInfoEntry const*, 
>>>>> 4u>::SmallPtrSet(llvm::SmallPtrSet<DWARFDebugInfoEntry const*, 4u>&&) in 
>>>>> liblldb-core.a(SymbolFileDWARF.o)
>>>>> ld: symbol(s) not found for architecture x86_64
>>>>> clang: error: linker command failed with exit code 1 (use -v to see 
>>>>> invocation)
>>>>> 
>>>>> Looking deeper, I found that it is declared like that:
>>>>> 
>>>>> #if LLVM_HAS_RVALUE_REFERENCES
>>>>>  SmallPtrSetImpl(const void **SmallStorage, unsigned SmallSize,
>>>>>                  SmallPtrSetImpl &&that);
>>>>> #endif
>>>>> 
>>>>> Could it be that llvm is built without LLVM_HAS_RVALUE_REFERENCES but 
>>>>> lldb is built with it?
>>>>> 
>>>> 
>>>> Hi Felix,
>>>> 
>>>> I also got this problem. It comes from the fact that lldb is built in 
>>>> c++11 mode (required), whereas your llvm codebase is built without. You 
>>>> should compile llvm in c++11 as well, or some functions will simply not be 
>>>> in the libraries.
>>>> 
>>>> If your are using cmake, I submitted (but diid not commit) a patch to 
>>>> optionally enable c++11 building with cmake a few hours ago on the 
>>>> llvm-commit list. For an autoconf build, there is an --enable-cxx11 to 
>>>> configure.
>>>> 
>>>> Cheers,
>>>> --
>>>> Arnaud
>>>> 
>>>>> Félix
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> lldb-dev mailing list
>>>>> 
>>>>> [email protected]
>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>>> 
>>>> 
>>>> -- 
>>>> Arnaud A. de Grandmaison
>>>> 
>>> 
>>> _______________________________________________
>>> lldb-dev mailing list
>>> [email protected]
>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>> 
> 

_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to