Message ID | 20210512040250.203953-3-iii@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/i386: Make sure that vsyscall's tb->size != 0 | expand |
On 5/11/21 11:02 PM, Ilya Leoshkevich wrote: > Having a small test will prevent trivial regressions in the future. > > Signed-off-by: Ilya Leoshkevich<iii@linux.ibm.com> > --- > tests/tcg/x86_64/Makefile.target | 6 +++++- > tests/tcg/x86_64/vsyscall.c | 11 +++++++++++ > 2 files changed, 16 insertions(+), 1 deletion(-) > create mode 100644 tests/tcg/x86_64/vsyscall.c Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
On Wed, 12 May 2021 06:02:50 +0200 Ilya Leoshkevich <iii@linux.ibm.com> wrote: > Having a small test will prevent trivial regressions in the future. > > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> > --- > tests/tcg/x86_64/Makefile.target | 6 +++++- > tests/tcg/x86_64/vsyscall.c | 11 +++++++++++ > 2 files changed, 16 insertions(+), 1 deletion(-) > create mode 100644 tests/tcg/x86_64/vsyscall.c > diff --git a/tests/tcg/x86_64/vsyscall.c b/tests/tcg/x86_64/vsyscall.c > new file mode 100644 > index 0000000000..b9b7f87459 > --- /dev/null > +++ b/tests/tcg/x86_64/vsyscall.c > @@ -0,0 +1,11 @@ > +#include <stdio.h> > +#include <time.h> > + > +#define VSYSCALL_PAGE 0xffffffffff600000 > +#define TIME_OFFSET 0x400 > +typedef time_t (*time_func)(time_t *); > + > +int main(void) > +{ > + printf("%ld\n", ((time_func)(VSYSCALL_PAGE + TIME_OFFSET))(NULL)); > +} Fails in https://gitlab.com/cohuck/qemu/-/jobs/1267727559 ("error: control reaches end of non-void function").
On Mon, 2021-05-17 at 14:52 +0200, Cornelia Huck wrote: > On Wed, 12 May 2021 06:02:50 +0200 > Ilya Leoshkevich <iii@linux.ibm.com> wrote: > > > Having a small test will prevent trivial regressions in the future. > > > > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> > > --- > > tests/tcg/x86_64/Makefile.target | 6 +++++- > > tests/tcg/x86_64/vsyscall.c | 11 +++++++++++ > > 2 files changed, 16 insertions(+), 1 deletion(-) > > create mode 100644 tests/tcg/x86_64/vsyscall.c > > > diff --git a/tests/tcg/x86_64/vsyscall.c > > b/tests/tcg/x86_64/vsyscall.c > > new file mode 100644 > > index 0000000000..b9b7f87459 > > --- /dev/null > > +++ b/tests/tcg/x86_64/vsyscall.c > > @@ -0,0 +1,11 @@ > > +#include <stdio.h> > > +#include <time.h> > > + > > +#define VSYSCALL_PAGE 0xffffffffff600000 > > +#define TIME_OFFSET 0x400 > > +typedef time_t (*time_func)(time_t *); > > + > > +int main(void) > > +{ > > + printf("%ld\n", ((time_func)(VSYSCALL_PAGE + > > TIME_OFFSET))(NULL)); > > +} > > Fails in https://gitlab.com/cohuck/qemu/-/jobs/1267727559 ("error: > control reaches end of non-void function"). I always thought that omitting return in main() is allowed, but turns out this is a C99-only thing. I should have probably used `make docker-all-tests` instead of just `make check` to catch this. I will send a v2.
diff --git a/tests/tcg/x86_64/Makefile.target b/tests/tcg/x86_64/Makefile.target index 20bf96202a..2151ea6302 100644 --- a/tests/tcg/x86_64/Makefile.target +++ b/tests/tcg/x86_64/Makefile.target @@ -3,14 +3,18 @@ # x86_64 tests - included from tests/tcg/Makefile.target # # Currently we only build test-x86_64 and test-i386-ssse3 from -# $(SRC)/tests/tcg/i386/ +# $(SRC_PATH)/tests/tcg/i386/ # include $(SRC_PATH)/tests/tcg/i386/Makefile.target +X86_64_TESTS += vsyscall TESTS=$(MULTIARCH_TESTS) $(X86_64_TESTS) test-x86_64 QEMU_OPTS += -cpu max test-x86_64: LDFLAGS+=-lm -lc test-x86_64: test-i386.c test-i386.h test-i386-shift.h test-i386-muldiv.h $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) + +vsyscall: $(SRC_PATH)/tests/tcg/x86_64/vsyscall.c + $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) diff --git a/tests/tcg/x86_64/vsyscall.c b/tests/tcg/x86_64/vsyscall.c new file mode 100644 index 0000000000..b9b7f87459 --- /dev/null +++ b/tests/tcg/x86_64/vsyscall.c @@ -0,0 +1,11 @@ +#include <stdio.h> +#include <time.h> + +#define VSYSCALL_PAGE 0xffffffffff600000 +#define TIME_OFFSET 0x400 +typedef time_t (*time_func)(time_t *); + +int main(void) +{ + printf("%ld\n", ((time_func)(VSYSCALL_PAGE + TIME_OFFSET))(NULL)); +}
Having a small test will prevent trivial regressions in the future. Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> --- tests/tcg/x86_64/Makefile.target | 6 +++++- tests/tcg/x86_64/vsyscall.c | 11 +++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 tests/tcg/x86_64/vsyscall.c