blob: 21908bce9b7d632d99dd458216c33ec131f9fef5 [file] [log] [blame]
Brad Bishopc68388fc2019-08-26 01:33:31 -04001From a93743732b2125aebd9a6d65e999d7506b01d6b3 Mon Sep 17 00:00:00 2001
Brad Bishopc342db32019-05-15 21:57:59 -04002From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 29 Mar 2013 09:24:50 +0400
Brad Bishopc68388fc2019-08-26 01:33:31 -04004Subject: [PATCH 11/36] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
Brad Bishopc342db32019-05-15 21:57:59 -04005 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
15Signed-off-by: Khem Raj <raj.khem@gmail.com>
16
17Upstream-Status: Inappropriate [OE configuration]
18---
19 gcc/config/alpha/linux-elf.h | 4 ++--
20 gcc/config/arm/linux-eabi.h | 4 ++--
21 gcc/config/arm/linux-elf.h | 2 +-
22 gcc/config/i386/linux.h | 2 +-
23 gcc/config/i386/linux64.h | 6 +++---
24 gcc/config/linux.h | 8 ++++----
25 gcc/config/mips/linux.h | 12 ++++++------
26 gcc/config/rs6000/linux64.h | 15 +++++----------
27 gcc/config/sh/linux.h | 2 +-
28 gcc/config/sparc/linux.h | 2 +-
29 gcc/config/sparc/linux64.h | 4 ++--
Brad Bishopc68388fc2019-08-26 01:33:31 -040030 11 files changed, 28 insertions(+), 33 deletions(-)
Brad Bishopc342db32019-05-15 21:57:59 -040031
32diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
33index 824861befec..6afacce3292 100644
34--- a/gcc/config/alpha/linux-elf.h
35+++ b/gcc/config/alpha/linux-elf.h
36@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3. If not see
37 #define EXTRA_SPECS \
38 { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
39
40-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
41-#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
42+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
43+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0"
44 #if DEFAULT_LIBC == LIBC_UCLIBC
45 #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
46 #elif DEFAULT_LIBC == LIBC_GLIBC
47diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
48index 66ec0ea3980..e4ade2e2ab0 100644
49--- a/gcc/config/arm/linux-eabi.h
50+++ b/gcc/config/arm/linux-eabi.h
51@@ -65,8 +65,8 @@
52 GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */
53
54 #undef GLIBC_DYNAMIC_LINKER
55-#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
56-#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
57+#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT SYSTEMLIBS_DIR "ld-linux.so.3"
58+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT SYSTEMLIBS_DIR "ld-linux-armhf.so.3"
59 #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
60
61 #define GLIBC_DYNAMIC_LINKER \
62diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
63index 9a360defd21..98f6e960b64 100644
64--- a/gcc/config/arm/linux-elf.h
65+++ b/gcc/config/arm/linux-elf.h
66@@ -60,7 +60,7 @@
67
68 #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
69
70-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
71+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
72
73 #define LINUX_TARGET_LINK_SPEC "%{h*} \
74 %{static:-Bstatic} \
75diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
76index 9a6e2d99896..31efbb73016 100644
77--- a/gcc/config/i386/linux.h
78+++ b/gcc/config/i386/linux.h
79@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3. If not see
80 <http://www.gnu.org/licenses/>. */
81
82 #define GNU_USER_LINK_EMULATION "elf_i386"
83-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
84+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
85
86 #undef MUSL_DYNAMIC_LINKER
87 #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
88diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
89index c08221c4210..dbb474d792b 100644
90--- a/gcc/config/i386/linux64.h
91+++ b/gcc/config/i386/linux64.h
92@@ -27,9 +27,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
93 #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
94 #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
95
96-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
97-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
98-#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
99+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
100+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2"
101+#define GLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-linux-x32.so.2"
102
103 #undef MUSL_DYNAMIC_LINKER32
104 #define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1"
105diff --git a/gcc/config/linux.h b/gcc/config/linux.h
106index c3c4a219e67..4b05d8e93d1 100644
107--- a/gcc/config/linux.h
108+++ b/gcc/config/linux.h
109@@ -94,10 +94,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
110 GLIBC_DYNAMIC_LINKER must be defined for each target using them, or
111 GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets
112 supporting both 32-bit and 64-bit compilation. */
113-#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
114-#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
115-#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
116-#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0"
117+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0"
118+#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0"
119+#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0"
120+#define UCLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ldx32-uClibc.so.0"
121 #define BIONIC_DYNAMIC_LINKER "/system/bin/linker"
122 #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
123 #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
124diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
125index 6f79ac9c01a..25de96f9561 100644
126--- a/gcc/config/mips/linux.h
127+++ b/gcc/config/mips/linux.h
128@@ -22,20 +22,20 @@ along with GCC; see the file COPYING3. If not see
129 #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
130
131 #define GLIBC_DYNAMIC_LINKER32 \
132- "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}"
133+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
134 #define GLIBC_DYNAMIC_LINKER64 \
135- "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib64/ld.so.1}"
136+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
137 #define GLIBC_DYNAMIC_LINKERN32 \
138- "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib32/ld.so.1}"
139+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
140
141 #undef UCLIBC_DYNAMIC_LINKER32
142 #define UCLIBC_DYNAMIC_LINKER32 \
143- "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}"
144+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
145 #undef UCLIBC_DYNAMIC_LINKER64
146 #define UCLIBC_DYNAMIC_LINKER64 \
147- "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}"
148+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld64-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld64-uClibc.so.0}"
149 #define UCLIBC_DYNAMIC_LINKERN32 \
150- "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}"
151+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
152
153 #undef MUSL_DYNAMIC_LINKER32
154 #define MUSL_DYNAMIC_LINKER32 \
155diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
Brad Bishopc68388fc2019-08-26 01:33:31 -0400156index 9946d3fed94..45a9a7cae59 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400157--- a/gcc/config/rs6000/linux64.h
158+++ b/gcc/config/rs6000/linux64.h
Brad Bishopc68388fc2019-08-26 01:33:31 -0400159@@ -423,24 +423,19 @@ extern int dot_symbols;
Brad Bishopc342db32019-05-15 21:57:59 -0400160 #undef LINK_OS_DEFAULT_SPEC
161 #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
162
163-#define GLIBC_DYNAMIC_LINKER32 "%(dynamic_linker_prefix)/lib/ld.so.1"
164-
165+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1"
166 #ifdef LINUX64_DEFAULT_ABI_ELFv2
167-#define GLIBC_DYNAMIC_LINKER64 \
168-"%{mabi=elfv1:%(dynamic_linker_prefix)/lib64/ld64.so.1;" \
169-":%(dynamic_linker_prefix)/lib64/ld64.so.2}"
170+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:" SYSTEMLIBS_DIR "ld64.so.1;:" SYSTEMLIBS_DIR "ld64.so.2}"
171 #else
172-#define GLIBC_DYNAMIC_LINKER64 \
173-"%{mabi=elfv2:%(dynamic_linker_prefix)/lib64/ld64.so.2;" \
174-":%(dynamic_linker_prefix)/lib64/ld64.so.1}"
175+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:" SYSTEMLIBS_DIR "ld64.so.2;:" SYSTEMLIBS_DIR "ld64.so.1}"
176 #endif
177
178 #undef MUSL_DYNAMIC_LINKER32
179 #define MUSL_DYNAMIC_LINKER32 \
180- "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
181+ SYSTEMLIBS_DIR "ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
182 #undef MUSL_DYNAMIC_LINKER64
183 #define MUSL_DYNAMIC_LINKER64 \
184- "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
185+ SYSTEMLIBS_DIR "ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
186
187 #undef DEFAULT_ASM_ENDIAN
188 #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
189diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
190index c9897b7aca5..82f275319cc 100644
191--- a/gcc/config/sh/linux.h
192+++ b/gcc/config/sh/linux.h
193@@ -64,7 +64,7 @@ along with GCC; see the file COPYING3. If not see
194 "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \
195 "%{mfdpic:-fdpic}.so.1"
196
197-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
198+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
199
200 #undef SUBTARGET_LINK_EMUL_SUFFIX
201 #define SUBTARGET_LINK_EMUL_SUFFIX "%{mfdpic:_fd;:_linux}"
202diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
Brad Bishop96ff1982019-08-19 13:50:42 -0400203index 08476f1d94d..80440e712ad 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400204--- a/gcc/config/sparc/linux.h
205+++ b/gcc/config/sparc/linux.h
Brad Bishop96ff1982019-08-19 13:50:42 -0400206@@ -84,7 +84,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
Brad Bishopc342db32019-05-15 21:57:59 -0400207 When the -shared link option is used a final link is not being
208 done. */
209
210-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
211+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
212
213 #undef LINK_SPEC
214 #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
215diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
Brad Bishop96ff1982019-08-19 13:50:42 -0400216index 789d1df4bd5..b920c680fb1 100644
Brad Bishopc342db32019-05-15 21:57:59 -0400217--- a/gcc/config/sparc/linux64.h
218+++ b/gcc/config/sparc/linux64.h
219@@ -84,8 +84,8 @@ along with GCC; see the file COPYING3. If not see
220 When the -shared link option is used a final link is not being
221 done. */
222
223-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
224-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
225+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
226+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux.so.2"
227
228 #ifdef SPARC_BI_ARCH
229
230--
Brad Bishopc68388fc2019-08-26 01:33:31 -04002312.22.1
Brad Bishopc342db32019-05-15 21:57:59 -0400232