================ @@ -172,6 +172,20 @@ def push_dynamic_library_lookup_path(config, new_path): # doesn't match config.compiler_rt_libdir then it means we might be testing the # compiler's own runtime libraries rather than the ones we just built. # Warn about about this and handle appropriately. +if config.test_standalone_build_libs: + if config.compiler_id == "Clang": + # Ensure that we use the just-built libraries when linking by overriding + # the Clang resource directory. However, this also means that we can no + # longer find the builtin headers from that path, so we explicitly add + # the builtin headers as an include path. + resource_dir, _ = get_path_from_clang( + shlex.split(config.target_cflags) + ["-print-resource-dir"], allow_failure=False + ) + config.target_cflags += f" -nobuiltininc" + config.target_cflags += f" -I{config.compiler_rt_src_root}/include" + config.target_cflags += f" -idirafter {resource_dir}/include" + config.target_cflags += f" -resource-dir={config.compiler_rt_obj_root}" + config.target_cflags += f" -Wl,--rpath={config.compiler_rt_libdir}" ---------------- delcypher wrote:
The flags below create kind of a odd mix * Some external clang that has its own independent resource directory. * The external clang is being forced to use a different resource directory than what it was shipped with * The external clang is being forced to use a different set of headers than what it was shipped with I'm not sure that combination is guaranteed to work given that compiler-rt can be tightly coupled with clang. If I've read this code correctly the change you've made is on the common path (because `COMPILER_RT_TEST_STANDALONE_BUILD_LIBS` is `ON` by default) but AFAIK your change was never needed before because normally you would build compiler-rt with a just built clang which I think should mean there's no difference between what `-print-resource-dir` reports and `config.compiler_rt_obj_root`. Or have I misunderstood something? https://github.com/llvm/llvm-project/pull/83088 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits