Original patch from: gentoo/src/patchsets/glibc/2.9/0010_all_glibc-2.7-ssp-compat.patch -= BEGIN original header =- Add backwards compat support for gcc-3.x ssp ... older ssp versions used __guard and __stack_smash_handler symbols while gcc-4.1 and newer uses __stack_chk_guard and __stack_chk_fail. -= END original header =- diff -durN glibc-2_9.orig/Versions.def glibc-2_9/Versions.def --- glibc-2_9.orig/Versions.def 2008-08-01 19:13:40.000000000 +0200 +++ glibc-2_9/Versions.def 2009-02-02 22:00:33.000000000 +0100 @@ -113,6 +113,9 @@ GLIBC_2.0 GLIBC_2.1 GLIBC_2.3 +%ifdef ENABLE_OLD_SSP_COMPAT + GLIBC_2.3.2 +%endif GLIBC_2.4 GLIBC_PRIVATE } diff -durN glibc-2_9.orig/config.h.in glibc-2_9/config.h.in --- glibc-2_9.orig/config.h.in 2007-03-26 22:40:08.000000000 +0200 +++ glibc-2_9/config.h.in 2009-02-02 22:00:32.000000000 +0100 @@ -42,6 +42,9 @@ assembler instructions per line. Default is `;' */ #undef ASM_LINE_SEP +/* Define if we want to enable support for old ssp symbols */ +#undef ENABLE_OLD_SSP_COMPAT + /* Define if not using ELF, but `.init' and `.fini' sections are available. */ #undef HAVE_INITFINI diff -durN glibc-2_9.orig/configure glibc-2_9/configure --- glibc-2_9.orig/configure 2008-11-11 10:50:11.000000000 +0100 +++ glibc-2_9/configure 2009-02-02 22:00:32.000000000 +0100 @@ -1380,6 +1380,9 @@ --enable-kernel=VERSION compile for compatibility with kernel not older than VERSION --enable-all-warnings enable all useful warnings gcc can issue + --disable-old-ssp-compat + enable support for older ssp symbols + [default=no] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -6470,6 +6473,20 @@ echo "${ECHO_T}$libc_cv_ssp" >&6; } +# Check whether --enable-old-ssp-compat or --disable-old-ssp-compat was given. +if test "${enable_old_ssp_compat+set}" = set; then + enableval="$enable_old_ssp_compat" + enable_old_ssp_compat=$enableval +else + enable_old_ssp_compat=no +fi; +if test "x$enable_old_ssp_compat" = "xyes"; then + cat >>confdefs.h <<\_ACEOF +#define ENABLE_OLD_SSP_COMPAT 1 +_ACEOF + +fi + { echo "$as_me:$LINENO: checking for -fgnu89-inline" >&5 echo $ECHO_N "checking for -fgnu89-inline... $ECHO_C" >&6; } if test "${libc_cv_gnu89_inline+set}" = set; then diff -durN glibc-2_9.orig/configure.in glibc-2_9/configure.in --- glibc-2_9.orig/configure.in 2008-11-11 10:50:11.000000000 +0100 +++ glibc-2_9/configure.in 2009-02-02 22:00:32.000000000 +0100 @@ -1647,6 +1647,15 @@ rm -f conftest*]) AC_SUBST(libc_cv_ssp) +AC_ARG_ENABLE([old-ssp-compat], + AC_HELP_STRING([--enable-old-ssp-compat], + [enable support for older ssp symbols @<:@default=no@:>@]), + [enable_old_ssp_compat=$enableval], + [enable_old_ssp_compat=no]) +if test "x$enable_old_ssp_compat" = "xyes"; then + AC_DEFINE(ENABLE_OLD_SSP_COMPAT) +fi + AC_CACHE_CHECK(for -fgnu89-inline, libc_cv_gnu89_inline, [dnl cat > conftest.c <