common/autoconf/flags.m4

changeset 2215
7a73b8b4ac8a
parent 2206
7ba4e17574e0
child 2223
01cc48ed67f3
     1.1 --- a/common/autoconf/flags.m4	Thu Apr 12 02:54:38 2018 -0700
     1.2 +++ b/common/autoconf/flags.m4	Mon Apr 16 00:48:00 2018 -0700
     1.3 @@ -119,6 +119,32 @@
     1.4      # FIXME: likely bug, should be CCXXFLAGS_JDK? or one for C or CXX.
     1.5      CCXXFLAGS="$CCXXFLAGS -nologo"
     1.6    fi
     1.7 +
     1.8 +  if test "x$SYSROOT" != "x"; then
     1.9 +    if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
    1.10 +      if test "x$OPENJDK_TARGET_OS" = xsolaris; then
    1.11 +        # Solaris Studio does not have a concept of sysroot. Instead we must
    1.12 +        # make sure the default include and lib dirs are appended to each 
    1.13 +        # compile and link command line.
    1.14 +        SYSROOT_CFLAGS="-I$SYSROOT/usr/include"
    1.15 +        SYSROOT_LDFLAGS="-L$SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
    1.16 +            -L$SYSROOT/lib$OPENJDK_TARGET_CPU_ISADIR \
    1.17 +            -L$SYSROOT/usr/ccs/lib$OPENJDK_TARGET_CPU_ISADIR"
    1.18 +      fi
    1.19 +    elif test "x$TOOLCHAIN_TYPE" = xgcc; then
    1.20 +      SYSROOT_CFLAGS="--sysroot=\"$SYSROOT\""
    1.21 +      SYSROOT_LDFLAGS="--sysroot=\"$SYSROOT\""
    1.22 +    elif test "x$TOOLCHAIN_TYPE" = xclang; then
    1.23 +      SYSROOT_CFLAGS="-isysroot \"$SYSROOT\""
    1.24 +      SYSROOT_LDFLAGS="-isysroot \"$SYSROOT\""
    1.25 +    fi
    1.26 +    # Propagate the sysroot args to hotspot
    1.27 +    LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $SYSROOT_CFLAGS"
    1.28 +    LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $SYSROOT_CFLAGS"
    1.29 +    LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $SYSROOT_LDFLAGS"
    1.30 +  fi
    1.31 +  AC_SUBST(SYSROOT_CFLAGS)
    1.32 +  AC_SUBST(SYSROOT_LDFLAGS)
    1.33  ])
    1.34  
    1.35  AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_LIBS],
    1.36 @@ -389,9 +415,9 @@
    1.37    LDFLAGS_JDK="${LDFLAGS_JDK} $with_extra_ldflags"
    1.38  
    1.39    # Hotspot needs these set in their legacy form
    1.40 -  LEGACY_EXTRA_CFLAGS=$with_extra_cflags
    1.41 -  LEGACY_EXTRA_CXXFLAGS=$with_extra_cxxflags
    1.42 -  LEGACY_EXTRA_LDFLAGS=$with_extra_ldflags
    1.43 +  LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $with_extra_cflags"
    1.44 +  LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $with_extra_cxxflags"
    1.45 +  LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $with_extra_ldflags"
    1.46  
    1.47    AC_SUBST(LEGACY_EXTRA_CFLAGS)
    1.48    AC_SUBST(LEGACY_EXTRA_CXXFLAGS)
    1.49 @@ -490,7 +516,13 @@
    1.50        CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN"
    1.51      fi
    1.52    else
    1.53 -    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
    1.54 +    # Same goes for _BIG_ENDIAN. Do we really need to set *ENDIAN on Solaris if they
    1.55 +    # are defined in the system?
    1.56 +    if test "x$OPENJDK_TARGET_OS" = xsolaris; then
    1.57 +      CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN="
    1.58 +    else
    1.59 +      CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
    1.60 +    fi
    1.61    fi
    1.62    
    1.63    # Setup target OS define. Use OS target name but in upper case.

mercurial