On 3/30/21 2:46 PM, Peter Maydell wrote:
On Tue, 30 Mar 2021 at 21:27, Richard Henderson
<richard.hender...@linaro.org> wrote:
On 3/30/21 12:20 PM, Alex Bennée wrote:
Hmm actually the fedora-i386-cross image is:
gcc (GCC) 10.2.1 20201125 (Red Hat 10.2.1-9)
with CROSS_CC_GUEST_CFLAGS=-m32 so I wonder what the difference is
between that and:
i686-linux-gnu-gcc -m32
i686-linux-gnu-gcc --version
i686-linux-gnu-gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
They are both pretty new.
The difference, I'm sure, is a local distro patch enabling -fpie by default.
I'm hoping that we can just use
--- a/tests/tcg/i386/Makefile.target
+++ b/tests/tcg/i386/Makefile.target
@@ -10,6 +10,9 @@ ALL_X86_TESTS=$(I386_SRCS:.c=)
SKIP_I386_TESTS=test-i386-ssse3
X86_64_TESTS:=$(filter test-i386-ssse3, $(ALL_X86_TESTS))
+# test-i386 has non-pic calls into 16-bit mode
+test-i386: CFLAGS += -fno-pie
+
test-i386-sse-exceptions: CFLAGS += -msse4.1 -mfpmath=sse
run-test-i386-sse-exceptions: QEMU_OPTS += -cpu max
run-plugin-test-i386-sse-exceptions-%: QEMU_OPTS += -cpu max
configure will set CFLAGS_NOPIE in config-host.mak, but I don't know
if you have access to that here. (It does suggest that there are cases
where -fno-pie isn't available, though I guess they might be non-x86.)
I think it's merely old compilers. We do have to be worried about old host
compilers here. I'm hoping that gitlab will find out if our oldest docker
build will find out one way or another.
r~