From 2b7ee000cd3dd49283f73a95bb0a09cb2de7039f Mon Sep 17 00:00:00 2001 From: grischka Date: Thu, 15 Dec 2016 17:04:07 +0100 Subject: [PATCH] tests: add .so/.dll creation test Also remove bitfield test from tcctest.c because gcc versions don't agree among each other. --- configure | 3 +++ tests/Makefile | 20 ++++++++++++++++++++ tests/tcctest.c | 9 --------- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/configure b/configure index f02d6e4..42821ce 100755 --- a/configure +++ b/configure @@ -38,6 +38,7 @@ bigendian="no" mingw32="no" LIBSUF=".a" EXESUF="" +DLLSUF=".so" tcc_sysincludepaths="" tcc_libpaths="" tcc_crtprefix="" @@ -222,6 +223,7 @@ if test "$mingw32" = "yes" ; then infodir="${sharedir}/info" LIBSUF=".lib" EXESUF=".exe" + DLLSUF=".dll" else if test -z "$prefix" ; then prefix="/usr/local" @@ -416,6 +418,7 @@ CFLAGS=$CFLAGS LDFLAGS=$LDFLAGS LIBSUF=$LIBSUF EXESUF=$EXESUF +DLLSUF=$DLLSUF EOF print_inc() { diff --git a/tests/Makefile b/tests/Makefile index 50b3a8c..a86e8a2 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -13,6 +13,7 @@ TESTS = \ hello-run \ libtest \ test3 \ + dlltest \ abitest \ vla_test-run \ tests2-dir \ @@ -40,6 +41,9 @@ endif ifeq ($(CONFIG_arm_eabi),yes) TESTS := $(filter-out test3,$(TESTS)) endif +ifeq (,$(filter i386 x86-64,$(ARCH))) + TESTS := $(filter-out dlltest,$(TESTS)) +endif # run local version of tcc with local libraries and includes TCCFLAGS = -B$(TOP) -I$(TOPSRC)/include -I$(TOPSRC) -I$(TOP) @@ -126,6 +130,22 @@ test4: tcctest.c test.ref ./tcctest2 > test2.out @if diff -u test.ref test2.out ; then echo "Static Auto Test OK"; fi +# use tcc to create libtcc.so/.dll and the tcc(.exe) frontend and run them +dlltest: + @echo ------------ $@ ------------ + $(TCC) -DONE_SOURCE $(NATIVE_DEFINES) -DLIBTCC_AS_DLL ../libtcc.c $(LIBS) -shared -o libtcc2$(DLLSUF) + $(TCC) $(NATIVE_DEFINES) ../tcc.c libtcc2$(DLLSUF) $(LIBS) -Wl,-rpath=. -o tcc2$(EXESUF) + ./tcc2$(EXESUF) $(TCCFLAGS) $(RUN_TCC) -run ../examples/ex1.c +ifndef CONFIG_WIN32 + @echo ------------ $@ with PIC ------------ + $(CC) $(CFLAGS) -fPIC -DONE_SOURCE $(NATIVE_DEFINES) -DLIBTCC_AS_DLL -c ../libtcc.c + $(TCC) libtcc.o $(LIBS) -shared -o libtcc2$(DLLSUF) + $(TCC) $(NATIVE_DEFINES) ../tcc.c libtcc2$(DLLSUF) $(LIBS) -Wl,-rpath=. -o tcc2$(EXESUF) + ./tcc2$(EXESUF) $(TCCFLAGS) $(RUN_TCC) -run ../examples/ex1.c +endif + @rm tcc2$(EXESUF) libtcc2$(DLLSUF) + + # memory and bound check auto test BOUNDS_OK = 1 4 8 10 14 BOUNDS_FAIL= 2 5 7 9 11 12 13 15 diff --git a/tests/tcctest.c b/tests/tcctest.c index b0fe8f3..5851fb4 100644 --- a/tests/tcctest.c +++ b/tests/tcctest.c @@ -1634,15 +1634,6 @@ void bitfield_test(void) st2.f3 = a; st2.f2++; printf("%lld %lld %lld\n", st2.f1, st2.f2, st2.f3); - struct sbf3 { - int f1 : 7; - int f2 : 1; - char f3; - int f4 : 8; - int f5 : 1; - int f6 : 16; - } st3; - printf("sizeof(st3) = %d\n", sizeof(st3)); } #ifdef __x86_64__