diff options
Diffstat (limited to 'meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch')
-rw-r--r-- | meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch b/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch new file mode 100644 index 0000000000..8b097f3276 --- /dev/null +++ b/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch @@ -0,0 +1,75 @@ +From f95b6fd0475a95c00e886219271cb5c93838e3c3 Mon Sep 17 00:00:00 2001 +From: Amarnath Valluri <amarnath.valluri@intel.com> +Date: Wed, 18 Jan 2017 16:14:37 +0200 +Subject: [PATCH 1/2] Make dynamic linker a relative symlink to libc + +absolute symlink into $(libdir) fails to load in a cross build +environment, especially when executing qemu in usermode to run target +applications, which cross build systems often do, since not everything +can be computed during cross builds, qemu in usermode often comes to aid +in such situations to feed into cross builds. + +V2: + Make use of 'ln -r' to create relative symlinks, as most fo the distros + shipping coreutils 8.16+ + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com> +--- + Makefile | 2 +- + tools/install.sh | 8 +++++--- + 2 files changed, 6 insertions(+), 4 deletions(-) + +diff --git a/Makefile b/Makefile +index e8cc4436..466d9afd 100644 +--- a/Makefile ++++ b/Makefile +@@ -210,7 +210,7 @@ $(DESTDIR)$(includedir)/%: $(srcdir)/include/% + $(INSTALL) -D -m 644 $< $@ + + $(DESTDIR)$(LDSO_PATHNAME): $(DESTDIR)$(libdir)/libc.so +- $(INSTALL) -D -l $(libdir)/libc.so $@ || true ++ $(INSTALL) -D -r $(DESTDIR)$(libdir)/libc.so $@ || true + + install-libs: $(ALL_LIBS:lib/%=$(DESTDIR)$(libdir)/%) $(if $(SHARED_LIBS),$(DESTDIR)$(LDSO_PATHNAME),) + +diff --git a/tools/install.sh b/tools/install.sh +index d913b60b..b6a7f797 100755 +--- a/tools/install.sh ++++ b/tools/install.sh +@@ -6,18 +6,20 @@ + # + + usage() { +-printf "usage: %s [-D] [-l] [-m mode] src dest\n" "$0" 1>&2 ++printf "usage: %s [-D] [-l] [-r] [-m mode] src dest\n" "$0" 1>&2 + exit 1 + } + + mkdirp= + symlink= ++symlinkflags="-s" + mode=755 + +-while getopts Dlm: name ; do ++while getopts Dlrm: name ; do + case "$name" in + D) mkdirp=yes ;; + l) symlink=yes ;; ++r) symlink=yes; symlinkflags="$symlinkflags -r" ;; + m) mode=$OPTARG ;; + ?) usage ;; + esac +@@ -48,7 +50,7 @@ trap 'rm -f "$tmp"' EXIT INT QUIT TERM HUP + umask 077 + + if test "$symlink" ; then +-ln -s "$1" "$tmp" ++ln $symlinkflags "$1" "$tmp" + else + cat < "$1" > "$tmp" + chmod "$mode" "$tmp" +-- +2.37.2 + |