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.