blob: 62083513244ab4b3c52505c677f25df76565aba3 [file] [log] [blame]
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001From f6b41b62ea62a0f1447d9fc235f7fd2bbf3fe7c2 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 29 Mar 2013 09:24:50 +0400
4Subject: [PATCH 22/46] 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
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 | 10 +++++-----
27 gcc/config/sh/linux.h | 2 +-
28 gcc/config/sparc/linux.h | 2 +-
29 gcc/config/sparc/linux64.h | 4 ++--
30 11 files changed, 28 insertions(+), 28 deletions(-)
31
32diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
33index 2c70a2f..dd048db 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 e9d65dc..cfdf3f0 100644
49--- a/gcc/config/arm/linux-eabi.h
50+++ b/gcc/config/arm/linux-eabi.h
51@@ -68,8 +68,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 49ad954..a5ab559 100644
64--- a/gcc/config/arm/linux-elf.h
65+++ b/gcc/config/arm/linux-elf.h
66@@ -62,7 +62,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 a100963..21ba2b2 100644
77--- a/gcc/config/i386/linux.h
78+++ b/gcc/config/i386/linux.h
79@@ -20,4 +20,4 @@ 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"
85diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
86index a27d3be..6185cce 100644
87--- a/gcc/config/i386/linux64.h
88+++ b/gcc/config/i386/linux64.h
89@@ -27,6 +27,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
90 #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
91 #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
92
93-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
94-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
95-#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
96+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
97+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2"
98+#define GLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-linux-x32.so.2"
99diff --git a/gcc/config/linux.h b/gcc/config/linux.h
100index 857389a..22b9be5 100644
101--- a/gcc/config/linux.h
102+++ b/gcc/config/linux.h
103@@ -73,10 +73,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
104 GLIBC_DYNAMIC_LINKER must be defined for each target using them, or
105 GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets
106 supporting both 32-bit and 64-bit compilation. */
107-#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
108-#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
109-#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
110-#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0"
111+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0"
112+#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0"
113+#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0"
114+#define UCLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ldx32-uClibc.so.0"
115 #define BIONIC_DYNAMIC_LINKER "/system/bin/linker"
116 #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
117 #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
118diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
119index 91df261..c306afb 100644
120--- a/gcc/config/mips/linux.h
121+++ b/gcc/config/mips/linux.h
122@@ -22,20 +22,20 @@ along with GCC; see the file COPYING3. If not see
123 #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
124
125 #define GLIBC_DYNAMIC_LINKER32 \
126- "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}"
127+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
128 #define GLIBC_DYNAMIC_LINKER64 \
129- "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib64/ld.so.1}"
130+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
131 #define GLIBC_DYNAMIC_LINKERN32 \
132- "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib32/ld.so.1}"
133+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
134
135 #undef UCLIBC_DYNAMIC_LINKER32
136 #define UCLIBC_DYNAMIC_LINKER32 \
137- "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}"
138+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
139 #undef UCLIBC_DYNAMIC_LINKER64
140 #define UCLIBC_DYNAMIC_LINKER64 \
141- "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}"
142+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld64-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld64-uClibc.so.0}"
143 #define UCLIBC_DYNAMIC_LINKERN32 \
144- "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}"
145+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
146
147 #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
148 #define GNU_USER_DYNAMIC_LINKERN32 \
149diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
150index 0879e7e..31c4338 100644
151--- a/gcc/config/rs6000/linux64.h
152+++ b/gcc/config/rs6000/linux64.h
153@@ -357,14 +357,14 @@ extern int dot_symbols;
154 #undef LINK_OS_DEFAULT_SPEC
155 #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
156
157-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
158+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1"
159 #ifdef LINUX64_DEFAULT_ABI_ELFv2
160-#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:/lib64/ld64.so.1;:/lib64/ld64.so.2}"
161+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:" SYSTEMLIBS_DIR "ld64.so.1;:" SYSTEMLIBS_DIR "ld64.so.2}"
162 #else
163-#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:/lib64/ld64.so.2;:/lib64/ld64.so.1}"
164+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:" SYSTEMLIBS_DIR "ld64.so.2;:" SYSTEMLIBS_DIR "ld64.so.1}"
165 #endif
166-#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
167-#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
168+#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0"
169+#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0"
170 #if DEFAULT_LIBC == LIBC_UCLIBC
171 #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
172 #elif DEFAULT_LIBC == LIBC_GLIBC
173diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
174index 0f5d614..168416c 100644
175--- a/gcc/config/sh/linux.h
176+++ b/gcc/config/sh/linux.h
177@@ -43,7 +43,7 @@ along with GCC; see the file COPYING3. If not see
178
179 #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
180
181-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
182+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
183
184 #undef SUBTARGET_LINK_EMUL_SUFFIX
185 #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
186diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
187index 56def4b..00b564c 100644
188--- a/gcc/config/sparc/linux.h
189+++ b/gcc/config/sparc/linux.h
190@@ -83,7 +83,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
191 When the -shared link option is used a final link is not being
192 done. */
193
194-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
195+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
196
197 #undef LINK_SPEC
198 #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
199diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
200index fa805fd..0eb4acd 100644
201--- a/gcc/config/sparc/linux64.h
202+++ b/gcc/config/sparc/linux64.h
203@@ -84,8 +84,8 @@ along with GCC; see the file COPYING3. If not see
204 When the -shared link option is used a final link is not being
205 done. */
206
207-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
208-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
209+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
210+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux.so.2"
211
212 #ifdef SPARC_BI_ARCH
213
214--
2152.6.3
216