patches/binutils/2.18.50.0.9/120-check-ldrunpath-length.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Jun 11 21:47:19 2009 +0000 (2009-06-11)
branch1.4
changeset 1451 25d050084e98
parent 747 d3e603e7c17c
permissions -rw-r--r--
populate: fix installing dynamic linker 'ld.so'

The dynamic linker, ld.so, needs the execute bit to be set.
Detect tht the library being installed is in fact ld.so and
install it with 0755 instead of 0644.

Fix detecting src == dst.

Use a simpler command to copy src -> dst.

Also change echo to printf, get rid of 'echo -n', which is
highly non-portable.


-------- diffstat follows --------
/trunk/scripts/populate.in | 76 43 33 0 +++++++++++++++++++++++++++++-----------------------
1 file changed, 43 insertions(+), 33 deletions(-)
(transplanted from d7ddcb75e0f703e2ba6d17169167356389224870)
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,