X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fforeign.test.sh;h=039d1210f576fc49d74d437b78c2fc4dbc0a0d5a;hb=6a0601ab48635465ad3400c290e5cfbca28e5367;hp=ea05cbc555fa3fdc624bb7fc87152f9bb9f91fb0;hpb=f35f14479a64dd97f93d2d91dc154bdc141d6842;p=sbcl.git diff --git a/tests/foreign.test.sh b/tests/foreign.test.sh index ea05cbc..039d121 100644 --- a/tests/foreign.test.sh +++ b/tests/foreign.test.sh @@ -21,13 +21,16 @@ echo //entering foreign.test.sh # and non-linkage-table platforms fail this PUNT=104 -testfilestem=${TMPDIR:-/tmp}/sbcl-foreign-test-$$ +testfiledir=sbcl-foreign-test-$$ +testfilestem=`pwd`/$testfiledir/sbcl-foreign-test +mkdir $testfiledir ## Make some shared object files to test with. build_so() { echo building $1.so - if [ "`uname -m`" = x86_64 ]; then + if [ "`uname -m`" = x86_64 -o "`uname -m`" = amd64 -o \ + "`uname -m`" = mips -o "`uname -m`" = mips64 ]; then CFLAGS="$CFLAGS -fPIC" fi if [ "`uname`" = Darwin ]; then @@ -39,12 +42,62 @@ build_so() { ld $SO_FLAGS -o $1.so $1.o } -echo 'int summish(int x, int y) { return 1 + x + y; }' > $testfilestem.c -echo 'int numberish = 42;' >> $testfilestem.c -echo 'int nummish(int x) { return numberish + x; }' >> $testfilestem.c -echo 'short negative_short() { return -1; }' >> $testfilestem.c -echo 'int negative_int() { return -2; }' >> $testfilestem.c -echo 'long negative_long() { return -3; }' >> $testfilestem.c +cat > $testfilestem.c < $testfilestem-b.c @@ -61,7 +114,7 @@ build_so $testfilestem-c ## Foreign definitions & load -cat > $testfilestem.def.lisp < $testfilestem.base.lisp < $testfilestem.def.lisp < $testfilestem.def.lisp < $testfilestem.def.lisp < $testfilestem.fast.lisp +cat $testfilestem.base.lisp >> $testfilestem.fast.lisp + +echo "(declaim (optimize space))" > $testfilestem.small.lisp +cat $testfilestem.base.lisp >> $testfilestem.small.lisp + # Test code cat > $testfilestem.test.lisp < $testfilestem.test.lisp < $testfilestem.test.lisp <