aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Granberg <zorry@gentoo.org>2012-10-07 18:46:30 +0200
committerMagnus Granberg <zorry@gentoo.org>2012-10-07 18:46:30 +0200
commita82e19b9017f887c1b04d39c1e75f15e66242d73 (patch)
tree955b2c5d0bdc574e8e5a658dbf5b99a27073fab9
parentAdd configure.ac patches (diff)
downloadhardened-gccpatchset-a82e19b9017f887c1b04d39c1e75f15e66242d73.tar.gz
hardened-gccpatchset-a82e19b9017f887c1b04d39c1e75f15e66242d73.tar.bz2
hardened-gccpatchset-a82e19b9017f887c1b04d39c1e75f15e66242d73.zip
Update with some cross-compile fixes
-rw-r--r--gcc-4.7.0/piepatch/01_all_gcc47_configure.ac.patch63
-rw-r--r--gcc-4.7.0/piepatch/01_all_gcc47_configure.patch182
-rw-r--r--upstream/Changelog.txt28
-rw-r--r--upstream/Makefile.in.patch100
-rw-r--r--upstream/config.in.patch32
-rw-r--r--upstream/config_all.patch35
-rw-r--r--upstream/config_i386.patch66
-rw-r--r--upstream/configure.ac.patch158
-rw-r--r--upstream/gcc_doc.patch48
-rw-r--r--upstream/testsuite-hardening-format.patch87
-rw-r--r--upstream/testsuite-hardening-fortify.patch44
-rw-r--r--upstream/testsuite-hardening-piessp.patch98
-rw-r--r--upstream/testsuite-hardening-printf-types.patch590
13 files changed, 372 insertions, 1159 deletions
diff --git a/gcc-4.7.0/piepatch/01_all_gcc47_configure.ac.patch b/gcc-4.7.0/piepatch/01_all_gcc47_configure.ac.patch
index ed49cd9..8b4c72e 100644
--- a/gcc-4.7.0/piepatch/01_all_gcc47_configure.ac.patch
+++ b/gcc-4.7.0/piepatch/01_all_gcc47_configure.ac.patch
@@ -1,4 +1,4 @@
-2011-04-27 Magnus Granberg <zorry@gentoo.org>
+2012-10-04 Magnus Granberg <zorry@gentoo.org>
* configure.ac Add --enable-esp. Add -fno-stack-protector
to stage1_cflags.
@@ -15,14 +15,14 @@
+# Check whether --enable-esp was given and target have the support.
+AC_ARG_ENABLE([esp],
+[AS_HELP_STRING([--enable-esp],
-+ [Enable Stack protector, Position independent executable as
-+ default if we have suppot for it when compiling
-+ and link with -z relro and -z now as default.
-+ Linux targets supported i*86, x86_64, x86_x32, powerpc, powerpc64, ia64 and arm.])],
++ [Enable Stack protector and Position independent executable as
++ default if we have suppot for it when compiling
++ and link with -z relro and -z now as default.
++ Linux targets supported i*86, x86_64, x32, powerpc, powerpc64, ia64 and arm.])],
+[
+ case $target in
-+ i?86*-*-linux* | x86_??*-*-linux* | powerpc-*-linux* | powerpc64-*-linux* | arm*-*-linux* | ia64-*-linux*)
-+ enable_espf=yes
++ i?86*-*-linux* | x86_64-*-linux* | powerpc-*-linux* | powerpc64-*-linux* | arm*-*-linux* | ia64-*-linux*)
++ enable_esp=yes
+ ;;
+ *)
+ AC_MSG_WARN([*** --enable-esp is not supported on this $target target.])
@@ -48,7 +48,7 @@
# 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-10-02 17:39:15.649526241 +0200
-@@ -5130,6 +5237,88 @@ if test x"${LINKER_HASH_STYLE}" != x; th
+@@ -5130,6 +5237,85 @@ if test x"${LINKER_HASH_STYLE}" != x; th
[The linker hash style])
fi
@@ -59,17 +59,16 @@
+# Check whether --enable-esp was given and target have the support.
+AC_ARG_ENABLE([esp],
+[AS_HELP_STRING([--enable-esp],
-+ [Enable Stack protector, Position independent executable and
-+ Fortify_sources as default if we have suppot for it when compiling
-+ and link -z now as default.
-+ Linux targets supported i*86, x86_64, x86_x32, powerpc, powerpc64, ia64 and arm])],
-+ set_enable_espf=$enableval,
-+ set_enable_espf=no)
-+if test $set_enable_esp = yes ; then
++ [Enable Stack protector and Position independent executable as
++ default if we have suppot for it when compiling
++ and link with -z relro and -z now as default.
++ Linux targets supported i*86, x86_64, x32, powerpc, powerpc64, ia64 and arm.])],
++ enable_esp=$enableval,
++ enable_esp=no)
++if test $enable_esp = yes ; then
+ AC_MSG_CHECKING(if $target support esp)
-+if test $set_enable_esp = yes ; then
+ case "$target" in
-+ i?86*-*-linux* | x86_??*-*-linux* | powerpc-*-linux* | powerpc64-*-linux* | arm*-*-linux* | ia64-*-linux*)
++ i?86*-*-linux* | x86_64-*-linux* | powerpc-*-linux* | powerpc64-*-linux* | arm*-*-linux* | ia64-*-linux*)
+ enable_esp=yes
+ AC_DEFINE(ENABLE_ESP, 1,
+ [Define if your target support esp and you have enable it.])
@@ -78,26 +77,22 @@
+ enable_esp=no
+ ;;
+ esac
-+else
-+ enable_esp=no
-+fi
+AC_MSG_RESULT($enable_esp)
+fi
+AC_SUBST([enable_esp])
+if test $enable_esp = yes ; then
-+
+ AC_MSG_CHECKING(if we can default to use -fstack-protector-all)
+ ssp_link_test=no
+ if test x$gcc_cv_libc_provides_ssp = xyes && test x$set_have_as_tls = xyes; 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
++ $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
@@ -110,7 +105,8 @@
+ [AC_MSG_RESULT([no]); enable_esp_ssp=no])
+ CFLAGS="$saved_CFLAGS"
+ else
-+ [AC_MSG_RESULT([no]); enable_esp_ssp=no]
++ enable_esp_ssp=no
++ AC_MSG_RESULT($enable_esp_ssp)
+ fi
+ if test $enable_esp_ssp = yes ; then
+ AC_DEFINE(ENABLE_ESP_SSP, 1,
@@ -119,20 +115,21 @@
+ AC_MSG_CHECKING(checking for crtbeginP.o support)
+ if test x$enable_esp = xyes ; then
+ case "$target" in
-+ ia64*-*-linux*)
++ ia64*-*-linux*)
+ enable_crtbeginP=no ;;
+ *-*-linux*)
+ if test x$gcc_cv_ld_pie = xyes && test x$lt_cv_prog_compiler_static_works = xyes; then
+ enable_crtbeginP=yes
+ AC_DEFINE(ENABLE_CRTBEGINP, 1,
+ [Define if your compiler will support crtbeginP.])
-+ fi
++ fi
+ ;;
-+ *) enable_crtbeginP=no ;;
++ *) enable_crtbeginP=no ;;
+ esac
+ fi
+ AC_MSG_RESULT($enable_crtbeginP)
+fi
++AC_SUBST([enable_crtbeginP])
+
# Configure the subdirectories
# AC_CONFIG_SUBDIRS($subdirs)
diff --git a/gcc-4.7.0/piepatch/01_all_gcc47_configure.patch b/gcc-4.7.0/piepatch/01_all_gcc47_configure.patch
index 1a48f49..f0ddc7e 100644
--- a/gcc-4.7.0/piepatch/01_all_gcc47_configure.patch
+++ b/gcc-4.7.0/piepatch/01_all_gcc47_configure.patch
@@ -1,11 +1,53 @@
-2012-04-06 Magnus Granberg <zorry@gentoo.org>
+2012-10-04 Magnus Granberg <zorry@gentoo.org>
- * configure Add --enable-esp. Add-fno-stack-protector
+ * configure.ac Add --enable-esp. Add -fno-stack-protector
to stage1_cflags.
- * gcc/configure Add --enable-esp and check if SSP works.
+ * configure Likewise
+ * gcc/configure.ac Add --enable-esp and check if SSP works.
Define ENABLE_ESP ENABLE_ESP_SSP.
Check if we support crtbeginP and define ENABLE_CRTBEGINP.
+ * gcc/configure Likewise
+--- 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,25 @@ if test "${ENABLE_LIBADA}" != "yes" ; th
+ noconfigdirs="$noconfigdirs gnattools"
+ fi
+
++# Check whether --enable-esp was given and target have the support.
++AC_ARG_ENABLE([esp],
++[AS_HELP_STRING([--enable-esp],
++ [Enable Stack protector and Position independent executable as
++ default if we have suppot for it when compiling
++ and link with -z relro and -z now as default.
++ Linux targets supported i*86, x86_64, x32, powerpc, powerpc64, ia64 and arm.])],
++[
++ case $target in
++ i?86*-*-linux* | x86_64-*-linux* | powerpc-*-linux* | powerpc64-*-linux* | arm*-*-linux* | ia64-*-linux*)
++ enable_espf=yes
++ ;;
++ *)
++ AC_MSG_WARN([*** --enable-esp is not supported on this $target target.])
++ ;;
++ esac
++])
++AC_SUBST([enable_esp])
++
+ AC_ARG_ENABLE(libssp,
+ [AS_HELP_STRING([--enable-libssp], [build libssp directory])],
+ ENABLE_LIBSSP=$enableval,
+@@ -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_esp = xyes; then
++ stage1_cflags="$stage1_cflags -fno-stack-protector"
++fi
++
+ AC_SUBST(stage1_cflags)
+
+ # Enable --enable-checking in stage1 of the compiler.
--- a/configure 2011-12-22 21:51:34.700589641 +0100
+++ b/configure 2011-12-22 22:17:32.855636066 +0100
@@ -671,6 +671,7 @@ LDFLAGS
@@ -28,11 +70,11 @@
--disable-libquadmath-support
disable libquadmath support for Fortran
--enable-libada build libada directory
-+ --enable-esp Enable Stack protector, Position independent
++ --enable-esp Enable Stack protector and Position independent
+ executable as default if we have suppot for it when
+ compiling and link with -z relro and -z now as
-+ default. Linux targets supported i*86, x86_64,
-+ x86_x32, powerpc, powerpc64, ia64 and arm.
++ default. Linux targets supported i*86, x86_64, x32,
++ powerpc, powerpc64, ia64 and arm.
--enable-libssp build libssp directory
--enable-static-libjava[=ARG]
build static libjava [default=no]
@@ -45,7 +87,7 @@
+if test "${enable_esp+set}" = set; then :
+ enableval=$enable_esp;
+ case $target in
-+ i?86*-*-linux* | x86_??*-*-linux* | powerpc-*-linux* | powerpc64-*-linux* | arm*-*-linux* | ia64-*-linux*)
++ i?86*-*-linux* | x86_64-*-linux* | powerpc-*-linux* | powerpc64-*-linux* | arm*-*-linux* | ia64-*-linux*)
+ enable_esp=yes
+ ;;
+ *)
@@ -73,14 +115,101 @@
# 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-10-02 17:39:15.649526241 +0200
+@@ -5130,6 +5237,84 @@ if test x"${LINKER_HASH_STYLE}" != x; th
+ [The linker hash style])
+ fi
+
++# --------------
++# Esp checks
++# --------------
++
++# Check whether --enable-esp was given and target have the support.
++AC_ARG_ENABLE([esp],
++[AS_HELP_STRING([--enable-esp],
++ [Enable Stack protector and Position independent executable as
++ default if we have suppot for it when compiling
++ and link with -z relro and -z now as default.
++ Linux targets supported i*86, x86_64, x32, powerpc, powerpc64, ia64 and arm.])],
++ enable_esp=$enableval,
++ enable_esp=no)
++if test $enable_esp = yes ; then
++ AC_MSG_CHECKING(if $target support esp)
++ case "$target" in
++ i?86*-*-linux* | x86_64-*-linux* | powerpc-*-linux* | powerpc64-*-linux* | arm*-*-linux* | ia64-*-linux*)
++ enable_esp=yes
++ AC_DEFINE(ENABLE_ESP, 1,
++ [Define if your target support esp and you have enable it.])
++ ;;
++ *)
++ enable_esp=no
++ ;;
++ esac
++AC_MSG_RESULT($enable_esp)
++fi
++AC_SUBST([enable_esp])
++if test $enable_esp = yes ; then
++ AC_MSG_CHECKING(if we can default to use -fstack-protector-all)
++ ssp_link_test=no
++ if test x$gcc_cv_libc_provides_ssp = xyes && test x$set_have_as_tls = xyes; 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-all -Werror"
++ AC_TRY_LINK(,,
++ [AC_MSG_RESULT([yes]); enable_esp_ssp=yes],
++ [AC_MSG_RESULT([no]); enable_esp_ssp=no])
++ CFLAGS="$saved_CFLAGS"
++ else
++ [AC_MSG_RESULT([no]); enable_esp_ssp=no]
++ fi
++ if test $enable_esp_ssp = yes ; then
++ AC_DEFINE(ENABLE_ESP_SSP, 1,
++ [Define if your compiler will default to use -fstack-protector-all.])
++ fi
++ AC_MSG_CHECKING(checking for crtbeginP.o support)
++ if test x$enable_esp = xyes ; then
++ case "$target" in
++ ia64*-*-linux*)
++ enable_crtbeginP=no ;;
++ *-*-linux*)
++ if test x$gcc_cv_ld_pie = xyes && test x$lt_cv_prog_compiler_static_works = xyes; then
++ enable_crtbeginP=yes
++ AC_DEFINE(ENABLE_CRTBEGINP, 1,
++ [Define if your compiler will support crtbeginP.])
++ fi
++ ;;
++ *) enable_crtbeginP=no ;;
++ esac
++ fi
++ AC_MSG_RESULT($enable_crtbeginP)
++fi
++AC_SUBST([enable_crtbeginP])
++
+ # Configure the subdirectories
+ # AC_CONFIG_SUBDIRS($subdirs)
+
--- a/gcc/configure 2011-12-31 12:45:24.449810238 +0100
+++ b/gcc/configure 2011-12-31 00:43:40.000000000 +0100
@@ -600,6 +600,8 @@ ac_includes_default="\
ac_subst_vars='LTLIBOBJS
LIBOBJS
-+enable_esp
+enable_crtbeginP
++enable_esp
enable_plugin
pluginlibs
CLOOGINC
@@ -96,15 +225,15 @@
--enable-plugin enable plugin support
--disable-libquadmath-support
disable libquadmath support for Fortran
-+ --enable-esp Enable Stack protector, Position independent
++ --enable-esp Enable Stack protector and Position independent
+ executable and Fortify_sources as default if we have
+ suppot for it when compiling and link -z now as
-+ default. Linux targets supported i*86, x86_64,
-+ x86_x32, powerpc, powerpc64, ia64, mips and arm
++ default. Linux targets supported i*86, x86_64, x32,
++ powerpc, powerpc64, ia64, mips and arm.
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
-@@ -27290,6 +27411,113 @@ _ACEOF
+@@ -27290,6 +27145,110 @@ _ACEOF
fi
@@ -115,17 +244,16 @@
+# Check whether --enable-esp was given and target have the support.
+# Check whether --enable-esp was given.
+if test "${enable_esp+set}" = set; then :
-+ enableval=$enable_esp; set_enable_esp=$enableval
++ enableval=$enable_esp; enable_esp=$enableval
+else
-+ set_enable_esp=no
++ enable_esp=no
+fi
+
-+if test $set_enable_esp = yes ; then
++if test $enable_esp = yes ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $target support esp" >&5
+$as_echo_n "checking if $target support esp... " >&6; }
-+if test $set_enable_esp = yes ; then
+ case "$target" in
-+ i?86*-*-linux* | x86_??*-*-linux* | powerpc-*-linux* | powerpc64-*-linux* | arm*-*-linux* | ia64-*-linux*)
++ i?86*-*-linux* | x86_64-*-linux* | powerpc-*-linux* | powerpc64-*-linux* | arm*-*-linux* | ia64-*-linux*)
+ enable_esp=yes
+
+$as_echo "#define ENABLE_ESP 1" >>confdefs.h
@@ -135,23 +263,19 @@
+ enable_esp=no
+ ;;
+ esac
-+else
-+ enable_esp=no
-+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_esp" >&5
+$as_echo "$enable_esp" >&6; }
+fi
+
+if test $enable_esp = yes ; then
-+
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can default to use -fstack-protector" >&5
-+$as_echo_n "checking if we can default to use -fstack-protector... " >&6; }
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can default to use -fstack-protector-all" >&5
++$as_echo_n "checking if we can default to use -fstack-protector-all... " >&6; }
+ ssp_link_test=no
+ if test x$gcc_cv_libc_provides_ssp = xyes && test x$set_have_as_tls = xyes; 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])' \
++ $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
@@ -163,7 +287,7 @@
+ fi
+ if test x$ssp_link_test=xyes ; then
+ saved_CFLAGS="$CFLAGS"
-+ CFLAGS="$CFLAGS -O2 -fstack-protector -Werror"
++ CFLAGS="$CFLAGS -O2 -fstack-protector-all -Werror"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
@@ -186,16 +310,18 @@
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$saved_CFLAGS"
+ else
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
+ enable_esp_ssp=no
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_esp_ssp" >&5
++$as_echo "$enable_esp_ssp" >&6; }
+ fi
+ if test $enable_esp_ssp = yes ; then
+
+$as_echo "#define ENABLE_ESP_SSP 1" >>confdefs.h
+
++ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking checking for crtbeginP.o support" >&5
+$as_echo_n "checking checking for crtbeginP.o support... " >&6; }
++ if test x$enable_esp = xyes ; then
+ case "$target" in
+ ia64*-*-linux*)
+ enable_crtbeginP=no ;;
@@ -212,9 +338,9 @@
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_crtbeginP" >&5
+$as_echo "$enable_crtbeginP" >&6; }
-+
+fi
+
++
# Configure the subdirectories
# AC_CONFIG_SUBDIRS($subdirs)
diff --git a/upstream/Changelog.txt b/upstream/Changelog.txt
index d8e4764..f263591 100644
--- a/upstream/Changelog.txt
+++ b/upstream/Changelog.txt
@@ -1,23 +1,26 @@
-2012-08-24 Magnus Granberg <zorry@gentoo.org
+2012-09-10 Magnus Granberg <zorry@gentoo.org
* configure.ac Add new configure options espf.
- * Makefile.in Add -fno-stack-protector when
+ * Makefile.tpl Add -fno-stack-protector when
needed for espf.
+ * configure Regenerated
+ * Makefile.in Likewise.
gcc/
* configure.ac Add new configure options espf.
+ Add -Wno-format-security to warn flags.
+ * configure Regenerated
+ * config.in Regenerated
* 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,
+ * config/gnu-user.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-user64.h Define DRIVER_SELF_SPECS.
* config/i386/gnu-user.h Add ESPF_EXTRA_SPECS to
+ SUBTARGET_EXTRA_SPECS when needed. Define
+ DRIVER_SELF_SPECS.
+ * config/i386/i386.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
@@ -27,8 +30,13 @@
libgcc/
* libgcc/Makefile.in Add -fno-PIE when needed for
espf.
+ libcpp/
+ * configure.ac Add -Wno-format-security to warn
+ flags.
+ * configure Regenerated
+ * config.in Regenerated
-2012-08-26 Magnus Granberg <zorry@gentoo.org>
+2012-09-10 Magnus Granberg <zorry@gentoo.org>
Kees Cook <kees@ubuntu.com>
gcc/doc/
diff --git a/upstream/Makefile.in.patch b/upstream/Makefile.in.patch
deleted file mode 100644
index 9b3c173..0000000
--- a/upstream/Makefile.in.patch
+++ /dev/null
@@ -1,100 +0,0 @@
---- a/Makefile.in 2012-01-02 11:59:04.000000000 +0100
-+++ b/Makefile.in 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.
diff --git a/upstream/config.in.patch b/upstream/config.in.patch
deleted file mode 100644
index 7c1f849..0000000
--- a/upstream/config.in.patch
+++ /dev/null
@@ -1,32 +0,0 @@
---- 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 @@
- #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 -fPIE -pie. */
-+#ifndef USED_FOR_TARGET
-+#undef ENABLE_ESPF_PIE
-+#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
diff --git a/upstream/config_all.patch b/upstream/config_all.patch
deleted file mode 100644
index 3fe4824..0000000
--- a/upstream/config_all.patch
+++ /dev/null
@@ -1,35 +0,0 @@
---- 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,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 \
-+ "%{pie|fpic|fPIC|fpie|fPIE|fno-pic|fno-PIC|fno-pie|fno-PIE| \
-+ shared|static|nostdlib|nostartfiles:;:-fPIE -pie}"
-+#else
-+#define ESPF_GCC_PIE_SPEC ""
-+#endif
-+#ifdef ENABLE_ESPF_SSP
-+#define ESPF_GCC_SSP_SPEC \
-+ "%{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}"
-+#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 f8c10cb..b142ccf 100644
--- a/upstream/config_i386.patch
+++ b/upstream/config_i386.patch
@@ -1,24 +1,36 @@
---- 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,8 @@ along with GCC; see the file COPYING3.
+--- a/gcc/config/gnu-user.h 2011-04-28 18:49:49.000000000 +0200
++++ b/gcc/config/gnu-user.h 2012-09-08 18:22:41.020729353 +0200
+@@ -98,3 +98,31 @@ see the files COPYING3 and COPYING.RUNTI
- #define GNU_USER_LINK_EMULATION "elf_i386"
- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+ #define TARGET_C99_FUNCTIONS 1
+ #define TARGET_HAS_SINCOS 1
+
-+/* Needed by configure --enable-espf */
+#ifdef ENABLE_ESPF
-+#define DRIVER_SELF_SPECS ESPF_DRIVER_SELF_SPECS
++#ifdef ENABLE_ESPF_PIE
++#define ESPF_GCC_PIE_SPEC \
++"%{pie|fpic|fPIC|fpie|fPIE|fno-pic|fno-PIC|fno-pie|fno-PIE| \
++shared|static|nostdlib|nostartfiles:;:-fPIE -pie}"
++#else
++#define ESPF_GCC_PIE_SPEC ""
+#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,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
++#ifdef ENABLE_ESPF_SSP
++#define ESPF_GCC_SSP_SPEC \
++"%{nostdlib|nodefaultlibs|fno-stack-protector| \
++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}"
++#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
--- 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
@@ -26,7 +38,7 @@
"--32 %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
#undef SUBTARGET_EXTRA_SPECS
-+#if def ENABLE_ESPF
++#ifdef ENABLE_ESPF
#define SUBTARGET_EXTRA_SPECS \
{ "link_emulation", GNU_USER_LINK_EMULATION },\
- { "dynamic_linker", GNU_USER_DYNAMIC_LINKER }
@@ -40,6 +52,24 @@
#undef LINK_SPEC
#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
+@@ -202,3 +159,7 @@ along with GCC; see the file COPYING3.
+ #define TARGET_CAN_SPLIT_STACK
+ #define TARGET_THREAD_SPLIT_STACK_OFFSET 0x30
+ #endif
++
++#ifdef ENABLE_ESPF
++#define DRIVER_SELF_SPECS ESPF_DRIVER_SELF_SPECS
++#endif
+--- gcc-4.8-20120302/gcc/config/i386/gnu-user64.h 2012-06-30 00:21:30.000000000 +0200
++++ gcc-4.8-20120302-work/gcc/config/i386/gnu-user64.h 2012-09-08 18:14:03.683713936 +0200
+@@ -94,3 +94,7 @@ see the files COPYING3 and COPYING.RUNTI
+
+ #undef WCHAR_TYPE
+ #define WCHAR_TYPE (TARGET_LP64 ? "int" : "long int")
++
++#ifdef ENABLE_ESPF
++#define DRIVER_SELF_SPECS ESPF_DRIVER_SELF_SPECS
++#endif
--- a/gcc/config/i386/i386.h 2011-11-24 23:11:12.000000000 +0100
+++ b/gcc/config/i386/i386.h 2012-07-09 14:21:24.575276517 +0200
@@ -617,13 +617,16 @@ enum target_cpu_default
diff --git a/upstream/configure.ac.patch b/upstream/configure.ac.patch
index 8fc9730..9d6f2bc 100644
--- a/upstream/configure.ac.patch
+++ b/upstream/configure.ac.patch
@@ -7,16 +7,16 @@
+# Check whether --enable-espf was given and target have the support.
+AC_ARG_ENABLE([espf],
+[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, x32 and x86_64.
-+ @<:@ARG={all,pie,ssp,no}@:>@ ])],
++ [Enable Stack protector, Position independent executable and
++ Fortify_source as default. If we have suppot for it when compiling.
++ Linux targets supported i?86 and x86_64.
++ @<:@ARG={all,pie,ssp,no}@:>@ ])],
+set_enable_espf=$enableval,
+set_enable_espf=no)
+case "${set_enable_espf}" in
+ all|pie|ssp)
+ case $target in
-+ i?86*-*-linux* | x86_??*-*-linux*)
++ i?86*-*-linux* | x86_64*-*-linux*)
+ enable_espf=yes
+ ;;
+ *)
@@ -51,7 +51,17 @@
# 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,156 @@ if test x"${LINKER_HASH_STYLE}" != x; th
+@@ -342,7 +342,8 @@ GCC_STDINT_TYPES
+ # So, we only use -pedantic if we can disable those warnings.
+
+ ACX_PROG_CC_WARNING_OPTS(
+- m4_quote(m4_do([-W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual])), [loose_warn])
++ m4_quote(m4_do([-W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual \
++ -Wno-format-security])), [loose_warn])
+ ACX_PROG_CC_WARNING_OPTS(
+ m4_quote(m4_do([-Wstrict-prototypes -Wmissing-prototypes])),
+ [c_loose_warn])
+@@ -5193,6 +5194,167 @@ if test x"${LINKER_HASH_STYLE}" != x; th
[The linker hash style])
fi
@@ -62,24 +72,23 @@
+# Check whether --enable-espf was given and target have the support.
+AC_ARG_ENABLE([espf],
+[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, x32 and x86_64.
-+ @<:@ARG={all,pie,ssp,no}@:>@ ])],
++ [Enable Stack protector, Position independent executable and
++ Fortify_sources as default. If we have suppot for it when compiling.
++ Linux targets supported x86_64. @<:@ARG={all,pie,ssp,no}@:>@ ])],
+set_enable_espf=$enableval,
+set_enable_espf=no)
+case "${set_enable_espf}" in
+ all|pie|ssp)
+ AC_MSG_CHECKING(if $target support espf)
+ case $target in
-+ i?86*-*-linux* | x86_??*-*-linux*)
++ i?86*-*-linux* | x86_64-*-linux*)
+ enable_espf=yes
+ AC_DEFINE(ENABLE_ESPF, 1,
-+ [Define if your target support espf and you have enable it.])
++ [Define if your target support espf and you have enable it.])
+ ;;
+ *)
+ enable_espf=no
-+ AC_MSG_WARN([*** --enable-espf is not supported on this $target target.])
++ AC_MSG_WARN([*** --enable-espf is not supported on this $target target.])
+ ;;
+ esac
+ AC_MSG_RESULT($enable_espf)
@@ -92,32 +101,32 @@
+ ;;
+esac
+AC_SUBST([enable_espf])
-+if test x$enable_espf = xyes ; then
++if test $enable_espf = yes ; then
+
-+# Check for FORTIFY_SOURCE support in target C library.
-+ AC_CACHE_CHECK(for _FORTIFY_SOURCE support in target C library,
++# 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.8 and later provides _FORTIFY_SOURCE.
-+ # uClibc 0.9.32 and later provides _FORTIFY_SOURCE.
++ [# 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
++ 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
-+ 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
++ $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; then
++ gcc_cv_libc_provides_fortify=yes
++ else
++ gcc_cv_libc_provides_fortify=no
++ fi
++ fi
+ fi]
+ ;;
+ *) gcc_cv_libc_provides_fortify=no ;;
@@ -126,18 +135,22 @@
+ AC_MSG_CHECKING(if we can default to use -fPIE and link with -pie)
+ enable_espf_pie=no
+ if test x$gcc_cv_ld_pie = xyes ;then
-+ if test x$set_enable_espf = xall || test x$set_enable_espf = xpie; 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],)
-+ LDFLAGS="$saved_LDFLAGS"
-+ CFLAGS="$saved_CFLAGS"
++ if test x$set_enable_espf = xall || test x$set_enable_espf = pie; then
++ if test x$cross_compiling = xno ; 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],)
++ LDFLAGS="$saved_LDFLAGS"
++ CFLAGS="$saved_CFLAGS"
++ else
++ AC_MSG_RESULT([yes])
++ fi
+ fi
+ fi
-+ if test x$enable_espf_pie = xyes ; then
++ 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.])
+ else
@@ -148,41 +161,46 @@
+ ssp_link_test=no
+ enable_espf_ssp=no
+ if test x$gcc_cv_libc_provides_ssp = xyes && test x$set_have_as_tls = xyes; 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
++ 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
++ if test x$ssp_link_test=xyes;then
+ if test x$set_enable_espf = xall || test x$set_enable_espf = xssp; then
-+ saved_CFLAGS="$CFLAGS"
-+ CFLAGS="$CFLAGS -O2 -fstack-protector -Werror"
-+ AC_TRY_LINK(,,
-+ [AC_MSG_RESULT([yes]); enable_espf_ssp=yes],)
-+ CFLAGS="$saved_CFLAGS"
++ if test x$cross_compiling = xno ; then
++ saved_CFLAGS="$CFLAGS"
++ CFLAGS="$CFLAGS -O2 -fstack-protector -Werror"
++ AC_TRY_LINK(,,
++ [AC_MSG_RESULT([yes]); enable_espf_ssp=yes],)
++ CFLAGS="$saved_CFLAGS"
++ else
++ enable_espf_ssp=yes
++ AC_MSG_RESULT($enable_espf_ssp)
++ fi
+ fi
+ fi
-+ if test x$enable_espf_ssp = xyes ; then
++ if test $enable_espf_ssp = yes ; then
+ AC_DEFINE(ENABLE_ESPF_SSP, 1,
+ [Define if your compiler will default to use -fstack-protector.])
+ else
+ AC_MSG_RESULT([no])
+ fi
+
-+ AC_MSG_CHECKING(if we can default to use -D_FORTIFY_SOURCE=2)
-+ if test x$gcc_cv_libc_provides_fortify = xyes; then
++ AC_MSG_CHECKING(if the compiler default to use -D_FORTIFY_SOURCES=2)
++ if test x$gcc_cv_libc_provides_fortify = xyes && test x$cross_compiling = xno ; then
+ saved_CFLAGS="$CFLAGS"
+ saved_CPPFLAGS="$CPPFLAGS"
+ CFLAGS="$CFLAGS -O2 -Werror"
-+ CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=2"
++ CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCES=2"
+ AC_TRY_LINK([
+ #include <sys/types.h>
+ #include <sys/stat.h>
@@ -194,13 +212,16 @@
+ [AC_MSG_RESULT([yes]); enable_espf_fortify=yes])
+ CFLAGS="$saved_CFLAGS"
+ CPPFLAGS="$saved_CPPFLAGS"
++ elif test x$gcc_cv_libc_provides_fortify = xyes && test x$cross_compiling = xyes ; then
++ AC_MSG_RESULT([yes])
++ enable_espf_fortify=yes
+ else
+ AC_MSG_RESULT([no])
+ enable_espf_fortify=no
+ fi
-+ if test x$enable_espf_fortify = xyes ; then
++ if test $enable_espf_fortify = yes ; then
+ AC_DEFINE(ENABLE_ESPF_FORTIFY, 1,
-+ [Define if your compiler will default to use -D_FORTIFY_SOURCE=2.])
++ [Define if your compiler will default to use -D_FORTIFY_SOURCES=2.])
+ fi
+
+fi
@@ -208,3 +229,14 @@
# Configure the subdirectories
# AC_CONFIG_SUBDIRS($subdirs)
+--- a/libcpp/configure.ac 2012-02-14 11:02:21.000000000 +0100
++++ b/libcpp/configure.ac 2012-09-10 01:27:54.618064325 +0200
+@@ -34,7 +34,7 @@ AC_CHECK_PROGS([AUTOHEADER], [autoheader
+ # See config/warnings.m4 for details.
+
+ ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wno-narrowing -Wwrite-strings \
+- -Wmissing-format-attribute], [warn])
++ -Wmissing-format-attribute -Wno-format-security], [warn])
+ ACX_PROG_CC_WARNING_OPTS([-Wstrict-prototypes -Wmissing-prototypes \
+ -Wold-style-definition -Wc++-compat], [c_warn])
+ ACX_PROG_CC_WARNING_ALMOST_PEDANTIC([-Wno-long-long])
diff --git a/upstream/gcc_doc.patch b/upstream/gcc_doc.patch
index 3aa53ad..c3e876b 100644
--- a/upstream/gcc_doc.patch
+++ b/upstream/gcc_doc.patch
@@ -1,34 +1,37 @@
--- 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
+@@ -3216,6 +3216,11 @@ 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}.
++@emph{Note:} (existing style).
++With @option{--enable-espf=@r{[}all@r{|}ssp@r{|}pie@r{]}}this option is
++enabled by default for C, C++, ObjC, ObjC++. To disable, use
++@option{-Wno-format}.
+
@item -Wformat-y2k
@opindex Wformat-y2k
@opindex Wno-format-y2k
-@@ -3269,6 +3273,12 @@ currently a subset of what @option{-Wfor
+@@ -3269,6 +3273,13 @@ 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,
++@emph{Note:} (existing style).
++With @option{--enable-espf=@r{[}all@r{|}ssp@r{|}pie@r{]}}this option is
++enabled by default for C, C++, ObjC, ObjC++. To disable, use
++@option{-Wno-format-security}, or disable all format warnings
++with @option{-Wno-format}. 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
+@@ -6229,6 +6239,14 @@ 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{]},
++@emph{Note:} (existing style).
++With @option{--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.
@@ -38,11 +41,12 @@
@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
+@@ -8475,6 +8492,13 @@ 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
++@emph{Note:} (existing style).
++With @option{--enable-espf=@r{[}all@r{|}ssp@r{|}pie@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},
@@ -51,28 +55,30 @@
@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
+@@ -9457,6 +9480,13 @@ 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{|}pie@r{]} this option is
++@emph{Note:} (existing style).
++With @option{--enable-espf=@r{[}all@r{|}ssp@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},
-+@option{-shared}, @option{-nodefaultlibs}, nor @option{static} are found.
++@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.
+@@ -19125,6 +19154,13 @@ 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{|}pie@r{]} this option is
++@emph{Note:} (existing style).
++With @option{--enable-espf=@r{[}all@r{|}ssp@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},
-+@option{-shared}, @option{-nodefaultlibs}, nor @option{static} are found.
++@option{-shared}, @option{-nodefaultlibs}, nor @option{-static} are found.
+
@item -fno-jump-tables
@opindex fno-jump-tables
@@ -92,8 +98,8 @@
+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. 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.
++not turn on any options. 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.
diff --git a/upstream/testsuite-hardening-format.patch b/upstream/testsuite-hardening-format.patch
deleted file mode 100644
index 0d14c10..0000000
--- a/upstream/testsuite-hardening-format.patch
+++ /dev/null
@@ -1,87 +0,0 @@
---- 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-hardening-fortify.patch b/upstream/testsuite-hardening-fortify.patch
deleted file mode 100644
index 82456cc..0000000
--- a/upstream/testsuite-hardening-fortify.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- 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-hardening-piessp.patch b/upstream/testsuite-hardening-piessp.patch
deleted file mode 100644
index 8991a69..0000000
--- a/upstream/testsuite-hardening-piessp.patch
+++ /dev/null
@@ -1,98 +0,0 @@
---- 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-hardening-printf-types.patch b/upstream/testsuite-hardening-printf-types.patch
deleted file mode 100644
index 8ca807e..0000000
--- a/upstream/testsuite-hardening-printf-types.patch
+++ /dev/null
@@ -1,590 +0,0 @@
---- 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;