mirror of
https://git.yoctoproject.org/poky
synced 2026-03-07 07:49:40 +01:00
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. There add a patch which passes 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. (From OE-Core rev: f6c1089642934ad93056ef19a0888965486ee030) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
81 lines
3.0 KiB
Diff
81 lines
3.0 KiB
Diff
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]
|
|
|
|
Index: git/ld/Makefile.am
|
|
===================================================================
|
|
--- git.orig/ld/Makefile.am
|
|
+++ git/ld/Makefile.am
|
|
@@ -36,7 +36,8 @@ am__skipyacc =
|
|
|
|
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)
|
|
Index: git/ld/Makefile.in
|
|
===================================================================
|
|
--- git.orig/ld/Makefile.in
|
|
+++ git/ld/Makefile.in
|
|
@@ -546,7 +546,8 @@ am__skiplex =
|
|
am__skipyacc =
|
|
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)
|
|
@ENABLE_PLUGINS_FALSE@PLUGIN_C =
|
|
Index: git/ld/emultempl/elf32.em
|
|
===================================================================
|
|
--- git.orig/ld/emultempl/elf32.em
|
|
+++ git/ld/emultempl/elf32.em
|
|
@@ -1024,7 +1024,7 @@ gld${EMULATION_NAME}_check_ld_so_conf (c
|
|
|
|
info.path = NULL;
|
|
info.len = info.alloc = 0;
|
|
- tmppath = concat (ld_sysroot, "${prefix}/etc/ld.so.conf",
|
|
+ tmppath = concat (ld_sysconfdir, "/ld.so.conf",
|
|
(const char *) NULL);
|
|
if (!gld${EMULATION_NAME}_parse_ld_so_conf (&info, tmppath))
|
|
{
|
|
Index: git/ld/ldmain.c
|
|
===================================================================
|
|
--- git.orig/ld/ldmain.c
|
|
+++ git/ld/ldmain.c
|
|
@@ -68,6 +68,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;
|
|
Index: git/ld/ldmain.h
|
|
===================================================================
|
|
--- git.orig/ld/ldmain.h
|
|
+++ git/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;
|