8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
Reviewed-by: erikj, ihse
This commit is contained in:
parent
67810b5cb5
commit
97a80c5f9d
@ -133,6 +133,26 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_LIBS],
|
|||||||
C_FLAG_REORDER=''
|
C_FLAG_REORDER=''
|
||||||
CXX_FLAG_REORDER=''
|
CXX_FLAG_REORDER=''
|
||||||
|
|
||||||
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
|
# Linking is different on MacOSX
|
||||||
|
SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
|
||||||
|
SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.'
|
||||||
|
SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
|
||||||
|
SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1'
|
||||||
|
SET_SHARED_LIBRARY_MAPFILE=''
|
||||||
|
else
|
||||||
|
# Default works for linux, might work on other platforms as well.
|
||||||
|
SHARED_LIBRARY_FLAGS='-shared'
|
||||||
|
SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker \$$$$ORIGIN[$]1'
|
||||||
|
SET_SHARED_LIBRARY_ORIGIN="-Xlinker -z -Xlinker origin $SET_EXECUTABLE_ORIGIN"
|
||||||
|
SET_SHARED_LIBRARY_NAME='-Xlinker -soname=[$]1'
|
||||||
|
SET_SHARED_LIBRARY_MAPFILE='-Xlinker -version-script=[$]1'
|
||||||
|
fi
|
||||||
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
|
PICFLAG=''
|
||||||
|
C_FLAG_REORDER=''
|
||||||
|
CXX_FLAG_REORDER=''
|
||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
# Linking is different on MacOSX
|
# Linking is different on MacOSX
|
||||||
SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
|
SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
|
||||||
@ -242,6 +262,8 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
|
|||||||
# Generate make dependency files
|
# Generate make dependency files
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
C_FLAG_DEPS="-MMD -MF"
|
C_FLAG_DEPS="-MMD -MF"
|
||||||
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
|
C_FLAG_DEPS="-MMD -MF"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
C_FLAG_DEPS="-xMMD -xMF"
|
C_FLAG_DEPS="-xMMD -xMF"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
||||||
@ -260,6 +282,9 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
|
|||||||
CFLAGS_DEBUG_SYMBOLS="-g"
|
CFLAGS_DEBUG_SYMBOLS="-g"
|
||||||
CXXFLAGS_DEBUG_SYMBOLS="-g"
|
CXXFLAGS_DEBUG_SYMBOLS="-g"
|
||||||
fi
|
fi
|
||||||
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
|
CFLAGS_DEBUG_SYMBOLS="-g"
|
||||||
|
CXXFLAGS_DEBUG_SYMBOLS="-g"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
CFLAGS_DEBUG_SYMBOLS="-g -xs"
|
CFLAGS_DEBUG_SYMBOLS="-g -xs"
|
||||||
CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
|
CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
|
||||||
@ -315,6 +340,20 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
|
|||||||
C_O_FLAG_NORM="-O2"
|
C_O_FLAG_NORM="-O2"
|
||||||
C_O_FLAG_NONE="-O0"
|
C_O_FLAG_NONE="-O0"
|
||||||
fi
|
fi
|
||||||
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
|
# On MacOSX we optimize for size, something
|
||||||
|
# we should do for all platforms?
|
||||||
|
C_O_FLAG_HIGHEST="-Os"
|
||||||
|
C_O_FLAG_HI="-Os"
|
||||||
|
C_O_FLAG_NORM="-Os"
|
||||||
|
C_O_FLAG_NONE=""
|
||||||
|
else
|
||||||
|
C_O_FLAG_HIGHEST="-O3"
|
||||||
|
C_O_FLAG_HI="-O3"
|
||||||
|
C_O_FLAG_NORM="-O2"
|
||||||
|
C_O_FLAG_NONE="-O0"
|
||||||
|
fi
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
||||||
C_O_FLAG_HIGHEST="-O3"
|
C_O_FLAG_HIGHEST="-O3"
|
||||||
C_O_FLAG_HI="-O3 -qstrict"
|
C_O_FLAG_HI="-O3 -qstrict"
|
||||||
|
@ -4221,7 +4221,7 @@ TOOLCHAIN_DESCRIPTION_xlc="IBM XL C/C++"
|
|||||||
#CUSTOM_AUTOCONF_INCLUDE
|
#CUSTOM_AUTOCONF_INCLUDE
|
||||||
|
|
||||||
# Do not change or remove the following line, it is needed for consistency checks:
|
# Do not change or remove the following line, it is needed for consistency checks:
|
||||||
DATE_WHEN_GENERATED=1394011255
|
DATE_WHEN_GENERATED=1394150589
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
@ -26297,8 +26297,28 @@ fi
|
|||||||
# Use indirect variable referencing
|
# Use indirect variable referencing
|
||||||
toolchain_var_name=VALID_TOOLCHAINS_$OPENJDK_BUILD_OS
|
toolchain_var_name=VALID_TOOLCHAINS_$OPENJDK_BUILD_OS
|
||||||
VALID_TOOLCHAINS=${!toolchain_var_name}
|
VALID_TOOLCHAINS=${!toolchain_var_name}
|
||||||
|
|
||||||
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
|
# On Mac OS X, default toolchain to clang after Xcode 5
|
||||||
|
XCODE_VERSION_OUTPUT=`xcodebuild -version 2>&1 | $HEAD -n 1`
|
||||||
|
$ECHO "$XCODE_VERSION_OUTPUT" | $GREP "Xcode " > /dev/null
|
||||||
|
if test $? -ne 0; then
|
||||||
|
as_fn_error $? "Failed to determine Xcode version." "$LINENO" 5
|
||||||
|
fi
|
||||||
|
XCODE_MAJOR_VERSION=`$ECHO $XCODE_VERSION_OUTPUT | \
|
||||||
|
$SED -e 's/^Xcode \([1-9][0-9.]*\)/\1/' | \
|
||||||
|
$CUT -f 1 -d .`
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: Xcode major version: $XCODE_MAJOR_VERSION" >&5
|
||||||
|
$as_echo "$as_me: Xcode major version: $XCODE_MAJOR_VERSION" >&6;}
|
||||||
|
if test $XCODE_MAJOR_VERSION -ge 5; then
|
||||||
|
DEFAULT_TOOLCHAIN="clang"
|
||||||
|
else
|
||||||
|
DEFAULT_TOOLCHAIN="gcc"
|
||||||
|
fi
|
||||||
|
else
|
||||||
# First toolchain type in the list is the default
|
# First toolchain type in the list is the default
|
||||||
DEFAULT_TOOLCHAIN=${VALID_TOOLCHAINS%% *}
|
DEFAULT_TOOLCHAIN=${VALID_TOOLCHAINS%% *}
|
||||||
|
fi
|
||||||
|
|
||||||
if test "x$with_toolchain_type" = xlist; then
|
if test "x$with_toolchain_type" = xlist; then
|
||||||
# List all toolchains
|
# List all toolchains
|
||||||
@ -41221,6 +41241,26 @@ $as_echo "$ac_cv_c_bigendian" >&6; }
|
|||||||
C_FLAG_REORDER=''
|
C_FLAG_REORDER=''
|
||||||
CXX_FLAG_REORDER=''
|
CXX_FLAG_REORDER=''
|
||||||
|
|
||||||
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
|
# Linking is different on MacOSX
|
||||||
|
SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
|
||||||
|
SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.'
|
||||||
|
SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
|
||||||
|
SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/$1'
|
||||||
|
SET_SHARED_LIBRARY_MAPFILE=''
|
||||||
|
else
|
||||||
|
# Default works for linux, might work on other platforms as well.
|
||||||
|
SHARED_LIBRARY_FLAGS='-shared'
|
||||||
|
SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker \$$$$ORIGIN$1'
|
||||||
|
SET_SHARED_LIBRARY_ORIGIN="-Xlinker -z -Xlinker origin $SET_EXECUTABLE_ORIGIN"
|
||||||
|
SET_SHARED_LIBRARY_NAME='-Xlinker -soname=$1'
|
||||||
|
SET_SHARED_LIBRARY_MAPFILE='-Xlinker -version-script=$1'
|
||||||
|
fi
|
||||||
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
|
PICFLAG=''
|
||||||
|
C_FLAG_REORDER=''
|
||||||
|
CXX_FLAG_REORDER=''
|
||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
# Linking is different on MacOSX
|
# Linking is different on MacOSX
|
||||||
SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
|
SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
|
||||||
@ -41297,6 +41337,8 @@ $as_echo "$ac_cv_c_bigendian" >&6; }
|
|||||||
# Generate make dependency files
|
# Generate make dependency files
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
C_FLAG_DEPS="-MMD -MF"
|
C_FLAG_DEPS="-MMD -MF"
|
||||||
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
|
C_FLAG_DEPS="-MMD -MF"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
C_FLAG_DEPS="-xMMD -xMF"
|
C_FLAG_DEPS="-xMMD -xMF"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
||||||
@ -41315,6 +41357,9 @@ $as_echo "$ac_cv_c_bigendian" >&6; }
|
|||||||
CFLAGS_DEBUG_SYMBOLS="-g"
|
CFLAGS_DEBUG_SYMBOLS="-g"
|
||||||
CXXFLAGS_DEBUG_SYMBOLS="-g"
|
CXXFLAGS_DEBUG_SYMBOLS="-g"
|
||||||
fi
|
fi
|
||||||
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
|
CFLAGS_DEBUG_SYMBOLS="-g"
|
||||||
|
CXXFLAGS_DEBUG_SYMBOLS="-g"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
CFLAGS_DEBUG_SYMBOLS="-g -xs"
|
CFLAGS_DEBUG_SYMBOLS="-g -xs"
|
||||||
CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
|
CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
|
||||||
@ -41370,6 +41415,20 @@ $as_echo "$ac_cv_c_bigendian" >&6; }
|
|||||||
C_O_FLAG_NORM="-O2"
|
C_O_FLAG_NORM="-O2"
|
||||||
C_O_FLAG_NONE="-O0"
|
C_O_FLAG_NONE="-O0"
|
||||||
fi
|
fi
|
||||||
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
|
# On MacOSX we optimize for size, something
|
||||||
|
# we should do for all platforms?
|
||||||
|
C_O_FLAG_HIGHEST="-Os"
|
||||||
|
C_O_FLAG_HI="-Os"
|
||||||
|
C_O_FLAG_NORM="-Os"
|
||||||
|
C_O_FLAG_NONE=""
|
||||||
|
else
|
||||||
|
C_O_FLAG_HIGHEST="-O3"
|
||||||
|
C_O_FLAG_HI="-O3"
|
||||||
|
C_O_FLAG_NORM="-O2"
|
||||||
|
C_O_FLAG_NONE="-O0"
|
||||||
|
fi
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
||||||
C_O_FLAG_HIGHEST="-O3"
|
C_O_FLAG_HIGHEST="-O3"
|
||||||
C_O_FLAG_HI="-O3 -qstrict"
|
C_O_FLAG_HI="-O3 -qstrict"
|
||||||
|
@ -96,8 +96,27 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
|
|||||||
# Use indirect variable referencing
|
# Use indirect variable referencing
|
||||||
toolchain_var_name=VALID_TOOLCHAINS_$OPENJDK_BUILD_OS
|
toolchain_var_name=VALID_TOOLCHAINS_$OPENJDK_BUILD_OS
|
||||||
VALID_TOOLCHAINS=${!toolchain_var_name}
|
VALID_TOOLCHAINS=${!toolchain_var_name}
|
||||||
|
|
||||||
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
|
# On Mac OS X, default toolchain to clang after Xcode 5
|
||||||
|
XCODE_VERSION_OUTPUT=`xcodebuild -version 2>&1 | $HEAD -n 1`
|
||||||
|
$ECHO "$XCODE_VERSION_OUTPUT" | $GREP "Xcode " > /dev/null
|
||||||
|
if test $? -ne 0; then
|
||||||
|
AC_MSG_ERROR([Failed to determine Xcode version.])
|
||||||
|
fi
|
||||||
|
XCODE_MAJOR_VERSION=`$ECHO $XCODE_VERSION_OUTPUT | \
|
||||||
|
$SED -e 's/^Xcode \(@<:@1-9@:>@@<:@0-9.@:>@*\)/\1/' | \
|
||||||
|
$CUT -f 1 -d .`
|
||||||
|
AC_MSG_NOTICE([Xcode major version: $XCODE_MAJOR_VERSION])
|
||||||
|
if test $XCODE_MAJOR_VERSION -ge 5; then
|
||||||
|
DEFAULT_TOOLCHAIN="clang"
|
||||||
|
else
|
||||||
|
DEFAULT_TOOLCHAIN="gcc"
|
||||||
|
fi
|
||||||
|
else
|
||||||
# First toolchain type in the list is the default
|
# First toolchain type in the list is the default
|
||||||
DEFAULT_TOOLCHAIN=${VALID_TOOLCHAINS%% *}
|
DEFAULT_TOOLCHAIN=${VALID_TOOLCHAINS%% *}
|
||||||
|
fi
|
||||||
|
|
||||||
if test "x$with_toolchain_type" = xlist; then
|
if test "x$with_toolchain_type" = xlist; then
|
||||||
# List all toolchains
|
# List all toolchains
|
||||||
|
Loading…
Reference in New Issue
Block a user