MIPS: Boot: Compressed: Remove -fstack-protector from CFLAGS
authorMarkos Chandras <markos.chandras@imgtec.com>
Mon, 1 Jul 2013 09:38:30 +0000 (09:38 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Mon, 1 Jul 2013 13:10:41 +0000 (15:10 +0200)
commit23df34155b29674465813b327647cd79722aa659
tree5916d426016e9347bf1d5a7672e4623397d0877a
parentc5cdc67a58a22c49f558b450c6f748251ceb2e7b
MIPS: Boot: Compressed: Remove -fstack-protector from CFLAGS

When building with -fstack-protector, gcc emits the __stack_chk_guard and
__stack_chk_fail symbols to check for stack stability. These symbols are
defined in vmlinux but the generated vmlinux.bin that is used to create
the compressed vmlinuz image has no symbol table so the linker can't find
these symbols during the final linking phase.  As a result of which, we
need either to redefine these symbols just for the compressed image or drop
the -fstack-protector option when building the compressed image. This patch
implements the latter of two options.

Fixes the following linking problem:

dbg.c:(.text+0x7c): undefined reference to `__stack_chk_guard'
dbg.c:(.text+0x80): undefined reference to `__stack_chk_guard'
dbg.c:(.text+0xd4): undefined reference to `__stack_chk_guard'
dbg.c:(.text+0xec): undefined reference to `__stack_chk_fail'

[ralf@linux-mips.org: I'm applying this before the patch that actually adds
stack protector support for MIPS.  This means, it will not be possible
to trigger above error message with any commit from the tree but rather
they are what one would hit without this commit.]

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: Markos Chandras <markos.chandras@imgtec.com>
Patchwork: https://patchwork.linux-mips.org/patch/5575/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/boot/compressed/Makefile