1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- From 67735b3647f98ce0f010ff8b4f9b5c5da576cb17 Mon Sep 17 00:00:00 2001
- From: Richard Purdie <richard.purdie@linuxfoundation.org>
- Date: Wed, 19 Feb 2020 09:51:16 -0800
- Subject: [PATCH] binutils-nativesdk: Search for alternative ld.so.conf in SDK
- installation
- We need binutils to look at our ld.so.conf file within the SDK to ensure
- we search the SDK's libdirs as well as those from the host system.
- We therefore pass in the directory to the code using a define, then add
- it to a section we relocate in a similar way to the way we relocate the
- gcc internal paths. This ensures that ld works correctly in our buildtools
- tarball.
- Standard sysroot relocation doesn't work since we're not in a sysroot,
- we want to use both the host system and SDK libs.
- Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- 2020/1/17
- Upstream-Status: Inappropriate [OE specific tweak]
- Signed-off-by: Khem Raj <raj.khem@gmail.com>
- ---
- ld/Makefile.am | 3 ++-
- ld/Makefile.in | 3 ++-
- ld/ldelf.c | 2 +-
- ld/ldmain.c | 1 +
- ld/ldmain.h | 1 +
- 5 files changed, 7 insertions(+), 3 deletions(-)
- diff --git a/ld/Makefile.am b/ld/Makefile.am
- index d31021c13e2..29782385ca4 100644
- --- a/ld/Makefile.am
- +++ b/ld/Makefile.am
- @@ -42,7 +42,8 @@ ZLIBINC = @zlibinc@
-
- ELF_CLFAGS=-DELF_LIST_OPTIONS=@elf_list_options@ \
- -DELF_SHLIB_LIST_OPTIONS=@elf_shlib_list_options@ \
- - -DELF_PLT_UNWIND_LIST_OPTIONS=@elf_plt_unwind_list_options@
- + -DELF_PLT_UNWIND_LIST_OPTIONS=@elf_plt_unwind_list_options@ \
- + -DSYSCONFDIR="\"$(sysconfdir)\""
- WARN_CFLAGS = @WARN_CFLAGS@
- NO_WERROR = @NO_WERROR@
- AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) $(JANSSON_CFLAGS)
- diff --git a/ld/Makefile.in b/ld/Makefile.in
- index ee0c98f65b0..04ee68a2c67 100644
- --- a/ld/Makefile.in
- +++ b/ld/Makefile.in
- @@ -562,7 +562,8 @@ ZLIB = @zlibdir@ -lz
- ZLIBINC = @zlibinc@
- ELF_CLFAGS = -DELF_LIST_OPTIONS=@elf_list_options@ \
- -DELF_SHLIB_LIST_OPTIONS=@elf_shlib_list_options@ \
- - -DELF_PLT_UNWIND_LIST_OPTIONS=@elf_plt_unwind_list_options@
- + -DELF_PLT_UNWIND_LIST_OPTIONS=@elf_plt_unwind_list_options@ \
- + -DSYSCONFDIR="\"$(sysconfdir)\""
-
- AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) $(JANSSON_CFLAGS)
-
- diff --git a/ld/ldelf.c b/ld/ldelf.c
- index bfa0d54753a..0d61a3209ec 100644
- --- a/ld/ldelf.c
- +++ b/ld/ldelf.c
- @@ -936,7 +936,7 @@ ldelf_check_ld_so_conf (const struct bfd_link_needed_list *l, int force,
-
- info.path = NULL;
- info.len = info.alloc = 0;
- - tmppath = concat (ld_sysroot, prefix, "/etc/ld.so.conf",
- + tmppath = concat (ld_sysconfdir, "/etc/ld.so.conf",
- (const char *) NULL);
- if (!ldelf_parse_ld_so_conf (&info, tmppath))
- {
- diff --git a/ld/ldmain.c b/ld/ldmain.c
- index ea72b14a301..1ae90a77749 100644
- --- a/ld/ldmain.c
- +++ b/ld/ldmain.c
- @@ -70,6 +70,7 @@ char *program_name;
-
- /* The prefix for system library directories. */
- const char *ld_sysroot;
- +char ld_sysconfdir[4096] __attribute__ ((section (".gccrelocprefix"))) = SYSCONFDIR;
-
- /* The canonical representation of ld_sysroot. */
- char *ld_canon_sysroot;
- diff --git a/ld/ldmain.h b/ld/ldmain.h
- index f6d05a02f59..e60292cd522 100644
- --- a/ld/ldmain.h
- +++ b/ld/ldmain.h
- @@ -23,6 +23,7 @@
-
- extern char *program_name;
- extern const char *ld_sysroot;
- +extern char ld_sysconfdir[4096];
- extern char *ld_canon_sysroot;
- extern int ld_canon_sysroot_len;
- extern FILE *saved_script_handle;
|