]> code.ossystems Code Review - openembedded-core.git/blob
28daf58f74a21f93f374037762abf0e521bee342
[openembedded-core.git] /
1 From 3bbec749ec9fe681ade6812c48c541a752fcffd5 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 03/17] binutils-nativesdk: Search for alternative ld.so.conf
5  in SDK 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 02c4fc16395..a5762227f0a 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 2fe12e14f63..8f0c83ac8d2 100644
47 --- a/ld/Makefile.in
48 +++ b/ld/Makefile.in
49 @@ -548,7 +548,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 bada3ade2d7..b4784009d7a 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 08be9030cb5..f5c5a336320 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 ac7db5720d5..1cbe1771912 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;
96 -- 
97 2.28.0
98