common/autoconf/platform.m4

changeset 698
e404d321abc6
parent 695
1dfcc874461e
child 766
4fb877dfe5c4
equal deleted inserted replaced
697:b9bf111a9547 698:e404d321abc6
331 else 331 else
332 DEFINE_CROSS_COMPILE_ARCH="" 332 DEFINE_CROSS_COMPILE_ARCH=""
333 fi 333 fi
334 AC_SUBST(DEFINE_CROSS_COMPILE_ARCH) 334 AC_SUBST(DEFINE_CROSS_COMPILE_ARCH)
335 335
336 # Some Zero and Shark settings.
337 # ZERO_ARCHFLAG tells the compiler which mode to build for
338 case "${OPENJDK_TARGET_CPU}" in
339 s390)
340 ZERO_ARCHFLAG="-m31"
341 ;;
342 *)
343 ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}"
344 esac
345 PLATFORM_COMPILER_CHECK_ARGUMENTS([$ZERO_ARCHFLAG], [], [ZERO_ARCHFLAG=""])
346 AC_SUBST(ZERO_ARCHFLAG)
347
348 # ZERO_ARCHDEF is used to enable architecture-specific code 336 # ZERO_ARCHDEF is used to enable architecture-specific code
349 case "${OPENJDK_TARGET_CPU}" in 337 case "${OPENJDK_TARGET_CPU}" in
350 ppc*) ZERO_ARCHDEF=PPC ;; 338 ppc*) ZERO_ARCHDEF=PPC ;;
351 s390*) ZERO_ARCHDEF=S390 ;; 339 s390*) ZERO_ARCHDEF=S390 ;;
352 sparc*) ZERO_ARCHDEF=SPARC ;; 340 sparc*) ZERO_ARCHDEF=SPARC ;;
416 AC_SUBST(OS_VERSION_MAJOR) 404 AC_SUBST(OS_VERSION_MAJOR)
417 AC_SUBST(OS_VERSION_MINOR) 405 AC_SUBST(OS_VERSION_MINOR)
418 AC_SUBST(OS_VERSION_MICRO) 406 AC_SUBST(OS_VERSION_MICRO)
419 ]) 407 ])
420 408
421 # PLATFORM_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
422 # [RUN-IF-FALSE])
423 # ------------------------------------------------------------
424 # Check that the c and c++ compilers support an argument
425 AC_DEFUN([PLATFORM_COMPILER_CHECK_ARGUMENTS],
426 [
427 AC_MSG_CHECKING([if compiler supports "$1"])
428 supports=yes
429
430 saved_cflags="$CFLAGS"
431 CFLAGS="$CFLAGS $1"
432 AC_LANG_PUSH([C])
433 AC_COMPILE_IFELSE([
434 AC_LANG_SOURCE([[int i;]])
435 ], [], [supports=no])
436 AC_LANG_POP([C])
437 CFLAGS="$saved_cflags"
438
439 saved_cxxflags="$CXXFLAGS"
440 CXXFLAGS="$CXXFLAG $1"
441 AC_LANG_PUSH([C++])
442 AC_COMPILE_IFELSE([
443 AC_LANG_SOURCE([[int i;]])
444 ], [], [supports=no])
445 AC_LANG_POP([C++])
446 CXXFLAGS="$saved_cxxflags"
447
448 AC_MSG_RESULT([$supports])
449 if test "x$supports" = "xyes" ; then
450 m4_ifval([$2], [$2], [:])
451 else
452 m4_ifval([$3], [$3], [:])
453 fi
454 ])
455
456 # Check that the compiler supports -mX flags
457 # Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does
458 AC_DEFUN([PLATFORM_CHECK_COMPILER_TARGET_BITS_FLAGS],
459 [
460 PLATFORM_COMPILER_CHECK_ARGUMENTS([-m${OPENJDK_TARGET_CPU_BITS}],
461 [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true],
462 [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false])
463 AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG)
464 ])
465
466 # Support macro for PLATFORM_SETUP_OPENJDK_TARGET_BITS. 409 # Support macro for PLATFORM_SETUP_OPENJDK_TARGET_BITS.
467 # Add -mX to various FLAGS variables. 410 # Add -mX to various FLAGS variables.
468 AC_DEFUN([PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS], 411 AC_DEFUN([PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS],
469 [ 412 [
470 # keep track of c/cxx flags that we added outselves... 413 # keep track of c/cxx flags that we added outselves...
488 # 431 #
489 # Now we check if libjvm.so will use 32 or 64 bit pointers for the C/C++ code. 432 # Now we check if libjvm.so will use 32 or 64 bit pointers for the C/C++ code.
490 # (The JVM can use 32 or 64 bit Java pointers but that decision 433 # (The JVM can use 32 or 64 bit Java pointers but that decision
491 # is made at runtime.) 434 # is made at runtime.)
492 # 435 #
493
494 PLATFORM_CHECK_COMPILER_TARGET_BITS_FLAGS
495 436
496 if test "x$OPENJDK_TARGET_OS" = xsolaris; then 437 if test "x$OPENJDK_TARGET_OS" = xsolaris; then
497 # Always specify -m flags on Solaris 438 # Always specify -m flags on Solaris
498 PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS 439 PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
499 elif test "x$COMPILE_TYPE" = xreduced; then 440 elif test "x$COMPILE_TYPE" = xreduced; then

mercurial