./common/autoconf/platform.m4

Print this page
rev 686 : [mq]: fix-zero-on-arm


 325     fi
 326     AC_SUBST(LP64,$A_LP64)
 327 
 328     if test "x$COMPILE_TYPE" = "xcross"; then
 329       # FIXME: ... or should this include reduced builds..?
 330       DEFINE_CROSS_COMPILE_ARCH="CROSS_COMPILE_ARCH:=$OPENJDK_TARGET_CPU_LEGACY"
 331     else
 332       DEFINE_CROSS_COMPILE_ARCH=""
 333     fi
 334     AC_SUBST(DEFINE_CROSS_COMPILE_ARCH)
 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     AC_SUBST(ZERO_ARCHFLAG)
 346 
 347     # ZERO_ARCHDEF is used to enable architecture-specific code
 348     case "${OPENJDK_TARGET_CPU}" in
 349       ppc*)    ZERO_ARCHDEF=PPC   ;;
 350       s390*)   ZERO_ARCHDEF=S390  ;;
 351       sparc*)  ZERO_ARCHDEF=SPARC ;;
 352       x86_64*) ZERO_ARCHDEF=AMD64 ;;
 353       x86)     ZERO_ARCHDEF=IA32  ;;
 354       *)      ZERO_ARCHDEF=$(echo "${OPENJDK_TARGET_CPU_LEGACY_LIB}" | tr a-z A-Z)
 355     esac
 356     AC_SUBST(ZERO_ARCHDEF)
 357 
 358 ])
 359 
 360 AC_DEFUN([PLATFORM_SET_RELEASE_FILE_OS_VALUES],
 361 [
 362     if test "x$OPENJDK_TARGET_OS" = "xsolaris"; then
 363        REQUIRED_OS_NAME=SunOS
 364        REQUIRED_OS_VERSION=5.10


 400 PLATFORM_SETUP_TARGET_CPU_BITS
 401 PLATFORM_SET_RELEASE_FILE_OS_VALUES
 402 PLATFORM_SETUP_LEGACY_VARS
 403 ])
 404 
 405 AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_BUILD_OS_VERSION],
 406 [
 407 ###############################################################################
 408 
 409 # Note that this is the build platform OS version!
 410 
 411 OS_VERSION="`uname -r | ${SED} 's!\.! !g' | ${SED} 's!-! !g'`"
 412 OS_VERSION_MAJOR="`${ECHO} ${OS_VERSION} | ${CUT} -f 1 -d ' '`"
 413 OS_VERSION_MINOR="`${ECHO} ${OS_VERSION} | ${CUT} -f 2 -d ' '`"
 414 OS_VERSION_MICRO="`${ECHO} ${OS_VERSION} | ${CUT} -f 3 -d ' '`"
 415 AC_SUBST(OS_VERSION_MAJOR)
 416 AC_SUBST(OS_VERSION_MINOR)
 417 AC_SUBST(OS_VERSION_MICRO)
 418 ])
 419 













































 420 # Support macro for PLATFORM_SETUP_OPENJDK_TARGET_BITS.
 421 # Add -mX to various FLAGS variables.
 422 AC_DEFUN([PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS],
 423 [
 424   # keep track of c/cxx flags that we added outselves...
 425   #   to prevent emitting warning...
 426   ADDED_CFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}"
 427   ADDED_CXXFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}"
 428   ADDED_LDFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}"
 429 
 430   CFLAGS="${CFLAGS}${ADDED_CFLAGS}"
 431   CXXFLAGS="${CXXFLAGS}${ADDED_CXXFLAGS}"
 432   LDFLAGS="${LDFLAGS}${ADDED_LDFLAGS}"
 433 
 434   CFLAGS_JDK="${CFLAGS_JDK}${ADDED_CFLAGS}"
 435   CXXFLAGS_JDK="${CXXFLAGS_JDK}${ADDED_CXXFLAGS}"
 436   LDFLAGS_JDK="${LDFLAGS_JDK}${ADDED_LDFLAGS}"
 437 ])
 438 
 439 AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_TARGET_BITS],
 440 [
 441 ###############################################################################
 442 #
 443 # Now we check if libjvm.so will use 32 or 64 bit pointers for the C/C++ code.
 444 # (The JVM can use 32 or 64 bit Java pointers but that decision
 445 # is made at runtime.)
 446 #



 447 if test "x$OPENJDK_TARGET_OS" = xsolaris; then
 448   # Always specify -m flags on Solaris
 449   PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
 450 elif test "x$COMPILE_TYPE" = xreduced; then
 451   if test "x$OPENJDK_TARGET_OS" != xwindows; then
 452     # Specify -m if running reduced on other Posix platforms
 453     PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
 454   fi
 455 fi
 456 
 457 # Make compilation sanity check
 458 AC_CHECK_HEADERS([stdio.h], , [
 459   AC_MSG_NOTICE([Failed to compile stdio.h. This likely implies missing compile dependencies.])
 460   if test "x$COMPILE_TYPE" = xreduced; then
 461     AC_MSG_NOTICE([You are doing a reduced build. Check that you have 32-bit libraries installed.])
 462   elif test "x$COMPILE_TYPE" = xcross; then
 463     AC_MSG_NOTICE([You are doing a cross-compilation. Check that you have all target platform libraries installed.])
 464   fi
 465   AC_MSG_ERROR([Cannot continue.])
 466 ])




 325     fi
 326     AC_SUBST(LP64,$A_LP64)
 327 
 328     if test "x$COMPILE_TYPE" = "xcross"; then
 329       # FIXME: ... or should this include reduced builds..?
 330       DEFINE_CROSS_COMPILE_ARCH="CROSS_COMPILE_ARCH:=$OPENJDK_TARGET_CPU_LEGACY"
 331     else
 332       DEFINE_CROSS_COMPILE_ARCH=""
 333     fi
 334     AC_SUBST(DEFINE_CROSS_COMPILE_ARCH)
 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
 349     case "${OPENJDK_TARGET_CPU}" in
 350       ppc*)    ZERO_ARCHDEF=PPC   ;;
 351       s390*)   ZERO_ARCHDEF=S390  ;;
 352       sparc*)  ZERO_ARCHDEF=SPARC ;;
 353       x86_64*) ZERO_ARCHDEF=AMD64 ;;
 354       x86)     ZERO_ARCHDEF=IA32  ;;
 355       *)      ZERO_ARCHDEF=$(echo "${OPENJDK_TARGET_CPU_LEGACY_LIB}" | tr a-z A-Z)
 356     esac
 357     AC_SUBST(ZERO_ARCHDEF)
 358 
 359 ])
 360 
 361 AC_DEFUN([PLATFORM_SET_RELEASE_FILE_OS_VALUES],
 362 [
 363     if test "x$OPENJDK_TARGET_OS" = "xsolaris"; then
 364        REQUIRED_OS_NAME=SunOS
 365        REQUIRED_OS_VERSION=5.10


 401 PLATFORM_SETUP_TARGET_CPU_BITS
 402 PLATFORM_SET_RELEASE_FILE_OS_VALUES
 403 PLATFORM_SETUP_LEGACY_VARS
 404 ])
 405 
 406 AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_BUILD_OS_VERSION],
 407 [
 408 ###############################################################################
 409 
 410 # Note that this is the build platform OS version!
 411 
 412 OS_VERSION="`uname -r | ${SED} 's!\.! !g' | ${SED} 's!-! !g'`"
 413 OS_VERSION_MAJOR="`${ECHO} ${OS_VERSION} | ${CUT} -f 1 -d ' '`"
 414 OS_VERSION_MINOR="`${ECHO} ${OS_VERSION} | ${CUT} -f 2 -d ' '`"
 415 OS_VERSION_MICRO="`${ECHO} ${OS_VERSION} | ${CUT} -f 3 -d ' '`"
 416 AC_SUBST(OS_VERSION_MAJOR)
 417 AC_SUBST(OS_VERSION_MINOR)
 418 AC_SUBST(OS_VERSION_MICRO)
 419 ])
 420 
 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.
 467 # Add -mX to various FLAGS variables.
 468 AC_DEFUN([PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS],
 469 [
 470   # keep track of c/cxx flags that we added outselves...
 471   #   to prevent emitting warning...
 472   ADDED_CFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}"
 473   ADDED_CXXFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}"
 474   ADDED_LDFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}"
 475 
 476   CFLAGS="${CFLAGS}${ADDED_CFLAGS}"
 477   CXXFLAGS="${CXXFLAGS}${ADDED_CXXFLAGS}"
 478   LDFLAGS="${LDFLAGS}${ADDED_LDFLAGS}"
 479 
 480   CFLAGS_JDK="${CFLAGS_JDK}${ADDED_CFLAGS}"
 481   CXXFLAGS_JDK="${CXXFLAGS_JDK}${ADDED_CXXFLAGS}"
 482   LDFLAGS_JDK="${LDFLAGS_JDK}${ADDED_LDFLAGS}"
 483 ])
 484 
 485 AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_TARGET_BITS],
 486 [
 487 ###############################################################################
 488 #
 489 # 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
 491 # is made at runtime.)
 492 #
 493 
 494 PLATFORM_CHECK_COMPILER_TARGET_BITS_FLAGS
 495 
 496 if test "x$OPENJDK_TARGET_OS" = xsolaris; then
 497   # Always specify -m flags on Solaris
 498   PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
 499 elif test "x$COMPILE_TYPE" = xreduced; then
 500   if test "x$OPENJDK_TARGET_OS" != xwindows; then
 501     # Specify -m if running reduced on other Posix platforms
 502     PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
 503   fi
 504 fi
 505 
 506 # Make compilation sanity check
 507 AC_CHECK_HEADERS([stdio.h], , [
 508   AC_MSG_NOTICE([Failed to compile stdio.h. This likely implies missing compile dependencies.])
 509   if test "x$COMPILE_TYPE" = xreduced; then
 510     AC_MSG_NOTICE([You are doing a reduced build. Check that you have 32-bit libraries installed.])
 511   elif test "x$COMPILE_TYPE" = xcross; then
 512     AC_MSG_NOTICE([You are doing a cross-compilation. Check that you have all target platform libraries installed.])
 513   fi
 514   AC_MSG_ERROR([Cannot continue.])
 515 ])