[libc-commits] [libc] 32d05db - [libc][startup] set --target= for linker when cross compiling (#96342)

via libc-commits libc-commits at lists.llvm.org
Fri Jun 21 13:30:23 PDT 2024


Author: Nick Desaulniers (paternity leave)
Date: 2024-06-21T13:30:19-07:00
New Revision: 32d05db6e9a5650f87eedb5fe328fa9e1fcec76f

URL: https://github.com/llvm/llvm-project/commit/32d05db6e9a5650f87eedb5fe328fa9e1fcec76f
DIFF: https://github.com/llvm/llvm-project/commit/32d05db6e9a5650f87eedb5fe328fa9e1fcec76f.diff

LOG: [libc][startup] set --target= for linker when cross compiling (#96342)

Otherwise the startup objects will fail to link since they were cross compiled,
but the linker is not informed of the intent to cross compile, which results in
linker errors when the host architecture does not match the target
architecture.

Added: 
    

Modified: 
    libc/startup/linux/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/libc/startup/linux/CMakeLists.txt b/libc/startup/linux/CMakeLists.txt
index 68f68ff45aa9e..31c0ada31aebd 100644
--- a/libc/startup/linux/CMakeLists.txt
+++ b/libc/startup/linux/CMakeLists.txt
@@ -26,7 +26,7 @@ function(merge_relocatable_object name)
   )
   # Pass -r to the driver is much cleaner than passing -Wl,-r: the compiler knows it is
   # a relocatable linking and will not pass other irrelevant flags to the linker.
-  target_link_options(${relocatable_target} PRIVATE -r -nostdlib)
+  target_link_options(${relocatable_target} PRIVATE -r -nostdlib --target=${explicit_target_triple})
   set_target_properties(
     ${relocatable_target}
     PROPERTIES


        


More information about the libc-commits mailing list