]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/blob
cc37d30c53edb6b16e8668df35477c9ab8d85b4e
[thirdparty/openembedded/openembedded-core-contrib.git] /
1 From 9701cab0fdf6a0c011978ae140c4c12a962956f6 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 2c9a487335c..3b01357b651 100644
33 --- a/ld/Makefile.am
34 +++ b/ld/Makefile.am
35 @@ -42,7 +42,8 @@ ZLIBINC = @zlibinc@
36
37 ELF_CLFAGS=-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_CLFAGS)
45 diff --git a/ld/Makefile.in b/ld/Makefile.in
46 index b41941c89e2..a6382bf2a45 100644
47 --- a/ld/Makefile.in
48 +++ b/ld/Makefile.in
49 @@ -554,7 +554,8 @@ ZLIB = @zlibdir@ -lz
50 ZLIBINC = @zlibinc@
51 ELF_CLFAGS = -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_CLFAGS)
58
59 diff --git a/ld/ldelf.c b/ld/ldelf.c
60 index f7407ab55a7..b25781cc0c4 100644
61 --- a/ld/ldelf.c
62 +++ b/ld/ldelf.c
63 @@ -911,7 +911,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, "/etc/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 863df0293ea..080b1c4c6c2 100644
74 --- a/ld/ldmain.c
75 +++ b/ld/ldmain.c
76 @@ -70,6 +70,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 38e63922d31..0966914938c 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;