patches/binutils/2.18.50.0.8/120-check-ldrunpath-length.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Jan 05 20:37:03 2009 +0000 (2009-01-05)
changeset 1124 eec7a46a4c19
parent 652 bed1088fd34d
permissions -rw-r--r--
Fix C library addons extraction:
- renaming the dircetory in CT_ExtratAndPatch is wrong:
- patches against the C library addons may be build against the short *or* long name... :-(
- symlink is more robust, even if less nice
- renaming the directory _after_ CT_ExtractAndPatch is too late:
- if patches are against the short name, and we renamed too the long name, patches don't apply
- so we'll never reach the point where we rename

/trunk/scripts/build/libc/glibc.sh | 1 0 1 0 -
/trunk/scripts/build/libc/eglibc.sh | 1 0 1 0 -
/trunk/scripts/functions | 2 1 1 0 +-
3 files changed, 1 insertion(+), 3 deletions(-)
yann@652
     1
diff -durN binutils-2.18.50.0.8.orig/ld/emultempl/elf32.em binutils-2.18.50.0.8/ld/emultempl/elf32.em
yann@652
     2
--- binutils-2.18.50.0.8.orig/ld/emultempl/elf32.em	2008-07-10 17:33:23.000000000 +0200
yann@652
     3
+++ binutils-2.18.50.0.8/ld/emultempl/elf32.em	2008-07-13 23:19:29.000000000 +0200
yann@652
     4
@@ -1220,6 +1220,8 @@
yann@652
     5
 	      && command_line.rpath == NULL)
yann@652
     6
 	    {
yann@652
     7
 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
yann@652
     8
+	      if ((lib_path) && (strlen (lib_path) == 0))
yann@652
     9
+		  lib_path = NULL;
yann@652
    10
 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
yann@652
    11
 						      force))
yann@652
    12
 		break;
yann@652
    13
@@ -1405,6 +1407,8 @@
yann@652
    14
   rpath = command_line.rpath;
yann@652
    15
   if (rpath == NULL)
yann@652
    16
     rpath = (const char *) getenv ("LD_RUN_PATH");
yann@652
    17
+  if ((rpath) && (strlen (rpath) == 0))
yann@652
    18
+      rpath = NULL;
yann@652
    19
   if (! (bfd_elf_size_dynamic_sections
yann@652
    20
 	 (link_info.output_bfd, command_line.soname, rpath,
yann@652
    21
 	  command_line.filter_shlib,