[clang] [clang-tools-extra] [lldb] [clang] Reland: fix getTemplateInstantiationArgs (PR #208285)

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Fri Jul 10 06:24:02 PDT 2026


erichkeane wrote:

> I've managed to reproduce the stage 2 build failure locally (on macOS) but not yet minimise it. Here are the steps:
> 
>     1. Build `clang`
> 
>     2. Configure reproducer with modules and Mac OS X 15.2 SDK (as in builder)
> 
> 
> ```shell
> cmake -G Ninja -S llvm -B build-repro \
>     -DCMAKE_C_COMPILER=$PWD/build/bin/clang \
>     -DCMAKE_CXX_COMPILER=$PWD/build/bin/clang++ \
>     -DCMAKE_OSX_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX15.2.sdk \
>     -DCMAKE_BUILD_TYPE=RelWithDebInfo \
>     -DLLVM_TARGETS_TO_BUILD=AArch64 \
>     -DLLVM_ENABLE_MODULES=ON
> ```
> 
>     3. Build `llvm-min-tblgen`:
> 
> 
> ```shell
> ninja -C build-repro llvm-min-tblgen
> ```
> 
> This fails with:
> 
> ```
> FAILED: [code=1] bin/llvm-min-tblgen
> : && /Users/nathan/src/external/llvm-project/build/bin/clang++ -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -fmodules -fmodules-cache-path=/Users/nathan/src/external/llvm-project/build-repro/module.cache -fcxx-modules -Xclang -fmodules-local-submodule-visibility -gmodules -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -O2 -g -DNDEBUG -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.2.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names  -Wl,-dead_strip -Wl,-no_warn_duplicate_libraries utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/Attributes.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/CodeGenIntrinsics.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/DirectiveEmitter.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/IntrinsicEmitter.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/RISCVTargetDefEmitter.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/RuntimeLibcallsEmitter.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/RuntimeLibcalls.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/SDNodeProperties.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/TableGen.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/TargetFeaturesEmitter.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/TargetLibraryInfoEmitter.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/VTEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-min-tblgen.dir/llvm-min-tblgen.cpp.o -o bin/llvm-min-tblgen  -Wl,-rpath, at loader_path/../lib  lib/libLLVMSupport.a  lib/libLLVMTableGen.a  -lm  /Library/Developer/CommandLineTools/SDKs/MacOSX15.2.sdk/usr/lib/libz.tbd  lib/libLLVMDemangle.a && :
> Undefined symbols for architecture arm64:
>   "std::__1::enable_if<is_move_constructible<std::__1::__shared_weak_count*>::value && is_move_assignable<std::__1::__shared_weak_count*>::value, void>::type std::__1::swap[abi:nn180100]<std::__1::__shared_weak_count*>(std::__1::__shared_weak_count*&, std::__1::__shared_weak_count*&)", referenced from:
>       (anonymous namespace)::RealFileSystem::dir_begin(llvm::Twine const&, std::__1::error_code&) in libLLVMSupport.a[143](VirtualFileSystem.cpp.o)
>       (anonymous namespace)::RealFileSystem::dir_begin(llvm::Twine const&, std::__1::error_code&) in libLLVMSupport.a[143](VirtualFileSystem.cpp.o)
>       llvm::sys::fs::directory_iterator::directory_iterator(llvm::Twine const&, std::__1::error_code&, bool) in libLLVMSupport.a[168](Path.cpp.o)
> ld: symbol(s) not found for architecture arm64
> clang++: error: linker command failed with exit code 1 (use -v to see invocation)
> ninja: build stopped: subcommand failed.
> ```
> 
> after this commit, but succeeds otherwise.

Hmm.. interesting.

Unfortunately THAT invocation is less interesting of course, since that is the link step.  I DO wonder what is different from what @mizvekov has been trying, because that seems like it should be pretty clear.

MAYBE the 2nd stage needs to be an ARM machine?  It would stink for it to have to be a Mac.

The fact that you are using MODULES is actually quite interesting, @mizvekov , perhaps THAT is the key? 



https://github.com/llvm/llvm-project/pull/208285


More information about the cfe-commits mailing list