Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 1 | From 0ec74744a4cba7c5fdfaa2685995119a4fca0260 Mon Sep 17 00:00:00 2001 |
| 2 | From: Amarnath Valluri <amarnath.valluri@intel.com> |
| 3 | Date: Wed, 18 Jan 2017 16:14:37 +0200 |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 4 | Subject: [PATCH] Make dynamic linker a relative symlink to libc |
| 5 | |
| 6 | absolute symlink into $(libdir) fails to load in a cross build |
| 7 | environment, especially when executing qemu in usermode to run target |
| 8 | applications, which cross build systems often do, since not everything |
| 9 | can be computed during cross builds, qemu in usermode often comes to aid |
| 10 | in such situations to feed into cross builds. |
| 11 | |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 12 | V2: |
| 13 | Make use of 'ln -r' to create relative symlinks, as most fo the distros |
| 14 | shipping coreutils 8.16+ |
| 15 | |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 16 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 17 | Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com> |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 18 | --- |
| 19 | Upstream-Status: Pending |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 20 | --- |
| 21 | Makefile | 2 +- |
| 22 | tools/install.sh | 8 +++++--- |
| 23 | 2 files changed, 6 insertions(+), 4 deletions(-) |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 24 | |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 25 | --- a/Makefile |
| 26 | +++ b/Makefile |
Andrew Geissler | 475cb72 | 2020-07-10 16:00:51 -0500 | [diff] [blame] | 27 | @@ -210,7 +210,7 @@ $(DESTDIR)$(includedir)/%: $(srcdir)/inc |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 28 | $(INSTALL) -D -m 644 $< $@ |
| 29 | |
| 30 | $(DESTDIR)$(LDSO_PATHNAME): $(DESTDIR)$(libdir)/libc.so |
| 31 | - $(INSTALL) -D -l $(libdir)/libc.so $@ || true |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 32 | + $(INSTALL) -D -r $(DESTDIR)$(libdir)/libc.so $@ || true |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 33 | |
| 34 | install-libs: $(ALL_LIBS:lib/%=$(DESTDIR)$(libdir)/%) $(if $(SHARED_LIBS),$(DESTDIR)$(LDSO_PATHNAME),) |
| 35 | |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 36 | --- a/tools/install.sh |
| 37 | +++ b/tools/install.sh |
| 38 | @@ -6,18 +6,20 @@ |
| 39 | # |
| 40 | |
| 41 | usage() { |
| 42 | -printf "usage: %s [-D] [-l] [-m mode] src dest\n" "$0" 1>&2 |
| 43 | +printf "usage: %s [-D] [-l] [-r] [-m mode] src dest\n" "$0" 1>&2 |
| 44 | exit 1 |
| 45 | } |
| 46 | |
| 47 | mkdirp= |
| 48 | symlink= |
| 49 | +symlinkflags="-s" |
| 50 | mode=755 |
| 51 | |
| 52 | -while getopts Dlm: name ; do |
| 53 | +while getopts Dlrm: name ; do |
| 54 | case "$name" in |
| 55 | D) mkdirp=yes ;; |
| 56 | l) symlink=yes ;; |
| 57 | +r) symlink=yes; symlinkflags="$symlinkflags -r" ;; |
| 58 | m) mode=$OPTARG ;; |
| 59 | ?) usage ;; |
| 60 | esac |
Andrew Geissler | 475cb72 | 2020-07-10 16:00:51 -0500 | [diff] [blame] | 61 | @@ -48,7 +50,7 @@ trap 'rm -f "$tmp"' EXIT INT QUIT TERM H |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 62 | umask 077 |
| 63 | |
| 64 | if test "$symlink" ; then |
| 65 | -ln -s "$1" "$tmp" |
| 66 | +ln $symlinkflags "$1" "$tmp" |
| 67 | else |
| 68 | cat < "$1" > "$tmp" |
| 69 | chmod "$mode" "$tmp" |