[llvm-dev] darwin bootstrap failure

Aaron Ballman via llvm-dev llvm-dev at lists.llvm.org
Sun Oct 15 07:35:56 PDT 2017


On Sat, Oct 14, 2017 at 11:25 AM, Don Hinton via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> Hi Jack:
>
> Yes, I was just looking at that.  Seems like TableGen wasn't done along with
> the rest of llvm.  I'll work up a complete patch shortly.

This also broke the build for MSVC when doing a debug build (though no
builder seems to be picking up the failure!). After working around a
handful of link errors, I came to one that's going to require more
understanding of LLVM's tablegen than I have.

Error LNK2019 unresolved external symbol "public: void __cdecl
`anonymous namespace'::MatchableInfo::dump(void)const "
(?dump at MatchableInfo@?A0xf4f1c304@@QEBAXXZ) referenced in function
"public: void __cdecl `anonymous
namespace'::AsmMatcherEmitter::run(class llvm::raw_ostream &)"
(?run at AsmMatcherEmitter@?A0xf4f1c304@@QEAAXAEAVraw_ostream at llvm@@@Z)
llvm-tblgen D:\llvm\2017\utils\TableGen\AsmMatcherEmitter.obj 1

Since this has been broken for over a day and the fixes are
nontrivial, I've reverted your commit (r315590) in r315854. Hopefully
this doesn't cause you too many problems!

~Aaron

