Message ID | 20190205170510.21984-12-peter.maydell@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [PULL,01/22] target/arm: Introduce isar_feature_aa64_bti | expand |
On Tue, Feb 5, 2019 at 6:28 PM Peter Maydell <peter.maydell@linaro.org> wrote: > > From: Richard Henderson <richard.henderson@linaro.org> > > Reviewed-by: Alex Bennée <alex.bennee@linaro.org> > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > Message-id: 20190201195404.30486-3-richard.henderson@linaro.org > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > --- > tests/tcg/aarch64/Makefile.target | 6 +++++- > tests/tcg/aarch64/pauth-1.c | 23 +++++++++++++++++++++++ > 2 files changed, 28 insertions(+), 1 deletion(-) > create mode 100644 tests/tcg/aarch64/pauth-1.c > > diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile.target > index 08c45b8470c..2bb914975be 100644 > --- a/tests/tcg/aarch64/Makefile.target > +++ b/tests/tcg/aarch64/Makefile.target > @@ -8,10 +8,14 @@ VPATH += $(AARCH64_SRC) > # we don't build any of the ARM tests > AARCH64_TESTS=$(filter-out $(ARM_TESTS), $(TESTS)) > AARCH64_TESTS+=fcvt > -TESTS:=$(AARCH64_TESTS) > > fcvt: LDFLAGS+=-lm > > run-fcvt: fcvt > $(call run-test,$<,$(QEMU) $<, "$< on $(TARGET_NAME)") > $(call diff-out,$<,$(AARCH64_SRC)/fcvt.ref) > + > +AARCH64_TESTS += pauth-1 > +run-pauth-%: QEMU += -cpu max > + > +TESTS:=$(AARCH64_TESTS) > diff --git a/tests/tcg/aarch64/pauth-1.c b/tests/tcg/aarch64/pauth-1.c > new file mode 100644 > index 00000000000..ae6dc05c2b1 > --- /dev/null > +++ b/tests/tcg/aarch64/pauth-1.c > @@ -0,0 +1,23 @@ > +#include <assert.h> > +#include <sys/prctl.h> > + > +asm(".arch armv8.4-a"); > + > +#ifndef PR_PAC_RESET_KEYS > +#define PR_PAC_RESET_KEYS 54 > +#define PR_PAC_APDAKEY (1 << 2) > +#endif > + > +int main() > +{ > + int x; > + void *p0 = &x, *p1, *p2; > + > + asm volatile("pacdza %0" : "=r"(p1) : "0"(p0)); > + prctl(PR_PAC_RESET_KEYS, PR_PAC_APDAKEY, 0, 0, 0); > + asm volatile("pacdza %0" : "=r"(p2) : "0"(p0)); > + > + assert(p1 != p0); > + assert(p1 != p2); > + return 0; > +} > -- > 2.20.1 Travis-CI is getting an error with this test: tests/docker/docker.py cc --user 2000 --cc aarch64-linux-gnu-gcc -i qemu:debian-arm64-cross -s . -- -Wall -O0 -g -fno-strict-aliasing tests/tcg/aarch64/pauth-1.c -o pauth-1 -static /tmp/ccHrAqV2.s: Assembler messages: /tmp/ccHrAqV2.s:7: Error: unknown architecture `armv8.4-a' /tmp/ccHrAqV2.s:41: Error: selected processor does not support `pacdza x0' /tmp/ccHrAqV2.s:56: Error: selected processor does not support `pacdza x0' tests/tcg/Makefile:79: recipe for target 'pauth-1' failed make[2]: *** [pauth-1] Error 1 make[2]: Leaving directory 'aarch64-linux-user/tests' tests/tcg/Makefile.include:52: recipe for target 'docker-build-guest-tests' failed make[1]: *** [docker-build-guest-tests] Error 2 make[1]: Leaving directory 'aarch64-linux-user' tests/Makefile.include:1030: recipe for target 'build-tcg-tests-aarch64-linux-user' failed make: *** [build-tcg-tests-aarch64-linux-user] Error 2
Philippe Mathieu-Daudé <philmd@redhat.com> writes: > On Tue, Feb 5, 2019 at 6:28 PM Peter Maydell <peter.maydell@linaro.org> wrote: >> >> From: Richard Henderson <richard.henderson@linaro.org> >> >> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> >> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> >> Message-id: 20190201195404.30486-3-richard.henderson@linaro.org >> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> >> --- >> tests/tcg/aarch64/Makefile.target | 6 +++++- >> tests/tcg/aarch64/pauth-1.c | 23 +++++++++++++++++++++++ >> 2 files changed, 28 insertions(+), 1 deletion(-) >> create mode 100644 tests/tcg/aarch64/pauth-1.c >> >> diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile.target >> index 08c45b8470c..2bb914975be 100644 >> --- a/tests/tcg/aarch64/Makefile.target >> +++ b/tests/tcg/aarch64/Makefile.target >> @@ -8,10 +8,14 @@ VPATH += $(AARCH64_SRC) >> # we don't build any of the ARM tests >> AARCH64_TESTS=$(filter-out $(ARM_TESTS), $(TESTS)) >> AARCH64_TESTS+=fcvt >> -TESTS:=$(AARCH64_TESTS) >> >> fcvt: LDFLAGS+=-lm >> >> run-fcvt: fcvt >> $(call run-test,$<,$(QEMU) $<, "$< on $(TARGET_NAME)") >> $(call diff-out,$<,$(AARCH64_SRC)/fcvt.ref) >> + >> +AARCH64_TESTS += pauth-1 >> +run-pauth-%: QEMU += -cpu max >> + >> +TESTS:=$(AARCH64_TESTS) >> diff --git a/tests/tcg/aarch64/pauth-1.c b/tests/tcg/aarch64/pauth-1.c >> new file mode 100644 >> index 00000000000..ae6dc05c2b1 >> --- /dev/null >> +++ b/tests/tcg/aarch64/pauth-1.c >> @@ -0,0 +1,23 @@ >> +#include <assert.h> >> +#include <sys/prctl.h> >> + >> +asm(".arch armv8.4-a"); >> + >> +#ifndef PR_PAC_RESET_KEYS >> +#define PR_PAC_RESET_KEYS 54 >> +#define PR_PAC_APDAKEY (1 << 2) >> +#endif >> + >> +int main() >> +{ >> + int x; >> + void *p0 = &x, *p1, *p2; >> + >> + asm volatile("pacdza %0" : "=r"(p1) : "0"(p0)); >> + prctl(PR_PAC_RESET_KEYS, PR_PAC_APDAKEY, 0, 0, 0); >> + asm volatile("pacdza %0" : "=r"(p2) : "0"(p0)); >> + >> + assert(p1 != p0); >> + assert(p1 != p2); >> + return 0; >> +} >> -- >> 2.20.1 > > Travis-CI is getting an error with this test: > > tests/docker/docker.py cc --user 2000 --cc aarch64-linux-gnu-gcc -i > qemu:debian-arm64-cross -s . -- -Wall -O0 -g -fno-strict-aliasing > tests/tcg/aarch64/pauth-1.c -o pauth-1 -static > /tmp/ccHrAqV2.s: Assembler messages: > /tmp/ccHrAqV2.s:7: Error: unknown architecture `armv8.4-a' > /tmp/ccHrAqV2.s:41: Error: selected processor does not support `pacdza x0' > /tmp/ccHrAqV2.s:56: Error: selected processor does not support `pacdza x0' > tests/tcg/Makefile:79: recipe for target 'pauth-1' failed > make[2]: *** [pauth-1] Error 1 > make[2]: Leaving directory 'aarch64-linux-user/tests' > tests/tcg/Makefile.include:52: recipe for target > 'docker-build-guest-tests' failed > make[1]: *** [docker-build-guest-tests] Error 2 > make[1]: Leaving directory 'aarch64-linux-user' > tests/Makefile.include:1030: recipe for target > 'build-tcg-tests-aarch64-linux-user' failed > make: *** [build-tcg-tests-aarch64-linux-user] Error 2 The fix for that is in my latest PR. -- Alex Bennée
On Mon, Feb 11, 2019 at 5:04 PM Alex Bennée <alex.bennee@linaro.org> wrote: > Philippe Mathieu-Daudé <philmd@redhat.com> writes: > > > > Travis-CI is getting an error with this test: > > > > tests/docker/docker.py cc --user 2000 --cc aarch64-linux-gnu-gcc -i > > qemu:debian-arm64-cross -s . -- -Wall -O0 -g -fno-strict-aliasing > > tests/tcg/aarch64/pauth-1.c -o pauth-1 -static > > /tmp/ccHrAqV2.s: Assembler messages: > > /tmp/ccHrAqV2.s:7: Error: unknown architecture `armv8.4-a' > > /tmp/ccHrAqV2.s:41: Error: selected processor does not support `pacdza x0' > > /tmp/ccHrAqV2.s:56: Error: selected processor does not support `pacdza x0' > > tests/tcg/Makefile:79: recipe for target 'pauth-1' failed > > make[2]: *** [pauth-1] Error 1 > > make[2]: Leaving directory 'aarch64-linux-user/tests' > > tests/tcg/Makefile.include:52: recipe for target > > 'docker-build-guest-tests' failed > > make[1]: *** [docker-build-guest-tests] Error 2 > > make[1]: Leaving directory 'aarch64-linux-user' > > tests/Makefile.include:1030: recipe for target > > 'build-tcg-tests-aarch64-linux-user' failed > > make: *** [build-tcg-tests-aarch64-linux-user] Error 2 > > The fix for that is in my latest PR. Thanks Alex!
diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile.target index 08c45b8470c..2bb914975be 100644 --- a/tests/tcg/aarch64/Makefile.target +++ b/tests/tcg/aarch64/Makefile.target @@ -8,10 +8,14 @@ VPATH += $(AARCH64_SRC) # we don't build any of the ARM tests AARCH64_TESTS=$(filter-out $(ARM_TESTS), $(TESTS)) AARCH64_TESTS+=fcvt -TESTS:=$(AARCH64_TESTS) fcvt: LDFLAGS+=-lm run-fcvt: fcvt $(call run-test,$<,$(QEMU) $<, "$< on $(TARGET_NAME)") $(call diff-out,$<,$(AARCH64_SRC)/fcvt.ref) + +AARCH64_TESTS += pauth-1 +run-pauth-%: QEMU += -cpu max + +TESTS:=$(AARCH64_TESTS) diff --git a/tests/tcg/aarch64/pauth-1.c b/tests/tcg/aarch64/pauth-1.c new file mode 100644 index 00000000000..ae6dc05c2b1 --- /dev/null +++ b/tests/tcg/aarch64/pauth-1.c @@ -0,0 +1,23 @@ +#include <assert.h> +#include <sys/prctl.h> + +asm(".arch armv8.4-a"); + +#ifndef PR_PAC_RESET_KEYS +#define PR_PAC_RESET_KEYS 54 +#define PR_PAC_APDAKEY (1 << 2) +#endif + +int main() +{ + int x; + void *p0 = &x, *p1, *p2; + + asm volatile("pacdza %0" : "=r"(p1) : "0"(p0)); + prctl(PR_PAC_RESET_KEYS, PR_PAC_APDAKEY, 0, 0, 0); + asm volatile("pacdza %0" : "=r"(p2) : "0"(p0)); + + assert(p1 != p0); + assert(p1 != p2); + return 0; +}