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 |
} |