]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/blob
374fbd6f413398c232af39c6b6f276f9365f0d43
[thirdparty/openembedded/openembedded-core-contrib.git] /
1 From d718e17e1668880a85ff05993f0027d9c9ad6935 Mon Sep 17 00:00:00 2001
2 From: Richard Purdie <richard.purdie@linuxfoundation.org>
3 Date: Wed, 19 Feb 2020 09:51:16 -0800
4 Subject: [PATCH] binutils-nativesdk: Search for alternative ld.so.conf in SDK
5 installation
6
7 We need binutils to look at our ld.so.conf file within the SDK to ensure
8 we search the SDK's libdirs as well as those from the host system.
9
10 We therefore pass in the directory to the code using a define, then add
11 it to a section we relocate in a similar way to the way we relocate the
12 gcc internal paths. This ensures that ld works correctly in our buildtools
13 tarball.
14
15 Standard sysroot relocation doesn't work since we're not in a sysroot,
16 we want to use both the host system and SDK libs.
17
18 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
19 2020/1/17
20 Upstream-Status: Inappropriate [OE specific tweak]
21
22 Signed-off-by: Khem Raj <raj.khem@gmail.com>
23 ---
24 ld/Makefile.am | 3 ++-
25 ld/Makefile.in | 3 ++-
26 ld/ldelf.c | 2 +-
27 ld/ldmain.c | 1 +
28 ld/ldmain.h | 1 +
29 5 files changed, 7 insertions(+), 3 deletions(-)
30
31 diff --git a/ld/Makefile.am b/ld/Makefile.am
32 index ccff9289924..cf2c29e89a3 100644
33 --- a/ld/Makefile.am
34 +++ b/ld/Makefile.am
35 @@ -42,7 +42,8 @@ ZLIBINC = @zlibinc@
36
37 ELF_CFLAGS=-DELF_LIST_OPTIONS=@elf_list_options@ \
38 -DELF_SHLIB_LIST_OPTIONS=@elf_shlib_list_options@ \
39 - -DELF_PLT_UNWIND_LIST_OPTIONS=@elf_plt_unwind_list_options@
40 + -DELF_PLT_UNWIND_LIST_OPTIONS=@elf_plt_unwind_list_options@ \
41 + -DSYSCONFDIR="\"$(sysconfdir)\""
42 WARN_CFLAGS = @WARN_CFLAGS@
43 NO_WERROR = @NO_WERROR@
44 AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CFLAGS) $(JANSSON_CFLAGS) $(ZSTD_CFLAGS)
45 diff --git a/ld/Makefile.in b/ld/Makefile.in
46 index 3e24bd4deb2..23d4f1f3132 100644
47 --- a/ld/Makefile.in
48 +++ b/ld/Makefile.in
49 @@ -576,7 +576,8 @@ ZLIB = @zlibdir@ -lz
50 ZLIBINC = @zlibinc@
51 ELF_CFLAGS = -DELF_LIST_OPTIONS=@elf_list_options@ \
52 -DELF_SHLIB_LIST_OPTIONS=@elf_shlib_list_options@ \
53 - -DELF_PLT_UNWIND_LIST_OPTIONS=@elf_plt_unwind_list_options@
54 + -DELF_PLT_UNWIND_LIST_OPTIONS=@elf_plt_unwind_list_options@ \
55 + -DSYSCONFDIR="\"$(sysconfdir)\""
56
57 AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CFLAGS) $(JANSSON_CFLAGS) $(ZSTD_CFLAGS)
58
59 diff --git a/ld/ldelf.c b/ld/ldelf.c
60 index 4a1aa044e70..f6f3ac11a76 100644
61 --- a/ld/ldelf.c
62 +++ b/ld/ldelf.c
63 @@ -943,7 +943,7 @@ ldelf_check_ld_so_conf (const struct bfd_link_needed_list *l, int force,
64
65 info.path = NULL;
66 info.len = info.alloc = 0;
67 - tmppath = concat (ld_sysroot, prefix, "/etc/ld.so.conf",
68 + tmppath = concat (ld_sysconfdir, "/ld.so.conf",
69 (const char *) NULL);
70 if (!ldelf_parse_ld_so_conf (&info, tmppath))
71 {
72 diff --git a/ld/ldmain.c b/ld/ldmain.c
73 index f1c5f7035c5..cce4991b25a 100644
74 --- a/ld/ldmain.c
75 +++ b/ld/ldmain.c
76 @@ -69,6 +69,7 @@ char *program_name;
77
78 /* The prefix for system library directories. */
79 const char *ld_sysroot;
80 +char ld_sysconfdir[4096] __attribute__ ((section (".gccrelocprefix"))) = SYSCONFDIR;
81
82 /* The canonical representation of ld_sysroot. */
83 char *ld_canon_sysroot;
84 diff --git a/ld/ldmain.h b/ld/ldmain.h
85 index 0baa3c305c3..899c4b591c6 100644
86 --- a/ld/ldmain.h
87 +++ b/ld/ldmain.h
88 @@ -23,6 +23,7 @@
89
90 extern char *program_name;
91 extern const char *ld_sysroot;
92 +extern char ld_sysconfdir[4096];
93 extern char *ld_canon_sysroot;
94 extern int ld_canon_sysroot_len;
95 extern FILE *saved_script_handle;