|
@@ -0,0 +1,80 @@
|
|
|
+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;
|