Skip to content

Commit

Permalink
tests/tcg: Add -fno-stack-protector
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
akihikodaki authored and stsquad committed Oct 31, 2023
1 parent 05c223c commit 580731d
Show file tree
Hide file tree
Showing 9 changed files with 10 additions and 10 deletions.
2 changes: 1 addition & 1 deletion tests/tcg/Makefile.target
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion tests/tcg/aarch64/Makefile.target
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion tests/tcg/arm/Makefile.target
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion tests/tcg/cris/Makefile.target
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion tests/tcg/hexagon/Makefile.target
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion tests/tcg/i386/Makefile.target
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion tests/tcg/minilib/Makefile.target
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion tests/tcg/mips/Makefile.target
Original file line number Diff line number Diff line change
Expand Up @@ -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
4 changes: 2 additions & 2 deletions tests/tcg/mips/hello-mips.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 580731d

Please sign in to comment.