diff --git a/armhf-ld-so.patch b/armhf-ld-so.patch index 541a9ec..01981ce 100644 --- a/armhf-ld-so.patch +++ b/armhf-ld-so.patch @@ -1,3 +1,9 @@ +For backward compatibility with armhf binaries built with the +old linker SONAME, we need to fake out the linker to believe +the new is the old, until such a point as everything is rebuilt. + +Patch for elf/dl-load.c taken from Debian. + diff --git a/sysdeps/arm/shlib-versions b/sysdeps/arm/shlib-versions index 491dd0a..5464959 100644 --- a/glibc-ports-2.15/sysdeps/arm/shlib-versions @@ -8,3 +14,16 @@ index 491dd0a..5464959 100644 -arm.*-.*-linux-gnueabi.* ld=ld-linux.so.3 +arm.*-.*-linux-gnueabi.* ld=ld-linux-armhf.so.3 arm.*-.*-linux.* ld=ld-linux.so.2 + +--- glibc-2.15/elf/dl-load.c.~1~ 2011-12-30 23:13:56.000000000 +0100 ++++ glibc-2.15/elf/dl-load.c 2012-04-17 15:10:46.235625419 +0200 +@@ -2082,6 +2082,9 @@ + soname = ((const char *) D_PTR (l, l_info[DT_STRTAB]) + + l->l_info[DT_SONAME]->d_un.d_val); + if (strcmp (name, soname) != 0) ++#ifdef __arm__ ++ if (strcmp(name, "ld-linux.so.3") || strcmp(soname, "ld-linux-armhf.so.3")) ++#endif + continue; + + /* We have a match on a new name -- cache it. */ diff --git a/glibc-uio-cell.diff b/glibc-uio-cell.diff index 265fc5d..6bbbfe3 100644 --- a/glibc-uio-cell.diff +++ b/glibc-uio-cell.diff @@ -1,8 +1,3 @@ -Refused by Ulrich Drepper: -http://sourceware.org/ml/libc-alpha/2011-07/msg00046.html - -We have to keep it until gcc handles this better. - 2009-11-06 Petr Baudis * include/sys/uio.h: Change __vector to __iovec to avoid clash diff --git a/glibc.changes b/glibc.changes index 4f0ed0f..78048cb 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Apr 18 11:35:48 UTC 2012 - aj@suse.de + +- Build profiled libs only for base. + +------------------------------------------------------------------- +Tue Apr 17 12:35:21 UTC 2012 - aj@suse.de + +- The dynamic linker for armv7 hardware float is called + /lib/ld-linux-armhf.so.3. Provide symlink for old location. + ------------------------------------------------------------------- Tue Apr 17 08:29:21 UTC 2012 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index 21fd5b9..7bbf101 100644 --- a/glibc.spec +++ b/glibc.spec @@ -161,23 +161,23 @@ Patch0: glibc-testsuite.patch Patch1: glibc-2.3.90-noversion.diff # PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change Patch3: glibc-resolv-reload.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE Add additional locales Patch4: glibc-2.3.locales.diff.bz2 # PATCH-FEATURE-OPENSUSE -- add crypt_blowfish support - bnc#700876 Patch5: glibc-2.14-crypt.diff # PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - lnussel@suse.de Patch6: glibc-2.14-crypt-versioning.diff -# PATCH-FIX-OPENSUSE add some extra information to version output - kukuk@suse.de +# PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de Patch7: glibc-version.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE Support pre-EURO currencies (XXX: Still needed?) Patch8: glibc-2.4.90-revert-only-euro.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de Patch12: glibc-2.3.2.no_archive.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE -- add blacklist for bindresvport Patch14: glibc-2.3.90-bindresvport.blacklist.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?) Patch16: glibc-2.4.90-no_NO.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE -- Renames for China Patch20: glibc-2.4-china.diff # PATCH-FIX-OPENSUSE Fix gb18030 code bnc#54080 Patch21: gb18030.patch.bz2 @@ -195,17 +195,17 @@ Patch29: glibc-2.8-getconf.diff Patch30: getaddrinfo-ipv6-sanity.diff # PATCH-FIX-OPENSUSE add option --enable-runbinaries to disable running of compiled binaries Patch33: glibc-compiled-binaries.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE don't use unwind tables for initfini (solved differently for glibc 2.16) Patch36: glibc-no-unwind-tables.diff # PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de Patch38: glibc-cpusetsize.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE Consider private IPv4 addresses as global-scope in gai.conf [bnc#597616] Patch45: glibc-gai-private4.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv Patch46: glibc-resolv-mdnshint.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE nscd does not account for 'multi on' in /etc/host.conf when ai-resolving host bso#11928 Patch47: glibc-nscd-hconf.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE _fini does not have proper unwinding information on x86_64 bso#11610 Patch49: glibc-fini-unwind.diff # PATCH-FIX-OPENSUSE bnc#657627, http://sourceware.org/bugzilla/show_bug.cgi?id=12561 Patch52: glibc-elf-localscope.diff @@ -531,8 +531,8 @@ rm nscd/s-stamp %patch1007 -p1 %patch1008 -p1 %ifarch armv7l -# Disable for now -#%patch2002 -p1 +# Disable for now, wait for final upstream patch +%patch2002 -p1 %endif # @@ -664,13 +664,17 @@ configure_and_build_glibc() { conf_cflags="$cflags" %endif + profile="--disable-profile" +%if %{build_profile} + if [ "$dirname" -eq "base" ] ; then + profile="--enable-profile" + fi +%endif CFLAGS="$conf_cflags" CC="$BuildCC" CXX="$BuildCCplus" ../configure \ --prefix=%{_prefix} \ --libexecdir=%{_libdir} --infodir=%{_infodir} \ --enable-add-ons=nptl$addons \ -%if %{build_profile} - --enable-profile \ -%endif + $profile \ "$@" \ %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ @@ -998,7 +1002,7 @@ install -m 644 %{SOURCE22} %{buildroot}/lib/systemd/system %ifarch armv7l # Provide compatibility link -# XXX ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 +ln -s ld-%{version}.so %{buildroot}/lib/ld-linux.so.3 %endif ####################################################################### @@ -1077,7 +1081,7 @@ exit 0 # Each architecture has a different name for the dynamic linker: %ifarch %arm %ifarch armv7l -#XXX /%{_lib}/ld-linux-armhf.so.3 +/%{_lib}/ld-linux-armhf.so.3 # Keep compatibility link /%{_lib}/ld-linux.so.3 %else