blob: a42a0441424a07665fd95ad1d27f0c0080ab156f [file] [log] [blame]
Patrick Williamse760df82023-05-26 11:10:49 -05001From ba2e308f7993099708ef3d8cbf2db5f134f08941 Mon Sep 17 00:00:00 2001
Andrew Geisslerd5838332022-05-27 11:33:10 -05002From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 29 Mar 2013 09:24:50 +0400
4Subject: [PATCH] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
5 relative to SYSTEMLIBS_DIR
6
7This patch defines GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
8relative to SYSTEMLIBS_DIR which can be set in generated headers
9This breaks the assumption of hardcoded multilib in gcc
10Change is only for the supported architectures in OE including
11SH, sparc, alpha for possible future support (if any)
12
13Removes the do_headerfix task in metadata
14
Andrew Geisslerd5838332022-05-27 11:33:10 -050015Upstream-Status: Inappropriate [OE configuration]
16Signed-off-by: Khem Raj <raj.khem@gmail.com>
17---
18 gcc/config/aarch64/aarch64-linux.h | 4 ++--
19 gcc/config/alpha/linux-elf.h | 4 ++--
20 gcc/config/arm/linux-eabi.h | 6 +++---
21 gcc/config/arm/linux-elf.h | 2 +-
22 gcc/config/i386/linux.h | 4 ++--
23 gcc/config/i386/linux64.h | 12 ++++++------
24 gcc/config/linux.h | 8 ++++----
25 gcc/config/loongarch/gnu-user.h | 4 ++--
26 gcc/config/microblaze/linux.h | 4 ++--
27 gcc/config/mips/linux.h | 18 +++++++++---------
28 gcc/config/nios2/linux.h | 4 ++--
29 gcc/config/riscv/linux.h | 4 ++--
30 gcc/config/rs6000/linux64.h | 15 +++++----------
31 gcc/config/rs6000/sysv4.h | 4 ++--
32 gcc/config/s390/linux.h | 8 ++++----
33 gcc/config/sh/linux.h | 4 ++--
34 gcc/config/sparc/linux.h | 2 +-
35 gcc/config/sparc/linux64.h | 4 ++--
36 18 files changed, 53 insertions(+), 58 deletions(-)
37
38diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
Patrick Williamse760df82023-05-26 11:10:49 -050039index 4277f03da2a..e4c92c03291 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -050040--- a/gcc/config/aarch64/aarch64-linux.h
41+++ b/gcc/config/aarch64/aarch64-linux.h
42@@ -21,10 +21,10 @@
43 #ifndef GCC_AARCH64_LINUX_H
44 #define GCC_AARCH64_LINUX_H
45
46-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
47+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
48
49 #undef MUSL_DYNAMIC_LINKER
50-#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
51+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
52
53 #undef ASAN_CC1_SPEC
54 #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}"
55diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
Patrick Williamse760df82023-05-26 11:10:49 -050056index 03f783f2ad1..4fa02668aa7 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -050057--- a/gcc/config/alpha/linux-elf.h
58+++ b/gcc/config/alpha/linux-elf.h
59@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3. If not see
60 #define EXTRA_SPECS \
61 { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
62
63-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
64-#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
65+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
66+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0"
67 #if DEFAULT_LIBC == LIBC_UCLIBC
68 #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
69 #elif DEFAULT_LIBC == LIBC_GLIBC
70diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
Patrick Williamse760df82023-05-26 11:10:49 -050071index a119875599d..dce7f59eeea 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -050072--- a/gcc/config/arm/linux-eabi.h
73+++ b/gcc/config/arm/linux-eabi.h
Patrick Williamse760df82023-05-26 11:10:49 -050074@@ -62,8 +62,8 @@
Andrew Geisslerd5838332022-05-27 11:33:10 -050075 GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */
76
77 #undef GLIBC_DYNAMIC_LINKER
78-#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
79-#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
80+#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT SYSTEMLIBS_DIR "ld-linux.so.3"
81+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT SYSTEMLIBS_DIR "ld-linux-armhf.so.3"
82 #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
83
84 #define GLIBC_DYNAMIC_LINKER \
Patrick Williamse760df82023-05-26 11:10:49 -050085@@ -86,7 +86,7 @@
Andrew Geisslerd5838332022-05-27 11:33:10 -050086 #define MUSL_DYNAMIC_LINKER_E "%{mbig-endian:eb}"
87 #endif
88 #define MUSL_DYNAMIC_LINKER \
89- "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.so.1"
90+ SYSTEMLIBS_DIR "ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.so.1"
91
92 /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
93 use the GNU/Linux version, not the generic BPABI version. */
94diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
Patrick Williamse760df82023-05-26 11:10:49 -050095index 7b7b7cbbe14..98ef2267117 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -050096--- a/gcc/config/arm/linux-elf.h
97+++ b/gcc/config/arm/linux-elf.h
98@@ -60,7 +60,7 @@
99
100 #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
101
102-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
103+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
104
105 #define LINUX_TARGET_LINK_SPEC "%{h*} \
106 %{static:-Bstatic} \
107diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
Patrick Williamse760df82023-05-26 11:10:49 -0500108index bbb7cc7115e..7d9272040ee 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -0500109--- a/gcc/config/i386/linux.h
110+++ b/gcc/config/i386/linux.h
111@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3. If not see
112 <http://www.gnu.org/licenses/>. */
113
114 #define GNU_USER_LINK_EMULATION "elf_i386"
115-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
116+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
117
118 #undef MUSL_DYNAMIC_LINKER
119-#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
120+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-i386.so.1"
121diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
Patrick Williamse760df82023-05-26 11:10:49 -0500122index 2bd9f48e271..dbbe7ca5440 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -0500123--- a/gcc/config/i386/linux64.h
124+++ b/gcc/config/i386/linux64.h
125@@ -27,13 +27,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
126 #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
127 #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
128
129-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
130-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
131-#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
132+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
133+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2"
134+#define GLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-linux-x32.so.2"
135
136 #undef MUSL_DYNAMIC_LINKER32
137-#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1"
138+#define MUSL_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-musl-i386.so.1"
139 #undef MUSL_DYNAMIC_LINKER64
140-#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-x86_64.so.1"
141+#define MUSL_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-musl-x86_64.so.1"
142 #undef MUSL_DYNAMIC_LINKERX32
143-#define MUSL_DYNAMIC_LINKERX32 "/lib/ld-musl-x32.so.1"
144+#define MUSL_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-musl-x32.so.1"
145diff --git a/gcc/config/linux.h b/gcc/config/linux.h
Patrick Williamse760df82023-05-26 11:10:49 -0500146index e3aca79cccc..6491c6b84f5 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -0500147--- a/gcc/config/linux.h
148+++ b/gcc/config/linux.h
Patrick Williamse760df82023-05-26 11:10:49 -0500149@@ -86,10 +86,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
Andrew Geisslerd5838332022-05-27 11:33:10 -0500150 GLIBC_DYNAMIC_LINKER must be defined for each target using them, or
151 GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets
152 supporting both 32-bit and 64-bit compilation. */
153-#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
154-#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
155-#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
156-#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0"
157+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0"
158+#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0"
159+#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0"
160+#define UCLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ldx32-uClibc.so.0"
161 #define BIONIC_DYNAMIC_LINKER "/system/bin/linker"
162 #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
163 #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
164diff --git a/gcc/config/loongarch/gnu-user.h b/gcc/config/loongarch/gnu-user.h
Patrick Williamse760df82023-05-26 11:10:49 -0500165index aecaa02a199..62f88f7f9a2 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -0500166--- a/gcc/config/loongarch/gnu-user.h
167+++ b/gcc/config/loongarch/gnu-user.h
168@@ -31,11 +31,11 @@ along with GCC; see the file COPYING3. If not see
169
170 #undef GLIBC_DYNAMIC_LINKER
171 #define GLIBC_DYNAMIC_LINKER \
172- "/lib" ABI_GRLEN_SPEC "/ld-linux-loongarch-" ABI_SPEC ".so.1"
173+ SYSTEMLIBS_DIR "ld-linux-loongarch-" ABI_SPEC ".so.1"
174
175 #undef MUSL_DYNAMIC_LINKER
176 #define MUSL_DYNAMIC_LINKER \
177- "/lib" ABI_GRLEN_SPEC "/ld-musl-loongarch-" ABI_SPEC ".so.1"
178+ SYSTEMLIBS_DIR "ld-musl-loongarch-" ABI_SPEC ".so.1"
179
180 #undef GNU_USER_TARGET_LINK_SPEC
181 #define GNU_USER_TARGET_LINK_SPEC \
182diff --git a/gcc/config/microblaze/linux.h b/gcc/config/microblaze/linux.h
Patrick Williamse760df82023-05-26 11:10:49 -0500183index e2e2c421c52..6f26480e3b5 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -0500184--- a/gcc/config/microblaze/linux.h
185+++ b/gcc/config/microblaze/linux.h
186@@ -28,7 +28,7 @@
187 #undef TLS_NEEDS_GOT
188 #define TLS_NEEDS_GOT 1
189
190-#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
191+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "/ld.so.1"
192 #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
193
194 #if TARGET_BIG_ENDIAN_DEFAULT == 0 /* LE */
195@@ -38,7 +38,7 @@
196 #endif
197
198 #undef MUSL_DYNAMIC_LINKER
199-#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-microblaze" MUSL_DYNAMIC_LINKER_E ".so.1"
200+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-microblaze" MUSL_DYNAMIC_LINKER_E ".so.1"
201
202 #undef SUBTARGET_EXTRA_SPECS
203 #define SUBTARGET_EXTRA_SPECS \
204diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
Patrick Williamse760df82023-05-26 11:10:49 -0500205index 5add34ea134..34692b433b8 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -0500206--- a/gcc/config/mips/linux.h
207+++ b/gcc/config/mips/linux.h
208@@ -22,29 +22,29 @@ along with GCC; see the file COPYING3. If not see
209 #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
210
211 #define GLIBC_DYNAMIC_LINKER32 \
212- "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}"
213+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
214 #define GLIBC_DYNAMIC_LINKER64 \
215- "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib64/ld.so.1}"
216+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
217 #define GLIBC_DYNAMIC_LINKERN32 \
218- "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib32/ld.so.1}"
219+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
220
221 #undef UCLIBC_DYNAMIC_LINKER32
222 #define UCLIBC_DYNAMIC_LINKER32 \
223- "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}"
224+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
225 #undef UCLIBC_DYNAMIC_LINKER64
226 #define UCLIBC_DYNAMIC_LINKER64 \
227- "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}"
228+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld64-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld64-uClibc.so.0}"
229 #define UCLIBC_DYNAMIC_LINKERN32 \
230- "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}"
231+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
232
233 #undef MUSL_DYNAMIC_LINKER32
234 #define MUSL_DYNAMIC_LINKER32 \
235- "/lib/ld-musl-mips%{mips32r6|mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
236+ SYSTEMLIBS_DIR "ld-musl-mips%{mips32r6|mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
237 #undef MUSL_DYNAMIC_LINKER64
238 #define MUSL_DYNAMIC_LINKER64 \
239- "/lib/ld-musl-mips64%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
240+ SYSTEMLIBS_DIR "ld-musl-mips64%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
241 #define MUSL_DYNAMIC_LINKERN32 \
242- "/lib/ld-musl-mipsn32%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
243+ SYSTEMLIBS_DIR "ld-musl-mipsn32%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
244
245 #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
246 #define GNU_USER_DYNAMIC_LINKERN32 \
247diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h
Patrick Williamse760df82023-05-26 11:10:49 -0500248index 2ce097ebbce..1d45d7b4962 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -0500249--- a/gcc/config/nios2/linux.h
250+++ b/gcc/config/nios2/linux.h
Patrick Williamse760df82023-05-26 11:10:49 -0500251@@ -29,10 +29,10 @@
Andrew Geisslerd5838332022-05-27 11:33:10 -0500252 #undef CPP_SPEC
253 #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
254
255-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-nios2.so.1"
Andrew Geisslerd5838332022-05-27 11:33:10 -0500256+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-nios2.so.1"
Patrick Williamse760df82023-05-26 11:10:49 -0500257
258 #undef MUSL_DYNAMIC_LINKER
259-#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-nios2.so.1"
Andrew Geisslerd5838332022-05-27 11:33:10 -0500260+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-nios2.so.1"
261
262 #undef LINK_SPEC
263 #define LINK_SPEC LINK_SPEC_ENDIAN \
264diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
Patrick Williamse760df82023-05-26 11:10:49 -0500265index b9557a75dc7..e10ca1f97e7 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -0500266--- a/gcc/config/riscv/linux.h
267+++ b/gcc/config/riscv/linux.h
268@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3. If not see
269 GNU_USER_TARGET_OS_CPP_BUILTINS(); \
270 } while (0)
271
272-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1"
273+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1"
274
275 #define MUSL_ABI_SUFFIX \
276 "%{mabi=ilp32:-sf}" \
277@@ -33,7 +33,7 @@ along with GCC; see the file COPYING3. If not see
278 "%{mabi=lp64d:}"
279
280 #undef MUSL_DYNAMIC_LINKER
281-#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-riscv" XLEN_SPEC MUSL_ABI_SUFFIX ".so.1"
282+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-riscv" XLEN_SPEC MUSL_ABI_SUFFIX ".so.1"
283
284 /* Because RISC-V only has word-sized atomics, it requries libatomic where
285 others do not. So link libatomic by default, as needed. */
286diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
Patrick Williamse760df82023-05-26 11:10:49 -0500287index 9e457033d11..2ddab7c99c1 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -0500288--- a/gcc/config/rs6000/linux64.h
289+++ b/gcc/config/rs6000/linux64.h
290@@ -339,24 +339,19 @@ extern int dot_symbols;
291 #undef LINK_OS_DEFAULT_SPEC
292 #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
293
294-#define GLIBC_DYNAMIC_LINKER32 "%(dynamic_linker_prefix)/lib/ld.so.1"
295-
296+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1"
297 #ifdef LINUX64_DEFAULT_ABI_ELFv2
298-#define GLIBC_DYNAMIC_LINKER64 \
299-"%{mabi=elfv1:%(dynamic_linker_prefix)/lib64/ld64.so.1;" \
300-":%(dynamic_linker_prefix)/lib64/ld64.so.2}"
301+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:" SYSTEMLIBS_DIR "ld64.so.1;:" SYSTEMLIBS_DIR "ld64.so.2}"
302 #else
303-#define GLIBC_DYNAMIC_LINKER64 \
304-"%{mabi=elfv2:%(dynamic_linker_prefix)/lib64/ld64.so.2;" \
305-":%(dynamic_linker_prefix)/lib64/ld64.so.1}"
306+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:" SYSTEMLIBS_DIR "ld64.so.2;:" SYSTEMLIBS_DIR "ld64.so.1}"
307 #endif
308
309 #undef MUSL_DYNAMIC_LINKER32
310 #define MUSL_DYNAMIC_LINKER32 \
311- "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
312+ SYSTEMLIBS_DIR "ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
313 #undef MUSL_DYNAMIC_LINKER64
314 #define MUSL_DYNAMIC_LINKER64 \
315- "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
316+ SYSTEMLIBS_DIR "ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
317
318 #undef DEFAULT_ASM_ENDIAN
319 #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
320diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
Patrick Williamse760df82023-05-26 11:10:49 -0500321index ae932fc22f0..26db003cb3a 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -0500322--- a/gcc/config/rs6000/sysv4.h
323+++ b/gcc/config/rs6000/sysv4.h
Patrick Williamse760df82023-05-26 11:10:49 -0500324@@ -771,10 +771,10 @@ GNU_USER_TARGET_CC1_SPEC
Andrew Geisslerd5838332022-05-27 11:33:10 -0500325
326 #define MUSL_DYNAMIC_LINKER_E ENDIAN_SELECT("","le","")
327
328-#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
329+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld.so.1"
330 #undef MUSL_DYNAMIC_LINKER
331 #define MUSL_DYNAMIC_LINKER \
332- "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
333+ SYSTEMLIBS_DIR "ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
334
335 #ifndef GNU_USER_DYNAMIC_LINKER
336 #define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
337diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
Patrick Williamse760df82023-05-26 11:10:49 -0500338index 02aa1edaff8..fab268d61f4 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -0500339--- a/gcc/config/s390/linux.h
340+++ b/gcc/config/s390/linux.h
341@@ -72,13 +72,13 @@ along with GCC; see the file COPYING3. If not see
342 #define MULTILIB_DEFAULTS { "m31" }
343 #endif
344
345-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
346-#define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1"
347+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1"
348+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64.so.1"
349
350 #undef MUSL_DYNAMIC_LINKER32
351-#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390.so.1"
352+#define MUSL_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-musl-s390.so.1"
353 #undef MUSL_DYNAMIC_LINKER64
354-#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1"
355+#define MUSL_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-musl-s390x.so.1"
356
357 #undef LINK_SPEC
358 #define LINK_SPEC \
359diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
Patrick Williamse760df82023-05-26 11:10:49 -0500360index 29f5902b98b..83d1e53e6e2 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -0500361--- a/gcc/config/sh/linux.h
362+++ b/gcc/config/sh/linux.h
363@@ -61,10 +61,10 @@ along with GCC; see the file COPYING3. If not see
364
365 #undef MUSL_DYNAMIC_LINKER
366 #define MUSL_DYNAMIC_LINKER \
367- "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \
368+ SYSTEMLIBS_DIR "ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \
369 "%{mfdpic:-fdpic}.so.1"
370
371-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
372+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
373
374 #undef SUBTARGET_LINK_EMUL_SUFFIX
375 #define SUBTARGET_LINK_EMUL_SUFFIX "%{mfdpic:_fd;:_linux}"
376diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
Patrick Williamse760df82023-05-26 11:10:49 -0500377index 0e33b3cac2c..84f29adbb35 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -0500378--- a/gcc/config/sparc/linux.h
379+++ b/gcc/config/sparc/linux.h
380@@ -78,7 +78,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
381 When the -shared link option is used a final link is not being
382 done. */
383
384-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
385+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
386
387 #undef LINK_SPEC
388 #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
389diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
Patrick Williamse760df82023-05-26 11:10:49 -0500390index f1cc0a19e49..94bc2032803 100644
Andrew Geisslerd5838332022-05-27 11:33:10 -0500391--- a/gcc/config/sparc/linux64.h
392+++ b/gcc/config/sparc/linux64.h
393@@ -78,8 +78,8 @@ along with GCC; see the file COPYING3. If not see
394 When the -shared link option is used a final link is not being
395 done. */
396
397-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
398-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
399+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
400+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux.so.2"
401
402 #ifdef SPARC_BI_ARCH
403