1 #!/bin/sh 2 3 ## 4 ## @test Test6929067.sh 5 ## @bug 6929067 6 ## @summary Stack guard pages should be removed when thread is detached 7 ## @run shell Test6929067.sh 8 ## 9 10 if [ "${TESTSRC}" = "" ] 11 then TESTSRC=. 12 fi 13 14 if [ "${TESTJAVA}" = "" ] 15 then 16 PARENT=`dirname \`which java\`` 17 TESTJAVA=`dirname ${PARENT}` 18 echo "TESTJAVA not set, selecting " ${TESTJAVA} 19 echo "If this is incorrect, try setting the variable manually." 20 fi 21 22 # set platform-dependent variables 23 OS=`uname -s` 24 case "$OS" in 25 Linux) 26 NULL=/dev/null 27 PS=":" 28 FS="/" 29 ;; 30 SunOS | Windows_* | *BSD) 31 NULL=NUL 32 PS=";" 33 FS="\\" 34 echo "Test passed; only valid for Linux" 35 exit 0; 36 ;; 37 * ) 38 echo "Unrecognized system!" 39 exit 1; 40 ;; 41 esac 42 43 # Choose arch: i386 or amd64 (test is Linux-specific) 44 # Cannot simply look at TESTVMOPTS as -d64 is not 45 # passed if there is only a 64-bit JVM available. 46 47 ${TESTJAVA}/bin/java ${TESTVMOPTS} -version 2>1 | grep "64-Bit" >/dev/null 48 if [ "$?" = "0" ] 49 then 50 ARCH=amd64 51 else 52 ARCH=i386 53 fi 54 55 LD_LIBRARY_PATH=.:${TESTJAVA}/jre/lib/${ARCH}/client:/usr/openwin/lib:/usr/dt/lib:/usr/lib:$LD_LIBRARY_PATH 56 export LD_LIBRARY_PATH 57 58 THIS_DIR=`pwd` 59 60 cp ${TESTSRC}${FS}invoke.c ${THIS_DIR} 61 cp ${TESTSRC}${FS}T.java ${THIS_DIR} 62 63 64 ${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -fullversion 65 66 ${TESTJAVA}${FS}bin${FS}javac T.java 67 68 gcc -o invoke -I${TESTJAVA}/include -I${TESTJAVA}/include/linux invoke.c ${TESTJAVA}/jre/lib/${ARCH}/client/libjvm.so 69 ./invoke 70 exit $?