>
> Btw, I'm curious how this happened.  Do you have a stale CMakeCache.txt by
> any chance?  You might check the value for LLVM_ENABLE_DUMP and see if it's
> consistent.
>
> Again, I'll gen up a complete patch shortly -- sorry for delay, had to walk
> my dog first...
>
> thanks...
> don
>
> On Sat, Oct 14, 2017 at 8:06 AM, Jack Howarth
> <howarth.mailing.lists at gmail.com> wrote:
>>
>>
>>
>> On Sat, Oct 14, 2017 at 10:25 AM, Don Hinton <hintonda at gmail.com> wrote:
>>>
>>> Hi Jack:
>>>
>>> Looks like I missed this one in my recent change.
>>>
>>> Please let me know if this solves your problem:
>>>
>>> $ git diff
>>> diff --git a/utils/TableGen/InfoByHwMode.cpp
>>> b/utils/TableGen/InfoByHwMode.cpp
>>> index 7e1e1864356..8d3636432aa 100644
>>> --- a/utils/TableGen/InfoByHwMode.cpp
>>> +++ b/utils/TableGen/InfoByHwMode.cpp
>>> @@ -98,14 +98,16 @@ void ValueTypeByHwMode::writeToStream(raw_ostream
>>> &OS) const {
>>>    OS << '}';
>>>  }
>>>
>>> +#ifdef LLVM_ENABLE_DUMP
>>>  LLVM_DUMP_METHOD
>>>  void ValueTypeByHwMode::dump() const {
>>>    dbgs() << *this << '\n';
>>>  }
>>> +#endif
>>>
>>>  ValueTypeByHwMode llvm::getValueTypeByHwMode(Record *Rec,
>>>                                               const CodeGenHwModes &CGH)
>>> {
>>> -#ifndef NDEBUG
>>> +#ifdef LLVM_ENABLE_DUMP
>>>    if (!Rec->isSubClassOf("ValueType"))
>>>      Rec->dump();
>>>  #endif
>>>
>>>
>>> thanks...
>>> don
>>>
>>
>> The patch seems to be incomplete as it moves the failure to...
>>
>> [  6%] Linking CXX executable ../../bin/llvm-tblgen
>> cd /sw/src/fink.build/llvm60-6.0.0-1/build/stage1/utils/TableGen &&
>> /sw/bin/cmake -E cmake_link_script CMakeFiles/llvm-tblgen.dir/link.txt
>> --verbose=1
>> /sw/src/fink.build/llvm60-6.0.0-1/opt-bin/ccclang++  -fno-common -fPIC
>> -fvisibility-inlines-hidden -Werror=date-time
>> -Werror=unguarded-availability-new -std=c++11 -Wall -W -Wno-unused-parameter
>> -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic
>> -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor
>> -Wdelete-non-virtual-dtor -Wstring-conversion -O3 -Wl,-search_paths_first
>> -Wl,-headerpad_max_install_names  -L/sw/lib  -Wl,-dead_strip
>> CMakeFiles/obj.llvm-tblgen.dir/AsmMatcherEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/AsmWriterEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/AsmWriterInst.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/Attributes.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/CallingConvEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/CodeEmitterGen.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/CodeGenHwModes.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/CodeGenInstruction.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/CodeGenMapTable.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/CodeGenRegisters.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/CodeGenSchedule.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/CodeGenTarget.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/DAGISelEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherGen.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcher.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/DisassemblerEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/FastISelEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/FixedLenDecoderEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/GlobalISelEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/InfoByHwMode.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/InstrInfoEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/IntrinsicEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/OptParserEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/RegisterBankEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/RegisterInfoEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/SearchableTableEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/SubtargetEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/SubtargetFeatureInfo.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/TableGen.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/Types.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/X86DisassemblerTables.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/X86EVEX2VEXTablesEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/X86FoldTablesEmitter.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/X86ModRMFilters.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/X86RecognizableInstr.cpp.o
>> CMakeFiles/obj.llvm-tblgen.dir/CTagsEmitter.cpp.o  -o ../../bin/llvm-tblgen
>> -Wl,-rpath, at loader_path/../lib ../../lib/libLLVMSupport.a
>> ../../lib/libLLVMTableGen.a ../../lib/libLLVMSupport.a -lcurses -lz -lm
>> ../../lib/libLLVMDemangle.a
>> Undefined symbols for architecture x86_64:
>>   "llvm::SubtargetFeatureInfo::dump() const", referenced from:
>>       (anonymous namespace)::AsmMatcherInfo::buildInfo() in
>> AsmMatcherEmitter.cpp.o
>>   "(anonymous namespace)::MatchableInfo::dump() const", referenced from:
>>       (anonymous namespace)::AsmMatcherEmitter::run(llvm::raw_ostream&) in
>> AsmMatcherEmitter.cpp.o
>> ld: symbol(s) not found for architecture x86_64
>> clang: error: linker command failed with exit code 1 (use -v to see
>> invocation)
>> make[2]: *** [bin/llvm-tblgen] Error 1
>> make[1]: *** [utils/TableGen/CMakeFiles/llvm-tblgen.dir/all] Error 2
>> make: *** [all] Error 2
>>
>>         Jack
>>
>>>
>>>
>>> On Sat, Oct 14, 2017 at 6:06 AM, Jack Howarth via llvm-dev
>>> <llvm-dev at lists.llvm.org> wrote:
>>>>
>>>> Is anyone else seeing this bootstrap failure on current svn trunk?
>>>>
>>>> [  6%] Linking CXX executable ../../bin/llvm-tblgen
>>>> cd /sw/src/fink.build/llvm60-6.0.0-1/build/stage1/utils/TableGen &&
>>>> /sw/bin/cmake -E cmake_link_script CMakeFiles/llvm-tblgen.dir/link.txt
>>>> --verbose=1
>>>> /sw/src/fink.build/llvm60-6.0.0-1/opt-bin/ccclang++  -fno-common -fPIC
>>>> -fvisibility-inlines-hidden -Werror=date-time
>>>> -Werror=unguarded-availability-new -std=c++11 -Wall -W -Wno-unused-parameter
>>>> -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic
>>>> -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor
>>>> -Wdelete-non-virtual-dtor -Wstring-conversion -O3 -Wl,-search_paths_first
>>>> -Wl,-headerpad_max_install_names  -L/sw/lib  -Wl,-dead_strip
>>>> CMakeFiles/obj.llvm-tblgen.dir/AsmMatcherEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/AsmWriterEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/AsmWriterInst.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/Attributes.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/CallingConvEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/CodeEmitterGen.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/CodeGenHwModes.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/CodeGenInstruction.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/CodeGenMapTable.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/CodeGenRegisters.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/CodeGenSchedule.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/CodeGenTarget.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/DAGISelEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherGen.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcher.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/DisassemblerEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/FastISelEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/FixedLenDecoderEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/GlobalISelEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/InfoByHwMode.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/InstrInfoEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/IntrinsicEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/OptParserEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/RegisterBankEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/RegisterInfoEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/SearchableTableEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/SubtargetEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/SubtargetFeatureInfo.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/TableGen.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/Types.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/X86DisassemblerTables.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/X86EVEX2VEXTablesEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/X86FoldTablesEmitter.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/X86ModRMFilters.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/X86RecognizableInstr.cpp.o
>>>> CMakeFiles/obj.llvm-tblgen.dir/CTagsEmitter.cpp.o  -o ../../bin/llvm-tblgen
>>>> -Wl,-rpath, at loader_path/../lib ../../lib/libLLVMSupport.a
>>>> ../../lib/libLLVMTableGen.a ../../lib/libLLVMSupport.a -lcurses -lz -lm
>>>> ../../lib/libLLVMDemangle.a
>>>> Undefined symbols for architecture x86_64:
>>>>   "llvm::Record::dump() const", referenced from:
>>>>       llvm::getValueTypeByHwMode(llvm::Record*, llvm::CodeGenHwModes
>>>> const&) in InfoByHwMode.cpp.o
>>>>   "llvm::SubtargetFeatureInfo::dump() const", referenced from:
>>>>       (anonymous namespace)::AsmMatcherInfo::buildInfo() in
>>>> AsmMatcherEmitter.cpp.o
>>>>   "(anonymous namespace)::MatchableInfo::dump() const", referenced from:
>>>>       (anonymous namespace)::AsmMatcherEmitter::run(llvm::raw_ostream&)
>>>> in AsmMatcherEmitter.cpp.o
>>>> ld: symbol(s) not found for architecture x86_64
>>>> clang: error: linker command failed with exit code 1 (use -v to see
>>>> invocation)
>>>> make[2]: *** [bin/llvm-tblgen] Error 1
>>>> make[1]: *** [utils/TableGen/CMakeFiles/llvm-tblgen.dir/all] Error 2
>>>> make: *** [all] Error 2
>>>>
>>>> This is on x86_64-apple-darwin16 with Xcode 9.0.
>>>>          Jack
>>>>
>>>> _______________________________________________
>>>> LLVM Developers mailing list
>>>> llvm-dev at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>>>
>>>
>>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>


More information about the llvm-dev mailing list