patches/binutils/2.18.50.0.6/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 475 150c918bcb7b
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@475
     1
Check LD_RUN_PATH length, copied from buildroot.
yann@475
     2
yann@475
     3
 binutils-2.18.50.0.6/ld/emultempl/elf32.em |    4     4     0     0 ++++
yann@475
     4
 1 file changed, 4 insertions(+)
yann@475
     5
yann@475
     6
diff -durN binutils-2.18.50.0.6.orig/ld/emultempl/elf32.em binutils-2.18.50.0.6/ld/emultempl/elf32.em
yann@475
     7
--- binutils-2.18.50.0.6.orig/ld/emultempl/elf32.em	2008-04-03 18:54:25.000000000 +0200
yann@475
     8
+++ binutils-2.18.50.0.6/ld/emultempl/elf32.em	2008-05-02 23:30:08.000000000 +0200
yann@475
     9
@@ -1220,6 +1220,8 @@
yann@475
    10
 	      && command_line.rpath == NULL)
yann@475
    11
 	    {
yann@475
    12
 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
yann@475
    13
+	      if ((lib_path) && (strlen (lib_path) == 0))
yann@475
    14
+		  lib_path = NULL;
yann@475
    15
 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
yann@475
    16
 						      force))
yann@475
    17
 		break;
yann@475
    18
@@ -1405,6 +1407,8 @@
yann@475
    19
   rpath = command_line.rpath;
yann@475
    20
   if (rpath == NULL)
yann@475
    21
     rpath = (const char *) getenv ("LD_RUN_PATH");
yann@475
    22
+  if ((rpath) && (strlen (rpath) == 0))
yann@475
    23
+      rpath = NULL;
yann@475
    24
   if (! (bfd_elf_size_dynamic_sections
yann@475
    25
 	 (link_info.output_bfd, command_line.soname, rpath,
yann@475
    26
 	  command_line.filter_shlib,