Author: Garvit Gupta Date: 2026-06-09T14:12:27+05:30 New Revision: 8b4902300521d4a0980d9d35210c02b405f0df86
URL: https://github.com/llvm/llvm-project/commit/8b4902300521d4a0980d9d35210c02b405f0df86 DIFF: https://github.com/llvm/llvm-project/commit/8b4902300521d4a0980d9d35210c02b405f0df86.diff LOG: [Compiler-rt][test] Fix circular link dependency between builtins and libc (#199482) Currently, the link order is `libclang_rt.builtins.a -lc -lm`. Builtins are scanned first after which symbols like `abort` are unresolved references that are resolved through libc.a. However, resolving the references to these symbols further lead to undefined references to `_aeabi_uldivmod` etc. that can only resolved through builtins. Reversing the order also wont fix the issue because `libc.a` introduces `__aeabi_uldivmod` which is resolved by builtins but it introduces `abort` which can only be resolved libc.a. This patch fixes this by wrapping the archives in a linker group (--start-group/--end-group), which instructs the linker to rescan all archives in the group until no new symbols can be resolved. This error is exposed only when bfd like linkers are used. Added: Modified: compiler-rt/test/builtins/Unit/lit.cfg.py Removed: ################################################################################ diff --git a/compiler-rt/test/builtins/Unit/lit.cfg.py b/compiler-rt/test/builtins/Unit/lit.cfg.py index 8d602d1c417fa..2bb72630a41e9 100644 --- a/compiler-rt/test/builtins/Unit/lit.cfg.py +++ b/compiler-rt/test/builtins/Unit/lit.cfg.py @@ -107,7 +107,9 @@ def get_libgcc_file_name(): if config.target_os == "Haiku": config.substitutions.append(("%librt ", base_lib + " -lroot ")) else: - config.substitutions.append(("%librt ", base_lib + " -lc -lm ")) + config.substitutions.append( + ("%librt ", "-lm -Wl,--start-group " + base_lib + " -lc -Wl,--end-group ") + ) builtins_test_crt = get_required_attr(config, "builtins_test_crt") if builtins_test_crt: _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
