Message ID | 20200116230809.19078-3-richard.henderson@linaro.org |
---|---|
State | New |
Headers | show |
Series | target/arm: Fix ComputePAC (LP 1859713) | expand |
On 1/17/20 12:08 AM, Richard Henderson wrote: > Hiding the required architecture within asm() is not correct. > Add it to the cflags of the (cross-) compiler. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > tests/tcg/aarch64/pauth-1.c | 2 -- > tests/tcg/aarch64/pauth-2.c | 2 -- > tests/tcg/aarch64/Makefile.target | 1 + > 3 files changed, 1 insertion(+), 4 deletions(-) > > diff --git a/tests/tcg/aarch64/pauth-1.c b/tests/tcg/aarch64/pauth-1.c > index a3c1443cd0..ea0984ea82 100644 > --- a/tests/tcg/aarch64/pauth-1.c > +++ b/tests/tcg/aarch64/pauth-1.c > @@ -2,8 +2,6 @@ > #include <sys/prctl.h> > #include <stdio.h> > > -asm(".arch armv8.4-a"); > - > #ifndef PR_PAC_RESET_KEYS > #define PR_PAC_RESET_KEYS 54 > #define PR_PAC_APDAKEY (1 << 2) > diff --git a/tests/tcg/aarch64/pauth-2.c b/tests/tcg/aarch64/pauth-2.c > index 2fe030ba3d..9bba0beb63 100644 > --- a/tests/tcg/aarch64/pauth-2.c > +++ b/tests/tcg/aarch64/pauth-2.c > @@ -1,8 +1,6 @@ > #include <stdint.h> > #include <assert.h> > > -asm(".arch armv8.4-a"); > - > void do_test(uint64_t value) > { > uint64_t salt1, salt2; > diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile.target > index df3fe8032c..374c8d6830 100644 > --- a/tests/tcg/aarch64/Makefile.target > +++ b/tests/tcg/aarch64/Makefile.target > @@ -20,6 +20,7 @@ run-fcvt: fcvt > # Pauth Tests > AARCH64_TESTS += pauth-1 pauth-2 > run-pauth-%: QEMU_OPTS += -cpu max > +pauth-%: CFLAGS += -march=armv8.3-a Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > > # Semihosting smoke test for linux-user > AARCH64_TESTS += semihosting >
On Thu, 16 Jan 2020 at 23:08, Richard Henderson <richard.henderson@linaro.org> wrote: > > Hiding the required architecture within asm() is not correct. > Add it to the cflags of the (cross-) compiler. This commit message implies that we're just moving the architecture specification from the asm statements to the cflags, but the patch also changes the requested value from v8.4-a to v8.3-a. I plan to tweak the commit message to be a bit clearer: We were incorrectly requiring ARMv8.4 support for the pauth tests, but Pointer Authentication is an ARMv8.3 extension. Further, hiding the required architecture within asm() is not correct. Correct the architecture version requested, and specify it in the cflags of the (cross-) compiler rather than in the asm. thanks -- PMM
diff --git a/tests/tcg/aarch64/pauth-1.c b/tests/tcg/aarch64/pauth-1.c index a3c1443cd0..ea0984ea82 100644 --- a/tests/tcg/aarch64/pauth-1.c +++ b/tests/tcg/aarch64/pauth-1.c @@ -2,8 +2,6 @@ #include <sys/prctl.h> #include <stdio.h> -asm(".arch armv8.4-a"); - #ifndef PR_PAC_RESET_KEYS #define PR_PAC_RESET_KEYS 54 #define PR_PAC_APDAKEY (1 << 2) diff --git a/tests/tcg/aarch64/pauth-2.c b/tests/tcg/aarch64/pauth-2.c index 2fe030ba3d..9bba0beb63 100644 --- a/tests/tcg/aarch64/pauth-2.c +++ b/tests/tcg/aarch64/pauth-2.c @@ -1,8 +1,6 @@ #include <stdint.h> #include <assert.h> -asm(".arch armv8.4-a"); - void do_test(uint64_t value) { uint64_t salt1, salt2; diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile.target index df3fe8032c..374c8d6830 100644 --- a/tests/tcg/aarch64/Makefile.target +++ b/tests/tcg/aarch64/Makefile.target @@ -20,6 +20,7 @@ run-fcvt: fcvt # Pauth Tests AARCH64_TESTS += pauth-1 pauth-2 run-pauth-%: QEMU_OPTS += -cpu max +pauth-%: CFLAGS += -march=armv8.3-a # Semihosting smoke test for linux-user AARCH64_TESTS += semihosting
Hiding the required architecture within asm() is not correct. Add it to the cflags of the (cross-) compiler. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- tests/tcg/aarch64/pauth-1.c | 2 -- tests/tcg/aarch64/pauth-2.c | 2 -- tests/tcg/aarch64/Makefile.target | 1 + 3 files changed, 1 insertion(+), 4 deletions(-)