From a51a8ee9fe2c691a4b2d73fe06c1fde1d18f1153 Mon Sep 17 00:00:00 2001 From: Sam Thursfield Date: Fri, 27 Feb 2015 16:48:12 +0000 Subject: Add a compatibility symlink for /lib/ld-linux.so.3 on ARMv7 hard-float Morph's cache key algorithm doesn't yet take into account the fact that bootstrap chunks use files from the host system. While we are careful in the Baserock reference system definitions to minimise the number of components from the host system that it uses, the GNU C Library is pretty much unavoidable. Until we make the cache key algorithm more comprehensive, we need to ensure that the bootstrap-mode chunks from build-essential will indeed run on all versions of Baserock 'build' and 'devel' reference systems. Otherwise cached artifacts built on one system will randomly break for other people using different systems. This commit fixes one such breakage, which was due to the name of the GLIBC dynamic loader (ld.so) changing on ARMv7 hard-float platforms. --- strata/build-essential/glibc.morph | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/strata/build-essential/glibc.morph b/strata/build-essential/glibc.morph index 789283eb..a4007bd4 100644 --- a/strata/build-essential/glibc.morph +++ b/strata/build-essential/glibc.morph @@ -84,3 +84,9 @@ install-commands: netgroup: nis EOF - install -m 644 -o root -g root nsswitch.conf "$DESTDIR/etc/nsswitch.conf" +# Compatibility symlink to work around the ABI break GLIBC introduced for +# ARMv7 hard-float platforms in commit d3b36017d43. +- case "$MORPH_ARCH" in + armv7*hf*) + ln -s ld-2.20.so "$DESTDIR/lib/ld-linux.so.3" ;; + esac -- cgit v1.2.1