Tue, 02 Jul 2013 17:38:10 -0700
8017568: PPC64: Generic build preparations needed to enable new build on Linux/PPC64
Summary: Enable new build on Linux/PPC64
Reviewed-by: erikj
1.1 --- a/common/autoconf/boot-jdk.m4 Tue Jun 25 13:47:00 2013 -0700 1.2 +++ b/common/autoconf/boot-jdk.m4 Tue Jul 02 17:38:10 2013 -0700 1.3 @@ -316,7 +316,7 @@ 1.4 1.5 # Minimum amount of heap memory. 1.6 ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs,[$JAVA]) 1.7 - if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then 1.8 + if test "x$OPENJDK_TARGET_OS" = "xmacosx" || test "x$OPENJDK_TARGET_CPU" = "xppc64" ; then 1.9 # Why does macosx need more heap? Its the huge JDK batch. 1.10 ADD_JVM_ARG_IF_OK([-Xmx1600M],boot_jdk_jvmargs,[$JAVA]) 1.11 else
2.1 --- a/common/autoconf/configure.ac Tue Jun 25 13:47:00 2013 -0700 2.2 +++ b/common/autoconf/configure.ac Tue Jul 02 17:38:10 2013 -0700 2.3 @@ -88,6 +88,7 @@ 2.4 2.5 # These are needed to be able to create a configuration name (and thus the output directory) 2.6 JDKOPT_SETUP_JDK_VARIANT 2.7 +JDKOPT_SETUP_JVM_INTERPRETER 2.8 JDKOPT_SETUP_JVM_VARIANTS 2.9 JDKOPT_SETUP_DEBUG_LEVEL 2.10
3.1 --- a/common/autoconf/generated-configure.sh Tue Jun 25 13:47:00 2013 -0700 3.2 +++ b/common/autoconf/generated-configure.sh Tue Jul 02 17:38:10 2013 -0700 3.3 @@ -638,6 +638,7 @@ 3.4 CFLAGS_DEBUG_SYMBOLS 3.5 ZIP_DEBUGINFO_FILES 3.6 ENABLE_DEBUG_SYMBOLS 3.7 +USING_BROKEN_SUSE_LD 3.8 COMPILER_SUPPORTS_TARGET_BITS_FLAG 3.9 ZERO_ARCHFLAG 3.10 LDFLAGS_CXX_JDK 3.11 @@ -824,6 +825,7 @@ 3.12 DEBUG_LEVEL 3.13 MACOSX_UNIVERSAL 3.14 INCLUDE_SA 3.15 +JVM_VARIANT_CORE 3.16 JVM_VARIANT_ZEROSHARK 3.17 JVM_VARIANT_ZERO 3.18 JVM_VARIANT_KERNEL 3.19 @@ -831,6 +833,7 @@ 3.20 JVM_VARIANT_CLIENT 3.21 JVM_VARIANT_SERVER 3.22 JVM_VARIANTS 3.23 +JVM_INTERPRETER 3.24 JDK_VARIANT 3.25 SET_OPENJDK 3.26 BUILD_LOG_WRAPPER 3.27 @@ -975,6 +978,7 @@ 3.28 with_devkit 3.29 enable_openjdk_only 3.30 with_jdk_variant 3.31 +with_jvm_interpreter 3.32 with_jvm_variants 3.33 enable_debug 3.34 with_debug_level 3.35 @@ -1713,8 +1717,10 @@ 3.36 --with-devkit use this directory as base for tools-dir and 3.37 sys-root (for cross-compiling) 3.38 --with-jdk-variant JDK variant to build (normal) [normal] 3.39 + --with-jvm-interpreter JVM interpreter to build (template, cpp) [template] 3.40 --with-jvm-variants JVM variants (separated by commas) to build (server, 3.41 - client, minimal1, kernel, zero, zeroshark) [server] 3.42 + client, minimal1, kernel, zero, zeroshark, core) 3.43 + [server] 3.44 --with-debug-level set the debug level (release, fastdebug, slowdebug) 3.45 [release] 3.46 --with-conf-name use this as the name of the configuration [generated 3.47 @@ -2845,7 +2851,7 @@ 3.48 || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3.49 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.50 as_fn_error $? "failed to load site script $ac_site_file 3.51 -See \`config.log' for more details" "$LINENO" 5 ; } 3.52 +See \`config.log' for more details" "$LINENO" 5; } 3.53 fi 3.54 done 3.55 3.56 @@ -3505,6 +3511,8 @@ 3.57 3.58 3.59 3.60 + 3.61 + 3.62 ############################################################################### 3.63 # 3.64 # Should we build only OpenJDK even if closed sources are present? 3.65 @@ -3782,7 +3790,7 @@ 3.66 #CUSTOM_AUTOCONF_INCLUDE 3.67 3.68 # Do not change or remove the following line, it is needed for consistency checks: 3.69 -DATE_WHEN_GENERATED=1371547824 3.70 +DATE_WHEN_GENERATED=1372808067 3.71 3.72 ############################################################################### 3.73 # 3.74 @@ -6560,7 +6568,7 @@ 3.75 $as_echo "$ac_cv_build" >&6; } 3.76 case $ac_cv_build in 3.77 *-*-*) ;; 3.78 -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; 3.79 +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; 3.80 esac 3.81 build=$ac_cv_build 3.82 ac_save_IFS=$IFS; IFS='-' 3.83 @@ -6593,7 +6601,7 @@ 3.84 $as_echo "$ac_cv_host" >&6; } 3.85 case $ac_cv_host in 3.86 *-*-*) ;; 3.87 -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; 3.88 +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; 3.89 esac 3.90 host=$ac_cv_host 3.91 ac_save_IFS=$IFS; IFS='-' 3.92 @@ -6626,7 +6634,7 @@ 3.93 $as_echo "$ac_cv_target" >&6; } 3.94 case $ac_cv_target in 3.95 *-*-*) ;; 3.96 -*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5 ;; 3.97 +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; 3.98 esac 3.99 target=$ac_cv_target 3.100 ac_save_IFS=$IFS; IFS='-' 3.101 @@ -7572,6 +7580,37 @@ 3.102 $as_echo "$JDK_VARIANT" >&6; } 3.103 3.104 3.105 +############################################################################### 3.106 +# 3.107 +# Check which interpreter of the JVM we want to build. 3.108 +# Currently we have: 3.109 +# template: Template interpreter (the default) 3.110 +# cpp : C++ interpreter 3.111 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which interpreter of the JVM to build" >&5 3.112 +$as_echo_n "checking which interpreter of the JVM to build... " >&6; } 3.113 + 3.114 +# Check whether --with-jvm-interpreter was given. 3.115 +if test "${with_jvm_interpreter+set}" = set; then : 3.116 + withval=$with_jvm_interpreter; 3.117 +fi 3.118 + 3.119 + 3.120 +if test "x$with_jvm_interpreter" = x; then 3.121 + with_jvm_interpreter="template" 3.122 +fi 3.123 + 3.124 +JVM_INTERPRETER="$with_jvm_interpreter" 3.125 + 3.126 +if test "x$JVM_INTERPRETER" != xtemplate && test "x$JVM_INTERPRETER" != xcpp; then 3.127 + as_fn_error $? "The available JVM interpreters are: template, cpp" "$LINENO" 5 3.128 +fi 3.129 + 3.130 + 3.131 + 3.132 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_jvm_interpreter" >&5 3.133 +$as_echo "$with_jvm_interpreter" >&6; } 3.134 + 3.135 + 3.136 3.137 ############################################################################### 3.138 # 3.139 @@ -7584,6 +7623,7 @@ 3.140 # ie normal interpreter and C1, only the serial GC, kernel jvmti etc 3.141 # zero: no machine code interpreter, no compiler 3.142 # zeroshark: zero interpreter and shark/llvm compiler backend 3.143 +# core: interpreter only, no compiler (only works on some platforms) 3.144 { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variants of the JVM to build" >&5 3.145 $as_echo_n "checking which variants of the JVM to build... " >&6; } 3.146 3.147 @@ -7598,10 +7638,10 @@ 3.148 fi 3.149 3.150 JVM_VARIANTS=",$with_jvm_variants," 3.151 -TEST_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,//' -e 's/client,//' -e 's/minimal1,//' -e 's/kernel,//' -e 's/zero,//' -e 's/zeroshark,//'` 3.152 +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,//'` 3.153 3.154 if test "x$TEST_VARIANTS" != "x,"; then 3.155 - as_fn_error $? "The available JVM variants are: server, client, minimal1, kernel, zero, zeroshark" "$LINENO" 5 3.156 + as_fn_error $? "The available JVM variants are: server, client, minimal1, kernel, zero, zeroshark, core" "$LINENO" 5 3.157 fi 3.158 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_jvm_variants" >&5 3.159 $as_echo "$with_jvm_variants" >&6; } 3.160 @@ -7612,6 +7652,7 @@ 3.161 JVM_VARIANT_KERNEL=`$ECHO "$JVM_VARIANTS" | $SED -e '/,kernel,/!s/.*/false/g' -e '/,kernel,/s/.*/true/g'` 3.162 JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'` 3.163 JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'` 3.164 +JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'` 3.165 3.166 if test "x$JVM_VARIANT_CLIENT" = xtrue; then 3.167 if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then 3.168 @@ -7631,7 +7672,7 @@ 3.169 3.170 # Replace the commas with AND for use in the build directory name. 3.171 ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/'` 3.172 -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/'` 3.173 +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/'` 3.174 if test "x$COUNT_VARIANTS" != "x,1"; then 3.175 BUILDING_MULTIPLE_JVM_VARIANTS=yes 3.176 else 3.177 @@ -7646,6 +7687,7 @@ 3.178 3.179 3.180 3.181 + 3.182 INCLUDE_SA=true 3.183 if test "x$JVM_VARIANT_ZERO" = xtrue ; then 3.184 INCLUDE_SA=false 3.185 @@ -7653,6 +7695,9 @@ 3.186 if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then 3.187 INCLUDE_SA=false 3.188 fi 3.189 +if test "x$VAR_CPU" = xppc64 ; then 3.190 + INCLUDE_SA=false 3.191 +fi 3.192 3.193 3.194 if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then 3.195 @@ -7769,6 +7814,10 @@ 3.196 HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}shark " 3.197 fi 3.198 3.199 +if test "x$JVM_VARIANT_CORE" = xtrue; then 3.200 + HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}core " 3.201 +fi 3.202 + 3.203 HOTSPOT_TARGET="$HOTSPOT_TARGET docs export_$HOTSPOT_EXPORT" 3.204 3.205 # On Macosx universal binaries are produced, but they only contain 3.206 @@ -15718,7 +15767,7 @@ 3.207 JVM_ARG_OK=false 3.208 fi 3.209 3.210 - if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then 3.211 + if test "x$OPENJDK_TARGET_OS" = "xmacosx" || test "x$OPENJDK_TARGET_CPU" = "xppc64" ; then 3.212 # Why does macosx need more heap? Its the huge JDK batch. 3.213 3.214 $ECHO "Check if jvm arg is ok: -Xmx1600M" >&5 3.215 @@ -20041,7 +20090,7 @@ 3.216 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3.217 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.218 as_fn_error $? "no acceptable C compiler found in \$PATH 3.219 -See \`config.log' for more details" "$LINENO" 5 ; } 3.220 +See \`config.log' for more details" "$LINENO" 5; } 3.221 3.222 # Provide some information about the compiler. 3.223 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 3.224 @@ -20156,7 +20205,7 @@ 3.225 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3.226 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.227 as_fn_error 77 "C compiler cannot create executables 3.228 -See \`config.log' for more details" "$LINENO" 5 ; } 3.229 +See \`config.log' for more details" "$LINENO" 5; } 3.230 else 3.231 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 3.232 $as_echo "yes" >&6; } 3.233 @@ -20199,7 +20248,7 @@ 3.234 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3.235 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.236 as_fn_error $? "cannot compute suffix of executables: cannot compile and link 3.237 -See \`config.log' for more details" "$LINENO" 5 ; } 3.238 +See \`config.log' for more details" "$LINENO" 5; } 3.239 fi 3.240 rm -f conftest conftest$ac_cv_exeext 3.241 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 3.242 @@ -20258,7 +20307,7 @@ 3.243 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.244 as_fn_error $? "cannot run C compiled programs. 3.245 If you meant to cross compile, use \`--host'. 3.246 -See \`config.log' for more details" "$LINENO" 5 ; } 3.247 +See \`config.log' for more details" "$LINENO" 5; } 3.248 fi 3.249 fi 3.250 fi 3.251 @@ -20310,7 +20359,7 @@ 3.252 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3.253 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.254 as_fn_error $? "cannot compute suffix of object files: cannot compile 3.255 -See \`config.log' for more details" "$LINENO" 5 ; } 3.256 +See \`config.log' for more details" "$LINENO" 5; } 3.257 fi 3.258 rm -f conftest.$ac_cv_objext conftest.$ac_ext 3.259 fi 3.260 @@ -24485,7 +24534,7 @@ 3.261 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3.262 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.263 as_fn_error $? "C preprocessor \"$CPP\" fails sanity check 3.264 -See \`config.log' for more details" "$LINENO" 5 ; } 3.265 +See \`config.log' for more details" "$LINENO" 5; } 3.266 fi 3.267 3.268 ac_ext=cpp 3.269 @@ -24885,7 +24934,7 @@ 3.270 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3.271 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.272 as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check 3.273 -See \`config.log' for more details" "$LINENO" 5 ; } 3.274 +See \`config.log' for more details" "$LINENO" 5; } 3.275 fi 3.276 3.277 ac_ext=cpp 3.278 @@ -28722,7 +28771,7 @@ 3.279 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3.280 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.281 as_fn_error 77 "cannot compute sizeof (int *) 3.282 -See \`config.log' for more details" "$LINENO" 5 ; } 3.283 +See \`config.log' for more details" "$LINENO" 5; } 3.284 else 3.285 ac_cv_sizeof_int_p=0 3.286 fi 3.287 @@ -29724,6 +29773,27 @@ 3.288 3.289 3.290 3.291 + # Check for broken SuSE 'ld' for which 'Only anonymous version tag is allowed in executable.' 3.292 + USING_BROKEN_SUSE_LD=no 3.293 + if test "x$OPENJDK_TARGET_OS" = xlinux && test "x$GCC" = xyes; then 3.294 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken SuSE 'ld' which only understands anonymous version tags in executables" >&5 3.295 +$as_echo_n "checking for broken SuSE 'ld' which only understands anonymous version tags in executables... " >&6; } 3.296 + echo "SUNWprivate_1.1 { local: *; };" > version-script.map 3.297 + echo "int main() { }" > main.c 3.298 + if $CXX -Xlinker -version-script=version-script.map main.c 2>&5 >&5; then 3.299 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 3.300 +$as_echo "no" >&6; } 3.301 + USING_BROKEN_SUSE_LD=no 3.302 + else 3.303 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 3.304 +$as_echo "yes" >&6; } 3.305 + USING_BROKEN_SUSE_LD=yes 3.306 + fi 3.307 + rm -rf version-script.map main.c 3.308 + fi 3.309 + 3.310 + 3.311 + 3.312 # Setup debug symbols (need objcopy from the toolchain for that) 3.313 3.314 # 3.315 @@ -29945,7 +30015,7 @@ 3.316 have_x=disabled 3.317 else 3.318 case $x_includes,$x_libraries in #( 3.319 - *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( 3.320 + *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( 3.321 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : 3.322 $as_echo_n "(cached) " >&6 3.323 else 3.324 @@ -32605,7 +32675,7 @@ 3.325 See the pkg-config man page for more details. 3.326 3.327 To get pkg-config, see <http://pkg-config.freedesktop.org/>. 3.328 -See \`config.log' for more details" "$LINENO" 5 ; } 3.329 +See \`config.log' for more details" "$LINENO" 5; } 3.330 else 3.331 LIBFFI_CFLAGS=$pkg_cv_LIBFFI_CFLAGS 3.332 LIBFFI_LIBS=$pkg_cv_LIBFFI_LIBS 3.333 @@ -34134,7 +34204,7 @@ 3.334 "$OUTPUT_ROOT/spec.sh") CONFIG_FILES="$CONFIG_FILES $OUTPUT_ROOT/spec.sh:$AUTOCONF_DIR/spec.sh.in" ;; 3.335 "$OUTPUT_ROOT/Makefile") CONFIG_FILES="$CONFIG_FILES $OUTPUT_ROOT/Makefile:$AUTOCONF_DIR/Makefile.in" ;; 3.336 3.337 - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; 3.338 + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; 3.339 esac 3.340 done 3.341 3.342 @@ -34449,7 +34519,7 @@ 3.343 esac 3.344 case $ac_mode$ac_tag in 3.345 :[FHL]*:*);; 3.346 - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; 3.347 + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; 3.348 :[FH]-) ac_tag=-:-;; 3.349 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; 3.350 esac 3.351 @@ -34477,7 +34547,7 @@ 3.352 [\\/$]*) false;; 3.353 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; 3.354 esac || 3.355 - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; 3.356 + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; 3.357 esac 3.358 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac 3.359 as_fn_append ac_file_inputs " '$ac_f'" 3.360 @@ -34504,7 +34574,7 @@ 3.361 3.362 case $ac_tag in 3.363 *:-:* | *:-) cat >"$tmp/stdin" \ 3.364 - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; 3.365 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; 3.366 esac 3.367 ;; 3.368 esac
4.1 --- a/common/autoconf/hotspot-spec.gmk.in Tue Jun 25 13:47:00 2013 -0700 4.2 +++ b/common/autoconf/hotspot-spec.gmk.in Tue Jul 02 17:38:10 2013 -0700 4.3 @@ -91,6 +91,11 @@ 4.4 ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR) 4.5 ALT_EXPORT_PATH=$(HOTSPOT_DIST) 4.6 4.7 +JVM_INTERPRETER:=@JVM_INTERPRETER@ 4.8 +ifeq ($(JVM_INTERPRETER), cpp) 4.9 + CC_INTERP=true 4.10 +endif 4.11 + 4.12 HOTSPOT_MAKE_ARGS:=@HOTSPOT_MAKE_ARGS@ @STATIC_CXX_SETTING@ 4.13 # This is used from the libjvm build for C/C++ code. 4.14 HOTSPOT_BUILD_JOBS:=$(JOBS)
5.1 --- a/common/autoconf/jdk-options.m4 Tue Jun 25 13:47:00 2013 -0700 5.2 +++ b/common/autoconf/jdk-options.m4 Tue Jul 02 17:38:10 2013 -0700 5.3 @@ -51,6 +51,33 @@ 5.4 AC_MSG_RESULT([$JDK_VARIANT]) 5.5 ]) 5.6 5.7 +AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_INTERPRETER], 5.8 +[ 5.9 +############################################################################### 5.10 +# 5.11 +# Check which interpreter of the JVM we want to build. 5.12 +# Currently we have: 5.13 +# template: Template interpreter (the default) 5.14 +# cpp : C++ interpreter 5.15 +AC_MSG_CHECKING([which interpreter of the JVM to build]) 5.16 +AC_ARG_WITH([jvm-interpreter], [AS_HELP_STRING([--with-jvm-interpreter], 5.17 + [JVM interpreter to build (template, cpp) @<:@template@:>@])]) 5.18 + 5.19 +if test "x$with_jvm_interpreter" = x; then 5.20 + with_jvm_interpreter="template" 5.21 +fi 5.22 + 5.23 +JVM_INTERPRETER="$with_jvm_interpreter" 5.24 + 5.25 +if test "x$JVM_INTERPRETER" != xtemplate && test "x$JVM_INTERPRETER" != xcpp; then 5.26 + AC_MSG_ERROR([The available JVM interpreters are: template, cpp]) 5.27 +fi 5.28 + 5.29 +AC_SUBST(JVM_INTERPRETER) 5.30 + 5.31 +AC_MSG_RESULT([$with_jvm_interpreter]) 5.32 +]) 5.33 + 5.34 AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_VARIANTS], 5.35 [ 5.36 5.37 @@ -65,19 +92,20 @@ 5.38 # ie normal interpreter and C1, only the serial GC, kernel jvmti etc 5.39 # zero: no machine code interpreter, no compiler 5.40 # zeroshark: zero interpreter and shark/llvm compiler backend 5.41 +# core: interpreter only, no compiler (only works on some platforms) 5.42 AC_MSG_CHECKING([which variants of the JVM to build]) 5.43 AC_ARG_WITH([jvm-variants], [AS_HELP_STRING([--with-jvm-variants], 5.44 - [JVM variants (separated by commas) to build (server, client, minimal1, kernel, zero, zeroshark) @<:@server@:>@])]) 5.45 + [JVM variants (separated by commas) to build (server, client, minimal1, kernel, zero, zeroshark, core) @<:@server@:>@])]) 5.46 5.47 if test "x$with_jvm_variants" = x; then 5.48 with_jvm_variants="server" 5.49 fi 5.50 5.51 JVM_VARIANTS=",$with_jvm_variants," 5.52 -TEST_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,//' -e 's/client,//' -e 's/minimal1,//' -e 's/kernel,//' -e 's/zero,//' -e 's/zeroshark,//'` 5.53 +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,//'` 5.54 5.55 if test "x$TEST_VARIANTS" != "x,"; then 5.56 - AC_MSG_ERROR([The available JVM variants are: server, client, minimal1, kernel, zero, zeroshark]) 5.57 + AC_MSG_ERROR([The available JVM variants are: server, client, minimal1, kernel, zero, zeroshark, core]) 5.58 fi 5.59 AC_MSG_RESULT([$with_jvm_variants]) 5.60 5.61 @@ -87,6 +115,7 @@ 5.62 JVM_VARIANT_KERNEL=`$ECHO "$JVM_VARIANTS" | $SED -e '/,kernel,/!s/.*/false/g' -e '/,kernel,/s/.*/true/g'` 5.63 JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'` 5.64 JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'` 5.65 +JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'` 5.66 5.67 if test "x$JVM_VARIANT_CLIENT" = xtrue; then 5.68 if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then 5.69 @@ -106,7 +135,7 @@ 5.70 5.71 # Replace the commas with AND for use in the build directory name. 5.72 ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/'` 5.73 -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/'` 5.74 +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/'` 5.75 if test "x$COUNT_VARIANTS" != "x,1"; then 5.76 BUILDING_MULTIPLE_JVM_VARIANTS=yes 5.77 else 5.78 @@ -120,6 +149,7 @@ 5.79 AC_SUBST(JVM_VARIANT_KERNEL) 5.80 AC_SUBST(JVM_VARIANT_ZERO) 5.81 AC_SUBST(JVM_VARIANT_ZEROSHARK) 5.82 +AC_SUBST(JVM_VARIANT_CORE) 5.83 5.84 INCLUDE_SA=true 5.85 if test "x$JVM_VARIANT_ZERO" = xtrue ; then 5.86 @@ -128,6 +158,9 @@ 5.87 if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then 5.88 INCLUDE_SA=false 5.89 fi 5.90 +if test "x$VAR_CPU" = xppc64 ; then 5.91 + INCLUDE_SA=false 5.92 +fi 5.93 AC_SUBST(INCLUDE_SA) 5.94 5.95 if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then 5.96 @@ -237,6 +270,10 @@ 5.97 HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}shark " 5.98 fi 5.99 5.100 +if test "x$JVM_VARIANT_CORE" = xtrue; then 5.101 + HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}core " 5.102 +fi 5.103 + 5.104 HOTSPOT_TARGET="$HOTSPOT_TARGET docs export_$HOTSPOT_EXPORT" 5.105 5.106 # On Macosx universal binaries are produced, but they only contain
6.1 --- a/common/autoconf/spec.gmk.in Tue Jun 25 13:47:00 2013 -0700 6.2 +++ b/common/autoconf/spec.gmk.in Tue Jul 02 17:38:10 2013 -0700 6.3 @@ -206,6 +206,7 @@ 6.4 JVM_VARIANT_KERNEL:=@JVM_VARIANT_KERNEL@ 6.5 JVM_VARIANT_ZERO:=@JVM_VARIANT_ZERO@ 6.6 JVM_VARIANT_ZEROSHARK:=@JVM_VARIANT_ZEROSHARK@ 6.7 +JVM_VARIANT_CORE:=@JVM_VARIANT_CORE@ 6.8 6.9 # Universal binaries on macosx 6.10 MACOSX_UNIVERSAL=@MACOSX_UNIVERSAL@ 6.11 @@ -347,6 +348,11 @@ 6.12 # The linker can be gcc or ld on posix systems, or link.exe on windows systems. 6.13 LD:=@FIXPATH@ @LD@ 6.14 6.15 +# The linker on older SuSE distros (e.g. on SLES 10) complains with: 6.16 +# "Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable." 6.17 +# if feeded with a version script which contains named tags. 6.18 +USING_BROKEN_SUSE_LD:=@USING_BROKEN_SUSE_LD@ 6.19 + 6.20 # LDFLAGS used to link the jdk native libraries (C-code) 6.21 LDFLAGS_JDKLIB:=@LDFLAGS_JDKLIB@ 6.22 LDFLAGS_JDKLIB_SUFFIX:=@LDFLAGS_JDKLIB_SUFFIX@
7.1 --- a/common/autoconf/toolchain.m4 Tue Jun 25 13:47:00 2013 -0700 7.2 +++ b/common/autoconf/toolchain.m4 Tue Jul 02 17:38:10 2013 -0700 7.3 @@ -1093,6 +1093,24 @@ 7.4 [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true], 7.5 [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false]) 7.6 AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG) 7.7 + 7.8 + 7.9 + # Check for broken SuSE 'ld' for which 'Only anonymous version tag is allowed in executable.' 7.10 + USING_BROKEN_SUSE_LD=no 7.11 + if test "x$OPENJDK_TARGET_OS" = xlinux && test "x$GCC" = xyes; then 7.12 + AC_MSG_CHECKING([for broken SuSE 'ld' which only understands anonymous version tags in executables]) 7.13 + echo "SUNWprivate_1.1 { local: *; };" > version-script.map 7.14 + echo "int main() { }" > main.c 7.15 + if $CXX -Xlinker -version-script=version-script.map main.c 2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD; then 7.16 + AC_MSG_RESULT(no) 7.17 + USING_BROKEN_SUSE_LD=no 7.18 + else 7.19 + AC_MSG_RESULT(yes) 7.20 + USING_BROKEN_SUSE_LD=yes 7.21 + fi 7.22 + rm -rf version-script.map main.c 7.23 + fi 7.24 + AC_SUBST(USING_BROKEN_SUSE_LD) 7.25 ]) 7.26 7.27 # Setup the JTREG paths