--- a/common/autoconf/boot-jdk.m4 Tue Jan 28 11:21:26 2014 -0800
+++ b/common/autoconf/boot-jdk.m4 Tue Jan 28 14:10:47 2014 -0800
@@ -316,7 +316,7 @@
# Minimum amount of heap memory.
ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs,[$JAVA])
- if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
+ if test "x$OPENJDK_TARGET_OS" = "xmacosx" || test "x$OPENJDK_TARGET_CPU" = "xppc64" ; then
# Why does macosx need more heap? Its the huge JDK batch.
ADD_JVM_ARG_IF_OK([-Xmx1600M],boot_jdk_jvmargs,[$JAVA])
else
--- a/common/autoconf/build-aux/config.guess Tue Jan 28 11:21:26 2014 -0800
+++ b/common/autoconf/build-aux/config.guess Tue Jan 28 14:10:47 2014 -0800
@@ -60,4 +60,20 @@
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
+
echo $OUT
--- a/common/autoconf/build-performance.m4 Tue Jan 28 11:21:26 2014 -0800
+++ b/common/autoconf/build-performance.m4 Tue Jan 28 14:10:47 2014 -0800
@@ -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
--- a/common/autoconf/configure.ac Tue Jan 28 11:21:26 2014 -0800
+++ b/common/autoconf/configure.ac Tue Jan 28 14:10:47 2014 -0800
@@ -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
--- a/common/autoconf/generated-configure.sh Tue Jan 28 11:21:26 2014 -0800
+++ b/common/autoconf/generated-configure.sh Tue Jan 28 14:10:47 2014 -0800
@@ -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
TOOLS_DIR_CXX
POTENTIAL_CXX
+COMPILER_TARGET_BITS_FLAG
OBJEXT
EXEEXT
ac_ct_CC
@@ -851,6 +853,7 @@
DEBUG_LEVEL
MACOSX_UNIVERSAL
INCLUDE_SA
+JVM_VARIANT_CORE
JVM_VARIANT_ZEROSHARK
JVM_VARIANT_ZERO
JVM_VARIANT_KERNEL
@@ -858,6 +861,7 @@
JVM_VARIANT_CLIENT
JVM_VARIANT_SERVER
JVM_VARIANTS
+JVM_INTERPRETER
JDK_VARIANT
SET_OPENJDK
BUILD_LOG_WRAPPER
@@ -1003,6 +1007,7 @@
with_devkit
enable_openjdk_only
with_jdk_variant
+with_jvm_interpreter
with_jvm_variants
enable_debug
with_debug_level
@@ -1747,8 +1752,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
@@ -3485,8 +3492,6 @@
If you put the resulting build in \"C:\Program Files\GnuWin32\", it will be found automatically."
fi
;;
- * )
- break ;;
esac
}
@@ -3512,8 +3517,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 +3538,6 @@
PKGHANDLER_COMMAND="sudo yum install libXtst-devel libXt-devel libXrender-devel" ;;
ccache)
PKGHANDLER_COMMAND="sudo yum install ccache" ;;
- * )
- break ;;
esac
}
@@ -3586,6 +3587,8 @@
+
+
###############################################################################
#
# Should we build only OpenJDK even if closed sources are present?
@@ -3865,7 +3868,7 @@
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1390907294
+DATE_WHEN_GENERATED=1390947033
###############################################################################
#
@@ -6784,6 +6787,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
;;
@@ -6904,6 +6912,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
;;
@@ -7810,6 +7823,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 +7866,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 +7881,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,6 +7895,7 @@
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
@@ -7869,7 +7915,7 @@
# 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/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/'`
+ 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 +7930,7 @@
+
INCLUDE_SA=true
if test "x$JVM_VARIANT_ZERO" = xtrue ; then
INCLUDE_SA=false
@@ -7891,6 +7938,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 +8056,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
@@ -15857,8 +15911,6 @@
pkgutil_help $MISSING_DEPENDENCY ;;
pkgadd)
pkgadd_help $MISSING_DEPENDENCY ;;
- * )
- break ;;
esac
if test "x$PKGHANDLER_COMMAND" != x; then
@@ -16037,7 +16089,7 @@
JVM_ARG_OK=false
fi
- if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
+ if test "x$OPENJDK_TARGET_OS" = "xmacosx" || test "x$OPENJDK_TARGET_CPU" = "xppc64" ; then
# Why does macosx need more heap? Its the huge JDK batch.
$ECHO "Check if jvm arg is ok: -Xmx1600M" >&5
@@ -19077,6 +19129,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
@@ -19280,8 +19335,6 @@
pkgutil_help $MISSING_DEPENDENCY ;;
pkgadd)
pkgadd_help $MISSING_DEPENDENCY ;;
- * )
- break ;;
esac
if test "x$PKGHANDLER_COMMAND" != x; then
@@ -19560,9 +19613,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
@@ -19611,8 +19667,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; }
@@ -20076,6 +20133,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
@@ -20717,12 +20783,23 @@
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$OPENJDK_TARGET_OS" = "xwindows"; then
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
@@ -20926,8 +21003,6 @@
pkgutil_help $MISSING_DEPENDENCY ;;
pkgadd)
pkgadd_help $MISSING_DEPENDENCY ;;
- * )
- break ;;
esac
if test "x$PKGHANDLER_COMMAND" != x; then
@@ -21206,9 +21281,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
@@ -21257,8 +21335,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; }
@@ -21722,6 +21801,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
@@ -22927,6 +23015,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
@@ -28902,16 +28992,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}"
@@ -28929,9 +29020,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}"
@@ -29005,20 +29096,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
@@ -29331,6 +29487,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
@@ -29516,6 +29695,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 )
@@ -29639,6 +29836,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 \
@@ -29708,6 +29912,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
@@ -29840,10 +30047,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
@@ -29912,15 +30119,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'
@@ -29946,7 +30153,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'
@@ -29982,6 +30189,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)
#
@@ -30138,6 +30366,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; }
@@ -30948,8 +31186,6 @@
pkgutil_help $MISSING_DEPENDENCY ;;
pkgadd)
pkgadd_help $MISSING_DEPENDENCY ;;
- * )
- break ;;
esac
if test "x$PKGHANDLER_COMMAND" != x; then
@@ -31040,8 +31276,6 @@
pkgutil_help $MISSING_DEPENDENCY ;;
pkgadd)
pkgadd_help $MISSING_DEPENDENCY ;;
- * )
- break ;;
esac
if test "x$PKGHANDLER_COMMAND" != x; then
@@ -31302,8 +31536,6 @@
pkgutil_help $MISSING_DEPENDENCY ;;
pkgadd)
pkgadd_help $MISSING_DEPENDENCY ;;
- * )
- break ;;
esac
if test "x$PKGHANDLER_COMMAND" != x; then
@@ -34064,8 +34296,6 @@
pkgutil_help $MISSING_DEPENDENCY ;;
pkgadd)
pkgadd_help $MISSING_DEPENDENCY ;;
- * )
- break ;;
esac
if test "x$PKGHANDLER_COMMAND" != x; then
@@ -34401,8 +34631,6 @@
pkgutil_help $MISSING_DEPENDENCY ;;
pkgadd)
pkgadd_help $MISSING_DEPENDENCY ;;
- * )
- break ;;
esac
if test "x$PKGHANDLER_COMMAND" != x; then
@@ -34754,8 +34982,6 @@
pkgutil_help $MISSING_DEPENDENCY ;;
pkgadd)
pkgadd_help $MISSING_DEPENDENCY ;;
- * )
- break ;;
esac
if test "x$PKGHANDLER_COMMAND" != x; then
@@ -35558,6 +35784,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
@@ -35602,8 +35831,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
@@ -37514,8 +37743,6 @@
pkgutil_help $MISSING_DEPENDENCY ;;
pkgadd)
pkgadd_help $MISSING_DEPENDENCY ;;
- * )
- break ;;
esac
if test "x$PKGHANDLER_COMMAND" != x; then
--- a/common/autoconf/help.m4 Tue Jan 28 11:21:26 2014 -0800
+++ b/common/autoconf/help.m4 Tue Jan 28 14:10:47 2014 -0800
@@ -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
}
--- a/common/autoconf/hotspot-spec.gmk.in Tue Jan 28 11:21:26 2014 -0800
+++ b/common/autoconf/hotspot-spec.gmk.in Tue Jan 28 14:10:47 2014 -0800
@@ -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)
--- a/common/autoconf/jdk-options.m4 Tue Jan 28 11:21:26 2014 -0800
+++ b/common/autoconf/jdk-options.m4 Tue Jan 28 14:10:47 2014 -0800
@@ -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,6 +115,7 @@
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
@@ -106,7 +135,7 @@
# 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/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/'`
+ 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
--- a/common/autoconf/libraries.m4 Tue Jan 28 11:21:26 2014 -0800
+++ b/common/autoconf/libraries.m4 Tue Jan 28 14:10:47 2014 -0800
@@ -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
--- a/common/autoconf/platform.m4 Tue Jan 28 11:21:26 2014 -0800
+++ b/common/autoconf/platform.m4 Tue Jan 28 14:10:47 2014 -0800
@@ -126,6 +126,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 +437,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 +459,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 +483,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
--- a/common/autoconf/spec.gmk.in Tue Jan 28 11:21:26 2014 -0800
+++ b/common/autoconf/spec.gmk.in Tue Jan 28 14:10:47 2014 -0800
@@ -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@
@@ -297,6 +298,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 +343,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@
--- a/common/autoconf/toolchain.m4 Tue Jan 28 11:21:26 2014 -0800
+++ b/common/autoconf/toolchain.m4 Tue Jan 28 14:10:47 2014 -0800
@@ -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
@@ -161,10 +170,14 @@
# Now we have a compiler binary in $1. Make sure it's okay.
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"`
@@ -276,6 +289,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
@@ -284,12 +300,23 @@
# 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$OPENJDK_TARGET_OS" = "xwindows"; then
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
@@ -331,6 +358,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
@@ -574,6 +603,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
@@ -750,6 +802,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 )
@@ -860,6 +930,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 \
@@ -929,6 +1006,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
@@ -1096,20 +1176,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
--- a/make/common/JavaCompilation.gmk Tue Jan 28 11:21:26 2014 -0800
+++ b/make/common/JavaCompilation.gmk Tue Jan 28 14:10:47 2014 -0800
@@ -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), \
--- a/make/common/NativeCompilation.gmk Tue Jan 28 11:21:26 2014 -0800
+++ b/make/common/NativeCompilation.gmk Tue Jan 28 14:10:47 2014 -0800
@@ -512,7 +512,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