tests/tcg: Add -fno-stack-protector

A build of GCC 13.2 will have stack protector enabled by default if it
was configured with --enable-default-ssp option. For such a compiler,
it is necessary to explicitly disable stack protector when linking
without standard libraries.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20230731091042.139159-3-akihiko.odaki@daynix.com>
[AJB: fix comment string typo]
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231029145033.592566-3-alex.bennee@linaro.org>
This commit is contained in:
Akihiko Odaki 2023-10-29 14:50:16 +00:00 committed by Alex Bennée
parent 05c223cef7
commit 580731dcc8
9 changed files with 10 additions and 10 deletions

View File

@ -123,7 +123,7 @@ else
# For system targets we include a different Makefile fragment as the
# build options for bare programs are usually pretty different. They
# are expected to provide their own build recipes.
EXTRA_CFLAGS += -ffreestanding
EXTRA_CFLAGS += -ffreestanding -fno-stack-protector
-include $(SRC_PATH)/tests/tcg/minilib/Makefile.target
-include $(SRC_PATH)/tests/tcg/multiarch/system/Makefile.softmmu-target
-include $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.softmmu-target

View File

@ -53,7 +53,7 @@ endif
# bti-1 tests the elf notes, so we require special compiler support.
ifneq ($(CROSS_CC_HAS_ARMV8_BTI),)
AARCH64_TESTS += bti-1 bti-3
bti-1 bti-3: CFLAGS += -mbranch-protection=standard
bti-1 bti-3: CFLAGS += -fno-stack-protector -mbranch-protection=standard
bti-1 bti-3: LDFLAGS += -nostdlib
endif
# bti-2 tests PROT_BTI, so no special compiler support required.

View File

@ -12,7 +12,7 @@ float_madds: CFLAGS+=-mfpu=neon-vfpv4
# Basic Hello World
ARM_TESTS = hello-arm
hello-arm: CFLAGS+=-marm -ffreestanding
hello-arm: CFLAGS+=-marm -ffreestanding -fno-stack-protector
hello-arm: LDFLAGS+=-nostdlib
# IWMXT floating point extensions

View File

@ -30,7 +30,7 @@ AS = $(CC) -x assembler-with-cpp
LD = $(CC)
# we rely on GCC inline:ing the stuff we tell it to in many places here.
CFLAGS = -Winline -Wall -g -O2 -static
CFLAGS = -Winline -Wall -g -O2 -static -fno-stack-protector
NOSTDFLAGS = -nostartfiles -nostdlib
ASFLAGS += -mcpu=v10 -g -Wa,-I,$(SRC_PATH)/tests/tcg/cris/bare
CRT_FILES = crt.o sys.o

View File

@ -19,7 +19,7 @@
EXTRA_RUNS =
CFLAGS += -Wno-incompatible-pointer-types -Wno-undefined-internal
CFLAGS += -fno-unroll-loops
CFLAGS += -fno-unroll-loops -fno-stack-protector
HEX_SRC=$(SRC_PATH)/tests/tcg/hexagon
VPATH += $(HEX_SRC)

View File

@ -35,7 +35,7 @@ run-test-aes: QEMU_OPTS += -cpu max
#
# hello-i386 is a barebones app
#
hello-i386: CFLAGS+=-ffreestanding
hello-i386: CFLAGS+=-ffreestanding -fno-stack-protector
hello-i386: LDFLAGS+=-nostdlib
# test-386 includes a couple of additional objects that need to be

View File

@ -12,7 +12,7 @@ SYSTEM_MINILIB_SRC=$(SRC_PATH)/tests/tcg/minilib
MINILIB_SRCS=$(wildcard $(SYSTEM_MINILIB_SRC)/*.c)
MINILIB_OBJS=$(patsubst $(SYSTEM_MINILIB_SRC)/%.c, %.o, $(MINILIB_SRCS))
MINILIB_CFLAGS+=-nostdlib -ggdb -O0
MINILIB_CFLAGS+=-nostdlib -fno-stack-protector -ggdb -O0
MINILIB_INC=-isystem $(SYSTEM_MINILIB_SRC)
.PRECIOUS: $(MINILIB_OBJS)

View File

@ -14,6 +14,6 @@ MIPS_TESTS=hello-mips
TESTS += $(MIPS_TESTS)
hello-mips: CFLAGS+=-mno-abicalls -fno-PIC -mabi=32
hello-mips: CFLAGS+=-mno-abicalls -fno-PIC -fno-stack-protector -mabi=32
hello-mips: LDFLAGS+=-nostdlib
endif

View File

@ -5,8 +5,8 @@
* http://www.linux-mips.org/wiki/MIPSABIHistory
* http://www.linux.com/howtos/Assembly-HOWTO/mips.shtml
*
* mipsel-linux-gcc -nostdlib -mno-abicalls -fno-PIC -mabi=32 \
* -O2 -static -o hello-mips hello-mips.c
* mipsel-linux-gcc -nostdlib -mno-abicalls -fno-PIC -fno-stack-protector \
* -mabi=32 -O2 -static -o hello-mips hello-mips.c
*
*/
#define __NR_SYSCALL_BASE 4000