patches/binutils/2.19/130-check_ldrunpath_length.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Oct 03 23:10:46 2010 +0200 (2010-10-03)
changeset 2130 b46ecc90d3ab
permissions -rw-r--r--
complibs: better deduce whether to backup complibs or not

To decide whether we need to backup the companion libraries,
do not rely on the !shared case. In the future other cases
may require not to save the companion libraries (eg. if using
the ones provided by the host distro).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 Original patch from Gentoo:
     2 gentoo/src/patchsets/binutils/2.19/42_all_012_check_ldrunpath_length.patch
     3 
     4 Originaly from Debian:
     5 ## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
     6 ##
     7 ## All lines beginning with `## DP:' are a description of the patch.
     8 ## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
     9 ## DP: cases where -rpath isn't specified. (#151024)
    10 
    11 diff -durN binutils-2.19.orig/ld/emultempl/elf32.em binutils-2.19/ld/emultempl/elf32.em
    12 --- binutils-2.19.orig/ld/emultempl/elf32.em	2008-09-07 06:02:31.000000000 +0200
    13 +++ binutils-2.19/ld/emultempl/elf32.em	2008-11-23 16:25:51.000000000 +0100
    14 @@ -1219,6 +1219,8 @@
    15  	      && command_line.rpath == NULL)
    16  	    {
    17  	      lib_path = (const char *) getenv ("LD_RUN_PATH");
    18 +	      if ((lib_path) && (strlen (lib_path) == 0))
    19 +		  lib_path = NULL;
    20  	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
    21  						      force))
    22  		break;
    23 @@ -1404,6 +1406,8 @@
    24    rpath = command_line.rpath;
    25    if (rpath == NULL)
    26      rpath = (const char *) getenv ("LD_RUN_PATH");
    27 +  if ((rpath) && (strlen (rpath) == 0))
    28 +      rpath = NULL;
    29    if (! (bfd_elf_size_dynamic_sections
    30  	 (link_info.output_bfd, command_line.soname, rpath,
    31  	  command_line.filter_shlib,