* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2011-04-27 11:12 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2011-04-27 11:12 UTC (permalink / raw
To: gentoo-commits
commit: de738d984c6dcabfd2ef044227333474a3115738
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 27 11:12:41 2011 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Wed Apr 27 11:12:41 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=de738d98
Added the configure.ac patch for upstream fist rev
---
upstream/configure.ac.patch | 43 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 43 insertions(+), 0 deletions(-)
diff --git a/upstream/configure.ac.patch b/upstream/configure.ac.patch
new file mode 100644
index 0000000..cfee97f
--- /dev/null
+++ b/upstream/configure.ac.patch
@@ -0,0 +1,43 @@
+2011-04-27 Magnus Granberg <zorry@gentoo.org>
+
+ * configure Add --enable-espf. Add -fno-stack-protector
+ to stage1_cflags.
+--- a/configure.ac 2011-04-18 23:27:00.000000000 +0200
++++ b/configure.ac 2011-04-27 12:47:11.351473240 +0200
+@@ -419,6 +419,25 @@
+ noconfigdirs="$noconfigdirs gnattools"
+ fi
+
++# Check whether --enable-espf was given and target have the support.
++AC_ARG_ENABLE([espf],
++[AS_HELP_STRING([--enable-espf],
++ [Enable Stack protector, Position independent executable and
++ Fortify_sources as default if we have suppot for it when compiling
++ and link with -z relro and -z now as default.
++ Linux targets supported x86_64.])],
++[
++ case $target in
++ x86_64*-*-linux*)
++ enable_espf=yes
++ ;;
++ *)
++ AC_MSG_WARN([*** --enable-espf is not supported on this $target target.])
++ ;;
++ esac
++])
++AC_SUBST([enable_espf])
++
+ AC_ARG_ENABLE(libssp,
+ [AS_HELP_STRING([--enable-libssp], [build libssp directory])],
+ ENABLE_LIBSSP=$enableval,
+@@ -3152,6 +3171,10 @@
+ esac ;;
+ esac
+
++# Disable -fstack-protector on stage1
++if test x$enable_espf = xyes; then
++ stage1_cflags="$stage1_cflags -fno-stack-protector"
++fi
+ # This is aimed to mimic bootstrap with a non-GCC compiler to catch problems.
+ if test "$GCC" = yes -a "$ENABLE_BUILD_WITH_CXX" != yes; then
+ saved_CFLAGS="$CFLAGS"
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2011-06-22 0:27 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2011-06-22 0:27 UTC (permalink / raw
To: gentoo-commits
commit: 64e6e9c8d2e7ad024b0defdf9f1698e1b7ec09f5
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 22 00:27:03 2011 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Wed Jun 22 00:27:03 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=64e6e9c8
Updated configure.ac patch for upstreem
---
upstream/configure.ac.patch | 138 ++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 137 insertions(+), 1 deletions(-)
diff --git a/upstream/configure.ac.patch b/upstream/configure.ac.patch
index cfee97f..54cd876 100644
--- a/upstream/configure.ac.patch
+++ b/upstream/configure.ac.patch
@@ -1,7 +1,9 @@
-2011-04-27 Magnus Granberg <zorry@gentoo.org>
+2011-06-22 Magnus Granberg <zorry@gentoo.org>
* configure Add --enable-espf. Add -fno-stack-protector
to stage1_cflags.
+ * gcc/configure.ac Add --enable-espf and checks for it.
+
--- a/configure.ac 2011-04-18 23:27:00.000000000 +0200
+++ b/configure.ac 2011-04-27 12:47:11.351473240 +0200
@@ -419,6 +419,25 @@
@@ -41,3 +43,137 @@
# This is aimed to mimic bootstrap with a non-GCC compiler to catch problems.
if test "$GCC" = yes -a "$ENABLE_BUILD_WITH_CXX" != yes; then
saved_CFLAGS="$CFLAGS"
+--- a/gcc/configure.ac 2011-04-13 19:12:53.000000000 +0200
++++ b/gcc/configure.ac 2011-06-21 02:51:23.602374686 +0200
+@@ -4515,6 +4515,131 @@
+ AC_SUBST(MAINT)dnl
+
+ # --------------
++# Espf checks
++# --------------
++
++# Check whether --enable-espf was given and target have the support.
++AC_ARG_ENABLE([espf],
++[AS_HELP_STRING([--enable-espf],
++ [Enable Stack protector, Position independent executable and
++ Fortify_sources as default if we have suppot for it when compiling
++ and link with -z relro and -z now as default.
++ Linux targets supported x86_64])],
++ [case $espf in
++ yes | no) ;;
++ *) AC_MSG_ERROR(['$espf' is an invalid value for --enable-espf.
++Valid choices are 'yes' and 'no'.]) ;;
++ esac],
++ [set_espf_enable="$espf"])
++if test $set_enable_espf = yes ; then
++ AC_MSG_CHECKING(if $target support espf)
++if test $set_enable_espf = yes ; then
++ case "$target" in
++ ?86-*-linux* | x86_64-*-linux*)
++ enable_espf=yes
++ AC_DEFINE(ENABLE_ESPF, 1,
++ [Define if your target support espf and you have enable it.])
++ ;;
++ *)
++ enable_espf=no
++ ;;
++ esac
++else
++ enable_espf=no
++fi
++AC_MSG_RESULT($enable_espf)
++fi
++AC_SUBST([enable_espf])
++if test $enable_espf = yes ; then
++
++ AC_CACHE_CHECK(linker -z relro support,
++ gcc_cv_ld_relro,
++ [gcc_cv_ld_relro=no
++ if test $in_tree_ld = yes ; then
++ if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
++ && test $in_tree_ld_is_elf = yes; then
++ gcc_cv_ld_relro=yes
++ fi
++ elif test x$gcc_cv_ld != x; then
++ # Check if linker supports -z relro options
++ if $gcc_cv_ld --help 2>/dev/null | grep now > /dev/null; then
++ gcc_cv_ld_relro=yes
++ fi
++ fi
++ ])
++
++ AC_CACHE_CHECK(linker -z now support,
++ gcc_cv_ld_now,
++ [gcc_cv_ld_now=no
++ if test $in_tree_ld = yes ; then
++ if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
++ && test $in_tree_ld_is_elf = yes; then
++ gcc_cv_ld_now=yes
++ fi
++ elif test x$gcc_cv_ld != x; then
++ # Check if linker supports -z now options
++ if $gcc_cv_ld --help 2>/dev/null | grep now > /dev/null; then
++ gcc_cv_ld_now=yes
++ fi
++ fi
++ ])
++
++ # Check for -D_FORTIFY_SOURCES support in target C library
++ AC_CHECK_FUNC(__fortify_fail,[gcc_cv_libc_provides_fortify=yes],
++ [gcc_cv_libc_provides_fortify=no])
++
++ AC_MSG_CHECKING(if the compiler default to use -fPIE and link with -pie)
++ if test $set_enable_espf = yes && test x"$gcc_cv_ld_pie" = xyes; then
++ enable_espf_pie=yes
++ AC_DEFINE(ENABLE_ESPF_PIE, 1,
++ [Define if your compiler will default to use -fPIE and link with -pie.])
++ else
++ enable_espf_pie=no
++ fi
++ AC_MSG_RESULT($enable_espf_pie)
++AC_MSG_CHECKING(if the compiler default to use -fstack-protector)
++ if test $set_enable_espf = yes && test x$gcc_cv_libc_provides_ssp = xyes \
++ && test $set_have_as_tls = yes ; then
++ enable_espf_pie=yes
++ AC_DEFINE(ENABLE_ESPF_SSP, 1,
++ [Define if your compiler will default to use -fstack-protector.])
++ else
++ enable_espf_pie=no
++ fi
++ AC_MSG_RESULT($enable_espf_ssp)
++
++AC_MSG_CHECKING(if the compiler default to use -D_FORTIFY_SOURCES=2)
++ if test $set_enable_espf = yes && test x$gcc_cv_libc_provides_fortify = xyes; then
++ enable_espf_fortify=yes
++ AC_DEFINE(ENABLE_ESPF_FORTIFY, 1,
++ [Define if your compiler will default to use -D_FORTIFY_SOURCES=2.])
++ else
++ enable_espf_fortify=no
++ fi
++ AC_MSG_RESULT($enable_espf_fortify)
++
++ AC_MSG_CHECKING(if the compiler will pass -z relro to the linker)
++ if test $set_enable_espf = yes && test x$gcc_cv_ld_relro = xyes; then
++ enable_espf_relro=yes
++ AC_DEFINE(ENABLE_ESPF_RELRO, 1,
++ [Define if your compiler will pass -z relro to the linker.])
++ else
++ enable_espf_relro=no
++ fi
++ AC_MSG_RESULT($enable_espf_relro)
++
++ AC_MSG_CHECKING(if the compiler will pass -z now to the linker)
++ if test $set_enable_espf = yes && test x$gcc_cv_ld_now = xyes; then
++ enable_espf_now=yes
++ AC_DEFINE(ENABLE_ESPF_NOW, 1,
++ [Define if your compiler will pass -z now to the linker.])
++ else
++ enable_espf_now=no
++ fi
++ AC_MSG_RESULT($enable_espf_now)
++fi
++
++# --------------
+ # Language hooks
+ # --------------
+
\ No newline at end of file
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2011-06-23 18:15 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2011-06-23 18:15 UTC (permalink / raw
To: gentoo-commits
commit: 0e22467160c8c89a7fb7837f132cfb7b82f76e91
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 23 18:14:26 2011 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Thu Jun 23 18:14:26 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=0e224671
Updated the configure.ac patch for upstream version 3
---
upstream/configure.ac.patch | 31 +++++++++++++++++++++++++------
1 files changed, 25 insertions(+), 6 deletions(-)
diff --git a/upstream/configure.ac.patch b/upstream/configure.ac.patch
index 54cd876..a0918cd 100644
--- a/upstream/configure.ac.patch
+++ b/upstream/configure.ac.patch
@@ -1,4 +1,4 @@
-2011-06-22 Magnus Granberg <zorry@gentoo.org>
+2011-06-23 Magnus Granberg <zorry@gentoo.org>
* configure Add --enable-espf. Add -fno-stack-protector
to stage1_cflags.
@@ -44,8 +44,8 @@
if test "$GCC" = yes -a "$ENABLE_BUILD_WITH_CXX" != yes; then
saved_CFLAGS="$CFLAGS"
--- a/gcc/configure.ac 2011-04-13 19:12:53.000000000 +0200
-+++ b/gcc/configure.ac 2011-06-21 02:51:23.602374686 +0200
-@@ -4515,6 +4515,131 @@
++++ b/gcc/configure.ac 2011-06-23 20:07:06.952639786 +0200
+@@ -4515,6 +4515,150 @@
AC_SUBST(MAINT)dnl
# --------------
@@ -118,9 +118,28 @@
+ fi
+ ])
+
-+ # Check for -D_FORTIFY_SOURCES support in target C library
-+ AC_CHECK_FUNC(__fortify_fail,[gcc_cv_libc_provides_fortify=yes],
-+ [gcc_cv_libc_provides_fortify=no])
++# Check for FORTIFY_SOURCES support in target C library.
++AC_CACHE_CHECK(for _FORTIFY_SOURCES support in target C library,
++ gcc_cv_libc_provides_fortify,
++ [gcc_cv_libc_provides_fortify=no
++ case "$target" in
++ *-*-linux*)
++ [# glibc 2.4 and later provides __stack_chk_fail and
++ # either __stack_chk_guard, or TLS access to stack guard canary.
++ if test -f $target_header_dir/features.h; then
++ if $EGREP '^[ ]*#[ ]*define[ ]+__GLIBC__[ ]+2' \
++ $target_header_dir/features.h > /dev/null \
++ && $EGREP '^[ ]*#[ ]*define[ ]+__GLIBC_MINOR__[ ]+([1-9][0-9]|[4-9])' \
++ $target_header_dir/features.h > /dev/null; then
++ gcc_cv_libc_provides_fortify=yes
++ elif $EGREP '^[ ]*#[ ]*define[ ]+__UCLIBC__[ ]+1' \
++ $target_header_dir/features.h > /dev/null ; then
++ gcc_cv_libc_provides_fortify=no
++ fi
++ fi]
++ ;;
++ *) gcc_cv_libc_provides_fortify=no ;;
++ esac])
+
+ AC_MSG_CHECKING(if the compiler default to use -fPIE and link with -pie)
+ if test $set_enable_espf = yes && test x"$gcc_cv_ld_pie" = xyes; then
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2011-06-24 9:36 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2011-06-24 9:36 UTC (permalink / raw
To: gentoo-commits
commit: 20165346ace9b21623b4ceda5c27fa6600ce783c
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 24 09:35:37 2011 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Fri Jun 24 09:35:37 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=20165346
Updated the configure.ac patch for upstream rev 4
---
upstream/configure.ac.patch | 27 +++++++++++----------------
1 files changed, 11 insertions(+), 16 deletions(-)
diff --git a/upstream/configure.ac.patch b/upstream/configure.ac.patch
index a0918cd..396cd0e 100644
--- a/upstream/configure.ac.patch
+++ b/upstream/configure.ac.patch
@@ -1,4 +1,4 @@
-2011-06-23 Magnus Granberg <zorry@gentoo.org>
+2011-06-24 Magnus Granberg <zorry@gentoo.org>
* configure Add --enable-espf. Add -fno-stack-protector
to stage1_cflags.
@@ -44,8 +44,8 @@
if test "$GCC" = yes -a "$ENABLE_BUILD_WITH_CXX" != yes; then
saved_CFLAGS="$CFLAGS"
--- a/gcc/configure.ac 2011-04-13 19:12:53.000000000 +0200
-+++ b/gcc/configure.ac 2011-06-23 20:07:06.952639786 +0200
-@@ -4515,6 +4515,150 @@
++++ b/gcc/configure.ac 2011-06-24 03:17:07.448179335 +0200
+@@ -4515,6 +4515,145 @@
AC_SUBST(MAINT)dnl
# --------------
@@ -59,12 +59,8 @@
+ Fortify_sources as default if we have suppot for it when compiling
+ and link with -z relro and -z now as default.
+ Linux targets supported x86_64])],
-+ [case $espf in
-+ yes | no) ;;
-+ *) AC_MSG_ERROR(['$espf' is an invalid value for --enable-espf.
-+Valid choices are 'yes' and 'no'.]) ;;
-+ esac],
-+ [set_espf_enable="$espf"])
++ set_enable_espf=$enableval,
++ set_enable_espf=no)
+if test $set_enable_espf = yes ; then
+ AC_MSG_CHECKING(if $target support espf)
+if test $set_enable_espf = yes ; then
@@ -124,15 +120,14 @@
+ [gcc_cv_libc_provides_fortify=no
+ case "$target" in
+ *-*-linux*)
-+ [# glibc 2.4 and later provides __stack_chk_fail and
-+ # either __stack_chk_guard, or TLS access to stack guard canary.
++ [# glibc 2.8 and later provides _FORTIFY_SOURCES.
+ if test -f $target_header_dir/features.h; then
+ if $EGREP '^[ ]*#[ ]*define[ ]+__GLIBC__[ ]+2' \
+ $target_header_dir/features.h > /dev/null \
-+ && $EGREP '^[ ]*#[ ]*define[ ]+__GLIBC_MINOR__[ ]+([1-9][0-9]|[4-9])' \
++ && $EGREP '^[ ]*#[ ]*define[ ]+__GLIBC_MINOR__[ ]+([1-9][0-9]|[8-9])' \
+ $target_header_dir/features.h > /dev/null; then
+ gcc_cv_libc_provides_fortify=yes
-+ elif $EGREP '^[ ]*#[ ]*define[ ]+__UCLIBC__[ ]+1' \
++ elif $EGREP '^[ ]*#[ ]*define[ ]+__UCLIBC__[ ]' \
+ $target_header_dir/features.h > /dev/null ; then
+ gcc_cv_libc_provides_fortify=no
+ fi
@@ -153,11 +148,11 @@
+AC_MSG_CHECKING(if the compiler default to use -fstack-protector)
+ if test $set_enable_espf = yes && test x$gcc_cv_libc_provides_ssp = xyes \
+ && test $set_have_as_tls = yes ; then
-+ enable_espf_pie=yes
++ enable_espf_ssp=yes
+ AC_DEFINE(ENABLE_ESPF_SSP, 1,
+ [Define if your compiler will default to use -fstack-protector.])
+ else
-+ enable_espf_pie=no
++ enable_espf_ssp=no
+ fi
+ AC_MSG_RESULT($enable_espf_ssp)
+
@@ -195,4 +190,4 @@
+# --------------
# Language hooks
# --------------
-
\ No newline at end of file
+
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2011-06-24 13:51 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2011-06-24 13:51 UTC (permalink / raw
To: gentoo-commits
commit: 62a8e6794d1c0cc755bf41b193ff8e20685a4f95
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 24 13:50:42 2011 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Fri Jun 24 13:50:42 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=62a8e679
Added the Makefile.in patch for upstream rev 1
---
upstream/Makefile.in.patch | 90 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 90 insertions(+), 0 deletions(-)
diff --git a/upstream/Makefile.in.patch b/upstream/Makefile.in.patch
new file mode 100644
index 0000000..df93c63
--- /dev/null
+++ b/upstream/Makefile.in.patch
@@ -0,0 +1,90 @@
+2011-06-04 Magnus Granberg <zorry@gentoo.org>
+
+ * Makefile.in We add -fno-stack-protector to BOOT_CFLAGS, LIBCFLAGS and LIBCXXFLAGS if enable_espf yes.
+ * gcc/Makefile.in Add -fno-PIE. to CRTSTUFF_CFLAGS and ALL_CFLAGS if enable_espf yes
+
+--- Makefile.in 2010-01-22 08:35:38.000000000 -0500
++++ Makefile.in 2010-02-07 15:10:59.000000000 -0500
+@@ -350,9 +350,17 @@
+ BUILD_PREFIX = @BUILD_PREFIX@
+ BUILD_PREFIX_1 = @BUILD_PREFIX_1@
+
++# Some stuff don't work well with SSP
++enable_espf = @enable_espf@
++ifeq ($(enable_espf),yes)
++ESPF_NOSSP_CFLAGS = -fno-stack-protector
++else
++ESPF_NOSSP_CFLAGS=
++endif
++
+ # Flags to pass to stage2 and later makes. They are defined
+ # here so that they can be overridden by Makefile fragments.
+-BOOT_CFLAGS= -g -O2
++BOOT_CFLAGS= -g -O2 $(ESPF_NOSSP_CFLAGS)
+ BOOT_LDFLAGS=
+ BOOT_ADAFLAGS=-gnatpg -gnata
+
+@@ -403,9 +403,9 @@
+
+ CFLAGS = @CFLAGS@
+ LDFLAGS = @LDFLAGS@
+-LIBCFLAGS = $(CFLAGS)
++LIBCFLAGS = $(CFLAGS) $(ESPF_NOSSP_CFLAGS)
+ CXXFLAGS = @CXXFLAGS@
+-LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
++LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates $(ESPF_NOSSP_CFLAGS)
+ GOCFLAGS = $(CFLAGS)
+
+ TFLAGS =
+--- a/gcc/Makefile.in 2011-04-22 22:04:42.000000000 +0200
++++ b/gcc/Makefile.in 2011-06-24 15:03:02.440236923 +0200
+@@ -642,13 +642,21 @@
+ INHIBIT_LIBC_CFLAGS = -Dinhibit_libc
+ endif
+
++# We don't want to compile the gcc tree with -fPIE when we have espf enable.
++enable_espf = @enable_espf@
++ifeq ($(enable_espf),yes)
++ESPF_NOPIE_CFLAGS = -fno-PIE
++else
++ESPF_NOPIE_CFLAGS=
++endif
++
+ # Options to use when compiling libgcc2.a.
+ #
+ LIBGCC2_DEBUG_CFLAGS = -g
+ LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) \
+ $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) \
+ -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED \
+- -fno-stack-protector \
++ -fno-stack-protector $(ESPF_NOPIE_CFLAGS) \
+ $(INHIBIT_LIBC_CFLAGS)
+
+ # Additional options to use when compiling libgcc2.a.
+@@ -662,7 +670,7 @@
+ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
+ -finhibit-size-directive -fno-inline -fno-exceptions \
+ -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
+- -fno-stack-protector \
++ -fno-stack-protector $(ESPF_NOPIE_CFLAGS) \
+ $(INHIBIT_LIBC_CFLAGS)
+
+ # Additional sources to handle exceptions; overridden by targets as needed.
+@@ -1002,7 +1010,7 @@
+
+ # This is the variable actually used when we compile. If you change this,
+ # you probably want to update BUILD_CFLAGS in configure.ac
+-ALL_CFLAGS = $(T_CFLAGS) $(CFLAGS-$@) \
++ALL_CFLAGS = $(ESPF_NOPIE_CFLAGS) $(T_CFLAGS) $(CFLAGS-$@) \
+ $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) @DEFS@
+
+ # The C++ version.
+@@ -1928,7 +1936,7 @@
+ echo LIBGCC_SYNC = '$(LIBGCC_SYNC)' >> tmp-libgcc.mvars
+ echo LIBGCC_SYNC_CFLAGS = '$(LIBGCC_SYNC_CFLAGS)' >> tmp-libgcc.mvars
+ echo CRTSTUFF_CFLAGS = '$(CRTSTUFF_CFLAGS)' >> tmp-libgcc.mvars
+- echo CRTSTUFF_T_CFLAGS = '$(CRTSTUFF_T_CFLAGS)' >> tmp-libgcc.mvars
++ echo CRTSTUFF_T_CFLAGS = '$(CRTSTUFF_T_CFLAGS) $(ESPF_NOPIE_CFLAGS)' >> tmp-libgcc.mvars
+ echo CRTSTUFF_T_CFLAGS_S = '$(CRTSTUFF_T_CFLAGS_S)' >> tmp-libgcc.mvars
+ echo TARGET_SYSTEM_ROOT = '$(TARGET_SYSTEM_ROOT)' >> tmp-libgcc.mvars
+
\ No newline at end of file
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2011-06-24 14:15 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2011-06-24 14:15 UTC (permalink / raw
To: gentoo-commits
commit: 98f14f9a18754741fce88cbcae6b0572467fd876
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 24 14:14:29 2011 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Fri Jun 24 14:14:29 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=98f14f9a
Added the config.in patch for upstream rev 1
---
upstream/config.in.patch | 50 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 50 insertions(+), 0 deletions(-)
diff --git a/upstream/config.in.patch b/upstream/config.in.patch
new file mode 100644
index 0000000..89f5ec4
--- /dev/null
+++ b/upstream/config.in.patch
@@ -0,0 +1,50 @@
+2010-06-24 Magnus Granberg <zorry@gentoo.org>
+
+ * gcc/config.in Add ENABLE_ESPF, ENABLE_ESPF_FORTIFY
+ ENABLE_ESPF_NOW, ENABLE_ESPF_PIE, ENABLE_ESPF_RELRO
+ and ENABLE_ESPF_SSP
+
+--- a/gcc/config.in 2011-04-24 00:36:52.000000000 +0200
++++ b/gcc/config.in 2011-06-24 14:17:05.166236726 +0200
+@@ -77,6 +77,41 @@
+ #endif
+
+
++/* Define to 1 to enable espf. */
++#ifndef USED_FOR_TARGET
++#undef ENABLE_ESPF
++#endif
++
++
++/* Define to 1 to enable espf with FORTIFY_SOURCES. */
++#ifndef USED_FOR_TARGET
++#undef ENABLE_ESPF_FORTIFY
++#endif
++
++
++/* Define to 1 to enable espf with -z now when linking. */
++#ifndef USED_FOR_TARGET
++#undef ENABLE_ESPF_NOW
++#endif
++
++
++/* Define to 1 to enable espf with -fPIE -pie. */
++#ifndef USED_FOR_TARGET
++#undef ENABLE_ESPF_PIE
++#endif
++
++
++/* Define to 1 to enable espf with -z relro when linking. */
++#ifndef USED_FOR_TARGET
++#undef ENABLE_ESPF_RELRO
++#endif
++
++
++/* Define to 1 to enable espf with -fstack-protector. */
++#ifndef USED_FOR_TARGET
++#undef ENABLE_ESPF_SSP
++#endif
++
+ /* Define to 1 to enable fixed-point arithmetic extension to C. */
+ #ifndef USED_FOR_TARGET
+ #undef ENABLE_FIXED_POINT
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2011-06-24 14:32 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2011-06-24 14:32 UTC (permalink / raw
To: gentoo-commits
commit: 690020e7e374d903894cf3959948900a52642819
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 24 14:32:17 2011 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Fri Jun 24 14:32:17 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=690020e7
Added the espf-ssp patch for upstream rev 1
---
upstream/espf-ssp.patch | 130 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 130 insertions(+), 0 deletions(-)
diff --git a/upstream/espf-ssp.patch b/upstream/espf-ssp.patch
new file mode 100644
index 0000000..38af0a6
--- /dev/null
+++ b/upstream/espf-ssp.patch
@@ -0,0 +1,130 @@
+2011-06-24 Matthias Klose <doko@ubuntu.com>, Kees Cook <kees@outflux.net>,
+ Magnus Granberg <zorry@gentoo.org>
+
+ * gcc/objc/lang-specs.h compiler spec Add %(espf_options)
+ * gcc/objcp/lang-specs.h compiler spec Add %(espf_options)
+ * gcc/gcc.c *cpp_options Add %(espf_cpp_options)
+ * gcc/gcc.c default_compilers[] Add %(espf_options)
+ * gcc/cp/lang-specs.h compiler spec Add %(esp_options)
+
+--- a/gcc/gcc.c.orig 2009-12-21
++++ b/gcc/gcc.c 2009-12-21
+@@ -740,7 +749,7 @@
+ static const char *cpp_options =
+ "%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\
+ %{f*} %{g*:%{!g0:%{g*} %{!fno-working-directory:-fworking-directory}}} %{O*}\
+- %{undef} %{save-temps*:-fpch-preprocess}";
++ %{undef} %{save-temps*:-fpch-preprocess} %(espf_cpp_options)";
+
+ /* This contains cpp options which are not passed when the preprocessor
+ output will be used by another program. */
+@@ -914,9 +923,9 @@
+ %{save-temps*|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
+ %(cpp_options) -o %{save-temps*:%b.i} %{!save-temps*:%g.i} \n\
+ cc1 -fpreprocessed %{save-temps*:%b.i} %{!save-temps*:%g.i} \
+- %(cc1_options)}\
++ %(cc1_options) %(espf_options)}\
+ %{!save-temps*:%{!traditional-cpp:%{!no-integrated-cpp:\
+- cc1 %(cpp_unique_options) %(cc1_options)}}}\
++ cc1 %(cpp_unique_options) %(cc1_options) %(espf_options)}}}\
+ %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 1},
+ {"-",
+ "%{!E:%e-E or -x required when input is from standard input}\
+@@ -953,7 +953,7 @@
+ %W{o*:--output-pch=%*}}%V}}}}}}", 0, 0, 0},
+ {".i", "@cpp-output", 0, 0, 0},
+ {"@cpp-output",
+- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
++ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %(espf_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
+ {".s", "@assembler", 0, 0, 0},
+ {"@assembler",
+ "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0},
+--- a/gcc/cp/lang-specs.h 2011-03-06 17:27:57.000000000 +0100
++++ b/gcc/cp/lang-specs.h 2011-03-26 13:30:40.312423000 +0100
+@@ -47,7 +47,7 @@
+ %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}\
+ cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}\
+ %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
+- %(cc1_options) %2\
++ %(cc1_options) %(espf_options) %2\
+ %{!fsyntax-only:%{!fdump-ada-spec*:-o %g.s %{!o*:--output-pch=%i.gch}\
+ %W{o*:--output-pch=%*}}%V}}}}",
+ CPLUSPLUS_CPP_SPEC, 0, 0},
+@@ -58,7 +58,7 @@
+ %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}\
+ cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}\
+ %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
+- %(cc1_options) %2\
++ %(cc1_options) %(espf_options) %2\
+ %{!fsyntax-only:%(invoke_as)}}}}",
+ CPLUSPLUS_CPP_SPEC, 0, 0},
+ {".ii", "@c++-cpp-output", 0, 0, 0},
+
+--- a/gcc/objcp/lang-specs.h 2011-03-06 17:27:57.000000000 +0100
++++ a/gcc/objcp/lang-specs.h 2011-03-26 14:19:12.596423000 +0100
+@@ -36,7 +36,7 @@
+ %(cpp_options) %2 -o %{save-temps*:%b.mii} %{!save-temps*:%g.mii} \n}\
+ cc1objplus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.mii} %{!save-temps*:%g.mii}}\
+ %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
+- %(cc1_options) %2\
++ %(cc1_options) %(espf_options) %2\
+ -o %g.s %{!o*:--output-pch=%i.gch} %W{o*:--output-pch=%*}%V}}}",
+ CPLUSPLUS_CPP_SPEC, 0, 0},
+ {"@objective-c++",
+@@ -46,16 +46,16 @@
+ %(cpp_options) %2 -o %{save-temps*:%b.mii} %{!save-temps*:%g.mii} \n}\
+ cc1objplus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.mii} %{!save-temps*:%g.mii}}\
+ %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
+- %(cc1_options) %2\
++ %(cc1_options) %(espf_options) %2\
+ %{!fsyntax-only:%(invoke_as)}}}}",
+ CPLUSPLUS_CPP_SPEC, 0, 0},
+ {".mii", "@objective-c++-cpp-output", 0, 0, 0},
+ {"@objective-c++-cpp-output",
+ "%{!M:%{!MM:%{!E:\
+- cc1objplus -fpreprocessed %i %(cc1_options) %2\
++ cc1objplus -fpreprocessed %i %(cc1_options) %(espf_options) %2\
+ %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
+ {"@objc++-cpp-output",
+ "%nobjc++-cpp-output is deprecated; please use objective-c++-cpp-output instead\n\
+ %{!M:%{!MM:%{!E:\
+- cc1objplus -fpreprocessed %i %(cc1_options) %2\
++ cc1objplus -fpreprocessed %i %(cc1_options) %(espf_options) %2\
+ %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
+--- a/gcc/objc/lang-specs.h 2011-03-06 17:27:57.000000000 +0100
++++ b/gcc/objc/lang-specs.h 2011-03-26 14:56:27.668423000 +0100
+@@ -30,9 +30,9 @@
+ %{traditional|traditional-cpp:\
+ %eGNU Objective C no longer supports traditional compilation}\
+ %{save-temps*|no-integrated-cpp:cc1obj -E %(cpp_options) -o %{save-temps*:%b.mi} %{!save-temps*:%g.mi} \n\
+- cc1obj -fpreprocessed %{save-temps*:%b.mi} %{!save-temps*:%g.mi} %(cc1_options) %{print-objc-runtime-info} %{gen-decls}}\
++ cc1obj -fpreprocessed %{save-temps*:%b.mi} %{!save-temps*:%g.mi} %(cc1_options) %(espf_options) %{print-objc-runtime-info} %{gen-decls}}\
+ %{!save-temps*:%{!no-integrated-cpp:\
+- cc1obj %(cpp_unique_options) %(cc1_options) %{print-objc-runtime-info} %{gen-decls}}}\
++ cc1obj %(cpp_unique_options) %(cc1_options) %(espf_options) %{print-objc-runtime-info} %{gen-decls}}}\
+ %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
+ {"@objective-c-header",
+ "%{E|M|MM:cc1obj -E %{traditional|traditional-cpp:-traditional-cpp}\
+@@ -41,18 +41,18 @@
+ %{traditional|traditional-cpp:\
+ %eGNU Objective C no longer supports traditional compilation}\
+ %{save-temps*|no-integrated-cpp:cc1obj -E %(cpp_options) -o %{save-temps*:%b.mi} %{!save-temps*:%g.mi} \n\
+- cc1obj -fpreprocessed %b.mi %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
++ cc1obj -fpreprocessed %b.mi %(cc1_options)%(espf_options) %{print-objc-runtime-info} %{gen-decls}\
+ -o %g.s %{!o*:--output-pch=%i.gch}\
+ %W{o*:--output-pch=%*}%V}\
+ %{!save-temps*:%{!no-integrated-cpp:\
+- cc1obj %(cpp_unique_options) %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
++ cc1obj %(cpp_unique_options) %(cc1_options) %(espf_options) %{print-objc-runtime-info} %{gen-decls}\
+ -o %g.s %{!o*:--output-pch=%i.gch}\
+ %W{o*:--output-pch=%*}%V}}}}}", 0, 0, 0},
+ {".mi", "@objective-c-cpp-output", 0, 0, 0},
+ {"@objective-c-cpp-output",
+- "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
++ "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %(espf_options) %{print-objc-runtime-info} %{gen-decls}\
+ %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
+ {"@objc-cpp-output",
+ "%nobjc-cpp-output is deprecated; please use objective-c-cpp-output instead\n\
+- %{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
++ %{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %(espf_options) %{print-objc-runtime-info} %{gen-decls}\
+ %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2011-06-24 14:45 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2011-06-24 14:45 UTC (permalink / raw
To: gentoo-commits
commit: a0963e696b1ee2e4facb77b57da8489c90e8a94e
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 24 14:45:25 2011 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Fri Jun 24 14:45:25 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=a0963e69
Added the gcc.c patch for upstream rev 1
---
upstream/gcc.c.patch | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/upstream/gcc.c.patch b/upstream/gcc.c.patch
new file mode 100644
index 0000000..b1d5e89
--- /dev/null
+++ b/upstream/gcc.c.patch
@@ -0,0 +1,28 @@
+2011-06-24 Magnus Granberg <zorry@gentoo.org>
+
+ * gcc/gcc.c include esp.h
+ main(): Add do_self_spec (espf_command_options_spec)
+
+--- gcc/gcc.c 2010-01-21 10:29:30.000000000 -0500
++++ gcc/gcc.c 2010-01-29 23:29:16.000000000 -0500
+@@ -44,6 +44,7 @@
+ #include "flags.h"
+ #include "opts.h"
+ #include "vec.h"
++#include "esp.h" /* for --enable-espf support */
+
+ /* By default there is no special suffix for target executables. */
+ /* FIXME: when autoconf is fixed, remove the host check - dj */
+@@ -7096,6 +7123,12 @@
+ gcc_exec_prefix = concat (gcc_exec_prefix, spec_machine, dir_separator_str,
+ spec_version, dir_separator_str, NULL);
+
++#ifdef ENABLE_ESPF
++ /* Process ESPF_COMMAND_OPTIONS_SPEC, adding any new options to the end
++ of the command line. */
++ do_self_spec (espf_command_options_spec);
++#endif
++
+ /* Now we have the specs.
+ Set the `valid' bits for switches that match anything in any spec. */
+
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2012-04-08 12:36 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2012-04-08 12:36 UTC (permalink / raw
To: gentoo-commits
commit: 9f286ca40bcefa89d281475687529dfc081856cf
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 8 12:36:28 2012 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Sun Apr 8 12:36:28 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=9f286ca4
Updated configure.ac patch for upstream
---
upstream/configure.ac.patch | 233 +++++++++++++++++++++----------------------
1 files changed, 115 insertions(+), 118 deletions(-)
diff --git a/upstream/configure.ac.patch b/upstream/configure.ac.patch
index b08edcc..86bab05 100644
--- a/upstream/configure.ac.patch
+++ b/upstream/configure.ac.patch
@@ -1,25 +1,18 @@
-2011-06-24 Magnus Granberg <zorry@gentoo.org>
-
- * configure Add --enable-espf. Add -fno-stack-protector
- to stage1_cflags.
- * gcc/configure.ac Add --enable-espf and checks for it.
-
---- a/configure.ac 2011-04-18 23:27:00.000000000 +0200
-+++ b/configure.ac 2011-04-27 12:47:11.351473240 +0200
-@@ -419,6 +419,25 @@
+--- a/configure.ac 2011-11-29 22:36:43.000000000 +0100
++++ b/configure.ac 2011-12-07 23:29:26.125712475 +0100
+@@ -419,6 +419,24 @@ if test "${ENABLE_LIBADA}" != "yes" ; th
noconfigdirs="$noconfigdirs gnattools"
fi
+# Check whether --enable-espf was given and target have the support.
+AC_ARG_ENABLE([espf],
+[AS_HELP_STRING([--enable-espf],
-+ [Enable Stack protector, Position independent executable and
-+ Fortify_sources as default if we have suppot for it when compiling
-+ and link with -z relro and -z now as default.
-+ Linux targets supported x86_64.])],
++ [Enable Stack protector, Position independent executable as
++ default if we have suppot for it when compiling.
++ Linux targets supported i*86, x86_64 and x86_x32.])],
+[
+ case $target in
-+ i?86*-*-linux* | x86_64*-*-linux* | x86_x32*-*-linux | powerpc-*-linux* | powerpc64-*-linux* | arm*-*-linux* | ia64-*-linux*)
++ i?86*-*-linux* | x86_??*-*-linux*)
+ enable_espf=yes
+ ;;
+ *)
@@ -32,23 +25,25 @@
AC_ARG_ENABLE(libssp,
[AS_HELP_STRING([--enable-libssp], [build libssp directory])],
ENABLE_LIBSSP=$enableval,
-@@ -3152,6 +3171,10 @@
- esac ;;
- esac
+@@ -3211,6 +3230,11 @@ if test "$GCC" = yes -a "$ENABLE_BUILD_W
+ CFLAGS="$saved_CFLAGS"
+ fi
+# Disable -fstack-protector on stage1
+if test x$enable_espf = xyes; then
+ stage1_cflags="$stage1_cflags -fno-stack-protector"
+fi
- # This is aimed to mimic bootstrap with a non-GCC compiler to catch problems.
- if test "$GCC" = yes -a "$ENABLE_BUILD_WITH_CXX" != yes; then
- saved_CFLAGS="$CFLAGS"
---- a/gcc/configure.ac 2011-04-13 19:12:53.000000000 +0200
-+++ b/gcc/configure.ac 2011-06-24 03:17:07.448179335 +0200
-@@ -4515,6 +4515,145 @@
- AC_SUBST(MAINT)dnl
++
+ AC_SUBST(stage1_cflags)
+
+ # Enable --enable-checking in stage1 of the compiler.
+--- a/gcc/configure.ac 2011-11-18 11:52:32.000000000 +0100
++++ b/gcc/configure.ac 2012-04-04 16:18:00.269968226 +0200
+@@ -5130,6 +5146,148 @@ if test x"${LINKER_HASH_STYLE}" != x; th
+ [The linker hash style])
+ fi
- # --------------
++# --------------
+# Espf checks
+# --------------
+
@@ -56,16 +51,15 @@
+AC_ARG_ENABLE([espf],
+[AS_HELP_STRING([--enable-espf],
+ [Enable Stack protector, Position independent executable and
-+ Fortify_sources as default if we have suppot for it when compiling
-+ and link with -z relro and -z now as default.
-+ Linux targets supported x86_64])],
++ Fortify_sources as default if we have suppot for it when compiling.
++ Linux targets supported i*86, x86_64, and x86_x32.])],
+ set_enable_espf=$enableval,
+ set_enable_espf=no)
+if test $set_enable_espf = yes ; then
+ AC_MSG_CHECKING(if $target support espf)
+if test $set_enable_espf = yes ; then
+ case "$target" in
-+ ?86-*-linux* | x86_64-*-linux*)
++ i?86*-*-linux* | x86_??*-*-linux*)
+ enable_espf=yes
+ AC_DEFINE(ENABLE_ESPF, 1,
+ [Define if your target support espf and you have enable it.])
@@ -82,112 +76,115 @@
+AC_SUBST([enable_espf])
+if test $enable_espf = yes ; then
+
-+ AC_CACHE_CHECK(linker -z relro support,
-+ gcc_cv_ld_relro,
-+ [gcc_cv_ld_relro=no
-+ if test $in_tree_ld = yes ; then
-+ if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
-+ && test $in_tree_ld_is_elf = yes; then
-+ gcc_cv_ld_relro=yes
-+ fi
-+ elif test x$gcc_cv_ld != x; then
-+ # Check if linker supports -z relro options
-+ if $gcc_cv_ld --help 2>/dev/null | grep now > /dev/null; then
-+ gcc_cv_ld_relro=yes
-+ fi
-+ fi
-+ ])
-+
-+ AC_CACHE_CHECK(linker -z now support,
-+ gcc_cv_ld_now,
-+ [gcc_cv_ld_now=no
-+ if test $in_tree_ld = yes ; then
-+ if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
-+ && test $in_tree_ld_is_elf = yes; then
-+ gcc_cv_ld_now=yes
-+ fi
-+ elif test x$gcc_cv_ld != x; then
-+ # Check if linker supports -z now options
-+ if $gcc_cv_ld --help 2>/dev/null | grep now > /dev/null; then
-+ gcc_cv_ld_now=yes
-+ fi
-+ fi
-+ ])
-+
+# Check for FORTIFY_SOURCES support in target C library.
-+AC_CACHE_CHECK(for _FORTIFY_SOURCES support in target C library,
-+ gcc_cv_libc_provides_fortify,
-+ [gcc_cv_libc_provides_fortify=no
++ AC_CACHE_CHECK(for _FORTIFY_SOURCES support in target C library,
++ gcc_cv_libc_provides_fortify,
++ [gcc_cv_libc_provides_fortify=no
+ case "$target" in
-+ *-*-linux*)
-+ [# glibc 2.8 and later provides _FORTIFY_SOURCES.
-+ if test -f $target_header_dir/features.h; then
-+ if $EGREP '^[ ]*#[ ]*define[ ]+__GLIBC__[ ]+2' \
-+ $target_header_dir/features.h > /dev/null \
-+ && $EGREP '^[ ]*#[ ]*define[ ]+__GLIBC_MINOR__[ ]+([1-9][0-9]|[8-9])' \
++ *-*-linux*)
++ [# glibc 2.8 and later provides _FORTIFY_SOURCES.
++ # uClibc 0.9.32 and later provides _FORTIFY_SOURCES.
++ if test -f $target_header_dir/features.h; then
++ if $EGREP '^[ ]*#[ ]*define[ ]+__GLIBC__[ ]+2' \
++ $target_header_dir/features.h > /dev/null \
++ && $EGREP '^[ ]*#[ ]*define[ ]+__GLIBC_MINOR__[ ]+([1-9][0-9]|[8-9])' \
++ $target_header_dir/features.h > /dev/null; then
++ gcc_cv_libc_provides_fortify=yes
++ elif $EGREP '^[ ]*#[ ]*define[ ]+__UCLIBC__[ ]+1' \
+ $target_header_dir/features.h > /dev/null; then
-+ gcc_cv_libc_provides_fortify=yes
-+ elif $EGREP '^[ ]*#[ ]*define[ ]+__UCLIBC__[ ]' \
-+ $target_header_dir/features.h > /dev/null ; then
-+ gcc_cv_libc_provides_fortify=no
-+ fi
-+ fi]
-+ ;;
-+ *) gcc_cv_libc_provides_fortify=no ;;
++ if test -f $target_header_dir/bits/uClibc_config.h && \
++ $EGREP '^[ ]*#[ ]*define[ ]+__UCLIBC_SUBLEVEL__[ ]+([3-9][2-9]|[4-9][0-9])' \
++ $target_header_dir/bits/uClibc_config.h > /dev/null; then
++ gcc_cv_libc_provides_fortify=yes
++ else
++ gcc_cv_libc_provides_fortify=no
++ fi
++ fi
++ fi]
++ ;;
++ *) gcc_cv_libc_provides_fortify=no ;;
+ esac])
+
-+ AC_MSG_CHECKING(if the compiler default to use -fPIE and link with -pie)
-+ if test $set_enable_espf = yes && test x"$gcc_cv_ld_pie" = xyes; then
-+ enable_espf_pie=yes
++ AC_MSG_CHECKING(if we can default to use -fPIE and link with -pie)
++ if test x$gcc_cv_ld_pie = xyes; then
++ saved_LDFLAGS="$LDFLAGS"
++ saved_CFLAGS="$CFLAGS"
++ CFLAGS="$CFLAGS -fPIE -Werror"
++ LDFLAGS="$LDFLAGS -fPIE -pie"
++ AC_TRY_LINK(,,
++ [AC_MSG_RESULT([yes]); enable_espf_pie=yes],
++ [AC_MSG_RESULT([no]); enable_espf_pie=no])
++ LDFLAGS="$saved_LDFLAGS"
++ CFLAGS="$saved_CFLAGS"
++ else
++ AC_MSG_RESULT([no])
++ enable_espf_pie=no
++ fi
++
++ if test $enable_espf_pie = yes ; then
+ AC_DEFINE(ENABLE_ESPF_PIE, 1,
+ [Define if your compiler will default to use -fPIE and link with -pie.])
++ fi
++
++ AC_MSG_CHECKING(if we can default to use -fstack-protector)
++ ssp_link_test=no
++ if test x$gcc_cv_libc_provides_ssp = xyes && test x$set_have_as_tls = yes; then
++ if $EGREP '^[ ]*#[ ]*define[ ]+__UCLIBC__[ ]+1' \
++ $target_header_dir/features.h > /dev/null; then
++ if test -f $target_header_dir/bits/uClibc_config.h && \
++ $EGREP '^[ ]*#[ ]*define[ ]+__UCLIBC_SUBLEVEL__[ ]+([3-9][2-9]|[4-9][0-9])' \
++ $target_header_dir/bits/uClibc_config.h > /dev/null && \
++ $EGREP '^[ ]*#[ ]*define[ ]+__UCLIBC_HAS_TLS__[ ]+1' \
++ $target_header_dir/bits/uClibc_config.h > /dev/null; then
++ ssp_link_test=yes
++ fi
++ else
++ ssp_link_test=yes
++ fi
++ fi
++ if test x$ssp_link_test=xyes ; then
++ saved_CFLAGS="$CFLAGS"
++ CFLAGS="$CFLAGS -O2 -fstack-protector -Werror"
++ AC_TRY_LINK(,,
++ [AC_MSG_RESULT([yes]); enable_espf_ssp=yes],
++ [AC_MSG_RESULT([no]); enable_espf_ssp=no])
++ CFLAGS="$saved_CFLAGS"
+ else
-+ enable_espf_pie=no
++ AC_MSG_RESULT([no])
++ enable_espf_ssp=no
+ fi
-+ AC_MSG_RESULT($enable_espf_pie)
-+AC_MSG_CHECKING(if the compiler default to use -fstack-protector)
-+ if test $set_enable_espf = yes && test x$gcc_cv_libc_provides_ssp = xyes \
-+ && test $set_have_as_tls = yes ; then
-+ enable_espf_ssp=yes
++ if test $enable_espf_ssp = yes ; then
+ AC_DEFINE(ENABLE_ESPF_SSP, 1,
+ [Define if your compiler will default to use -fstack-protector.])
-+ else
-+ enable_espf_ssp=no
+ fi
-+ AC_MSG_RESULT($enable_espf_ssp)
+
-+AC_MSG_CHECKING(if the compiler default to use -D_FORTIFY_SOURCES=2)
-+ if test $set_enable_espf = yes && test x$gcc_cv_libc_provides_fortify = xyes; then
-+ enable_espf_fortify=yes
++ AC_MSG_CHECKING(if we can default to use -D_FORTIFY_SOURCES=2)
++ if test x$gcc_cv_libc_provides_fortify = xyes; then
++ saved_CFLAGS="$CFLAGS"
++ saved_CPPFLAGS="$CPPFLAGS"
++ CFLAGS="$CFLAGS -O2 -Werror"
++ CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCES=2"
++ AC_TRY_LINK([
++ #include <sys/types.h>
++ #include <sys/stat.h>
++ #include <fcntl.h>
++ ],[
++ open ("/tmp/foo", O_WRONLY | O_CREAT);
++ ],
++ [AC_MSG_RESULT([no]); enable_espf_fortify=no],
++ [AC_MSG_RESULT([yes]); enable_espf_fortify=yes])
++ CFLAGS="$saved_CFLAGS"
++ CPPFLAGS="$saved_CPPFLAGS"
++ else
++ [AC_MSG_RESULT([no]); enable_espf_fortify=no]
++ fi
++ if test x$enable_espf_fortify = xyes ; then
+ AC_DEFINE(ENABLE_ESPF_FORTIFY, 1,
+ [Define if your compiler will default to use -D_FORTIFY_SOURCES=2.])
-+ else
-+ enable_espf_fortify=no
+ fi
-+ AC_MSG_RESULT($enable_espf_fortify)
+
-+ AC_MSG_CHECKING(if the compiler will pass -z relro to the linker)
-+ if test $set_enable_espf = yes && test x$gcc_cv_ld_relro = xyes; then
-+ enable_espf_relro=yes
-+ AC_DEFINE(ENABLE_ESPF_RELRO, 1,
-+ [Define if your compiler will pass -z relro to the linker.])
-+ else
-+ enable_espf_relro=no
-+ fi
-+ AC_MSG_RESULT($enable_espf_relro)
-+
-+ AC_MSG_CHECKING(if the compiler will pass -z now to the linker)
-+ if test $set_enable_espf = yes && test x$gcc_cv_ld_now = xyes; then
-+ enable_espf_now=yes
-+ AC_DEFINE(ENABLE_ESPF_NOW, 1,
-+ [Define if your compiler will pass -z now to the linker.])
-+ else
-+ enable_espf_now=no
-+ fi
-+ AC_MSG_RESULT($enable_espf_now)
+fi
+
-+# --------------
- # Language hooks
- # --------------
+ # Configure the subdirectories
+ # AC_CONFIG_SUBDIRS($subdirs)
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2012-04-08 13:00 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2012-04-08 13:00 UTC (permalink / raw
To: gentoo-commits
commit: a44df2af465660e2c3cd05328d4b855b50dc8e8e
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 8 13:00:05 2012 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Sun Apr 8 13:00:05 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=a44df2af
Updated config.in patch for upstream
---
upstream/config.in.patch | 21 ++++-----------------
1 files changed, 4 insertions(+), 17 deletions(-)
diff --git a/upstream/config.in.patch b/upstream/config.in.patch
index 89f5ec4..7bd846e 100644
--- a/upstream/config.in.patch
+++ b/upstream/config.in.patch
@@ -1,12 +1,11 @@
-2010-06-24 Magnus Granberg <zorry@gentoo.org>
+2012-04-08 Magnus Granberg <zorry@gentoo.org>
- * gcc/config.in Add ENABLE_ESPF, ENABLE_ESPF_FORTIFY
- ENABLE_ESPF_NOW, ENABLE_ESPF_PIE, ENABLE_ESPF_RELRO
- and ENABLE_ESPF_SSP
+ * gcc/config.in Add ENABLE_ESPF, ENABLE_ESPF_FORTIFY,
+ ENABLE_ESPF_PIE and ENABLE_ESPF_SSP
--- a/gcc/config.in 2011-04-24 00:36:52.000000000 +0200
+++ b/gcc/config.in 2011-06-24 14:17:05.166236726 +0200
-@@ -77,6 +77,41 @@
+@@ -77,6 +77,29 @@
#endif
@@ -22,24 +21,12 @@
+#endif
+
+
-+/* Define to 1 to enable espf with -z now when linking. */
-+#ifndef USED_FOR_TARGET
-+#undef ENABLE_ESPF_NOW
-+#endif
-+
-+
+/* Define to 1 to enable espf with -fPIE -pie. */
+#ifndef USED_FOR_TARGET
+#undef ENABLE_ESPF_PIE
+#endif
+
+
-+/* Define to 1 to enable espf with -z relro when linking. */
-+#ifndef USED_FOR_TARGET
-+#undef ENABLE_ESPF_RELRO
-+#endif
-+
-+
+/* Define to 1 to enable espf with -fstack-protector. */
+#ifndef USED_FOR_TARGET
+#undef ENABLE_ESPF_SSP
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2012-07-25 15:09 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2012-07-25 15:09 UTC (permalink / raw
To: gentoo-commits
commit: ae04161720b0a88f4e4e5612056efc879575e005
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 25 15:09:14 2012 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Wed Jul 25 15:09:14 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=ae041617
Update the upstream patches
---
upstream/Wformat.patch | 45 ++++++++++++++++++++++++++++++++++++++++++++
upstream/config_all.patch | 10 +++++---
upstream/config_i386.patch | 37 +++++++++++++++++++++++++++--------
3 files changed, 79 insertions(+), 13 deletions(-)
diff --git a/upstream/Wformat.patch b/upstream/Wformat.patch
new file mode 100644
index 0000000..be0b07a
--- /dev/null
+++ b/upstream/Wformat.patch
@@ -0,0 +1,45 @@
+--- a/gcc/c-family/c-common.c 2012-02-13 21:12:54.000000000 +0100
++++ b/gcc/c-family/c-common.c 2012-07-09 23:17:18.375234684 +0200
+@@ -202,7 +202,19 @@ int warn_unknown_pragmas; /* Tri state v
+ /* Warn about format/argument anomalies in calls to formatted I/O functions
+ (*printf, *scanf, strftime, strfmon, etc.). */
+
++#ifdef ENABLE_ESPF
++int warn_format = 1;
++#else
+ int warn_format;
++#endif
++
++/* Warn about possible security problems with format functions. */
++
++#ifdef ENABLE_ESPF
++int warn_format_security = 1;
++#else
++int warn_format_security;
++#endif
+
+ /* C/ObjC language option variables. */
+
+--- a/gcc/c-family/c-common.h 2011-12-20 21:44:13.000000000 +0100
++++ b/gcc/c-family/c-common.h 2012-07-09 23:16:33.355233344 +0200
+@@ -594,6 +594,9 @@ extern int warn_unknown_pragmas; /* Tri
+
+ extern int warn_format;
+
++/* Warn about possible security problems with format functions. */
++
++extern int warn_format_security;
+
+ /* C/ObjC language option variables. */
+
+--- a/gcc/c-family/c.opt 2012-02-06 11:31:18.000000000 +0100
++++ b/gcc/c-family/c.opt 2012-07-09 22:07:11.449109322 +0200
+@@ -392,7 +392,7 @@ C ObjC C++ ObjC++ Var(warn_format_contai
+ Warn about format strings that contain NUL bytes
+
+ Wformat-security
+-C ObjC C++ ObjC++ Var(warn_format_security) Warning
++C ObjC C++ ObjC++ Warning
+ Warn about possible security problems with format functions
+
+ Wformat-y2k
diff --git a/upstream/config_all.patch b/upstream/config_all.patch
index f3af62d..f7c8e9b 100644
--- a/upstream/config_all.patch
+++ b/upstream/config_all.patch
@@ -1,6 +1,6 @@
--- a/gcc/config/linux.h 2011-07-07 17:38:34.000000000 +0200
-+++ b/gcc/config/linux.h 2012-07-06 17:09:54.414853750 +0200
-@@ -104,3 +104,29 @@ see the files COPYING3 and COPYING.RUNTI
++++ b/gcc/config/linux.h 2012-07-09 14:24:08.599281404 +0200
+@@ -104,3 +104,31 @@ see the files COPYING3 and COPYING.RUNTI
/* Whether we have sincos that follows the GNU extension. */
#undef TARGET_HAS_SINCOS
#define TARGET_HAS_SINCOS (OPTION_GLIBC || OPTION_BIONIC)
@@ -15,18 +15,20 @@
+#endif
+#ifdef ENABLE_ESPF_SSP
+#define ESPF_GCC_SSP_SPEC \
-+ "%{nostdlib|nodefaultlibs|fno-stack-protector| \
++ "%{nostdlib|nodefaultlibs|fno-stack-protector|freestanding| \
+ fstack-protector|fstack-protector-all:;:-fstack-protector}"
+#else
+#define ESPF_GCC_SSP_SPEC ""
+#endif
+#ifdef ENABLE_ESPF_FORTIFY
+#define ESPF_CPP_UNIQUE_OPTIONS_SPEC \
-+ "%{D_FORTIFY_SOURCE|D_FORTIFY_SOURCE=*|U_FORTIFY_SOURCE:;:-D _FORTIFY_SOURCE=2}"
++ "%{D_FORTIFY_SOURCE|D_FORTIFY_SOURCE=*|U_FORTIFY_SOURCE:;:-D_FORTIFY_SOURCE=2}"
+#else
+#define ESPF_CPP_UNIQUE_OPTIONS_SPEC ""
+#endif
+#define ESPF_DRIVER_SELF_SPECS \
+ ESPF_GCC_PIE_SPEC, \
+ ESPF_GCC_SSP_SPEC
++#define ESPF_EXTRA_SPECS \
++ { "espf_cpp_unique_options", ESPF_CPP_UNIQUE_OPTIONS_SPEC }
+#endif
diff --git a/upstream/config_i386.patch b/upstream/config_i386.patch
index c6632c9..58ceebe 100644
--- a/upstream/config_i386.patch
+++ b/upstream/config_i386.patch
@@ -18,22 +18,41 @@
+#ifdef ENABLE_ESPF
+#define DRIVER_SELF_SPECS ESPF_DRIVER_SELF_SPECS
+#endif
+--- a/gcc/config/i386/gnu-user.h 2011-05-05 14:32:50.000000000 +0200
++++ b/gcc/config/i386/gnu-user.h 2012-07-09 14:28:38.726289455 +0200
+@@ -93,9 +93,16 @@ along with GCC; see the file COPYING3.
+ "--32 %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
+
+ #undef SUBTARGET_EXTRA_SPECS
++#if def ENABLE_ESPF
+ #define SUBTARGET_EXTRA_SPECS \
+ { "link_emulation", GNU_USER_LINK_EMULATION },\
+- { "dynamic_linker", GNU_USER_DYNAMIC_LINKER }
++ { "dynamic_linker", GNU_USER_DYNAMIC_LINKER }, \
++ ESPF_EXTRA_SPECS
++#else
++#define SUBTARGET_EXTRA_SPECS \
++ { "link_emulation", GNU_USER_LINK_EMULATION },\
++ { "dynamic_linker", GNU_USER_DYNAMIC_LINKER }
++#endif
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
--- a/gcc/config/i386/i386.h 2011-11-24 23:11:12.000000000 +0100
-+++ b/gcc/config/i386/i386.h 2012-07-06 17:30:46.694891067 +0200
-@@ -620,10 +620,17 @@ enum target_cpu_default
- #define SUBTARGET_EXTRA_SPECS
- #endif
++++ b/gcc/config/i386/i386.h 2012-07-09 14:21:24.575276517 +0200
+@@ -617,13 +617,16 @@ enum target_cpu_default
+ Do not define this macro if it does not need to do anything. */
+ #ifndef SUBTARGET_EXTRA_SPECS
+#ifdef ENABLE_ESPF
-+#define ESPF_EXTRA_SPECS \
-+ { "espf_cpp_unique_options", ESPF_CPP_UNIQUE_OPTIONS_SPEC }
++#define SUBTARGET_EXTRA_SPECS ESPF_EXTRA_SPECS
+#else
-+#define ESPF_EXTRA_SPECS { "", "" }
+ #define SUBTARGET_EXTRA_SPECS
+ #endif
+#endif
-+
+
#define EXTRA_SPECS \
{ "cc1_cpu", CC1_CPU_SPEC }, \
-+ ESPF_EXTRA_SPECS, \
SUBTARGET_EXTRA_SPECS
-\f
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2012-07-30 21:05 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2012-07-30 21:05 UTC (permalink / raw
To: gentoo-commits
commit: 750927c7e75c0a24fe7c625afc4a240d29aebc3c
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 30 21:04:46 2012 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Mon Jul 30 21:04:46 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=750927c7
updated upstream patches with doc and some testsuite fixes
---
upstream/Makefile.in.patch | 10 ++++
upstream/Wformat.patch | 45 ++++++--------------
upstream/config_all.patch | 6 +-
upstream/gcc_doc.patch | 99 ++++++++++++++++++++++++++++++++++++++++++++
upstream/testsuite.patch | 35 +++++++++++++++
5 files changed, 161 insertions(+), 34 deletions(-)
diff --git a/upstream/Makefile.in.patch b/upstream/Makefile.in.patch
index cc7d0f0..9b3c173 100644
--- a/upstream/Makefile.in.patch
+++ b/upstream/Makefile.in.patch
@@ -68,6 +68,16 @@
mv tmp-libgcc.mvars libgcc.mvars
+@@ -4893,6 +4903,9 @@ site.exp: ./config.status Makefile
+ @if test "@enable_lto@" = "yes" ; then \
+ echo "set ENABLE_LTO 1" >> ./site.tmp; \
+ fi
++ @if test "@enable_espf@" = "yes" ; then \
++ echo "set ENABLE_ESPF 1" >> ./site.tmp; \
++ fi
+ # If newlib has been configured, we need to pass -B to gcc so it can find
+ # newlib's crt0.o if it exists. This will cause a "path prefix not used"
+ # message if it doesn't, but the testsuite is supposed to ignore the message -
--- a/libgcc/Makefile.in 2011-11-22 04:01:02.000000000 +0100
+++ b/libgcc/Makefile.in 2012-06-29 00:15:04.534016511 +0200
@@ -275,11 +275,16 @@ override CFLAGS := $(filter-out -fprofil
diff --git a/upstream/Wformat.patch b/upstream/Wformat.patch
index be0b07a..99bfcf5 100644
--- a/upstream/Wformat.patch
+++ b/upstream/Wformat.patch
@@ -1,6 +1,6 @@
--- a/gcc/c-family/c-common.c 2012-02-13 21:12:54.000000000 +0100
-+++ b/gcc/c-family/c-common.c 2012-07-09 23:17:18.375234684 +0200
-@@ -202,7 +202,19 @@ int warn_unknown_pragmas; /* Tri state v
++++ b/gcc/c-family/c-common.c 2012-07-28 00:04:05.351725091 +0200
+@@ -202,7 +202,11 @@ int warn_unknown_pragmas; /* Tri state v
/* Warn about format/argument anomalies in calls to formatted I/O functions
(*printf, *scanf, strftime, strfmon, etc.). */
@@ -9,37 +9,20 @@
+#else
int warn_format;
+#endif
-+
-+/* Warn about possible security problems with format functions. */
-+
-+#ifdef ENABLE_ESPF
-+int warn_format_security = 1;
-+#else
-+int warn_format_security;
-+#endif
/* C/ObjC language option variables. */
---- a/gcc/c-family/c-common.h 2011-12-20 21:44:13.000000000 +0100
-+++ b/gcc/c-family/c-common.h 2012-07-09 23:16:33.355233344 +0200
-@@ -594,6 +594,9 @@ extern int warn_unknown_pragmas; /* Tri
-
- extern int warn_format;
-
-+/* Warn about possible security problems with format functions. */
+--- a/gcc/c-family/c-format.c 2011-06-07 23:52:46.000000000 +0200
++++ b/gcc/c-family/c-format.c 2012-07-28 00:43:00.612794680 +0200
+@@ -52,6 +52,11 @@ set_Wformat (int setting)
+ /* Make sure not to disable -Wnonnull if -Wformat=0 is specified. */
+ if (setting)
+ warn_nonnull = setting;
+
-+extern int warn_format_security;
-
- /* C/ObjC language option variables. */
-
---- a/gcc/c-family/c.opt 2012-02-06 11:31:18.000000000 +0100
-+++ b/gcc/c-family/c.opt 2012-07-09 22:07:11.449109322 +0200
-@@ -392,7 +392,7 @@ C ObjC C++ ObjC++ Var(warn_format_contai
- Warn about format strings that contain NUL bytes
-
- Wformat-security
--C ObjC C++ ObjC++ Var(warn_format_security) Warning
-+C ObjC C++ ObjC++ Warning
- Warn about possible security problems with format functions
++#ifdef ENABLE_ESPF
++ if (setting == 1)
++ warn_format_security = 1;
++#endif
+ }
- Wformat-y2k
+ \f
diff --git a/upstream/config_all.patch b/upstream/config_all.patch
index f7c8e9b..aa16b1b 100644
--- a/upstream/config_all.patch
+++ b/upstream/config_all.patch
@@ -1,9 +1,9 @@
--- a/gcc/config/linux.h 2011-07-07 17:38:34.000000000 +0200
+++ b/gcc/config/linux.h 2012-07-09 14:24:08.599281404 +0200
@@ -104,3 +104,31 @@ see the files COPYING3 and COPYING.RUNTI
- /* Whether we have sincos that follows the GNU extension. */
- #undef TARGET_HAS_SINCOS
- #define TARGET_HAS_SINCOS (OPTION_GLIBC || OPTION_BIONIC)
+ /* Whether we have Bionic libc runtime */
+ #undef TARGET_HAS_BIONIC
+ #define TARGET_HAS_BIONIC (OPTION_BIONIC)
+
+#ifdef ENABLE_ESPF
+#ifdef ENABLE_ESPF_PIE
diff --git a/upstream/gcc_doc.patch b/upstream/gcc_doc.patch
new file mode 100644
index 0000000..ba76d17
--- /dev/null
+++ b/upstream/gcc_doc.patch
@@ -0,0 +1,99 @@
+--- a/gcc/doc/invoke.texi 2012-03-01 10:57:59.000000000 +0100
++++ b/gcc/doc/invoke.texi 2012-07-30 00:57:03.766847851 +0200
+@@ -3216,6 +3216,10 @@ aspects of format checking, the options
+ @option{-Wformat-nonliteral}, @option{-Wformat-security}, and
+ @option{-Wformat=2} are available, but are not included in @option{-Wall}.
+
++NOTE: With configure --enable-espf=@r{[}all@r{|}ssp@r{|}pie@r{]}is
++this option enabled by default for C, C++, ObjC, ObjC++.
++To disable, use @option{-Wformat=0}.
++
+ @item -Wformat-y2k
+ @opindex Wformat-y2k
+ @opindex Wno-format-y2k
+@@ -3269,6 +3273,12 @@ currently a subset of what @option{-Wfor
+ in future warnings may be added to @option{-Wformat-security} that are not
+ included in @option{-Wformat-nonliteral}.)
+
++NOTE: With configure --enable-espf=@r{[}all@r{|}ssp@r{|}pie@r{]} is
++this option enabled by default for C, C++, ObjC, ObjC++. To disable,
++use @option{-Wno-format-security}, or disable all format warnings
++with @option{-Wformat=0}. To make format security warnings fatal,
++specify @option{-Werror=format-security}.
++
+ @item -Wformat=2
+ @opindex Wformat=2
+ @opindex Wno-format=2
+@@ -6229,6 +6239,13 @@ also turns on the following optimization
+ Please note the warning under @option{-fgcse} about
+ invoking @option{-O2} on programs that use computed gotos.
+
++NOTE: With configure --enable-espf=@r{[}all@r{|}ssp@r{|}pie@r{]},
++@option{-D_FORTIFY_SOURCE=2} is set by default, and is activated
++when @option{-O} is set to 2 or higher. This enables additional
++compile-time and run-time checks for several libc functions.
++To disable, specify either @option{-U_FORTIFY_SOURCE} or
++@option{-D_FORTIFY_SOURCE=0}.
++
+ @item -O3
+ @opindex O3
+ Optimize yet more. @option{-O3} turns on all optimizations specified
+@@ -8475,6 +8492,12 @@ functions with buffers larger than 8 byt
+ when a function is entered and then checked when the function exits.
+ If a guard check fails, an error message is printed and the program exits.
+
++NOTE: With configure --enable-espf=@r{[}all@r{|}ssp@r{]} this option
++is enabled by default for C, C++, ObjC, ObjC++, if none of
++@option{-fno-stack-protector}, @option{-nostdlib},
++@option{-fno-stack-protector-all}, @option{nodefaultlibs},
++nor @option{-ffreestanding} are found.
++
+ @item -fstack-protector-all
+ @opindex fstack-protector-all
+ Like @option{-fstack-protector} except that all functions are protected.
+@@ -9457,6 +9480,12 @@ For predictable results, you must also s
+ that were used to generate code (@option{-fpie}, @option{-fPIE},
+ or model suboptions) when you specify this option.
+
++NOTE: With configure --enable-espf=@r{[}all@r{|}ssp@r{]} this option is
++enabled by default for C, C++, ObjC, ObjC++, if none of @option{-fno-PIE},
++@option{-fno-pie}, @option{-fPIC}, @option{-fpic}, @option{-fno-PIC},
++@option{-fno-pic}, @option{-nostdlib}, @option{-nostartfiles},
++@option{-shared}, @option{-nodefaultlibs}, nor @option{static} are found.
++
+ @item -rdynamic
+ @opindex rdynamic
+ Pass the flag @option{-export-dynamic} to the ELF linker, on targets
+@@ -19125,6 +19154,12 @@ used during linking.
+ @code{__pie__} and @code{__PIE__}. The macros have the value 1
+ for @option{-fpie} and 2 for @option{-fPIE}.
+
++NOTE: With configure --enable-espf=@r{[}all@r{|}ssp@r{]} this option is
++enabled by default for C, C++, ObjC, ObjC++, if none of @option{-fno-PIE},
++@option{-fno-pie}, @option{-fPIC}, @option{-fpic}, @option{-fno-PIC},
++@option{-fno-pic}, @option{-nostdlib}, @option{-nostartfiles},
++@option{-shared}, @option{-nodefaultlibs}, nor @option{static} are found.
++
+ @item -fno-jump-tables
+ @opindex fno-jump-tables
+ Do not use jump tables for switch statements even where it would be
+--- a/gcc/doc/install.texi 2012-03-02 10:37:30.000000000 +0100
++++ b/gcc/doc/install.texi 2012-07-23 18:05:14.160784593 +0200
+@@ -1392,6 +1392,17 @@ do a @samp{make -C gcc gnatlib_and_tools
+ Specify that the run-time libraries for stack smashing protection
+ should not be built.
+
++@item --enable-espf=@var{list}
++Will turn on some compiler and preprosessor options as default.
++@option{-D_FORTIFY_SOURCE=2}, @option{-Wformat} and
++@option{-Wformat-security} will be turn on as default and depend on
++if you use @samp{all} it will turn on @option{-fstack-protection}and
++@option{-fPIE} by default. if the support is there. If you use
++@samp{ssp} it will turn on @option{-fstack-protection} by default if the
++support is there. If you use @samp{pie} it will turn on @option{-fPIE}
++by default if the support is there. We only support x86-64-*-linux* as target
++for now.
++
+ @item --disable-libquadmath
+ Specify that the GCC quad-precision math library should not be built.
+ On some systems, the library is required to be linkable when building
diff --git a/upstream/testsuite.patch b/upstream/testsuite.patch
new file mode 100644
index 0000000..50d06e5
--- /dev/null
+++ b/upstream/testsuite.patch
@@ -0,0 +1,35 @@
+--- a/gcc/testsuite/lib/target-supports.exp 2012-02-22 12:00:21.000000000 +0100
++++ b/gcc/testsuite/lib/target-supports.exp 2012-07-27 19:19:30.849216278 +0200
+@@ -4419,6 +4419,14 @@ proc check_effective_target_lto { } {
+ return [info exists ENABLE_LTO]
+ }
+
++# Return 1 if the compiler has been configure with espf
++# (configure --enable-espf=(all|ssp|pie)) support.
++
++proc check_effective_target_espf { } {
++ global ENABLE_ESPF
++ return [info exists ENABLE_ESPF]
++}
++
+ # Return 1 if this target supports the -fsplit-stack option, 0
+ # otherwise.
+
+--- a/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.x 2012-07-30 02:31:20.573793905 +0200
++++ b/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.x 2012-07-27 21:47:01.574480025 +0200
+@@ -0,0 +1,6 @@
++load_lib target-supports.exp
++
++if [check_effective_target_espf] {
++ set additional_flags "-U_FORTIFY_SOURCE"
++}
++return 0
+--- a/gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.x 2012-07-30 02:31:07.366794031 +0200
++++ b/gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.x 2012-07-27 21:47:01.000000000 +0200
+@@ -0,0 +1,6 @@
++load_lib target-supports.exp
++
++if [check_effective_target_espf] {
++ set additional_flags "-U_FORTIFY_SOURCE"
++}
++return 0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2012-08-01 18:35 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2012-08-01 18:35 UTC (permalink / raw
To: gentoo-commits
commit: 0e28c5d8e6e028437340bd03b2d450dbe06bf03a
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 1 18:35:36 2012 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Wed Aug 1 18:35:36 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=0e28c5d8
updated upstream patches with small fixes
---
upstream/config_all.patch | 3 ++-
upstream/config_i386.patch | 6 ++++--
upstream/configure.ac.patch | 10 ++++++----
upstream/gcc.c.patch | 12 ++++++------
upstream/gcc_doc.patch | 14 +++++++-------
5 files changed, 25 insertions(+), 20 deletions(-)
diff --git a/upstream/config_all.patch b/upstream/config_all.patch
index aa16b1b..3fe4824 100644
--- a/upstream/config_all.patch
+++ b/upstream/config_all.patch
@@ -1,10 +1,11 @@
--- a/gcc/config/linux.h 2011-07-07 17:38:34.000000000 +0200
+++ b/gcc/config/linux.h 2012-07-09 14:24:08.599281404 +0200
-@@ -104,3 +104,31 @@ see the files COPYING3 and COPYING.RUNTI
+@@ -104,3 +104,32 @@ see the files COPYING3 and COPYING.RUNTI
/* Whether we have Bionic libc runtime */
#undef TARGET_HAS_BIONIC
#define TARGET_HAS_BIONIC (OPTION_BIONIC)
+
++/* Needed by configure --enable-espf */
+#ifdef ENABLE_ESPF
+#ifdef ENABLE_ESPF_PIE
+#define ESPF_GCC_PIE_SPEC \
diff --git a/upstream/config_i386.patch b/upstream/config_i386.patch
index 58ceebe..f8c10cb 100644
--- a/upstream/config_i386.patch
+++ b/upstream/config_i386.patch
@@ -1,20 +1,22 @@
--- a/gcc/config/i386/linux.h 2011-06-03 20:30:39.000000000 +0200
+++ b/gcc/config/i386/linux.h 2012-07-05 21:00:38.304691613 +0200
-@@ -22,3 +22,7 @@ along with GCC; see the file COPYING3.
+@@ -22,3 +22,8 @@ along with GCC; see the file COPYING3.
#define GNU_USER_LINK_EMULATION "elf_i386"
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+
++/* Needed by configure --enable-espf */
+#ifdef ENABLE_ESPF
+#define DRIVER_SELF_SPECS ESPF_DRIVER_SELF_SPECS
+#endif
--- a/gcc/config/i386/linux64.h 2011-07-07 17:38:34.000000000 +0200
+++ b/gcc/config/i386/linux64.h 2012-07-05 20:59:39.342689855 +0200
-@@ -31,3 +31,7 @@ see the files COPYING3 and COPYING.RUNTI
+@@ -31,3 +31,8 @@ see the files COPYING3 and COPYING.RUNTI
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
+
++/* Needed by configure --enable-espf */
+#ifdef ENABLE_ESPF
+#define DRIVER_SELF_SPECS ESPF_DRIVER_SELF_SPECS
+#endif
diff --git a/upstream/configure.ac.patch b/upstream/configure.ac.patch
index 49a7e21..8fc9730 100644
--- a/upstream/configure.ac.patch
+++ b/upstream/configure.ac.patch
@@ -1,6 +1,6 @@
--- a/configure.ac 2012-02-02 11:20:32.000000000 +0100
+++ b/configure.ac 2012-07-01 00:44:27.845218414 +0200
-@@ -424,6 +424,35 @@ AC_ARG_ENABLE(libssp,
+@@ -424,6 +424,36 @@ AC_ARG_ENABLE(libssp,
ENABLE_LIBSSP=$enableval,
ENABLE_LIBSSP=yes)
@@ -9,7 +9,8 @@
+[AS_HELP_STRING([--enable-espf[=ARG]],
+ [Enable Stack protector, Position independent executable and
+ Fortify_source as default. If we have suppot for it when compiling.
-+ Linux targets supported x86_64. @<:@ARG={all,pie,ssp,no}@:>@ ])],
++ Linux targets supported x86, x32 and x86_64.
++ @<:@ARG={all,pie,ssp,no}@:>@ ])],
+set_enable_espf=$enableval,
+set_enable_espf=no)
+case "${set_enable_espf}" in
@@ -50,7 +51,7 @@
# Enable --enable-checking in stage1 of the compiler.
--- a/gcc/configure.ac 2012-02-22 12:27:45.000000000 +0100
+++ b/gcc/configure.ac 2012-07-01 00:43:14.054216215 +0200
-@@ -5193,6 +5193,155 @@ if test x"${LINKER_HASH_STYLE}" != x; th
+@@ -5193,6 +5193,156 @@ if test x"${LINKER_HASH_STYLE}" != x; th
[The linker hash style])
fi
@@ -63,7 +64,8 @@
+[AS_HELP_STRING([--enable-espf[=ARG]],
+ [Enable Stack protector, Position independent executable and
+ Fortify_source as default. If we have suppot for it when compiling.
-+ Linux targets supported x86_64. @<:@ARG={all,pie,ssp,no}@:>@ ])],
++ Linux targets supported x86, x32 and x86_64.
++ @<:@ARG={all,pie,ssp,no}@:>@ ])],
+set_enable_espf=$enableval,
+set_enable_espf=no)
+case "${set_enable_espf}" in
diff --git a/upstream/gcc.c.patch b/upstream/gcc.c.patch
index 556f0a5..605cbb8 100644
--- a/upstream/gcc.c.patch
+++ b/upstream/gcc.c.patch
@@ -1,17 +1,17 @@
--- a/gcc/gcc.c 2012-02-28 18:31:38.000000000 +0100
-+++ b/gcc/gcc.c 2012-07-06 17:03:20.505842011 +0200
-@@ -756,9 +756,11 @@ static const char *cpp_unique_options =
++++ b/gcc/gcc.c 2012-08-01 03:10:01.060123826 +0200
+@@ -756,8 +756,12 @@ static const char *cpp_unique_options =
%{!iplugindir*:%{fplugin*:%:find-plugindir()}}\
%{H} %C %{D*&U*&A*} %{i*} %Z %i\
%{fmudflap:-D_MUDFLAP -include mf-runtime.h}\
- %{fmudflapth:-D_MUDFLAP -D_MUDFLAPTH -include mf-runtime.h}\
- %{E|M|MM:%W{o*}}";
--
+ %{fmudflapth:-D_MUDFLAP -D_MUDFLAPTH -include mf-runtime.h} "
-+#ifdef ENABLE_ESPF_FORTIFY
-+"%(espf_cpp_unique_options) "
++ /* Needed by configure --enable-espf */
++ #ifdef ENABLE_ESPF_FORTIFY
++"%(espf_cpp_unique_options)"
+#endif
+"%{E|M|MM:%W{o*}}";
+
/* This contains cpp options which are common with cc1_options and are passed
only when preprocessing only to avoid duplication. We pass the cc1 spec
- options to the preprocessor so that it the cc1 spec may manipulate
diff --git a/upstream/gcc_doc.patch b/upstream/gcc_doc.patch
index ba76d17..fc39347 100644
--- a/upstream/gcc_doc.patch
+++ b/upstream/gcc_doc.patch
@@ -55,7 +55,7 @@
that were used to generate code (@option{-fpie}, @option{-fPIE},
or model suboptions) when you specify this option.
-+NOTE: With configure --enable-espf=@r{[}all@r{|}ssp@r{]} this option is
++NOTE: With configure --enable-espf=@r{[}all@r{|}pie@r{]} this option is
+enabled by default for C, C++, ObjC, ObjC++, if none of @option{-fno-PIE},
+@option{-fno-pie}, @option{-fPIC}, @option{-fpic}, @option{-fno-PIC},
+@option{-fno-pic}, @option{-nostdlib}, @option{-nostartfiles},
@@ -68,7 +68,7 @@
@code{__pie__} and @code{__PIE__}. The macros have the value 1
for @option{-fpie} and 2 for @option{-fPIE}.
-+NOTE: With configure --enable-espf=@r{[}all@r{|}ssp@r{]} this option is
++NOTE: With configure --enable-espf=@r{[}all@r{|}pie@r{]} this option is
+enabled by default for C, C++, ObjC, ObjC++, if none of @option{-fno-PIE},
+@option{-fno-pie}, @option{-fPIC}, @option{-fpic}, @option{-fno-PIC},
+@option{-fno-pic}, @option{-nostdlib}, @option{-nostartfiles},
@@ -88,11 +88,11 @@
+@option{-D_FORTIFY_SOURCE=2}, @option{-Wformat} and
+@option{-Wformat-security} will be turn on as default and depend on
+if you use @samp{all} it will turn on @option{-fstack-protection}and
-+@option{-fPIE} by default. if the support is there. If you use
-+@samp{ssp} it will turn on @option{-fstack-protection} by default if the
-+support is there. If you use @samp{pie} it will turn on @option{-fPIE}
-+by default if the support is there. We only support x86-64-*-linux* as target
-+for now.
++@option{-fPIE} and @option{-pie} by default. if the support is there. If you
++use @samp{ssp} it will turn on @option{-fstack-protection} by default if the
++support is there. If you use @samp{pie} it will turn on @option{-fPIE} and
++@option{-pie} by default if the support is there. We only support
++i?86*-*-linux*, x86_32*-*-linux* and x86_64*-*-linux* as target for now.
+
@item --disable-libquadmath
Specify that the GCC quad-precision math library should not be built.
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2012-08-08 16:05 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2012-08-08 16:05 UTC (permalink / raw
To: gentoo-commits
commit: 3fc064b6fbfb3317a1002ba0846f178ee6a6f144
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 8 16:05:03 2012 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Wed Aug 8 16:05:03 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=3fc064b6
updated upstream patches with small fixes in gcc.c
---
upstream/gcc.c.patch | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/upstream/gcc.c.patch b/upstream/gcc.c.patch
index 605cbb8..06e75fb 100644
--- a/upstream/gcc.c.patch
+++ b/upstream/gcc.c.patch
@@ -9,7 +9,7 @@
+ %{fmudflapth:-D_MUDFLAP -D_MUDFLAPTH -include mf-runtime.h} "
+ /* Needed by configure --enable-espf */
+ #ifdef ENABLE_ESPF_FORTIFY
-+"%(espf_cpp_unique_options)"
++"%(espf_cpp_unique_options) "
+#endif
+"%{E|M|MM:%W{o*}}";
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2012-08-21 20:10 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2012-08-21 20:10 UTC (permalink / raw
To: gentoo-commits
commit: 35167b3faba4a431156102e48c2375d3c036a40b
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 21 20:10:11 2012 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Tue Aug 21 20:10:11 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=35167b3f
update the testsuite patches
---
upstream/testsuite-hardening-format.patch | 87 ++++
upstream/testsuite-hardening-printf-types.patch | 590 +++++++++++++++++++++++
upstream/testsuite.patch | 9 +
upstream/testsuite_no_espf.patch | 98 ++++
4 files changed, 784 insertions(+), 0 deletions(-)
diff --git a/upstream/testsuite-hardening-format.patch b/upstream/testsuite-hardening-format.patch
new file mode 100644
index 0000000..3b9583d
--- /dev/null
+++ b/upstream/testsuite-hardening-format.patch
@@ -0,0 +1,87 @@
+--- a/gcc/testsuite/gcc.dg/charset/builtin2.c
++++ b/gcc/testsuite/gcc.dg/charset/builtin2.c
+@@ -4,6 +4,7 @@
+ /* { dg-do compile } */
+ /* { dg-require-iconv "IBM1047" } */
+ /* { dg-options "-O2 -fexec-charset=IBM1047" } */
++/* { dg-additional-options "-Wno-format" { target espf } } */
+ /* { dg-final { scan-assembler-not "printf" } } */
+ /* { dg-final { scan-assembler-not "fprintf" } } */
+ /* { dg-final { scan-assembler-not "sprintf" } } */
+--- a/gcc/testsuite/gcc.dg/format/format.exp
++++ b/gcc/testsuite/gcc.dg/format/format.exp
+@@ -24,9 +24,16 @@ if [is_remote host] {
+
+ load_lib gcc-dg.exp
+ load_lib torture-options.exp
++load_lib target-supports.exp
+
+ torture-init
+-set-torture-options [list { } { -DWIDE } ]
++
++# Disable -Wformat if we use espf.
++if [check_effective_target_espf] {
++ set-torture-options [list { -Wno-format } { -DWIDE -Wno-format } ]
++} else {
++ set-torture-options [list { } { -DWIDE } ]
++}
+
+ dg-init
+ gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] ""
+
+--- a/gcc/testsuite/gcc.dg/pr30473.c
++++ b/gcc/testsuite/gcc.dg/pr30473.c
+@@ -2,6 +2,7 @@
+ /* Make sure this doesn't ICE. */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
++/* { dg-additional-options "Wno-format" { target espf } } */
+
+ extern int sprintf (char *, const char *, ...);
+
+--- a/gcc/testsuite/gcc.dg/pr38902.c
++++ b/gcc/testsuite/gcc.dg/pr38902.c
+@@ -2,6 +2,7 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -fstack-protector" } */
+ /* { dg-require-effective-target fstack_protector } */
++/* { dg-additional-options "Wno-format" { target espf } } */
+
+ #ifdef DEBUG
+ #include <stdio.h>
+--- a/gcc/testsuite/gcc.dg/ipa/ipa-sra-1.c 2010-09-10 01:38:23.000000000 +0200
++++b/gcc/testsuite/gcc.dg/ipa/ipa-sra-1.c 2012-07-31 14:37:53.238554197 +0200
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -fipa-sra -fdump-tree-eipa_sra-details" } */
++/* { dg-additional-options "-Wno-format" { target espf } } */
+
+ struct bovid
+ {
+--- a/gcc/testsuite/gcc.dg/torture/tls/tls-test.c 2011-06-22 19:27:07.000000000 +0200
++++ b/gcc/testsuite/gcc.dg/torture/tls/tls-test.c 2012-07-31 14:40:00.411552986 +0200
+@@ -1,7 +1,8 @@
+ /* { dg-require-effective-target tls } */
+ /* { dg-require-effective-target pthread } */
+ /* { dg-options "-pthread" } */
++/* { dg-additional-options "-Wno-format" { target espf } } */
+
+ #include <pthread.h>
+ extern int printf (char *,...);
+--- a/gcc/testsuite/g++.dg/abi/pragma-pack1.C 2011-06-07 23:54:07.000000000 +0200
++++ b/gcc/testsuite/g++.dg/abi/pragma-pack1.C 2012-08-16 17:49:19.472877085 +0200
+@@ -1,4 +1,5 @@
+ // PR c++/7046
++// { dg-additional-options "-Wno-format" { target espf } }
+
+ extern "C" int printf (const char *, ...);
+
+--- a/gcc/testsuite/g++.dg/cpp0x/constexpr-tuple.C 2012-08-16 17:41:19.486862781 +0200
++++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-tuple.C 2012-08-16 17:38:38.000000000 +0200
+@@ -1,5 +1,6 @@
+ // PR c++/53202
+ // { dg-do run { target c++11 } }
++// { dg-additional-options "-Wno-format" { target espf } }
+
+ #include <tuple>
+
diff --git a/upstream/testsuite-hardening-printf-types.patch b/upstream/testsuite-hardening-printf-types.patch
new file mode 100644
index 0000000..4fa6b5d
--- /dev/null
+++ b/upstream/testsuite-hardening-printf-types.patch
@@ -0,0 +1,590 @@
+--- a/gcc/testsuite/g++.dg/ext/align1.C 2002-02-06 17:18:33.000000000 +0100
++++ b/gcc/testsuite/g++.dg/ext/align1.C 2012-08-11 02:14:51.533875779 +0200
+@@ -16,6 +16,5 @@ float f1 __attribute__ ((aligned));
+ int
+ main (void)
+ {
+- printf ("%d %d\n", __alignof (a1), __alignof (f1));
+ return (__alignof (a1) < __alignof (f1));
+ }
+
+--- a/gcc/testsuite/g++.old-deja/g++.law/operators28.C
++++ b/gcc/testsuite/g++.old-deja/g++.law/operators28.C
+@@ -14,7 +14,8 @@
+ {
+ void *p;
+
+- printf("%d %d %d\n", sz, count, type);
++ // ISO C++ does not support format size modifier "z", so use a cast
++ printf("%u %d %d\n", (unsigned int)sz, count, type);
+
+ p = new char[sz * count];
+ ((new_test *)p)->type = type;
+--- a/gcc/testsuite/gcc.dg/torture/matrix-2.c
++++ b/gcc/testsuite/gcc.dg/torture/matrix-2.c
+@@ -42,7 +42,7 @@
+ }
+ for (i = 0; i < ARCHnodes; i++)
+ for (j = 0; j < 3; j++)
+- printf ("%x\n",vel[i][j]);
++ printf ("%p\n",vel[i][j]);
+ /*if (i!=1 || j!=1)*/
+ /*if (i==1 && j==1)
+ continue;
+@@ -83,14 +83,14 @@
+ for (j = 0; j < 3; j++)
+ {
+ vel[i][j] = (int *) malloc (ARCHnodes1 * sizeof (int));
+- printf ("%x %d %d\n",vel[i][j], ARCHnodes1, sizeof (int));
++ printf ("%p %d %d\n",vel[i][j], ARCHnodes1, (int)sizeof (int));
+ }
+ }
+ for (i = 0; i < ARCHnodes; i++)
+ {
+ for (j = 0; j < 3; j++)
+ {
+- printf ("%x\n",vel[i][j]);
++ printf ("%p\n",vel[i][j]);
+ }
+ }
+
+@@ -99,7 +99,7 @@
+ {
+ for (j = 0; j < 3; j++)
+ {
+- printf ("%x\n",vel[i][j]);
++ printf ("%p\n",vel[i][j]);
+ /*for (k = 0; k < ARCHnodes1; k++)
+ {
+ vel[i][j][k] = d;
+--- a/gcc/testsuite/gcc.dg/packed-vla.c
++++ b/gcc/testsuite/gcc.dg/packed-vla.c
+@@ -17,8 +17,8 @@
+ int b[4];
+ } __attribute__ ((__packed__)) foo;
+
+- printf("foo %d\n", sizeof(foo));
+- printf("bar %d\n", sizeof(bar));
++ printf("foo %d\n", (int)sizeof(foo));
++ printf("bar %d\n", (int)sizeof(bar));
+
+ if (sizeof (foo) != sizeof (bar))
+ abort ();
+--- a/gcc/testsuite/g++.dg/opt/alias2.C
++++ b/gcc/testsuite/g++.dg/opt/alias2.C
+@@ -30,14 +30,14 @@
+
+
+ _Deque_base::~_Deque_base() {
+- printf ("bb %x %x\n", this, *_M_start._M_node);
++ printf ("bb %p %x\n", this, *_M_start._M_node);
+ }
+
+ void
+ _Deque_base::_M_initialize_map()
+ {
+ yy = 0x123;
+- printf ("aa %x %x\n", this, yy);
++ printf ("aa %p %x\n", this, yy);
+
+ _M_start._M_node = &yy;
+ _M_start._M_cur = yy;
+--- a/gcc/testsuite/g++.old-deja/g++.abi/vbase1.C
++++ b/gcc/testsuite/g++.old-deja/g++.abi/vbase1.C
+@@ -33,7 +33,7 @@
+ void Offset () const
+ {
+ printf ("VBase\n");
+- printf (" VBase::member %d\n", &this->VBase::member - (int *)this);
++ printf (" VBase::member %d\n", (int)(&this->VBase::member - (int *)this));
+ }
+ };
+
+@@ -55,8 +55,8 @@
+ void Offset () const
+ {
+ printf ("VDerived\n");
+- printf (" VBase::member %d\n", &this->VBase::member - (int *)this);
+- printf (" VDerived::member %d\n", &this->VDerived::member - (int *)this);
++ printf (" VBase::member %d\n", (int)(&this->VBase::member - (int *)this));
++ printf (" VDerived::member %d\n", (int)(&this->VDerived::member - (int *)this));
+ }
+ };
+ struct B : virtual VBase
+@@ -65,8 +65,8 @@
+ void Offset () const
+ {
+ printf ("B\n");
+- printf (" VBase::member %d\n", &this->VBase::member - (int *)this);
+- printf (" B::member %d\n", &this->B::member - (int *)this);
++ printf (" VBase::member %d\n", (int)(&this->VBase::member - (int *)this));
++ printf (" B::member %d\n", (int)(&this->B::member - (int *)this));
+ }
+ };
+ struct MostDerived : B, virtual VDerived
+@@ -75,10 +75,10 @@
+ void Offset () const
+ {
+ printf ("MostDerived\n");
+- printf (" VBase::member %d\n", &this->VBase::member - (int *)this);
+- printf (" B::member %d\n", &this->B::member - (int *)this);
+- printf (" VDerived::member %d\n", &this->VDerived::member - (int *)this);
+- printf (" MostDerived::member %d\n", &this->MostDerived::member - (int *)this);
++ printf (" VBase::member %d\n", (int)(&this->VBase::member - (int *)this));
++ printf (" B::member %d\n", (int)(&this->B::member - (int *)this));
++ printf (" VDerived::member %d\n", (int)(&this->VDerived::member - (int *)this));
++ printf (" MostDerived::member %d\n", (int)(&this->MostDerived::member - (int *)this));
+ }
+ };
+
+@@ -95,10 +95,10 @@
+ if (ctorVDerived != &dum.VDerived::member)
+ return 24;
+
+- printf (" VBase::member %d\n", &dum.VBase::member - this_);
+- printf (" B::member %d\n", &dum.B::member - this_);
+- printf (" VDerived::member %d\n", &dum.VDerived::member - this_);
+- printf (" MostDerived::member %d\n", &dum.MostDerived::member - this_);
++ printf (" VBase::member %d\n", (int)(&dum.VBase::member - this_));
++ printf (" B::member %d\n", (int)(&dum.B::member - this_));
++ printf (" VDerived::member %d\n", (int)(&dum.VDerived::member - this_));
++ printf (" MostDerived::member %d\n", (int)(&dum.MostDerived::member - this_));
+ dum.MostDerived::Offset ();
+ dum.B::Offset ();
+ dum.VDerived::Offset ();
+--- a/gcc/testsuite/g++.old-deja/g++.brendan/template8.C
++++ b/gcc/testsuite/g++.old-deja/g++.brendan/template8.C
+@@ -15,6 +15,6 @@
+
+ Double_alignt<20000> heap;
+
+- printf(" &heap.array[0] = %d, &heap.for_alignt = %d\n", &heap.array[0], &heap.for_alignt);
++ printf(" &heap.array[0] = %p, &heap.for_alignt = %p\n", (void*)&heap.array[0], (void*)&heap.for_alignt);
+
+ }
+--- a/gcc/testsuite/g++.old-deja/g++.eh/ptr1.C
++++ b/gcc/testsuite/g++.old-deja/g++.eh/ptr1.C
+@@ -16,7 +16,7 @@
+ }
+
+ catch (E *&e) {
+- printf ("address of e is 0x%lx\n", (__SIZE_TYPE__)e);
++ printf ("address of e is %p\n", (void *)e);
+ return !((__SIZE_TYPE__)e != 5 && e->x == 5);
+ }
+ return 2;
+--- a/gcc/testsuite/g++.old-deja/g++.jason/access23.C
++++ b/gcc/testsuite/g++.old-deja/g++.jason/access23.C
+@@ -42,19 +42,19 @@
+ void DoSomething() {
+ PUB_A = 0;
+ Foo::A = 0;
+- printf("%x\n",pX);
++ printf("%p\n",pX);
+ Foo::PUB.A = 0;
+- printf("%x\n",PUB.pX);
++ printf("%p\n",PUB.pX);
+ B = 0;
+- printf("%x\n",Foo::pY);
++ printf("%p\n",Foo::pY);
+ PRT_A = 0;
+ PRT.B = 0;
+- printf("%x\n",Foo::PRT.pY);
++ printf("%p\n",Foo::PRT.pY);
+ PRV_A = 0; // { dg-error "" }
+ Foo::C = 0; // { dg-error "" }
+- printf("%x\n",pZ); // { dg-error "" }
++ printf("%p\n",pZ); // { dg-error "" }
+ Foo::PRV.C = 0; // { dg-error "" }
+- printf("%x\n",PRV.pZ); // { dg-error "" }
++ printf("%p\n",PRV.pZ); // { dg-error "" }
+ }
+ };
+
+@@ -64,17 +64,17 @@
+
+ a.PUB_A = 0;
+ a.A = 0;
+- printf("%x\n",a.pX);
++ printf("%p\n",a.pX);
+ a.PRT_A = 0; // { dg-error "" }
+ a.B = 0; // { dg-error "" }
+- printf("%x\n",a.pY); // { dg-error "" }
++ printf("%p\n",a.pY); // { dg-error "" }
+ a.PRV_A = 0; // { dg-error "" }
+ a.C = 0; // { dg-error "" }
+- printf("%x\n",a.pZ); // { dg-error "" }
++ printf("%p\n",a.pZ); // { dg-error "" }
+ a.PUB.A = 0;
+- printf("%x\n",a.PUB.pX);
++ printf("%p\n",a.PUB.pX);
+ a.PRT.B = 0; // { dg-error "" }
+- printf("%x\n",a.PRT.pY); // { dg-error "" }
++ printf("%p\n",a.PRT.pY); // { dg-error "" }
+ a.PRV.C = 0; // { dg-error "" }
+- printf("%x\n",a.PRV.pZ); // { dg-error "" }
++ printf("%p\n",a.PRV.pZ); // { dg-error "" }
+ }
+--- a/gcc/testsuite/g++.old-deja/g++.law/cvt8.C
++++ b/gcc/testsuite/g++.old-deja/g++.law/cvt8.C
+@@ -20,12 +20,12 @@
+ B::operator const A&() const {
+ static A a;
+ a.i = i;
+- printf("convert B to A at %x\n", &a);
++ printf("convert B to A at %p\n", (void*)&a);
+ return a;
+ }
+
+ void f(A &a) { // { dg-error "" } in passing argument
+- printf("A at %x is %d\n", &a, a.i);
++ printf("A at %p is %d\n", (void*)&a, a.i);
+ }
+
+ int main() {
+--- a/gcc/testsuite/g++.old-deja/g++.mike/net35.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/net35.C
+@@ -17,10 +17,10 @@
+
+ int main() {
+ C c;
+- printf("&c.x = %x\n", &c.x);
+- printf("&c.B1::x = %x\n", &c.B1::x);
+- printf("&c.B2::x = %x\n", &c.B2::x);
+- printf("&c.A::x = %x\n", &c.A::x);
++ printf("&c.x = %p\n", (void*)&c.x);
++ printf("&c.B1::x = %p\n", (void*)&c.B1::x);
++ printf("&c.B2::x = %p\n", (void*)&c.B2::x);
++ printf("&c.A::x = %p\n", (void*)&c.A::x);
+ if (&c.x != &c.B1::x
+ || &c.x != &c.B2::x
+ || &c.x != &c.A::x)
+--- a/gcc/testsuite/g++.old-deja/g++.mike/offset1.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/offset1.C
+@@ -6,7 +6,7 @@
+ class Foo {
+ public:
+ virtual void setName() {
+- printf("Foo at %x\n", this);
++ printf("Foo at %p\n", (void*)this);
+ if (vp != (void*)this)
+ fail = 1;
+ }
+@@ -15,7 +15,7 @@
+ class Bar : public Foo {
+ public:
+ virtual void init(int argc, char **argv) {
+- printf("Bar's Foo at %x\n", (Foo*)this);
++ printf("Bar's Foo at %p\n", (void*)(Foo*)this);
+ vp = (void*)(Foo*)this;
+ setName();
+ }
+--- a/gcc/testsuite/g++.old-deja/g++.mike/p12306.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/p12306.C
+@@ -18,7 +18,7 @@
+ if (ptr2 != &(*this).slist)
+ fail = 6;
+
+- if (0) printf("at %x %x\n", (RWSlistIterator*)this, &(*this).slist);
++ if (0) printf("at %p %p\n", (void*)(RWSlistIterator*)this, (void*)&(*this).slist);
+ }
+ };
+
+@@ -54,14 +54,14 @@
+ void Sim_Event_Manager::post_event () {
+ ptr1 = (RWSlistIterator*)&last_posted_event_position_;
+ ptr2 = &((RWSlistIterator*)&last_posted_event_position_)->slist;
+- if (0) printf("at %x %x\n", (RWSlistIterator*)&last_posted_event_position_,
+- &((RWSlistIterator*)&last_posted_event_position_)->slist);
++ if (0) printf("at %p %p\n", (void*)(RWSlistIterator*)&last_posted_event_position_,
++ (void*)&((RWSlistIterator*)&last_posted_event_position_)->slist);
+ if (ptr1 != (RWSlistIterator*)&last_posted_event_position_)
+ fail = 1;
+ if (ptr2 != &((RWSlistIterator&)last_posted_event_position_).slist)
+ fail = 2;
+- if (0) printf("at %x ?%x\n", (RWSlistIterator*)&last_posted_event_position_,
+- &((RWSlistIterator&)last_posted_event_position_).slist);
++ if (0) printf("at %p ?%p\n", (void*)(RWSlistIterator*)&last_posted_event_position_,
++ (void*)&((RWSlistIterator&)last_posted_event_position_).slist);
+ if (ptr1 != (RWSlistIterator*)&last_posted_event_position_)
+ fail = 3;
+ if (ptr2 != &((RWSlistIterator&)last_posted_event_position_).slist)
+--- a/gcc/testsuite/g++.old-deja/g++.mike/p3579.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/p3579.C
+@@ -7,26 +7,26 @@
+
+ class Y {
+ public:
+- Y () { printf("Y() this: %x\n", this); }
+- ~Y () { printf("~Y() this: %x\n", this); }
++ Y () { printf("Y() this: %p\n", (void*)this); }
++ ~Y () { printf("~Y() this: %p\n", (void*)this); }
+ };
+
+ class X {
+ public:
+ X () {
+ ++num_x;
+- printf("X() this: %x\n", this);
++ printf("X() this: %p\n", (void*)this);
+ Y y;
+ *this = (X) y;
+ }
+
+- X (const Y & yy) { printf("X(const Y&) this: %x\n", this); ++num_x; }
++ X (const Y & yy) { printf("X(const Y&) this: %p\n", (void*)this); ++num_x; }
+ X & operator = (const X & xx) {
+- printf("X.op=(X&) this: %x\n", this);
++ printf("X.op=(X&) this: %p\n", (void*)this);
+ return *this;
+ }
+
+- ~X () { printf("~X() this: %x\n", this); --num_x; }
++ ~X () { printf("~X() this: %p\n", (void*)this); --num_x; }
+ };
+
+ int main (int, char **) {
+--- a/gcc/testsuite/g++.old-deja/g++.mike/p3708a.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/p3708a.C
+@@ -38,7 +38,7 @@
+ virtual void xx(int doit) {
+ --num;
+ if (ptr != this)
+- printf("FAIL\n%x != %x\n", ptr, this);
++ printf("FAIL\n%p != %p\n", ptr, (void*)this);
+ printf ("C is destructed.\n");
+ B::xx (0);
+ if (doit) A::xx (1);
+--- a/gcc/testsuite/g++.old-deja/g++.mike/p3708b.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/p3708b.C
+@@ -48,7 +48,7 @@
+ virtual void xx(int doit) {
+ --num;
+ if (ptr != this) {
+- printf("FAIL\n%x != %x\n", ptr, this);
++ printf("FAIL\n%p != %p\n", ptr, (void*)this);
+ exit(1);
+ }
+ printf ("D is destructed.\n");
+--- a/gcc/testsuite/g++.old-deja/g++.mike/p3708.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/p3708.C
+@@ -38,7 +38,7 @@
+ virtual void xx(int doit) {
+ --num;
+ if (ptr != this)
+- printf("FAIL\n%x != %x\n", ptr, this);
++ printf("FAIL\n%p != %p\n", ptr, (void*)this);
+ printf ("C is destructed.\n");
+ B::xx (0);
+ if (doit) A::xx (1);
+--- a/gcc/testsuite/g++.old-deja/g++.mike/p646.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/p646.C
+@@ -35,20 +35,20 @@
+ foo::foo ()
+ {
+ si++;
+- printf ("new foo @ 0x%x; now %d foos\n", this, si);
++ printf ("new foo @ %p; now %d foos\n", (void*)this, si);
+ }
+
+ foo::foo (const foo &other)
+ {
+ si++;
+- printf ("another foo @ 0x%x; now %d foos\n", this, si);
++ printf ("another foo @ %p; now %d foos\n", (void*)this, si);
+ *this = other;
+ }
+
+ foo::~foo ()
+ {
+ si--;
+- printf ("deleted foo @ 0x%x; now %d foos\n", this, si);
++ printf ("deleted foo @ %p; now %d foos\n", (void*)this, si);
+ }
+
+ int
+--- a/gcc/testsuite/g++.old-deja/g++.mike/p710.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/p710.C
+@@ -30,7 +30,7 @@
+ virtual ~B() {}
+ void operator delete(void*,size_t s)
+ {
+- printf("B::delete() %d\n",s);
++ printf("B::delete() %u\n",(unsigned int)s);
+ }
+ void operator delete(void*){}
+ };
+--- a/gcc/testsuite/g++.old-deja/g++.mike/p789a.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/p789a.C
+@@ -13,10 +13,10 @@
+ int x;
+ foo () {
+ x = count++;
+- printf("this %d = %x\n", x, (void *)this);
++ printf("this %d = %p\n", x, (void *)this);
+ }
+ virtual ~foo () {
+- printf("this %d = %x\n", x, (void *)this);
++ printf("this %d = %p\n", x, (void *)this);
+ --count;
+ }
+ };
+@@ -31,7 +31,7 @@
+ {
+ for (int j = 0; j < 3; j++)
+ {
+- printf("&a[%d][%d] = %x\n", i, j, (void *)&array[i][j]);
++ printf("&a[%d][%d] = %p\n", i, j, (void *)&array[i][j]);
+ }
+ }
+ // The count should be nine, if not, fail the test.
+--- a/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C
+@@ -42,7 +42,7 @@
+ bar jar;
+
+ int main() {
+- printf("ptr to B_table=%x, ptr to A_table=%x\n",&b,(A_table*)&b);
++ printf("ptr to B_table=%p, ptr to A_table=%p\n",(void*)&b,(void*)(A_table*)&b);
+ B_table::B_ti_fn z = &B_table::func1;
+ int j = 1;
+ jar.call_fn_fn1(j,(void *)&z);
+--- a/gcc/testsuite/g++.old-deja/g++.mike/temp.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/temp.C
+@@ -7,11 +7,11 @@
+ public:
+ T() {
+ i = 1;
+- printf("T() at %x\n", this);
++ printf("T() at %p\n", (void*)this);
+ }
+ T(const T& o) {
+ i = o.i;
+- printf("T(const T&) at %x <-- %x\n", this, &o);
++ printf("T(const T&) at %p <-- %p\n", (void*)this, (void*)&o);
+ }
+ T operator +(const T& o) {
+ T r;
+@@ -21,7 +21,7 @@
+ operator int () {
+ return i;
+ }
+- ~T() { printf("~T() at %x\n", this); }
++ ~T() { printf("~T() at %p\n", (void*)this); }
+ } s, b;
+
+ int foo() { return getenv("TEST") == 0; }
+--- a/gcc/testsuite/g++.old-deja/g++.other/temporary1.C
++++ b/gcc/testsuite/g++.old-deja/g++.other/temporary1.C
+@@ -5,16 +5,16 @@
+ class Foo
+ {
+ public:
+- Foo() { printf("Foo() 0x%08lx\n", (__SIZE_TYPE__)this); ++c; }
+- Foo(Foo const &) { printf("Foo(Foo const &) 0x%08lx\n", (__SIZE_TYPE__)this); }
+- ~Foo() { printf("~Foo() 0x%08lx\n", (__SIZE_TYPE__)this); ++d; }
++ Foo() { printf("Foo() %p\n", (void*)this); ++c; }
++ Foo(Foo const &) { printf("Foo(Foo const &) %p\n", (void*)this); }
++ ~Foo() { printf("~Foo() %p\n", (void*)this); ++d; }
+ };
+
+ // Bar creates constructs a temporary Foo() as a default
+ class Bar
+ {
+ public:
+- Bar(Foo const & = Foo()) { printf("Bar(Foo const &) 0x%08lx\n", (__SIZE_TYPE__)this); }
++ Bar(Foo const & = Foo()) { printf("Bar(Foo const &) %p\n", (void*)this); }
+ };
+
+ void fakeRef(Bar *)
+--- a/gcc/testsuite/g++.old-deja/g++.other/virtual8.C
++++ b/gcc/testsuite/g++.old-deja/g++.other/virtual8.C
+@@ -4,7 +4,7 @@
+ struct A
+ {
+ virtual void f () {
+- printf ("%x\n", this);
++ printf ("%p\n", (void*)this);
+ }
+ };
+
+--- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp23.C
++++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp23.C
+@@ -13,7 +13,7 @@
+
+ template <class U>
+ void f(U u)
+- { printf ("In S::f(U)\nsizeof(U) == %d\n", sizeof(u)); }
++ { printf ("In S::f(U)\nsizeof(U) == %d\n", (int)sizeof(u)); }
+
+ int c[16];
+ };
+--- agcc/testsuite/g++.old-deja/g++.pt/memtemp24.C
++++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp24.C
+@@ -13,7 +13,7 @@
+
+ template <class U>
+ void f(U u)
+- { printf ("In S::f(U)\nsizeof(U) == %d\n", sizeof(u)); }
++ { printf ("In S::f(U)\nsizeof(U) == %d\n", (int)sizeof(u)); }
+
+ int c[16];
+ };
+--- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp25.C
++++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp25.C
+@@ -6,7 +6,7 @@
+ struct S
+ {
+ template <class U>
+- void f(U u) { printf ("%d\n", sizeof (U)); }
++ void f(U u) { printf ("%d\n", (int)sizeof (U)); }
+
+ int i[4];
+ };
+--- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp26.C
++++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp26.C
+@@ -16,7 +16,7 @@
+ template <class U>
+ void S<X>::f(U u)
+ {
+- printf ("%d\n", sizeof (U));
++ printf ("%d\n", (int)sizeof (U));
+ }
+
+
+--- a/gcc/testsuite/g++.old-deja/g++.pt/t39.C
++++ b/gcc/testsuite/g++.old-deja/g++.pt/t39.C
+@@ -10,9 +10,9 @@
+
+ template <class T>
+ void frob<T>::print () {
+- printf ("this = %08x\n", this);
+- printf (" ptr = %08x\n", ptr);
+- printf (" values = %x %x %x ...\n", ptr[0], ptr[1], ptr[2]);
++ printf ("this = %p\n", (void*)this);
++ printf (" ptr = %p\n", (void*)ptr);
++ printf (" values = %x %x %x ...\n", (int)ptr[0], (int)ptr[1], (int)ptr[2]);
+ }
+
+ static int x[10];
+--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb17.C
++++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb17.C
+@@ -44,15 +44,15 @@
+ A * a = new B;
+ B * b = dynamic_cast<B *>(a);
+
+- printf("%p\n",b); // (*2*)
++ printf("%p\n",(void*)b); // (*2*)
+ b->print();
+
+ a = b;
+- printf("%p\n",a);
++ printf("%p\n",(void*)a);
+ a->print();
+
+ a = a->clone();
+- printf("%p\n",a);
++ printf("%p\n",(void*)a);
+ a->print(); // (*1*)
+
+ return 0;
diff --git a/upstream/testsuite.patch b/upstream/testsuite.patch
index 50d06e5..82456cc 100644
--- a/upstream/testsuite.patch
+++ b/upstream/testsuite.patch
@@ -15,6 +15,15 @@
# Return 1 if this target supports the -fsplit-stack option, 0
# otherwise.
+--- a/gcc/testsuite/gcc.c-torture/execute/memset-1.x 2012-08-18 14:43:31.963694252 +0200
++++ b/gcc/testsuite/gcc.c-torture/execute/memset-1.x 2012-07-27 21:47:01.000000000 +0200
+@@ -0,0 +1,6 @@
++load_lib target-supports.exp
++
++if { [check_effective_target_espf] } {
++ set additional_flags "-U_FORTIFY_SOURCE"
++}
++return 0
--- a/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.x 2012-07-30 02:31:20.573793905 +0200
+++ b/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.x 2012-07-27 21:47:01.574480025 +0200
@@ -0,0 +1,6 @@
diff --git a/upstream/testsuite_no_espf.patch b/upstream/testsuite_no_espf.patch
new file mode 100644
index 0000000..8991a69
--- /dev/null
+++ b/upstream/testsuite_no_espf.patch
@@ -0,0 +1,98 @@
+--- a/gcc/testsuite/gcc.dg/20021014-1.c 2009-10-02 01:08:07.000000000 +0200
++++ b/gcc/testsuite/gcc.dg/20021014-1.c 2012-08-14 23:50:16.724373103 +0200
+@@ -1,6 +1,7 @@
+ /* { dg-do run } */
+ /* { dg-require-profiling "-p" } */
+ /* { dg-options "-O2 -p" } */
++/* { dg-additional-options "-fno-PIE" { target espf } } */
+ /* { dg-options "-O2 -p -static" { target hppa*-*-hpux* } } */
+ /* { dg-error "profiler" "No profiler support" { target xstormy16-*-* } 0 } */
+ /* { dg-message "" "consider using `-pg' instead of `-p' with gprof(1)" { target *-*-freebsd* } 0 } */
+--- a/gcc/testsuite/gcc.dg/nest.c 2007-08-30 07:23:02.000000000 +0200
++++ b/gcc/testsuite/gcc.dg/nest.c 2012-08-14 23:51:44.797375728 +0200
+@@ -3,6 +3,7 @@
+ /* { dg-require-profiling "-pg" } */
+ /* { dg-options "-O2 -pg" } */
+ /* { dg-options "-O2 -pg -static" { target hppa*-*-hpux* } } */
++/* { dg-additional-options "-fno-PIE" { target espf } } */
+ /* { dg-error "profiler" "No profiler support" { target xstormy16-*-* } 0 } */
+
+ extern void abort (void);
+--- a/gcc/testsuite/gcc.dg/nested-func-4.c 2007-08-30 07:23:02.000000000 +0200
++++ b/gcc/testsuite/gcc.dg/nested-func-4.c 2012-08-14 23:52:23.337376877 +0200
+@@ -1,6 +1,7 @@
+ /* { dg-do run } */
+ /* { dg-options "-pg" } */
+ /* { dg-options "-pg -static" { target hppa*-*-hpux* } } */
++/* { dg-additional-options "-fno-PIE" { target espf } } */
+ /* { dg-require-profiling "-pg" } */
+
+ extern void abort(void);
+--- a/gcc/testsuite/gcc.dg/pr32450.c 2007-08-30 07:23:02.000000000 +0200
++++ b/gcc/testsuite/gcc.dg/pr32450.c 2012-08-14 23:53:38.125379106 +0200
+@@ -5,6 +5,7 @@
+ /* { dg-options "-O2 -pg" } */
+ /* { dg-options "-O2 -pg -mtune=core2" { target { i?86-*-* x86_64-*-* } } } */
+ /* { dg-options "-O2 -pg -static" { target hppa*-*-hpux* } } */
++/* { dg-additional-options "-fno-PIE" { target espf } } */
+
+ extern void abort (void);
+
+--- a/gcc/testsuite/gcc.dg/pr43643.c 2010-04-14 18:47:15.000000000 +0200
++++ b/gcc/testsuite/gcc.dg/pr43643.c 2012-08-14 23:54:20.084380356 +0200
+@@ -4,6 +4,7 @@
+ /* { dg-require-profiling "-pg" } */
+ /* { dg-options "-O2 -pg" } */
+ /* { dg-options "-O2 -pg -static" { target hppa*-*-hpux* } } */
++/* { dg-additional-options "-fno-PIE" { target espf } } */
+
+ extern char *strdup (const char *);
+
+--- a/gcc.dg/tree-ssa/ssa-store-ccp-3.c 2011-08-07 09:45:57.000000000 +0200
++++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-store-ccp-3.c 2012-08-14 23:59:24.489389427 +0200
+@@ -3,6 +3,7 @@
+ defined for executables as well as shared libraries. */
+ /* { dg-skip-if "" { *-*-darwin* hppa*64*-*-* mips*-*-linux* mips*-*-irix* *-*-mingw* } { "*" } { "" } } */
+ /* { dg-options "-O2 -fno-common -fdump-tree-optimized" } */
++/* { dg-skip-if "" { espf } { "*" } { "" } } */ */
+
+ const int conststaticvariable;
+
+--- a/gcc/testsuite/gcc.dg/stack-usage-1.c 2012-02-23 19:10:53.000000000 +0100
++++ b/gcc/testsuite/gcc.dg/stack-usage-1.c 2012-08-14 23:55:37.558382664 +0200
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-fstack-usage" } */
++/* { dg-additional-options "-fno-stack-protector" { target espf } } */
+
+ /* This is aimed at testing basic support for -fstack-usage in the back-ends.
+ See the SPARC back-end for example (grep flag_stack_usage_info in sparc.c).
+--- a/gcc/testsuite/gcc.dg/superblock.c 2012-08-15 00:28:32.995441532 +0200
++++ b/gcc/testsuite/gcc.dg/superblock.c 2012-08-14 23:56:30.159384232 +0200
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fno-asynchronous-unwind-tables -fsched2-use-superblocks -fdump-rtl-sched2 -fdump-rtl-bbro" } */
++/* { dg-additional-options "-fno-stack-protector" { target espf } } */
+
+ typedef int aligned __attribute__ ((aligned (64)));
+ extern void abort (void);
+--- a/gcc/testsuite/g++.dg/other/anon5.C 2012-08-16 17:33:08.842848160 +0200
++++ b/gcc/testsuite/g++.dg/other/anon5.C 2012-08-16 17:33:35.913848967 +0200
+@@ -1,6 +1,7 @@
+ // PR c++/34094
+ // { dg-do link { target { ! { *-*-darwin* *-*-hpux* *-*-solaris2.* alpha*-dec-osf* mips-sgi-irix* } } } }
+ // { dg-options "-g" }
++// { dg-additional-options "-fno-PIE" { target espf } }
+
+ namespace {
+ struct c
+--- a/gcc/testsuite/g++.old-deja/g++.law/profile1.C 2007-08-30 07:23:02.000000000 +0200
++++ b/gcc/testsuite/g++.old-deja/g++.law/profile1.C 2012-08-21 20:48:15.463070406 +0200
+@@ -2,6 +2,7 @@
+ // { dg-require-profiling "-pg" }
+ // { dg-options "-pg" }
+ // { dg-options "-pg -static" { target hppa*-*-hpux* } }
++// { dg-additional-options "-fno-PIE" { target espf } }
+ // GROUPS passed profiling
+ #include <stdio.h>
+ main()
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2012-08-22 19:19 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2012-08-22 19:19 UTC (permalink / raw
To: gentoo-commits
commit: 5028e0f506538dee03ebdb782009c8d6d66e2e76
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 22 19:18:25 2012 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Wed Aug 22 19:18:25 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=5028e0f5
update the testsuite patches rename files
---
...ite.patch => testsuite-hardening-fortify.patch} | 0
...espf.patch => testsuite-hardening-piessp.patch} | 0
2 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/upstream/testsuite.patch b/upstream/testsuite-hardening-fortify.patch
similarity index 100%
rename from upstream/testsuite.patch
rename to upstream/testsuite-hardening-fortify.patch
diff --git a/upstream/testsuite_no_espf.patch b/upstream/testsuite-hardening-piessp.patch
similarity index 100%
rename from upstream/testsuite_no_espf.patch
rename to upstream/testsuite-hardening-piessp.patch
^ permalink raw reply [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2012-08-27 23:34 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2012-08-27 23:34 UTC (permalink / raw
To: gentoo-commits
commit: 62a9d4c24e788232d2d8cb667d89a19c89af9328
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 27 23:34:10 2012 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Mon Aug 27 23:34:10 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=62a9d4c2
add changelog to upstream patches
---
upstream/Changelog.txt | 105 +++++++++++++++++++++++
upstream/config.in.patch | 5 -
upstream/gcc_doc.patch | 7 +-
upstream/testsuite-hardening-format.patch | 4 +-
upstream/testsuite-hardening-printf-types.patch | 2 +-
5 files changed, 112 insertions(+), 11 deletions(-)
diff --git a/upstream/Changelog.txt b/upstream/Changelog.txt
new file mode 100644
index 0000000..d8e4764
--- /dev/null
+++ b/upstream/Changelog.txt
@@ -0,0 +1,105 @@
+2012-08-24 Magnus Granberg <zorry@gentoo.org
+
+ * configure.ac Add new configure options espf.
+ * Makefile.in Add -fno-stack-protector when
+ needed for espf.
+ gcc/
+ * configure.ac Add new configure options espf.
+ * Makefile.in Add -fno-PIE when needed for
+ espf.
+ * config.in Add ENABLE_ESPF,
+ ENABLE_ESPF_FORTIFY, ENABLE_ESPF_PIE and
+ ENABLE_ESPF_SSP.
+ * config/linux.h Define ESPF_GCC_PIE_SPEC,
+ ESPF_GCC_SSP_SPEC, ESPF_CPP_UNIQUE_OPTIONS_SPEC,
+ ESPF_DRIVER_SELF_SPECS and ESPF_EXTRA_SPECS.
+ * config/i386/linux.h Define DRIVER_SELF_SPECS.
+ * config/i386/linux64.h Likewise.
+ * config/i386/gnu-user.h Add ESPF_EXTRA_SPECS to
+ SUBTARGET_EXTRA_SPECS when needed.
+ * config/i386/i386.h Likewise.
+ * gcc.c Add espf_cpp_unique_options
+ to cpp_unique_options when needed.
+ * c-family/c-common.c Enable warn_format when espf is
+ enable.
+ * c-family/c-format.c Enable warn_format_security when
+ needed by espf.
+ libgcc/
+ * libgcc/Makefile.in Add -fno-PIE when needed for
+ espf.
+
+2012-08-26 Magnus Granberg <zorry@gentoo.org>
+ Kees Cook <kees@ubuntu.com>
+
+ gcc/doc/
+ * invoke.texi Add notes to -Wformat,
+ -Wformat-security, -O2, -fstack-protector, -fPIE and
+ -pie for espf.
+ * install.texi Add new configure options
+
+2012-08-26 Magnus Granberg <zorry@gentoo.org>
+ Kees Cook <kees@ubuntu.com>
+
+ gcc/testsuite
+ * gcc.dg/charset/builtin2.c Add
+ -Wno-format when effective_target is espf.
+ * gcc.dg/format/format.exp Likewise.
+ * gcc.dg/pr30473.c Likewise.
+ * gcc.dg/pr38902.c Likewise.
+ * gcc.dg/ipa/ipa-sra-1.c Likewise.
+ * gcc.dg/torture/tls/tls-test.c Likewise.
+ * g++.dg/abi/pragma-pack1.C Likewise.
+ * g++.dg/cpp0x/constexpr-tuple.C Likewise.
+ * lib/target-supports.exp Add
+ check_effective_target_espf.
+ * gcc.c-torture/execute/memset-1.x New file
+ * gcc.c-torture/execute/vprintf-chk-1.x Likewise.
+ * gcc.c-torture/execute/vfprintf-chk-1.x Likewise.
+ * gcc.dg/stack-usage-1.c Add -fno-stack-protector
+ when effective_target is espf.
+ * gcc.dg/superblock.c Likewise.
+ * gcc.dg/20021014-1.c Add -fno-PIE when
+ effective_target is espf.
+ * gcc.dg/nest.c Likewise.
+ * gcc.dg/nested-func-4.c Likewise.
+ * gcc.dg/pr32450.c Likewise.
+ * gcc.dg/pr43643.c Likewise.
+ * g++.dg/other/anon5.C Likewise.
+ * g++.old-deja/g++.law/profile1.C Likewise.
+ * gcc.dg/tree-ssa/ssa-store-ccp-3.c Skip the test.
+
+2012-08-27 Magnus Granberg <zorry@gentoo.org>
+ Kees Cook <kees@ubuntu.com>
+
+ gcc/testsuite/
+ PR 39537
+ * g++.dg/ext/align1.C Remove printf
+ * g++.old-deja/g++.law/operators28.C Fix format-string/type.
+ * gcc.dg/torture/matrix-2.c Likewise.
+ * gcc.dg/packed-vla.c Likewise.
+ * g++.dg/opt/alias2.C Likewise.
+ * g++.old-deja/g++.abi/vbase1.C Likewise.
+ * g++.old-deja/g++.brendan/template8.C Likewise.
+ * g++.old-deja/g++.eh/ptr1.C Likewise.
+ * g++.old-deja/g++.jason/access23.C Likewise.
+ * g++.old-deja/g++.law/cvt8.C Likewise.
+ * g++.old-deja/g++.mike/net35.C Likewise.
+ * g++.old-deja/g++.mike/offset1.C Likewise.
+ * g++.old-deja/g++.mike/p12306.C Likewise.
+ * g++.old-deja/g++.mike/p3579.C Likewise.
+ * g++.old-deja/g++.mike/p3708a.C Likewise.
+ * g++.old-deja/g++.mike/p3708b.C Likewise.
+ * g++.old-deja/g++.mike/p3708.C Likewise.
+ * g++.old-deja/g++.mike/p646.C Likewise.
+ * g++.old-deja/g++.mike/p710.C Likewise.
+ * g++.old-deja/g++.mike/p789a.C Likewise.
+ * g++.old-deja/g++.mike/pmf2.C Likewise.
+ * g++.old-deja/g++.mike/temp.C Likewise.
+ * g++.old-deja/g++.other/temporary1.C Likewise.
+ * g++.old-deja/g++.other/virtual8.C Likewise.
+ * g++.old-deja/g++.pt/memtemp23.C Likewise.
+ * g++.old-deja/g++.pt/memtemp24.C Likewise.
+ * g++.old-deja/g++.pt/memtemp25.C Likewise.
+ * g++.old-deja/g++.pt/memtemp26.C Likewise.
+ * g++.old-deja/g++.pt/t39.C Likewise.
+ * g++.old-deja/g++.robertl/eb17.C Likewise.
diff --git a/upstream/config.in.patch b/upstream/config.in.patch
index 7bd846e..7c1f849 100644
--- a/upstream/config.in.patch
+++ b/upstream/config.in.patch
@@ -1,8 +1,3 @@
-2012-04-08 Magnus Granberg <zorry@gentoo.org>
-
- * gcc/config.in Add ENABLE_ESPF, ENABLE_ESPF_FORTIFY,
- ENABLE_ESPF_PIE and ENABLE_ESPF_SSP
-
--- a/gcc/config.in 2011-04-24 00:36:52.000000000 +0200
+++ b/gcc/config.in 2011-06-24 14:17:05.166236726 +0200
@@ -77,6 +77,29 @@
diff --git a/upstream/gcc_doc.patch b/upstream/gcc_doc.patch
index fc39347..3aa53ad 100644
--- a/upstream/gcc_doc.patch
+++ b/upstream/gcc_doc.patch
@@ -79,7 +79,7 @@
Do not use jump tables for switch statements even where it would be
--- a/gcc/doc/install.texi 2012-03-02 10:37:30.000000000 +0100
+++ b/gcc/doc/install.texi 2012-07-23 18:05:14.160784593 +0200
-@@ -1392,6 +1392,17 @@ do a @samp{make -C gcc gnatlib_and_tools
+@@ -1392,6 +1392,18 @@ do a @samp{make -C gcc gnatlib_and_tools
Specify that the run-time libraries for stack smashing protection
should not be built.
@@ -91,8 +91,9 @@
+@option{-fPIE} and @option{-pie} by default. if the support is there. If you
+use @samp{ssp} it will turn on @option{-fstack-protection} by default if the
+support is there. If you use @samp{pie} it will turn on @option{-fPIE} and
-+@option{-pie} by default if the support is there. We only support
-+i?86*-*-linux*, x86_32*-*-linux* and x86_64*-*-linux* as target for now.
++@option{-pie} by default if the support is there. If you use @samp{no} it will
++not turn on any options. We only support i?86*-*-linux*, x86_32*-*-linux*
++and x86_64*-*-linux* as target for now.
+
@item --disable-libquadmath
Specify that the GCC quad-precision math library should not be built.
diff --git a/upstream/testsuite-hardening-format.patch b/upstream/testsuite-hardening-format.patch
index 3b9583d..0d14c10 100644
--- a/upstream/testsuite-hardening-format.patch
+++ b/upstream/testsuite-hardening-format.patch
@@ -59,8 +59,8 @@
struct bovid
{
--- a/gcc/testsuite/gcc.dg/torture/tls/tls-test.c 2011-06-22 19:27:07.000000000 +0200
-+++ b/gcc/testsuite/gcc.dg/torture/tls/tls-test.c 2012-07-31 14:40:00.411552986 +0200
-@@ -1,7 +1,8 @@
++++ b/gcc/testsuite/gcc.dg/torture/tls/tls-test.c 2012-08-21 23:51:33.205398132 +0200
+@@ -2,6 +2,7 @@
/* { dg-require-effective-target tls } */
/* { dg-require-effective-target pthread } */
/* { dg-options "-pthread" } */
diff --git a/upstream/testsuite-hardening-printf-types.patch b/upstream/testsuite-hardening-printf-types.patch
index 4fa6b5d..8ca807e 100644
--- a/upstream/testsuite-hardening-printf-types.patch
+++ b/upstream/testsuite-hardening-printf-types.patch
@@ -519,7 +519,7 @@
int c[16];
};
---- agcc/testsuite/g++.old-deja/g++.pt/memtemp24.C
+--- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp24.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp24.C
@@ -13,7 +13,7 @@
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2012-10-07 16:50 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2012-10-07 16:50 UTC (permalink / raw
To: gentoo-commits
commit: df8bf548b501ad28ddb7a1ba4408054be6d97cf9
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 7 16:49:54 2012 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Sun Oct 7 16:49:54 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=df8bf548
Add new Makefile patch
---
upstream/Makefile.patch | 100 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 100 insertions(+), 0 deletions(-)
diff --git a/upstream/Makefile.patch b/upstream/Makefile.patch
new file mode 100644
index 0000000..a116e5f
--- /dev/null
+++ b/upstream/Makefile.patch
@@ -0,0 +1,100 @@
+--- a/Makefile.tpl 2012-01-02 11:59:04.000000000 +0100
++++ b/Makefile.tpl 2012-06-29 00:11:30.886010145 +0200
+@@ -362,9 +362,17 @@ WINDRES_FOR_BUILD = @WINDRES_FOR_BUILD@
+ BUILD_PREFIX = @BUILD_PREFIX@
+ BUILD_PREFIX_1 = @BUILD_PREFIX_1@
+
++# Disable SSP on BOOT_CFLAGS, LIBCFLAGS and LIBCXXFLAGS
++enable_espf = @enable_espf@
++ifeq ($(enable_espf),yes)
++ESPF_NOSSP_CFLAGS = -fno-stack-protector
++else
++ESPF_NOSSP_CFLAGS=
++endif
++
+ # Flags to pass to stage2 and later makes. They are defined
+ # here so that they can be overridden by Makefile fragments.
+-BOOT_CFLAGS= -g -O2
++BOOT_CFLAGS= -g -O2 $(ESPF_NOSSP_CFLAGS)
+ BOOT_LDFLAGS=
+ BOOT_ADAFLAGS=-gnatpg -gnata
+
+@@ -410,9 +418,9 @@ GNATMAKE = @GNATMAKE@
+
+ CFLAGS = @CFLAGS@
+ LDFLAGS = @LDFLAGS@
+-LIBCFLAGS = $(CFLAGS)
++LIBCFLAGS = $(CFLAGS) $(ESPF_NOSSP_CFLAGS)
+ CXXFLAGS = @CXXFLAGS@
+-LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
++LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates $(ESPF_NOSSP_CFLAGS)
+ GOCFLAGS = $(CFLAGS)
+
+ TFLAGS =
+--- a/gcc/Makefile.in 2012-02-11 09:50:23.000000000 +0100
++++ b/gcc/Makefile.in 2012-06-29 00:07:45.230003420 +0200
+@@ -973,14 +973,23 @@ LIBFUNCS_H = libfuncs.h $(HASHTAB_H)
+ # cross compiler which does not use the native headers and libraries.
+ INTERNAL_CFLAGS = -DIN_GCC @CROSS@
+
++# We don't want to compile the compiler with -fPIE, it make PCH fail.
++enable_espf = @enable_espf@
++ifeq ($(enable_espf),yes)
++ESPF_NOPIE_CFLAGS = -fno-PIE
++else
++ESPF_NOPIE_CFLAGS=
++endif
++
+ # This is the variable actually used when we compile. If you change this,
+ # you probably want to update BUILD_CFLAGS in configure.ac
+-ALL_CFLAGS = $(T_CFLAGS) $(CFLAGS-$@) \
++ALL_CFLAGS = $(ESPF_NOPIE_CFLAGS) $(T_CFLAGS) $(CFLAGS-$@) \
+ $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) @DEFS@
+
+ # The C++ version.
+-ALL_CXXFLAGS = $(T_CFLAGS) $(CFLAGS-$@) $(CXXFLAGS) $(INTERNAL_CFLAGS) \
+- $(COVERAGE_FLAGS) $(NOEXCEPTION_FLAGS) $(WARN_CXXFLAGS) @DEFS@
++ALL_CXXFLAGS =$(ESPF_NOPIE_CFLAGS) $(T_CFLAGS) $(CFLAGS-$@) $(CXXFLAGS) \
++ $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(NOEXCEPTION_FLAGS) \
++ $(WARN_CXXFLAGS) @DEFS@
+
+ # Likewise. Put INCLUDES at the beginning: this way, if some autoconf macro
+ # puts -I options in CPPFLAGS, our include files in the srcdir will always
+@@ -1815,6 +1824,7 @@ libgcc.mvars: config.status Makefile spe
+ echo GCC_CFLAGS = '$(GCC_CFLAGS)' >> tmp-libgcc.mvars
+ echo INHIBIT_LIBC_CFLAGS = '$(INHIBIT_LIBC_CFLAGS)' >> tmp-libgcc.mvars
+ echo TARGET_SYSTEM_ROOT = '$(TARGET_SYSTEM_ROOT)' >> tmp-libgcc.mvars
++ echo enable_espf = '$(enable_espf)' >> tmp-libgcc.mvars
+
+ mv tmp-libgcc.mvars libgcc.mvars
+
+@@ -4893,6 +4903,9 @@ site.exp: ./config.status Makefile
+ @if test "@enable_lto@" = "yes" ; then \
+ echo "set ENABLE_LTO 1" >> ./site.tmp; \
+ fi
++ @if test "@enable_espf@" = "yes" ; then \
++ echo "set ENABLE_ESPF 1" >> ./site.tmp; \
++ fi
+ # If newlib has been configured, we need to pass -B to gcc so it can find
+ # newlib's crt0.o if it exists. This will cause a "path prefix not used"
+ # message if it doesn't, but the testsuite is supposed to ignore the message -
+--- a/libgcc/Makefile.in 2011-11-22 04:01:02.000000000 +0100
++++ b/libgcc/Makefile.in 2012-06-29 00:15:04.534016511 +0200
+@@ -275,11 +275,16 @@ override CFLAGS := $(filter-out -fprofil
+ INTERNAL_CFLAGS = $(CFLAGS) $(LIBGCC2_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \
+ $(INCLUDES) @set_have_cc_tls@ @set_use_emutls@
+
++ifeq ($(enable_espf),yes)
++ESPF_NOPIE_CFLAGS = -fno-PIE
++else
++ESPF_NOPIE_CFLAGS=
++endif
+ # Options to use when compiling crtbegin/end.
+ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
+ -finhibit-size-directive -fno-inline -fno-exceptions \
+ -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
+- -fno-stack-protector \
++ -fno-stack-protector $(ESPF_NOPIE_CFLAGS) \
+ $(INHIBIT_LIBC_CFLAGS)
+
+ # Extra flags to use when compiling crt{begin,end}.o.
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2012-10-07 16:54 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2012-10-07 16:54 UTC (permalink / raw
To: gentoo-commits
commit: 62670efba8685ece4c5670285c670c42c8e528df
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 7 16:54:01 2012 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Sun Oct 7 16:54:01 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=62670efb
Add the testsuite
---
upstream/configure.ac.patch | 2 +-
upstream/testsuite-espf-format.patch | 87 +++++
upstream/testsuite-espf-fortify.patch | 44 +++
upstream/testsuite-espf-piessp.patch | 98 ++++++
upstream/testsuite-espf-pr39537.patch | 590 +++++++++++++++++++++++++++++++++
5 files changed, 820 insertions(+), 1 deletions(-)
diff --git a/upstream/configure.ac.patch b/upstream/configure.ac.patch
index 9d6f2bc..2e39577 100644
--- a/upstream/configure.ac.patch
+++ b/upstream/configure.ac.patch
@@ -104,7 +104,7 @@
+if test $enable_espf = yes ; then
+
+# Check for FORTIFY_SOURCES support in target C library.
-+ AC_CACHE_CHECK(for _FORTIFY_SOURCES support in target C library,
++ AC_CACHE_CHECK(for _FORTIFY_SOURCES support in target C library,
+ gcc_cv_libc_provides_fortify,
+ [gcc_cv_libc_provides_fortify=no
+ case "$target" in
diff --git a/upstream/testsuite-espf-format.patch b/upstream/testsuite-espf-format.patch
new file mode 100644
index 0000000..0d14c10
--- /dev/null
+++ b/upstream/testsuite-espf-format.patch
@@ -0,0 +1,87 @@
+--- a/gcc/testsuite/gcc.dg/charset/builtin2.c
++++ b/gcc/testsuite/gcc.dg/charset/builtin2.c
+@@ -4,6 +4,7 @@
+ /* { dg-do compile } */
+ /* { dg-require-iconv "IBM1047" } */
+ /* { dg-options "-O2 -fexec-charset=IBM1047" } */
++/* { dg-additional-options "-Wno-format" { target espf } } */
+ /* { dg-final { scan-assembler-not "printf" } } */
+ /* { dg-final { scan-assembler-not "fprintf" } } */
+ /* { dg-final { scan-assembler-not "sprintf" } } */
+--- a/gcc/testsuite/gcc.dg/format/format.exp
++++ b/gcc/testsuite/gcc.dg/format/format.exp
+@@ -24,9 +24,16 @@ if [is_remote host] {
+
+ load_lib gcc-dg.exp
+ load_lib torture-options.exp
++load_lib target-supports.exp
+
+ torture-init
+-set-torture-options [list { } { -DWIDE } ]
++
++# Disable -Wformat if we use espf.
++if [check_effective_target_espf] {
++ set-torture-options [list { -Wno-format } { -DWIDE -Wno-format } ]
++} else {
++ set-torture-options [list { } { -DWIDE } ]
++}
+
+ dg-init
+ gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] ""
+
+--- a/gcc/testsuite/gcc.dg/pr30473.c
++++ b/gcc/testsuite/gcc.dg/pr30473.c
+@@ -2,6 +2,7 @@
+ /* Make sure this doesn't ICE. */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
++/* { dg-additional-options "Wno-format" { target espf } } */
+
+ extern int sprintf (char *, const char *, ...);
+
+--- a/gcc/testsuite/gcc.dg/pr38902.c
++++ b/gcc/testsuite/gcc.dg/pr38902.c
+@@ -2,6 +2,7 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -fstack-protector" } */
+ /* { dg-require-effective-target fstack_protector } */
++/* { dg-additional-options "Wno-format" { target espf } } */
+
+ #ifdef DEBUG
+ #include <stdio.h>
+--- a/gcc/testsuite/gcc.dg/ipa/ipa-sra-1.c 2010-09-10 01:38:23.000000000 +0200
++++b/gcc/testsuite/gcc.dg/ipa/ipa-sra-1.c 2012-07-31 14:37:53.238554197 +0200
+@@ -1,5 +1,6 @@
+ /* { dg-do run } */
+ /* { dg-options "-O2 -fipa-sra -fdump-tree-eipa_sra-details" } */
++/* { dg-additional-options "-Wno-format" { target espf } } */
+
+ struct bovid
+ {
+--- a/gcc/testsuite/gcc.dg/torture/tls/tls-test.c 2011-06-22 19:27:07.000000000 +0200
++++ b/gcc/testsuite/gcc.dg/torture/tls/tls-test.c 2012-08-21 23:51:33.205398132 +0200
+@@ -2,6 +2,7 @@
+ /* { dg-require-effective-target tls } */
+ /* { dg-require-effective-target pthread } */
+ /* { dg-options "-pthread" } */
++/* { dg-additional-options "-Wno-format" { target espf } } */
+
+ #include <pthread.h>
+ extern int printf (char *,...);
+--- a/gcc/testsuite/g++.dg/abi/pragma-pack1.C 2011-06-07 23:54:07.000000000 +0200
++++ b/gcc/testsuite/g++.dg/abi/pragma-pack1.C 2012-08-16 17:49:19.472877085 +0200
+@@ -1,4 +1,5 @@
+ // PR c++/7046
++// { dg-additional-options "-Wno-format" { target espf } }
+
+ extern "C" int printf (const char *, ...);
+
+--- a/gcc/testsuite/g++.dg/cpp0x/constexpr-tuple.C 2012-08-16 17:41:19.486862781 +0200
++++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-tuple.C 2012-08-16 17:38:38.000000000 +0200
+@@ -1,5 +1,6 @@
+ // PR c++/53202
+ // { dg-do run { target c++11 } }
++// { dg-additional-options "-Wno-format" { target espf } }
+
+ #include <tuple>
+
diff --git a/upstream/testsuite-espf-fortify.patch b/upstream/testsuite-espf-fortify.patch
new file mode 100644
index 0000000..82456cc
--- /dev/null
+++ b/upstream/testsuite-espf-fortify.patch
@@ -0,0 +1,44 @@
+--- a/gcc/testsuite/lib/target-supports.exp 2012-02-22 12:00:21.000000000 +0100
++++ b/gcc/testsuite/lib/target-supports.exp 2012-07-27 19:19:30.849216278 +0200
+@@ -4419,6 +4419,14 @@ proc check_effective_target_lto { } {
+ return [info exists ENABLE_LTO]
+ }
+
++# Return 1 if the compiler has been configure with espf
++# (configure --enable-espf=(all|ssp|pie)) support.
++
++proc check_effective_target_espf { } {
++ global ENABLE_ESPF
++ return [info exists ENABLE_ESPF]
++}
++
+ # Return 1 if this target supports the -fsplit-stack option, 0
+ # otherwise.
+
+--- a/gcc/testsuite/gcc.c-torture/execute/memset-1.x 2012-08-18 14:43:31.963694252 +0200
++++ b/gcc/testsuite/gcc.c-torture/execute/memset-1.x 2012-07-27 21:47:01.000000000 +0200
+@@ -0,0 +1,6 @@
++load_lib target-supports.exp
++
++if { [check_effective_target_espf] } {
++ set additional_flags "-U_FORTIFY_SOURCE"
++}
++return 0
+--- a/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.x 2012-07-30 02:31:20.573793905 +0200
++++ b/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.x 2012-07-27 21:47:01.574480025 +0200
+@@ -0,0 +1,6 @@
++load_lib target-supports.exp
++
++if [check_effective_target_espf] {
++ set additional_flags "-U_FORTIFY_SOURCE"
++}
++return 0
+--- a/gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.x 2012-07-30 02:31:07.366794031 +0200
++++ b/gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.x 2012-07-27 21:47:01.000000000 +0200
+@@ -0,0 +1,6 @@
++load_lib target-supports.exp
++
++if [check_effective_target_espf] {
++ set additional_flags "-U_FORTIFY_SOURCE"
++}
++return 0
diff --git a/upstream/testsuite-espf-piessp.patch b/upstream/testsuite-espf-piessp.patch
new file mode 100644
index 0000000..8991a69
--- /dev/null
+++ b/upstream/testsuite-espf-piessp.patch
@@ -0,0 +1,98 @@
+--- a/gcc/testsuite/gcc.dg/20021014-1.c 2009-10-02 01:08:07.000000000 +0200
++++ b/gcc/testsuite/gcc.dg/20021014-1.c 2012-08-14 23:50:16.724373103 +0200
+@@ -1,6 +1,7 @@
+ /* { dg-do run } */
+ /* { dg-require-profiling "-p" } */
+ /* { dg-options "-O2 -p" } */
++/* { dg-additional-options "-fno-PIE" { target espf } } */
+ /* { dg-options "-O2 -p -static" { target hppa*-*-hpux* } } */
+ /* { dg-error "profiler" "No profiler support" { target xstormy16-*-* } 0 } */
+ /* { dg-message "" "consider using `-pg' instead of `-p' with gprof(1)" { target *-*-freebsd* } 0 } */
+--- a/gcc/testsuite/gcc.dg/nest.c 2007-08-30 07:23:02.000000000 +0200
++++ b/gcc/testsuite/gcc.dg/nest.c 2012-08-14 23:51:44.797375728 +0200
+@@ -3,6 +3,7 @@
+ /* { dg-require-profiling "-pg" } */
+ /* { dg-options "-O2 -pg" } */
+ /* { dg-options "-O2 -pg -static" { target hppa*-*-hpux* } } */
++/* { dg-additional-options "-fno-PIE" { target espf } } */
+ /* { dg-error "profiler" "No profiler support" { target xstormy16-*-* } 0 } */
+
+ extern void abort (void);
+--- a/gcc/testsuite/gcc.dg/nested-func-4.c 2007-08-30 07:23:02.000000000 +0200
++++ b/gcc/testsuite/gcc.dg/nested-func-4.c 2012-08-14 23:52:23.337376877 +0200
+@@ -1,6 +1,7 @@
+ /* { dg-do run } */
+ /* { dg-options "-pg" } */
+ /* { dg-options "-pg -static" { target hppa*-*-hpux* } } */
++/* { dg-additional-options "-fno-PIE" { target espf } } */
+ /* { dg-require-profiling "-pg" } */
+
+ extern void abort(void);
+--- a/gcc/testsuite/gcc.dg/pr32450.c 2007-08-30 07:23:02.000000000 +0200
++++ b/gcc/testsuite/gcc.dg/pr32450.c 2012-08-14 23:53:38.125379106 +0200
+@@ -5,6 +5,7 @@
+ /* { dg-options "-O2 -pg" } */
+ /* { dg-options "-O2 -pg -mtune=core2" { target { i?86-*-* x86_64-*-* } } } */
+ /* { dg-options "-O2 -pg -static" { target hppa*-*-hpux* } } */
++/* { dg-additional-options "-fno-PIE" { target espf } } */
+
+ extern void abort (void);
+
+--- a/gcc/testsuite/gcc.dg/pr43643.c 2010-04-14 18:47:15.000000000 +0200
++++ b/gcc/testsuite/gcc.dg/pr43643.c 2012-08-14 23:54:20.084380356 +0200
+@@ -4,6 +4,7 @@
+ /* { dg-require-profiling "-pg" } */
+ /* { dg-options "-O2 -pg" } */
+ /* { dg-options "-O2 -pg -static" { target hppa*-*-hpux* } } */
++/* { dg-additional-options "-fno-PIE" { target espf } } */
+
+ extern char *strdup (const char *);
+
+--- a/gcc.dg/tree-ssa/ssa-store-ccp-3.c 2011-08-07 09:45:57.000000000 +0200
++++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-store-ccp-3.c 2012-08-14 23:59:24.489389427 +0200
+@@ -3,6 +3,7 @@
+ defined for executables as well as shared libraries. */
+ /* { dg-skip-if "" { *-*-darwin* hppa*64*-*-* mips*-*-linux* mips*-*-irix* *-*-mingw* } { "*" } { "" } } */
+ /* { dg-options "-O2 -fno-common -fdump-tree-optimized" } */
++/* { dg-skip-if "" { espf } { "*" } { "" } } */ */
+
+ const int conststaticvariable;
+
+--- a/gcc/testsuite/gcc.dg/stack-usage-1.c 2012-02-23 19:10:53.000000000 +0100
++++ b/gcc/testsuite/gcc.dg/stack-usage-1.c 2012-08-14 23:55:37.558382664 +0200
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-fstack-usage" } */
++/* { dg-additional-options "-fno-stack-protector" { target espf } } */
+
+ /* This is aimed at testing basic support for -fstack-usage in the back-ends.
+ See the SPARC back-end for example (grep flag_stack_usage_info in sparc.c).
+--- a/gcc/testsuite/gcc.dg/superblock.c 2012-08-15 00:28:32.995441532 +0200
++++ b/gcc/testsuite/gcc.dg/superblock.c 2012-08-14 23:56:30.159384232 +0200
+@@ -1,5 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fno-asynchronous-unwind-tables -fsched2-use-superblocks -fdump-rtl-sched2 -fdump-rtl-bbro" } */
++/* { dg-additional-options "-fno-stack-protector" { target espf } } */
+
+ typedef int aligned __attribute__ ((aligned (64)));
+ extern void abort (void);
+--- a/gcc/testsuite/g++.dg/other/anon5.C 2012-08-16 17:33:08.842848160 +0200
++++ b/gcc/testsuite/g++.dg/other/anon5.C 2012-08-16 17:33:35.913848967 +0200
+@@ -1,6 +1,7 @@
+ // PR c++/34094
+ // { dg-do link { target { ! { *-*-darwin* *-*-hpux* *-*-solaris2.* alpha*-dec-osf* mips-sgi-irix* } } } }
+ // { dg-options "-g" }
++// { dg-additional-options "-fno-PIE" { target espf } }
+
+ namespace {
+ struct c
+--- a/gcc/testsuite/g++.old-deja/g++.law/profile1.C 2007-08-30 07:23:02.000000000 +0200
++++ b/gcc/testsuite/g++.old-deja/g++.law/profile1.C 2012-08-21 20:48:15.463070406 +0200
+@@ -2,6 +2,7 @@
+ // { dg-require-profiling "-pg" }
+ // { dg-options "-pg" }
+ // { dg-options "-pg -static" { target hppa*-*-hpux* } }
++// { dg-additional-options "-fno-PIE" { target espf } }
+ // GROUPS passed profiling
+ #include <stdio.h>
+ main()
diff --git a/upstream/testsuite-espf-pr39537.patch b/upstream/testsuite-espf-pr39537.patch
new file mode 100644
index 0000000..8ca807e
--- /dev/null
+++ b/upstream/testsuite-espf-pr39537.patch
@@ -0,0 +1,590 @@
+--- a/gcc/testsuite/g++.dg/ext/align1.C 2002-02-06 17:18:33.000000000 +0100
++++ b/gcc/testsuite/g++.dg/ext/align1.C 2012-08-11 02:14:51.533875779 +0200
+@@ -16,6 +16,5 @@ float f1 __attribute__ ((aligned));
+ int
+ main (void)
+ {
+- printf ("%d %d\n", __alignof (a1), __alignof (f1));
+ return (__alignof (a1) < __alignof (f1));
+ }
+
+--- a/gcc/testsuite/g++.old-deja/g++.law/operators28.C
++++ b/gcc/testsuite/g++.old-deja/g++.law/operators28.C
+@@ -14,7 +14,8 @@
+ {
+ void *p;
+
+- printf("%d %d %d\n", sz, count, type);
++ // ISO C++ does not support format size modifier "z", so use a cast
++ printf("%u %d %d\n", (unsigned int)sz, count, type);
+
+ p = new char[sz * count];
+ ((new_test *)p)->type = type;
+--- a/gcc/testsuite/gcc.dg/torture/matrix-2.c
++++ b/gcc/testsuite/gcc.dg/torture/matrix-2.c
+@@ -42,7 +42,7 @@
+ }
+ for (i = 0; i < ARCHnodes; i++)
+ for (j = 0; j < 3; j++)
+- printf ("%x\n",vel[i][j]);
++ printf ("%p\n",vel[i][j]);
+ /*if (i!=1 || j!=1)*/
+ /*if (i==1 && j==1)
+ continue;
+@@ -83,14 +83,14 @@
+ for (j = 0; j < 3; j++)
+ {
+ vel[i][j] = (int *) malloc (ARCHnodes1 * sizeof (int));
+- printf ("%x %d %d\n",vel[i][j], ARCHnodes1, sizeof (int));
++ printf ("%p %d %d\n",vel[i][j], ARCHnodes1, (int)sizeof (int));
+ }
+ }
+ for (i = 0; i < ARCHnodes; i++)
+ {
+ for (j = 0; j < 3; j++)
+ {
+- printf ("%x\n",vel[i][j]);
++ printf ("%p\n",vel[i][j]);
+ }
+ }
+
+@@ -99,7 +99,7 @@
+ {
+ for (j = 0; j < 3; j++)
+ {
+- printf ("%x\n",vel[i][j]);
++ printf ("%p\n",vel[i][j]);
+ /*for (k = 0; k < ARCHnodes1; k++)
+ {
+ vel[i][j][k] = d;
+--- a/gcc/testsuite/gcc.dg/packed-vla.c
++++ b/gcc/testsuite/gcc.dg/packed-vla.c
+@@ -17,8 +17,8 @@
+ int b[4];
+ } __attribute__ ((__packed__)) foo;
+
+- printf("foo %d\n", sizeof(foo));
+- printf("bar %d\n", sizeof(bar));
++ printf("foo %d\n", (int)sizeof(foo));
++ printf("bar %d\n", (int)sizeof(bar));
+
+ if (sizeof (foo) != sizeof (bar))
+ abort ();
+--- a/gcc/testsuite/g++.dg/opt/alias2.C
++++ b/gcc/testsuite/g++.dg/opt/alias2.C
+@@ -30,14 +30,14 @@
+
+
+ _Deque_base::~_Deque_base() {
+- printf ("bb %x %x\n", this, *_M_start._M_node);
++ printf ("bb %p %x\n", this, *_M_start._M_node);
+ }
+
+ void
+ _Deque_base::_M_initialize_map()
+ {
+ yy = 0x123;
+- printf ("aa %x %x\n", this, yy);
++ printf ("aa %p %x\n", this, yy);
+
+ _M_start._M_node = &yy;
+ _M_start._M_cur = yy;
+--- a/gcc/testsuite/g++.old-deja/g++.abi/vbase1.C
++++ b/gcc/testsuite/g++.old-deja/g++.abi/vbase1.C
+@@ -33,7 +33,7 @@
+ void Offset () const
+ {
+ printf ("VBase\n");
+- printf (" VBase::member %d\n", &this->VBase::member - (int *)this);
++ printf (" VBase::member %d\n", (int)(&this->VBase::member - (int *)this));
+ }
+ };
+
+@@ -55,8 +55,8 @@
+ void Offset () const
+ {
+ printf ("VDerived\n");
+- printf (" VBase::member %d\n", &this->VBase::member - (int *)this);
+- printf (" VDerived::member %d\n", &this->VDerived::member - (int *)this);
++ printf (" VBase::member %d\n", (int)(&this->VBase::member - (int *)this));
++ printf (" VDerived::member %d\n", (int)(&this->VDerived::member - (int *)this));
+ }
+ };
+ struct B : virtual VBase
+@@ -65,8 +65,8 @@
+ void Offset () const
+ {
+ printf ("B\n");
+- printf (" VBase::member %d\n", &this->VBase::member - (int *)this);
+- printf (" B::member %d\n", &this->B::member - (int *)this);
++ printf (" VBase::member %d\n", (int)(&this->VBase::member - (int *)this));
++ printf (" B::member %d\n", (int)(&this->B::member - (int *)this));
+ }
+ };
+ struct MostDerived : B, virtual VDerived
+@@ -75,10 +75,10 @@
+ void Offset () const
+ {
+ printf ("MostDerived\n");
+- printf (" VBase::member %d\n", &this->VBase::member - (int *)this);
+- printf (" B::member %d\n", &this->B::member - (int *)this);
+- printf (" VDerived::member %d\n", &this->VDerived::member - (int *)this);
+- printf (" MostDerived::member %d\n", &this->MostDerived::member - (int *)this);
++ printf (" VBase::member %d\n", (int)(&this->VBase::member - (int *)this));
++ printf (" B::member %d\n", (int)(&this->B::member - (int *)this));
++ printf (" VDerived::member %d\n", (int)(&this->VDerived::member - (int *)this));
++ printf (" MostDerived::member %d\n", (int)(&this->MostDerived::member - (int *)this));
+ }
+ };
+
+@@ -95,10 +95,10 @@
+ if (ctorVDerived != &dum.VDerived::member)
+ return 24;
+
+- printf (" VBase::member %d\n", &dum.VBase::member - this_);
+- printf (" B::member %d\n", &dum.B::member - this_);
+- printf (" VDerived::member %d\n", &dum.VDerived::member - this_);
+- printf (" MostDerived::member %d\n", &dum.MostDerived::member - this_);
++ printf (" VBase::member %d\n", (int)(&dum.VBase::member - this_));
++ printf (" B::member %d\n", (int)(&dum.B::member - this_));
++ printf (" VDerived::member %d\n", (int)(&dum.VDerived::member - this_));
++ printf (" MostDerived::member %d\n", (int)(&dum.MostDerived::member - this_));
+ dum.MostDerived::Offset ();
+ dum.B::Offset ();
+ dum.VDerived::Offset ();
+--- a/gcc/testsuite/g++.old-deja/g++.brendan/template8.C
++++ b/gcc/testsuite/g++.old-deja/g++.brendan/template8.C
+@@ -15,6 +15,6 @@
+
+ Double_alignt<20000> heap;
+
+- printf(" &heap.array[0] = %d, &heap.for_alignt = %d\n", &heap.array[0], &heap.for_alignt);
++ printf(" &heap.array[0] = %p, &heap.for_alignt = %p\n", (void*)&heap.array[0], (void*)&heap.for_alignt);
+
+ }
+--- a/gcc/testsuite/g++.old-deja/g++.eh/ptr1.C
++++ b/gcc/testsuite/g++.old-deja/g++.eh/ptr1.C
+@@ -16,7 +16,7 @@
+ }
+
+ catch (E *&e) {
+- printf ("address of e is 0x%lx\n", (__SIZE_TYPE__)e);
++ printf ("address of e is %p\n", (void *)e);
+ return !((__SIZE_TYPE__)e != 5 && e->x == 5);
+ }
+ return 2;
+--- a/gcc/testsuite/g++.old-deja/g++.jason/access23.C
++++ b/gcc/testsuite/g++.old-deja/g++.jason/access23.C
+@@ -42,19 +42,19 @@
+ void DoSomething() {
+ PUB_A = 0;
+ Foo::A = 0;
+- printf("%x\n",pX);
++ printf("%p\n",pX);
+ Foo::PUB.A = 0;
+- printf("%x\n",PUB.pX);
++ printf("%p\n",PUB.pX);
+ B = 0;
+- printf("%x\n",Foo::pY);
++ printf("%p\n",Foo::pY);
+ PRT_A = 0;
+ PRT.B = 0;
+- printf("%x\n",Foo::PRT.pY);
++ printf("%p\n",Foo::PRT.pY);
+ PRV_A = 0; // { dg-error "" }
+ Foo::C = 0; // { dg-error "" }
+- printf("%x\n",pZ); // { dg-error "" }
++ printf("%p\n",pZ); // { dg-error "" }
+ Foo::PRV.C = 0; // { dg-error "" }
+- printf("%x\n",PRV.pZ); // { dg-error "" }
++ printf("%p\n",PRV.pZ); // { dg-error "" }
+ }
+ };
+
+@@ -64,17 +64,17 @@
+
+ a.PUB_A = 0;
+ a.A = 0;
+- printf("%x\n",a.pX);
++ printf("%p\n",a.pX);
+ a.PRT_A = 0; // { dg-error "" }
+ a.B = 0; // { dg-error "" }
+- printf("%x\n",a.pY); // { dg-error "" }
++ printf("%p\n",a.pY); // { dg-error "" }
+ a.PRV_A = 0; // { dg-error "" }
+ a.C = 0; // { dg-error "" }
+- printf("%x\n",a.pZ); // { dg-error "" }
++ printf("%p\n",a.pZ); // { dg-error "" }
+ a.PUB.A = 0;
+- printf("%x\n",a.PUB.pX);
++ printf("%p\n",a.PUB.pX);
+ a.PRT.B = 0; // { dg-error "" }
+- printf("%x\n",a.PRT.pY); // { dg-error "" }
++ printf("%p\n",a.PRT.pY); // { dg-error "" }
+ a.PRV.C = 0; // { dg-error "" }
+- printf("%x\n",a.PRV.pZ); // { dg-error "" }
++ printf("%p\n",a.PRV.pZ); // { dg-error "" }
+ }
+--- a/gcc/testsuite/g++.old-deja/g++.law/cvt8.C
++++ b/gcc/testsuite/g++.old-deja/g++.law/cvt8.C
+@@ -20,12 +20,12 @@
+ B::operator const A&() const {
+ static A a;
+ a.i = i;
+- printf("convert B to A at %x\n", &a);
++ printf("convert B to A at %p\n", (void*)&a);
+ return a;
+ }
+
+ void f(A &a) { // { dg-error "" } in passing argument
+- printf("A at %x is %d\n", &a, a.i);
++ printf("A at %p is %d\n", (void*)&a, a.i);
+ }
+
+ int main() {
+--- a/gcc/testsuite/g++.old-deja/g++.mike/net35.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/net35.C
+@@ -17,10 +17,10 @@
+
+ int main() {
+ C c;
+- printf("&c.x = %x\n", &c.x);
+- printf("&c.B1::x = %x\n", &c.B1::x);
+- printf("&c.B2::x = %x\n", &c.B2::x);
+- printf("&c.A::x = %x\n", &c.A::x);
++ printf("&c.x = %p\n", (void*)&c.x);
++ printf("&c.B1::x = %p\n", (void*)&c.B1::x);
++ printf("&c.B2::x = %p\n", (void*)&c.B2::x);
++ printf("&c.A::x = %p\n", (void*)&c.A::x);
+ if (&c.x != &c.B1::x
+ || &c.x != &c.B2::x
+ || &c.x != &c.A::x)
+--- a/gcc/testsuite/g++.old-deja/g++.mike/offset1.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/offset1.C
+@@ -6,7 +6,7 @@
+ class Foo {
+ public:
+ virtual void setName() {
+- printf("Foo at %x\n", this);
++ printf("Foo at %p\n", (void*)this);
+ if (vp != (void*)this)
+ fail = 1;
+ }
+@@ -15,7 +15,7 @@
+ class Bar : public Foo {
+ public:
+ virtual void init(int argc, char **argv) {
+- printf("Bar's Foo at %x\n", (Foo*)this);
++ printf("Bar's Foo at %p\n", (void*)(Foo*)this);
+ vp = (void*)(Foo*)this;
+ setName();
+ }
+--- a/gcc/testsuite/g++.old-deja/g++.mike/p12306.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/p12306.C
+@@ -18,7 +18,7 @@
+ if (ptr2 != &(*this).slist)
+ fail = 6;
+
+- if (0) printf("at %x %x\n", (RWSlistIterator*)this, &(*this).slist);
++ if (0) printf("at %p %p\n", (void*)(RWSlistIterator*)this, (void*)&(*this).slist);
+ }
+ };
+
+@@ -54,14 +54,14 @@
+ void Sim_Event_Manager::post_event () {
+ ptr1 = (RWSlistIterator*)&last_posted_event_position_;
+ ptr2 = &((RWSlistIterator*)&last_posted_event_position_)->slist;
+- if (0) printf("at %x %x\n", (RWSlistIterator*)&last_posted_event_position_,
+- &((RWSlistIterator*)&last_posted_event_position_)->slist);
++ if (0) printf("at %p %p\n", (void*)(RWSlistIterator*)&last_posted_event_position_,
++ (void*)&((RWSlistIterator*)&last_posted_event_position_)->slist);
+ if (ptr1 != (RWSlistIterator*)&last_posted_event_position_)
+ fail = 1;
+ if (ptr2 != &((RWSlistIterator&)last_posted_event_position_).slist)
+ fail = 2;
+- if (0) printf("at %x ?%x\n", (RWSlistIterator*)&last_posted_event_position_,
+- &((RWSlistIterator&)last_posted_event_position_).slist);
++ if (0) printf("at %p ?%p\n", (void*)(RWSlistIterator*)&last_posted_event_position_,
++ (void*)&((RWSlistIterator&)last_posted_event_position_).slist);
+ if (ptr1 != (RWSlistIterator*)&last_posted_event_position_)
+ fail = 3;
+ if (ptr2 != &((RWSlistIterator&)last_posted_event_position_).slist)
+--- a/gcc/testsuite/g++.old-deja/g++.mike/p3579.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/p3579.C
+@@ -7,26 +7,26 @@
+
+ class Y {
+ public:
+- Y () { printf("Y() this: %x\n", this); }
+- ~Y () { printf("~Y() this: %x\n", this); }
++ Y () { printf("Y() this: %p\n", (void*)this); }
++ ~Y () { printf("~Y() this: %p\n", (void*)this); }
+ };
+
+ class X {
+ public:
+ X () {
+ ++num_x;
+- printf("X() this: %x\n", this);
++ printf("X() this: %p\n", (void*)this);
+ Y y;
+ *this = (X) y;
+ }
+
+- X (const Y & yy) { printf("X(const Y&) this: %x\n", this); ++num_x; }
++ X (const Y & yy) { printf("X(const Y&) this: %p\n", (void*)this); ++num_x; }
+ X & operator = (const X & xx) {
+- printf("X.op=(X&) this: %x\n", this);
++ printf("X.op=(X&) this: %p\n", (void*)this);
+ return *this;
+ }
+
+- ~X () { printf("~X() this: %x\n", this); --num_x; }
++ ~X () { printf("~X() this: %p\n", (void*)this); --num_x; }
+ };
+
+ int main (int, char **) {
+--- a/gcc/testsuite/g++.old-deja/g++.mike/p3708a.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/p3708a.C
+@@ -38,7 +38,7 @@
+ virtual void xx(int doit) {
+ --num;
+ if (ptr != this)
+- printf("FAIL\n%x != %x\n", ptr, this);
++ printf("FAIL\n%p != %p\n", ptr, (void*)this);
+ printf ("C is destructed.\n");
+ B::xx (0);
+ if (doit) A::xx (1);
+--- a/gcc/testsuite/g++.old-deja/g++.mike/p3708b.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/p3708b.C
+@@ -48,7 +48,7 @@
+ virtual void xx(int doit) {
+ --num;
+ if (ptr != this) {
+- printf("FAIL\n%x != %x\n", ptr, this);
++ printf("FAIL\n%p != %p\n", ptr, (void*)this);
+ exit(1);
+ }
+ printf ("D is destructed.\n");
+--- a/gcc/testsuite/g++.old-deja/g++.mike/p3708.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/p3708.C
+@@ -38,7 +38,7 @@
+ virtual void xx(int doit) {
+ --num;
+ if (ptr != this)
+- printf("FAIL\n%x != %x\n", ptr, this);
++ printf("FAIL\n%p != %p\n", ptr, (void*)this);
+ printf ("C is destructed.\n");
+ B::xx (0);
+ if (doit) A::xx (1);
+--- a/gcc/testsuite/g++.old-deja/g++.mike/p646.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/p646.C
+@@ -35,20 +35,20 @@
+ foo::foo ()
+ {
+ si++;
+- printf ("new foo @ 0x%x; now %d foos\n", this, si);
++ printf ("new foo @ %p; now %d foos\n", (void*)this, si);
+ }
+
+ foo::foo (const foo &other)
+ {
+ si++;
+- printf ("another foo @ 0x%x; now %d foos\n", this, si);
++ printf ("another foo @ %p; now %d foos\n", (void*)this, si);
+ *this = other;
+ }
+
+ foo::~foo ()
+ {
+ si--;
+- printf ("deleted foo @ 0x%x; now %d foos\n", this, si);
++ printf ("deleted foo @ %p; now %d foos\n", (void*)this, si);
+ }
+
+ int
+--- a/gcc/testsuite/g++.old-deja/g++.mike/p710.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/p710.C
+@@ -30,7 +30,7 @@
+ virtual ~B() {}
+ void operator delete(void*,size_t s)
+ {
+- printf("B::delete() %d\n",s);
++ printf("B::delete() %u\n",(unsigned int)s);
+ }
+ void operator delete(void*){}
+ };
+--- a/gcc/testsuite/g++.old-deja/g++.mike/p789a.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/p789a.C
+@@ -13,10 +13,10 @@
+ int x;
+ foo () {
+ x = count++;
+- printf("this %d = %x\n", x, (void *)this);
++ printf("this %d = %p\n", x, (void *)this);
+ }
+ virtual ~foo () {
+- printf("this %d = %x\n", x, (void *)this);
++ printf("this %d = %p\n", x, (void *)this);
+ --count;
+ }
+ };
+@@ -31,7 +31,7 @@
+ {
+ for (int j = 0; j < 3; j++)
+ {
+- printf("&a[%d][%d] = %x\n", i, j, (void *)&array[i][j]);
++ printf("&a[%d][%d] = %p\n", i, j, (void *)&array[i][j]);
+ }
+ }
+ // The count should be nine, if not, fail the test.
+--- a/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C
+@@ -42,7 +42,7 @@
+ bar jar;
+
+ int main() {
+- printf("ptr to B_table=%x, ptr to A_table=%x\n",&b,(A_table*)&b);
++ printf("ptr to B_table=%p, ptr to A_table=%p\n",(void*)&b,(void*)(A_table*)&b);
+ B_table::B_ti_fn z = &B_table::func1;
+ int j = 1;
+ jar.call_fn_fn1(j,(void *)&z);
+--- a/gcc/testsuite/g++.old-deja/g++.mike/temp.C
++++ b/gcc/testsuite/g++.old-deja/g++.mike/temp.C
+@@ -7,11 +7,11 @@
+ public:
+ T() {
+ i = 1;
+- printf("T() at %x\n", this);
++ printf("T() at %p\n", (void*)this);
+ }
+ T(const T& o) {
+ i = o.i;
+- printf("T(const T&) at %x <-- %x\n", this, &o);
++ printf("T(const T&) at %p <-- %p\n", (void*)this, (void*)&o);
+ }
+ T operator +(const T& o) {
+ T r;
+@@ -21,7 +21,7 @@
+ operator int () {
+ return i;
+ }
+- ~T() { printf("~T() at %x\n", this); }
++ ~T() { printf("~T() at %p\n", (void*)this); }
+ } s, b;
+
+ int foo() { return getenv("TEST") == 0; }
+--- a/gcc/testsuite/g++.old-deja/g++.other/temporary1.C
++++ b/gcc/testsuite/g++.old-deja/g++.other/temporary1.C
+@@ -5,16 +5,16 @@
+ class Foo
+ {
+ public:
+- Foo() { printf("Foo() 0x%08lx\n", (__SIZE_TYPE__)this); ++c; }
+- Foo(Foo const &) { printf("Foo(Foo const &) 0x%08lx\n", (__SIZE_TYPE__)this); }
+- ~Foo() { printf("~Foo() 0x%08lx\n", (__SIZE_TYPE__)this); ++d; }
++ Foo() { printf("Foo() %p\n", (void*)this); ++c; }
++ Foo(Foo const &) { printf("Foo(Foo const &) %p\n", (void*)this); }
++ ~Foo() { printf("~Foo() %p\n", (void*)this); ++d; }
+ };
+
+ // Bar creates constructs a temporary Foo() as a default
+ class Bar
+ {
+ public:
+- Bar(Foo const & = Foo()) { printf("Bar(Foo const &) 0x%08lx\n", (__SIZE_TYPE__)this); }
++ Bar(Foo const & = Foo()) { printf("Bar(Foo const &) %p\n", (void*)this); }
+ };
+
+ void fakeRef(Bar *)
+--- a/gcc/testsuite/g++.old-deja/g++.other/virtual8.C
++++ b/gcc/testsuite/g++.old-deja/g++.other/virtual8.C
+@@ -4,7 +4,7 @@
+ struct A
+ {
+ virtual void f () {
+- printf ("%x\n", this);
++ printf ("%p\n", (void*)this);
+ }
+ };
+
+--- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp23.C
++++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp23.C
+@@ -13,7 +13,7 @@
+
+ template <class U>
+ void f(U u)
+- { printf ("In S::f(U)\nsizeof(U) == %d\n", sizeof(u)); }
++ { printf ("In S::f(U)\nsizeof(U) == %d\n", (int)sizeof(u)); }
+
+ int c[16];
+ };
+--- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp24.C
++++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp24.C
+@@ -13,7 +13,7 @@
+
+ template <class U>
+ void f(U u)
+- { printf ("In S::f(U)\nsizeof(U) == %d\n", sizeof(u)); }
++ { printf ("In S::f(U)\nsizeof(U) == %d\n", (int)sizeof(u)); }
+
+ int c[16];
+ };
+--- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp25.C
++++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp25.C
+@@ -6,7 +6,7 @@
+ struct S
+ {
+ template <class U>
+- void f(U u) { printf ("%d\n", sizeof (U)); }
++ void f(U u) { printf ("%d\n", (int)sizeof (U)); }
+
+ int i[4];
+ };
+--- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp26.C
++++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp26.C
+@@ -16,7 +16,7 @@
+ template <class U>
+ void S<X>::f(U u)
+ {
+- printf ("%d\n", sizeof (U));
++ printf ("%d\n", (int)sizeof (U));
+ }
+
+
+--- a/gcc/testsuite/g++.old-deja/g++.pt/t39.C
++++ b/gcc/testsuite/g++.old-deja/g++.pt/t39.C
+@@ -10,9 +10,9 @@
+
+ template <class T>
+ void frob<T>::print () {
+- printf ("this = %08x\n", this);
+- printf (" ptr = %08x\n", ptr);
+- printf (" values = %x %x %x ...\n", ptr[0], ptr[1], ptr[2]);
++ printf ("this = %p\n", (void*)this);
++ printf (" ptr = %p\n", (void*)ptr);
++ printf (" values = %x %x %x ...\n", (int)ptr[0], (int)ptr[1], (int)ptr[2]);
+ }
+
+ static int x[10];
+--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb17.C
++++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb17.C
+@@ -44,15 +44,15 @@
+ A * a = new B;
+ B * b = dynamic_cast<B *>(a);
+
+- printf("%p\n",b); // (*2*)
++ printf("%p\n",(void*)b); // (*2*)
+ b->print();
+
+ a = b;
+- printf("%p\n",a);
++ printf("%p\n",(void*)a);
+ a->print();
+
+ a = a->clone();
+- printf("%p\n",a);
++ printf("%p\n",(void*)a);
+ a->print(); // (*1*)
+
+ return 0;
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2013-11-10 10:23 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2013-11-10 10:23 UTC (permalink / raw
To: gentoo-commits
commit: ec80df40d20243d3d534a5ea798424705927dcfb
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 10 10:22:48 2013 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Sun Nov 10 10:22:48 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=ec80df40
Add default PIE patches for gcc 4.9.X
---
upstream/gcc49_default_pie_Changlog.txt | 22 +++++
upstream/gcc49_default_pie_doc.patch | 42 +++++++++
upstream/gcc49_default_pie_main.patch | 133 +++++++++++++++++++++++++++++
upstream/gcc49_default_pie_testsuite.patch | 53 ++++++++++++
4 files changed, 250 insertions(+)
diff --git a/upstream/gcc49_default_pie_Changlog.txt b/upstream/gcc49_default_pie_Changlog.txt
new file mode 100644
index 0000000..59ce7d5
--- /dev/null
+++ b/upstream/gcc49_default_pie_Changlog.txt
@@ -0,0 +1,22 @@
+2013-11-10 Magnus Granberg <zorry@gentoo.org>
+
+ /gcc
+ * config/gnu-user.h: Define PIE_DRIVER_SELF_SPECS for PIE
+ as default and GNU_DRIVER_SELF_SPECS.
+ * config/i386/gnu-user-common.h: Define DRIVER_SELF_SPECS
+ * configure.ac: Add new option that enable PIE as default.
+ * configure, config.in: Rebuild.
+ * Makefile.in: Disable PIE when building the compiler.
+ * doc/install.texi: Add the new configure option default PIE.
+ * doc/invoke.texi: Add note for the new configure option default
+ PIE.
+ * testsuite/gcc/default-pie.c: New test for new configure option
+ --enale-default-pie
+ * testsuite/gcc.dg/other/anon5.C: Add skip test as it fail to link
+ on effective_target default_pie.
+ * testsuite/lib/target-supports.exp (check_profiling_available):
+ We can't use profiling on effective target default_pie.
+ * testsuite/lib/target-supports.exp (check_effective_target_pie):
+ Add check_effective_target_default_pie.
+ /libgcc
+ * Makefile.in: Disable PIE when building the crtbegin/end files.
diff --git a/upstream/gcc49_default_pie_doc.patch b/upstream/gcc49_default_pie_doc.patch
new file mode 100644
index 0000000..961d75f
--- /dev/null
+++ b/upstream/gcc49_default_pie_doc.patch
@@ -0,0 +1,42 @@
+--- gcc-4.9-20131006/gcc/doc/install.texi 2013-10-01 19:29:40.000000000 +0200
++++ gcc-4.9-20131006-work/gcc/doc/install.texi 2013-11-09 15:40:20.831402110 +0100
+@@ -1421,6 +1421,11 @@ do a @samp{make -C gcc gnatlib_and_tools
+ Specify that the run-time libraries for stack smashing protection
+ should not be built.
+
++@item --enable-default-pie
++We will turn on @option{-fPIE} and @option{-pie} as default when
++compileing and linking if the support is there. We only support
++i?86-*-linux* and x86-64-*-linux* as target for now.
++
+ @item --disable-libquadmath
+ Specify that the GCC quad-precision math library should not be built.
+ On some systems, the library is required to be linkable when building
+--- gcc-4.8-20120302/gcc/doc/invoke.texi 2012-03-01 10:57:59.000000000 +0100
++++ gcc-4.8-20120302-work/gcc/doc/invoke.texi 2012-07-30 00:57:03.766847851 +0200
+@@ -9457,6 +9480,12 @@ For predictable results, you must also s
+ that were used to generate code (@option{-fpie}, @option{-fPIE},
+ or model suboptions) when you specify this option.
+
++NOTE: With configure --enable-default-pie this option is enabled by default
++for C, C++, ObjC, ObjC++, if none of @option{-fno-PIE}, @option{-fno-pie},
++@option{-fPIC}, @option{-fpic}, @option{-fno-PIC}, @option{-fno-pic},
++@option{-nostdlib}, @option{-nostartfiles}, @option{-shared},
++@option{-nodefaultlibs}, nor @option{static} are found.
++
+ @item -rdynamic
+ @opindex rdynamic
+ Pass the flag @option{-export-dynamic} to the ELF linker, on targets
+@@ -19125,6 +19154,12 @@ used during linking.
+ @code{__pie__} and @code{__PIE__}. The macros have the value 1
+ for @option{-fpie} and 2 for @option{-fPIE}.
+
++NOTE: With configure --enable-default-pie this option is enabled by default
++for C, C++, ObjC, ObjC++, if none of @option{-fno-PIE}, @option{-fno-pie},
++@option{-fPIC}, @option{-fpic}, @option{-fno-PIC}, @option{-fno-pic},
++@option{-nostdlib}, @option{-nostartfiles}, @option{-shared},
++@option{-nodefaultlibs}, nor @option{static} are found.
++
+ @item -fno-jump-tables
+ @opindex fno-jump-tables
+ Do not use jump tables for switch statements even where it would be
diff --git a/upstream/gcc49_default_pie_main.patch b/upstream/gcc49_default_pie_main.patch
new file mode 100644
index 0000000..37eb527
--- /dev/null
+++ b/upstream/gcc49_default_pie_main.patch
@@ -0,0 +1,133 @@
+--- a/gcc/config/gnu-user.h 2013-08-20 10:31:40.000000000 +0200
++++ b/gcc/config/gnu-user.h 2013-10-23 22:01:42.337238981 +0200
+@@ -134,3 +134,17 @@ see the files COPYING3 and COPYING.RUNTI
+ /* Additional libraries needed by -static-libtsan. */
+ #undef STATIC_LIBTSAN_LIBS
+ #define STATIC_LIBTSAN_LIBS "-ldl -lpthread"
++
++/* We use this to make the compiler use -fPIE as default and link
++ with -pie. */
++#ifdef ENABLE_DEFAULT_PIE
++#define PIE_DRIVER_SELF_SPECS \
++"%{pie|fpic|fPIC|fpie|fPIE|fno-pic|fno-PIC|fno-pie|fno-PIE| \
++ shared|static|nostdlib|nostartfiles:;:-fPIE -pie}"
++#else
++#define PIE_DRIVER_SELF_SPECS ""
++#endif
++
++#ifndef GNU_DRIVER_SELF_SPECS
++#define GNU_DRIVER_SELF_SPECS PIE_DRIVER_SELF_SPECS
++#endif
+--- a/gcc/config/i386/gnu-user-common.h 2013-01-10 21:38:27.000000000 +0100
++++ b/gcc/config/i386/gnu-user-common.h 2013-10-23 17:37:45.432767049 +0200
+@@ -70,3 +70,8 @@ along with GCC; see the file COPYING3.
+
+ /* Static stack checking is supported by means of probes. */
+ #define STACK_CHECK_STATIC_BUILTIN 1
++
++/* Use GNU_DRIVER_SELF_SPECS. */
++#ifndef DRIVER_SELF_SPECS
++#define DRIVER_SELF_SPECS GNU_DRIVER_SELF_SPECS
++#endif
+--- a/gcc/configure.ac 2013-09-25 18:10:35.000000000 +0200
++++ b/gcc/configure.ac 2013-10-22 21:26:56.287602139 +0200
+@@ -5434,6 +5434,31 @@ if test x"${LINKER_HASH_STYLE}" != x; th
+ [The linker hash style])
+ fi
+
++# Check whether --enable-default-pie was given and target have the support.
++AC_ARG_ENABLE(default-pie,
++[AS_HELP_STRING([--enable-default-pie], [Enable Position independent executable as default.
++ If we have suppot for it when compiling and linking.
++ Linux targets supported i?86 and x86_64.])],
++enable_default_pie=$enableval,
++enable_default_pie=no)
++if test x$enable_default_pie = xyes; then
++ AC_MSG_CHECKING(if $target support to default with -fPIE and link with -pie as default)
++ enable_default_pie=no
++ case $target in
++ i?86*-*-linux* | x86_64*-*-linux*)
++ enable_default_pie=yes
++ ;;
++ *)
++ ;;
++ esac
++ AC_MSG_RESULT($enable_default_pie)
++fi
++if test x$enable_default_pie == xyes ; then
++ AC_DEFINE(ENABLE_DEFAULT_PIE, 1,
++ [Define if your target support default-pie and you have enable it.])
++fi
++AC_SUBST([enable_default_pie])
++
+ # Configure the subdirectories
+ # AC_CONFIG_SUBDIRS($subdirs)
+
+--- a/gcc/Makefile.in 2013-10-02 21:52:27.000000000 +0200
++++ b/gcc/Makefile.in 2013-10-24 17:46:22.055357122 +0200
+@@ -957,14 +957,23 @@ CONTEXT_H = context.h
+ # cross compiler which does not use the native headers and libraries.
+ INTERNAL_CFLAGS = -DIN_GCC @CROSS@
+
++# We don't want to compile the compiler with -fPIE, it make PCH fail.
++enable_default_pie = @enable_default_pie@
++ifeq ($(enable_default_pie),yes)
++NOPIE_CFLAGS = -fno-PIE
++else
++NOPIE_CFLAGS=
++endif
++
+ # This is the variable actually used when we compile. If you change this,
+ # you probably want to update BUILD_CFLAGS in configure.ac
+-ALL_CFLAGS = $(T_CFLAGS) $(CFLAGS-$@) \
++ALL_CFLAGS = $(NOPIE_CFLAGS) $(T_CFLAGS) $(CFLAGS-$@) \
+ $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) @DEFS@
+
+ # The C++ version.
+-ALL_CXXFLAGS = $(T_CFLAGS) $(CFLAGS-$@) $(CXXFLAGS) $(INTERNAL_CFLAGS) \
+- $(COVERAGE_FLAGS) $(NOEXCEPTION_FLAGS) $(WARN_CXXFLAGS) @DEFS@
++ALL_CXXFLAGS = $(NOPIE_CFLAGS) $(T_CFLAGS) $(CFLAGS-$@) $(CXXFLAGS) \
++ $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(NOEXCEPTION_FLAGS) \
++ $(WARN_CXXFLAGS) @DEFS@
+
+ # Likewise. Put INCLUDES at the beginning: this way, if some autoconf macro
+ # puts -I options in CPPFLAGS, our include files in the srcdir will always
+@@ -1805,6 +1814,7 @@ libgcc.mvars: config.status Makefile spe
+ echo GCC_CFLAGS = '$(GCC_CFLAGS)' >> tmp-libgcc.mvars
+ echo INHIBIT_LIBC_CFLAGS = '$(INHIBIT_LIBC_CFLAGS)' >> tmp-libgcc.mvars
+ echo TARGET_SYSTEM_ROOT = '$(TARGET_SYSTEM_ROOT)' >> tmp-libgcc.mvars
++ echo enable_default_pie = '$(enable_default_pie)' >> tmp-libgcc.mvars
+
+ mv tmp-libgcc.mvars libgcc.mvars
+
+@@ -3460,6 +3470,9 @@ site.exp: ./config.status Makefile
+ @if test "@enable_lto@" = "yes" ; then \
+ echo "set ENABLE_LTO 1" >> ./site.tmp; \
+ fi
++ @if test "@enable_default_pie@" = "yes" ; then \
++ echo "set ENABLE_DEFAULT_PIE 1" >> ./site.tmp; \
++ fi
+ # If newlib has been configured, we need to pass -B to gcc so it can find
+ # newlib's crt0.o if it exists. This will cause a "path prefix not used"
+ # message if it doesn't, but the testsuite is supposed to ignore the message -
+--- a/libgcc/Makefile.in 2011-11-22 04:01:02.000000000 +0100
++++ b/libgcc/Makefile.in 2012-06-29 00:15:04.534016511 +0200
+@@ -275,11 +275,17 @@ override CFLAGS := $(filter-out -fprofil
+ INTERNAL_CFLAGS = $(CFLAGS) $(LIBGCC2_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \
+ $(INCLUDES) @set_have_cc_tls@ @set_use_emutls@
+
++#Don't use -fPIE when compiling crtbegin/end.
++ifeq ($(enable_default_pie),yes)
++NOPIE_CFLAGS = -fno-PIE
++else
++NOPIE_CFLAGS=
++endif
+ # Options to use when compiling crtbegin/end.
+ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
+ -finhibit-size-directive -fno-inline -fno-exceptions \
+ -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
+- -fno-stack-protector \
++ -fno-stack-protector $(NOPIE_CFLAGS) \
+ $(INHIBIT_LIBC_CFLAGS)
+
+ # Extra flags to use when compiling crt{begin,end}.o.
diff --git a/upstream/gcc49_default_pie_testsuite.patch b/upstream/gcc49_default_pie_testsuite.patch
new file mode 100644
index 0000000..de3d16d
--- /dev/null
+++ b/upstream/gcc49_default_pie_testsuite.patch
@@ -0,0 +1,53 @@
+--- a/gcc/testsuite/gcc.dg/default-pie.c 2013-11-09 21:07:16.741479728 +0100
++++ b/gcc/testsuite/gcc.dg/default-pie.c 2013-11-09 21:05:07.801479218 +0100
+@@ -0,0 +1,12 @@
++/* { dg-do compile { target *-*-linux* *-*-gnu* } } */
++/* { dg-require-effective-target default_pie } */
++/* { dg-options "-O2" } */
++int foo (void);
++
++int
++main (void)
++{
++ return foo ();
++}
++
++/* { dg-final { scan-assembler "foo@PLT" } } */
+--- a/gcc/testsuite/g++.dg/other/anon5.C 2012-11-10 15:34:42.000000000 +0100
++++ b/gcc/testsuite/g++.dg/other/anon5.C 2013-11-09 14:49:52.281390127 +0100
+@@ -1,5 +1,6 @@
+ // PR c++/34094
+ // { dg-do link { target { ! { *-*-darwin* *-*-hpux* *-*-solaris2.* } } } }
++// { dg-skip-if "" { default_pie } { "*" } { "" } }
+ // { dg-options "-g" }
+ // Ignore additional message on powerpc-ibm-aix
+ // { dg-prune-output "obtain more information" } */
+--- a/gcc/testsuite/lib/target-supports.exp 2013-10-01 11:18:30.000000000 +0200
++++ b/gcc/testsuite/lib/target-supports.exp 2013-10-25 22:01:46.743388469 +0200
+@@ -474,6 +474,11 @@ proc check_profiling_available { test_wh
+ }
+ }
+
++ # Profiling don't work with default -fPIE -pie.
++ if { [check_effective_target_default_pie] } {
++ return 0
++ }
++
+ # Support for -p on solaris2 relies on mcrt1.o which comes with the
+ # vendor compiler. We cannot reliably predict the directory where the
+ # vendor compiler (and thus mcrt1.o) is installed so we can't
+@@ -839,6 +844,14 @@ proc check_effective_target_pie { } {
+ return 0
+ }
+
++# Return 1 if -pie, -fPIE are default enable, 0 otherwise.
++
++proc check_effective_target_default_pie { } {
++ global ENABLE_DEFAULT_PIE
++ return [info exists ENABLE_DEFAULT_PIE]
++ return 0
++}
++
+ # Return true if the target supports -mpaired-single (as used on MIPS).
+
+ proc check_effective_target_mpaired_single { } {
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2013-11-13 21:00 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2013-11-13 21:00 UTC (permalink / raw
To: gentoo-commits
commit: 081253a1029a71cc9a10af9a96058e9c9d33f945
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 13 20:59:55 2013 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Wed Nov 13 20:59:55 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=081253a1
Update the changlog for gcc4.9 upstream
---
upstream/gcc49_default_pie_Changlog.txt | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/upstream/gcc49_default_pie_Changlog.txt b/upstream/gcc49_default_pie_Changlog.txt
index 59ce7d5..dac21e0 100644
--- a/upstream/gcc49_default_pie_Changlog.txt
+++ b/upstream/gcc49_default_pie_Changlog.txt
@@ -15,8 +15,7 @@
* testsuite/gcc.dg/other/anon5.C: Add skip test as it fail to link
on effective_target default_pie.
* testsuite/lib/target-supports.exp (check_profiling_available):
- We can't use profiling on effective target default_pie.
- * testsuite/lib/target-supports.exp (check_effective_target_pie):
- Add check_effective_target_default_pie.
+ We can't use profiling on effective target default_pie.
+ (check_effective_target_pie): Add check_effective_target_default_pie.
/libgcc
* Makefile.in: Disable PIE when building the crtbegin/end files.
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/
@ 2013-11-13 21:13 Magnus Granberg
0 siblings, 0 replies; 22+ messages in thread
From: Magnus Granberg @ 2013-11-13 21:13 UTC (permalink / raw
To: gentoo-commits
commit: abb126ad0df0aa7ee373e4254452a1d944c20991
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 13 21:13:21 2013 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Wed Nov 13 21:13:21 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=commit;h=abb126ad
Update the doc for gcc4.9 upstream
---
upstream/gcc49_default_pie_doc.patch | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/upstream/gcc49_default_pie_doc.patch b/upstream/gcc49_default_pie_doc.patch
index 961d75f..d10c930 100644
--- a/upstream/gcc49_default_pie_doc.patch
+++ b/upstream/gcc49_default_pie_doc.patch
@@ -1,5 +1,5 @@
---- gcc-4.9-20131006/gcc/doc/install.texi 2013-10-01 19:29:40.000000000 +0200
-+++ gcc-4.9-20131006-work/gcc/doc/install.texi 2013-11-09 15:40:20.831402110 +0100
+--- a/gcc/doc/install.texi 2013-10-01 19:29:40.000000000 +0200
++++ b/gcc/doc/install.texi 2013-11-09 15:40:20.831402110 +0100
@@ -1421,6 +1421,11 @@ do a @samp{make -C gcc gnatlib_and_tools
Specify that the run-time libraries for stack smashing protection
should not be built.
@@ -12,8 +12,8 @@
@item --disable-libquadmath
Specify that the GCC quad-precision math library should not be built.
On some systems, the library is required to be linkable when building
---- gcc-4.8-20120302/gcc/doc/invoke.texi 2012-03-01 10:57:59.000000000 +0100
-+++ gcc-4.8-20120302-work/gcc/doc/invoke.texi 2012-07-30 00:57:03.766847851 +0200
+--- a/gcc/doc/invoke.texi 2012-03-01 10:57:59.000000000 +0100
++++ b/gcc/doc/invoke.texi 2012-07-30 00:57:03.766847851 +0200
@@ -9457,6 +9480,12 @@ For predictable results, you must also s
that were used to generate code (@option{-fpie}, @option{-fPIE},
or model suboptions) when you specify this option.
^ permalink raw reply related [flat|nested] 22+ messages in thread
end of thread, other threads:[~2013-11-13 21:14 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-13 21:00 [gentoo-commits] proj/hardened-gccpatchset:master commit in: upstream/ Magnus Granberg
-- strict thread matches above, loose matches on Subject: below --
2013-11-13 21:13 Magnus Granberg
2013-11-10 10:23 Magnus Granberg
2012-10-07 16:54 Magnus Granberg
2012-10-07 16:50 Magnus Granberg
2012-08-27 23:34 Magnus Granberg
2012-08-22 19:19 Magnus Granberg
2012-08-21 20:10 Magnus Granberg
2012-08-08 16:05 Magnus Granberg
2012-08-01 18:35 Magnus Granberg
2012-07-30 21:05 Magnus Granberg
2012-07-25 15:09 Magnus Granberg
2012-04-08 13:00 Magnus Granberg
2012-04-08 12:36 Magnus Granberg
2011-06-24 14:45 Magnus Granberg
2011-06-24 14:32 Magnus Granberg
2011-06-24 14:15 Magnus Granberg
2011-06-24 13:51 Magnus Granberg
2011-06-24 9:36 Magnus Granberg
2011-06-23 18:15 Magnus Granberg
2011-06-22 0:27 Magnus Granberg
2011-04-27 11:12 Magnus Granberg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox