[llvm-dev] darwin bootstrap failure

Jack Howarth via llvm-dev llvm-dev at lists.llvm.org
Sat Oct 14 13:32:48 PDT 2017


On Sat, Oct 14, 2017 at 4:22 PM, Don Hinton <hintonda at gmail.com> wrote:

> Hi Jack:
>
> The only way I could reproduce the problem you are seeing was to rerun
> cmake with -DCMAKE_BUILD_TYPE=Debug in a build directory previously
> configured with -DCMAKE_BUILD_TYPE=Release.  I can fix that, but not sure
> if it's what you are seeing.
>
> If this isn't your case, could you send me the actual commands you ran?
>
> In the meantime, you can add -DLLVM_FOURCE_ENABLE_DUMP=ON to your cmake
> invocation which should guarantee LLVM_ENABLE_DUMP is defined.
>
> hth...
> don
>
>
Don,
    Did you try a build with
-DLLVM_ENABLE_ASSERTIONS:BOOL=OFF -DCMAKE_BUILD_TYPE:STRING=Release?
        Jack

On Sat, Oct 14, 2017 at 9:36 AM, Jack Howarth <howarth.mailing.lists at gmail.
> com> wrote:
>
>>
>>
>> On Sat, Oct 14, 2017 at 11:38 AM, Don Hinton <hintonda at gmail.com> wrote:
>>
>>> Sorry, LLVM_FORCE_ENABLE_DUMP is the variable, which is used along with
>>> LLVM_ENABLE_ASSERTIONS to set LLVM_ENABLE_DUMP.
>>>
>>> Again, I'm working on a fix, but could you also provide your cmake
>>> command?  Looks like we aren't handling your use case correctly.
>>>
>>> thanks..
>>> don
>>>
>>
>> % grep -R LLVM_FORCE_ENABLE_DUMP *
>> CMakeCache.txt:LLVM_FORCE_ENABLE_DUMP:BOOL=OFF
>> CMakeCache.txt.orig:LLVM_FORCE_ENABLE_DUMP:BOOL=OFF
>> include/llvm/Config/llvm-config.h:/* Defined in debug builds and release
>> builds if LLVM_FORCE_ENABLE_DUMP
>>
>> is what I see from a cmake options of...
>>
>> -DLLVM_LINK_LLVM_DYLIB:BOOL=ON -DCOMPILER_RT_ENABLE_IOS:BOOL=OFF
>> -DLLVM_ENABLE_FFI=ON -DFFI_INCLUDE_DIR=/sw/include
>> -DFFI_LIBRARY_DIR=/sw/lib -DLLVM_LIT_ARGS:STRING=-v
>> -DPYTHON_EXECUTABLE:FILEPATH=/sw/bin/python2.7
>> -DLIBOMP_OSX_ARCHITECTURES=x86_64;i386 -DLLVM_ENABLE_ASSERTIONS:BOOL=OFF
>> -DCMAKE_OSX_SYSROOT:STRING=/ -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=
>> -DLLVM_TARGETS_TO_BUILD=X86;PowerPC;ARM -DCMAKE_INSTALL_PREFIX:PATH=/sw/opt/llvm-6.0
>> -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_C_FLAGS=-fno-common
>> -DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=ON -DCMAKE_CXX_FLAGS=-fno-common
>>   -DCMAKE_SHARED_LINKER_FLAGS= -L/sw/lib -DCMAKE_MODULE_LINKER_FLAGS=
>> -L/sw/lib -DCMAKE_EXE_LINKER_FLAGS= -L/sw/lib
>>
>>
>>> On Sat, Oct 14, 2017 at 8:32 AM, Jack Howarth <
>>> howarth.mailing.lists at gmail.com> wrote:
>>>
>>>>
>>>>
>>>> On Sat, Oct 14, 2017 at 11:25 AM, Don Hinton <hintonda at gmail.com>
>>>> 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.
>>>>>
>>>>> 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
>>>>>
>>>>
>>>> There are no instances of LLVM_ENABLE_DUMP being emitted during the
>>>> stage1 build (which is where the failure occurs). Greping for LLVM_ENABLE_DUMP
>>>> in  the stage1 build directory only shows...
>>>>
>>>> % grep -R LLVM_ENABLE_DUMP *
>>>>
>>>> include/llvm/Config/llvm-config.h:/* #undef LLVM_ENABLE_DUMP */
>>>>
>>>> Binary file utils/TableGen/CMakeFiles/obj.
>>>> llvm-tblgen.dir/SubtargetEmitter.cpp.o matches
>>>>
>>>>    Jack
>>>> ps A more general grep for DUMP in CMakeCacne.txt shows...
>>>>
>>>> % grep DUMP CMakeCache.txt
>>>> CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
>>>> LLVM_FORCE_ENABLE_DUMP:BOOL=OFF
>>>> LLVM_TOOL_LLVM_CXXDUMP_BUILD:BOOL=ON
>>>> LLVM_TOOL_LLVM_DWARFDUMP_BUILD:BOOL=ON
>>>> LLVM_TOOL_LLVM_OBJDUMP_BUILD:BOOL=ON
>>>> //ADVANCED property for variable: CMAKE_OBJDUMP
>>>> CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
>>>> //ADVANCED property for variable: LLVM_TOOL_LLVM_CXXDUMP_BUILD
>>>> LLVM_TOOL_LLVM_CXXDUMP_BUILD-ADVANCED:INTERNAL=1
>>>> //ADVANCED property for variable: LLVM_TOOL_LLVM_DWARFDUMP_BUILD
>>>> LLVM_TOOL_LLVM_DWARFDUMP_BUILD-ADVANCED:INTERNAL=1
>>>> //ADVANCED property for variable: LLVM_TOOL_LLVM_OBJDUMP_BUILD
>>>> LLVM_TOOL_LLVM_OBJDUMP_BUILD-ADVANCED:INTERNAL=1
>>>>
>>>>
>>>>> 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
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171014/186b5cfa/attachment-0001.html>


More information about the llvm-dev mailing list