8037279: runtime/6929067/Test6929067.sh crashes on 32bit linux
The test compile launcher with TESTJAVA but attempt to load vm from COMPILEJAVA Reviewed-by: sla, sspitsyn
This commit is contained in:
parent
c8990959f2
commit
0301b791ef
@ -18,115 +18,39 @@ echo "TESTSRC=${TESTSRC}"
|
|||||||
## Adding common setup Variables for running shell tests.
|
## Adding common setup Variables for running shell tests.
|
||||||
. ${TESTSRC}/../../test_env.sh
|
. ${TESTSRC}/../../test_env.sh
|
||||||
|
|
||||||
# set platform-dependent variables
|
if [ "${VM_OS}" != "linux" ]
|
||||||
OS=`uname -s`
|
|
||||||
case "$OS" in
|
|
||||||
Linux)
|
|
||||||
gcc_cmd=`which gcc`
|
|
||||||
if [ "x$gcc_cmd" == "x" ]; then
|
|
||||||
echo "WARNING: gcc not found. Cannot execute test." 2>&1
|
|
||||||
exit 0;
|
|
||||||
fi
|
|
||||||
NULL=/dev/null
|
|
||||||
PS=":"
|
|
||||||
FS="/"
|
|
||||||
;;
|
|
||||||
* )
|
|
||||||
echo "Test passed; only valid for Linux"
|
|
||||||
exit 0;
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -Xinternalversion > vm_version.out 2>&1
|
|
||||||
|
|
||||||
# Bitness:
|
|
||||||
# Cannot simply look at TESTVMOPTS as -d64 is not
|
|
||||||
# passed if there is only a 64-bit JVM available.
|
|
||||||
|
|
||||||
grep "64-Bit" vm_version.out > ${NULL}
|
|
||||||
if [ "$?" = "0" ]
|
|
||||||
then
|
then
|
||||||
COMP_FLAG="-m64"
|
echo "Test only valid for Linux"
|
||||||
else
|
exit 0
|
||||||
COMP_FLAG="-m32"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
gcc_cmd=`which gcc`
|
||||||
# Architecture:
|
if [ "x$gcc_cmd" = "x" ]; then
|
||||||
# Translate uname output to JVM directory name, but permit testing
|
echo "WARNING: gcc not found. Cannot execute test." 2>&1
|
||||||
# 32-bit x86 on an x64 platform.
|
exit 0;
|
||||||
ARCH=`uname -m`
|
|
||||||
case "$ARCH" in
|
|
||||||
x86_64)
|
|
||||||
if [ "$COMP_FLAG" = "-m32" ]; then
|
|
||||||
ARCH=i386
|
|
||||||
else
|
|
||||||
ARCH=amd64
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
ppc64)
|
|
||||||
if [ "$COMP_FLAG" = "-m32" ]; then
|
|
||||||
ARCH=ppc
|
|
||||||
else
|
|
||||||
ARCH=ppc64
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
sparc64)
|
|
||||||
if [ "$COMP_FLAG" = "-m32" ]; then
|
|
||||||
ARCH=sparc
|
|
||||||
else
|
|
||||||
ARCH=sparc64
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
arm*)
|
|
||||||
# 32-bit ARM machine: compiler may not recognise -m32
|
|
||||||
COMP_FLAG=""
|
|
||||||
ARCH=arm
|
|
||||||
;;
|
|
||||||
aarch64)
|
|
||||||
# 64-bit arm machine, could be testing 32 or 64-bit:
|
|
||||||
if [ "$COMP_FLAG" = "-m32" ]; then
|
|
||||||
ARCH=arm
|
|
||||||
else
|
|
||||||
ARCH=aarch64
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
i586)
|
|
||||||
ARCH=i386
|
|
||||||
;;
|
|
||||||
i686)
|
|
||||||
ARCH=i386
|
|
||||||
;;
|
|
||||||
# Assuming other ARCH values need no translation
|
|
||||||
esac
|
|
||||||
|
|
||||||
|
|
||||||
# VM type: need to know server or client
|
|
||||||
VMTYPE=client
|
|
||||||
grep Server vm_version.out > ${NULL}
|
|
||||||
if [ "$?" = "0" ]
|
|
||||||
then
|
|
||||||
VMTYPE=server
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
CFLAGS=-m${VM_BITS}
|
||||||
|
|
||||||
LD_LIBRARY_PATH=.:${COMPILEJAVA}/jre/lib/${ARCH}/${VMTYPE}:/usr/lib:$LD_LIBRARY_PATH
|
LD_LIBRARY_PATH=.:${TESTJAVA}/jre/lib/${VM_CPU}/${VM_TYPE}:/usr/lib:$LD_LIBRARY_PATH
|
||||||
export LD_LIBRARY_PATH
|
export LD_LIBRARY_PATH
|
||||||
|
|
||||||
cp ${TESTSRC}${FS}*.java ${THIS_DIR}
|
cp ${TESTSRC}/*.java ${THIS_DIR}
|
||||||
${COMPILEJAVA}${FS}bin${FS}javac *.java
|
${COMPILEJAVA}/bin/javac *.java
|
||||||
|
|
||||||
|
echo "Architecture: ${VM_CPU}"
|
||||||
|
echo "Compilation flag: ${CFLAGS}"
|
||||||
|
echo "VM type: ${VM_TYPE}"
|
||||||
|
echo "LD_LIBRARY_PATH: ${LD_LIBRARY_PATH}"
|
||||||
|
|
||||||
echo "Architecture: ${ARCH}"
|
|
||||||
echo "Compilation flag: ${COMP_FLAG}"
|
|
||||||
echo "VM type: ${VMTYPE}"
|
|
||||||
# Note pthread may not be found thus invoke creation will fail to be created.
|
# Note pthread may not be found thus invoke creation will fail to be created.
|
||||||
# Check to ensure you have a /usr/lib/libpthread.so if you don't please look
|
# Check to ensure you have a /usr/lib/libpthread.so if you don't please look
|
||||||
# for /usr/lib/`uname -m`-linux-gnu version ensure to add that path to below compilation.
|
# for /usr/lib/`uname -m`-linux-gnu version ensure to add that path to below compilation.
|
||||||
|
|
||||||
$gcc_cmd -DLINUX ${COMP_FLAG} -o invoke \
|
$gcc_cmd -DLINUX ${CFLAGS} -o invoke \
|
||||||
-I${COMPILEJAVA}/include -I${COMPILEJAVA}/include/linux \
|
-I${TESTJAVA}/include -I${TESTJAVA}/include/linux \
|
||||||
-L${COMPILEJAVA}/jre/lib/${ARCH}/${VMTYPE} \
|
-L${TESTJAVA}/jre/lib/${VM_CPU}/${VM_TYPE} \
|
||||||
${TESTSRC}${FS}invoke.c -ljvm -lpthread
|
${TESTSRC}/invoke.c -ljvm -lpthread
|
||||||
|
|
||||||
./invoke
|
./invoke
|
||||||
exit $?
|
exit $?
|
||||||
|
Loading…
x
Reference in New Issue
Block a user