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   * )
  31     echo "Test passed; only valid for Linux"
  32     exit 0;
  33     ;;
  34 esac
  35 
  36 # Choose arch: i386 or amd64 (test is Linux-specific)
  37 # Cannot simply look at TESTVMOPTS as -d64 is not
  38 # passed if there is only a 64-bit JVM available.
  39 
  40 ${TESTJAVA}/bin/java ${TESTVMOPTS} -version 2>1 | grep "64-Bit" >/dev/null
  41 if [ "$?" = "0" ]
  42 then
  43   ARCH=amd64
  44 else
  45   ARCH=i386
  46 fi
  47 
  48 LD_LIBRARY_PATH=.:${TESTJAVA}/jre/lib/${ARCH}/client:/usr/openwin/lib:/usr/dt/lib:/usr/lib:$LD_LIBRARY_PATH
  49 export LD_LIBRARY_PATH
  50 
  51 THIS_DIR=`pwd`
  52 
  53 cp ${TESTSRC}${FS}invoke.c ${THIS_DIR}
  54 cp ${TESTSRC}${FS}T.java ${THIS_DIR}
  55 
  56 
  57 ${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -fullversion
  58 
  59 ${TESTJAVA}${FS}bin${FS}javac T.java
  60 
  61 gcc -o invoke -I${TESTJAVA}/include -I${TESTJAVA}/include/linux invoke.c ${TESTJAVA}/jre/lib/${ARCH}/client/libjvm.so
  62 ./invoke
  63 exit $?