aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.7.0/piepatch/01_all_gcc47_configure.patch')
-rw-r--r--gcc-4.7.0/piepatch/01_all_gcc47_configure.patch182
1 files changed, 154 insertions, 28 deletions
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)