| 1 | #!/bin/sh -e |
| 2 | ## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org> |
| 3 | ## |
| 4 | ## All lines beginning with `## DP:' are a description of the patch. |
| 5 | ## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for |
| 6 | ## DP: cases where -rpath isn't specified. (#151024) |
| 7 | |
| 8 | if [ $# -ne 1 ]; then |
| 9 | echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" |
| 10 | exit 1 |
| 11 | fi |
| 12 | |
| 13 | [ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts |
| 14 | patch_opts="${patch_opts:--f --no-backup-if-mismatch}" |
| 15 | |
| 16 | case "$1" in |
| 17 | -patch) patch $patch_opts -p1 < $0;; |
| 18 | -unpatch) patch $patch_opts -p1 -R < $0;; |
| 19 | *) |
| 20 | echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" |
| 21 | exit 1;; |
| 22 | esac |
| 23 | |
| 24 | exit 0 |
| 25 | |
| 26 | @DPATCH@ |
| 27 | Index: binutils-2.18/ld/emultempl/elf32.em |
| 28 | =================================================================== |
| 29 | --- binutils-2.18.orig/ld/emultempl/elf32.em 2007-06-28 09:19:34.796946512 +0200 |
| 30 | +++ binutils-2.18/ld/emultempl/elf32.em 2007-06-28 09:19:36.178736448 +0200 |
| 31 | @@ -1216,6 +1216,8 @@ |
| 32 | && command_line.rpath == NULL) |
| 33 | { |
| 34 | lib_path = (const char *) getenv ("LD_RUN_PATH"); |
| 35 | + if ((lib_path) && (strlen (lib_path) == 0)) |
| 36 | + lib_path = NULL; |
| 37 | if (gld${EMULATION_NAME}_search_needed (lib_path, &n, |
| 38 | force)) |
| 39 | break; |
| 40 | @@ -1400,6 +1402,8 @@ |
| 41 | rpath = command_line.rpath; |
| 42 | if (rpath == NULL) |
| 43 | rpath = (const char *) getenv ("LD_RUN_PATH"); |
| 44 | + if ((rpath) && (strlen (rpath) == 0)) |
| 45 | + rpath = NULL; |
| 46 | if (! (bfd_elf_size_dynamic_sections |
| 47 | (output_bfd, command_line.soname, rpath, |
| 48 | command_line.filter_shlib, |
| 49 | |