patches/binutils/2.20.1/140-check_ldrunpath_length.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Aug 02 18:28:10 2011 +0200 (2011-08-02)
changeset 2590 b64cfb67944e
parent 1621 60446d2e5660
permissions -rw-r--r--
scripts/functions: svn retrieval first tries the mirror for tarballs

The svn download helper looks for the local tarballs dir to see if it
can find a pre-downloaded tarball, and if it does not find it, does
the actual fetch to upstream via svn.

In the process, it does not even try to get a tarball from the local
mirror, which can be useful if the mirror has been pre-populated
manually (or with a previously downloaded tree).

Fake a tarball get with the standard tarball-download helper, but
without specifying any upstream URL, which makes the helper directly
try the LAN mirror.

Of course, if no mirror is specified, no URL wil be available, and
the standard svn retrieval will kick in.

Reported-by: ANDY KENNEDY <ANDY.KENNEDY@adtran.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@1614
     1
#!/bin/sh -e
yann@1614
     2
## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
yann@1614
     3
##
yann@1614
     4
## All lines beginning with `## DP:' are a description of the patch.
yann@1614
     5
## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
yann@1614
     6
## DP: cases where -rpath isn't specified. (#151024)
yann@1614
     7
yann@1614
     8
if [ $# -ne 1 ]; then
yann@1614
     9
    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
yann@1614
    10
    exit 1
yann@1614
    11
fi
yann@1614
    12
yann@1614
    13
[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
yann@1614
    14
patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
yann@1614
    15
yann@1614
    16
case "$1" in
yann@1614
    17
       -patch) patch $patch_opts -p1 < $0;;
yann@1614
    18
       -unpatch) patch $patch_opts -p1 -R < $0;;
yann@1614
    19
        *)
yann@1614
    20
                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
yann@1614
    21
                exit 1;;
yann@1614
    22
esac
yann@1614
    23
yann@1614
    24
exit 0
yann@1614
    25
yann@1614
    26
@DPATCH@
yann@1614
    27
diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
yann@2088
    28
yann@2088
    29
diff -durN binutils-2.20.1.orig/ld/emultempl/elf32.em binutils-2.20.1/ld/emultempl/elf32.em
yann@2088
    30
--- binutils-2.20.1.orig/ld/emultempl/elf32.em	2009-09-14 13:43:30.000000000 +0200
yann@2088
    31
+++ binutils-2.20.1/ld/emultempl/elf32.em	2010-08-17 19:32:09.000000000 +0200
yann@2088
    32
@@ -1233,6 +1233,8 @@
yann@1614
    33
 	      && command_line.rpath == NULL)
yann@1614
    34
 	    {
yann@1614
    35
 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
yann@1614
    36
+	      if ((lib_path) && (strlen (lib_path) == 0))
yann@1614
    37
+		  lib_path = NULL;
yann@1614
    38
 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
yann@1614
    39
 						      force))
yann@1614
    40
 		break;
yann@2088
    41
@@ -1418,6 +1420,8 @@
yann@1614
    42
   rpath = command_line.rpath;
yann@1614
    43
   if (rpath == NULL)
yann@1614
    44
     rpath = (const char *) getenv ("LD_RUN_PATH");
yann@1614
    45
+  if ((rpath) && (strlen (rpath) == 0))
yann@1614
    46
+      rpath = NULL;
yann@1614
    47
   if (! (bfd_elf_size_dynamic_sections
fr@1621
    48
 	 (link_info.output_bfd, command_line.soname, rpath,
yann@1614
    49
 	  command_line.filter_shlib,