# HG changeset patch # User Roman Kennke # Date 1417642424 -3600 # Node ID fc41675cd5ade4a3d80577f5aae231fdce83d9b5 # Parent 6c4058e6adaf68e537d74a30a7640f6eacca5231# Parent 83d1d42c3df409c87ef7cb0126343a009857ca71 Merge from upstream jdk8u. diff -r 6c4058e6adaf -r fc41675cd5ad .hgtags --- a/.hgtags Wed Mar 19 21:09:11 2014 +0100 +++ b/.hgtags Wed Dec 03 22:33:44 2014 +0100 @@ -245,12 +245,109 @@ 1e1f86d5d4e22c15a9bf9f1581acddb8c59abae2 jdk8-b121 347009c5881668b1e44f64d56d4a96cb20a183fa jdk8-b122 ff1478785e43718146ffbce97e007f39c3bcaa32 jdk8-b123 +c330fa67c4daffdc86527f1a24941aa5a3500098 jdk8u20-b00 790bbd46b2015e69ce301dae194c2b4141011f2d jdk8-b124 +78abb27c27d988a86e6c82b2cce03cdc04211127 jdk8u20-b01 790bbd46b2015e69ce301dae194c2b4141011f2d jdk8-b125 9ccce5bf1b0ea0d3f3fb871be069f305f9cea530 jdk8-b126 2e2ffb9e4b690c63b32142861177390e0f2c40e9 jdk8-b127 101e42de46869e6604fbf095e1666fbf07fcb93c jdk8-b128 1e5fe865491300cd0c63261ecf8d34e621e1345c jdk8-b129 +cc868070f1959b849c8c3b867771fbdb07b9ba05 jdk8u20-b02 +6a3d3b7feab4d4a8252c63b4ce7d0fab106cf2f7 jdk8u20-b03 +7e1b01df280fb065c5953c48f54ac9d619ecbf1c jdk8u20-b04 +69e0af208dad70fdef65a89ab2c4c468ed9e24b8 jdk8u20-b05 839546caab1285c7699a9c2aa1467f57c9ea7f30 jdk8-b130 0c38dfecab2ad9f9b5b5edf54b991602147cd040 jdk8-b131 2a8f4c022aa03e7916223f3291517dbcc38e07cd jdk8-b132 +c41935d79b8744af8b7b56cd4d4ab781027fb22e jdk8u5-b01 +6f3357d3dbf83c1ef0098bcb853e3aa3b26f4cb8 jdk8u5-b02 +794b4365b6884e9a15f0840792539f5821814127 jdk8u5-b03 +c200d6cb184056e44afe7102913004b717896aa3 jdk8u5-b04 +eb537d7c31e069ac10de0901727515743f7535d2 jdk8u11-b00 +eb537d7c31e069ac10de0901727515743f7535d2 jdk8u5-b05 +75cdae18810a479cc3c0fe8eb9055d968ae31c63 jdk8u5-b06 +b1585984f29320737ca0da5af029b1225a75c476 jdk8u5-b07 +a445d4130af79027fd9d6675b1ad7a8990225749 jdk8u5-b08 +e5403ff707fbd828e56bf390931f236028f9617b jdk8u5-b09 +fae51c73a06d71304c9dbff22984ee501812b972 jdk8u5-b10 +dd3bd272ceedbd69fabafc531b6b1e056659f733 jdk8u5-b11 +3e05b6ae0a1e2bd7352462e9bf8e7262246fb77f jdk8u5-b12 +d81e301cae70f1f95f4bb976ec053c915dee503a jdk8u5-b13 +19dd42ebf97c187fbf53884f45dca84274909c3e jdk8u5-b31 +397902f53444be14aa4e261cd47064fac82919c9 jdk8u11-b01 +6ffd41be920a3e63c5767f36ac725e9e3bf5ec50 jdk8u11-b02 +3078ab9b8d4ad37cf18bf6a1ed49c8015e70ec73 jdk8u11-b03 +7be4371ce4ed33cf779606ef3b6256f316898e08 jdk8u11-b04 +97c6d6a8e5bb3dfc24b9a32711aa0906ea110e23 jdk8u11-b05 +5ea1a19659427ea813ae4a00ae9d54338c7faec6 jdk8u11-b06 +fe460afb120e2312769454f4630cccd406ded3f6 jdk8u11-b07 +81f3392f551c45578cabe29552c670b87170d325 jdk8u11-b08 +390084098df7bffecd0eb2318facc6f0f9a46b70 jdk8u11-b09 +6d324f36e2448f486d0caa67f70e5a6cf5ac6c0d jdk8u11-b10 +f0b9fee1d40a6aae31be4780f70aba02148ec54c jdk8u11-b11 +e85bf9b28eb7f4098eeb25ba0e3afed34058ef09 jdk8u11-b12 +66b17e2403b04cfe98dc1cce270f15ed817d0336 jdk8u11-b31 +ae6a3aec6aa29509a0fd5f53709889b99b1e27da jdk8u20-b06 +cc868070f1959b849c8c3b867771fbdb07b9ba05 jdk8u20-b02 +6a3d3b7feab4d4a8252c63b4ce7d0fab106cf2f7 jdk8u20-b03 +7e1b01df280fb065c5953c48f54ac9d619ecbf1c jdk8u20-b04 +69e0af208dad70fdef65a89ab2c4c468ed9e24b8 jdk8u20-b05 +ae6a3aec6aa29509a0fd5f53709889b99b1e27da jdk8u20-b06 +6403ef94cb0db32d9221a5e8f09f3664cd7744dc jdk8u20-b07 +b7750b6ee1578fd5b2b1f6758f905b332503d8ed jdk8u20-b08 +d420eae635c42be98b166e1ce9c64fc0a8825529 jdk8u20-b09 +cc4ca2ff0afcfb932da6fa4fffdd01f08e4ff71b jdk8u20-b10 +61291eee163ab5bbe0b38b37b77673bac9bf5310 jdk8u20-b11 +2feecdcd7b677f3baf9df6e8ea46f7e08c7e4411 jdk8u20-b12 +26764db977ecb590cdee637d27996a87cdd9507e jdk8u20-b13 +548afd2496385263874c0ce970158764166b1156 jdk8u20-b14 +12a1fd80b05aa9c5daab22ca5fab8e2c9c3df61c jdk8u20-b15 +4095a7a49a9ea95f4c59f936acf45ca1f87b8fff jdk8u20-b16 +3a49a08a2e3991a10e6bec531e9dbfa7c503fcb4 jdk8u20-b17 +1695032e51faa36ed9c39b2817baa374ca361513 jdk8u20-b18 +2f40422f564b892a26cb04c62885bb5bc85984e3 jdk8u20-b19 +5b76ecd0cdcf899261da2c9965862771f6da4e26 jdk8u20-b20 +0dccc4aca1859b1ff7dca9db214f7f38c4ddbbce jdk8u20-b21 +6c1fb59fa5d7095d93a023553a949f873f324c6b jdk8u20-b22 +b14daf2459c5430dfe5d435483d6f424cff09584 jdk8u20-b23 +1710841b0229403f4af85eac8b68ea5065a26c81 jdk8u20-b24 +1710841b0229403f4af85eac8b68ea5065a26c81 jdk8u20-b25 +d1a7ea2c3e1091e0df1285963328a96f475f240d jdk8u20-b26 +97c6d6a8e5bb3dfc24b9a32711aa0906ea110e23 jdk8u25-b00 +c4cfb4376f5916c5d7eb1f39a0e23402de0d9818 jdk8u25-b01 +b4d29a751077e5500e766b8104dd1cb7148a550f jdk8u25-b02 +d3df54be114a5c41d4881b61cd42fbb0e52aaf4a jdk8u25-b03 +64e7567a8539078a678853a384340eee469168b0 jdk8u25-b04 +6de13ae93be20b97f53e3837739947d59fb4fd65 jdk8u25-b05 +69d17ee59c0e77033aca293501a642d0abc20c85 jdk8u25-b06 +561d066eaa6428088b4f7e273a8caed90e8f6073 jdk8u25-b07 +c2a5ad21d01c5d921c4e928edcb14cc3d61eb62b jdk8u25-b08 +1249614d7f1d9bf8443f0abd0622b4d2a3ab0638 jdk8u25-b09 +0c5d41165be3f4bb989bd84283c2df3e37b9845d jdk8u25-b10 +cc5ab3e0fe815ae80bb52fa5affcb35ee0f51cff jdk8u25-b11 +c35e73e4acd8ed03e77e8e20023bac115c7dfe38 jdk8u25-b12 +5d990a43c996ef039c6619e55215d589e09d1022 jdk8u25-b13 +4429ea47ee6eca6b8a1dbda1950566ee821ba19d jdk8u25-b14 +09eaef69f384ecf8ec0342b87a8b150740941140 jdk8u25-b15 +f0a48c214c46b7351ff8e6d6b6dc533463a4be21 jdk8u25-b16 +d117f01bfb4f34668ac216c9837e88acead14dce jdk8u25-b17 +efac90a2da447c2b2d43ee1b1e20c0828659f9c5 jdk8u25-b18 +0dccc4aca1859b1ff7dca9db214f7f38c4ddbbce jdk8u40-b00 +f8736a40a35df0c8055c8a94b96e5381b381ad33 jdk8u40-b01 +b6a148730f2b14193c308bc9c866c36ee6c08ed3 jdk8u40-b02 +a0224ac4135108efdbcf316c7c4b02f8a93c35fe jdk8u40-b03 +e9473185d77a9278e47fc916a255c4905aa74d98 jdk8u40-b04 +7e286a0c90fb26766b91e3a19467848f39d1f973 jdk8u40-b05 +8881a63f7f00a4a5611800db7715aecc8f6b3601 jdk8u40-b06 +cf9afcfcb7a41b892fc896c1dbf245d5dcc42395 jdk8u40-b07 +515a912fb5a9a61774fa2afa10f4472589be5602 jdk8u40-b08 +0958d0a9f44efcebe30b17b07240abaa42a2112b jdk8u40-b09 +1053aeab6b12d5cd4e063bf9ee37f20811450084 jdk8u40-b10 +2ffefbac794be27e0c60d7e5f2cb598f04ec2411 jdk8u40-b11 +3e6d3c8810ee495ba599443e29b0dc72c0dd53fd jdk8u40-b12 +43ccc2b9d5b7c06baca33162c6aff8900fa76b65 jdk8u40-b13 +df659b8b0bc82214358e2f0ef340612011d5ed3b jdk8u40-b14 +60d2bf063f7d8baa4e0954b6400aa6d30f9064f9 jdk8u40-b15 +64790e9792f88fadd9d25eaf4dcba7e6e96664de jdk8u40-b16 +e1c506c8e1db7356d120dd7d22b2c50276b6bcee jdk8u40-b17 diff -r 6c4058e6adaf -r fc41675cd5ad .jcheck/conf --- a/.jcheck/conf Wed Mar 19 21:09:11 2014 +0100 +++ b/.jcheck/conf Wed Dec 03 22:33:44 2014 +0100 @@ -1,1 +1,2 @@ project=jdk8 +bugids=dup diff -r 6c4058e6adaf -r fc41675cd5ad Makefile --- a/Makefile Wed Mar 19 21:09:11 2014 +0100 +++ b/Makefile Wed Dec 03 22:33:44 2014 +0100 @@ -66,7 +66,7 @@ # First, find out the valid targets # Run the makefile with an arbitrary SPEC using -p -q (quiet dry-run and dump rules) to find # available PHONY targets. Use this list as valid targets to pass on to the repeated calls. - all_phony_targets=$(filter-out $(global_targets) bundles bundles-only final-images-only, $(strip $(shell \ + all_phony_targets=$(filter-out $(global_targets), $(strip $(shell \ cd $(root_dir) && $(MAKE) -p -q FRC SPEC=$(firstword $(SPEC)) | \ grep ^.PHONY: | head -n 1 | cut -d " " -f 2-))) @@ -79,10 +79,6 @@ endif endif -# Include this after a potential spec file has been included so that the bundles target -# has access to the spec variables. -include $(root_dir)/make/Jprt.gmk - # Here are "global" targets, i.e. targets that can be executed without specifying a single configuration. # If you addd more global targets, please update the variable global_targets in MakeHelpers. diff -r 6c4058e6adaf -r fc41675cd5ad THIRD_PARTY_README --- a/THIRD_PARTY_README Wed Mar 19 21:09:11 2014 +0100 +++ b/THIRD_PARTY_README Wed Dec 03 22:33:44 2014 +0100 @@ -2,7 +2,7 @@ ----------------------------- %% This notice is provided with respect to ASM Bytecode Manipulation -Framework v5.0, which may be included with JRE 8, and JDK 8, and +Framework v5.0.3, which may be included with JRE 8, and JDK 8, and OpenJDK 8. --- begin of LICENSE --- @@ -1399,13 +1399,13 @@ ------------------------------------------------------------------------------- -%% This notice is provided with respect to Little CMS 2.4, which may be +%% This notice is provided with respect to Little CMS 2.5, which may be included with JRE 8, JDK 8, and OpenJDK 8. --- begin of LICENSE --- Little CMS -Copyright (c) 1998-2010 Marti Maria Saguer +Copyright (c) 1998-2011 Marti Maria Saguer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -1471,7 +1471,7 @@ version 2.0. The NSS libraries are supplied in executable form, built from unmodified -NSS source code labeled with the "NSS_3.13.1_RTM" release tag. +NSS source code labeled with the "NSS_3_16_RTM" HG tag. The NSS source code is available in the OpenJDK source code repository at: jdk/test/sun/security/pkcs11/nss/src @@ -3349,14 +3349,14 @@ ------------------------------------------------------------------------------- -%% This notice is provided with respect to zlib v1.2.5, which may be included +%% This notice is provided with respect to zlib v1.2.8, which may be included with JRE 8, JDK 8, and OpenJDK 8. --- begin of LICENSE --- - version 1.2.5, July 18th, 2005 - - Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler + version 1.2.8, April 28th, 2013 + + Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -3382,11 +3382,11 @@ ------------------------------------------------------------------------------- %% This notice is provided with respect to the following which may be -included with JRE 8, JDK 8, and OpenJDK 8, except where noted: - - Apache Commons Math 2.2 - Apache Derby 10.10.1.2 [included with JDK 8] - Apache Jakarta BCEL 5.2 +included with JRE 8, JDK 8, and OpenJDK 8. + + Apache Commons Math 3.2 + Apache Derby 10.10.1.3 + Apache Jakarta BCEL 5.1 Apache Jakarta Regexp 1.4 Apache Santuario XML Security for Java 1.5.4 Apache Xalan-Java 2.7.1 diff -r 6c4058e6adaf -r fc41675cd5ad common/autoconf/boot-jdk.m4 --- a/common/autoconf/boot-jdk.m4 Wed Mar 19 21:09:11 2014 +0100 +++ b/common/autoconf/boot-jdk.m4 Wed Dec 03 22:33:44 2014 +0100 @@ -301,35 +301,59 @@ [specify JVM arguments to be passed to all invocations of the Boot JDK, overriding the default values, e.g --with-boot-jdk-jvmargs="-Xmx8G -enableassertions"])]) - if test "x$with_boot_jdk_jvmargs" = x; then - # Not all JVM:s accept the same arguments on the command line. - # OpenJDK specific increase in thread stack for JDK build, - # well more specifically, when running javac. - if test "x$BUILD_NUM_BITS" = x32; then - STACK_SIZE=768 - else - # Running Javac on a JVM on a 64-bit machine, the stack takes more space - # since 64-bit pointers are pushed on the stach. Apparently, we need - # to increase the stack space when javacing the JDK.... - STACK_SIZE=1536 - fi + AC_MSG_CHECKING([flags for boot jdk java command] ) + + # Disable special log output when a debug build is used as Boot JDK... + ADD_JVM_ARG_IF_OK([-XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput],boot_jdk_jvmargs,[$JAVA]) + + # Apply user provided options. + ADD_JVM_ARG_IF_OK([$with_boot_jdk_jvmargs],boot_jdk_jvmargs,[$JAVA]) + + AC_MSG_RESULT([$boot_jdk_jvmargs]) + + # For now, general JAVA_FLAGS are the same as the boot jdk jvmargs + JAVA_FLAGS=$boot_jdk_jvmargs + AC_SUBST(JAVA_FLAGS) + + + AC_MSG_CHECKING([flags for boot jdk java command for big workloads]) + + # Starting amount of heap memory. + ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs_big,[$JAVA]) - # Minimum amount of heap memory. - ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs,[$JAVA]) - if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then - # Why does macosx need more heap? Its the huge JDK batch. - ADD_JVM_ARG_IF_OK([-Xmx1600M],boot_jdk_jvmargs,[$JAVA]) - else - ADD_JVM_ARG_IF_OK([-Xmx1100M],boot_jdk_jvmargs,[$JAVA]) - fi - # When is adding -client something that speeds up the JVM? - # ADD_JVM_ARG_IF_OK([-client],boot_jdk_jvmargs,[$JAVA]) - ADD_JVM_ARG_IF_OK([-XX:PermSize=32m],boot_jdk_jvmargs,[$JAVA]) - ADD_JVM_ARG_IF_OK([-XX:MaxPermSize=160m],boot_jdk_jvmargs,[$JAVA]) - ADD_JVM_ARG_IF_OK([-XX:ThreadStackSize=$STACK_SIZE],boot_jdk_jvmargs,[$JAVA]) - # Disable special log output when a debug build is used as Boot JDK... - ADD_JVM_ARG_IF_OK([-XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput],boot_jdk_jvmargs,[$JAVA]) + # Maximum amount of heap memory. + # Maximum stack size. + if test "x$BUILD_NUM_BITS" = x32; then + JVM_MAX_HEAP=1100M + STACK_SIZE=768 + else + # Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit + # pointers are used. Apparently, we need to increase the heap and stack + # space for the jvm. More specifically, when running javac to build huge + # jdk batch + JVM_MAX_HEAP=1600M + STACK_SIZE=1536 fi + ADD_JVM_ARG_IF_OK([-Xmx$JVM_MAX_HEAP],boot_jdk_jvmargs_big,[$JAVA]) + ADD_JVM_ARG_IF_OK([-XX:ThreadStackSize=$STACK_SIZE],boot_jdk_jvmargs_big,[$JAVA]) + ADD_JVM_ARG_IF_OK([-XX:PermSize=32m],boot_jdk_jvmargs_big,[$JAVA]) + ADD_JVM_ARG_IF_OK([-XX:MaxPermSize=160m],boot_jdk_jvmargs_big,[$JAVA]) - AC_SUBST(BOOT_JDK_JVMARGS, $boot_jdk_jvmargs) + AC_MSG_RESULT([$boot_jdk_jvmargs_big]) + + JAVA_FLAGS_BIG=$boot_jdk_jvmargs_big + AC_SUBST(JAVA_FLAGS_BIG) + + + AC_MSG_CHECKING([flags for boot jdk java command for small workloads]) + + # Use serial gc for small short lived tools if possible + ADD_JVM_ARG_IF_OK([-XX:+UseSerialGC],boot_jdk_jvmargs_small,[$JAVA]) + ADD_JVM_ARG_IF_OK([-Xms32M],boot_jdk_jvmargs_small,[$JAVA]) + ADD_JVM_ARG_IF_OK([-Xmx512M],boot_jdk_jvmargs_small,[$JAVA]) + + AC_MSG_RESULT([$boot_jdk_jvmargs_small]) + + JAVA_FLAGS_SMALL=$boot_jdk_jvmargs_small + AC_SUBST(JAVA_FLAGS_SMALL) ]) diff -r 6c4058e6adaf -r fc41675cd5ad common/autoconf/build-aux/config.guess --- a/common/autoconf/build-aux/config.guess Wed Mar 19 21:09:11 2014 +0100 +++ b/common/autoconf/build-aux/config.guess Wed Dec 03 22:33:44 2014 +0100 @@ -60,4 +60,30 @@ esac fi +# Test and fix architecture string on AIX +# On AIX 'config.guess' returns 'powerpc' as architecture but 'powerpc' is +# implicitely handled as 32-bit architecture in 'platform.m4' so we check +# for the kernel mode rewrite it to 'powerpc64' if we'Re running in 64-bit mode. +# The check could also be done with `/usr/sbin/prtconf | grep "Kernel Type" | grep "64-bit"` +echo $OUT | grep powerpc-ibm-aix > /dev/null 2> /dev/null +if test $? = 0; then + if [ -x /bin/getconf ] ; then + KERNEL_BITMODE=`getconf KERNEL_BITMODE` + if [ "$KERNEL_BITMODE" = "32" ]; then + KERNEL_BITMODE="" + fi + fi + OUT=powerpc$KERNEL_BITMODE`echo $OUT | sed -e 's/[^-]*//'` +fi + +# Test and fix little endian PowerPC64. +# TODO: should be handled by autoconf-config.guess. +if [ "x$OUT" = x ]; then + if [ `uname -m` = ppc64le ]; then + if [ `uname -s` = Linux ]; then + OUT=powerpc64le-unknown-linux-gnu + fi + fi +fi + echo $OUT diff -r 6c4058e6adaf -r fc41675cd5ad common/autoconf/build-performance.m4 --- a/common/autoconf/build-performance.m4 Wed Mar 19 21:09:11 2014 +0100 +++ b/common/autoconf/build-performance.m4 Wed Dec 03 22:33:44 2014 +0100 @@ -41,6 +41,9 @@ # Looks like a MacOSX system NUM_CORES=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Cores' | awk '{print [$]5}'` FOUND_CORES=yes + elif test "x$OPENJDK_BUILD_OS" = xaix ; then + NUM_CORES=`/usr/sbin/prtconf | grep "^Number Of Processors" | awk '{ print [$]4 }'` + FOUND_CORES=yes elif test -n "$NUMBER_OF_PROCESSORS"; then # On windows, look in the env NUM_CORES=$NUMBER_OF_PROCESSORS @@ -68,8 +71,8 @@ MEMORY_SIZE=`expr $MEMORY_SIZE / 1024` FOUND_MEM=yes elif test -x /usr/sbin/prtconf; then - # Looks like a Solaris system - MEMORY_SIZE=`/usr/sbin/prtconf | grep "Memory size" | awk '{ print [$]3 }'` + # Looks like a Solaris or AIX system + MEMORY_SIZE=`/usr/sbin/prtconf | grep "^Memory [[Ss]]ize" | awk '{ print [$]3 }'` FOUND_MEM=yes elif test -x /usr/sbin/system_profiler; then # Looks like a MacOSX system diff -r 6c4058e6adaf -r fc41675cd5ad common/autoconf/configure.ac --- a/common/autoconf/configure.ac Wed Mar 19 21:09:11 2014 +0100 +++ b/common/autoconf/configure.ac Wed Dec 03 22:33:44 2014 +0100 @@ -88,6 +88,7 @@ # These are needed to be able to create a configuration name (and thus the output directory) JDKOPT_SETUP_JDK_VARIANT +JDKOPT_SETUP_JVM_INTERPRETER JDKOPT_SETUP_JVM_VARIANTS JDKOPT_SETUP_DEBUG_LEVEL diff -r 6c4058e6adaf -r fc41675cd5ad common/autoconf/generated-configure.sh --- a/common/autoconf/generated-configure.sh Wed Mar 19 21:09:11 2014 +0100 +++ b/common/autoconf/generated-configure.sh Wed Dec 03 22:33:44 2014 +0100 @@ -665,6 +665,7 @@ CFLAGS_DEBUG_SYMBOLS ZIP_DEBUGINFO_FILES ENABLE_DEBUG_SYMBOLS +USING_BROKEN_SUSE_LD COMPILER_SUPPORTS_TARGET_BITS_FLAG ZERO_ARCHFLAG LDFLAGS_CXX_JDK @@ -749,6 +750,7 @@ PROPER_COMPILER_CXX POTENTIAL_CXX TOOLS_DIR_CXX +COMPILER_TARGET_BITS_FLAG OBJEXT EXEEXT ac_ct_CC @@ -784,7 +786,9 @@ JAXP_TOPDIR CORBA_TOPDIR LANGTOOLS_TOPDIR -BOOT_JDK_JVMARGS +JAVA_FLAGS_SMALL +JAVA_FLAGS_BIG +JAVA_FLAGS JAVAC_FLAGS BOOT_JDK_SOURCETARGET BOOT_JDK @@ -851,6 +855,7 @@ DEBUG_LEVEL MACOSX_UNIVERSAL INCLUDE_SA +JVM_VARIANT_CORE JVM_VARIANT_ZEROSHARK JVM_VARIANT_ZERO JVM_VARIANT_KERNEL @@ -858,6 +863,7 @@ JVM_VARIANT_CLIENT JVM_VARIANT_SERVER JVM_VARIANTS +JVM_INTERPRETER JDK_VARIANT SET_OPENJDK BUILD_LOG_WRAPPER @@ -1003,6 +1009,7 @@ with_devkit enable_openjdk_only with_jdk_variant +with_jvm_interpreter with_jvm_variants enable_debug with_debug_level @@ -1019,6 +1026,7 @@ with_update_version with_user_release_suffix with_build_number +with_copyright_year with_boot_jdk with_boot_jdk_jvmargs with_add_source_root @@ -1747,8 +1755,10 @@ --with-devkit use this directory as base for tools-dir and sys-root (for cross-compiling) --with-jdk-variant JDK variant to build (normal) [normal] + --with-jvm-interpreter JVM interpreter to build (template, cpp) [template] --with-jvm-variants JVM variants (separated by commas) to build (server, - client, minimal1, kernel, zero, zeroshark) [server] + client, minimal1, kernel, zero, zeroshark, core) + [server] --with-debug-level set the debug level (release, fastdebug, slowdebug) [release] --with-conf-name use this as the name of the configuration [generated @@ -1767,6 +1777,7 @@ Add a custom string to the version string if build number isn't set.[username_builddateb00] --with-build-number Set build number value for build [b00] + --with-copyright-year Set copyright year value for build [current year] --with-boot-jdk path to Boot JDK (used to bootstrap build) [probed] --with-boot-jdk-jvmargs specify JVM arguments to be passed to all invocations of the Boot JDK, overriding the default @@ -3485,8 +3496,6 @@ If you put the resulting build in \"C:\Program Files\GnuWin32\", it will be found automatically." fi ;; - * ) - break ;; esac } @@ -3512,8 +3521,6 @@ PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev" ;; ccache) PKGHANDLER_COMMAND="sudo apt-get install ccache" ;; - * ) - break ;; esac } @@ -3535,8 +3542,6 @@ PKGHANDLER_COMMAND="sudo yum install libXtst-devel libXt-devel libXrender-devel" ;; ccache) PKGHANDLER_COMMAND="sudo yum install ccache" ;; - * ) - break ;; esac } @@ -3586,6 +3591,8 @@ + + ############################################################################### # # Should we build only OpenJDK even if closed sources are present? @@ -3865,7 +3872,7 @@ #CUSTOM_AUTOCONF_INCLUDE # Do not change or remove the following line, it is needed for consistency checks: -DATE_WHEN_GENERATED=1390812967 +DATE_WHEN_GENERATED=1416326200 ############################################################################### # @@ -6784,6 +6791,11 @@ VAR_OS_API=winapi VAR_OS_ENV=windows.msys ;; + *aix*) + VAR_OS=aix + VAR_OS_API=posix + VAR_OS_ENV=aix + ;; *) as_fn_error $? "unsupported operating system $build_os" "$LINENO" 5 ;; @@ -6822,6 +6834,12 @@ VAR_CPU_BITS=64 VAR_CPU_ENDIAN=big ;; + powerpc64le) + VAR_CPU=ppc64 + VAR_CPU_ARCH=ppc + VAR_CPU_BITS=64 + VAR_CPU_ENDIAN=little + ;; s390) VAR_CPU=s390 VAR_CPU_ARCH=s390 @@ -6904,6 +6922,11 @@ VAR_OS_API=winapi VAR_OS_ENV=windows.msys ;; + *aix*) + VAR_OS=aix + VAR_OS_API=posix + VAR_OS_ENV=aix + ;; *) as_fn_error $? "unsupported operating system $host_os" "$LINENO" 5 ;; @@ -6942,6 +6965,12 @@ VAR_CPU_BITS=64 VAR_CPU_ENDIAN=big ;; + powerpc64le) + VAR_CPU=ppc64 + VAR_CPU_ARCH=ppc + VAR_CPU_BITS=64 + VAR_CPU_ENDIAN=little + ;; s390) VAR_CPU=s390 VAR_CPU_ARCH=s390 @@ -7810,6 +7839,37 @@ $as_echo "$JDK_VARIANT" >&6; } +############################################################################### +# +# Check which interpreter of the JVM we want to build. +# Currently we have: +# template: Template interpreter (the default) +# cpp : C++ interpreter +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which interpreter of the JVM to build" >&5 +$as_echo_n "checking which interpreter of the JVM to build... " >&6; } + +# Check whether --with-jvm-interpreter was given. +if test "${with_jvm_interpreter+set}" = set; then : + withval=$with_jvm_interpreter; +fi + + +if test "x$with_jvm_interpreter" = x; then + with_jvm_interpreter="template" +fi + +JVM_INTERPRETER="$with_jvm_interpreter" + +if test "x$JVM_INTERPRETER" != xtemplate && test "x$JVM_INTERPRETER" != xcpp; then + as_fn_error $? "The available JVM interpreters are: template, cpp" "$LINENO" 5 +fi + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_jvm_interpreter" >&5 +$as_echo "$with_jvm_interpreter" >&6; } + + ############################################################################### # @@ -7822,6 +7882,7 @@ # ie normal interpreter and C1, only the serial GC, kernel jvmti etc # zero: no machine code interpreter, no compiler # zeroshark: zero interpreter and shark/llvm compiler backend +# core: interpreter only, no compiler (only works on some platforms) { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variants of the JVM to build" >&5 $as_echo_n "checking which variants of the JVM to build... " >&6; } @@ -7836,10 +7897,10 @@ fi JVM_VARIANTS=",$with_jvm_variants," - TEST_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,//' -e 's/client,//' -e 's/minimal1,//' -e 's/kernel,//' -e 's/zero,//' -e 's/zeroshark,//'` + TEST_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,//' -e 's/client,//' -e 's/minimal1,//' -e 's/kernel,//' -e 's/zero,//' -e 's/zeroshark,//' -e 's/core,//'` if test "x$TEST_VARIANTS" != "x,"; then - as_fn_error $? "The available JVM variants are: server, client, minimal1, kernel, zero, zeroshark" "$LINENO" 5 + as_fn_error $? "The available JVM variants are: server, client, minimal1, kernel, zero, zeroshark, core" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_jvm_variants" >&5 $as_echo "$with_jvm_variants" >&6; } @@ -7850,12 +7911,13 @@ JVM_VARIANT_KERNEL=`$ECHO "$JVM_VARIANTS" | $SED -e '/,kernel,/!s/.*/false/g' -e '/,kernel,/s/.*/true/g'` JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'` JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'` - - # if test "x$JVM_VARIANT_CLIENT" = xtrue; then - # if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then - # AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.]) - # fi - # fi + JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'` + + if test "x$JVM_VARIANT_CLIENT" = xtrue; then + if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then + as_fn_error $? "You cannot build a client JVM for a 64-bit machine." "$LINENO" 5 + fi + fi if test "x$JVM_VARIANT_KERNEL" = xtrue; then if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then as_fn_error $? "You cannot build a kernel JVM for a 64-bit machine." "$LINENO" 5 @@ -7868,8 +7930,8 @@ fi # Replace the commas with AND for use in the build directory name. - ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/'` - COUNT_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,/1/' -e 's/client,/1/' -e 's/minimal1,/1/' -e 's/kernel,/1/' -e 's/zero,/1/' -e 's/zeroshark,/1/'` + ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/g'` + COUNT_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,/1/' -e 's/client,/1/' -e 's/minimal1,/1/' -e 's/kernel,/1/' -e 's/zero,/1/' -e 's/zeroshark,/1/' -e 's/core,/1/'` if test "x$COUNT_VARIANTS" != "x,1"; then BUILDING_MULTIPLE_JVM_VARIANTS=yes else @@ -7884,6 +7946,7 @@ + INCLUDE_SA=true if test "x$JVM_VARIANT_ZERO" = xtrue ; then INCLUDE_SA=false @@ -7891,6 +7954,9 @@ if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then INCLUDE_SA=false fi + if test "x$VAR_CPU" = xppc64 ; then + INCLUDE_SA=false + fi if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then @@ -8006,6 +8072,10 @@ HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}shark " fi + if test "x$JVM_VARIANT_CORE" = xtrue; then + HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}core " + fi + HOTSPOT_TARGET="$HOTSPOT_TARGET docs export_$HOTSPOT_EXPORT" # On Macosx universal binaries are produced, but they only contain @@ -11156,6 +11226,12 @@ as_fn_error $? "Update version must have a value" "$LINENO" 5 elif test "x$with_update_version" != x; then JDK_UPDATE_VERSION="$with_update_version" + # On macosx 10.7, it's not possible to set --with-update-version=0X due + # to a bug in expr (which reduces it to just X). To work around this, we + # always add a 0 to one digit update versions. + if test "${#JDK_UPDATE_VERSION}" = "1"; then + JDK_UPDATE_VERSION="0${JDK_UPDATE_VERSION}" + fi fi @@ -11208,7 +11284,19 @@ - COPYRIGHT_YEAR=`date +'%Y'` + +# Check whether --with-copyright-year was given. +if test "${with_copyright_year+set}" = set; then : + withval=$with_copyright_year; +fi + + if test "x$with_copyright_year" = xyes; then + as_fn_error $? "Copyright year must have a value" "$LINENO" 5 + elif test "x$with_copyright_year" != x; then + COPYRIGHT_YEAR="$with_copyright_year" + else + COPYRIGHT_YEAR=`date +'%Y'` + fi if test "x$JDK_UPDATE_VERSION" != x; then @@ -15851,8 +15939,6 @@ pkgutil_help $MISSING_DEPENDENCY ;; pkgadd) pkgadd_help $MISSING_DEPENDENCY ;; - * ) - break ;; esac if test "x$PKGHANDLER_COMMAND" != x; then @@ -16002,20 +16088,55 @@ fi - if test "x$with_boot_jdk_jvmargs" = x; then - # Not all JVM:s accept the same arguments on the command line. - # OpenJDK specific increase in thread stack for JDK build, - # well more specifically, when running javac. - if test "x$BUILD_NUM_BITS" = x32; then - STACK_SIZE=768 - else - # Running Javac on a JVM on a 64-bit machine, the stack takes more space - # since 64-bit pointers are pushed on the stach. Apparently, we need - # to increase the stack space when javacing the JDK.... - STACK_SIZE=1536 - fi - - # Minimum amount of heap memory. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking flags for boot jdk java command " >&5 +$as_echo_n "checking flags for boot jdk java command ... " >&6; } + + # Disable special log output when a debug build is used as Boot JDK... + + $ECHO "Check if jvm arg is ok: -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput" >&5 + $ECHO "Command: $JAVA -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput -version" >&5 + OUTPUT=`$JAVA -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput -version 2>&1` + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` + if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then + boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput" + JVM_ARG_OK=true + else + $ECHO "Arg failed:" >&5 + $ECHO "$OUTPUT" >&5 + JVM_ARG_OK=false + fi + + + # Apply user provided options. + + $ECHO "Check if jvm arg is ok: $with_boot_jdk_jvmargs" >&5 + $ECHO "Command: $JAVA $with_boot_jdk_jvmargs -version" >&5 + OUTPUT=`$JAVA $with_boot_jdk_jvmargs -version 2>&1` + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` + if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then + boot_jdk_jvmargs="$boot_jdk_jvmargs $with_boot_jdk_jvmargs" + JVM_ARG_OK=true + else + $ECHO "Arg failed:" >&5 + $ECHO "$OUTPUT" >&5 + JVM_ARG_OK=false + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $boot_jdk_jvmargs" >&5 +$as_echo "$boot_jdk_jvmargs" >&6; } + + # For now, general JAVA_FLAGS are the same as the boot jdk jvmargs + JAVA_FLAGS=$boot_jdk_jvmargs + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking flags for boot jdk java command for big workloads" >&5 +$as_echo_n "checking flags for boot jdk java command for big workloads... " >&6; } + + # Starting amount of heap memory. $ECHO "Check if jvm arg is ok: -Xms64M" >&5 $ECHO "Command: $JAVA -Xms64M -version" >&5 @@ -16023,7 +16144,7 @@ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then - boot_jdk_jvmargs="$boot_jdk_jvmargs -Xms64M" + boot_jdk_jvmargs_big="$boot_jdk_jvmargs_big -Xms64M" JVM_ARG_OK=true else $ECHO "Arg failed:" >&5 @@ -16031,16 +16152,28 @@ JVM_ARG_OK=false fi - if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then - # Why does macosx need more heap? Its the huge JDK batch. - - $ECHO "Check if jvm arg is ok: -Xmx1600M" >&5 - $ECHO "Command: $JAVA -Xmx1600M -version" >&5 - OUTPUT=`$JAVA -Xmx1600M -version 2>&1` + + # Maximum amount of heap memory. + # Maximum stack size. + if test "x$BUILD_NUM_BITS" = x32; then + JVM_MAX_HEAP=1100M + STACK_SIZE=768 + else + # Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit + # pointers are used. Apparently, we need to increase the heap and stack + # space for the jvm. More specifically, when running javac to build huge + # jdk batch + JVM_MAX_HEAP=1600M + STACK_SIZE=1536 + fi + + $ECHO "Check if jvm arg is ok: -Xmx$JVM_MAX_HEAP" >&5 + $ECHO "Command: $JAVA -Xmx$JVM_MAX_HEAP -version" >&5 + OUTPUT=`$JAVA -Xmx$JVM_MAX_HEAP -version 2>&1` FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then - boot_jdk_jvmargs="$boot_jdk_jvmargs -Xmx1600M" + boot_jdk_jvmargs_big="$boot_jdk_jvmargs_big -Xmx$JVM_MAX_HEAP" JVM_ARG_OK=true else $ECHO "Arg failed:" >&5 @@ -16048,15 +16181,14 @@ JVM_ARG_OK=false fi - else - - $ECHO "Check if jvm arg is ok: -Xmx1100M" >&5 - $ECHO "Command: $JAVA -Xmx1100M -version" >&5 - OUTPUT=`$JAVA -Xmx1100M -version 2>&1` + + $ECHO "Check if jvm arg is ok: -XX:ThreadStackSize=$STACK_SIZE" >&5 + $ECHO "Command: $JAVA -XX:ThreadStackSize=$STACK_SIZE -version" >&5 + OUTPUT=`$JAVA -XX:ThreadStackSize=$STACK_SIZE -version 2>&1` FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then - boot_jdk_jvmargs="$boot_jdk_jvmargs -Xmx1100M" + boot_jdk_jvmargs_big="$boot_jdk_jvmargs_big -XX:ThreadStackSize=$STACK_SIZE" JVM_ARG_OK=true else $ECHO "Arg failed:" >&5 @@ -16064,9 +16196,6 @@ JVM_ARG_OK=false fi - fi - # When is adding -client something that speeds up the JVM? - # ADD_JVM_ARG_IF_OK([-client],boot_jdk_jvmargs,[$JAVA]) $ECHO "Check if jvm arg is ok: -XX:PermSize=32m" >&5 $ECHO "Command: $JAVA -XX:PermSize=32m -version" >&5 @@ -16074,7 +16203,7 @@ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then - boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:PermSize=32m" + boot_jdk_jvmargs_big="$boot_jdk_jvmargs_big -XX:PermSize=32m" JVM_ARG_OK=true else $ECHO "Arg failed:" >&5 @@ -16089,7 +16218,7 @@ FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then - boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:MaxPermSize=160m" + boot_jdk_jvmargs_big="$boot_jdk_jvmargs_big -XX:MaxPermSize=160m" JVM_ARG_OK=true else $ECHO "Arg failed:" >&5 @@ -16098,13 +16227,25 @@ fi - $ECHO "Check if jvm arg is ok: -XX:ThreadStackSize=$STACK_SIZE" >&5 - $ECHO "Command: $JAVA -XX:ThreadStackSize=$STACK_SIZE -version" >&5 - OUTPUT=`$JAVA -XX:ThreadStackSize=$STACK_SIZE -version 2>&1` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $boot_jdk_jvmargs_big" >&5 +$as_echo "$boot_jdk_jvmargs_big" >&6; } + + JAVA_FLAGS_BIG=$boot_jdk_jvmargs_big + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking flags for boot jdk java command for small workloads" >&5 +$as_echo_n "checking flags for boot jdk java command for small workloads... " >&6; } + + # Use serial gc for small short lived tools if possible + + $ECHO "Check if jvm arg is ok: -XX:+UseSerialGC" >&5 + $ECHO "Command: $JAVA -XX:+UseSerialGC -version" >&5 + OUTPUT=`$JAVA -XX:+UseSerialGC -version 2>&1` FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then - boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:ThreadStackSize=$STACK_SIZE" + boot_jdk_jvmargs_small="$boot_jdk_jvmargs_small -XX:+UseSerialGC" JVM_ARG_OK=true else $ECHO "Arg failed:" >&5 @@ -16112,15 +16253,14 @@ JVM_ARG_OK=false fi - # Disable special log output when a debug build is used as Boot JDK... - - $ECHO "Check if jvm arg is ok: -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput" >&5 - $ECHO "Command: $JAVA -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput -version" >&5 - OUTPUT=`$JAVA -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput -version 2>&1` + + $ECHO "Check if jvm arg is ok: -Xms32M" >&5 + $ECHO "Command: $JAVA -Xms32M -version" >&5 + OUTPUT=`$JAVA -Xms32M -version 2>&1` FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then - boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput" + boot_jdk_jvmargs_small="$boot_jdk_jvmargs_small -Xms32M" JVM_ARG_OK=true else $ECHO "Arg failed:" >&5 @@ -16128,9 +16268,26 @@ JVM_ARG_OK=false fi - fi - - BOOT_JDK_JVMARGS=$boot_jdk_jvmargs + + $ECHO "Check if jvm arg is ok: -Xmx512M" >&5 + $ECHO "Command: $JAVA -Xmx512M -version" >&5 + OUTPUT=`$JAVA -Xmx512M -version 2>&1` + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` + if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then + boot_jdk_jvmargs_small="$boot_jdk_jvmargs_small -Xmx512M" + JVM_ARG_OK=true + else + $ECHO "Arg failed:" >&5 + $ECHO "$OUTPUT" >&5 + JVM_ARG_OK=false + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $boot_jdk_jvmargs_small" >&5 +$as_echo "$boot_jdk_jvmargs_small" >&6; } + + JAVA_FLAGS_SMALL=$boot_jdk_jvmargs_small @@ -19103,6 +19260,9 @@ COMPILER_CHECK_LIST="cl" elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then COMPILER_CHECK_LIST="cc gcc" + elif test "x$OPENJDK_TARGET_OS" = "xaix"; then + # Do not probe for cc on AIX. + COMPILER_CHECK_LIST="xlc_r" else COMPILER_CHECK_LIST="gcc cc" fi @@ -19240,8 +19400,6 @@ pkgutil_help $MISSING_DEPENDENCY ;; pkgadd) pkgadd_help $MISSING_DEPENDENCY ;; - * ) - break ;; esac if test "x$PKGHANDLER_COMMAND" != x; then @@ -19517,9 +19675,12 @@ $as_echo "$as_me: Rewriting CC to \"$new_complete\"" >&6;} fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking resolved symbolic links for CC" >&5 + TEST_COMPILER="$CC" + # Don't remove symbolic links on AIX because 'xlc_r' and 'xlC_r' may all be links + # to 'xlc' but it is crucial that we invoke the compiler with the right name! + if test "x$OPENJDK_BUILD_OS" != xaix; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking resolved symbolic links for CC" >&5 $as_echo_n "checking resolved symbolic links for CC... " >&6; } - TEST_COMPILER="$CC" if test "x$OPENJDK_BUILD_OS" != xwindows; then # Follow a chain of symbolic links. Use readlink @@ -19568,8 +19729,9 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEST_COMPILER" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEST_COMPILER" >&5 $as_echo "$TEST_COMPILER" >&6; } + fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CC is disguised ccache" >&5 $as_echo_n "checking if CC is disguised ccache... " >&6; } @@ -20033,6 +20195,15 @@ COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.*[ ,\t]$COMPILER_NAME[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p"` COMPILER_VENDOR="Sun Studio" fi + elif test "x$OPENJDK_TARGET_OS" = xaix; then + COMPILER_VERSION_TEST=`$COMPILER -qversion 2>&1 | $TAIL -n 1` + $ECHO $COMPILER_VERSION_TEST | $GREP "^Version: " > /dev/null + if test $? -ne 0; then + as_fn_error $? "Failed to detect the compiler version of $COMPILER ...." "$LINENO" 5 + else + COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n 's/Version: \(0-90-9\.0-90-9*\).*/\1/p'` + COMPILER_VENDOR='IBM' + fi elif test "x$OPENJDK_TARGET_OS" = xwindows; then # First line typically looks something like: # Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86 @@ -20674,6 +20845,14 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + # Option used to tell the compiler whether to create 32- or 64-bit executables + # Notice that CC contains the full compiler path at this point. + case $CC in + *xlc_r) COMPILER_TARGET_BITS_FLAG="-q";; + *) COMPILER_TARGET_BITS_FLAG="-m";; + esac + + ### Locate C++ compiler (CXX) if test "x$CXX" != x; then @@ -20682,6 +20861,9 @@ COMPILER_CHECK_LIST="cl" elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then COMPILER_CHECK_LIST="CC g++" + elif test "x$OPENJDK_TARGET_OS" = "xaix"; then + # Do not probe for CC on AIX . + COMPILER_CHECK_LIST="xlC_r" else COMPILER_CHECK_LIST="g++ CC" fi @@ -20819,8 +21001,6 @@ pkgutil_help $MISSING_DEPENDENCY ;; pkgadd) pkgadd_help $MISSING_DEPENDENCY ;; - * ) - break ;; esac if test "x$PKGHANDLER_COMMAND" != x; then @@ -21096,9 +21276,12 @@ $as_echo "$as_me: Rewriting CXX to \"$new_complete\"" >&6;} fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking resolved symbolic links for CXX" >&5 + TEST_COMPILER="$CXX" + # Don't remove symbolic links on AIX because 'xlc_r' and 'xlC_r' may all be links + # to 'xlc' but it is crucial that we invoke the compiler with the right name! + if test "x$OPENJDK_BUILD_OS" != xaix; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking resolved symbolic links for CXX" >&5 $as_echo_n "checking resolved symbolic links for CXX... " >&6; } - TEST_COMPILER="$CXX" if test "x$OPENJDK_BUILD_OS" != xwindows; then # Follow a chain of symbolic links. Use readlink @@ -21147,8 +21330,9 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEST_COMPILER" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEST_COMPILER" >&5 $as_echo "$TEST_COMPILER" >&6; } + fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if CXX is disguised ccache" >&5 $as_echo_n "checking if CXX is disguised ccache... " >&6; } @@ -21612,6 +21796,15 @@ COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.*[ ,\t]$COMPILER_NAME[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p"` COMPILER_VENDOR="Sun Studio" fi + elif test "x$OPENJDK_TARGET_OS" = xaix; then + COMPILER_VERSION_TEST=`$COMPILER -qversion 2>&1 | $TAIL -n 1` + $ECHO $COMPILER_VERSION_TEST | $GREP "^Version: " > /dev/null + if test $? -ne 0; then + as_fn_error $? "Failed to detect the compiler version of $COMPILER ...." "$LINENO" 5 + else + COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n 's/Version: \(0-90-9\.0-90-9*\).*/\1/p'` + COMPILER_VENDOR='IBM' + fi elif test "x$OPENJDK_TARGET_OS" = xwindows; then # First line typically looks something like: # Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86 @@ -22817,6 +23010,8 @@ fi if test "x$OPENJDK_TARGET_OS" = xmacosx; then ARFLAGS="-r" + elif test "x$OPENJDK_TARGET_OS" = xaix; then + ARFLAGS="-X64" else ARFLAGS="" fi @@ -28792,16 +28987,17 @@ # is made at runtime.) # - if test "x$OPENJDK_TARGET_OS" = xsolaris; then - # Always specify -m flags on Solaris + if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xaix; then + # Always specify -m flag on Solaris + # And -q on AIX because otherwise the compiler produces 32-bit objects by default # When we add flags to the "official" CFLAGS etc, we need to # keep track of these additions in ADDED_CFLAGS etc. These # will later be checked to make sure only controlled additions # have been made to CFLAGS etc. - ADDED_CFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}" - ADDED_CXXFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}" - ADDED_LDFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}" + ADDED_CFLAGS=" ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" + ADDED_CXXFLAGS=" ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" + ADDED_LDFLAGS=" ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" CFLAGS="${CFLAGS}${ADDED_CFLAGS}" CXXFLAGS="${CXXFLAGS}${ADDED_CXXFLAGS}" @@ -28819,9 +29015,9 @@ # keep track of these additions in ADDED_CFLAGS etc. These # will later be checked to make sure only controlled additions # have been made to CFLAGS etc. - ADDED_CFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}" - ADDED_CXXFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}" - ADDED_LDFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}" + ADDED_CFLAGS=" ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" + ADDED_CXXFLAGS=" ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" + ADDED_LDFLAGS=" ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" CFLAGS="${CFLAGS}${ADDED_CFLAGS}" CXXFLAGS="${CXXFLAGS}${ADDED_CXXFLAGS}" @@ -28895,20 +29091,85 @@ - if test "x$SIZEOF_INT_P" != "x$ac_cv_sizeof_int_p"; then - # Workaround autoconf bug, see http://lists.gnu.org/archive/html/autoconf/2010-07/msg00004.html - SIZEOF_INT_P="$ac_cv_sizeof_int_p" - fi - - if test "x$SIZEOF_INT_P" = x; then + # AC_CHECK_SIZEOF defines 'ac_cv_sizeof_int_p' to hold the number of bytes used by an 'int*' + if test "x$ac_cv_sizeof_int_p" = x; then # The test failed, lets stick to the assumed value. { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The number of bits in the target could not be determined, using $OPENJDK_TARGET_CPU_BITS." >&5 $as_echo "$as_me: WARNING: The number of bits in the target could not be determined, using $OPENJDK_TARGET_CPU_BITS." >&2;} else - TESTED_TARGET_CPU_BITS=`expr 8 \* $SIZEOF_INT_P` + TESTED_TARGET_CPU_BITS=`expr 8 \* $ac_cv_sizeof_int_p` if test "x$TESTED_TARGET_CPU_BITS" != "x$OPENJDK_TARGET_CPU_BITS"; then - as_fn_error $? "The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)" "$LINENO" 5 + # This situation may happen on 64-bit platforms where the compiler by default only generates 32-bit objects + # Let's try to implicitely set the compilers target architecture and retry the test + { $as_echo "$as_me:${as_lineno-$LINENO}: The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)." >&5 +$as_echo "$as_me: The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)." >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: I'll retry after setting the platforms compiler target bits flag to ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" >&5 +$as_echo "$as_me: I'll retry after setting the platforms compiler target bits flag to ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" >&6;} + + # When we add flags to the "official" CFLAGS etc, we need to + # keep track of these additions in ADDED_CFLAGS etc. These + # will later be checked to make sure only controlled additions + # have been made to CFLAGS etc. + ADDED_CFLAGS=" ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" + ADDED_CXXFLAGS=" ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" + ADDED_LDFLAGS=" ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" + + CFLAGS="${CFLAGS}${ADDED_CFLAGS}" + CXXFLAGS="${CXXFLAGS}${ADDED_CXXFLAGS}" + LDFLAGS="${LDFLAGS}${ADDED_LDFLAGS}" + + CFLAGS_JDK="${CFLAGS_JDK}${ADDED_CFLAGS}" + CXXFLAGS_JDK="${CXXFLAGS_JDK}${ADDED_CXXFLAGS}" + LDFLAGS_JDK="${LDFLAGS_JDK}${ADDED_LDFLAGS}" + + + # We have to unset 'ac_cv_sizeof_int_p' first, otherwise AC_CHECK_SIZEOF will use the previously cached value! + unset ac_cv_sizeof_int_p + # And we have to undef the definition of SIZEOF_INT_P in confdefs.h by the previous invocation of AC_CHECK_SIZEOF + cat >>confdefs.h <<_ACEOF +#undef SIZEOF_INT_P +_ACEOF + + # The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int *" >&5 +$as_echo_n "checking size of int *... " >&6; } +if ${ac_cv_sizeof_int_p+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (int *))" "ac_cv_sizeof_int_p" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_int_p" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (int *) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_int_p=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int_p" >&5 +$as_echo "$ac_cv_sizeof_int_p" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT_P $ac_cv_sizeof_int_p +_ACEOF + + + + TESTED_TARGET_CPU_BITS=`expr 8 \* $ac_cv_sizeof_int_p` + + if test "x$TESTED_TARGET_CPU_BITS" != "x$OPENJDK_TARGET_CPU_BITS"; then + as_fn_error $? "The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)" "$LINENO" 5 + fi fi fi @@ -29221,6 +29482,29 @@ POST_STRIP_CMD="$STRIP -x" POST_MCS_CMD="$MCS -d -a \"JDK $FULL_VERSION\"" fi + if test "x$OPENJDK_TARGET_OS" = xaix; then + COMPILER_NAME=xlc + PICFLAG="-qpic=large" + LIBRARY_PREFIX=lib + SHARED_LIBRARY='lib$1.so' + STATIC_LIBRARY='lib$1.a' + SHARED_LIBRARY_FLAGS="-qmkshrobj" + SHARED_LIBRARY_SUFFIX='.so' + STATIC_LIBRARY_SUFFIX='.a' + OBJ_SUFFIX='.o' + EXE_SUFFIX='' + SET_SHARED_LIBRARY_NAME='' + SET_SHARED_LIBRARY_MAPFILE='' + C_FLAG_REORDER='' + CXX_FLAG_REORDER='' + SET_SHARED_LIBRARY_ORIGIN='' + SET_EXECUTABLE_ORIGIN="" + CFLAGS_JDK="" + CXXFLAGS_JDK="" + CFLAGS_JDKLIB_EXTRA='' + POST_STRIP_CMD="$STRIP -X32_64" + POST_MCS_CMD="" + fi if test "x$OPENJDK_TARGET_OS" = xwindows; then # If it is not gcc, then assume it is the MS Visual Studio compiler COMPILER_NAME=cl @@ -29406,6 +29690,24 @@ CFLAGS_DEBUG_SYMBOLS="-g -xs" CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs" + ;; + xlc ) + C_FLAG_DEPS="-qmakedep=gcc -MF" + CXX_FLAG_DEPS="-qmakedep=gcc -MF" + C_O_FLAG_HIGHEST="-O3" + C_O_FLAG_HI="-O3 -qstrict" + C_O_FLAG_NORM="-O2" + C_O_FLAG_NONE="" + CXX_O_FLAG_HIGHEST="-O3" + CXX_O_FLAG_HI="-O3 -qstrict" + CXX_O_FLAG_NORM="-O2" + CXX_O_FLAG_NONE="" + CFLAGS_DEBUG_SYMBOLS="-g" + CXXFLAGS_DEBUG_SYMBOLS="-g" + LDFLAGS_JDK="${LDFLAGS_JDK} -q64 -brtl -bnolibpath -liconv -bexpall" + CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" + CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" + ;; esac ;; CL ) @@ -29529,6 +29831,13 @@ LDFLAGS_JDK="$LDFLAGS_JDK -z defs -xildoff -ztext" LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib" ;; + xlc ) + CFLAGS_JDK="$CFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC" + CXXFLAGS_JDK="$CXXFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC" + + LDFLAGS_JDK="$LDFLAGS_JDK" + LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK" + ;; cl ) CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \ -D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \ @@ -29598,6 +29907,9 @@ if test "x$OPENJDK_TARGET_OS" = xsolaris; then CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DSOLARIS" fi + if test "x$OPENJDK_TARGET_OS" = xaix; then + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DAIX -DPPC64" + fi if test "x$OPENJDK_TARGET_OS" = xmacosx; then CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT" # Setting these parameters makes it an error to link to macosx APIs that are @@ -29730,10 +30042,10 @@ # ZERO_ARCHFLAG tells the compiler which mode to build for case "${OPENJDK_TARGET_CPU}" in s390) - ZERO_ARCHFLAG="-m31" + ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31" ;; *) - ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}" + ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"$ZERO_ARCHFLAG\"" >&5 @@ -29802,15 +30114,15 @@ - # Check that the compiler supports -mX flags + # Check that the compiler supports -mX (or -qX on AIX) flags # Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"-m${OPENJDK_TARGET_CPU_BITS}\"" >&5 -$as_echo_n "checking if compiler supports \"-m${OPENJDK_TARGET_CPU_BITS}\"... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"" >&5 +$as_echo_n "checking if compiler supports \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"... " >&6; } supports=yes saved_cflags="$CFLAGS" - CFLAGS="$CFLAGS -m${OPENJDK_TARGET_CPU_BITS}" + CFLAGS="$CFLAGS ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -29836,7 +30148,7 @@ CFLAGS="$saved_cflags" saved_cxxflags="$CXXFLAGS" - CXXFLAGS="$CXXFLAG -m${OPENJDK_TARGET_CPU_BITS}" + CXXFLAGS="$CXXFLAG ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -29872,6 +30184,27 @@ + # Check for broken SuSE 'ld' for which 'Only anonymous version tag is allowed in executable.' + USING_BROKEN_SUSE_LD=no + if test "x$OPENJDK_TARGET_OS" = xlinux && test "x$GCC" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken SuSE 'ld' which only understands anonymous version tags in executables" >&5 +$as_echo_n "checking for broken SuSE 'ld' which only understands anonymous version tags in executables... " >&6; } + echo "SUNWprivate_1.1 { local: *; };" > version-script.map + echo "int main() { }" > main.c + if $CXX -Xlinker -version-script=version-script.map main.c 2>&5 >&5; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + USING_BROKEN_SUSE_LD=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + USING_BROKEN_SUSE_LD=yes + fi + rm -rf version-script.map main.c + fi + + + # Setup debug symbols (need objcopy from the toolchain for that) # @@ -30028,6 +30361,16 @@ $as_echo "alsa pulse" >&6; } fi + if test "x$OPENJDK_TARGET_OS" = xaix; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on AIX?" >&5 +$as_echo_n "checking what is not needed on AIX?... " >&6; } + ALSA_NOT_NEEDED=yes + PULSE_NOT_NEEDED=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: alsa pulse" >&5 +$as_echo "alsa pulse" >&6; } + fi + + if test "x$OPENJDK_TARGET_OS" = xwindows; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on Windows?" >&5 $as_echo_n "checking what is not needed on Windows?... " >&6; } @@ -30838,8 +31181,6 @@ pkgutil_help $MISSING_DEPENDENCY ;; pkgadd) pkgadd_help $MISSING_DEPENDENCY ;; - * ) - break ;; esac if test "x$PKGHANDLER_COMMAND" != x; then @@ -30930,8 +31271,6 @@ pkgutil_help $MISSING_DEPENDENCY ;; pkgadd) pkgadd_help $MISSING_DEPENDENCY ;; - * ) - break ;; esac if test "x$PKGHANDLER_COMMAND" != x; then @@ -31192,8 +31531,6 @@ pkgutil_help $MISSING_DEPENDENCY ;; pkgadd) pkgadd_help $MISSING_DEPENDENCY ;; - * ) - break ;; esac if test "x$PKGHANDLER_COMMAND" != x; then @@ -33954,8 +34291,6 @@ pkgutil_help $MISSING_DEPENDENCY ;; pkgadd) pkgadd_help $MISSING_DEPENDENCY ;; - * ) - break ;; esac if test "x$PKGHANDLER_COMMAND" != x; then @@ -34291,8 +34626,6 @@ pkgutil_help $MISSING_DEPENDENCY ;; pkgadd) pkgadd_help $MISSING_DEPENDENCY ;; - * ) - break ;; esac if test "x$PKGHANDLER_COMMAND" != x; then @@ -34371,7 +34704,7 @@ fi if test "x${with_alsa}" != x; then - ALSA_LIBS="-L${with_alsa}/lib -lalsa" + ALSA_LIBS="-L${with_alsa}/lib -lasound" ALSA_CFLAGS="-I${with_alsa}/include" ALSA_FOUND=yes fi @@ -34380,7 +34713,7 @@ ALSA_FOUND=yes fi if test "x${with_alsa_lib}" != x; then - ALSA_LIBS="-L${with_alsa_lib} -lalsa" + ALSA_LIBS="-L${with_alsa_lib} -lasound" ALSA_FOUND=yes fi if test "x$ALSA_FOUND" = xno; then @@ -34644,8 +34977,6 @@ pkgutil_help $MISSING_DEPENDENCY ;; pkgadd) pkgadd_help $MISSING_DEPENDENCY ;; - * ) - break ;; esac if test "x$PKGHANDLER_COMMAND" != x; then @@ -35448,6 +35779,9 @@ # Looks like a MacOSX system NUM_CORES=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Cores' | awk '{print $5}'` FOUND_CORES=yes + elif test "x$OPENJDK_BUILD_OS" = xaix ; then + NUM_CORES=`/usr/sbin/prtconf | grep "^Number Of Processors" | awk '{ print $4 }'` + FOUND_CORES=yes elif test -n "$NUMBER_OF_PROCESSORS"; then # On windows, look in the env NUM_CORES=$NUMBER_OF_PROCESSORS @@ -35492,8 +35826,8 @@ MEMORY_SIZE=`expr $MEMORY_SIZE / 1024` FOUND_MEM=yes elif test -x /usr/sbin/prtconf; then - # Looks like a Solaris system - MEMORY_SIZE=`/usr/sbin/prtconf | grep "Memory size" | awk '{ print $3 }'` + # Looks like a Solaris or AIX system + MEMORY_SIZE=`/usr/sbin/prtconf | grep "^Memory [Ss]ize" | awk '{ print $3 }'` FOUND_MEM=yes elif test -x /usr/sbin/system_profiler; then # Looks like a MacOSX system @@ -37404,8 +37738,6 @@ pkgutil_help $MISSING_DEPENDENCY ;; pkgadd) pkgadd_help $MISSING_DEPENDENCY ;; - * ) - break ;; esac if test "x$PKGHANDLER_COMMAND" != x; then diff -r 6c4058e6adaf -r fc41675cd5ad common/autoconf/help.m4 --- a/common/autoconf/help.m4 Wed Mar 19 21:09:11 2014 +0100 +++ b/common/autoconf/help.m4 Wed Dec 03 22:33:44 2014 +0100 @@ -52,8 +52,6 @@ pkgutil_help $MISSING_DEPENDENCY ;; pkgadd) pkgadd_help $MISSING_DEPENDENCY ;; - * ) - break ;; esac if test "x$PKGHANDLER_COMMAND" != x; then @@ -92,8 +90,6 @@ If you put the resulting build in \"C:\Program Files\GnuWin32\", it will be found automatically." fi ;; - * ) - break ;; esac } @@ -119,8 +115,6 @@ PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev" ;; ccache) PKGHANDLER_COMMAND="sudo apt-get install ccache" ;; - * ) - break ;; esac } @@ -142,8 +136,6 @@ PKGHANDLER_COMMAND="sudo yum install libXtst-devel libXt-devel libXrender-devel" ;; ccache) PKGHANDLER_COMMAND="sudo yum install ccache" ;; - * ) - break ;; esac } diff -r 6c4058e6adaf -r fc41675cd5ad common/autoconf/hotspot-spec.gmk.in --- a/common/autoconf/hotspot-spec.gmk.in Wed Mar 19 21:09:11 2014 +0100 +++ b/common/autoconf/hotspot-spec.gmk.in Wed Dec 03 22:33:44 2014 +0100 @@ -91,6 +91,11 @@ ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR) ALT_EXPORT_PATH=$(HOTSPOT_DIST) +JVM_INTERPRETER:=@JVM_INTERPRETER@ +ifeq ($(JVM_INTERPRETER), cpp) + CC_INTERP=true +endif + HOTSPOT_MAKE_ARGS:=@HOTSPOT_MAKE_ARGS@ @STATIC_CXX_SETTING@ # This is used from the libjvm build for C/C++ code. HOTSPOT_BUILD_JOBS:=$(JOBS) diff -r 6c4058e6adaf -r fc41675cd5ad common/autoconf/jdk-options.m4 --- a/common/autoconf/jdk-options.m4 Wed Mar 19 21:09:11 2014 +0100 +++ b/common/autoconf/jdk-options.m4 Wed Dec 03 22:33:44 2014 +0100 @@ -51,6 +51,33 @@ AC_MSG_RESULT([$JDK_VARIANT]) ]) +AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_INTERPRETER], +[ +############################################################################### +# +# Check which interpreter of the JVM we want to build. +# Currently we have: +# template: Template interpreter (the default) +# cpp : C++ interpreter +AC_MSG_CHECKING([which interpreter of the JVM to build]) +AC_ARG_WITH([jvm-interpreter], [AS_HELP_STRING([--with-jvm-interpreter], + [JVM interpreter to build (template, cpp) @<:@template@:>@])]) + +if test "x$with_jvm_interpreter" = x; then + with_jvm_interpreter="template" +fi + +JVM_INTERPRETER="$with_jvm_interpreter" + +if test "x$JVM_INTERPRETER" != xtemplate && test "x$JVM_INTERPRETER" != xcpp; then + AC_MSG_ERROR([The available JVM interpreters are: template, cpp]) +fi + +AC_SUBST(JVM_INTERPRETER) + +AC_MSG_RESULT([$with_jvm_interpreter]) +]) + AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_VARIANTS], [ @@ -65,19 +92,20 @@ # ie normal interpreter and C1, only the serial GC, kernel jvmti etc # zero: no machine code interpreter, no compiler # zeroshark: zero interpreter and shark/llvm compiler backend +# core: interpreter only, no compiler (only works on some platforms) AC_MSG_CHECKING([which variants of the JVM to build]) AC_ARG_WITH([jvm-variants], [AS_HELP_STRING([--with-jvm-variants], - [JVM variants (separated by commas) to build (server, client, minimal1, kernel, zero, zeroshark) @<:@server@:>@])]) + [JVM variants (separated by commas) to build (server, client, minimal1, kernel, zero, zeroshark, core) @<:@server@:>@])]) if test "x$with_jvm_variants" = x; then with_jvm_variants="server" fi JVM_VARIANTS=",$with_jvm_variants," - TEST_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,//' -e 's/client,//' -e 's/minimal1,//' -e 's/kernel,//' -e 's/zero,//' -e 's/zeroshark,//'` + TEST_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,//' -e 's/client,//' -e 's/minimal1,//' -e 's/kernel,//' -e 's/zero,//' -e 's/zeroshark,//' -e 's/core,//'` if test "x$TEST_VARIANTS" != "x,"; then - AC_MSG_ERROR([The available JVM variants are: server, client, minimal1, kernel, zero, zeroshark]) + AC_MSG_ERROR([The available JVM variants are: server, client, minimal1, kernel, zero, zeroshark, core]) fi AC_MSG_RESULT([$with_jvm_variants]) @@ -87,12 +115,13 @@ JVM_VARIANT_KERNEL=`$ECHO "$JVM_VARIANTS" | $SED -e '/,kernel,/!s/.*/false/g' -e '/,kernel,/s/.*/true/g'` JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'` JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'` + JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'` - # if test "x$JVM_VARIANT_CLIENT" = xtrue; then - # if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then - # AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.]) - # fi - # fi + if test "x$JVM_VARIANT_CLIENT" = xtrue; then + if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then + AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.]) + fi + fi if test "x$JVM_VARIANT_KERNEL" = xtrue; then if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then AC_MSG_ERROR([You cannot build a kernel JVM for a 64-bit machine.]) @@ -105,8 +134,8 @@ fi # Replace the commas with AND for use in the build directory name. - ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/'` - COUNT_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,/1/' -e 's/client,/1/' -e 's/minimal1,/1/' -e 's/kernel,/1/' -e 's/zero,/1/' -e 's/zeroshark,/1/'` + ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/g'` + COUNT_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,/1/' -e 's/client,/1/' -e 's/minimal1,/1/' -e 's/kernel,/1/' -e 's/zero,/1/' -e 's/zeroshark,/1/' -e 's/core,/1/'` if test "x$COUNT_VARIANTS" != "x,1"; then BUILDING_MULTIPLE_JVM_VARIANTS=yes else @@ -120,6 +149,7 @@ AC_SUBST(JVM_VARIANT_KERNEL) AC_SUBST(JVM_VARIANT_ZERO) AC_SUBST(JVM_VARIANT_ZEROSHARK) + AC_SUBST(JVM_VARIANT_CORE) INCLUDE_SA=true if test "x$JVM_VARIANT_ZERO" = xtrue ; then @@ -128,6 +158,9 @@ if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then INCLUDE_SA=false fi + if test "x$VAR_CPU" = xppc64 ; then + INCLUDE_SA=false + fi AC_SUBST(INCLUDE_SA) if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then @@ -236,6 +269,10 @@ HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}shark " fi + if test "x$JVM_VARIANT_CORE" = xtrue; then + HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}core " + fi + HOTSPOT_TARGET="$HOTSPOT_TARGET docs export_$HOTSPOT_EXPORT" # On Macosx universal binaries are produced, but they only contain @@ -423,6 +460,12 @@ AC_MSG_ERROR([Update version must have a value]) elif test "x$with_update_version" != x; then JDK_UPDATE_VERSION="$with_update_version" + # On macosx 10.7, it's not possible to set --with-update-version=0X due + # to a bug in expr (which reduces it to just X). To work around this, we + # always add a 0 to one digit update versions. + if test "${#JDK_UPDATE_VERSION}" = "1"; then + JDK_UPDATE_VERSION="0${JDK_UPDATE_VERSION}" + fi fi AC_ARG_WITH(user-release-suffix, [AS_HELP_STRING([--with-user-release-suffix], @@ -467,7 +510,15 @@ AC_SUBST(MACOSX_BUNDLE_NAME_BASE) AC_SUBST(MACOSX_BUNDLE_ID_BASE) - COPYRIGHT_YEAR=`date +'%Y'` + AC_ARG_WITH(copyright-year, [AS_HELP_STRING([--with-copyright-year], + [Set copyright year value for build @<:@current year@:>@])]) + if test "x$with_copyright_year" = xyes; then + AC_MSG_ERROR([Copyright year must have a value]) + elif test "x$with_copyright_year" != x; then + COPYRIGHT_YEAR="$with_copyright_year" + else + COPYRIGHT_YEAR=`date +'%Y'` + fi AC_SUBST(COPYRIGHT_YEAR) if test "x$JDK_UPDATE_VERSION" != x; then diff -r 6c4058e6adaf -r fc41675cd5ad common/autoconf/libraries.m4 --- a/common/autoconf/libraries.m4 Wed Mar 19 21:09:11 2014 +0100 +++ b/common/autoconf/libraries.m4 Wed Dec 03 22:33:44 2014 +0100 @@ -43,6 +43,14 @@ AC_MSG_RESULT([alsa pulse]) fi + if test "x$OPENJDK_TARGET_OS" = xaix; then + AC_MSG_CHECKING([what is not needed on AIX?]) + ALSA_NOT_NEEDED=yes + PULSE_NOT_NEEDED=yes + AC_MSG_RESULT([alsa pulse]) + fi + + if test "x$OPENJDK_TARGET_OS" = xwindows; then AC_MSG_CHECKING([what is not needed on Windows?]) CUPS_NOT_NEEDED=yes @@ -554,7 +562,7 @@ fi if test "x${with_alsa}" != x; then - ALSA_LIBS="-L${with_alsa}/lib -lalsa" + ALSA_LIBS="-L${with_alsa}/lib -lasound" ALSA_CFLAGS="-I${with_alsa}/include" ALSA_FOUND=yes fi @@ -563,7 +571,7 @@ ALSA_FOUND=yes fi if test "x${with_alsa_lib}" != x; then - ALSA_LIBS="-L${with_alsa_lib} -lalsa" + ALSA_LIBS="-L${with_alsa_lib} -lasound" ALSA_FOUND=yes fi if test "x$ALSA_FOUND" = xno; then diff -r 6c4058e6adaf -r fc41675cd5ad common/autoconf/platform.m4 --- a/common/autoconf/platform.m4 Wed Mar 19 21:09:11 2014 +0100 +++ b/common/autoconf/platform.m4 Wed Dec 03 22:33:44 2014 +0100 @@ -60,6 +60,12 @@ VAR_CPU_BITS=64 VAR_CPU_ENDIAN=big ;; + powerpc64le) + VAR_CPU=ppc64 + VAR_CPU_ARCH=ppc + VAR_CPU_BITS=64 + VAR_CPU_ENDIAN=little + ;; s390) VAR_CPU=s390 VAR_CPU_ARCH=s390 @@ -126,6 +132,11 @@ VAR_OS_API=winapi VAR_OS_ENV=windows.msys ;; + *aix*) + VAR_OS=aix + VAR_OS_API=posix + VAR_OS_ENV=aix + ;; *) AC_MSG_ERROR([unsupported operating system $1]) ;; @@ -432,9 +443,9 @@ # keep track of these additions in ADDED_CFLAGS etc. These # will later be checked to make sure only controlled additions # have been made to CFLAGS etc. - ADDED_CFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}" - ADDED_CXXFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}" - ADDED_LDFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}" + ADDED_CFLAGS=" ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" + ADDED_CXXFLAGS=" ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" + ADDED_LDFLAGS=" ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" CFLAGS="${CFLAGS}${ADDED_CFLAGS}" CXXFLAGS="${CXXFLAGS}${ADDED_CXXFLAGS}" @@ -454,8 +465,9 @@ # is made at runtime.) # - if test "x$OPENJDK_TARGET_OS" = xsolaris; then - # Always specify -m flags on Solaris + if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xaix; then + # Always specify -m flag on Solaris + # And -q on AIX because otherwise the compiler produces 32-bit objects by default PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS elif test "x$COMPILE_TYPE" = xreduced; then if test "x$OPENJDK_TARGET_OS" != xwindows; then @@ -477,19 +489,34 @@ AC_CHECK_SIZEOF([int *], [1111]) - if test "x$SIZEOF_INT_P" != "x$ac_cv_sizeof_int_p"; then - # Workaround autoconf bug, see http://lists.gnu.org/archive/html/autoconf/2010-07/msg00004.html - SIZEOF_INT_P="$ac_cv_sizeof_int_p" - fi - - if test "x$SIZEOF_INT_P" = x; then + # AC_CHECK_SIZEOF defines 'ac_cv_sizeof_int_p' to hold the number of bytes used by an 'int*' + if test "x$ac_cv_sizeof_int_p" = x; then # The test failed, lets stick to the assumed value. AC_MSG_WARN([The number of bits in the target could not be determined, using $OPENJDK_TARGET_CPU_BITS.]) else - TESTED_TARGET_CPU_BITS=`expr 8 \* $SIZEOF_INT_P` + TESTED_TARGET_CPU_BITS=`expr 8 \* $ac_cv_sizeof_int_p` if test "x$TESTED_TARGET_CPU_BITS" != "x$OPENJDK_TARGET_CPU_BITS"; then - AC_MSG_ERROR([The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)]) + # This situation may happen on 64-bit platforms where the compiler by default only generates 32-bit objects + # Let's try to implicitely set the compilers target architecture and retry the test + AC_MSG_NOTICE([The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS).]) + AC_MSG_NOTICE([I'll retry after setting the platforms compiler target bits flag to ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}]) + PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS + + # We have to unset 'ac_cv_sizeof_int_p' first, otherwise AC_CHECK_SIZEOF will use the previously cached value! + unset ac_cv_sizeof_int_p + # And we have to undef the definition of SIZEOF_INT_P in confdefs.h by the previous invocation of AC_CHECK_SIZEOF + cat >>confdefs.h <<_ACEOF +#undef SIZEOF_INT_P +_ACEOF + + AC_CHECK_SIZEOF([int *], [1111]) + + TESTED_TARGET_CPU_BITS=`expr 8 \* $ac_cv_sizeof_int_p` + + if test "x$TESTED_TARGET_CPU_BITS" != "x$OPENJDK_TARGET_CPU_BITS"; then + AC_MSG_ERROR([The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)]) + fi fi fi diff -r 6c4058e6adaf -r fc41675cd5ad common/autoconf/spec.gmk.in --- a/common/autoconf/spec.gmk.in Wed Mar 19 21:09:11 2014 +0100 +++ b/common/autoconf/spec.gmk.in Wed Dec 03 22:33:44 2014 +0100 @@ -208,6 +208,7 @@ JVM_VARIANT_KERNEL:=@JVM_VARIANT_KERNEL@ JVM_VARIANT_ZERO:=@JVM_VARIANT_ZERO@ JVM_VARIANT_ZEROSHARK:=@JVM_VARIANT_ZEROSHARK@ +JVM_VARIANT_CORE:=@JVM_VARIANT_CORE@ # Universal binaries on macosx MACOSX_UNIVERSAL=@MACOSX_UNIVERSAL@ @@ -248,7 +249,6 @@ # The boot jdk to use BOOT_JDK:=@BOOT_JDK@ -BOOT_JDK_JVMARGS:=@BOOT_JDK_JVMARGS@ BOOT_RTJAR:=@BOOT_RTJAR@ BOOT_TOOLSJAR=$(BOOT_JDK)/lib/tools.jar @@ -297,6 +297,8 @@ COMPILER_TYPE:=@COMPILER_TYPE@ COMPILER_NAME:=@COMPILER_NAME@ +# Option used to tell the compiler whether to create 32- or 64-bit executables +COMPILER_TARGET_BITS_FLAG:=@COMPILER_TARGET_BITS_FLAG@ COMPILER_SUPPORTS_TARGET_BITS_FLAG=@COMPILER_SUPPORTS_TARGET_BITS_FLAG@ CC_OUT_OPTION:=@CC_OUT_OPTION@ @@ -340,6 +342,11 @@ # The linker can be gcc or ld on posix systems, or link.exe on windows systems. LD:=@FIXPATH@ @LD@ +# The linker on older SuSE distros (e.g. on SLES 10) complains with: +# "Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable." +# if feeded with a version script which contains named tags. +USING_BROKEN_SUSE_LD:=@USING_BROKEN_SUSE_LD@ + # LDFLAGS used to link the jdk native libraries (C-code) LDFLAGS_JDKLIB:=@LDFLAGS_JDKLIB@ LDFLAGS_JDKLIB_SUFFIX:=@LDFLAGS_JDKLIB_SUFFIX@ @@ -428,9 +435,12 @@ POST_STRIP_CMD:=@POST_STRIP_CMD@ POST_MCS_CMD:=@POST_MCS_CMD@ -JAVA_FLAGS:=@BOOT_JDK_JVMARGS@ +JAVA_FLAGS:=@JAVA_FLAGS@ +JAVA_FLAGS_BIG:=@JAVA_FLAGS_BIG@ +JAVA_FLAGS_SMALL:=@JAVA_FLAGS_SMALL@ -JAVA=@FIXPATH@ $(BOOT_JDK)/bin/java $(JAVA_FLAGS) +JAVA=@FIXPATH@ $(BOOT_JDK)/bin/java $(JAVA_FLAGS_BIG) $(JAVA_FLAGS) +JAVA_SMALL=@FIXPATH@ $(BOOT_JDK)/bin/java $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS) JAVAC=@FIXPATH@ $(BOOT_JDK)/bin/javac # Hotspot sets this variable before reading the SPEC when compiling sa-jdi.jar. Avoid @@ -443,7 +453,7 @@ RMIC=@FIXPATH@ $(BOOT_JDK)/bin/rmic -NATIVE2ASCII=@FIXPATH@ $(BOOT_JDK)/bin/native2ascii +NATIVE2ASCII=@FIXPATH@ $(BOOT_JDK)/bin/native2ascii $(addprefix -J, $(JAVA_FLAGS_SMALL)) JARSIGNER=@FIXPATH@ $(BOOT_JDK)/bin/jarsigner diff -r 6c4058e6adaf -r fc41675cd5ad common/autoconf/toolchain.m4 --- a/common/autoconf/toolchain.m4 Wed Mar 19 21:09:11 2014 +0100 +++ b/common/autoconf/toolchain.m4 Wed Dec 03 22:33:44 2014 +0100 @@ -44,6 +44,15 @@ COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.*@<:@ ,\t@:>@$COMPILER_NAME@<:@ ,\t@:>@\(@<:@1-9@:>@\.@<:@0-9@:>@@<:@0-9@:>@*\).*/\1/p"` COMPILER_VENDOR="Sun Studio" fi + elif test "x$OPENJDK_TARGET_OS" = xaix; then + COMPILER_VERSION_TEST=`$COMPILER -qversion 2>&1 | $TAIL -n 1` + $ECHO $COMPILER_VERSION_TEST | $GREP "^Version: " > /dev/null + if test $? -ne 0; then + AC_MSG_ERROR([Failed to detect the compiler version of $COMPILER ....]) + else + COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n 's/Version: \([0-9][0-9]\.[0-9][0-9]*\).*/\1/p'` + COMPILER_VENDOR='IBM' + fi elif test "x$OPENJDK_TARGET_OS" = xwindows; then # First line typically looks something like: # Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86 @@ -137,10 +146,14 @@ AC_MSG_ERROR([Could not find a $COMPILER_NAME compiler. $HELP_MSG]) fi BASIC_FIXUP_EXECUTABLE($1) - AC_MSG_CHECKING([resolved symbolic links for $1]) TEST_COMPILER="[$]$1" - BASIC_REMOVE_SYMBOLIC_LINKS(TEST_COMPILER) - AC_MSG_RESULT([$TEST_COMPILER]) + # Don't remove symbolic links on AIX because 'xlc_r' and 'xlC_r' may all be links + # to 'xlc' but it is crucial that we invoke the compiler with the right name! + if test "x$OPENJDK_BUILD_OS" != xaix; then + AC_MSG_CHECKING([resolved symbolic links for $1]) + BASIC_REMOVE_SYMBOLIC_LINKS(TEST_COMPILER) + AC_MSG_RESULT([$TEST_COMPILER]) + fi AC_MSG_CHECKING([if $1 is disguised ccache]) COMPILER_BASENAME=`$BASENAME "$TEST_COMPILER"` @@ -254,6 +267,9 @@ COMPILER_CHECK_LIST="cl" elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then COMPILER_CHECK_LIST="cc gcc" + elif test "x$OPENJDK_TARGET_OS" = "xaix"; then + # Do not probe for cc on AIX. + COMPILER_CHECK_LIST="xlc_r" else COMPILER_CHECK_LIST="gcc cc" fi @@ -262,6 +278,14 @@ # Now that we have resolved CC ourself, let autoconf have its go at it AC_PROG_CC([$CC]) + # Option used to tell the compiler whether to create 32- or 64-bit executables + # Notice that CC contains the full compiler path at this point. + case $CC in + *xlc_r) COMPILER_TARGET_BITS_FLAG="-q";; + *) COMPILER_TARGET_BITS_FLAG="-m";; + esac + AC_SUBST(COMPILER_TARGET_BITS_FLAG) + ### Locate C++ compiler (CXX) if test "x$CXX" != x; then @@ -270,6 +294,9 @@ COMPILER_CHECK_LIST="cl" elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then COMPILER_CHECK_LIST="CC g++" + elif test "x$OPENJDK_TARGET_OS" = "xaix"; then + # Do not probe for CC on AIX . + COMPILER_CHECK_LIST="xlC_r" else COMPILER_CHECK_LIST="g++ CC" fi @@ -311,6 +338,8 @@ fi if test "x$OPENJDK_TARGET_OS" = xmacosx; then ARFLAGS="-r" + elif test "x$OPENJDK_TARGET_OS" = xaix; then + ARFLAGS="-X64" else ARFLAGS="" fi @@ -554,6 +583,29 @@ POST_STRIP_CMD="$STRIP -x" POST_MCS_CMD="$MCS -d -a \"JDK $FULL_VERSION\"" fi + if test "x$OPENJDK_TARGET_OS" = xaix; then + COMPILER_NAME=xlc + PICFLAG="-qpic=large" + LIBRARY_PREFIX=lib + SHARED_LIBRARY='lib[$]1.so' + STATIC_LIBRARY='lib[$]1.a' + SHARED_LIBRARY_FLAGS="-qmkshrobj" + SHARED_LIBRARY_SUFFIX='.so' + STATIC_LIBRARY_SUFFIX='.a' + OBJ_SUFFIX='.o' + EXE_SUFFIX='' + SET_SHARED_LIBRARY_NAME='' + SET_SHARED_LIBRARY_MAPFILE='' + C_FLAG_REORDER='' + CXX_FLAG_REORDER='' + SET_SHARED_LIBRARY_ORIGIN='' + SET_EXECUTABLE_ORIGIN="" + CFLAGS_JDK="" + CXXFLAGS_JDK="" + CFLAGS_JDKLIB_EXTRA='' + POST_STRIP_CMD="$STRIP -X32_64" + POST_MCS_CMD="" + fi if test "x$OPENJDK_TARGET_OS" = xwindows; then # If it is not gcc, then assume it is the MS Visual Studio compiler COMPILER_NAME=cl @@ -730,6 +782,24 @@ CFLAGS_DEBUG_SYMBOLS="-g -xs" CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs" + ;; + xlc ) + C_FLAG_DEPS="-qmakedep=gcc -MF" + CXX_FLAG_DEPS="-qmakedep=gcc -MF" + C_O_FLAG_HIGHEST="-O3" + C_O_FLAG_HI="-O3 -qstrict" + C_O_FLAG_NORM="-O2" + C_O_FLAG_NONE="" + CXX_O_FLAG_HIGHEST="-O3" + CXX_O_FLAG_HI="-O3 -qstrict" + CXX_O_FLAG_NORM="-O2" + CXX_O_FLAG_NONE="" + CFLAGS_DEBUG_SYMBOLS="-g" + CXXFLAGS_DEBUG_SYMBOLS="-g" + LDFLAGS_JDK="${LDFLAGS_JDK} -q64 -brtl -bnolibpath -liconv -bexpall" + CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" + CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" + ;; esac ;; CL ) @@ -840,6 +910,13 @@ LDFLAGS_JDK="$LDFLAGS_JDK -z defs -xildoff -ztext" LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib" ;; + xlc ) + CFLAGS_JDK="$CFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC" + CXXFLAGS_JDK="$CXXFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC" + + LDFLAGS_JDK="$LDFLAGS_JDK" + LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK" + ;; cl ) CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \ -D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \ @@ -909,6 +986,9 @@ if test "x$OPENJDK_TARGET_OS" = xsolaris; then CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DSOLARIS" fi + if test "x$OPENJDK_TARGET_OS" = xaix; then + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DAIX -DPPC64" + fi if test "x$OPENJDK_TARGET_OS" = xmacosx; then CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT" # Setting these parameters makes it an error to link to macosx APIs that are @@ -1076,20 +1156,38 @@ # ZERO_ARCHFLAG tells the compiler which mode to build for case "${OPENJDK_TARGET_CPU}" in s390) - ZERO_ARCHFLAG="-m31" + ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31" ;; *) - ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}" + ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" esac TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$ZERO_ARCHFLAG], [], [ZERO_ARCHFLAG=""]) AC_SUBST(ZERO_ARCHFLAG) - # Check that the compiler supports -mX flags + # Check that the compiler supports -mX (or -qX on AIX) flags # Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does - TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([-m${OPENJDK_TARGET_CPU_BITS}], + TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}], [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true], [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false]) AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG) + + + # Check for broken SuSE 'ld' for which 'Only anonymous version tag is allowed in executable.' + USING_BROKEN_SUSE_LD=no + if test "x$OPENJDK_TARGET_OS" = xlinux && test "x$GCC" = xyes; then + AC_MSG_CHECKING([for broken SuSE 'ld' which only understands anonymous version tags in executables]) + echo "SUNWprivate_1.1 { local: *; };" > version-script.map + echo "int main() { }" > main.c + if $CXX -Xlinker -version-script=version-script.map main.c 2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD; then + AC_MSG_RESULT(no) + USING_BROKEN_SUSE_LD=no + else + AC_MSG_RESULT(yes) + USING_BROKEN_SUSE_LD=yes + fi + rm -rf version-script.map main.c + fi + AC_SUBST(USING_BROKEN_SUSE_LD) ]) # Setup the JTREG paths diff -r 6c4058e6adaf -r fc41675cd5ad common/bin/hgforest.sh --- a/common/bin/hgforest.sh Wed Mar 19 21:09:11 2014 +0100 +++ b/common/bin/hgforest.sh Wed Dec 03 22:33:44 2014 +0100 @@ -1,7 +1,6 @@ #!/bin/sh - # -# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -23,165 +22,375 @@ # questions. # -# Shell script for a fast parallel forest command -command="$1" -pull_extra_base="$2" +# Shell script for a fast parallel forest/trees command + +usage() { + echo "usage: $0 [-h|--help] [-q|--quiet] [-v|--verbose] [-s|--sequential] [--] [commands...]" > ${status_output} + echo "Environment variables which modify behaviour:" + echo " HGFOREST_QUIET : (boolean) If 'true' then standard output is redirected to /dev/null" + echo " HGFOREST_VERBOSE : (boolean) If 'true' then Mercurial asked to produce verbose output" + echo " HGFOREST_SEQUENTIAL : (boolean) If 'true' then repos are processed sequentially. Disables concurrency" + echo " HGFOREST_GLOBALOPTS : (string, must begin with space) Additional Mercurial global options" + echo " HGFOREST_REDIRECT : (file path) Redirect standard output to specified file" + echo " HGFOREST_FIFOS : (boolean) Default behaviour for FIFO detection. Does not override FIFOs disabled" + echo " HGFOREST_CONCURRENCY: (positive integer) Number of repos to process concurrently" + echo " HGFOREST_DEBUG : (boolean) If 'true' then temp files are retained" + exit 1 +} + +global_opts="${HGFOREST_GLOBALOPTS:-}" +status_output="${HGFOREST_REDIRECT:-/dev/stdout}" +qflag="${HGFOREST_QUIET:-false}" +vflag="${HGFOREST_VERBOSE:-false}" +sflag="${HGFOREST_SEQUENTIAL:-false}" +while [ $# -gt 0 ] +do + case $1 in + -h | --help ) + usage + ;; + + -q | --quiet ) + qflag="true" + ;; + + -v | --verbose ) + vflag="true" + ;; -if [ "" = "$command" ] ; then - echo No command to hg supplied! - exit 1 + -s | --sequential ) + sflag="true" + ;; + + '--' ) # no more options + shift; break + ;; + + -*) # bad option + usage + ;; + + * ) # non option + break + ;; + esac + shift +done + +# silence standard output? +if [ ${qflag} = "true" ] ; then + global_opts="${global_opts} -q" + status_output="/dev/null" fi +# verbose output? +if [ ${vflag} = "true" ] ; then + global_opts="${global_opts} -v" +fi + +# Make sure we have a command. +if [ $# -lt 1 -o -z "${1:-}" ] ; then + echo "ERROR: No command to hg supplied!" + usage +fi + +command="$1"; shift +command_args="${@:-}" + # Clean out the temporary directory that stores the pid files. tmp=/tmp/forest.$$ rm -f -r ${tmp} mkdir -p ${tmp} + +if [ "${HGFOREST_DEBUG:-false}" = "true" ] ; then + echo "DEBUG: temp files are in: ${tmp}" +fi + +# Check if we can use fifos for monitoring sub-process completion. +echo "1" > ${tmp}/read +while_subshell=1 +while read line; do + while_subshell=0 + break; +done < ${tmp}/read +rm ${tmp}/read + +on_windows=`uname -s | egrep -ic -e 'cygwin|msys'` + +if [ ${while_subshell} = "1" -o ${on_windows} = "1" ]; then + # cygwin has (2014-04-18) broken (single writer only) FIFOs + # msys has (2014-04-18) no FIFOs. + # older shells create a sub-shell for redirect to while + have_fifos="false" +else + have_fifos="${HGFOREST_FIFOS:-true}" +fi + safe_interrupt () { if [ -d ${tmp} ]; then if [ "`ls ${tmp}/*.pid`" != "" ]; then - echo "Waiting for processes ( `cat ${tmp}/*.pid | tr '\n' ' '`) to terminate nicely!" + echo "Waiting for processes ( `cat ${tmp}/.*.pid ${tmp}/*.pid 2> /dev/null | tr '\n' ' '`) to terminate nicely!" > ${status_output} sleep 1 # Pipe stderr to dev/null to silence kill, that complains when trying to kill # a subprocess that has already exited. kill -TERM `cat ${tmp}/*.pid | tr '\n' ' '` 2> /dev/null wait - echo Interrupt complete! + echo "Interrupt complete!" > ${status_output} fi + rm -f -r ${tmp} fi - rm -f -r ${tmp} - exit 1 + exit 130 } nice_exit () { if [ -d ${tmp} ]; then - if [ "`ls ${tmp}`" != "" ]; then + if [ "`ls -A ${tmp} 2> /dev/null`" != "" ]; then wait fi + if [ "${HGFOREST_DEBUG:-false}" != "true" ] ; then + rm -f -r ${tmp} + fi fi - rm -f -r ${tmp} } trap 'safe_interrupt' INT QUIT trap 'nice_exit' EXIT +subrepos="corba jaxp jaxws langtools jdk hotspot nashorn" +subrepos_extra="jdk/src/closed jdk/make/closed jdk/test/closed hotspot/make/closed hotspot/src/closed hotspot/test/closed deploy install sponsors pubs" + # Only look in specific locations for possible forests (avoids long searches) pull_default="" repos="" repos_extra="" -if [ "${command}" = "clone" -o "${command}" = "fclone" ] ; then - subrepos="corba jaxp jaxws langtools jdk hotspot nashorn" - if [ -f .hg/hgrc ] ; then - pull_default=`hg paths default` - if [ "${pull_default}" = "" ] ; then - echo "ERROR: Need initial clone with 'hg paths default' defined" - exit 1 - fi - fi - if [ "${pull_default}" = "" ] ; then - echo "ERROR: Need initial repository to use this script" +if [ "${command}" = "clone" -o "${command}" = "fclone" -o "${command}" = "tclone" ] ; then + # we must be a clone + if [ ! -f .hg/hgrc ] ; then + echo "ERROR: Need initial repository to use this script" > ${status_output} exit 1 fi + + # the clone must know where it came from (have a default pull path). + pull_default=`hg paths default` + if [ "${pull_default}" = "" ] ; then + echo "ERROR: Need initial clone with 'hg paths default' defined" > ${status_output} + exit 1 + fi + + # determine which sub repos need to be cloned. for i in ${subrepos} ; do if [ ! -f ${i}/.hg/hgrc ] ; then repos="${repos} ${i}" fi done - if [ "${pull_extra_base}" != "" ] ; then - subrepos_extra="jdk/src/closed jdk/make/closed jdk/test/closed hotspot/make/closed hotspot/src/closed hotspot/test/closed deploy install sponsors pubs" - pull_default_tail=`echo ${pull_default} | sed -e 's@^.*://[^/]*/\(.*\)@\1@'` - pull_extra="${pull_extra_base}/${pull_default_tail}" + + pull_default_tail=`echo ${pull_default} | sed -e 's@^.*://[^/]*/\(.*\)@\1@'` + + if [ -n "${command_args}" ] ; then + # if there is an "extra sources" path then reparent "extra" repos to that path + if [ "x${pull_default}" = "x${pull_default_tail}" ] ; then + echo "ERROR: Need initial clone from non-local source" > ${status_output} + exit 1 + fi + pull_extra="${command_args}/${pull_default_tail}" + + # determine which extra subrepos need to be cloned. for i in ${subrepos_extra} ; do if [ ! -f ${i}/.hg/hgrc ] ; then repos_extra="${repos_extra} ${i}" fi done + else + if [ "x${pull_default}" = "x${pull_default_tail}" ] ; then + # local source repo. Clone the "extra" subrepos that exist there. + for i in ${subrepos_extra} ; do + if [ -f ${pull_default}/${i}/.hg/hgrc -a ! -f ${i}/.hg/hgrc ] ; then + # sub-repo there in source but not here + repos_extra="${repos_extra} ${i}" + fi + done + fi fi - at_a_time=2 + # Any repos to deal with? if [ "${repos}" = "" -a "${repos_extra}" = "" ] ; then + echo "No repositories to process." > ${status_output} exit fi + + # Repos to process concurrently. Clone does better with low concurrency. + at_a_time="${HGFOREST_CONCURRENCY:-2}" else - hgdirs=`ls -d ./.hg ./*/.hg ./*/*/.hg ./*/*/*/.hg ./*/*/*/*/.hg 2>/dev/null` - # Derive repository names from the .hg directory locations - for i in ${hgdirs} ; do - repos="${repos} `echo ${i} | sed -e 's@/.hg$@@'`" + # Process command for all of the present repos + for i in . ${subrepos} ${subrepos_extra} ; do + if [ -d ${i}/.hg ] ; then + repos="${repos} ${i}" + fi done + + # Any repos to deal with? + if [ "${repos}" = "" ] ; then + echo "No repositories to process." > ${status_output} + exit + fi + + # any of the repos locked? + locked="" for i in ${repos} ; do if [ -h ${i}/.hg/store/lock -o -f ${i}/.hg/store/lock ] ; then locked="${i} ${locked}" fi done - at_a_time=8 - # Any repos to deal with? - if [ "${repos}" = "" ] ; then - echo "No repositories to process." - exit + if [ "${locked}" != "" ] ; then + echo "ERROR: These repositories are locked: ${locked}" > ${status_output} + exit 1 fi - if [ "${locked}" != "" ] ; then - echo "These repositories are locked: ${locked}" - exit - fi + + # Repos to process concurrently. + at_a_time="${HGFOREST_CONCURRENCY:-8}" fi # Echo out what repositories we do a command on. -echo "# Repositories: ${repos} ${repos_extra}" -echo +echo "# Repositories: ${repos} ${repos_extra}" > ${status_output} -# Run the supplied command on all repos in parallel. -n=0 -for i in ${repos} ${repos_extra} ; do - n=`expr ${n} '+' 1` - repopidfile=`echo ${i} | sed -e 's@./@@' -e 's@/@_@g'` - reponame=`echo ${i} | sed -e :a -e 's/^.\{1,20\}$/ &/;ta'` - pull_base="${pull_default}" - for j in $repos_extra ; do - if [ "$i" = "$j" ] ; then - pull_base="${pull_extra}" - fi - done +if [ "${command}" = "serve" ] ; then + # "serve" is run for all the repos as one command. ( ( - if [ "${command}" = "clone" -o "${command}" = "fclone" ] ; then - pull_newrepo="`echo ${pull_base}/${i} | sed -e 's@\([^:]/\)//*@\1@g'`" - echo hg clone ${pull_newrepo} ${i} - path="`dirname ${i}`" - if [ "${path}" != "." ] ; then - times=0 - while [ ! -d "${path}" ] ## nested repo, ensure containing dir exists - do - times=`expr ${times} '+' 1` - if [ `expr ${times} '%' 10` -eq 0 ] ; then - echo ${path} still not created, waiting... - fi - sleep 5 - done + cwd=`pwd` + serving=`basename ${cwd}` + ( + echo "[web]" + echo "description = ${serving}" + echo "allow_push = *" + echo "push_ssl = False" + + echo "[paths]" + for i in ${repos} ; do + if [ "${i}" != "." ] ; then + echo "/${serving}/${i} = ${i}" + else + echo "/${serving} = ${cwd}" + fi + done + ) > ${tmp}/serve.web-conf + + echo "serving root repo ${serving}" > ${status_output} + + echo "hg${global_opts} serve" > ${status_output} + (PYTHONUNBUFFERED=true hg${global_opts} serve -A ${status_output} -E ${status_output} --pid-file ${tmp}/serve.pid --web-conf ${tmp}/serve.web-conf; echo "$?" > ${tmp}/serve.pid.rc ) 2>&1 & + ) 2>&1 | sed -e "s@^@serve: @" > ${status_output} + ) & +else + # Run the supplied command on all repos in parallel. + + # n is the number of subprocess started or which might still be running. + n=0 + if [ ${have_fifos} = "true" ]; then + # if we have fifos use them to detect command completion. + mkfifo ${tmp}/fifo + exec 3<>${tmp}/fifo + fi + + # iterate over all of the subrepos. + for i in ${repos} ${repos_extra} ; do + n=`expr ${n} '+' 1` + repopidfile=`echo ${i} | sed -e 's@./@@' -e 's@/@_@g'` + reponame=`echo ${i} | sed -e :a -e 's/^.\{1,20\}$/ &/;ta'` + pull_base="${pull_default}" + + # regular repo or "extra" repo? + for j in ${repos_extra} ; do + if [ "${i}" = "${j}" ] ; then + # it's an "extra" + pull_base="${pull_extra}" + fi + done + + # remove trailing slash + pull_base="`echo ${pull_base} | sed -e 's@[/]*$@@'`" + + # execute the command on the subrepo + ( + ( + if [ "${command}" = "clone" -o "${command}" = "fclone" -o "${command}" = "tclone" ] ; then + # some form of clone + clone_newrepo="${pull_base}/${i}" + parent_path="`dirname ${i}`" + if [ "${parent_path}" != "." ] ; then + times=0 + while [ ! -d "${parent_path}" ] ; do ## nested repo, ensure containing dir exists + if [ "${sflag}" = "true" ] ; then + # Missing parent is fatal during sequential operation. + echo "ERROR: Missing parent path: ${parent_path}" > ${status_output} + exit 1 + fi + times=`expr ${times} '+' 1` + if [ `expr ${times} '%' 10` -eq 0 ] ; then + echo "${parent_path} still not created, waiting..." > ${status_output} + fi + sleep 5 + done + fi + # run the clone command. + echo "hg${global_opts} clone ${clone_newrepo} ${i}" > ${status_output} + (PYTHONUNBUFFERED=true hg${global_opts} clone ${clone_newrepo} ${i}; echo "$?" > ${tmp}/${repopidfile}.pid.rc ) 2>&1 & + else + # run the command. + echo "cd ${i} && hg${global_opts} ${command} ${command_args}" > ${status_output} + cd ${i} && (PYTHONUNBUFFERED=true hg${global_opts} ${command} ${command_args}; echo "$?" > ${tmp}/${repopidfile}.pid.rc ) 2>&1 & fi - (PYTHONUNBUFFERED=true hg clone ${pull_newrepo} ${i}; echo "$?" > ${tmp}/${repopidfile}.pid.rc )& - else - echo "cd ${i} && hg $*" - cd ${i} && (PYTHONUNBUFFERED=true hg "$@"; echo "$?" > ${tmp}/${repopidfile}.pid.rc )& + + echo $! > ${tmp}/${repopidfile}.pid + ) 2>&1 | sed -e "s@^@${reponame}: @" > ${status_output} + # tell the fifo waiter that this subprocess is done. + if [ ${have_fifos} = "true" ]; then + echo "${i}" >&3 fi - echo $! > ${tmp}/${repopidfile}.pid - ) 2>&1 | sed -e "s@^@${reponame}: @") & + ) & - if [ `expr ${n} '%' ${at_a_time}` -eq 0 ] ; then - sleep 2 - echo Waiting 5 secs before spawning next background command. - sleep 3 - fi -done -# Wait for all hg commands to complete + if [ "${sflag}" = "true" ] ; then + # complete this task before starting another. + wait + else + if [ "${have_fifos}" = "true" ]; then + # check on count of running subprocesses and possibly wait for completion + if [ ${n} -ge ${at_a_time} ] ; then + # read will block until there are completed subprocesses + while read repo_done; do + n=`expr ${n} '-' 1` + if [ ${n} -lt ${at_a_time} ] ; then + # we should start more subprocesses + break; + fi + done <&3 + fi + else + # Compare completions to starts + completed="`(ls -a1 ${tmp}/*.pid.rc 2> /dev/null | wc -l) || echo 0`" + while [ `expr ${n} '-' ${completed}` -ge ${at_a_time} ] ; do + # sleep a short time to give time for something to complete + sleep 1 + completed="`(ls -a1 ${tmp}/*.pid.rc 2> /dev/null | wc -l) || echo 0`" + done + fi + fi + done +fi + +# Wait for all subprocesses to complete wait # Terminate with exit 0 only if all subprocesses were successful ec=0 if [ -d ${tmp} ]; then - for rc in ${tmp}/*.pid.rc ; do + rcfiles="`(ls -a ${tmp}/*.pid.rc 2> /dev/null) || echo ''`" + for rc in ${rcfiles} ; do exit_code=`cat ${rc} | tr -d ' \n\r'` if [ "${exit_code}" != "0" ] ; then - echo "WARNING: ${rc} exited abnormally." + repo="`echo ${rc} | sed -e 's@^'${tmp}'@@' -e 's@/*\([^/]*\)\.pid\.rc$@\1@' -e 's@_@/@g'`" + echo "WARNING: ${repo} exited abnormally (${exit_code})" > ${status_output} ec=1 fi done diff -r 6c4058e6adaf -r fc41675cd5ad get_source.sh --- a/get_source.sh Wed Mar 19 21:09:11 2014 +0100 +++ b/get_source.sh Wed Dec 03 22:33:44 2014 +0100 @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -25,9 +25,76 @@ # questions. # -# Get clones of all nested repositories -sh ./common/bin/hgforest.sh clone "$@" || exit 1 +to_stderr() { + echo "$@" >&2 +} + +error() { + to_stderr "ERROR: $1" + exit ${2:-126} +} + +warning() { + to_stderr "WARNING: $1" +} + +version_field() { + # rev is typically omitted for minor and major releases + field=`echo ${1}.0 | cut -f ${2} -d .` + if expr 1 + $field >/dev/null 2> /dev/null; then + echo $field + else + echo -1 + fi +} + +# Version check + +# required +reqdmajor=1 +reqdminor=4 +reqdrev=0 + +# requested +rqstmajor=2 +rqstminor=6 +rqstrev=3 + + +# installed +hgwhere="`command -v hg`" +if [ "x$hgwhere" = "x" ]; then + error "Could not locate Mercurial command" +fi + +hgversion="`hg --version 2> /dev/null | sed -n -e 's@^Mercurial Distributed SCM (version \([^+]*\).*)\$@\1@p'`" +if [ "x${hgversion}" = "x" ] ; then + error "Could not determine Mercurial version of $hgwhere" +fi + +hgmajor="`version_field $hgversion 1`" +hgminor="`version_field $hgversion 2`" +hgrev="`version_field $hgversion 3`" + +if [ $hgmajor -eq -1 -o $hgminor -eq -1 -o $hgrev -eq -1 ] ; then + error "Could not determine Mercurial version of $hgwhere from \"$hgversion\"" +fi + + +# Require +if [ $hgmajor -lt $reqdmajor -o \( $hgmajor -eq $reqdmajor -a $hgminor -lt $reqdminor \) -o \( $hgmajor -eq $reqdmajor -a $hgminor -eq $reqdminor -a $hgrev -lt $reqdrev \) ] ; then + error "Mercurial version $reqdmajor.$reqdminor.$reqdrev or later is required. $hgwhere is version $hgversion" +fi + + +# Request +if [ $hgmajor -lt $rqstmajor -o \( $hgmajor -eq $rqstmajor -a $hgminor -lt $rqstminor \) -o \( $hgmajor -eq $rqstmajor -a $hgminor -eq $rqstminor -a $hgrev -lt $rqstrev \) ] ; then + warning "Mercurial version $rqstmajor.$rqstminor.$rqstrev or later is recommended. $hgwhere is version $hgversion" +fi + + +# Get clones of all absent nested repositories (harmless if already exist) +sh ./common/bin/hgforest.sh clone "$@" || exit $? # Update all existing repositories to the latest sources sh ./common/bin/hgforest.sh pull -u - diff -r 6c4058e6adaf -r fc41675cd5ad make/Javadoc.gmk --- a/make/Javadoc.gmk Wed Mar 19 21:09:11 2014 +0100 +++ b/make/Javadoc.gmk Wed Dec 03 22:33:44 2014 +0100 @@ -72,6 +72,7 @@ TREEAPI_FIRST_COPYRIGHT_YEAR = 2005 JNLP_FIRST_COPYRIGHT_YEAR = 1998 PLUGIN2_FIRST_COPYRIGHT_YEAR = 2007 +JDKNET_FIRST_COPYRIGHT_YEAR = 2014 # Oracle name FULL_COMPANY_NAME = Oracle and/or its affiliates @@ -102,10 +103,7 @@ DOCSDIR_URL = {@docroot}/$(GET2DOCSDIR) # Url to copyright html file -COPYRIGHT_URL-7 = $(DOCSDIR_URL)/legal/cpyr.html -# This isn't added in old build yet. -#COPYRIGHT_URL-8 = $(DOCSDIR_URL)/legal/cpyr.html -COPYRIGHT_URL = $(COPYRIGHT_URL-$(JDK_MINOR_VERSION)) +COPYRIGHT_URL = $(DOCSDIR_URL)/legal/cpyr.html # Url to bug filing site BUG_SUBMIT_URL = http://bugreport.sun.com/bugreport/ @@ -313,6 +311,13 @@ ################################################################# # +# Load custom Javadoc rules, if present +# +-include $(CUSTOM_MAKE_DIR)/Javadoc.gmk + +################################################################# + +# # Default target is same as docs target, create core api and all others it can # @@ -1147,6 +1152,57 @@ ############################################################# # +# jdk.net docs +# + +ALL_OTHER_TARGETS += jdknetdocs + +JDKNET_DOCDIR := $(JRE_API_DOCSDIR)/net/socketoptions/spec +JDKNET2COREAPI := ../../../$(JDKJRE2COREAPI) +JDKNET_DOCTITLE := jdk.net API +JDKNET_WINDOWTITLE := jdk.net API +JDKNET_HEADER := jdk.net API +JDKNET_BOTTOM := $(call CommonBottom,$(JDKNET_FIRST_COPYRIGHT_YEAR)) +JDKNET_PKGS := jdk.net + +JDKNET_INDEX_HTML = $(JDKNET_DOCDIR)/index.html +JDKNET_OPTIONS_FILE = $(DOCSTMPDIR)/jdknet.options +JDKNET_PACKAGES_FILE = $(DOCSTMPDIR)/jdknet.packages + +jdknetdocs: $(JDKNET_INDEX_HTML) + +# Set relative location to core api document root +$(JDKNET_INDEX_HTML): GET2DOCSDIR=$(JDKNET2COREAPI)/.. + +# Run javadoc if the index file is out of date or missing +$(JDKNET_INDEX_HTML): $(JDKNET_OPTIONS_FILE) $(JDKNET_PACKAGES_FILE) coredocs + $(prep-javadoc) + $(call JavadocSummary,$(JDKNET_OPTIONS_FILE),$(JDKNET_PACKAGES_FILE)) + $(JAVADOC_CMD) -d $(@D) \ + @$(JDKNET_OPTIONS_FILE) @$(JDKNET_PACKAGES_FILE) + +# Create file with javadoc options in it +$(JDKNET_OPTIONS_FILE): + $(prep-target) + @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \ + $(call OptionOnly,-Xdoclint:none) ; \ + $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \ + $(call OptionPair,-encoding,ascii) ; \ + $(call OptionOnly,-nodeprecatedlist) ; \ + $(call OptionPair,-doctitle,$(JDKNET_DOCTITLE)) ; \ + $(call OptionPair,-windowtitle,$(JDKNET_WINDOWTITLE) $(DRAFT_WINTITLE)); \ + $(call OptionPair,-header,$(JDKNET_HEADER)$(DRAFT_HEADER)); \ + $(call OptionPair,-bottom,$(JDKNET_BOTTOM)$(DRAFT_BOTTOM)); \ + $(call OptionTrip,-linkoffline,$(JDKNET2COREAPI),$(COREAPI_DOCSDIR)/); \ + ) >> $@ + +# Create a file with the package names in it +$(JDKNET_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(JDKNET_PKGS)) + $(prep-target) + $(call PackageFilter,$(JDKNET_PKGS)) + +############################################################# +# # Get a cache of all the directories $(DIRECTORY_CACHE): $(ALL_EXISTING_SOURCE_DIRS) diff -r 6c4058e6adaf -r fc41675cd5ad make/Jprt.gmk --- a/make/Jprt.gmk Wed Mar 19 21:09:11 2014 +0100 +++ b/make/Jprt.gmk Wed Dec 03 22:33:44 2014 +0100 @@ -23,149 +23,11 @@ # questions. # -# This file is included by the root NewerMakefile and contains targets -# and utilities needed by JPRT. - -# Utilities used in this Makefile. Most of this makefile executes without -# the context of a spec file from configure. -CAT=cat -CMP=cmp -CP=cp -ECHO=echo -MKDIR=mkdir -PRINTF=printf -PWD=pwd -# Insure we have a path that looks like it came from pwd -# (This is mostly for Windows sake and drive letters) -define UnixPath # path -$(shell (cd "$1" && $(PWD))) -endef - -BUILD_DIR_ROOT:=$(root_dir)/build - -ifdef OPENJDK - OPEN_BUILD=true -else - OPEN_BUILD := $(if $(or $(wildcard $(root_dir)/jdk/src/closed), \ - $(wildcard $(root_dir)/jdk/make/closed), \ - $(wildcard $(root_dir)/jdk/test/closed), \ - $(wildcard $(root_dir)/hotspot/src/closed), \ - $(wildcard $(root_dir)/hotspot/make/closed), \ - $(wildcard $(root_dir)/hotspot/test/closed)), \ - false,true) -endif - -HOTSPOT_AVAILABLE := $(if $(wildcard $(root_dir)/hotspot),true,false) - -########################################################################### -# To help in adoption of the new configure&&make build process, a bridge -# build will use the old settings to run configure and do the build. - -# Build with the configure bridge. After running configure, restart make -# to parse the new spec file. -BRIDGE_TARGETS := all -# Add bootcycle-images target if legacy variable is set. -ifeq ($(SKIP_BOOT_CYCLE),false) - BRIDGE_TARGETS += bootcycle-images -endif -bridgeBuild: bridge2configure - @cd $(root_dir) && $(MAKE) -f Makefile $(BRIDGE_TARGETS) - -# Bridge from old Makefile ALT settings to configure options -bridge2configure: $(BUILD_DIR_ROOT)/.bridge2configureOpts - bash ./configure $(strip $(shell $(CAT) $<)) - -# Create a file with configure options created from old Makefile mechanisms. -$(BUILD_DIR_ROOT)/.bridge2configureOpts: $(BUILD_DIR_ROOT)/.bridge2configureOptsLatest - $(RM) $@ - $(CP) $< $@ +# This file is contains targets utilities needed by JPRT. -# Use this file to only change when obvious things have changed -$(BUILD_DIR_ROOT)/.bridge2configureOptsLatest: FRC - $(RM) $@.tmp - $(MKDIR) -p $(BUILD_DIR_ROOT) - @$(ECHO) " --with-debug-level=$(if $(DEBUG_LEVEL),$(DEBUG_LEVEL),release) " >> $@.tmp - ifdef ARCH_DATA_MODEL - @$(ECHO) " --with-target-bits=$(ARCH_DATA_MODEL) " >> $@.tmp - endif - ifeq ($(ARCH_DATA_MODEL),32) - @$(ECHO) " --with-jvm-variants=client,server " >> $@.tmp - endif - ifdef ALT_PARALLEL_COMPILE_JOBS - @$(ECHO) " --with-num-cores=$(ALT_PARALLEL_COMPILE_JOBS) " >> $@.tmp - endif - ifdef ALT_BOOTDIR - @$(ECHO) " --with-boot-jdk=$(call UnixPath,$(ALT_BOOTDIR)) " >> $@.tmp - endif - ifdef ALT_CUPS_HEADERS_PATH - @$(ECHO) " --with-cups-include=$(call UnixPath,$(ALT_CUPS_HEADERS_PATH)) " >> $@.tmp - endif - ifdef ALT_FREETYPE_HEADERS_PATH - @$(ECHO) " --with-freetype=$(call UnixPath,$(ALT_FREETYPE_HEADERS_PATH)/..) " >> $@.tmp - endif - ifdef ENABLE_SJAVAC - @$(ECHO) " --enable-sjavac" >> $@.tmp - endif - ifeq ($(HOTSPOT_AVAILABLE),false) - ifdef ALT_JDK_IMPORT_PATH - @$(ECHO) " --with-import-hotspot=$(call UnixPath,$(ALT_JDK_IMPORT_PATH)) " >> $@.tmp - endif - endif - ifeq ($(OPEN_BUILD),true) - @$(ECHO) " --enable-openjdk-only " >> $@.tmp - else -# Todo: move to closed? - ifdef ALT_MOZILLA_HEADERS_PATH - @$(ECHO) " --with-mozilla-headers=$(call UnixPath,$(ALT_MOZILLA_HEADERS_PATH)) " >> $@.tmp - endif - ifdef ALT_JUNIT_DIR - @$(ECHO) " --with-junit-dir=$(call UnixPath,$(ALT_JUNIT_DIR)) " >> $@.tmp + ifdef ALT_BSDIFF_DIR + @$(ECHO) " --with-bsdiff-dir=$(call UnixPath,$(ALT_BSDIFF_DIR)) " >> $@.tmp endif - ifdef ANT_HOME - @$(ECHO) " --with-ant-home=$(call UnixPath,$(ANT_HOME)) " >> $@.tmp - endif - ifdef ALT_JAVAFX_ZIP_DIR - @$(ECHO) " --with-javafx-zip-dir=$(call UnixPath,$(ALT_JAVAFX_ZIP_DIR)) " >> $@.tmp - endif - ifdef ALT_JMC_ZIP_DIR - @$(ECHO) " --with-jmc-zip-dir=$(call UnixPath,$(ALT_JMC_ZIP_DIR)) " >> $@.tmp - endif - ifdef ALT_WIXDIR - @$(ECHO) " --with-wix=$(call UnixPath,$(ALT_WIXDIR)) " >> $@.tmp - endif - ifdef ALT_INSTALL_LZMA_PATH - @$(ECHO) " --with-lzma-path=$(call UnixPath,$(ALT_INSTALL_LZMA_PATH)) " >> $@.tmp - endif - ifdef ALT_INSTALL_UPX_PATH - @$(ECHO) " --with-upx-path=$(call UnixPath,$(ALT_INSTALL_UPX_PATH)) " >> $@.tmp - endif - ifdef ALT_INSTALL_UPX_FILENAME - @$(ECHO) " --with-upx-filename=$(call UnixPath,$(ALT_INSTALL_UPX_FILENAME)) " >> $@.tmp - endif - ifdef ALT_CCSS_SIGNING_DIR - @$(ECHO) " --with-ccss-signing=$(call UnixPath,$(ALT_CCSS_SIGNING_DIR)) " >> $@.tmp - endif - ifdef ALT_SLASH_JAVA - @$(ECHO) " --with-java-devtools=$(call UnixPath,$(ALT_SLASH_JAVA)/devtools) " >> $@.tmp - endif - ifdef ALT_SPARKLE_FRAMEWORK_DIR - @$(ECHO) " --with-sparkle-framework=$(call UnixPath,$(ALT_SPARKLE_FRAMEWORK_DIR)) " >> $@.tmp - endif - endif - @if [ -f $@ ] ; then \ - if ! $(CMP) $@ $@.tmp > /dev/null ; then \ - $(CP) $@.tmp $@ ; \ - fi ; \ - else \ - $(CP) $@.tmp $@ ; \ - fi - $(RM) $@.tmp - -PHONY_LIST += bridge2configure bridgeBuild - -########################################################################### -# JPRT targets - ifndef JPRT_ARCHIVE_BUNDLE JPRT_ARCHIVE_BUNDLE=/tmp/jprt_bundles/j2sdk-image.zip endif @@ -173,22 +35,9 @@ JPRT_ARCHIVE_INSTALL_BUNDLE=/tmp/jprt_bundles/product-install.zip endif -# These targets execute in a SPEC free context, before calling bridgeBuild -# to generate the SPEC. -jprt_build_product: DEBUG_LEVEL=release -jprt_build_product: BUILD_DIRNAME=*-release -jprt_build_product: jprt_build_generic - -jprt_build_fastdebug: DEBUG_LEVEL=fastdebug -jprt_build_fastdebug: BUILD_DIRNAME=*-fastdebug -jprt_build_fastdebug: jprt_build_generic - -jprt_build_debug: DEBUG_LEVEL=slowdebug -jprt_build_debug: BUILD_DIRNAME=*-debug -jprt_build_debug: jprt_build_generic - -jprt_build_generic: BRIDGE_TARGETS+=jprt_bundle -jprt_build_generic: bridgeBuild +ifeq ($(SKIP_BOOT_CYCLE), false) + jprt_bundle: bootcycle-images +endif # This target must be called in the context of a SPEC file jprt_bundle: $(JPRT_ARCHIVE_BUNDLE) @@ -235,14 +84,6 @@ @$(call TargetExit) -# Keep track of phony targets -PHONY_LIST += jprt_build_product jprt_build_fastdebug jprt_build_debug \ - jprt_build_generic bundles jprt_bundle \ - final-images final-images-only - ########################################################################### # Phony targets -.PHONY: $(PHONY_LIST) - -# Force target -FRC: +.PHONY: jprt_bundle bundles bundles-only final-images final-images-only diff -r 6c4058e6adaf -r fc41675cd5ad make/Main.gmk --- a/make/Main.gmk Wed Mar 19 21:09:11 2014 +0100 +++ b/make/Main.gmk Wed Dec 03 22:33:44 2014 +0100 @@ -242,4 +242,6 @@ .PHONY: clean-langtools clean-corba clean-jaxp clean-jaxws clean-hotspot clean-jdk clean-nashorn clean-images clean-docs clean-test clean-overlay-images clean-bootcycle-build .PHONY: profiles profiles-only profiles-oscheck +include $(root_dir)/make/Jprt.gmk + FRC: # Force target diff -r 6c4058e6adaf -r fc41675cd5ad make/MakeHelpers.gmk --- a/make/MakeHelpers.gmk Wed Mar 19 21:09:11 2014 +0100 +++ b/make/MakeHelpers.gmk Wed Dec 03 22:33:44 2014 +0100 @@ -50,7 +50,7 @@ # Global targets are possible to run either with or without a SPEC. The prototypical # global target is "help". -global_targets=help jprt% bridgeBuild bridge2configure +global_targets=help ############################## # Functions diff -r 6c4058e6adaf -r fc41675cd5ad make/common/JavaCompilation.gmk --- a/make/common/JavaCompilation.gmk Wed Mar 19 21:09:11 2014 +0100 +++ b/make/common/JavaCompilation.gmk Wed Dec 03 22:33:44 2014 +0100 @@ -163,11 +163,12 @@ # The capture contents macro finds all files (matching the patterns, typically # .class and .prp) that are newer than the jar-file, ie the new content to be put into the jar. + # NOTICE: please leave the parentheses space separated otherwise the AIX build will break! $1_CAPTURE_CONTENTS=$$(foreach src,$$($1_SRCS), \ - (($(FIND) $$(src) -type f -a \( $$($1_FIND_PATTERNS) \) -a -newer $$@ $$($1_GREP_INCLUDES) \ + ( ( $(FIND) $$(src) -type f -a \( $$($1_FIND_PATTERNS) \) -a -newer $$@ $$($1_GREP_INCLUDES) \ $$($1_GREP_EXCLUDES) | $(SED) 's|$$(src)/||g' && \ - $(ECHO) $$(subst $$(src)/,,$$($1_EXTRA_FILES))) > \ - $$(src)/_the.$$($1_JARNAME)_contents) $$(NEWLINE)) + $(ECHO) $$(subst $$(src)/,,$$($1_EXTRA_FILES) ) ) > \ + $$(src)/_the.$$($1_JARNAME)_contents) $$(NEWLINE) ) # The capture metainf macro finds all files below the META-INF directory that are newer than the jar-file. ifeq (,$$($1_SKIP_METAINF)) $1_CAPTURE_METAINF =$$(foreach src,$$($1_SRCS),($(FIND) $$(src)/META-INF -type f -a -newer $$@ 2> /dev/null | $(SED) 's|$$(src)/||g' >> $$(src)/_the.$$($1_JARNAME)_contents ) $$(NEWLINE)) @@ -176,19 +177,20 @@ # tells us what to remove from the jar-file. $1_CAPTURE_DELETES=$$(foreach src,$$($1_SRCS),($(FIND) $$(src) -name _the.package.deleted -newer $$@ -exec $(SED) 's|$$(src)||g' \{\} >> $$($1_DELETES_FILE) \;) $$(NEWLINE)) # The update contents macro updates the jar file with the previously capture contents. - # xargs is used to trim the whitespace from the contents file, to see if it is empty. + # Use 'wc -w' to see if the contents file is empty. $1_UPDATE_CONTENTS=$$(foreach src,$$($1_SRCS), \ (cd $$(src) && \ - if [ -n "`$(CAT) _the.$$($1_JARNAME)_contents | $(XARGS)`" ]; then \ + if [ "`$(WC) -w _the.$$($1_JARNAME)_contents | $(AWK) '{ print $$$$1 }'`" -gt "0" ]; then \ $(ECHO) " updating" `$(WC) -l _the.$$($1_JARNAME)_contents | $(AWK) '{ print $$$$1 }'` files && \ $(JAR) $$($1_JAR_UPDATE_OPTIONS) $$@ @_the.$$($1_JARNAME)_contents; \ fi) $$(NEWLINE)) # The s-variants of the above macros are used when the jar is created from scratch. + # NOTICE: please leave the parentheses space separated otherwise the AIX build will break! $1_SCAPTURE_CONTENTS=$$(foreach src,$$($1_SRCS), \ - (($(FIND) $$(src) -type f -a \( $$($1_FIND_PATTERNS) \) $$($1_GREP_INCLUDES) \ + ( ( $(FIND) $$(src) -type f -a \( $$($1_FIND_PATTERNS) \) $$($1_GREP_INCLUDES) \ $$($1_GREP_EXCLUDES) | $(SED) 's|$$(src)/||g' && \ - $$(subst $$(src)/,,$(ECHO) $$($1_EXTRA_FILES))) > \ - $$(src)/_the.$$($1_JARNAME)_contents) $$(NEWLINE)) + $$(subst $$(src)/,,$(ECHO) $$($1_EXTRA_FILES) ) ) > \ + $$(src)/_the.$$($1_JARNAME)_contents) $$(NEWLINE) ) ifeq (,$$($1_SKIP_METAINF)) $1_SCAPTURE_METAINF=$$(foreach src,$$($1_SRCS), \ @@ -527,16 +529,16 @@ # When building in batch, put headers in a temp dir to filter out those that actually # changed before copying them to the real header dir. ifneq (,$$($1_HEADERS)) - $1_HEADERS_ARG := -h $$($1_HEADERS).tmp + $1_HEADERS_ARG := -h $$($1_HEADERS).$1.tmp $$($1_HEADERS)/_the.$1_headers: $$($1_BIN)/_the.$1_batch $(MKDIR) -p $$(@D) - for f in `ls $$($1_HEADERS).tmp`; do \ - if [ ! -f "$$($1_HEADERS)/$$$$f" ] || [ "`$(DIFF) $$($1_HEADERS)/$$$$f $$($1_HEADERS).tmp/$$$$f`" != "" ]; then \ - $(CP) -f $$($1_HEADERS).tmp/$$$$f $$($1_HEADERS)/$$$$f; \ + for f in `ls $$($1_HEADERS).$1.tmp`; do \ + if [ ! -f "$$($1_HEADERS)/$$$$f" ] || [ "`$(DIFF) $$($1_HEADERS)/$$$$f $$($1_HEADERS).$1.tmp/$$$$f`" != "" ]; then \ + $(CP) -f $$($1_HEADERS).$1.tmp/$$$$f $$($1_HEADERS)/$$$$f; \ fi; \ done - $(RM) -r $$($1_HEADERS).tmp + $(RM) -r $$($1_HEADERS).$1.tmp $(TOUCH) $$@ $1 += $$($1_HEADERS)/_the.$1_headers diff -r 6c4058e6adaf -r fc41675cd5ad make/common/NON_CORE_PKGS.gmk --- a/make/common/NON_CORE_PKGS.gmk Wed Mar 19 21:09:11 2014 +0100 +++ b/make/common/NON_CORE_PKGS.gmk Wed Dec 03 22:33:44 2014 +0100 @@ -94,7 +94,9 @@ com.apple.eio endif -JDK_PKGS = jdk +JDK_PKGS = jdk \ + jdk.net \ + jdk.management.cmm # non-core packages in rt.jar NON_CORE_PKGS = $(DOMAPI_PKGS) \ diff -r 6c4058e6adaf -r fc41675cd5ad make/common/NativeCompilation.gmk --- a/make/common/NativeCompilation.gmk Wed Mar 19 21:09:11 2014 +0100 +++ b/make/common/NativeCompilation.gmk Wed Dec 03 22:33:44 2014 +0100 @@ -501,7 +501,7 @@ # Generating a static library, ie object file archive. $$($1_TARGET) : $$($1_EXPECTED_OBJS) $$($1_RES) $$(call ARCHIVING_MSG,$$($1_LIBRARY)) - $(AR) $$($1_AR_FLAGS) $(AR_OUT_OPTION)$$($1_TARGET) $$($1_EXPECTED_OBJS) \ + $(AR) $$($1_ARFLAGS) $(AR_OUT_OPTION)$$($1_TARGET) $$($1_EXPECTED_OBJS) \ $$($1_RES) $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX) endif diff -r 6c4058e6adaf -r fc41675cd5ad make/jprt.properties --- a/make/jprt.properties Wed Mar 19 21:09:11 2014 +0100 +++ b/make/jprt.properties Wed Dec 03 22:33:44 2014 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -23,131 +23,467 @@ # questions. # -# Properties for jprt - -# Locked down to jdk8 -jprt.tools.default.release=jdk8 - -# Unix toolkit to use for building on windows -jprt.windows.jdk8.build.unix.toolkit=cygwin - -# The different build flavors we want, we override here so we just get these 2 -jprt.build.flavors=product,fastdebug - -# Standard list of jprt build targets for this source tree -jprt.build.targets= \ - solaris_sparcv9_5.10-{product|fastdebug}, \ - solaris_x64_5.10-{product|fastdebug}, \ - linux_i586_2.6-{product|fastdebug}, \ - linux_x64_2.6-{product|fastdebug}, \ - macosx_x64_10.7-{product|fastdebug}, \ - windows_i586_6.1-{product|fastdebug}, \ - windows_x64_6.1-{product|fastdebug} - -# User can select the test set with jprt submit "-testset name" option -jprt.my.test.set=${jprt.test.set} - -# Test target list (no fastdebug & limited c2 testing) -jprt.my.test.target.set= \ - solaris_sparcv9_5.10-product-c2-TESTNAME, \ - solaris_x64_5.10-product-c2-TESTNAME, \ - linux_i586_2.6-product-{c1|c2}-TESTNAME, \ - linux_x64_2.6-product-c2-TESTNAME, \ - macosx_x64_10.7-product-c2-TESTNAME, \ - windows_i586_6.1-product-c1-TESTNAME, \ - windows_x64_6.1-product-c2-TESTNAME - -# Default vm test targets (testset=default) -jprt.vm.default.test.targets= \ - ${jprt.my.test.target.set:TESTNAME=jvm98}, \ - ${jprt.my.test.target.set:TESTNAME=scimark} - -# Default jdk test targets (testset=default) -jprt.make.rule.default.test.targets= \ - ${jprt.my.test.target.set:TESTNAME=langtools_jtreg}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_lang}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_math}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_util} - - -# Default vm test targets (testset=core) -jprt.vm.core.test.targets= +############## +# +# Global settings +# -# Core jdk test targets (testset=core) -jprt.make.rule.core.test.targets= \ - ${jprt.my.test.target.set:TESTNAME=jdk_lang}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_math}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_util}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_io}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_net}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_nio}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_security1}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_security2}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_security3}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_rmi}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_text}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_time}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_other}, \ - ${jprt.my.test.target.set:TESTNAME=core_tools} - -# Svc vm test targets (testset=svc) -jprt.vm.svc.test.targets= - -# Core jdk test targets (testset=svc) -jprt.make.rule.svc.test.targets= \ - ${jprt.my.test.target.set:TESTNAME=jdk_management}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_instrument}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_jmx}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_jdi}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_jfr}, \ - ${jprt.my.test.target.set:TESTNAME=svc_tools} - -# All vm test targets (testset=all) -jprt.vm.all.test.targets= \ - ${jprt.vm.default.test.targets}, \ - ${jprt.my.test.target.set:TESTNAME=runThese}, \ - ${jprt.my.test.target.set:TESTNAME=jbb_default} +# The current release name +my.jdk.update.version=40 +jprt.tools.default.release=jdk8u${my.jdk.update.version} -# All jdk test targets (testset=all) -jprt.make.rule.all.test.targets= \ - ${jprt.make.rule.core.test.targets}, \ - ${jprt.make.rule.svc.test.targets}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_awt}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_beans1}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_beans2}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_beans3}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_sound}, \ - ${jprt.my.test.target.set:TESTNAME=jdk_swing} - -# PIT vm test targets (testset=pit) -jprt.vm.pit.test.targets= \ - ${jprt.vm.all.test.targets} +# Check if this is the equivalent of a hotspot push job +# Interpret -testset hotspot to mean exactly that +my.is.hotspot.job.hotspot=true +my.is.hotspot.job=${my.is.hotspot.job.${jprt.test.set}} -# PIT jdk test targets (testset=pit) -jprt.make.rule.pit.test.targets= \ - ${jprt.my.test.target.set:TESTNAME=langtools_jtreg}, \ - ${jprt.make.rule.core.test.targets}, \ - ${jprt.make.rule.svc.test.targets} - -# JCK test targets in test/Makefile (no windows) -jprt.my.jck.test.target.set= \ - solaris_sparcv9_5.10-product-c2-JCK7TESTRULE, \ - solaris_x64_5.10-product-c2-JCK7TESTRULE, \ - linux_i586_2.6-product-c1-JCK7TESTRULE, \ - linux_x64_2.6-product-c2-JCK7TESTRULE - -# JCK testset targets (e.g. jprt submit -testset jck ... ) -jprt.make.rule.jck.test.targets= \ - ${jprt.my.jck.test.target.set:JCK7TESTRULE=jck7devtools}, \ - ${jprt.my.jck.test.target.set:JCK7TESTRULE=jck7runtime}, \ - ${jprt.my.jck.test.target.set:JCK7TESTRULE=jck7compiler} - -# Select list to use (allow for testset to be empty too) -jprt.make.rule..test.targets=${jprt.make.rule.default.test.targets} -jprt.make.rule.test.targets=${jprt.make.rule.${jprt.my.test.set}.test.targets} -jprt.vm..test.targets=${jprt.vm.default.test.targets} -jprt.test.targets=${jprt.vm.${jprt.my.test.set}.test.targets} +# Disable syncing the source after builds and tests are done +jprt.sync.push=${my.is.hotspot.job ? false : true} # Directories to be excluded from the source bundles jprt.bundle.exclude.src.dirs=build dist webrev +# Use configure when building +jprt.build.use.configure=true + +# Set make target to use for different build flavors +jprt.build.flavor.debugOpen.target=jprt_bundle +jprt.build.flavor.fastdebug.target=jprt_bundle +jprt.build.flavor.product.target=jprt_bundle +jprt.build.flavor.productOpen.target=jprt_bundle + +# Use these configure args to define debug level +jprt.debug.build.configure.args=--with-debug-level=slowdebug +jprt.fastdebug.build.configure.args=--with-debug-level=fastdebug +jprt.product.build.configure.args=--with-debug-level=release +jprt.debugOpen.build.configure.args=${jprt.debug.build.configure.args} --enable-openjdk-only +jprt.fastdebugOpen.build.configure.args=${jprt.fastdebug.build.configure.args} --enable-openjdk-only +jprt.productOpen.build.configure.args=${jprt.product.build.configure.args} --enable-openjdk-only + +# Select build flavors and build targets +jprt.build.flavors=${my.is.hotspot.job ? ${my.build.flavors.hotspot} : ${my.build.flavors.default}} +jprt.build.targets=${my.is.hotspot.job ? ${my.build.targets.hotspot} : ${my.build.targets.default}} + +# Select test targets - jprt default for jprt.test.set is "default" +jprt.test.targets=${my.test.targets.${jprt.test.set}} +jprt.make.rule.test.targets=${my.make.rule.test.targets.${jprt.test.set}} + +# 7155453: Work-around to prevent popups on OSX from blocking test completion +# but the work-around is added to all platforms to be consistent +jprt.jbb.options=-Djava.awt.headless=true + +######## +# +# Build options (generic) +# + +# Configure args common to all builds +# Also allows for additional, testset specific configure arguments to be set +jprt.build.configure.args= \ + --with-boot-jdk=$ALT_BOOTDIR \ + --with-jobs=$ALT_PARALLEL_COMPILE_JOBS \ + --with-update-version=${my.jdk.update.version} \ + ${my.additional.build.configure.args.${jprt.test.set}} + +# i586 is often cross-compiled from 64-bit machines, so need to set target bits explicitly +jprt.i586.build.configure.args= \ + --with-target-bits=32 + +# i586 platforms have both client and server, but to allow for overriding the exact configuration +# on a per-build flavor basis the value is set for the individual build flavors +# All other platforms only build server, which is the default setting from configure +my.i586.default.build.configure.args= \ + --with-jvm-variants=client,server +jprt.i586.debug.build.configure.args= \ + ${my.i586.default.build.configure.args} \ + ${jprt.debug.build.configure.args} +jprt.i586.fastdebug.build.configure.args= \ + ${my.i586.default.build.configure.args} \ + ${jprt.fastdebug.build.configure.args} +jprt.i586.product.build.configure.args= \ + ${my.i586.default.build.configure.args} \ + ${jprt.product.build.configure.args} +jprt.i586.debugOpen.build.configure.args= \ + ${my.i586.default.build.configure.args} \ + ${jprt.debugOpen.build.configure.args} +jprt.i586.fastdebugOpen.build.configure.args= \ + ${my.i586.default.build.configure.args} \ + ${jprt.fastdebugOpen.build.configure.args} +jprt.i586.productOpen.build.configure.args= \ + ${my.i586.default.build.configure.args} \ + ${jprt.productOpen.build.configure.args} + +######## +# +# Build targets and options (default/jdk) +# + +# The default build flavors +my.build.flavors.default=fastdebug,product + +# Standard list of jprt build targets for this source tree +my.build.targets.default= \ + solaris_sparcv9_5.10-{product|fastdebug}, \ + solaris_x64_5.10-{product|fastdebug}, \ + linux_i586_2.6-{product|fastdebug}, \ + linux_x64_2.6-{product|fastdebug}, \ + macosx_x64_10.7-{product|fastdebug}, \ + windows_i586_6.1-{product|fastdebug}, \ + windows_x64_6.1-{product|fastdebug} + +# Test target list (no fastdebug & limited c2 testing) +my.test.target.set= \ + solaris_sparcv9_5.10-product-c2-TESTNAME, \ + solaris_x64_5.10-product-c2-TESTNAME, \ + linux_i586_2.6-product-{c1|c2}-TESTNAME, \ + linux_x64_2.6-product-c2-TESTNAME, \ + macosx_x64_10.7-product-c2-TESTNAME, \ + windows_i586_6.1-product-c1-TESTNAME, \ + windows_x64_6.1-product-c2-TESTNAME + +# Default vm test targets (testset=default) +my.test.targets.default= \ + ${my.test.target.set:TESTNAME=jvm98}, \ + ${my.test.target.set:TESTNAME=scimark} + +# Default jdk test targets (testset=default) +my.make.rule.test.targets.default= \ + ${my.test.target.set:TESTNAME=langtools_jtreg}, \ + ${my.test.target.set:TESTNAME=jdk_lang}, \ + ${my.test.target.set:TESTNAME=jdk_math}, \ + ${my.test.target.set:TESTNAME=jdk_util} + +# Default vm test targets (testset=core) +my.test.targets.core= + +# Core jdk test targets (testset=core) +my.make.rule.test.targets.core= \ + ${my.test.target.set:TESTNAME=jdk_lang}, \ + ${my.test.target.set:TESTNAME=jdk_math}, \ + ${my.test.target.set:TESTNAME=jdk_util}, \ + ${my.test.target.set:TESTNAME=jdk_io}, \ + ${my.test.target.set:TESTNAME=jdk_net}, \ + ${my.test.target.set:TESTNAME=jdk_nio}, \ + ${my.test.target.set:TESTNAME=jdk_security1}, \ + ${my.test.target.set:TESTNAME=jdk_security2}, \ + ${my.test.target.set:TESTNAME=jdk_security3}, \ + ${my.test.target.set:TESTNAME=jdk_security4}, \ + ${my.test.target.set:TESTNAME=jdk_rmi}, \ + ${my.test.target.set:TESTNAME=jdk_text}, \ + ${my.test.target.set:TESTNAME=jdk_time}, \ + ${my.test.target.set:TESTNAME=jdk_other}, \ + ${my.test.target.set:TESTNAME=core_tools} + +# Svc vm test targets (testset=svc) +my.test.targets.svc= + +# Core jdk test targets (testset=svc) +my.make.rule.test.targets.svc= \ + ${my.test.target.set:TESTNAME=jdk_management}, \ + ${my.test.target.set:TESTNAME=jdk_instrument}, \ + ${my.test.target.set:TESTNAME=jdk_jmx}, \ + ${my.test.target.set:TESTNAME=jdk_jdi}, \ + ${my.test.target.set:TESTNAME=jdk_jfr}, \ + ${my.test.target.set:TESTNAME=jdk_rm}, \ + ${my.test.target.set:TESTNAME=svc_tools} + +# All vm test targets (testset=all) +my.test.targets.all= \ + ${my.test.targets.default}, \ + ${my.test.target.set:TESTNAME=runThese}, \ + ${my.test.target.set:TESTNAME=jbb_default} + +# All jdk test targets (testset=all) +my.make.rule.test.targets.all= \ + ${my.make.rule.test.targets.core}, \ + ${my.make.rule.test.targets.svc}, \ + ${my.test.target.set:TESTNAME=jdk_awt}, \ + ${my.test.target.set:TESTNAME=jdk_beans1}, \ + ${my.test.target.set:TESTNAME=jdk_beans2}, \ + ${my.test.target.set:TESTNAME=jdk_beans3}, \ + ${my.test.target.set:TESTNAME=jdk_sound}, \ + ${my.test.target.set:TESTNAME=jdk_swing} + +# PIT vm test targets (testset=pit) +my.test.targets.pit= \ + ${my.test.targets.all} + +# PIT jdk test targets (testset=pit) +my.make.rule.test.targets.pit= \ + ${my.test.target.set:TESTNAME=langtools_jtreg}, \ + ${my.make.rule.test.targets.core}, \ + ${my.make.rule.test.targets.svc} + +# JCK test targets in test/Makefile (no windows) +my.test.target.set.jck= \ + solaris_sparcv9_5.10-product-c2-JCK7TESTRULE, \ + solaris_x64_5.10-product-c2-JCK7TESTRULE, \ + linux_i586_2.6-product-c1-JCK7TESTRULE, \ + linux_x64_2.6-product-c2-JCK7TESTRULE + +# JCK testset targets +my.make.rule.test.targets.jck= \ + ${my.test.target.set.jck:JCK7TESTRULE=jck7devtools}, \ + ${my.test.target.set.jck:JCK7TESTRULE=jck7runtime}, \ + ${my.test.target.set.jck:JCK7TESTRULE=jck7compiler} + + +############# +# +# Hotspot related settings (testset=hotspot) +# + +# The hotspot build flavors +my.build.flavors.hotspot= \ + debugOpen,fastdebug,product,productOpen, \ + ${my.additional.build.flavors.hotspot} + +# Platforms built for hotspot push jobs +my.build.targets.hotspot= \ + solaris_sparcv9_5.10-{product|fastdebug|optimized}, \ + solaris_x64_5.10-{product|fastdebug}, \ + linux_i586_2.6-{product|fastdebug}, \ + linux_x64_2.6-{product|fastdebug|optimized}, \ + macosx_x64_10.7-{product|fastdebug}, \ + windows_i586_6.1-{product|fastdebug}, \ + windows_x64_6.1-{product|fastdebug|optimized}, \ + solaris_x64_5.10-{debugOpen}, \ + linux_x64_2.6-{productOpen}, \ + ${my.additional.build.targets.hotspot} + +# Tests to run on the various platforms for hotspot push jobs +my.test.targets.hotspot.solaris.sparcv9= \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-jvm98, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-jvm98_nontiered, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-scimark, \ + solaris_sparcv9_5.10-product-c2-runThese, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_SerialGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_ParallelGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_ParNewGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_CMS, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_G1, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_ParOldGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_SerialGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_ParallelGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_ParNewGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_CMS, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_G1, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_ParOldGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_default_nontiered, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_SerialGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_ParallelGC, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_CMS, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_G1, \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_ParOldGC + +my.test.targets.hotspot.solaris.x64= \ + solaris_x64_5.10-{product|fastdebug}-c2-jvm98, \ + solaris_x64_5.10-{product|fastdebug}-c2-jvm98_nontiered, \ + solaris_x64_5.10-{product|fastdebug}-c2-scimark, \ + solaris_x64_5.10-product-c2-runThese, \ + solaris_x64_5.10-product-c2-runThese_Xcomp, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_SerialGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_ParallelGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_ParNewGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_CMS, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_G1, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCBasher_ParOldGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_SerialGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_ParallelGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_ParNewGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_CMS, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_G1, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_ParOldGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-jbb_default_nontiered, \ + solaris_x64_5.10-{product|fastdebug}-c2-jbb_SerialGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-jbb_ParallelGC, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_CMS, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_G1, \ + solaris_x64_5.10-{product|fastdebug}-c2-GCOld_ParOldGC + +my.test.targets.hotspot.linux.i586= \ + linux_i586_2.6-{product|fastdebug}-{c1|c2}-jvm98, \ + linux_i586_2.6-{product|fastdebug}-c2-jvm98_nontiered, \ + linux_i586_2.6-{product|fastdebug}-{c1|c2}-scimark, \ + linux_i586_2.6-product-c1-runThese_Xcomp, \ + linux_i586_2.6-fastdebug-c1-runThese_Xshare, \ + linux_i586_2.6-fastdebug-c2-runThese_Xcomp, \ + linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_SerialGC, \ + linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_ParallelGC, \ + linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_ParNewGC, \ + linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_CMS, \ + linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_G1, \ + linux_i586_2.6-{product|fastdebug}-{c1|c2}-GCBasher_ParOldGC, \ + linux_i586_2.6-product-{c1|c2}-GCOld_SerialGC, \ + linux_i586_2.6-product-{c1|c2}-GCOld_ParallelGC, \ + linux_i586_2.6-product-{c1|c2}-GCOld_ParNewGC, \ + linux_i586_2.6-product-{c1|c2}-GCOld_CMS, \ + linux_i586_2.6-product-{c1|c2}-GCOld_G1, \ + linux_i586_2.6-product-{c1|c2}-GCOld_ParOldGC, \ + linux_i586_2.6-{product|fastdebug}-c1-jbb_SerialGC, \ + linux_i586_2.6-{product|fastdebug}-c2-jbb_default_nontiered, \ + linux_i586_2.6-{product|fastdebug}-c1-jbb_ParallelGC, \ + linux_i586_2.6-{product|fastdebug}-c1-jbb_CMS, \ + linux_i586_2.6-{product|fastdebug}-c1-jbb_G1, \ + linux_i586_2.6-{product|fastdebug}-c1-jbb_ParOldGC + +my.test.targets.hotspot.linux.x64= \ + linux_x64_2.6-{product|fastdebug}-c2-jvm98, \ + linux_x64_2.6-{product|fastdebug}-c2-jvm98_nontiered, \ + linux_x64_2.6-{product|fastdebug}-c2-scimark, \ + linux_x64_2.6-{product|fastdebug}-c2-GCBasher_SerialGC, \ + linux_x64_2.6-{product|fastdebug}-c2-GCBasher_ParallelGC, \ + linux_x64_2.6-{product|fastdebug}-c2-GCBasher_ParNewGC, \ + linux_x64_2.6-{product|fastdebug}-c2-GCBasher_CMS, \ + linux_x64_2.6-{product|fastdebug}-c2-GCBasher_G1, \ + linux_x64_2.6-{product|fastdebug}-c2-GCBasher_ParOldGC, \ + linux_x64_2.6-{product|fastdebug}-c2-GCOld_SerialGC, \ + linux_x64_2.6-{product|fastdebug}-c2-GCOld_ParallelGC, \ + linux_x64_2.6-{product|fastdebug}-c2-GCOld_ParNewGC, \ + linux_x64_2.6-{product|fastdebug}-c2-GCOld_CMS, \ + linux_x64_2.6-{product|fastdebug}-c2-GCOld_G1, \ + linux_x64_2.6-{product|fastdebug}-c2-GCOld_ParOldGC, \ + linux_x64_2.6-{product|fastdebug}-c2-jbb_default_nontiered, \ + linux_x64_2.6-{product|fastdebug}-c2-jbb_ParallelGC, \ + linux_x64_2.6-{product|fastdebug}-c2-jbb_G1, \ + linux_x64_2.6-{product|fastdebug}-c2-jbb_ParOldGC + +my.test.targets.hotspot.macosx.x64= \ + macosx_x64_10.7-{product|fastdebug}-c2-jvm98, \ + macosx_x64_10.7-{product|fastdebug}-c2-jvm98_nontiered, \ + macosx_x64_10.7-{product|fastdebug}-c2-scimark, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_SerialGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_ParallelGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_ParNewGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_CMS, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_G1, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCBasher_ParOldGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCOld_SerialGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCOld_ParallelGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCOld_ParNewGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCOld_CMS, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCOld_G1, \ + macosx_x64_10.7-{product|fastdebug}-c2-GCOld_ParOldGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-jbb_default_nontiered, \ + macosx_x64_10.7-{product|fastdebug}-c2-jbb_ParallelGC, \ + macosx_x64_10.7-{product|fastdebug}-c2-jbb_G1, \ + macosx_x64_10.7-{product|fastdebug}-c2-jbb_ParOldGC + +my.test.targets.hotspot.windows.i586= \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-jvm98, \ + windows_i586_6.1-{product|fastdebug}-c2-jvm98_nontiered, \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-scimark, \ + windows_i586_6.1-product-{c1|c2}-runThese, \ + windows_i586_6.1-product-{c1|c2}-runThese_Xcomp, \ + windows_i586_6.1-fastdebug-c1-runThese_Xshare, \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_SerialGC, \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_ParallelGC, \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_ParNewGC, \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_CMS, \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_G1, \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-GCBasher_ParOldGC, \ + windows_i586_6.1-product-{c1|c2}-GCOld_SerialGC, \ + windows_i586_6.1-product-{c1|c2}-GCOld_ParallelGC, \ + windows_i586_6.1-product-{c1|c2}-GCOld_ParNewGC, \ + windows_i586_6.1-product-{c1|c2}-GCOld_CMS, \ + windows_i586_6.1-product-{c1|c2}-GCOld_G1, \ + windows_i586_6.1-product-{c1|c2}-GCOld_ParOldGC, \ + windows_i586_6.1-{product|fastdebug}-{c1|c2}-jbb_default, \ + windows_i586_6.1-{product|fastdebug}-c2-jbb_default_nontiered, \ + windows_i586_6.1-product-{c1|c2}-jbb_ParallelGC, \ + windows_i586_6.1-product-{c1|c2}-jbb_CMS, \ + windows_i586_6.1-product-{c1|c2}-jbb_G1, \ + windows_i586_6.1-product-{c1|c2}-jbb_ParOldGC + +my.test.targets.hotspot.windows.x64= \ + windows_x64_6.1-{product|fastdebug}-c2-jvm98, \ + windows_x64_6.1-{product|fastdebug}-c2-jvm98_nontiered, \ + windows_x64_6.1-{product|fastdebug}-c2-scimark, \ + windows_x64_6.1-product-c2-runThese, \ + windows_x64_6.1-product-c2-runThese_Xcomp, \ + windows_x64_6.1-{product|fastdebug}-c2-GCBasher_SerialGC, \ + windows_x64_6.1-{product|fastdebug}-c2-GCBasher_ParallelGC, \ + windows_x64_6.1-{product|fastdebug}-c2-GCBasher_ParNewGC, \ + windows_x64_6.1-{product|fastdebug}-c2-GCBasher_CMS, \ + windows_x64_6.1-{product|fastdebug}-c2-GCBasher_G1, \ + windows_x64_6.1-{product|fastdebug}-c2-GCBasher_ParOldGC, \ + windows_x64_6.1-{product|fastdebug}-c2-GCOld_SerialGC, \ + windows_x64_6.1-{product|fastdebug}-c2-GCOld_ParallelGC, \ + windows_x64_6.1-{product|fastdebug}-c2-GCOld_ParNewGC, \ + windows_x64_6.1-{product|fastdebug}-c2-GCOld_CMS, \ + windows_x64_6.1-{product|fastdebug}-c2-GCOld_G1, \ + windows_x64_6.1-{product|fastdebug}-c2-GCOld_ParOldGC, \ + windows_x64_6.1-{product|fastdebug}-c2-jbb_default, \ + windows_x64_6.1-{product|fastdebug}-c2-jbb_default_nontiered, \ + windows_x64_6.1-product-c2-jbb_CMS, \ + windows_x64_6.1-product-c2-jbb_ParallelGC, \ + windows_x64_6.1-product-c2-jbb_G1, \ + windows_x64_6.1-product-c2-jbb_ParOldGC + +# Some basic "smoke" tests for OpenJDK builds +my.test.targets.hotspot.open= \ + solaris_x64_5.10-{productOpen|fastdebugOpen}-c2-jvm98, \ + linux_x64_2.6-{productOpen|fastdebugOpen}-c2-jvm98 + +# The complete list of test targets for jprt +my.test.targets.hotspot= \ + ${my.test.targets.hotspot.open}, \ + ${my.test.targets.hotspot.solaris.sparcv9}, \ + ${my.test.targets.hotspot.solaris.x64}, \ + ${my.test.targets.hotspot.linux.i586}, \ + ${my.test.targets.hotspot.linux.x64}, \ + ${my.test.targets.hotspot.macosx.x64}, \ + ${my.test.targets.hotspot.windows.i586}, \ + ${my.test.targets.hotspot.windows.x64}, \ + ${my.test.targets.hotspot.solaris.sparcv9}, \ + ${my.test.targets.hotspot.solaris.x64}, \ + ${my.test.targets.hotspot.linux.x64}, \ + ${my.test.targets.hotspot.windows.i586}, \ + ${my.test.targets.hotspot.windows.x64}, \ + ${my.additional.test.targets.hotspot} + + +# Make file based test targets + +my.make.rule.test.targets.hotspot.clienttests= \ + linux_i586_2.6-*-c1-hotspot_clienttest, \ + windows_i586_6.1-*-c1-hotspot_clienttest + +my.make.rule.test.targets.hotspot.servertests= \ + solaris_sparcv9_5.10-*-c2-hotspot_servertest, \ + solaris_x64_5.10-*-c2-hotspot_servertest, \ + linux_i586_2.6-*-c2-hotspot_servertest, \ + linux_x64_2.6-*-c2-hotspot_servertest, \ + macosx_x64_10.7-*-c2-hotspot_servertest, \ + windows_i586_6.1-*-c2-hotspot_servertest, \ + windows_x64_6.1-*-c2-hotspot_servertest + +my.make.rule.test.targets.hotspot.internalvmtests= \ + solaris_sparcv9_5.10-fastdebug-c2-hotspot_internalvmtests, \ + solaris_x64_5.10-fastdebug-c2-hotspot_internalvmtests, \ + linux_i586_2.6-fastdebug-c2-hotspot_internalvmtests, \ + linux_x64_2.6-fastdebug-c2-hotspot_internalvmtests, \ + macosx_x64_10.7-fastdebug-c2-hotspot_internalvmtests, \ + windows_i586_6.1-fastdebug-c2-hotspot_internalvmtests, \ + windows_x64_6.1-fastdebug-c2-hotspot_internalvmtests + +my.make.rule.test.targets.hotspot.reg.group= \ + solaris_sparcv9_5.10-{product|fastdebug}-c2-GROUP, \ + solaris_x64_5.10-{product|fastdebug}-c2-GROUP, \ + linux_i586_2.6-{product|fastdebug}-c2-GROUP, \ + linux_x64_2.6-{product|fastdebug}-c2-GROUP, \ + windows_i586_6.1-{product|fastdebug}-c2-GROUP, \ + windows_x64_6.1-{product|fastdebug}-c2-GROUP, \ + linux_i586_2.6-{product|fastdebug}-c1-GROUP, \ + windows_i586_6.1-{product|fastdebug}-c1-GROUP + +my.make.rule.test.targets.hotspot= \ + ${my.make.rule.test.targets.hotspot.clienttests}, \ + ${my.make.rule.test.targets.hotspot.servertests}, \ + ${my.make.rule.test.targets.hotspot.internalvmtests}, \ + ${my.make.rule.test.targets.hotspot.reg.group:GROUP=hotspot_wbapitest}, \ + ${my.make.rule.test.targets.hotspot.reg.group:GROUP=hotspot_compiler}, \ + ${my.make.rule.test.targets.hotspot.reg.group:GROUP=hotspot_gc}, \ + ${my.make.rule.test.targets.hotspot.reg.group:GROUP=hotspot_runtime}, \ + ${my.make.rule.test.targets.hotspot.reg.group:GROUP=hotspot_serviceability}, \ + ${my.additional.make.rule.test.targets.hotspot} diff -r 6c4058e6adaf -r fc41675cd5ad test/Makefile --- a/test/Makefile Wed Mar 19 21:09:11 2014 +0100 +++ b/test/Makefile Wed Dec 03 22:33:44 2014 +0100 @@ -33,6 +33,7 @@ # This makefile depends on the availability of sibling directories. LANGTOOLS_DIR=$(TOPDIR)/langtools JDK_DIR=$(TOPDIR)/jdk +HOTSPOT_DIR=$(TOPDIR)/hotspot # Macro to run a test target in a subdir define SUBDIR_TEST # subdirectory target @@ -62,6 +63,9 @@ jdk_% core_%s svc_%: @$(NO_STOPPING)$(call SUBDIR_TEST, $(JDK_DIR), TEST="$@" $@) +hotspot_%: + @$(NO_STOPPING)$(call SUBDIR_TEST, $(HOTSPOT_DIR), TEST="$@" $@) + ################################################################ # Phony targets (e.g. these are not filenames)