summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Korotin <dkorotin@wavecomp.com>2019-09-12 22:53:45 +0000
committerPaul Burton <paul.burton@mips.com>2019-10-07 09:45:49 -0700
commita2ecb233e3e759730269b31b7d8add823cf196ba (patch)
treeb233ed08b3f963050479a1ef545824d7328a37f7
parentffe59ee36aaa8395b10eb94937f038e532432a6b (diff)
mips: Kconfig: Add ARCH_HAS_FORTIFY_SOURCE
FORTIFY_SOURCE detects various overflows at compile and run time. (6974f0c4555e ("include/linux/string.h: add the option of fortified string.h functions) ARCH_HAS_FORTIFY_SOURCE means that the architecture can be built and run with CONFIG_FORTIFY_SOURCE. Since mips can be built and run with that flag, select ARCH_HAS_FORTIFY_SOURCE as default. Signed-off-by: Dmitry Korotin <dkorotin@wavecomp.com> Signed-off-by: Paul Burton <paul.burton@mips.com> Cc: linux-mips@vger.kernel.org
-rw-r--r--arch/mips/Kconfig1
-rw-r--r--arch/mips/include/asm/string.h2
2 files changed, 3 insertions, 0 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 3ef8f8a2a0fd..41d25179c3ed 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -7,6 +7,7 @@ config MIPS
select ARCH_CLOCKSOURCE_DATA
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
select ARCH_HAS_UBSAN_SANITIZE_ALL
+ select ARCH_HAS_FORTIFY_SOURCE
select ARCH_SUPPORTS_UPROBES
select ARCH_USE_BUILTIN_BSWAP
select ARCH_USE_CMPXCHG_LOCKREF if 64BIT
diff --git a/arch/mips/include/asm/string.h b/arch/mips/include/asm/string.h
index 29030cb398ee..4b938c55b397 100644
--- a/arch/mips/include/asm/string.h
+++ b/arch/mips/include/asm/string.h
@@ -10,6 +10,7 @@
#ifndef _ASM_STRING_H
#define _ASM_STRING_H
+#if !defined(__OPTIMIZE__) || !defined(CONFIG_FORTIFY_SOURCE)
/*
* Most of the inline functions are rather naive implementations so I just
@@ -130,6 +131,7 @@ strncmp(__const__ char *__cs, __const__ char *__ct, size_t __count)
return __res;
}
#endif /* CONFIG_32BIT */
+#endif /* !defined(__OPTIMIZE__) || !defined(CONFIG_FORTIFY_SOURCE) */
#define __HAVE_ARCH_MEMSET
extern void *memset(void *__s, int __c, size_t __count);