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 $?