- Improve fortification disabled warning.

- Change location of dynamic linker for armhf.
This commit is contained in:
Jeff Law 2012-05-07 12:06:40 -06:00
parent a540ed36fe
commit 6537aa83a1
4 changed files with 72 additions and 4 deletions

View File

@ -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

View File

@ -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

View File

@ -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. */

View File

@ -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@redhat.com> - 2.15-36
- Improve fortification disabled warning.
- Change location of dynamic linker for armhf.
* Mon Apr 30 2012 Jeff Law <law@redhat.com> - 2.15-35
- Implement context routines for ARM (#817276)