0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  1. From aacfd6e14dd583b1fdc65691def61c5e1bc89708 Mon Sep 17 00:00:00 2001
  2. From: Khem Raj <raj.khem@gmail.com>
  3. Date: Fri, 29 Mar 2013 09:24:50 +0400
  4. Subject: [PATCH] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
  5. relative to SYSTEMLIBS_DIR
  6. This patch defines GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
  7. relative to SYSTEMLIBS_DIR which can be set in generated headers
  8. This breaks the assumption of hardcoded multilib in gcc
  9. Change is only for the supported architectures in OE including
  10. SH, sparc, alpha for possible future support (if any)
  11. Removes the do_headerfix task in metadata
  12. Upstream-Status: Inappropriate [OE configuration]
  13. Signed-off-by: Khem Raj <raj.khem@gmail.com>
  14. ---
  15. gcc/config/aarch64/aarch64-linux.h | 4 ++--
  16. gcc/config/alpha/linux-elf.h | 4 ++--
  17. gcc/config/arm/linux-eabi.h | 6 +++---
  18. gcc/config/arm/linux-elf.h | 2 +-
  19. gcc/config/i386/linux.h | 4 ++--
  20. gcc/config/i386/linux64.h | 12 ++++++------
  21. gcc/config/linux.h | 8 ++++----
  22. gcc/config/loongarch/gnu-user.h | 4 ++--
  23. gcc/config/microblaze/linux.h | 4 ++--
  24. gcc/config/mips/linux.h | 18 +++++++++---------
  25. gcc/config/nios2/linux.h | 4 ++--
  26. gcc/config/riscv/linux.h | 4 ++--
  27. gcc/config/rs6000/linux64.h | 15 +++++----------
  28. gcc/config/rs6000/sysv4.h | 4 ++--
  29. gcc/config/s390/linux.h | 8 ++++----
  30. gcc/config/sh/linux.h | 4 ++--
  31. gcc/config/sparc/linux.h | 2 +-
  32. gcc/config/sparc/linux64.h | 4 ++--
  33. 18 files changed, 53 insertions(+), 58 deletions(-)
  34. diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
  35. index 4277f03da2a..e4c92c03291 100644
  36. --- a/gcc/config/aarch64/aarch64-linux.h
  37. +++ b/gcc/config/aarch64/aarch64-linux.h
  38. @@ -21,10 +21,10 @@
  39. #ifndef GCC_AARCH64_LINUX_H
  40. #define GCC_AARCH64_LINUX_H
  41. -#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
  42. +#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
  43. #undef MUSL_DYNAMIC_LINKER
  44. -#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
  45. +#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
  46. #undef ASAN_CC1_SPEC
  47. #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}"
  48. diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
  49. index 03f783f2ad1..4fa02668aa7 100644
  50. --- a/gcc/config/alpha/linux-elf.h
  51. +++ b/gcc/config/alpha/linux-elf.h
  52. @@ -23,8 +23,8 @@ along with GCC; see the file COPYING3. If not see
  53. #define EXTRA_SPECS \
  54. { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
  55. -#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
  56. -#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
  57. +#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
  58. +#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0"
  59. #if DEFAULT_LIBC == LIBC_UCLIBC
  60. #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
  61. #elif DEFAULT_LIBC == LIBC_GLIBC
  62. diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
  63. index a119875599d..dce7f59eeea 100644
  64. --- a/gcc/config/arm/linux-eabi.h
  65. +++ b/gcc/config/arm/linux-eabi.h
  66. @@ -62,8 +62,8 @@
  67. GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */
  68. #undef GLIBC_DYNAMIC_LINKER
  69. -#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
  70. -#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
  71. +#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT SYSTEMLIBS_DIR "ld-linux.so.3"
  72. +#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT SYSTEMLIBS_DIR "ld-linux-armhf.so.3"
  73. #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
  74. #define GLIBC_DYNAMIC_LINKER \
  75. @@ -86,7 +86,7 @@
  76. #define MUSL_DYNAMIC_LINKER_E "%{mbig-endian:eb}"
  77. #endif
  78. #define MUSL_DYNAMIC_LINKER \
  79. - "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.so.1"
  80. + SYSTEMLIBS_DIR "ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.so.1"
  81. /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
  82. use the GNU/Linux version, not the generic BPABI version. */
  83. diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
  84. index 7b7b7cbbe14..98ef2267117 100644
  85. --- a/gcc/config/arm/linux-elf.h
  86. +++ b/gcc/config/arm/linux-elf.h
  87. @@ -60,7 +60,7 @@
  88. #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
  89. -#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
  90. +#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
  91. #define LINUX_TARGET_LINK_SPEC "%{h*} \
  92. %{static:-Bstatic} \
  93. diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
  94. index bbb7cc7115e..7d9272040ee 100644
  95. --- a/gcc/config/i386/linux.h
  96. +++ b/gcc/config/i386/linux.h
  97. @@ -20,7 +20,7 @@ along with GCC; see the file COPYING3. If not see
  98. <http://www.gnu.org/licenses/>. */
  99. #define GNU_USER_LINK_EMULATION "elf_i386"
  100. -#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
  101. +#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
  102. #undef MUSL_DYNAMIC_LINKER
  103. -#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
  104. +#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-i386.so.1"
  105. diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
  106. index 2bd9f48e271..dbbe7ca5440 100644
  107. --- a/gcc/config/i386/linux64.h
  108. +++ b/gcc/config/i386/linux64.h
  109. @@ -27,13 +27,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  110. #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
  111. #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
  112. -#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
  113. -#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
  114. -#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
  115. +#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
  116. +#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2"
  117. +#define GLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-linux-x32.so.2"
  118. #undef MUSL_DYNAMIC_LINKER32
  119. -#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1"
  120. +#define MUSL_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-musl-i386.so.1"
  121. #undef MUSL_DYNAMIC_LINKER64
  122. -#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-x86_64.so.1"
  123. +#define MUSL_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-musl-x86_64.so.1"
  124. #undef MUSL_DYNAMIC_LINKERX32
  125. -#define MUSL_DYNAMIC_LINKERX32 "/lib/ld-musl-x32.so.1"
  126. +#define MUSL_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-musl-x32.so.1"
  127. diff --git a/gcc/config/linux.h b/gcc/config/linux.h
  128. index e3aca79cccc..6491c6b84f5 100644
  129. --- a/gcc/config/linux.h
  130. +++ b/gcc/config/linux.h
  131. @@ -86,10 +86,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  132. GLIBC_DYNAMIC_LINKER must be defined for each target using them, or
  133. GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets
  134. supporting both 32-bit and 64-bit compilation. */
  135. -#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
  136. -#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
  137. -#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
  138. -#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0"
  139. +#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0"
  140. +#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0"
  141. +#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0"
  142. +#define UCLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ldx32-uClibc.so.0"
  143. #define BIONIC_DYNAMIC_LINKER "/system/bin/linker"
  144. #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
  145. #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
  146. diff --git a/gcc/config/loongarch/gnu-user.h b/gcc/config/loongarch/gnu-user.h
  147. index aecaa02a199..62f88f7f9a2 100644
  148. --- a/gcc/config/loongarch/gnu-user.h
  149. +++ b/gcc/config/loongarch/gnu-user.h
  150. @@ -31,11 +31,11 @@ along with GCC; see the file COPYING3. If not see
  151. #undef GLIBC_DYNAMIC_LINKER
  152. #define GLIBC_DYNAMIC_LINKER \
  153. - "/lib" ABI_GRLEN_SPEC "/ld-linux-loongarch-" ABI_SPEC ".so.1"
  154. + SYSTEMLIBS_DIR "ld-linux-loongarch-" ABI_SPEC ".so.1"
  155. #undef MUSL_DYNAMIC_LINKER
  156. #define MUSL_DYNAMIC_LINKER \
  157. - "/lib" ABI_GRLEN_SPEC "/ld-musl-loongarch-" ABI_SPEC ".so.1"
  158. + SYSTEMLIBS_DIR "ld-musl-loongarch-" ABI_SPEC ".so.1"
  159. #undef GNU_USER_TARGET_LINK_SPEC
  160. #define GNU_USER_TARGET_LINK_SPEC \
  161. diff --git a/gcc/config/microblaze/linux.h b/gcc/config/microblaze/linux.h
  162. index e2e2c421c52..6f26480e3b5 100644
  163. --- a/gcc/config/microblaze/linux.h
  164. +++ b/gcc/config/microblaze/linux.h
  165. @@ -28,7 +28,7 @@
  166. #undef TLS_NEEDS_GOT
  167. #define TLS_NEEDS_GOT 1
  168. -#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
  169. +#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "/ld.so.1"
  170. #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
  171. #if TARGET_BIG_ENDIAN_DEFAULT == 0 /* LE */
  172. @@ -38,7 +38,7 @@
  173. #endif
  174. #undef MUSL_DYNAMIC_LINKER
  175. -#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-microblaze" MUSL_DYNAMIC_LINKER_E ".so.1"
  176. +#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-microblaze" MUSL_DYNAMIC_LINKER_E ".so.1"
  177. #undef SUBTARGET_EXTRA_SPECS
  178. #define SUBTARGET_EXTRA_SPECS \
  179. diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
  180. index 5add34ea134..34692b433b8 100644
  181. --- a/gcc/config/mips/linux.h
  182. +++ b/gcc/config/mips/linux.h
  183. @@ -22,29 +22,29 @@ along with GCC; see the file COPYING3. If not see
  184. #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
  185. #define GLIBC_DYNAMIC_LINKER32 \
  186. - "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}"
  187. + "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
  188. #define GLIBC_DYNAMIC_LINKER64 \
  189. - "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib64/ld.so.1}"
  190. + "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
  191. #define GLIBC_DYNAMIC_LINKERN32 \
  192. - "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib32/ld.so.1}"
  193. + "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
  194. #undef UCLIBC_DYNAMIC_LINKER32
  195. #define UCLIBC_DYNAMIC_LINKER32 \
  196. - "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}"
  197. + "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
  198. #undef UCLIBC_DYNAMIC_LINKER64
  199. #define UCLIBC_DYNAMIC_LINKER64 \
  200. - "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}"
  201. + "%{mnan=2008:" SYSTEMLIBS_DIR "ld64-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld64-uClibc.so.0}"
  202. #define UCLIBC_DYNAMIC_LINKERN32 \
  203. - "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}"
  204. + "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
  205. #undef MUSL_DYNAMIC_LINKER32
  206. #define MUSL_DYNAMIC_LINKER32 \
  207. - "/lib/ld-musl-mips%{mips32r6|mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
  208. + SYSTEMLIBS_DIR "ld-musl-mips%{mips32r6|mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
  209. #undef MUSL_DYNAMIC_LINKER64
  210. #define MUSL_DYNAMIC_LINKER64 \
  211. - "/lib/ld-musl-mips64%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
  212. + SYSTEMLIBS_DIR "ld-musl-mips64%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
  213. #define MUSL_DYNAMIC_LINKERN32 \
  214. - "/lib/ld-musl-mipsn32%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
  215. + SYSTEMLIBS_DIR "ld-musl-mipsn32%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
  216. #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
  217. #define GNU_USER_DYNAMIC_LINKERN32 \
  218. diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h
  219. index 2ce097ebbce..1d45d7b4962 100644
  220. --- a/gcc/config/nios2/linux.h
  221. +++ b/gcc/config/nios2/linux.h
  222. @@ -29,10 +29,10 @@
  223. #undef CPP_SPEC
  224. #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
  225. -#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-nios2.so.1"
  226. +#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-nios2.so.1"
  227. #undef MUSL_DYNAMIC_LINKER
  228. -#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-nios2.so.1"
  229. +#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-nios2.so.1"
  230. #undef LINK_SPEC
  231. #define LINK_SPEC LINK_SPEC_ENDIAN \
  232. diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
  233. index 3e625e0f867..dc3afc97e27 100644
  234. --- a/gcc/config/riscv/linux.h
  235. +++ b/gcc/config/riscv/linux.h
  236. @@ -22,7 +22,7 @@ along with GCC; see the file COPYING3. If not see
  237. GNU_USER_TARGET_OS_CPP_BUILTINS(); \
  238. } while (0)
  239. -#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1"
  240. +#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1"
  241. #define MUSL_ABI_SUFFIX \
  242. "%{mabi=ilp32:-sf}" \
  243. @@ -33,7 +33,7 @@ along with GCC; see the file COPYING3. If not see
  244. "%{mabi=lp64d:}"
  245. #undef MUSL_DYNAMIC_LINKER
  246. -#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-riscv" XLEN_SPEC MUSL_ABI_SUFFIX ".so.1"
  247. +#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-riscv" XLEN_SPEC MUSL_ABI_SUFFIX ".so.1"
  248. #define ICACHE_FLUSH_FUNC "__riscv_flush_icache"
  249. diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
  250. index 9e457033d11..2ddab7c99c1 100644
  251. --- a/gcc/config/rs6000/linux64.h
  252. +++ b/gcc/config/rs6000/linux64.h
  253. @@ -339,24 +339,19 @@ extern int dot_symbols;
  254. #undef LINK_OS_DEFAULT_SPEC
  255. #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
  256. -#define GLIBC_DYNAMIC_LINKER32 "%(dynamic_linker_prefix)/lib/ld.so.1"
  257. -
  258. +#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1"
  259. #ifdef LINUX64_DEFAULT_ABI_ELFv2
  260. -#define GLIBC_DYNAMIC_LINKER64 \
  261. -"%{mabi=elfv1:%(dynamic_linker_prefix)/lib64/ld64.so.1;" \
  262. -":%(dynamic_linker_prefix)/lib64/ld64.so.2}"
  263. +#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:" SYSTEMLIBS_DIR "ld64.so.1;:" SYSTEMLIBS_DIR "ld64.so.2}"
  264. #else
  265. -#define GLIBC_DYNAMIC_LINKER64 \
  266. -"%{mabi=elfv2:%(dynamic_linker_prefix)/lib64/ld64.so.2;" \
  267. -":%(dynamic_linker_prefix)/lib64/ld64.so.1}"
  268. +#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:" SYSTEMLIBS_DIR "ld64.so.2;:" SYSTEMLIBS_DIR "ld64.so.1}"
  269. #endif
  270. #undef MUSL_DYNAMIC_LINKER32
  271. #define MUSL_DYNAMIC_LINKER32 \
  272. - "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
  273. + SYSTEMLIBS_DIR "ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
  274. #undef MUSL_DYNAMIC_LINKER64
  275. #define MUSL_DYNAMIC_LINKER64 \
  276. - "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
  277. + SYSTEMLIBS_DIR "ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
  278. #undef DEFAULT_ASM_ENDIAN
  279. #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
  280. diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
  281. index ae932fc22f0..26db003cb3a 100644
  282. --- a/gcc/config/rs6000/sysv4.h
  283. +++ b/gcc/config/rs6000/sysv4.h
  284. @@ -771,10 +771,10 @@ GNU_USER_TARGET_CC1_SPEC
  285. #define MUSL_DYNAMIC_LINKER_E ENDIAN_SELECT("","le","")
  286. -#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
  287. +#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld.so.1"
  288. #undef MUSL_DYNAMIC_LINKER
  289. #define MUSL_DYNAMIC_LINKER \
  290. - "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
  291. + SYSTEMLIBS_DIR "ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
  292. #ifndef GNU_USER_DYNAMIC_LINKER
  293. #define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
  294. diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
  295. index 02aa1edaff8..fab268d61f4 100644
  296. --- a/gcc/config/s390/linux.h
  297. +++ b/gcc/config/s390/linux.h
  298. @@ -72,13 +72,13 @@ along with GCC; see the file COPYING3. If not see
  299. #define MULTILIB_DEFAULTS { "m31" }
  300. #endif
  301. -#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
  302. -#define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1"
  303. +#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1"
  304. +#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64.so.1"
  305. #undef MUSL_DYNAMIC_LINKER32
  306. -#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390.so.1"
  307. +#define MUSL_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-musl-s390.so.1"
  308. #undef MUSL_DYNAMIC_LINKER64
  309. -#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1"
  310. +#define MUSL_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-musl-s390x.so.1"
  311. #undef LINK_SPEC
  312. #define LINK_SPEC \
  313. diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
  314. index 29f5902b98b..83d1e53e6e2 100644
  315. --- a/gcc/config/sh/linux.h
  316. +++ b/gcc/config/sh/linux.h
  317. @@ -61,10 +61,10 @@ along with GCC; see the file COPYING3. If not see
  318. #undef MUSL_DYNAMIC_LINKER
  319. #define MUSL_DYNAMIC_LINKER \
  320. - "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \
  321. + SYSTEMLIBS_DIR "ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \
  322. "%{mfdpic:-fdpic}.so.1"
  323. -#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
  324. +#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
  325. #undef SUBTARGET_LINK_EMUL_SUFFIX
  326. #define SUBTARGET_LINK_EMUL_SUFFIX "%{mfdpic:_fd;:_linux}"
  327. diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
  328. index 0e33b3cac2c..84f29adbb35 100644
  329. --- a/gcc/config/sparc/linux.h
  330. +++ b/gcc/config/sparc/linux.h
  331. @@ -78,7 +78,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
  332. When the -shared link option is used a final link is not being
  333. done. */
  334. -#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
  335. +#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
  336. #undef LINK_SPEC
  337. #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
  338. diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
  339. index f1cc0a19e49..94bc2032803 100644
  340. --- a/gcc/config/sparc/linux64.h
  341. +++ b/gcc/config/sparc/linux64.h
  342. @@ -78,8 +78,8 @@ along with GCC; see the file COPYING3. If not see
  343. When the -shared link option is used a final link is not being
  344. done. */
  345. -#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
  346. -#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
  347. +#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
  348. +#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux.so.2"
  349. #ifdef SPARC_BI_ARCH