Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 270274 | Differences between
and this patch

Collapse All | Expand All

(-)file_not_specified_in_diff (-9 / +71 lines)
Line  Link Here
0
-- config.h.in
0
++ config.h.in
Lines 42-47 Link Here
42
   assembler instructions per line.  Default is `;'  */
42
   assembler instructions per line.  Default is `;'  */
43
#undef ASM_LINE_SEP
43
#undef ASM_LINE_SEP
44
44
45
/* Define if we want to enable support for old ssp symbols */
46
#undef	ENABLE_OLD_SSP_COMPAT
47
45
/* Define if not using ELF, but `.init' and `.fini' sections are available.  */
48
/* Define if not using ELF, but `.init' and `.fini' sections are available.  */
46
#undef	HAVE_INITFINI
49
#undef	HAVE_INITFINI
47
50
48
-- configure
51
++ configure
Lines 1378-1383 Optional Features: Link Here
1378
  --enable-kernel=VERSION compile for compatibility with kernel not older than
1378
  --enable-kernel=VERSION compile for compatibility with kernel not older than
1379
                          VERSION
1379
                          VERSION
1380
  --enable-all-warnings   enable all useful warnings gcc can issue
1380
  --enable-all-warnings   enable all useful warnings gcc can issue
1381
  --disable-old-ssp-compat
1382
                          enable support for older ssp symbols
1383
                          [default=no]
1381
  --enable-multi-arch     enable single DSO with optimizations for multiple
1384
  --enable-multi-arch     enable single DSO with optimizations for multiple
1382
                          architectures
1385
                          architectures
1383
  --enable-experimental-malloc
1386
  --enable-experimental-malloc
Lines 6462-6467 fi Link Here
6462
$as_echo "$libc_cv_ssp" >&6; }
6465
$as_echo "$libc_cv_ssp" >&6; }
6463
6466
6464
6467
6468
# Check whether --enable-old-ssp-compat or --disable-old-ssp-compat was given.
6469
if test "${enable_old_ssp_compat+set}" = set; then
6470
  enableval="$enable_old_ssp_compat"
6471
  enable_old_ssp_compat=$enableval
6472
else
6473
  enable_old_ssp_compat=no
6474
fi;
6475
if test "x$enable_old_ssp_compat" = "xyes"; then
6476
  cat >>confdefs.h <<\_ACEOF
6477
#define ENABLE_OLD_SSP_COMPAT 1
6478
_ACEOF
6479
6480
fi
6481
6465
{ $as_echo "$as_me:$LINENO: checking for -fgnu89-inline" >&5
6482
{ $as_echo "$as_me:$LINENO: checking for -fgnu89-inline" >&5
6466
$as_echo_n "checking for -fgnu89-inline... " >&6; }
6483
$as_echo_n "checking for -fgnu89-inline... " >&6; }
6467
if test "${libc_cv_gnu89_inline+set}" = set; then
6484
if test "${libc_cv_gnu89_inline+set}" = set; then
6468
-- configure.in
6485
++ configure.in
Lines 1641-1646 fi Link Here
1641
rm -f conftest*])
1641
rm -f conftest*])
1642
AC_SUBST(libc_cv_ssp)
1642
AC_SUBST(libc_cv_ssp)
1643
1643
1644
AC_ARG_ENABLE([old-ssp-compat],
1645
	      AC_HELP_STRING([--enable-old-ssp-compat],
1646
	                     [enable support for older ssp symbols @<:@default=no@:>@]),
1647
	      [enable_old_ssp_compat=$enableval],
1648
	      [enable_old_ssp_compat=no])
1649
if test "x$enable_old_ssp_compat" = "xyes"; then
1650
  AC_DEFINE(ENABLE_OLD_SSP_COMPAT)
