* [PATCH 0/2] tests/tcg: Fix new cross-compiler warnings
@ 2024-07-24 1:07 Richard Henderson
2024-07-24 1:07 ` [PATCH 1/2] tests/tcg: Use --noexecstack with assembler files Richard Henderson
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Richard Henderson @ 2024-07-24 1:07 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Recent updates to debian cross-compilers have enabled some
new warnings by default, which encourage good behaviour for
userland binaries.
Neither are applicable for our system mode kernel images,
but we do have a few userland tests that are affected.
The --noexecstack assembler flag takes care of adding the
appropriate .note.GNU-stack elf note for us, rather than
writing a dozen lines of assembly template, and so is a
true fix rather than merely disabling the linker warning.
r~
Richard Henderson (2):
tests/tcg: Use --noexecstack with assembler files
tests/tcg/loongarch64: Use --no-warn-rwx-segments to link system tests
tests/tcg/Makefile.target | 2 +-
tests/tcg/aarch64/Makefile.softmmu-target | 2 +-
tests/tcg/alpha/Makefile.softmmu-target | 2 +-
tests/tcg/arm/Makefile.softmmu-target | 2 +-
tests/tcg/arm/Makefile.target | 2 +-
tests/tcg/i386/Makefile.softmmu-target | 2 +-
tests/tcg/loongarch64/Makefile.softmmu-target | 4 ++--
tests/tcg/riscv64/Makefile.softmmu-target | 2 +-
tests/tcg/s390x/Makefile.softmmu-target | 2 +-
tests/tcg/x86_64/Makefile.softmmu-target | 2 +-
10 files changed, 11 insertions(+), 11 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] tests/tcg: Use --noexecstack with assembler files
2024-07-24 1:07 [PATCH 0/2] tests/tcg: Fix new cross-compiler warnings Richard Henderson
@ 2024-07-24 1:07 ` Richard Henderson
2024-07-24 6:57 ` Philippe Mathieu-Daudé
2024-07-24 1:07 ` [PATCH 2/2] tests/tcg/loongarch64: Use --no-warn-rwx-segments to link system tests Richard Henderson
` (2 subsequent siblings)
3 siblings, 1 reply; 6+ messages in thread
From: Richard Henderson @ 2024-07-24 1:07 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Add the --noexecstack assembler command-line option to avoid:
/usr/bin/ld: warning: boot.o: missing .note.GNU-stack section implies executable stack
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
which is enabled by default with current debian cross toolchains.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
tests/tcg/Makefile.target | 2 +-
tests/tcg/aarch64/Makefile.softmmu-target | 2 +-
tests/tcg/alpha/Makefile.softmmu-target | 2 +-
tests/tcg/arm/Makefile.softmmu-target | 2 +-
tests/tcg/arm/Makefile.target | 2 +-
tests/tcg/i386/Makefile.softmmu-target | 2 +-
tests/tcg/loongarch64/Makefile.softmmu-target | 2 +-
tests/tcg/riscv64/Makefile.softmmu-target | 2 +-
tests/tcg/s390x/Makefile.softmmu-target | 2 +-
tests/tcg/x86_64/Makefile.softmmu-target | 2 +-
10 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target
index cb8cfeb6da..1f8e5b3d30 100644
--- a/tests/tcg/Makefile.target
+++ b/tests/tcg/Makefile.target
@@ -115,7 +115,7 @@ endif
%: %.c
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
%: %.S
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -Wa,--noexecstack $< -o $@ $(LDFLAGS)
else
# For system targets we include a different Makefile fragment as the
# build options for bare programs are usually pretty different. They
diff --git a/tests/tcg/aarch64/Makefile.softmmu-target b/tests/tcg/aarch64/Makefile.softmmu-target
index dd6d595830..139e04d15f 100644
--- a/tests/tcg/aarch64/Makefile.softmmu-target
+++ b/tests/tcg/aarch64/Makefile.softmmu-target
@@ -28,7 +28,7 @@ config-cc.mak: Makefile
.PRECIOUS: $(CRT_OBJS)
%.o: $(CRT_PATH)/%.S
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -x assembler-with-cpp -c $< -o $@
+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -x assembler-with-cpp -Wa,--noexecstack -c $< -o $@
# Build and link the tests
%: %.c $(LINK_SCRIPT) $(CRT_OBJS) $(MINILIB_OBJS)
diff --git a/tests/tcg/alpha/Makefile.softmmu-target b/tests/tcg/alpha/Makefile.softmmu-target
index 09193a62d6..a0eca4d6ea 100644
--- a/tests/tcg/alpha/Makefile.softmmu-target
+++ b/tests/tcg/alpha/Makefile.softmmu-target
@@ -22,7 +22,7 @@ LDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc
.PRECIOUS: $(CRT_OBJS)
%.o: $(CRT_PATH)/%.S
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -x assembler-with-cpp -c $< -o $@
+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -x assembler-with-cpp -Wa,--noexecstack -c $< -o $@
# Build and link the tests
%: %.c $(LINK_SCRIPT) $(CRT_OBJS) $(MINILIB_OBJS)
diff --git a/tests/tcg/arm/Makefile.softmmu-target b/tests/tcg/arm/Makefile.softmmu-target
index 547063c08c..b66074b0b4 100644
--- a/tests/tcg/arm/Makefile.softmmu-target
+++ b/tests/tcg/arm/Makefile.softmmu-target
@@ -36,7 +36,7 @@ LDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc
.PRECIOUS: $(CRT_OBJS)
%.o: $(ARM_SRC)/%.S
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -x assembler-with-cpp -c $< -o $@
+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -x assembler-with-cpp -Wa,--noexecstack -c $< -o $@
# Build and link the tests
%: %.c $(LINK_SCRIPT) $(CRT_OBJS) $(MINILIB_OBJS)
diff --git a/tests/tcg/arm/Makefile.target b/tests/tcg/arm/Makefile.target
index 8e287191af..06ddf3e04f 100644
--- a/tests/tcg/arm/Makefile.target
+++ b/tests/tcg/arm/Makefile.target
@@ -25,7 +25,7 @@ ARM_TESTS += test-arm-iwmmxt
# Clang assembler does not support IWMXT, so use the external assembler.
test-arm-iwmmxt: CFLAGS += -marm -march=iwmmxt -mabi=aapcs -mfpu=fpv4-sp-d16 $(CROSS_CC_HAS_FNIA)
test-arm-iwmmxt: test-arm-iwmmxt.S
- $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS)
+ $(CC) $(CFLAGS) -Wa,--noexecstack $< -o $@ $(LDFLAGS)
# Float-convert Tests
ARM_TESTS += fcvt
diff --git a/tests/tcg/i386/Makefile.softmmu-target b/tests/tcg/i386/Makefile.softmmu-target
index 5266f2335a..4096a1cf31 100644
--- a/tests/tcg/i386/Makefile.softmmu-target
+++ b/tests/tcg/i386/Makefile.softmmu-target
@@ -25,7 +25,7 @@ EXTRA_RUNS+=$(MULTIARCH_RUNS)
.PRECIOUS: $(CRT_OBJS)
%.o: $(CRT_PATH)/%.S
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@
+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -Wa,--noexecstack -c $< -o $@
# Build and link the tests
%: %.c $(LINK_SCRIPT) $(CRT_OBJS) $(MINILIB_OBJS)
diff --git a/tests/tcg/loongarch64/Makefile.softmmu-target b/tests/tcg/loongarch64/Makefile.softmmu-target
index 908f3a8c0f..d5d5c1a7f6 100644
--- a/tests/tcg/loongarch64/Makefile.softmmu-target
+++ b/tests/tcg/loongarch64/Makefile.softmmu-target
@@ -22,7 +22,7 @@ LDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc
.PRECIOUS: $(CRT_OBJS)
%.o: $(CRT_PATH)/%.S
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -x assembler-with-cpp -c $< -o $@
+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -x assembler-with-cpp -Wa,--noexecstack -c $< -o $@
# Build and link the tests
%: %.c $(LINK_SCRIPT) $(CRT_OBJS) $(MINILIB_OBJS)
diff --git a/tests/tcg/riscv64/Makefile.softmmu-target b/tests/tcg/riscv64/Makefile.softmmu-target
index d5b126e5f1..7c1d44d3f4 100644
--- a/tests/tcg/riscv64/Makefile.softmmu-target
+++ b/tests/tcg/riscv64/Makefile.softmmu-target
@@ -10,7 +10,7 @@ LDFLAGS = -T $(LINK_SCRIPT)
CFLAGS += -g -Og
%.o: %.S
- $(CC) $(CFLAGS) $< -c -o $@
+ $(CC) $(CFLAGS) $< -Wa,--noexecstack -c -o $@
%: %.o $(LINK_SCRIPT)
$(LD) $(LDFLAGS) $< -o $@
diff --git a/tests/tcg/s390x/Makefile.softmmu-target b/tests/tcg/s390x/Makefile.softmmu-target
index 4c8e15e625..f60f94b090 100644
--- a/tests/tcg/s390x/Makefile.softmmu-target
+++ b/tests/tcg/s390x/Makefile.softmmu-target
@@ -6,7 +6,7 @@ CFLAGS+=-ggdb -O0
LDFLAGS=-nostdlib -static
%.o: %.S
- $(CC) -march=z13 -m64 -c $< -o $@
+ $(CC) -march=z13 -m64 -Wa,--noexecstack -c $< -o $@
%.o: %.c
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -march=z13 -m64 -c $< -o $@
diff --git a/tests/tcg/x86_64/Makefile.softmmu-target b/tests/tcg/x86_64/Makefile.softmmu-target
index 1bd763f2e6..ef6bcb4dc7 100644
--- a/tests/tcg/x86_64/Makefile.softmmu-target
+++ b/tests/tcg/x86_64/Makefile.softmmu-target
@@ -25,7 +25,7 @@ EXTRA_RUNS+=$(MULTIARCH_RUNS)
.PRECIOUS: $(CRT_OBJS)
%.o: $(CRT_PATH)/%.S
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@
+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -Wa,--noexecstack -c $< -o $@
# Build and link the tests
%: %.c $(LINK_SCRIPT) $(CRT_OBJS) $(MINILIB_OBJS)
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] tests/tcg/loongarch64: Use --no-warn-rwx-segments to link system tests
2024-07-24 1:07 [PATCH 0/2] tests/tcg: Fix new cross-compiler warnings Richard Henderson
2024-07-24 1:07 ` [PATCH 1/2] tests/tcg: Use --noexecstack with assembler files Richard Henderson
@ 2024-07-24 1:07 ` Richard Henderson
2024-07-24 9:54 ` [PATCH 0/2] tests/tcg: Fix new cross-compiler warnings Alex Bennée
2024-07-24 10:50 ` Alex Bennée
3 siblings, 0 replies; 6+ messages in thread
From: Richard Henderson @ 2024-07-24 1:07 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Recent debian cross-linker for loongarch issues
ld: warning: hello has a LOAD segment with RWX permissions
This is partially related to tests/tcg/loongarch64/system/kernel.ld,
but is not fixed by explicitly adding a single LOAD PHDR.
Disable the warning, since it does not apply to kernel images.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
tests/tcg/loongarch64/Makefile.softmmu-target | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/tcg/loongarch64/Makefile.softmmu-target b/tests/tcg/loongarch64/Makefile.softmmu-target
index d5d5c1a7f6..6d4a20fde7 100644
--- a/tests/tcg/loongarch64/Makefile.softmmu-target
+++ b/tests/tcg/loongarch64/Makefile.softmmu-target
@@ -16,7 +16,7 @@ LINK_SCRIPT=$(LOONGARCH64_SYSTEM_SRC)/kernel.ld
LDFLAGS=-Wl,-T$(LINK_SCRIPT)
TESTS+=$(LOONGARCH64_TESTS) $(MULTIARCH_TESTS)
CFLAGS+=-nostdlib -g -O1 -march=loongarch64 -mabi=lp64d $(MINILIB_INC)
-LDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc
+LDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc -Wl,--no-warn-rwx-segments
# building head blobs
.PRECIOUS: $(CRT_OBJS)
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] tests/tcg: Use --noexecstack with assembler files
2024-07-24 1:07 ` [PATCH 1/2] tests/tcg: Use --noexecstack with assembler files Richard Henderson
@ 2024-07-24 6:57 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-07-24 6:57 UTC (permalink / raw)
To: Richard Henderson, qemu-devel; +Cc: alex.bennee
On 24/7/24 03:07, Richard Henderson wrote:
> Add the --noexecstack assembler command-line option to avoid:
>
> /usr/bin/ld: warning: boot.o: missing .note.GNU-stack section implies executable stack
> /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
>
> which is enabled by default with current debian cross toolchains.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
> tests/tcg/Makefile.target | 2 +-
> tests/tcg/aarch64/Makefile.softmmu-target | 2 +-
> tests/tcg/alpha/Makefile.softmmu-target | 2 +-
> tests/tcg/arm/Makefile.softmmu-target | 2 +-
> tests/tcg/arm/Makefile.target | 2 +-
> tests/tcg/i386/Makefile.softmmu-target | 2 +-
> tests/tcg/loongarch64/Makefile.softmmu-target | 2 +-
> tests/tcg/riscv64/Makefile.softmmu-target | 2 +-
> tests/tcg/s390x/Makefile.softmmu-target | 2 +-
> tests/tcg/x86_64/Makefile.softmmu-target | 2 +-
> 10 files changed, 10 insertions(+), 10 deletions(-)
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/2] tests/tcg: Fix new cross-compiler warnings
2024-07-24 1:07 [PATCH 0/2] tests/tcg: Fix new cross-compiler warnings Richard Henderson
2024-07-24 1:07 ` [PATCH 1/2] tests/tcg: Use --noexecstack with assembler files Richard Henderson
2024-07-24 1:07 ` [PATCH 2/2] tests/tcg/loongarch64: Use --no-warn-rwx-segments to link system tests Richard Henderson
@ 2024-07-24 9:54 ` Alex Bennée
2024-07-24 10:50 ` Alex Bennée
3 siblings, 0 replies; 6+ messages in thread
From: Alex Bennée @ 2024-07-24 9:54 UTC (permalink / raw)
To: Richard Henderson; +Cc: qemu-devel
Richard Henderson <richard.henderson@linaro.org> writes:
> Recent updates to debian cross-compilers have enabled some
> new warnings by default, which encourage good behaviour for
> userland binaries.
>
> Neither are applicable for our system mode kernel images,
> but we do have a few userland tests that are affected.
>
> The --noexecstack assembler flag takes care of adding the
> appropriate .note.GNU-stack elf note for us, rather than
> writing a dozen lines of assembly template, and so is a
> true fix rather than merely disabling the linker warning.
Queued to maintainer/for-9.1, thanks.
> 10 files changed, 11 insertions(+), 11 deletions(-)
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/2] tests/tcg: Fix new cross-compiler warnings
2024-07-24 1:07 [PATCH 0/2] tests/tcg: Fix new cross-compiler warnings Richard Henderson
` (2 preceding siblings ...)
2024-07-24 9:54 ` [PATCH 0/2] tests/tcg: Fix new cross-compiler warnings Alex Bennée
@ 2024-07-24 10:50 ` Alex Bennée
3 siblings, 0 replies; 6+ messages in thread
From: Alex Bennée @ 2024-07-24 10:50 UTC (permalink / raw)
To: Richard Henderson; +Cc: qemu-devel
Richard Henderson <richard.henderson@linaro.org> writes:
> Recent updates to debian cross-compilers have enabled some
> new warnings by default, which encourage good behaviour for
> userland binaries.
>
> Neither are applicable for our system mode kernel images,
> but we do have a few userland tests that are affected.
>
> The --noexecstack assembler flag takes care of adding the
> appropriate .note.GNU-stack elf note for us, rather than
> writing a dozen lines of assembly template, and so is a
> true fix rather than merely disabling the linker warning.
Queued to maintainer/for-9.1, thanks.
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-07-24 10:52 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-24 1:07 [PATCH 0/2] tests/tcg: Fix new cross-compiler warnings Richard Henderson
2024-07-24 1:07 ` [PATCH 1/2] tests/tcg: Use --noexecstack with assembler files Richard Henderson
2024-07-24 6:57 ` Philippe Mathieu-Daudé
2024-07-24 1:07 ` [PATCH 2/2] tests/tcg/loongarch64: Use --no-warn-rwx-segments to link system tests Richard Henderson
2024-07-24 9:54 ` [PATCH 0/2] tests/tcg: Fix new cross-compiler warnings Alex Bennée
2024-07-24 10:50 ` Alex Bennée
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).