linux-uconsole/arch
Finn Thain fcbf12e23d m68k: Add -ffreestanding to CFLAGS
commit 28713169d8 upstream.

This patch fixes a build failure when using GCC 8.1:

/usr/bin/ld: block/partitions/ldm.o: in function `ldm_parse_tocblock':
block/partitions/ldm.c:153: undefined reference to `strcmp'

This is caused by a new optimization which effectively replaces a
strncmp() call with a strcmp() call. This affects a number of strncmp()
call sites in the kernel.

The entire class of optimizations is avoided with -fno-builtin, which
gets enabled by -ffreestanding. This may avoid possible future build
failures in case new optimizations appear in future compilers.

I haven't done any performance measurements with this patch but I did
count the function calls in a defconfig build. For example, there are now
23 more sprintf() calls and 39 fewer strcpy() calls. The effect on the
other libc functions is smaller.

If this harms performance we can tackle that regression by optimizing
the call sites, ideally using semantic patches. That way, clang and ICC
builds might benfit too.

Cc: stable@vger.kernel.org
Reference: https://marc.info/?l=linux-m68k&m=154514816222244&w=2
Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-23 20:10:00 +01:00
..
alpha alpha: Fix Eiger NR_IRQS to 128 2019-02-20 10:25:47 +01:00
arc ARCv2: don't assume core 0x54 has dual issue 2019-03-23 20:09:51 +01:00
arm crypto: arm/crct10dif - revert to C code for short inputs 2019-03-23 20:09:54 +01:00
arm64 crypto: arm64/aes-ccm - fix bugs in non-NEON fallback routine 2019-03-23 20:09:56 +01:00
c6x kbuild: rename LDFLAGS to KBUILD_LDFLAGS 2018-08-24 08:22:08 +09:00
h8300 Kbuild updates for v4.19 (2nd) 2018-08-25 13:40:38 -07:00
hexagon hexagon: modify ffs() and fls() to return int 2018-09-10 19:42:15 -05:00
ia64 ia64: Fix allnoconfig section mismatch for ioc_init/ioc_iommu_info 2018-08-22 14:12:47 -07:00
m68k m68k: Add -ffreestanding to CFLAGS 2019-03-23 20:10:00 +01:00
microblaze mm: make the __PAGETABLE_PxD_FOLDED defines non-empty 2018-12-29 13:37:57 +01:00
mips MIPS: Remove function size check in get_frame_info() 2019-03-13 14:02:37 -07:00
nds32 nds32: Fix gcc 8.0 compiler option incompatible. 2019-02-12 19:46:57 +01:00
nios2 nios2: kconfig: remove duplicate DEBUG_STACK_USAGE symbol defintions 2018-08-27 09:47:20 +08:00
openrisc OpenRISC updates for 4.19 2018-08-23 14:09:37 -07:00
parisc parisc: Fix ptrace syscall number modification 2019-02-27 10:09:00 +01:00
powerpc powerpc/8xx: fix setting of pagetable for Abatron BDI debug tool. 2019-02-27 10:08:54 +01:00
riscv riscv: Adjust mmap base address at a third of task size 2019-03-13 14:02:28 -07:00
s390 s390/setup: fix early warning messages 2019-03-23 20:09:58 +01:00
sh arch/sh/boards/mach-kfr2r09/setup.c: fix struct mtd_oob_ops build warning 2019-02-12 19:47:18 +01:00
sparc sparc/function_graph: Simplify with function_graph_enter() 2018-12-05 19:32:10 +01:00
um um: Avoid marking pages with "changed protection" 2019-02-12 19:47:17 +01:00
unicore32 mm: convert return type of handle_mm_fault() caller to vm_fault_t 2018-08-17 16:20:28 -07:00
x86 xen: fix dom0 boot on huge systems 2019-03-23 20:09:57 +01:00
xtensa xtensa: SMP: limit number of possible CPUs by NR_CPUS 2019-03-13 14:02:29 -07:00
.gitignore
Kconfig Merge branch 'tlb-fixes' 2018-08-23 14:55:01 -07:00