abcc04a5bf
Upstream commit: 224d8c1890b6c57c7e4e8ddbb792dd9552086704 - debug: Synchronize feature guards in fortified functions [BZ #28746] - debug: Autogenerate _FORTIFY_SOURCE tests - Enable _FORTIFY_SOURCE=3 for gcc 12 and above - fortify: Fix spurious warning with realpath - __glibc_unsafe_len: Fix comment - debug: Add tests for _FORTIFY_SOURCE=3 - Make sure that the fortified function conditionals are constant - Don't add access size hints to fortifiable functions - nss: Protect against errno changes in function lookup (bug 28953) - nss: Do not mention NSS test modules in <gnu/lib-names.h> - io: Add fsync call in tst-stat - hppa: Fix warnings from _dl_lookup_address - nptl: Fix cleanups for stack grows up [BZ# 28899] - hppa: Revise gettext trampoline design - hppa: Fix swapcontext - Fix elf/tst-audit2 on hppa - localedef: Handle symbolic links when generating locale-archive - NEWS: Add a bug fix entry for BZ #28896 - x86: Fix TEST_NAME to make it a string in tst-strncmp-rtm.c - x86: Test wcscmp RTM in the wcsncmp overflow case [BZ #28896] - x86: Fallback {str|wcs}cmp RTM in the ncmp overflow case [BZ #28896] - string: Add a testcase for wcsncmp with SIZE_MAX [BZ #28755] - linux: fix accuracy of get_nprocs and get_nprocs_conf [BZ #28865] - Add reference to BZ#28860 on NEWS - linux: Fix missing __convert_scm_timestamps (BZ #28860)
43 lines
1.7 KiB
Diff
43 lines
1.7 KiB
Diff
commit d6a58bd81d07322ff5da8f419d8620ef037b6a36
|
|
Author: Siddhesh Poyarekar <siddhesh@sourceware.org>
|
|
Date: Wed Jan 12 18:46:28 2022 +0530
|
|
|
|
Enable _FORTIFY_SOURCE=3 for gcc 12 and above
|
|
|
|
gcc 12 now has support for the __builtin_dynamic_object_size builtin.
|
|
Adapt the macro checks to enable _FORTIFY_SOURCE=3 on gcc 12 and above.
|
|
|
|
Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
|
|
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
|
(cherry picked from commit 86bf0feb0e3ec8e37872f72499d6ae33406561d7)
|
|
|
|
diff --git a/include/features.h b/include/features.h
|
|
index d974eabfafc24ffb..933499bcff8f1449 100644
|
|
--- a/include/features.h
|
|
+++ b/include/features.h
|
|
@@ -412,7 +412,9 @@
|
|
# warning _FORTIFY_SOURCE requires compiling with optimization (-O)
|
|
# elif !__GNUC_PREREQ (4, 1)
|
|
# warning _FORTIFY_SOURCE requires GCC 4.1 or later
|
|
-# elif _FORTIFY_SOURCE > 2 && __glibc_clang_prereq (9, 0)
|
|
+# elif _FORTIFY_SOURCE > 2 && (__glibc_clang_prereq (9, 0) \
|
|
+ || __GNUC_PREREQ (12, 0))
|
|
+
|
|
# if _FORTIFY_SOURCE > 3
|
|
# warning _FORTIFY_SOURCE > 3 is treated like 3 on this platform
|
|
# endif
|
|
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
|
|
index 3bb9f38916e30295..515fb681a0547217 100644
|
|
--- a/misc/sys/cdefs.h
|
|
+++ b/misc/sys/cdefs.h
|
|
@@ -142,7 +142,8 @@
|
|
#define __bos0(ptr) __builtin_object_size (ptr, 0)
|
|
|
|
/* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. */
|
|
-#if __USE_FORTIFY_LEVEL == 3 && __glibc_clang_prereq (9, 0)
|
|
+#if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \
|
|
+ || __GNUC_PREREQ (12, 0))
|
|
# define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0)
|
|
# define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1)
|
|
#else
|