./common/autoconf/platform.m4

Print this page
rev 677 : [mq]: build-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 # Check that the compiler supports an argument
 422 # $1: the compiler argumen to check
 423 # $2: action-if-true
 424 # $3: action-if-false
 425 AC_DEFUN([PLATFORM_COMPILER_CHECK_ARGUMENTS],
 426 [
 427   AC_MSG_CHECKING([if compiler supports "$1"])
 428   saved_cflags="$CFLAGS"
 429   CFLAGS="$1"
 430   AC_COMPILE_IFELSE([
 431     AC_LANG_SOURCE([
 432       [int main() { return 0; }]
 433     ])
 434   ], [supports=yes], [supports=no])
 435   CFLAGS="$saved_cflags"
 436   if "x$supports" = "xyes" ; then
 437     AC_MSG_RESULT([$supports])
 438     $2
 439   else
 440     AC_MSG_RESULT([$supports])
 441     $3
 442   fi
 443 ])
 444 
 445 # Check that the compiler supports -mX flags
 446 # Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does
 447 AC_DEFUN([PLATFORM_CHECK_COMPILER_TARGET_BITS_FLAGS],
 448 [
 449   PLATFORM_COMPILER_CHECK_ARGUMENTS(["-m${OPENJDK_TARGET_CPU_BITS}"],
 450     [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true],
 451     [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false])
 452   AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG)
 453 ])
 454 
 455 # Support macro for PLATFORM_SETUP_OPENJDK_TARGET_BITS.
 456 # Add -mX to various FLAGS variables.
 457 AC_DEFUN([PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS],
 458 [
 459 
 460   # keep track of c/cxx flags that we added outselves...
 461   #   to prevent emitting warning...
 462   ADDED_CFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}"
 463   ADDED_CXXFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}"
 464   ADDED_LDFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}"
 465 
 466   CFLAGS="${CFLAGS}${ADDED_CFLAGS}"
 467   CXXFLAGS="${CXXFLAGS}${ADDED_CXXFLAGS}"
 468   LDFLAGS="${LDFLAGS}${ADDED_LDFLAGS}"
 469 
 470   CFLAGS_JDK="${CFLAGS_JDK}${ADDED_CFLAGS}"
 471   CXXFLAGS_JDK="${CXXFLAGS_JDK}${ADDED_CXXFLAGS}"
 472   LDFLAGS_JDK="${LDFLAGS_JDK}${ADDED_LDFLAGS}"
 473 ])
 474 
 475 AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_TARGET_BITS],
 476 [
 477 ###############################################################################
 478 #
 479 # Now we check if libjvm.so will use 32 or 64 bit pointers for the C/C++ code.
 480 # (The JVM can use 32 or 64 bit Java pointers but that decision
 481 # is made at runtime.)
 482 #
 483 
 484 PLATFORM_CHECK_COMPILER_TARGET_BITS_FLAGS
 485 
 486 if test "x$OPENJDK_TARGET_OS" = xsolaris; then
 487   # Always specify -m flags on Solaris
 488   PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
 489 elif test "x$COMPILE_TYPE" = xreduced; then
 490   if test "x$OPENJDK_TARGET_OS" != xwindows; then
 491     # Specify -m if running reduced on other Posix platforms
 492     PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
 493   fi
 494 fi
 495 
 496 # Make compilation sanity check
 497 AC_CHECK_HEADERS([stdio.h], , [
 498   AC_MSG_NOTICE([Failed to compile stdio.h. This likely implies missing compile dependencies.])
 499   if test "x$COMPILE_TYPE" = xreduced; then
 500     AC_MSG_NOTICE([You are doing a reduced build. Check that you have 32-bit libraries installed.])
 501   elif test "x$COMPILE_TYPE" = xcross; then
 502     AC_MSG_NOTICE([You are doing a cross-compilation. Check that you have all target platform libraries installed.])
 503   fi
 504   AC_MSG_ERROR([Cannot continue.])
 505 ])