diff options
Diffstat (limited to 'meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch')
-rw-r--r-- | meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch b/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch new file mode 100644 index 0000000000..8b59ba5dec --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch | |||
@@ -0,0 +1,95 @@ | |||
1 | From d057b215f114f6158b4010ab44a19cae9dcc8386 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 4a9b8404b7..1c132d3ce4 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 46d9b14077..e453bc1b33 100644 | ||
47 | --- a/ld/Makefile.in | ||
48 | +++ b/ld/Makefile.in | ||
49 | @@ -555,7 +555,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 | @ENABLE_PLUGINS_FALSE@PLUGIN_C = | ||
59 | diff --git a/ld/ldelf.c b/ld/ldelf.c | ||
60 | index 2e27cf48a8..a095d6aac5 100644 | ||
61 | --- a/ld/ldelf.c | ||
62 | +++ b/ld/ldelf.c | ||
63 | @@ -907,7 +907,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 c4af10f4e9..da1ad17763 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 0f05821d1e..54c36a94ce 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; | ||