[glibc] - Improve fortification disabled warning. - Change location of dynamic linker for armhf.

Jeffrey Law law at fedoraproject.org
Mon May 7 19:47:44 UTC 2012


commit 6537aa83a13c3478d91c0fcf32862c318861832a
Author: Jeff Law <law at redhat.com>
Date:   Mon May 7 12:06:40 2012 -0600

      - Improve fortification disabled warning.
      - Change location of dynamic linker for armhf.

 glibc-arm-hardfloat-1.patch |   11 +++++++++
 glibc-arm-hardfloat-2.patch |   48 +++++++++++++++++++++++++++++++++++++++++++
 glibc-sw13979.patch         |    2 +-
 glibc.spec                  |   15 ++++++++++--
 4 files changed, 72 insertions(+), 4 deletions(-)
---
diff --git a/glibc-arm-hardfloat-1.patch b/glibc-arm-hardfloat-1.patch
new file mode 100644
index 0000000..c87b8a8
--- /dev/null
+++ b/glibc-arm-hardfloat-1.patch
@@ -0,0 +1,11 @@
+diff -rup c/config.h.in d/config.h.in
+--- c/config.h.in	2012-05-07 09:35:44.844234866 -0600
++++ d/config.h.in	2012-05-07 11:53:43.461629793 -0600
+@@ -230,4 +230,7 @@
+ 
+ #define HAVE_REGEX 1
+ 
++/* The ARM hard-float ABI is being used.  */
++#undef HAVE_ARM_PCS_VFP
++
+ #endif
diff --git a/glibc-arm-hardfloat-2.patch b/glibc-arm-hardfloat-2.patch
new file mode 100644
index 0000000..6a66b3e
--- /dev/null
+++ b/glibc-arm-hardfloat-2.patch
@@ -0,0 +1,48 @@
+diff -rup c/sysdeps/arm/configure.in d/sysdeps/arm/configure.in
+--- c/sysdeps/arm/configure.in	2012-01-08 22:47:04.000000000 -0700
++++ d/sysdeps/arm/configure.in	2012-05-07 11:55:26.111096072 -0600
+@@ -18,3 +18,28 @@ EOF
+ if test $libc_cv_asm_cfi_directive_sections != yes; then
+   AC_MSG_ERROR([need .cfi_sections in this configuration])
+ fi
++
++AC_CACHE_CHECK([whether the compiler is using the ARM hard-float ABI],
++  [libc_cv_arm_pcs_vfp],
++  [archcppflag=`echo "" |
++       $CC $CFLAGS $CPPFLAGS -E -dM - |
++       grep __ARM_PCS_VFP |
++       sed -e 's/^#define //' -e 's/ .*//'`
++  # We check to see if the compiler and flags are
++  # selecting the hard-float ABI and if they are then
++  # we set libc_cv_arm_pcs_vfp to yes which causes
++  # HAVE_ARM_PCS_VFP to be defined in config.h and
++  # in include/libc-symbols.h and thus availabile to
++  # shlib-versions to select the appropriate name for
++  # the dynamic linker via %ifdef.
++  case x$archcppflag in
++  x__ARM_PCS_VFP)
++    libc_cv_arm_pcs_vfp=yes
++    ;;
++  *)
++    libc_cv_arm_pcs_vfp=no
++    ;;
++  esac])
++if test $libc_cv_arm_pcs_vfp = yes; then
++  AC_DEFINE(HAVE_ARM_PCS_VFP)
++fi
+Only in d/sysdeps/arm: configure.in.orig
+diff -rup c/sysdeps/arm/shlib-versions d/sysdeps/arm/shlib-versions
+--- c/sysdeps/arm/shlib-versions	2012-01-08 22:47:04.000000000 -0700
++++ d/sysdeps/arm/shlib-versions	2012-05-07 11:57:07.739567660 -0600
+@@ -1,4 +1,10 @@
+ arm.*-.*-linux-gnueabi.*	DEFAULT			GLIBC_2.4
+ 
+-arm.*-.*-linux-gnueabi.*	ld=ld-linux.so.3
++%ifdef HAVE_ARM_PCS_VFP
++# The EABI-derived hard-float ABI uses a new dynamic linker.
++arm.*-.*-linux-gnueabi.*       ld=ld-linux-armhf.so.3
++%else
++# The EABI-derived soft-float ABI continues to use ld-linux.so.3.
++arm.*-.*-linux-gnueabi.*       ld=ld-linux.so.3
++%endif
+ arm.*-.*-linux.*	ld=ld-linux.so.2
diff --git a/glibc-sw13979.patch b/glibc-sw13979.patch
index 80d5427..e5111a6 100644
--- a/glibc-sw13979.patch
+++ b/glibc-sw13979.patch
@@ -12,7 +12,7 @@ index c347555..e3ad8b0 100644
  #endif
  
 +#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 && __USE_FORTIFY_LEVEL == 0
-+# warning _FORTIFY_SOURCE requested but disabled
++# warning _FORTIFY_SOURCE requested but disabled, please enable optimizer to restore fortification
 +#endif
 +
  /* We do support the IEC 559 math functionality, real and complex.  */
diff --git a/glibc.spec b/glibc.spec
index c72f06a..108c42a 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -28,7 +28,7 @@
 Summary: The GNU libc libraries
 Name: glibc
 Version: %{glibcversion}
-Release: 35%{?dist}
+Release: 36%{?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
@@ -112,7 +112,7 @@ Patch1042: %{name}-rh801650-1.patch
 Patch1043: %{name}-rh801650-2.patch
 Patch1046: %{name}-rh806403.patch
 Patch1048: %{name}-rh804792.patch
-Patch1049: %{name}-rh817276.patch
+Patch1053: %{name}-rh817276.patch
 
 #
 # Patches submitted, but not yet approved upstream.
@@ -188,6 +188,9 @@ Patch2051: %{name}-rh788989-2.patch
 # Upstream BZ 13979
 Patch2052: %{name}-sw13979.patch
 
+# Upstream, see libc-alpha posting from Carlos O'Donell 5/5/2012
+Patch2054: %{name}-arm-hardfloat-1.patch
+Patch2055: %{name}-arm-hardfloat-2.patch
 
 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 Obsoletes: glibc-profile < 2.4
@@ -455,9 +458,11 @@ rm -rf %{glibcportsdir}
 %patch2050 -p1
 %patch2051 -p1
 %patch2052 -p1
+%patch2054 -p1
 
 pushd ../%{glibcportsdir}
-%patch1049 -p1
+%patch1053 -p1
+%patch2055 -p1
 popd
 
 
@@ -1312,6 +1317,10 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Mon May 7 2012 Jeff Law <law at redhat.com> - 2.15-36
+  - Improve fortification disabled warning.
+  - Change location of dynamic linker for armhf.
+
 * Mon Apr 30 2012 Jeff Law <law at redhat.com> - 2.15-35
   - Implement context routines for ARM (#817276)
 


More information about the scm-commits mailing list