1651
fi
1652
1644
AC_CACHE_CHECK(for -fgnu89-inline, libc_cv_gnu89_inline, [dnl
1653
AC_CACHE_CHECK(for -fgnu89-inline, libc_cv_gnu89_inline, [dnl
1645
cat > conftest.c <<EOF
1654
cat > conftest.c <<EOF
1646
int foo;
1655
int foo;
1647
-- csu/libc-start.c
1656
++ csu/libc-start.c
Lines 37-42 extern void __pthread_initialize_minimal Link Here
37
uintptr_t __stack_chk_guard attribute_relro;
37
uintptr_t __stack_chk_guard attribute_relro;
38
# endif
38
# endif
39
#endif
39
#endif
40
#ifdef ENABLE_OLD_SSP_COMPAT
41
uintptr_t __guard attribute_relro;
42
#endif
40
43
41
#ifdef HAVE_PTR_NTHREADS
44
#ifdef HAVE_PTR_NTHREADS
42
/* We need atomic operations.  */
45
/* We need atomic operations.  */
Lines 141-146 LIBC_START_MAIN (int (*main) (int, char Link Here
141
145
142
  /* Set up the stack checker's canary.  */
146
  /* Set up the stack checker's canary.  */
143
  uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard (_dl_random);
147
  uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard (_dl_random);
148
#ifdef ENABLE_OLD_SSP_COMPAT
149
  __guard = stack_chk_guard;
150
#endif
144
# ifdef THREAD_SET_STACK_GUARD
151
# ifdef THREAD_SET_STACK_GUARD
145
  THREAD_SET_STACK_GUARD (stack_chk_guard);
152
  THREAD_SET_STACK_GUARD (stack_chk_guard);
146
# else
153
# else
147
-- csu/Versions
154
++ csu/Versions
Lines 17-22 libc { Link Here
17
    # New special glibc functions.
17
    # New special glibc functions.
18
    gnu_get_libc_release; gnu_get_libc_version;
18
    gnu_get_libc_release; gnu_get_libc_version;
19
  }
19
  }
20
  GLIBC_2.3.2 {
21
%ifdef ENABLE_OLD_SSP_COMPAT
22
    # global objects and functions for the old propolice patch in gcc
23
    __guard;
24
%endif
25
  }
20
  GLIBC_PRIVATE {
26
  GLIBC_PRIVATE {
21
%if HAVE___THREAD
27
%if HAVE___THREAD
22
    # This version is for the TLS symbol, GLIBC_2.0 is the old object symbol.
28
    # This version is for the TLS symbol, GLIBC_2.0 is the old object symbol.
23
-- debug/Versions
29
++ debug/Versions
Lines 10-15 libc { Link Here
10
    # These are to support some gcc features.
10
    # These are to support some gcc features.
11
    __cyg_profile_func_enter; __cyg_profile_func_exit;
11
    __cyg_profile_func_enter; __cyg_profile_func_exit;
12
  }
12
  }
13
%ifdef ENABLE_OLD_SSP_COMPAT
14
  GLIBC_2.3.2 {
15
    # backwards ssp compat support; alias to __stack_chk_fail
16
    __stack_smash_handler;
17
  }
18
%endif
13
  GLIBC_2.3.4 {
19
  GLIBC_2.3.4 {
14
    __chk_fail;
20
    __chk_fail;
15
    __memcpy_chk; __memmove_chk; __mempcpy_chk; __memset_chk; __stpcpy_chk;
21
    __memcpy_chk; __memmove_chk; __mempcpy_chk; __memset_chk; __stpcpy_chk;
16
-- elf/rtld.c
22
++ elf/rtld.c
Lines 89-94 INTDEF(_dl_argv) Link Here
89
   in thread local area.  */
89
   in thread local area.  */
90
uintptr_t __stack_chk_guard attribute_relro;
90
uintptr_t __stack_chk_guard attribute_relro;
91
#endif
91
#endif
92
#ifdef ENABLE_OLD_SSP_COMPAT
93
uintptr_t __guard attribute_relro;
94
#endif
92
95
93
/* Only exported for architectures that don't store the pointer guard
96
/* Only exported for architectures that don't store the pointer guard
94
   value in thread local area.  */
97
   value in thread local area.  */
Lines 1817-1822 ERROR: ld.so: object '%s' cannot be load Link Here
1817
1821
1818
  /* Set up the stack checker's canary.  */
1822
  /* Set up the stack checker's canary.  */
1819
  uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard (_dl_random);
1823
  uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard (_dl_random);
1824
#ifdef ENABLE_OLD_SSP_COMPAT
1825
  __guard = stack_chk_guard;
1826
#endif
1820
#ifdef THREAD_SET_STACK_GUARD
1827
#ifdef THREAD_SET_STACK_GUARD
1821
  THREAD_SET_STACK_GUARD (stack_chk_guard);
1828
  THREAD_SET_STACK_GUARD (stack_chk_guard);
1822
#else
1829
#else
1823
-- elf/Versions
1830
++ elf/Versions
Lines 43-48 ld { Link Here
43
    # runtime interface to TLS
43
    # runtime interface to TLS
44
    __tls_get_addr;
44
    __tls_get_addr;
45
  }
45
  }
46
%ifdef ENABLE_OLD_SSP_COMPAT
47
  GLIBC_2.3.2 {
48
    # backwards ssp compat support
49
    __guard;
50
  }
51
%endif
46
  GLIBC_2.4 {
52
  GLIBC_2.4 {
47
    # stack canary
53
    # stack canary
48
    __stack_chk_guard;
54
    __stack_chk_guard;
49
-- Versions.def
55
++ Versions.def
Lines 109-114 ld { Link Here
109
  GLIBC_2.0
109
  GLIBC_2.0
110
  GLIBC_2.1
110
  GLIBC_2.1
111
  GLIBC_2.3
111
  GLIBC_2.3
112
%ifdef ENABLE_OLD_SSP_COMPAT
113
  GLIBC_2.3.2
114
%endif
112
  GLIBC_2.4
115
  GLIBC_2.4
113
  GLIBC_PRIVATE
116
  GLIBC_PRIVATE
114
}
117
}

Return to bug 270274