patches/binutils/2.20/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 1614 3f76cdbceb6e
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@1614
    28
--- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em	2004-05-21 23:12:58.000000000 +0100
fr@1621
    29
+++ binutils-2.20/ld/emultempl/elf32.em	2004-05-21 23:12:59.000000000 +0100
yann@1614
    30
@@ -692,6 +692,8 @@
yann@1614
    31
 	      && command_line.rpath == NULL)
yann@1614
    32
 	    {
yann@1614
    33
 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
yann@1614
    34
+	      if ((lib_path) && (strlen (lib_path) == 0))
yann@1614
    35
+		  lib_path = NULL;
yann@1614
    36
 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
yann@1614
    37
 						      force))
yann@1614
    38
 		break;
yann@1614
    39
@@ -871,6 +873,8 @@
yann@1614
    40
   rpath = command_line.rpath;
yann@1614
    41
   if (rpath == NULL)
yann@1614
    42
     rpath = (const char *) getenv ("LD_RUN_PATH");
yann@1614
    43
+  if ((rpath) && (strlen (rpath) == 0))
yann@1614
    44
+      rpath = NULL;
yann@1614
    45
   if (! (bfd_elf_size_dynamic_sections
fr@1621
    46
 	 (link_info.output_bfd, command_line.soname, rpath,
yann@1614
    47
 	  command_line.filter_shlib,