Thu, 13 Dec 2012 09:05:20 -0800
Added tag jdk8-b68 for changeset 121aa71316af
1 #!/bin/sh
3 ##
4 ## @test Test6929067.sh
5 ## @bug 6929067
6 ## @summary Stack guard pages should be removed when thread is detached
7 ## @compile T.java
8 ## @run shell Test6929067.sh
9 ##
11 if [ "${TESTSRC}" = "" ]
12 then TESTSRC=.
13 fi
15 if [ "${TESTJAVA}" = "" ]
16 then
17 PARENT=`dirname \`which java\``
18 TESTJAVA=`dirname ${PARENT}`
19 echo "TESTJAVA not set, selecting " ${TESTJAVA}
20 echo "If this is incorrect, try setting the variable manually."
21 fi
23 # set platform-dependent variables
24 OS=`uname -s`
25 case "$OS" in
26 Linux)
27 NULL=/dev/null
28 PS=":"
29 FS="/"
30 ;;
31 * )
32 echo "Test passed; only valid for Linux"
33 exit 0;
34 ;;
35 esac
37 ${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -Xinternalversion > vm_version.out 2>&1
39 # Bitness:
40 # Cannot simply look at TESTVMOPTS as -d64 is not
41 # passed if there is only a 64-bit JVM available.
43 grep "64-Bit" vm_version.out > ${NULL}
44 if [ "$?" = "0" ]
45 then
46 COMP_FLAG="-m64"
47 else
48 COMP_FLAG="-m32"
49 fi
52 # Architecture:
53 # Translate uname output to JVM directory name, but permit testing
54 # 32-bit x86 on an x64 platform.
55 ARCH=`uname -m`
56 case "$ARCH" in
57 x86_64)
58 if [ "$COMP_FLAG" = "-m32" ]; then
59 ARCH=i386
60 else
61 ARCH=amd64
62 fi
63 ;;
64 ppc64)
65 if [ "$COMP_FLAG" = "-m32" ]; then
66 ARCH=ppc
67 else
68 ARCH=ppc64
69 fi
70 ;;
71 sparc64)
72 if [ "$COMP_FLAG" = "-m32" ]; then
73 ARCH=sparc
74 else
75 ARCH=sparc64
76 fi
77 ;;
78 arm*)
79 # 32-bit ARM machine: compiler may not recognise -m32
80 COMP_FLAG=""
81 ARCH=arm
82 ;;
83 aarch64)
84 # 64-bit arm machine, could be testing 32 or 64-bit:
85 if [ "$COMP_FLAG" = "-m32" ]; then
86 ARCH=arm
87 else
88 ARCH=aarch64
89 fi
90 ;;
91 i586)
92 ARCH=i386
93 ;;
94 i686)
95 ARCH=i386
96 ;;
97 # Assuming other ARCH values need no translation
98 esac
101 # VM type: need to know server or client
102 VMTYPE=client
103 grep Server vm_version.out > ${NULL}
104 if [ "$?" = "0" ]
105 then
106 VMTYPE=server
107 fi
110 LD_LIBRARY_PATH=.:${TESTJAVA}/jre/lib/${ARCH}/${VMTYPE}:/usr/lib:$LD_LIBRARY_PATH
111 export LD_LIBRARY_PATH
113 cp ${TESTSRC}${FS}invoke.c .
115 # Copy the result of our @compile action:
116 cp ${TESTCLASSES}${FS}T.class .
118 ${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -fullversion
120 echo "Architecture: ${ARCH}"
121 echo "Compilation flag: ${COMP_FLAG}"
122 echo "VM type: ${VMTYPE}"
124 gcc -DLINUX ${COMP_FLAG} -o invoke \
125 -I${TESTJAVA}/include -I${TESTJAVA}/include/linux \
126 -L${TESTJAVA}/jre/lib/${ARCH}/${VMTYPE} \
127 -ljvm -lpthread invoke.c
129 ./invoke
130 exit $?