1320N/A#!/bin/sh
1320N/A
1320N/A##
1320N/A## @test Test6929067.sh
1320N/A## @bug 6929067
1320N/A## @summary Stack guard pages should be removed when thread is detached
4503N/A## @compile T.java
1320N/A## @run shell Test6929067.sh
1320N/A##
4503N/Aset -x
1320N/Aif [ "${TESTSRC}" = "" ]
4503N/Athen
4503N/A TESTSRC=${PWD}
4503N/A echo "TESTSRC not set. Using "${TESTSRC}" as default"
1320N/Afi
4503N/Aecho "TESTSRC=${TESTSRC}"
4503N/A## Adding common setup Variables for running shell tests.
4503N/A. ${TESTSRC}/../../test_env.sh
1320N/A
1320N/A# set platform-dependent variables
1320N/AOS=`uname -s`
1320N/Acase "$OS" in
1320N/A Linux)
1320N/A NULL=/dev/null
1320N/A PS=":"
1320N/A FS="/"
1320N/A ;;
3948N/A * )
1320N/A echo "Test passed; only valid for Linux"
1320N/A exit 0;
1320N/A ;;
1320N/Aesac
1320N/A
4503N/A${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -Xinternalversion > vm_version.out 2>&1
4503N/A
4503N/A# Bitness:
3743N/A# Cannot simply look at TESTVMOPTS as -d64 is not
3743N/A# passed if there is only a 64-bit JVM available.
3743N/A
4503N/Agrep "64-Bit" vm_version.out > ${NULL}
3743N/Aif [ "$?" = "0" ]
3743N/Athen
4503N/A COMP_FLAG="-m64"
3743N/Aelse
4503N/A COMP_FLAG="-m32"
3743N/Afi
3743N/A
4503N/A
4503N/A# Architecture:
4503N/A# Translate uname output to JVM directory name, but permit testing
4503N/A# 32-bit x86 on an x64 platform.
4503N/AARCH=`uname -m`
4503N/Acase "$ARCH" in
4503N/A x86_64)
4503N/A if [ "$COMP_FLAG" = "-m32" ]; then
4503N/A ARCH=i386
4503N/A else
4503N/A ARCH=amd64
4503N/A fi
4503N/A ;;
4503N/A ppc64)
4503N/A if [ "$COMP_FLAG" = "-m32" ]; then
4503N/A ARCH=ppc
4503N/A else
4503N/A ARCH=ppc64
4503N/A fi
4503N/A ;;
4503N/A sparc64)
4503N/A if [ "$COMP_FLAG" = "-m32" ]; then
4503N/A ARCH=sparc
4503N/A else
4503N/A ARCH=sparc64
4503N/A fi
4503N/A ;;
4503N/A arm*)
4503N/A # 32-bit ARM machine: compiler may not recognise -m32
4503N/A COMP_FLAG=""
4503N/A ARCH=arm
4503N/A ;;
4503N/A aarch64)
4503N/A # 64-bit arm machine, could be testing 32 or 64-bit:
4503N/A if [ "$COMP_FLAG" = "-m32" ]; then
4503N/A ARCH=arm
4503N/A else
4503N/A ARCH=aarch64
4503N/A fi
4503N/A ;;
4503N/A i586)
4503N/A ARCH=i386
4503N/A ;;
4503N/A i686)
4503N/A ARCH=i386
4503N/A ;;
4503N/A # Assuming other ARCH values need no translation
4503N/Aesac
4503N/A
4503N/A
4503N/A# VM type: need to know server or client
4503N/AVMTYPE=client
4503N/Agrep Server vm_version.out > ${NULL}
4503N/Aif [ "$?" = "0" ]
4503N/Athen
4503N/A VMTYPE=server
4503N/Afi
4503N/A
4503N/A
4503N/ALD_LIBRARY_PATH=.:${COMPILEJAVA}/jre/lib/${ARCH}/${VMTYPE}:/usr/lib:$LD_LIBRARY_PATH
1320N/Aexport LD_LIBRARY_PATH
1320N/A
4503N/Acp ${TESTSRC}${FS}invoke.c .
1320N/A
4503N/A# Copy the result of our @compile action:
4503N/Acp ${TESTCLASSES}${FS}T.class .
1320N/A
4503N/Aecho "Architecture: ${ARCH}"
4503N/Aecho "Compilation flag: ${COMP_FLAG}"
4503N/Aecho "VM type: ${VMTYPE}"
4503N/A# Note pthread may not be found thus invoke creation will fail to be created.
4503N/A# Check to ensure you have a /usr/lib/libpthread.so if you don't please look
4503N/A# for /usr/lib/`uname -m`-linux-gnu version ensure to add that path to below compilation.
1320N/A
4503N/Agcc -DLINUX ${COMP_FLAG} -o invoke \
4503N/A -I${COMPILEJAVA}/include -I${COMPILEJAVA}/include/linux \
4503N/A -L${COMPILEJAVA}/jre/lib/${ARCH}/${VMTYPE} \
4503N/A -ljvm -lpthread invoke.c
1320N/A
1320N/A./invoke
1320N/Aexit $?