From 69de1410b13841e9b770a7fed9f87d553008e068 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Mon, 11 Jun 2012 20:32:35 -0500 Subject: [PATCH] only deal with the arm linker compat hack on armhfp arches - armsfp arches do not have a linker change - Backward compat hack for armhf binaries. --- glibc.spec | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/glibc.spec b/glibc.spec index 0a89c80..3e63d27 100644 --- a/glibc.spec +++ b/glibc.spec @@ -28,7 +28,7 @@ Summary: The GNU libc libraries Name: glibc Version: %{glibcversion} -Release: 10%{?dist} +Release: 11%{?dist} # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries. # Things that are linked directly into dynamically linked programs # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional @@ -98,6 +98,10 @@ Patch0027: %{name}-stap-libm.patch # tree so that they're identical for multilib builds Patch0032: %{name}-rh825061.patch +# Horrible hack, never to be upstreamed. Can go away once the world +# has been rebuilt to use the new ld.so path. +Patch0061: %{name}-arm-hardfloat-3.patch + # # Patches from upstream # @@ -176,6 +180,14 @@ Obsoletes: nss_db Provides: ldconfig # The dynamic linker supports DT_GNU_HASH Provides: rtld(GNU_HASH) + +# This is a short term need until everything is rebuilt in the ARM world +# to use the new dynamic linker path +%ifarch armv7hl armv7hnl +Provides: ld-linux.so.3 +Provides: ld-linux.so.3(GLIBC_2.4) +%endif + Requires: glibc-common = %{version}-%{release} # Require libgcc in case some program calls pthread_cancel in its %%post Requires(pre): basesystem, libgcc @@ -846,12 +858,17 @@ rm -rf $RPM_BUILD_ROOT%{_prefix}/share/zoneinfo touch -r fedora/glibc.spec.in $RPM_BUILD_ROOT/etc/ld.so.conf touch -r sunrpc/etc.rpc $RPM_BUILD_ROOT/etc/rpc +# We allow undefined symbols in shared libraries because the libraries +# referenced at link time here, particularly ld.so, may be different than +# the one used at runtime. This is really only needed during the ARM +# transition from ld-linux.so.3 to ld-linux-armhf.so.3. cd fedora $GCC -Os -g -o build-locale-archive build-locale-archive.c \ ../build-%{target}/locale/locarchive.o \ ../build-%{target}/locale/md5.o \ -DDATADIR=\"%{_datadir}\" -DPREFIX=\"%{_prefix}\" \ -L../build-%{target} \ + -Wl,--allow-shlib-undefined \ -B../build-%{target}/csu/ -lc -lc_nonshared install -m 700 build-locale-archive $RPM_BUILD_ROOT/usr/sbin/build-locale-archive cd .. @@ -878,6 +895,12 @@ ln -sf /%{_lib}/ld-linux-ia64.so.2 $RPM_BUILD_ROOT/lib/ld-linux-ia64.so.2 %endif %endif +# Leave a compatibility symlink for the dynamic loader on armhfp targets, +# at least until the world gets rebuilt +%ifarch armv7hl armv7hnl +ln -sf /lib/ld-linux-armhf.so.3 $RPM_BUILD_ROOT/lib/ld-linux.so.3 +%endif + %if %{run_glibc_tests} # Increase timeouts @@ -1210,6 +1233,9 @@ rm -f *.filelist* /lib/ld-linux-ia64.so.2 %endif %endif +%ifarch armv7hl armv7hnl +/lib/ld-linux.so.3 +%endif %verify(not md5 size mtime) %config(noreplace) /etc/localtime %verify(not md5 size mtime) %config(noreplace) /etc/nsswitch.conf %verify(not md5 size mtime) %config(noreplace) /etc/ld.so.conf @@ -1287,6 +1313,11 @@ rm -f *.filelist* %endif %changelog +* Mon Jun 11 2012 Dennis Gilmore - 2.15.90-11 +- only deal with the arm linker compat hack on armhfp arches +- armsfp arches do not have a linker change +- Backward compat hack for armhf binaries. + * Thu Jun 7 2012 Jeff Law - 2.15.90-10 - Fix parsing of /etc/sysconfig/clock when ZONE has spaces. (#828291)