Merge
This commit is contained in:
commit
1dd2809444
@ -116,15 +116,15 @@ AC_DEFUN_ONCE([FLAGS_SETUP_INIT_FLAGS],
|
|||||||
AC_SUBST(RC_FLAGS)
|
AC_SUBST(RC_FLAGS)
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
# FIXME: likely bug, should be CCXXFLAGS_JDK? or one for C or CXX.
|
# silence copyright notice and other headers.
|
||||||
CCXXFLAGS="$CCXXFLAGS -nologo"
|
COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$SYSROOT" != "x"; then
|
if test "x$SYSROOT" != "x"; then
|
||||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||||||
# Solaris Studio does not have a concept of sysroot. Instead we must
|
# Solaris Studio does not have a concept of sysroot. Instead we must
|
||||||
# make sure the default include and lib dirs are appended to each
|
# make sure the default include and lib dirs are appended to each
|
||||||
# compile and link command line.
|
# compile and link command line.
|
||||||
SYSROOT_CFLAGS="-I$SYSROOT/usr/include"
|
SYSROOT_CFLAGS="-I$SYSROOT/usr/include"
|
||||||
SYSROOT_LDFLAGS="-L$SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
|
SYSROOT_LDFLAGS="-L$SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
|
||||||
@ -302,6 +302,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
|
|||||||
# Debug symbols
|
# Debug symbols
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test "x$DEBUG_LEVEL" = "xfastdebug"; then
|
if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test "x$DEBUG_LEVEL" = "xfastdebug"; then
|
||||||
|
# reduce from default "-g2" option to save space
|
||||||
CFLAGS_DEBUG_SYMBOLS="-g1"
|
CFLAGS_DEBUG_SYMBOLS="-g1"
|
||||||
CXXFLAGS_DEBUG_SYMBOLS="-g1"
|
CXXFLAGS_DEBUG_SYMBOLS="-g1"
|
||||||
else
|
else
|
||||||
@ -313,6 +314,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
|
|||||||
CXXFLAGS_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"
|
||||||
|
# FIXME: likely a bug, this disables debug symbols rather than enables them
|
||||||
CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
|
CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
||||||
CFLAGS_DEBUG_SYMBOLS="-g"
|
CFLAGS_DEBUG_SYMBOLS="-g"
|
||||||
@ -321,6 +323,31 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
|
|||||||
AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
|
AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
|
||||||
AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
|
AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
|
||||||
|
|
||||||
|
# bounds, memory and behavior checking options
|
||||||
|
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
|
case $DEBUG_LEVEL in
|
||||||
|
release )
|
||||||
|
# no adjustment
|
||||||
|
;;
|
||||||
|
fastdebug )
|
||||||
|
# Add compile time bounds checks.
|
||||||
|
CFLAGS_DEBUG_OPTIONS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1"
|
||||||
|
CXXFLAGS_DEBUG_OPTIONS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1"
|
||||||
|
;;
|
||||||
|
slowdebug )
|
||||||
|
# Add runtime bounds checks and symbol info.
|
||||||
|
CFLAGS_DEBUG_OPTIONS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-all --param ssp-buffer-size=1"
|
||||||
|
CXXFLAGS_DEBUG_OPTIONS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-all --param ssp-buffer-size=1"
|
||||||
|
if test "x$HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR" = "xtrue"; then
|
||||||
|
CFLAGS_DEBUG_OPTIONS="$CFLAGS_DEBUG_OPTIONS $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG"
|
||||||
|
CXXFLAGS_DEBUG_OPTIONS="$CXXFLAGS_DEBUG_OPTIONS $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
AC_SUBST(CFLAGS_DEBUG_OPTIONS)
|
||||||
|
AC_SUBST(CXXFLAGS_DEBUG_OPTIONS)
|
||||||
|
|
||||||
# Optimization levels
|
# Optimization levels
|
||||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
CC_HIGHEST="$CC_HIGHEST -fns -fsimple -fsingle -xbuiltin=%all -xdepend -xrestrict -xlibmil"
|
CC_HIGHEST="$CC_HIGHEST -fns -fsimple -fsingle -xbuiltin=%all -xdepend -xrestrict -xlibmil"
|
||||||
@ -330,10 +357,12 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
|
|||||||
C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST -xalias_level=basic -xregs=no%frameptr"
|
C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST -xalias_level=basic -xregs=no%frameptr"
|
||||||
C_O_FLAG_HI="-xO4 -Wu,-O4~yz -xregs=no%frameptr"
|
C_O_FLAG_HI="-xO4 -Wu,-O4~yz -xregs=no%frameptr"
|
||||||
C_O_FLAG_NORM="-xO2 -Wu,-O2~yz -xregs=no%frameptr"
|
C_O_FLAG_NORM="-xO2 -Wu,-O2~yz -xregs=no%frameptr"
|
||||||
|
C_O_FLAG_DEBUG="-xregs=no%frameptr"
|
||||||
C_O_FLAG_NONE="-xregs=no%frameptr"
|
C_O_FLAG_NONE="-xregs=no%frameptr"
|
||||||
CXX_O_FLAG_HIGHEST="-xO4 -Qoption ube -O4~yz $CC_HIGHEST -xregs=no%frameptr"
|
CXX_O_FLAG_HIGHEST="-xO4 -Qoption ube -O4~yz $CC_HIGHEST -xregs=no%frameptr"
|
||||||
CXX_O_FLAG_HI="-xO4 -Qoption ube -O4~yz -xregs=no%frameptr"
|
CXX_O_FLAG_HI="-xO4 -Qoption ube -O4~yz -xregs=no%frameptr"
|
||||||
CXX_O_FLAG_NORM="-xO2 -Qoption ube -O2~yz -xregs=no%frameptr"
|
CXX_O_FLAG_NORM="-xO2 -Qoption ube -O2~yz -xregs=no%frameptr"
|
||||||
|
CXX_O_FLAG_DEBUG="-xregs=no%frameptr"
|
||||||
CXX_O_FLAG_NONE="-xregs=no%frameptr"
|
CXX_O_FLAG_NONE="-xregs=no%frameptr"
|
||||||
if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then
|
if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then
|
||||||
C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xchip=pentium"
|
C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xchip=pentium"
|
||||||
@ -343,10 +372,12 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
|
|||||||
C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 $CC_HIGHEST -xalias_level=basic -xprefetch=auto,explicit -xchip=ultra"
|
C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 $CC_HIGHEST -xalias_level=basic -xprefetch=auto,explicit -xchip=ultra"
|
||||||
C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0"
|
C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0"
|
||||||
C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0"
|
C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0"
|
||||||
|
C_O_FLAG_DEBUG=""
|
||||||
C_O_FLAG_NONE=""
|
C_O_FLAG_NONE=""
|
||||||
CXX_O_FLAG_HIGHEST="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0 $CC_HIGHEST -xprefetch=auto,explicit -xchip=ultra"
|
CXX_O_FLAG_HIGHEST="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0 $CC_HIGHEST -xprefetch=auto,explicit -xchip=ultra"
|
||||||
CXX_O_FLAG_HI="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
|
CXX_O_FLAG_HI="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
|
||||||
CXX_O_FLAG_NORM="-xO2 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
|
CXX_O_FLAG_NORM="-xO2 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
|
||||||
|
C_O_FLAG_DEBUG=""
|
||||||
CXX_O_FLAG_NONE=""
|
CXX_O_FLAG_NONE=""
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
@ -359,13 +390,17 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
|
|||||||
C_O_FLAG_HIGHEST="-Os"
|
C_O_FLAG_HIGHEST="-Os"
|
||||||
C_O_FLAG_HI="-Os"
|
C_O_FLAG_HI="-Os"
|
||||||
C_O_FLAG_NORM="-Os"
|
C_O_FLAG_NORM="-Os"
|
||||||
C_O_FLAG_NONE=""
|
|
||||||
else
|
else
|
||||||
C_O_FLAG_HIGHEST="-O3"
|
C_O_FLAG_HIGHEST="-O3"
|
||||||
C_O_FLAG_HI="-O3"
|
C_O_FLAG_HI="-O3"
|
||||||
C_O_FLAG_NORM="-O2"
|
C_O_FLAG_NORM="-O2"
|
||||||
C_O_FLAG_NONE="-O0"
|
|
||||||
fi
|
fi
|
||||||
|
if test "x$HAS_CFLAG_OPTIMIZE_DEBUG" = "xtrue"; then
|
||||||
|
C_O_FLAG_DEBUG="$CFLAG_OPTIMIZE_DEBUG_FLAG"
|
||||||
|
else
|
||||||
|
C_O_FLAG_DEBUG="-O0"
|
||||||
|
fi
|
||||||
|
C_O_FLAG_NONE="-O0"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
# On MacOSX we optimize for size, something
|
# On MacOSX we optimize for size, something
|
||||||
@ -373,37 +408,63 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
|
|||||||
C_O_FLAG_HIGHEST="-Os"
|
C_O_FLAG_HIGHEST="-Os"
|
||||||
C_O_FLAG_HI="-Os"
|
C_O_FLAG_HI="-Os"
|
||||||
C_O_FLAG_NORM="-Os"
|
C_O_FLAG_NORM="-Os"
|
||||||
C_O_FLAG_NONE=""
|
|
||||||
else
|
else
|
||||||
C_O_FLAG_HIGHEST="-O3"
|
C_O_FLAG_HIGHEST="-O3"
|
||||||
C_O_FLAG_HI="-O3"
|
C_O_FLAG_HI="-O3"
|
||||||
C_O_FLAG_NORM="-O2"
|
C_O_FLAG_NORM="-O2"
|
||||||
C_O_FLAG_NONE="-O0"
|
|
||||||
fi
|
fi
|
||||||
|
C_O_FLAG_DEBUG="-O0"
|
||||||
|
C_O_FLAG_NONE="-O0"
|
||||||
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"
|
||||||
C_O_FLAG_NORM="-O2"
|
C_O_FLAG_NORM="-O2"
|
||||||
C_O_FLAG_NONE=""
|
C_O_FLAG_DEBUG="-qnoopt"
|
||||||
|
C_O_FLAG_NONE="-qnoop"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
C_O_FLAG_HIGHEST="-O2"
|
C_O_FLAG_HIGHEST="-O2"
|
||||||
C_O_FLAG_HI="-O1"
|
C_O_FLAG_HI="-O1"
|
||||||
C_O_FLAG_NORM="-O1"
|
C_O_FLAG_NORM="-O1"
|
||||||
|
C_O_FLAG_DEBUG="-Od"
|
||||||
C_O_FLAG_NONE="-Od"
|
C_O_FLAG_NONE="-Od"
|
||||||
fi
|
fi
|
||||||
CXX_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST"
|
CXX_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST"
|
||||||
CXX_O_FLAG_HI="$C_O_FLAG_HI"
|
CXX_O_FLAG_HI="$C_O_FLAG_HI"
|
||||||
CXX_O_FLAG_NORM="$C_O_FLAG_NORM"
|
CXX_O_FLAG_NORM="$C_O_FLAG_NORM"
|
||||||
|
CXX_O_FLAG_DEBUG="$C_O_FLAG_DEBUG"
|
||||||
CXX_O_FLAG_NONE="$C_O_FLAG_NONE"
|
CXX_O_FLAG_NONE="$C_O_FLAG_NONE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Adjust optimization flags according to debug level.
|
||||||
|
case $DEBUG_LEVEL in
|
||||||
|
release )
|
||||||
|
# no adjustment
|
||||||
|
;;
|
||||||
|
fastdebug )
|
||||||
|
# Not quite so much optimization
|
||||||
|
C_O_FLAG_HI="$C_O_FLAG_NORM"
|
||||||
|
CXX_O_FLAG_HI="$CXX_O_FLAG_NORM"
|
||||||
|
;;
|
||||||
|
slowdebug )
|
||||||
|
# Disable optimization
|
||||||
|
C_O_FLAG_HIGHEST="$C_O_FLAG_DEBUG"
|
||||||
|
C_O_FLAG_HI="$C_O_FLAG_DEBUG"
|
||||||
|
C_O_FLAG_NORM="$C_O_FLAG_DEBUG"
|
||||||
|
CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_DEBUG"
|
||||||
|
CXX_O_FLAG_HI="$CXX_O_FLAG_DEBUG"
|
||||||
|
CXX_O_FLAG_NORM="$CXX_O_FLAG_DEBUG"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
AC_SUBST(C_O_FLAG_HIGHEST)
|
AC_SUBST(C_O_FLAG_HIGHEST)
|
||||||
AC_SUBST(C_O_FLAG_HI)
|
AC_SUBST(C_O_FLAG_HI)
|
||||||
AC_SUBST(C_O_FLAG_NORM)
|
AC_SUBST(C_O_FLAG_NORM)
|
||||||
|
AC_SUBST(C_O_FLAG_DEBUG)
|
||||||
AC_SUBST(C_O_FLAG_NONE)
|
AC_SUBST(C_O_FLAG_NONE)
|
||||||
AC_SUBST(CXX_O_FLAG_HIGHEST)
|
AC_SUBST(CXX_O_FLAG_HIGHEST)
|
||||||
AC_SUBST(CXX_O_FLAG_HI)
|
AC_SUBST(CXX_O_FLAG_HI)
|
||||||
AC_SUBST(CXX_O_FLAG_NORM)
|
AC_SUBST(CXX_O_FLAG_NORM)
|
||||||
|
AC_SUBST(CXX_O_FLAG_DEBUG)
|
||||||
AC_SUBST(CXX_O_FLAG_NONE)
|
AC_SUBST(CXX_O_FLAG_NONE)
|
||||||
])
|
])
|
||||||
|
|
||||||
@ -461,11 +522,12 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
|
|||||||
# Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build.
|
# Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build.
|
||||||
#
|
#
|
||||||
|
|
||||||
# Setup compiler/platform specific flags to CFLAGS_JDK,
|
# Setup compiler/platform specific flags into
|
||||||
# CXXFLAGS_JDK and CCXXFLAGS_JDK (common to C and CXX?)
|
# CFLAGS_JDK - C Compiler flags
|
||||||
|
# CXXFLAGS_JDK - C++ Compiler flags
|
||||||
|
# COMMON_CCXXFLAGS_JDK - common to C and C++
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
# these options are used for both C and C++ compiles
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Wall -Wno-parentheses -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Wall -Wno-parentheses -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
|
|
||||||
-pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
|
-pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
|
||||||
case $OPENJDK_TARGET_CPU_ARCH in
|
case $OPENJDK_TARGET_CPU_ARCH in
|
||||||
arm )
|
arm )
|
||||||
@ -477,31 +539,31 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
|
|||||||
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
|
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
|
||||||
;;
|
;;
|
||||||
* )
|
* )
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
|
||||||
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
|
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS"
|
||||||
if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86; then
|
if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB"
|
||||||
CFLAGS_JDK="$CFLAGS_JDK -erroff=E_BAD_PRAGMA_PACK_VALUE"
|
CFLAGS_JDK="$CFLAGS_JDK -erroff=E_BAD_PRAGMA_PACK_VALUE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CFLAGS_JDK="$CFLAGS_JDK -xc99=%none -xCC -errshort=tags -Xa -v -mt -W0,-noglobal"
|
CFLAGS_JDK="$CFLAGS_JDK -xc99=%none -xCC -errshort=tags -Xa -v -mt -W0,-noglobal"
|
||||||
CXXFLAGS_JDK="$CXXFLAGS_JDK -errtags=yes +w -mt -features=no%except -DCC_NOEX -norunpath -xnolib"
|
CXXFLAGS_JDK="$CXXFLAGS_JDK -errtags=yes +w -mt -features=no%except -DCC_NOEX -norunpath -xnolib"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
||||||
CFLAGS_JDK="$CFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC"
|
CFLAGS_JDK="$CFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC"
|
||||||
CXXFLAGS_JDK="$CXXFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC"
|
CXXFLAGS_JDK="$CXXFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \
|
||||||
-D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \
|
-D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \
|
||||||
-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \
|
-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \
|
||||||
-DWIN32 -DIAL"
|
-DWIN32 -DIAL"
|
||||||
if test "x$OPENJDK_TARGET_CPU" = xx86_64; then
|
if test "x$OPENJDK_TARGET_CPU" = xx86_64; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_AMD64_ -Damd64"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_AMD64_ -Damd64"
|
||||||
else
|
else
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_X86_ -Dx86"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_X86_ -Dx86"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -509,28 +571,20 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
|
|||||||
|
|
||||||
# Adjust flags according to debug level.
|
# Adjust flags according to debug level.
|
||||||
case $DEBUG_LEVEL in
|
case $DEBUG_LEVEL in
|
||||||
fastdebug )
|
fastdebug | slowdebug )
|
||||||
CFLAGS_JDK="$CFLAGS_JDK $CFLAGS_DEBUG_SYMBOLS"
|
CFLAGS_JDK="$CFLAGS_JDK $CFLAGS_DEBUG_SYMBOLS $CFLAGS_DEBUG_OPTIONS"
|
||||||
CXXFLAGS_JDK="$CXXFLAGS_JDK $CXXFLAGS_DEBUG_SYMBOLS"
|
CXXFLAGS_JDK="$CXXFLAGS_JDK $CXXFLAGS_DEBUG_SYMBOLS $CXXFLAGS_DEBUG_OPTIONS"
|
||||||
C_O_FLAG_HI="$C_O_FLAG_NORM"
|
|
||||||
C_O_FLAG_NORM="$C_O_FLAG_NORM"
|
|
||||||
CXX_O_FLAG_HI="$CXX_O_FLAG_NORM"
|
|
||||||
CXX_O_FLAG_NORM="$CXX_O_FLAG_NORM"
|
|
||||||
JAVAC_FLAGS="$JAVAC_FLAGS -g"
|
JAVAC_FLAGS="$JAVAC_FLAGS -g"
|
||||||
;;
|
;;
|
||||||
slowdebug )
|
release )
|
||||||
CFLAGS_JDK="$CFLAGS_JDK $CFLAGS_DEBUG_SYMBOLS"
|
;;
|
||||||
CXXFLAGS_JDK="$CXXFLAGS_JDK $CXXFLAGS_DEBUG_SYMBOLS"
|
* )
|
||||||
C_O_FLAG_HI="$C_O_FLAG_NONE"
|
AC_MSG_ERROR([Unrecognized \$DEBUG_LEVEL: $DEBUG_LEVEL])
|
||||||
C_O_FLAG_NORM="$C_O_FLAG_NONE"
|
|
||||||
CXX_O_FLAG_HI="$CXX_O_FLAG_NONE"
|
|
||||||
CXX_O_FLAG_NORM="$CXX_O_FLAG_NONE"
|
|
||||||
JAVAC_FLAGS="$JAVAC_FLAGS -g"
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Setup LP64
|
# Setup LP64
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK $ADD_LP64"
|
||||||
|
|
||||||
# Set some common defines. These works for all compilers, but assume
|
# Set some common defines. These works for all compilers, but assume
|
||||||
# -D is universally accepted.
|
# -D is universally accepted.
|
||||||
@ -543,49 +597,49 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
|
|||||||
# Note: -Dmacro is the same as #define macro 1
|
# Note: -Dmacro is the same as #define macro 1
|
||||||
# -Dmacro= is the same as #define macro
|
# -Dmacro= is the same as #define macro
|
||||||
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN="
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_LITTLE_ENDIAN="
|
||||||
else
|
else
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_LITTLE_ENDIAN"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# Same goes for _BIG_ENDIAN. Do we really need to set *ENDIAN on Solaris if they
|
# Same goes for _BIG_ENDIAN. Do we really need to set *ENDIAN on Solaris if they
|
||||||
# are defined in the system?
|
# are defined in the system?
|
||||||
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN="
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN="
|
||||||
else
|
else
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Setup target OS define. Use OS target name but in upper case.
|
# Setup target OS define. Use OS target name but in upper case.
|
||||||
OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D$OPENJDK_TARGET_OS_UPPERCASE"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D$OPENJDK_TARGET_OS_UPPERCASE"
|
||||||
|
|
||||||
# Setup target CPU
|
# Setup target CPU
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY"
|
||||||
|
|
||||||
# Setup debug/release defines
|
# Setup debug/release defines
|
||||||
if test "x$DEBUG_LEVEL" = xrelease; then
|
if test "x$DEBUG_LEVEL" = xrelease; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DNDEBUG"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DNDEBUG"
|
||||||
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DTRIMMED"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DTRIMMED"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DDEBUG"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DDEBUG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Setup release name
|
# Setup release name
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DRELEASE='\"\$(RELEASE)\"'"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DRELEASE='\"\$(RELEASE)\"'"
|
||||||
|
|
||||||
|
|
||||||
# Set some additional per-OS defines.
|
# Set some additional per-OS defines.
|
||||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
|
||||||
elif test "x$OPENJDK_TARGET_OS" = xaix; then
|
elif test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||||
# FIXME: PPC64 should not be here.
|
# FIXME: PPC64 should not be here.
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DPPC64"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DPPC64"
|
||||||
elif test "x$OPENJDK_TARGET_OS" = xbsd; then
|
elif test "x$OPENJDK_TARGET_OS" = xbsd; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_ALLBSD_SOURCE"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_ALLBSD_SOURCE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Additional macosx handling
|
# Additional macosx handling
|
||||||
@ -595,22 +649,22 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
|
|||||||
# FIXME: clean this up, and/or move it elsewhere.
|
# FIXME: clean this up, and/or move it elsewhere.
|
||||||
|
|
||||||
# Setting these parameters makes it an error to link to macosx APIs that are
|
# Setting these parameters makes it an error to link to macosx APIs that are
|
||||||
# newer than the given OS version and makes the linked binaries compatible
|
# newer than the given OS version and makes the linked binaries compatible
|
||||||
# even if built on a newer version of the OS.
|
# even if built on a newer version of the OS.
|
||||||
# The expected format is X.Y.Z
|
# The expected format is X.Y.Z
|
||||||
MACOSX_VERSION_MIN=10.7.0
|
MACOSX_VERSION_MIN=10.7.0
|
||||||
AC_SUBST(MACOSX_VERSION_MIN)
|
AC_SUBST(MACOSX_VERSION_MIN)
|
||||||
|
|
||||||
# The macro takes the version with no dots, ex: 1070
|
# The macro takes the version with no dots, ex: 1070
|
||||||
# Let the flags variables get resolved in make for easier override on make
|
# Let the flags variables get resolved in make for easier override on make
|
||||||
# command line.
|
# command line.
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
|
||||||
LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
|
LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Setup some hard coded includes
|
# Setup some hard coded includes
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK \
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK \
|
||||||
-I${JDK_OUTPUTDIR}/include \
|
-I${JDK_OUTPUTDIR}/include \
|
||||||
-I${JDK_OUTPUTDIR}/include/$OPENJDK_TARGET_OS \
|
-I${JDK_OUTPUTDIR}/include/$OPENJDK_TARGET_OS \
|
||||||
-I${JDK_TOPDIR}/src/share/javavm/export \
|
-I${JDK_TOPDIR}/src/share/javavm/export \
|
||||||
@ -619,12 +673,12 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
|
|||||||
-I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_API_DIR/native/common"
|
-I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_API_DIR/native/common"
|
||||||
|
|
||||||
# The shared libraries are compiled using the picflag.
|
# The shared libraries are compiled using the picflag.
|
||||||
CFLAGS_JDKLIB="$CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
|
CFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
|
||||||
CXXFLAGS_JDKLIB="$CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA "
|
CXXFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA "
|
||||||
|
|
||||||
# Executable flags
|
# Executable flags
|
||||||
CFLAGS_JDKEXE="$CCXXFLAGS_JDK $CFLAGS_JDK"
|
CFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK"
|
||||||
CXXFLAGS_JDKEXE="$CCXXFLAGS_JDK $CXXFLAGS_JDK"
|
CXXFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK"
|
||||||
|
|
||||||
AC_SUBST(CFLAGS_JDKLIB)
|
AC_SUBST(CFLAGS_JDKLIB)
|
||||||
AC_SUBST(CFLAGS_JDKEXE)
|
AC_SUBST(CFLAGS_JDKEXE)
|
||||||
@ -633,6 +687,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
|
|||||||
|
|
||||||
# Setup LDFLAGS et al.
|
# Setup LDFLAGS et al.
|
||||||
#
|
#
|
||||||
|
|
||||||
# Now this is odd. The JDK native libraries have to link against libjvm.so
|
# Now this is odd. The JDK native libraries have to link against libjvm.so
|
||||||
# On 32-bit machines there is normally two distinct libjvm.so:s, client and server.
|
# On 32-bit machines there is normally two distinct libjvm.so:s, client and server.
|
||||||
# Which should we link to? Are we lucky enough that the binary api to the libjvm.so library
|
# Which should we link to? Are we lucky enough that the binary api to the libjvm.so library
|
||||||
@ -648,39 +703,93 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
|
|||||||
fi
|
fi
|
||||||
# TODO: make -debug optional "--disable-full-debug-symbols"
|
# TODO: make -debug optional "--disable-full-debug-symbols"
|
||||||
LDFLAGS_JDK="$LDFLAGS_JDK -debug"
|
LDFLAGS_JDK="$LDFLAGS_JDK -debug"
|
||||||
LDFLAGS_JDKLIB="${LDFLAGS_JDK} -dll -libpath:${JDK_OUTPUTDIR}/lib"
|
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
LDFLAGS_JDKLIB_SUFFIX=""
|
# If this is a --hash-style=gnu system, use --hash-style=both, why?
|
||||||
|
# We have previously set HAS_GNU_HASH if this is the case
|
||||||
|
if test -n "$HAS_GNU_HASH"; then
|
||||||
|
LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker --hash-style=both"
|
||||||
|
fi
|
||||||
|
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
||||||
|
# And since we now know that the linker is gnu, then add -z defs, to forbid
|
||||||
|
# undefined symbols in object files.
|
||||||
|
LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker -z -Xlinker defs"
|
||||||
|
case $DEBUG_LEVEL in
|
||||||
|
release )
|
||||||
|
# tell linker to optimize libraries.
|
||||||
|
# Should this be supplied to the OSS linker as well?
|
||||||
|
LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker -O1"
|
||||||
|
;;
|
||||||
|
slowdebug )
|
||||||
|
if test "x$HAS_LINKER_NOW" = "xtrue"; then
|
||||||
|
# do relocations at load
|
||||||
|
LDFLAGS_JDK="$LDFLAGS_JDK $LINKER_NOW_FLAG"
|
||||||
|
LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK $LINKER_NOW_FLAG"
|
||||||
|
fi
|
||||||
|
if test "x$HAS_LINKER_RELRO" = "xtrue"; then
|
||||||
|
# mark relocations read only
|
||||||
|
LDFLAGS_JDK="$LDFLAGS_JDK $LINKER_RELRO_FLAG"
|
||||||
|
LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK $LINKER_RELRO_FLAG"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
fastdebug )
|
||||||
|
if test "x$HAS_LINKER_RELRO" = "xtrue"; then
|
||||||
|
# mark relocations read only
|
||||||
|
LDFLAGS_JDK="$LDFLAGS_JDK $LINKER_RELRO_FLAG"
|
||||||
|
LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK $LINKER_RELRO_FLAG"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
AC_MSG_ERROR([Unrecognized \$DEBUG_LEVEL: $DEBUG_LEVEL])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
|
LDFLAGS_JDK="$LDFLAGS_JDK -z defs -xildoff -ztext"
|
||||||
|
LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
|
# If undefined behaviour detection is enabled then we need to tell linker.
|
||||||
|
case $DEBUG_LEVEL in
|
||||||
|
release | fastdebug )
|
||||||
|
;;
|
||||||
|
slowdebug )
|
||||||
|
AC_MSG_WARN([$HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR])
|
||||||
|
if test "x$HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR" = "xtrue"; then
|
||||||
|
# enable undefined behaviour checking
|
||||||
|
LDFLAGS_JDK="$LDFLAGS_JDK `$ECHO -n $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG | sed -e "s/[ ]*\([^ ]\+\)/ -Xlinker \1/g"`"
|
||||||
|
LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK `$ECHO -n $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG | sed -e "s/[ ]*\([^ ]\+\)/ -Xlinker \1/g"`"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
AC_MSG_ERROR([Unrecognized \$DEBUG_LEVEL: $DEBUG_LEVEL])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Customize LDFLAGS for executables
|
||||||
|
|
||||||
|
LDFLAGS_JDKEXE="${LDFLAGS_JDK}"
|
||||||
|
|
||||||
|
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
if test "x$OPENJDK_TARGET_CPU_BITS" = "x64"; then
|
if test "x$OPENJDK_TARGET_CPU_BITS" = "x64"; then
|
||||||
LDFLAGS_STACK_SIZE=1048576
|
LDFLAGS_STACK_SIZE=1048576
|
||||||
else
|
else
|
||||||
LDFLAGS_STACK_SIZE=327680
|
LDFLAGS_STACK_SIZE=327680
|
||||||
fi
|
fi
|
||||||
LDFLAGS_JDKEXE="${LDFLAGS_JDK} /STACK:$LDFLAGS_STACK_SIZE"
|
LDFLAGS_JDKEXE="${LDFLAGS_JDKEXE} /STACK:$LDFLAGS_STACK_SIZE"
|
||||||
|
elif test "x$OPENJDK_TARGET_OS" = xlinux; then
|
||||||
|
LDFLAGS_JDKEXE="$LDFLAGS_JDKEXE -Xlinker --allow-shlib-undefined"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Customize LDFLAGS for libs
|
||||||
|
LDFLAGS_JDKLIB="${LDFLAGS_JDK}"
|
||||||
|
|
||||||
|
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
|
LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} -dll -libpath:${JDK_OUTPUTDIR}/lib"
|
||||||
|
LDFLAGS_JDKLIB_SUFFIX=""
|
||||||
else
|
else
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} ${SHARED_LIBRARY_FLAGS} \
|
||||||
# If this is a --hash-style=gnu system, use --hash-style=both, why?
|
|
||||||
# We have previously set HAS_GNU_HASH if this is the case
|
|
||||||
if test -n "$HAS_GNU_HASH"; then
|
|
||||||
LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker --hash-style=both "
|
|
||||||
fi
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
|
||||||
# And since we now know that the linker is gnu, then add -z defs, to forbid
|
|
||||||
# undefined symbols in object files.
|
|
||||||
LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker -z -Xlinker defs"
|
|
||||||
if test "x$DEBUG_LEVEL" = "xrelease"; then
|
|
||||||
# When building release libraries, tell the linker optimize them.
|
|
||||||
# Should this be supplied to the OSS linker as well?
|
|
||||||
LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker -O1"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
|
||||||
LDFLAGS_JDK="$LDFLAGS_JDK -z defs -xildoff -ztext"
|
|
||||||
LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LDFLAGS_JDKLIB="${LDFLAGS_JDK} $SHARED_LIBRARY_FLAGS \
|
|
||||||
-L${JDK_OUTPUTDIR}/lib${OPENJDK_TARGET_CPU_LIBDIR}"
|
-L${JDK_OUTPUTDIR}/lib${OPENJDK_TARGET_CPU_LIBDIR}"
|
||||||
|
|
||||||
# On some platforms (mac) the linker warns about non existing -L dirs.
|
# On some platforms (mac) the linker warns about non existing -L dirs.
|
||||||
@ -701,12 +810,8 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
|
|||||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
LDFLAGS_JDKLIB_SUFFIX="$LDFLAGS_JDKLIB_SUFFIX -lc"
|
LDFLAGS_JDKLIB_SUFFIX="$LDFLAGS_JDKLIB_SUFFIX -lc"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LDFLAGS_JDKEXE="${LDFLAGS_JDK}"
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
|
||||||
LDFLAGS_JDKEXE="$LDFLAGS_JDKEXE -Xlinker --allow-shlib-undefined"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_SUBST(LDFLAGS_JDKLIB)
|
AC_SUBST(LDFLAGS_JDKLIB)
|
||||||
AC_SUBST(LDFLAGS_JDKEXE)
|
AC_SUBST(LDFLAGS_JDKEXE)
|
||||||
AC_SUBST(LDFLAGS_JDKLIB_SUFFIX)
|
AC_SUBST(LDFLAGS_JDKLIB_SUFFIX)
|
||||||
@ -714,7 +819,6 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
|
|||||||
AC_SUBST(LDFLAGS_CXX_JDK)
|
AC_SUBST(LDFLAGS_CXX_JDK)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
# FLAGS_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
|
# FLAGS_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
|
||||||
# [RUN-IF-FALSE])
|
# [RUN-IF-FALSE])
|
||||||
# ------------------------------------------------------------
|
# ------------------------------------------------------------
|
||||||
@ -727,7 +831,7 @@ AC_DEFUN([FLAGS_COMPILER_CHECK_ARGUMENTS],
|
|||||||
saved_cflags="$CFLAGS"
|
saved_cflags="$CFLAGS"
|
||||||
CFLAGS="$CFLAGS $1"
|
CFLAGS="$CFLAGS $1"
|
||||||
AC_LANG_PUSH([C])
|
AC_LANG_PUSH([C])
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int i;]])], [],
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int i;]])], [],
|
||||||
[supports=no])
|
[supports=no])
|
||||||
AC_LANG_POP([C])
|
AC_LANG_POP([C])
|
||||||
CFLAGS="$saved_cflags"
|
CFLAGS="$saved_cflags"
|
||||||
@ -735,7 +839,7 @@ AC_DEFUN([FLAGS_COMPILER_CHECK_ARGUMENTS],
|
|||||||
saved_cxxflags="$CXXFLAGS"
|
saved_cxxflags="$CXXFLAGS"
|
||||||
CXXFLAGS="$CXXFLAG $1"
|
CXXFLAGS="$CXXFLAG $1"
|
||||||
AC_LANG_PUSH([C++])
|
AC_LANG_PUSH([C++])
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int i;]])], [],
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int i;]])], [],
|
||||||
[supports=no])
|
[supports=no])
|
||||||
AC_LANG_POP([C++])
|
AC_LANG_POP([C++])
|
||||||
CXXFLAGS="$saved_cxxflags"
|
CXXFLAGS="$saved_cxxflags"
|
||||||
@ -748,6 +852,31 @@ AC_DEFUN([FLAGS_COMPILER_CHECK_ARGUMENTS],
|
|||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
# FLAGS_LINKER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
|
||||||
|
# [RUN-IF-FALSE])
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Check that the linker support an argument
|
||||||
|
AC_DEFUN([FLAGS_LINKER_CHECK_ARGUMENTS],
|
||||||
|
[
|
||||||
|
AC_MSG_CHECKING([if linker supports "$1"])
|
||||||
|
supports=yes
|
||||||
|
|
||||||
|
saved_ldflags="$LDFLAGS"
|
||||||
|
LDFLAGS="$LDFLAGS $1"
|
||||||
|
AC_LANG_PUSH([C])
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],
|
||||||
|
[], [supports=no])
|
||||||
|
AC_LANG_POP([C])
|
||||||
|
LDFLAGS="$saved_ldflags"
|
||||||
|
|
||||||
|
AC_MSG_RESULT([$supports])
|
||||||
|
if test "x$supports" = "xyes" ; then
|
||||||
|
m4_ifval([$2], [$2], [:])
|
||||||
|
else
|
||||||
|
m4_ifval([$3], [$3], [:])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_MISC],
|
AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_MISC],
|
||||||
[
|
[
|
||||||
# Some Zero and Shark settings.
|
# Some Zero and Shark settings.
|
||||||
|
@ -692,13 +692,17 @@ LEGACY_EXTRA_LDFLAGS
|
|||||||
LEGACY_EXTRA_CXXFLAGS
|
LEGACY_EXTRA_CXXFLAGS
|
||||||
LEGACY_EXTRA_CFLAGS
|
LEGACY_EXTRA_CFLAGS
|
||||||
CXX_O_FLAG_NONE
|
CXX_O_FLAG_NONE
|
||||||
|
CXX_O_FLAG_DEBUG
|
||||||
CXX_O_FLAG_NORM
|
CXX_O_FLAG_NORM
|
||||||
CXX_O_FLAG_HI
|
CXX_O_FLAG_HI
|
||||||
CXX_O_FLAG_HIGHEST
|
CXX_O_FLAG_HIGHEST
|
||||||
C_O_FLAG_NONE
|
C_O_FLAG_NONE
|
||||||
|
C_O_FLAG_DEBUG
|
||||||
C_O_FLAG_NORM
|
C_O_FLAG_NORM
|
||||||
C_O_FLAG_HI
|
C_O_FLAG_HI
|
||||||
C_O_FLAG_HIGHEST
|
C_O_FLAG_HIGHEST
|
||||||
|
CXXFLAGS_DEBUG_OPTIONS
|
||||||
|
CFLAGS_DEBUG_OPTIONS
|
||||||
CXXFLAGS_DEBUG_SYMBOLS
|
CXXFLAGS_DEBUG_SYMBOLS
|
||||||
CFLAGS_DEBUG_SYMBOLS
|
CFLAGS_DEBUG_SYMBOLS
|
||||||
CXX_FLAG_DEPS
|
CXX_FLAG_DEPS
|
||||||
@ -2346,6 +2350,52 @@ fi
|
|||||||
|
|
||||||
} # ac_fn_objc_try_compile
|
} # ac_fn_objc_try_compile
|
||||||
|
|
||||||
|
# ac_fn_c_try_link LINENO
|
||||||
|
# -----------------------
|
||||||
|
# Try to link conftest.$ac_ext, and return whether this succeeded.
|
||||||
|
ac_fn_c_try_link ()
|
||||||
|
{
|
||||||
|
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||||
|
rm -f conftest.$ac_objext conftest$ac_exeext
|
||||||
|
if { { ac_try="$ac_link"
|
||||||
|
case "(($ac_try" in
|
||||||
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
*) ac_try_echo=$ac_try;;
|
||||||
|
esac
|
||||||
|
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
||||||
|
$as_echo "$ac_try_echo"; } >&5
|
||||||
|
(eval "$ac_link") 2>conftest.err
|
||||||
|
ac_status=$?
|
||||||
|
if test -s conftest.err; then
|
||||||
|
grep -v '^ *+' conftest.err >conftest.er1
|
||||||
|
cat conftest.er1 >&5
|
||||||
|
mv -f conftest.er1 conftest.err
|
||||||
|
fi
|
||||||
|
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
|
test $ac_status = 0; } && {
|
||||||
|
test -z "$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
} && test -s conftest$ac_exeext && {
|
||||||
|
test "$cross_compiling" = yes ||
|
||||||
|
test -x conftest$ac_exeext
|
||||||
|
}; then :
|
||||||
|
ac_retval=0
|
||||||
|
else
|
||||||
|
$as_echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
ac_retval=1
|
||||||
|
fi
|
||||||
|
# Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
|
||||||
|
# created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
|
||||||
|
# interfere with the next link command; also delete a directory that is
|
||||||
|
# left behind by Apple's compiler. We do this before executing the actions.
|
||||||
|
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
|
||||||
|
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
||||||
|
as_fn_set_status $ac_retval
|
||||||
|
|
||||||
|
} # ac_fn_c_try_link
|
||||||
|
|
||||||
# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES
|
# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES
|
||||||
# ---------------------------------------------------------
|
# ---------------------------------------------------------
|
||||||
# Tests whether HEADER exists, giving a warning if it cannot be compiled using
|
# Tests whether HEADER exists, giving a warning if it cannot be compiled using
|
||||||
@ -3761,13 +3811,18 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# FLAGS_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
|
# FLAGS_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
|
||||||
# [RUN-IF-FALSE])
|
# [RUN-IF-FALSE])
|
||||||
# ------------------------------------------------------------
|
# ------------------------------------------------------------
|
||||||
# Check that the c and c++ compilers support an argument
|
# Check that the c and c++ compilers support an argument
|
||||||
|
|
||||||
|
|
||||||
|
# FLAGS_LINKER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
|
||||||
|
# [RUN-IF-FALSE])
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Check that the linker support an argument
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -4253,7 +4308,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=1399969244
|
DATE_WHEN_GENERATED=1402614845
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
@ -40264,6 +40319,8 @@ $as_echo "$as_me: Rewriting BUILD_LD to \"$new_complete\"" >&6;}
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# The package path is used only on macosx?
|
# The package path is used only on macosx?
|
||||||
# FIXME: clean this up, and/or move it elsewhere.
|
# FIXME: clean this up, and/or move it elsewhere.
|
||||||
PACKAGE_PATH=/opt/local
|
PACKAGE_PATH=/opt/local
|
||||||
@ -40289,6 +40346,242 @@ $as_echo "$as_me: Rewriting BUILD_LD to \"$new_complete\"" >&6;}
|
|||||||
# If this is a --hash-style=gnu system, use --hash-style=both, why?
|
# If this is a --hash-style=gnu system, use --hash-style=both, why?
|
||||||
HAS_GNU_HASH=`$CC -dumpspecs 2>/dev/null | $GREP 'hash-style=gnu'`
|
HAS_GNU_HASH=`$CC -dumpspecs 2>/dev/null | $GREP 'hash-style=gnu'`
|
||||||
# This is later checked when setting flags.
|
# This is later checked when setting flags.
|
||||||
|
|
||||||
|
# "-Og" suppported for GCC 4.8 and later
|
||||||
|
CFLAG_OPTIMIZE_DEBUG_FLAG="-Og"
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"$CFLAG_OPTIMIZE_DEBUG_FLAG\"" >&5
|
||||||
|
$as_echo_n "checking if compiler supports \"$CFLAG_OPTIMIZE_DEBUG_FLAG\"... " >&6; }
|
||||||
|
supports=yes
|
||||||
|
|
||||||
|
saved_cflags="$CFLAGS"
|
||||||
|
CFLAGS="$CFLAGS $CFLAG_OPTIMIZE_DEBUG_FLAG"
|
||||||
|
ac_ext=c
|
||||||
|
ac_cpp='$CPP $CPPFLAGS'
|
||||||
|
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||||
|
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
int i;
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_compile "$LINENO"; then :
|
||||||
|
|
||||||
|
else
|
||||||
|
supports=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
ac_ext=cpp
|
||||||
|
ac_cpp='$CXXCPP $CPPFLAGS'
|
||||||
|
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||||
|
|
||||||
|
CFLAGS="$saved_cflags"
|
||||||
|
|
||||||
|
saved_cxxflags="$CXXFLAGS"
|
||||||
|
CXXFLAGS="$CXXFLAG $CFLAG_OPTIMIZE_DEBUG_FLAG"
|
||||||
|
ac_ext=cpp
|
||||||
|
ac_cpp='$CXXCPP $CPPFLAGS'
|
||||||
|
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||||
|
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
int i;
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_cxx_try_compile "$LINENO"; then :
|
||||||
|
|
||||||
|
else
|
||||||
|
supports=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
ac_ext=cpp
|
||||||
|
ac_cpp='$CXXCPP $CPPFLAGS'
|
||||||
|
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||||
|
|
||||||
|
CXXFLAGS="$saved_cxxflags"
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||||||
|
$as_echo "$supports" >&6; }
|
||||||
|
if test "x$supports" = "xyes" ; then
|
||||||
|
HAS_CFLAG_OPTIMIZE_DEBUG=true
|
||||||
|
else
|
||||||
|
HAS_CFLAG_OPTIMIZE_DEBUG=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# "-fsanitize=undefined" supported for GCC 4.9 and later
|
||||||
|
CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG="-fsanitize=undefined -fsanitize-recover"
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"$CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG\"" >&5
|
||||||
|
$as_echo_n "checking if compiler supports \"$CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG\"... " >&6; }
|
||||||
|
supports=yes
|
||||||
|
|
||||||
|
saved_cflags="$CFLAGS"
|
||||||
|
CFLAGS="$CFLAGS $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG"
|
||||||
|
ac_ext=c
|
||||||
|
ac_cpp='$CPP $CPPFLAGS'
|
||||||
|
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||||
|
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
int i;
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_compile "$LINENO"; then :
|
||||||
|
|
||||||
|
else
|
||||||
|
supports=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
ac_ext=cpp
|
||||||
|
ac_cpp='$CXXCPP $CPPFLAGS'
|
||||||
|
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||||
|
|
||||||
|
CFLAGS="$saved_cflags"
|
||||||
|
|
||||||
|
saved_cxxflags="$CXXFLAGS"
|
||||||
|
CXXFLAGS="$CXXFLAG $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG"
|
||||||
|
ac_ext=cpp
|
||||||
|
ac_cpp='$CXXCPP $CPPFLAGS'
|
||||||
|
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||||
|
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
int i;
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_cxx_try_compile "$LINENO"; then :
|
||||||
|
|
||||||
|
else
|
||||||
|
supports=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
ac_ext=cpp
|
||||||
|
ac_cpp='$CXXCPP $CPPFLAGS'
|
||||||
|
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||||
|
|
||||||
|
CXXFLAGS="$saved_cxxflags"
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||||||
|
$as_echo "$supports" >&6; }
|
||||||
|
if test "x$supports" = "xyes" ; then
|
||||||
|
HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR=true
|
||||||
|
else
|
||||||
|
HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# "-z relro" supported in GNU binutils 2.17 and later
|
||||||
|
LINKER_RELRO_FLAG="-Xlinker -z -Xlinker relro"
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if linker supports \"$LINKER_RELRO_FLAG\"" >&5
|
||||||
|
$as_echo_n "checking if linker supports \"$LINKER_RELRO_FLAG\"... " >&6; }
|
||||||
|
supports=yes
|
||||||
|
|
||||||
|
saved_ldflags="$LDFLAGS"
|
||||||
|
LDFLAGS="$LDFLAGS $LINKER_RELRO_FLAG"
|
||||||
|
ac_ext=c
|
||||||
|
ac_cpp='$CPP $CPPFLAGS'
|
||||||
|
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||||
|
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_link "$LINENO"; then :
|
||||||
|
|
||||||
|
else
|
||||||
|
supports=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext \
|
||||||
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
|
ac_ext=cpp
|
||||||
|
ac_cpp='$CXXCPP $CPPFLAGS'
|
||||||
|
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||||
|
|
||||||
|
LDFLAGS="$saved_ldflags"
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||||||
|
$as_echo "$supports" >&6; }
|
||||||
|
if test "x$supports" = "xyes" ; then
|
||||||
|
HAS_LINKER_RELRO=true
|
||||||
|
else
|
||||||
|
HAS_LINKER_RELRO=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# "-z now" supported in GNU binutils 2.11 and later
|
||||||
|
LINKER_NOW_FLAG="-Xlinker -z -Xlinker now"
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if linker supports \"$LINKER_NOW_FLAG\"" >&5
|
||||||
|
$as_echo_n "checking if linker supports \"$LINKER_NOW_FLAG\"... " >&6; }
|
||||||
|
supports=yes
|
||||||
|
|
||||||
|
saved_ldflags="$LDFLAGS"
|
||||||
|
LDFLAGS="$LDFLAGS $LINKER_NOW_FLAG"
|
||||||
|
ac_ext=c
|
||||||
|
ac_cpp='$CPP $CPPFLAGS'
|
||||||
|
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||||
|
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_link "$LINENO"; then :
|
||||||
|
|
||||||
|
else
|
||||||
|
supports=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext \
|
||||||
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
|
ac_ext=cpp
|
||||||
|
ac_cpp='$CXXCPP $CPPFLAGS'
|
||||||
|
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||||
|
|
||||||
|
LDFLAGS="$saved_ldflags"
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||||||
|
$as_echo "$supports" >&6; }
|
||||||
|
if test "x$supports" = "xyes" ; then
|
||||||
|
HAS_LINKER_NOW=true
|
||||||
|
else
|
||||||
|
HAS_LINKER_NOW=false
|
||||||
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check for broken SuSE 'ld' for which 'Only anonymous version tag is allowed
|
# Check for broken SuSE 'ld' for which 'Only anonymous version tag is allowed
|
||||||
@ -40297,8 +40590,8 @@ $as_echo "$as_me: Rewriting BUILD_LD to \"$new_complete\"" >&6;}
|
|||||||
if test "x$OPENJDK_TARGET_OS" = xlinux && test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$OPENJDK_TARGET_OS" = xlinux && test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken SuSE 'ld' which only understands anonymous version tags in executables" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken SuSE 'ld' which only understands anonymous version tags in executables" >&5
|
||||||
$as_echo_n "checking for broken SuSE 'ld' which only understands anonymous version tags in executables... " >&6; }
|
$as_echo_n "checking for broken SuSE 'ld' which only understands anonymous version tags in executables... " >&6; }
|
||||||
echo "SUNWprivate_1.1 { local: *; };" > version-script.map
|
$ECHO "SUNWprivate_1.1 { local: *; };" > version-script.map
|
||||||
echo "int main() { }" > main.c
|
$ECHO "int main() { }" > main.c
|
||||||
if $CXX -Xlinker -version-script=version-script.map main.c 2>&5 >&5; then
|
if $CXX -Xlinker -version-script=version-script.map main.c 2>&5 >&5; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
$as_echo "no" >&6; }
|
$as_echo "no" >&6; }
|
||||||
@ -40768,8 +41061,8 @@ $as_echo "$tool_specified" >&6; }
|
|||||||
|
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
# FIXME: likely bug, should be CCXXFLAGS_JDK? or one for C or CXX.
|
# silence copyright notice and other headers.
|
||||||
CCXXFLAGS="$CCXXFLAGS -nologo"
|
COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$SYSROOT" != "x"; then
|
if test "x$SYSROOT" != "x"; then
|
||||||
@ -40803,7 +41096,6 @@ $as_echo "$tool_specified" >&6; }
|
|||||||
|
|
||||||
# Now we can test some aspects on the target using configure macros.
|
# Now we can test some aspects on the target using configure macros.
|
||||||
|
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
|
||||||
$as_echo_n "checking for ANSI C header files... " >&6; }
|
$as_echo_n "checking for ANSI C header files... " >&6; }
|
||||||
if ${ac_cv_header_stdc+:} false; then :
|
if ${ac_cv_header_stdc+:} false; then :
|
||||||
@ -41488,6 +41780,7 @@ $as_echo "$ac_cv_c_bigendian" >&6; }
|
|||||||
# Debug symbols
|
# Debug symbols
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test "x$DEBUG_LEVEL" = "xfastdebug"; then
|
if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test "x$DEBUG_LEVEL" = "xfastdebug"; then
|
||||||
|
# reduce from default "-g2" option to save space
|
||||||
CFLAGS_DEBUG_SYMBOLS="-g1"
|
CFLAGS_DEBUG_SYMBOLS="-g1"
|
||||||
CXXFLAGS_DEBUG_SYMBOLS="-g1"
|
CXXFLAGS_DEBUG_SYMBOLS="-g1"
|
||||||
else
|
else
|
||||||
@ -41499,6 +41792,7 @@ $as_echo "$ac_cv_c_bigendian" >&6; }
|
|||||||
CXXFLAGS_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"
|
||||||
|
# FIXME: likely a bug, this disables debug symbols rather than enables them
|
||||||
CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
|
CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
|
||||||
CFLAGS_DEBUG_SYMBOLS="-g"
|
CFLAGS_DEBUG_SYMBOLS="-g"
|
||||||
@ -41507,6 +41801,31 @@ $as_echo "$ac_cv_c_bigendian" >&6; }
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# bounds, memory and behavior checking options
|
||||||
|
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
|
case $DEBUG_LEVEL in
|
||||||
|
release )
|
||||||
|
# no adjustment
|
||||||
|
;;
|
||||||
|
fastdebug )
|
||||||
|
# Add compile time bounds checks.
|
||||||
|
CFLAGS_DEBUG_OPTIONS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1"
|
||||||
|
CXXFLAGS_DEBUG_OPTIONS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1"
|
||||||
|
;;
|
||||||
|
slowdebug )
|
||||||
|
# Add runtime bounds checks and symbol info.
|
||||||
|
CFLAGS_DEBUG_OPTIONS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-all --param ssp-buffer-size=1"
|
||||||
|
CXXFLAGS_DEBUG_OPTIONS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-all --param ssp-buffer-size=1"
|
||||||
|
if test "x$HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR" = "xtrue"; then
|
||||||
|
CFLAGS_DEBUG_OPTIONS="$CFLAGS_DEBUG_OPTIONS $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG"
|
||||||
|
CXXFLAGS_DEBUG_OPTIONS="$CXXFLAGS_DEBUG_OPTIONS $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Optimization levels
|
# Optimization levels
|
||||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
CC_HIGHEST="$CC_HIGHEST -fns -fsimple -fsingle -xbuiltin=%all -xdepend -xrestrict -xlibmil"
|
CC_HIGHEST="$CC_HIGHEST -fns -fsimple -fsingle -xbuiltin=%all -xdepend -xrestrict -xlibmil"
|
||||||
@ -41516,10 +41835,12 @@ $as_echo "$ac_cv_c_bigendian" >&6; }
|
|||||||
C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST -xalias_level=basic -xregs=no%frameptr"
|
C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST -xalias_level=basic -xregs=no%frameptr"
|
||||||
C_O_FLAG_HI="-xO4 -Wu,-O4~yz -xregs=no%frameptr"
|
C_O_FLAG_HI="-xO4 -Wu,-O4~yz -xregs=no%frameptr"
|
||||||
C_O_FLAG_NORM="-xO2 -Wu,-O2~yz -xregs=no%frameptr"
|
C_O_FLAG_NORM="-xO2 -Wu,-O2~yz -xregs=no%frameptr"
|
||||||
|
C_O_FLAG_DEBUG="-xregs=no%frameptr"
|
||||||
C_O_FLAG_NONE="-xregs=no%frameptr"
|
C_O_FLAG_NONE="-xregs=no%frameptr"
|
||||||
CXX_O_FLAG_HIGHEST="-xO4 -Qoption ube -O4~yz $CC_HIGHEST -xregs=no%frameptr"
|
CXX_O_FLAG_HIGHEST="-xO4 -Qoption ube -O4~yz $CC_HIGHEST -xregs=no%frameptr"
|
||||||
CXX_O_FLAG_HI="-xO4 -Qoption ube -O4~yz -xregs=no%frameptr"
|
CXX_O_FLAG_HI="-xO4 -Qoption ube -O4~yz -xregs=no%frameptr"
|
||||||
CXX_O_FLAG_NORM="-xO2 -Qoption ube -O2~yz -xregs=no%frameptr"
|
CXX_O_FLAG_NORM="-xO2 -Qoption ube -O2~yz -xregs=no%frameptr"
|
||||||
|
CXX_O_FLAG_DEBUG="-xregs=no%frameptr"
|
||||||
CXX_O_FLAG_NONE="-xregs=no%frameptr"
|
CXX_O_FLAG_NONE="-xregs=no%frameptr"
|
||||||
if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then
|
if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then
|
||||||
C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xchip=pentium"
|
C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xchip=pentium"
|
||||||
@ -41529,10 +41850,12 @@ $as_echo "$ac_cv_c_bigendian" >&6; }
|
|||||||
C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 $CC_HIGHEST -xalias_level=basic -xprefetch=auto,explicit -xchip=ultra"
|
C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 $CC_HIGHEST -xalias_level=basic -xprefetch=auto,explicit -xchip=ultra"
|
||||||
C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0"
|
C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0"
|
||||||
C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0"
|
C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0"
|
||||||
|
C_O_FLAG_DEBUG=""
|
||||||
C_O_FLAG_NONE=""
|
C_O_FLAG_NONE=""
|
||||||
CXX_O_FLAG_HIGHEST="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0 $CC_HIGHEST -xprefetch=auto,explicit -xchip=ultra"
|
CXX_O_FLAG_HIGHEST="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0 $CC_HIGHEST -xprefetch=auto,explicit -xchip=ultra"
|
||||||
CXX_O_FLAG_HI="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
|
CXX_O_FLAG_HI="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
|
||||||
CXX_O_FLAG_NORM="-xO2 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
|
CXX_O_FLAG_NORM="-xO2 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
|
||||||
|
C_O_FLAG_DEBUG=""
|
||||||
CXX_O_FLAG_NONE=""
|
CXX_O_FLAG_NONE=""
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
@ -41545,13 +41868,17 @@ $as_echo "$ac_cv_c_bigendian" >&6; }
|
|||||||
C_O_FLAG_HIGHEST="-Os"
|
C_O_FLAG_HIGHEST="-Os"
|
||||||
C_O_FLAG_HI="-Os"
|
C_O_FLAG_HI="-Os"
|
||||||
C_O_FLAG_NORM="-Os"
|
C_O_FLAG_NORM="-Os"
|
||||||
C_O_FLAG_NONE=""
|
|
||||||
else
|
else
|
||||||
C_O_FLAG_HIGHEST="-O3"
|
C_O_FLAG_HIGHEST="-O3"
|
||||||
C_O_FLAG_HI="-O3"
|
C_O_FLAG_HI="-O3"
|
||||||
C_O_FLAG_NORM="-O2"
|
C_O_FLAG_NORM="-O2"
|
||||||
C_O_FLAG_NONE="-O0"
|
|
||||||
fi
|
fi
|
||||||
|
if test "x$HAS_CFLAG_OPTIMIZE_DEBUG" = "xtrue"; then
|
||||||
|
C_O_FLAG_DEBUG="$CFLAG_OPTIMIZE_DEBUG_FLAG"
|
||||||
|
else
|
||||||
|
C_O_FLAG_DEBUG="-O0"
|
||||||
|
fi
|
||||||
|
C_O_FLAG_NONE="-O0"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
# On MacOSX we optimize for size, something
|
# On MacOSX we optimize for size, something
|
||||||
@ -41559,30 +41886,56 @@ $as_echo "$ac_cv_c_bigendian" >&6; }
|
|||||||
C_O_FLAG_HIGHEST="-Os"
|
C_O_FLAG_HIGHEST="-Os"
|
||||||
C_O_FLAG_HI="-Os"
|
C_O_FLAG_HI="-Os"
|
||||||
C_O_FLAG_NORM="-Os"
|
C_O_FLAG_NORM="-Os"
|
||||||
C_O_FLAG_NONE=""
|
|
||||||
else
|
else
|
||||||
C_O_FLAG_HIGHEST="-O3"
|
C_O_FLAG_HIGHEST="-O3"
|
||||||
C_O_FLAG_HI="-O3"
|
C_O_FLAG_HI="-O3"
|
||||||
C_O_FLAG_NORM="-O2"
|
C_O_FLAG_NORM="-O2"
|
||||||
C_O_FLAG_NONE="-O0"
|
|
||||||
fi
|
fi
|
||||||
|
C_O_FLAG_DEBUG="-O0"
|
||||||
|
C_O_FLAG_NONE="-O0"
|
||||||
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"
|
||||||
C_O_FLAG_NORM="-O2"
|
C_O_FLAG_NORM="-O2"
|
||||||
C_O_FLAG_NONE=""
|
C_O_FLAG_DEBUG="-qnoopt"
|
||||||
|
C_O_FLAG_NONE="-qnoop"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
C_O_FLAG_HIGHEST="-O2"
|
C_O_FLAG_HIGHEST="-O2"
|
||||||
C_O_FLAG_HI="-O1"
|
C_O_FLAG_HI="-O1"
|
||||||
C_O_FLAG_NORM="-O1"
|
C_O_FLAG_NORM="-O1"
|
||||||
|
C_O_FLAG_DEBUG="-Od"
|
||||||
C_O_FLAG_NONE="-Od"
|
C_O_FLAG_NONE="-Od"
|
||||||
fi
|
fi
|
||||||
CXX_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST"
|
CXX_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST"
|
||||||
CXX_O_FLAG_HI="$C_O_FLAG_HI"
|
CXX_O_FLAG_HI="$C_O_FLAG_HI"
|
||||||
CXX_O_FLAG_NORM="$C_O_FLAG_NORM"
|
CXX_O_FLAG_NORM="$C_O_FLAG_NORM"
|
||||||
|
CXX_O_FLAG_DEBUG="$C_O_FLAG_DEBUG"
|
||||||
CXX_O_FLAG_NONE="$C_O_FLAG_NONE"
|
CXX_O_FLAG_NONE="$C_O_FLAG_NONE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Adjust optimization flags according to debug level.
|
||||||
|
case $DEBUG_LEVEL in
|
||||||
|
release )
|
||||||
|
# no adjustment
|
||||||
|
;;
|
||||||
|
fastdebug )
|
||||||
|
# Not quite so much optimization
|
||||||
|
C_O_FLAG_HI="$C_O_FLAG_NORM"
|
||||||
|
CXX_O_FLAG_HI="$CXX_O_FLAG_NORM"
|
||||||
|
;;
|
||||||
|
slowdebug )
|
||||||
|
# Disable optimization
|
||||||
|
C_O_FLAG_HIGHEST="$C_O_FLAG_DEBUG"
|
||||||
|
C_O_FLAG_HI="$C_O_FLAG_DEBUG"
|
||||||
|
C_O_FLAG_NORM="$C_O_FLAG_DEBUG"
|
||||||
|
CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_DEBUG"
|
||||||
|
CXX_O_FLAG_HI="$CXX_O_FLAG_DEBUG"
|
||||||
|
CXX_O_FLAG_NORM="$CXX_O_FLAG_DEBUG"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -41660,11 +42013,12 @@ fi
|
|||||||
# Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build.
|
# Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build.
|
||||||
#
|
#
|
||||||
|
|
||||||
# Setup compiler/platform specific flags to CFLAGS_JDK,
|
# Setup compiler/platform specific flags into
|
||||||
# CXXFLAGS_JDK and CCXXFLAGS_JDK (common to C and CXX?)
|
# CFLAGS_JDK - C Compiler flags
|
||||||
|
# CXXFLAGS_JDK - C++ Compiler flags
|
||||||
|
# COMMON_CCXXFLAGS_JDK - common to C and C++
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
# these options are used for both C and C++ compiles
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Wall -Wno-parentheses -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Wall -Wno-parentheses -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
|
|
||||||
-pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
|
-pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
|
||||||
case $OPENJDK_TARGET_CPU_ARCH in
|
case $OPENJDK_TARGET_CPU_ARCH in
|
||||||
arm )
|
arm )
|
||||||
@ -41676,14 +42030,14 @@ fi
|
|||||||
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
|
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
|
||||||
;;
|
;;
|
||||||
* )
|
* )
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
|
||||||
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
|
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS"
|
||||||
if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86; then
|
if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB"
|
||||||
CFLAGS_JDK="$CFLAGS_JDK -erroff=E_BAD_PRAGMA_PACK_VALUE"
|
CFLAGS_JDK="$CFLAGS_JDK -erroff=E_BAD_PRAGMA_PACK_VALUE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -41693,14 +42047,14 @@ fi
|
|||||||
CFLAGS_JDK="$CFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC"
|
CFLAGS_JDK="$CFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC"
|
||||||
CXXFLAGS_JDK="$CXXFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC"
|
CXXFLAGS_JDK="$CXXFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC"
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \
|
||||||
-D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \
|
-D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \
|
||||||
-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \
|
-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \
|
||||||
-DWIN32 -DIAL"
|
-DWIN32 -DIAL"
|
||||||
if test "x$OPENJDK_TARGET_CPU" = xx86_64; then
|
if test "x$OPENJDK_TARGET_CPU" = xx86_64; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_AMD64_ -Damd64"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_AMD64_ -Damd64"
|
||||||
else
|
else
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_X86_ -Dx86"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_X86_ -Dx86"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -41708,28 +42062,20 @@ fi
|
|||||||
|
|
||||||
# Adjust flags according to debug level.
|
# Adjust flags according to debug level.
|
||||||
case $DEBUG_LEVEL in
|
case $DEBUG_LEVEL in
|
||||||
fastdebug )
|
fastdebug | slowdebug )
|
||||||
CFLAGS_JDK="$CFLAGS_JDK $CFLAGS_DEBUG_SYMBOLS"
|
CFLAGS_JDK="$CFLAGS_JDK $CFLAGS_DEBUG_SYMBOLS $CFLAGS_DEBUG_OPTIONS"
|
||||||
CXXFLAGS_JDK="$CXXFLAGS_JDK $CXXFLAGS_DEBUG_SYMBOLS"
|
CXXFLAGS_JDK="$CXXFLAGS_JDK $CXXFLAGS_DEBUG_SYMBOLS $CXXFLAGS_DEBUG_OPTIONS"
|
||||||
C_O_FLAG_HI="$C_O_FLAG_NORM"
|
|
||||||
C_O_FLAG_NORM="$C_O_FLAG_NORM"
|
|
||||||
CXX_O_FLAG_HI="$CXX_O_FLAG_NORM"
|
|
||||||
CXX_O_FLAG_NORM="$CXX_O_FLAG_NORM"
|
|
||||||
JAVAC_FLAGS="$JAVAC_FLAGS -g"
|
JAVAC_FLAGS="$JAVAC_FLAGS -g"
|
||||||
;;
|
;;
|
||||||
slowdebug )
|
release )
|
||||||
CFLAGS_JDK="$CFLAGS_JDK $CFLAGS_DEBUG_SYMBOLS"
|
;;
|
||||||
CXXFLAGS_JDK="$CXXFLAGS_JDK $CXXFLAGS_DEBUG_SYMBOLS"
|
* )
|
||||||
C_O_FLAG_HI="$C_O_FLAG_NONE"
|
as_fn_error $? "Unrecognized \$DEBUG_LEVEL: $DEBUG_LEVEL" "$LINENO" 5
|
||||||
C_O_FLAG_NORM="$C_O_FLAG_NONE"
|
|
||||||
CXX_O_FLAG_HI="$CXX_O_FLAG_NONE"
|
|
||||||
CXX_O_FLAG_NORM="$CXX_O_FLAG_NONE"
|
|
||||||
JAVAC_FLAGS="$JAVAC_FLAGS -g"
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Setup LP64
|
# Setup LP64
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK $ADD_LP64"
|
||||||
|
|
||||||
# Set some common defines. These works for all compilers, but assume
|
# Set some common defines. These works for all compilers, but assume
|
||||||
# -D is universally accepted.
|
# -D is universally accepted.
|
||||||
@ -41742,49 +42088,49 @@ fi
|
|||||||
# Note: -Dmacro is the same as #define macro 1
|
# Note: -Dmacro is the same as #define macro 1
|
||||||
# -Dmacro= is the same as #define macro
|
# -Dmacro= is the same as #define macro
|
||||||
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN="
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_LITTLE_ENDIAN="
|
||||||
else
|
else
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_LITTLE_ENDIAN"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# Same goes for _BIG_ENDIAN. Do we really need to set *ENDIAN on Solaris if they
|
# Same goes for _BIG_ENDIAN. Do we really need to set *ENDIAN on Solaris if they
|
||||||
# are defined in the system?
|
# are defined in the system?
|
||||||
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN="
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN="
|
||||||
else
|
else
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Setup target OS define. Use OS target name but in upper case.
|
# Setup target OS define. Use OS target name but in upper case.
|
||||||
OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D$OPENJDK_TARGET_OS_UPPERCASE"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D$OPENJDK_TARGET_OS_UPPERCASE"
|
||||||
|
|
||||||
# Setup target CPU
|
# Setup target CPU
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY"
|
||||||
|
|
||||||
# Setup debug/release defines
|
# Setup debug/release defines
|
||||||
if test "x$DEBUG_LEVEL" = xrelease; then
|
if test "x$DEBUG_LEVEL" = xrelease; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DNDEBUG"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DNDEBUG"
|
||||||
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DTRIMMED"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DTRIMMED"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DDEBUG"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DDEBUG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Setup release name
|
# Setup release name
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DRELEASE='\"\$(RELEASE)\"'"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DRELEASE='\"\$(RELEASE)\"'"
|
||||||
|
|
||||||
|
|
||||||
# Set some additional per-OS defines.
|
# Set some additional per-OS defines.
|
||||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
|
||||||
elif test "x$OPENJDK_TARGET_OS" = xaix; then
|
elif test "x$OPENJDK_TARGET_OS" = xaix; then
|
||||||
# FIXME: PPC64 should not be here.
|
# FIXME: PPC64 should not be here.
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DPPC64"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DPPC64"
|
||||||
elif test "x$OPENJDK_TARGET_OS" = xbsd; then
|
elif test "x$OPENJDK_TARGET_OS" = xbsd; then
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_ALLBSD_SOURCE"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_ALLBSD_SOURCE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Additional macosx handling
|
# Additional macosx handling
|
||||||
@ -41803,13 +42149,13 @@ fi
|
|||||||
# The macro takes the version with no dots, ex: 1070
|
# The macro takes the version with no dots, ex: 1070
|
||||||
# Let the flags variables get resolved in make for easier override on make
|
# Let the flags variables get resolved in make for easier override on make
|
||||||
# command line.
|
# command line.
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
|
||||||
LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
|
LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Setup some hard coded includes
|
# Setup some hard coded includes
|
||||||
CCXXFLAGS_JDK="$CCXXFLAGS_JDK \
|
COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK \
|
||||||
-I${JDK_OUTPUTDIR}/include \
|
-I${JDK_OUTPUTDIR}/include \
|
||||||
-I${JDK_OUTPUTDIR}/include/$OPENJDK_TARGET_OS \
|
-I${JDK_OUTPUTDIR}/include/$OPENJDK_TARGET_OS \
|
||||||
-I${JDK_TOPDIR}/src/share/javavm/export \
|
-I${JDK_TOPDIR}/src/share/javavm/export \
|
||||||
@ -41818,12 +42164,12 @@ fi
|
|||||||
-I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_API_DIR/native/common"
|
-I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_API_DIR/native/common"
|
||||||
|
|
||||||
# The shared libraries are compiled using the picflag.
|
# The shared libraries are compiled using the picflag.
|
||||||
CFLAGS_JDKLIB="$CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
|
CFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
|
||||||
CXXFLAGS_JDKLIB="$CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA "
|
CXXFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA "
|
||||||
|
|
||||||
# Executable flags
|
# Executable flags
|
||||||
CFLAGS_JDKEXE="$CCXXFLAGS_JDK $CFLAGS_JDK"
|
CFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK"
|
||||||
CXXFLAGS_JDKEXE="$CCXXFLAGS_JDK $CXXFLAGS_JDK"
|
CXXFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -41832,6 +42178,7 @@ fi
|
|||||||
|
|
||||||
# Setup LDFLAGS et al.
|
# Setup LDFLAGS et al.
|
||||||
#
|
#
|
||||||
|
|
||||||
# Now this is odd. The JDK native libraries have to link against libjvm.so
|
# Now this is odd. The JDK native libraries have to link against libjvm.so
|
||||||
# On 32-bit machines there is normally two distinct libjvm.so:s, client and server.
|
# On 32-bit machines there is normally two distinct libjvm.so:s, client and server.
|
||||||
# Which should we link to? Are we lucky enough that the binary api to the libjvm.so library
|
# Which should we link to? Are we lucky enough that the binary api to the libjvm.so library
|
||||||
@ -41847,39 +42194,94 @@ fi
|
|||||||
fi
|
fi
|
||||||
# TODO: make -debug optional "--disable-full-debug-symbols"
|
# TODO: make -debug optional "--disable-full-debug-symbols"
|
||||||
LDFLAGS_JDK="$LDFLAGS_JDK -debug"
|
LDFLAGS_JDK="$LDFLAGS_JDK -debug"
|
||||||
LDFLAGS_JDKLIB="${LDFLAGS_JDK} -dll -libpath:${JDK_OUTPUTDIR}/lib"
|
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
LDFLAGS_JDKLIB_SUFFIX=""
|
# If this is a --hash-style=gnu system, use --hash-style=both, why?
|
||||||
|
# We have previously set HAS_GNU_HASH if this is the case
|
||||||
|
if test -n "$HAS_GNU_HASH"; then
|
||||||
|
LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker --hash-style=both"
|
||||||
|
fi
|
||||||
|
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
||||||
|
# And since we now know that the linker is gnu, then add -z defs, to forbid
|
||||||
|
# undefined symbols in object files.
|
||||||
|
LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker -z -Xlinker defs"
|
||||||
|
case $DEBUG_LEVEL in
|
||||||
|
release )
|
||||||
|
# tell linker to optimize libraries.
|
||||||
|
# Should this be supplied to the OSS linker as well?
|
||||||
|
LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker -O1"
|
||||||
|
;;
|
||||||
|
slowdebug )
|
||||||
|
if test "x$HAS_LINKER_NOW" = "xtrue"; then
|
||||||
|
# do relocations at load
|
||||||
|
LDFLAGS_JDK="$LDFLAGS_JDK $LINKER_NOW_FLAG"
|
||||||
|
LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK $LINKER_NOW_FLAG"
|
||||||
|
fi
|
||||||
|
if test "x$HAS_LINKER_RELRO" = "xtrue"; then
|
||||||
|
# mark relocations read only
|
||||||
|
LDFLAGS_JDK="$LDFLAGS_JDK $LINKER_RELRO_FLAG"
|
||||||
|
LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK $LINKER_RELRO_FLAG"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
fastdebug )
|
||||||
|
if test "x$HAS_LINKER_RELRO" = "xtrue"; then
|
||||||
|
# mark relocations read only
|
||||||
|
LDFLAGS_JDK="$LDFLAGS_JDK $LINKER_RELRO_FLAG"
|
||||||
|
LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK $LINKER_RELRO_FLAG"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
as_fn_error $? "Unrecognized \$DEBUG_LEVEL: $DEBUG_LEVEL" "$LINENO" 5
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
|
LDFLAGS_JDK="$LDFLAGS_JDK -z defs -xildoff -ztext"
|
||||||
|
LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
|
# If undefined behaviour detection is enabled then we need to tell linker.
|
||||||
|
case $DEBUG_LEVEL in
|
||||||
|
release | fastdebug )
|
||||||
|
;;
|
||||||
|
slowdebug )
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR" >&5
|
||||||
|
$as_echo "$as_me: WARNING: $HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR" >&2;}
|
||||||
|
if test "x$HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR" = "xtrue"; then
|
||||||
|
# enable undefined behaviour checking
|
||||||
|
LDFLAGS_JDK="$LDFLAGS_JDK `$ECHO -n $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG | sed -e "s/ *\(^ \+\)/ -Xlinker \1/g"`"
|
||||||
|
LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK `$ECHO -n $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG | sed -e "s/ *\(^ \+\)/ -Xlinker \1/g"`"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
as_fn_error $? "Unrecognized \$DEBUG_LEVEL: $DEBUG_LEVEL" "$LINENO" 5
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Customize LDFLAGS for executables
|
||||||
|
|
||||||
|
LDFLAGS_JDKEXE="${LDFLAGS_JDK}"
|
||||||
|
|
||||||
|
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
if test "x$OPENJDK_TARGET_CPU_BITS" = "x64"; then
|
if test "x$OPENJDK_TARGET_CPU_BITS" = "x64"; then
|
||||||
LDFLAGS_STACK_SIZE=1048576
|
LDFLAGS_STACK_SIZE=1048576
|
||||||
else
|
else
|
||||||
LDFLAGS_STACK_SIZE=327680
|
LDFLAGS_STACK_SIZE=327680
|
||||||
fi
|
fi
|
||||||
LDFLAGS_JDKEXE="${LDFLAGS_JDK} /STACK:$LDFLAGS_STACK_SIZE"
|
LDFLAGS_JDKEXE="${LDFLAGS_JDKEXE} /STACK:$LDFLAGS_STACK_SIZE"
|
||||||
|
elif test "x$OPENJDK_TARGET_OS" = xlinux; then
|
||||||
|
LDFLAGS_JDKEXE="$LDFLAGS_JDKEXE -Xlinker --allow-shlib-undefined"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Customize LDFLAGS for libs
|
||||||
|
LDFLAGS_JDKLIB="${LDFLAGS_JDK}"
|
||||||
|
|
||||||
|
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||||
|
LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} -dll -libpath:${JDK_OUTPUTDIR}/lib"
|
||||||
|
LDFLAGS_JDKLIB_SUFFIX=""
|
||||||
else
|
else
|
||||||
if test "x$TOOLCHAIN_TYPE" = xgcc; then
|
LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} ${SHARED_LIBRARY_FLAGS} \
|
||||||
# If this is a --hash-style=gnu system, use --hash-style=both, why?
|
|
||||||
# We have previously set HAS_GNU_HASH if this is the case
|
|
||||||
if test -n "$HAS_GNU_HASH"; then
|
|
||||||
LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker --hash-style=both "
|
|
||||||
fi
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
|
||||||
# And since we now know that the linker is gnu, then add -z defs, to forbid
|
|
||||||
# undefined symbols in object files.
|
|
||||||
LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker -z -Xlinker defs"
|
|
||||||
if test "x$DEBUG_LEVEL" = "xrelease"; then
|
|
||||||
# When building release libraries, tell the linker optimize them.
|
|
||||||
# Should this be supplied to the OSS linker as well?
|
|
||||||
LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker -O1"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
|
||||||
LDFLAGS_JDK="$LDFLAGS_JDK -z defs -xildoff -ztext"
|
|
||||||
LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LDFLAGS_JDKLIB="${LDFLAGS_JDK} $SHARED_LIBRARY_FLAGS \
|
|
||||||
-L${JDK_OUTPUTDIR}/lib${OPENJDK_TARGET_CPU_LIBDIR}"
|
-L${JDK_OUTPUTDIR}/lib${OPENJDK_TARGET_CPU_LIBDIR}"
|
||||||
|
|
||||||
# On some platforms (mac) the linker warns about non existing -L dirs.
|
# On some platforms (mac) the linker warns about non existing -L dirs.
|
||||||
@ -41900,11 +42302,6 @@ fi
|
|||||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||||
LDFLAGS_JDKLIB_SUFFIX="$LDFLAGS_JDKLIB_SUFFIX -lc"
|
LDFLAGS_JDKLIB_SUFFIX="$LDFLAGS_JDKLIB_SUFFIX -lc"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LDFLAGS_JDKEXE="${LDFLAGS_JDK}"
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
|
||||||
LDFLAGS_JDKEXE="$LDFLAGS_JDKEXE -Xlinker --allow-shlib-undefined"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,11 +24,11 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# This file is responsible for detecting, verifying and setting up the
|
# This file is responsible for detecting, verifying and setting up the
|
||||||
# toolchain, i.e. the compiler, linker and related utilities. It will setup
|
# toolchain, i.e. the compiler, linker and related utilities. It will setup
|
||||||
# proper paths to the binaries, but it will not setup any flags.
|
# proper paths to the binaries, but it will not setup any flags.
|
||||||
#
|
#
|
||||||
# The binaries used is determined by the toolchain type, which is the family of
|
# The binaries used is determined by the toolchain type, which is the family of
|
||||||
# compilers and related tools that are used.
|
# compilers and related tools that are used.
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_FILENAME_PATTERNS],
|
|||||||
AC_SUBST(SHARED_LIBRARY)
|
AC_SUBST(SHARED_LIBRARY)
|
||||||
AC_SUBST(STATIC_LIBRARY)
|
AC_SUBST(STATIC_LIBRARY)
|
||||||
AC_SUBST(OBJ_SUFFIX)
|
AC_SUBST(OBJ_SUFFIX)
|
||||||
AC_SUBST(EXE_SUFFIX)
|
AC_SUBST(EXE_SUFFIX)
|
||||||
])
|
])
|
||||||
|
|
||||||
# Determine which toolchain type to use, and make sure it is valid for this
|
# Determine which toolchain type to use, and make sure it is valid for this
|
||||||
@ -117,7 +117,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
|
|||||||
# 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
|
fi
|
||||||
|
|
||||||
if test "x$with_toolchain_type" = xlist; then
|
if test "x$with_toolchain_type" = xlist; then
|
||||||
# List all toolchains
|
# List all toolchains
|
||||||
AC_MSG_NOTICE([The following toolchains are valid on this platform:])
|
AC_MSG_NOTICE([The following toolchains are valid on this platform:])
|
||||||
@ -126,7 +126,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
|
|||||||
TOOLCHAIN_DESCRIPTION=${!toolchain_var_name}
|
TOOLCHAIN_DESCRIPTION=${!toolchain_var_name}
|
||||||
$PRINTF " %-10s %s\n" $toolchain "$TOOLCHAIN_DESCRIPTION"
|
$PRINTF " %-10s %s\n" $toolchain "$TOOLCHAIN_DESCRIPTION"
|
||||||
done
|
done
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
elif test "x$with_toolchain_type" != x; then
|
elif test "x$with_toolchain_type" != x; then
|
||||||
# User override; check that it is valid
|
# User override; check that it is valid
|
||||||
@ -168,10 +168,10 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
|
|||||||
AC_MSG_NOTICE([Using default toolchain $TOOLCHAIN_TYPE ($TOOLCHAIN_DESCRIPTION)])
|
AC_MSG_NOTICE([Using default toolchain $TOOLCHAIN_TYPE ($TOOLCHAIN_DESCRIPTION)])
|
||||||
else
|
else
|
||||||
AC_MSG_NOTICE([Using user selected toolchain $TOOLCHAIN_TYPE ($TOOLCHAIN_DESCRIPTION). Default toolchain is $DEFAULT_TOOLCHAIN.])
|
AC_MSG_NOTICE([Using user selected toolchain $TOOLCHAIN_TYPE ($TOOLCHAIN_DESCRIPTION). Default toolchain is $DEFAULT_TOOLCHAIN.])
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
# Before we start detecting the toolchain executables, we might need some
|
# Before we start detecting the toolchain executables, we might need some
|
||||||
# special setup, e.g. additional paths etc.
|
# special setup, e.g. additional paths etc.
|
||||||
AC_DEFUN_ONCE([TOOLCHAIN_PRE_DETECTION],
|
AC_DEFUN_ONCE([TOOLCHAIN_PRE_DETECTION],
|
||||||
[
|
[
|
||||||
@ -184,7 +184,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_PRE_DETECTION],
|
|||||||
ORG_OBJCFLAGS="$OBJCFLAGS"
|
ORG_OBJCFLAGS="$OBJCFLAGS"
|
||||||
|
|
||||||
# On Windows, we need to detect the visual studio installation first.
|
# On Windows, we need to detect the visual studio installation first.
|
||||||
# This will change the PATH, but we need to keep that new PATH even
|
# This will change the PATH, but we need to keep that new PATH even
|
||||||
# after toolchain detection is done, since the compiler (on x86) uses
|
# after toolchain detection is done, since the compiler (on x86) uses
|
||||||
# it for DLL resolution in runtime.
|
# it for DLL resolution in runtime.
|
||||||
if test "x$OPENJDK_BUILD_OS" = "xwindows" && test "x$TOOLCHAIN_TYPE" = "xmicrosoft"; then
|
if test "x$OPENJDK_BUILD_OS" = "xwindows" && test "x$TOOLCHAIN_TYPE" = "xmicrosoft"; then
|
||||||
@ -208,7 +208,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_PRE_DETECTION],
|
|||||||
PATH="/usr/ccs/bin:$PATH"
|
PATH="/usr/ccs/bin:$PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Finally add TOOLCHAIN_PATH at the beginning, to allow --with-tools-dir to
|
# Finally add TOOLCHAIN_PATH at the beginning, to allow --with-tools-dir to
|
||||||
# override all other locations.
|
# override all other locations.
|
||||||
if test "x$TOOLCHAIN_PATH" != x; then
|
if test "x$TOOLCHAIN_PATH" != x; then
|
||||||
PATH=$TOOLCHAIN_PATH:$PATH
|
PATH=$TOOLCHAIN_PATH:$PATH
|
||||||
@ -254,7 +254,7 @@ AC_DEFUN([TOOLCHAIN_CHECK_COMPILER_VERSION],
|
|||||||
AC_MSG_NOTICE([The result from running with --version was: "$ALT_VERSION_OUTPUT"])
|
AC_MSG_NOTICE([The result from running with --version was: "$ALT_VERSION_OUTPUT"])
|
||||||
AC_MSG_ERROR([A $TOOLCHAIN_TYPE compiler is required. Try setting --with-tools-dir.])
|
AC_MSG_ERROR([A $TOOLCHAIN_TYPE compiler is required. Try setting --with-tools-dir.])
|
||||||
fi
|
fi
|
||||||
# Remove usage instructions (if present), and
|
# Remove usage instructions (if present), and
|
||||||
# collapse compiler output into a single line
|
# collapse compiler output into a single line
|
||||||
COMPILER_VERSION_STRING=`$ECHO $COMPILER_VERSION_OUTPUT | \
|
COMPILER_VERSION_STRING=`$ECHO $COMPILER_VERSION_OUTPUT | \
|
||||||
$SED -e 's/ *@<:@Uu@:>@sage:.*//'`
|
$SED -e 's/ *@<:@Uu@:>@sage:.*//'`
|
||||||
@ -282,7 +282,7 @@ AC_DEFUN([TOOLCHAIN_CHECK_COMPILER_VERSION],
|
|||||||
# There is no specific version flag, but all output starts with a version string.
|
# There is no specific version flag, but all output starts with a version string.
|
||||||
# First line typically looks something like:
|
# First line typically looks something like:
|
||||||
# Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
|
# Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
|
||||||
COMPILER_VERSION_OUTPUT=`$COMPILER 2>&1 | $HEAD -n 1 | $TR -d '\r'`
|
COMPILER_VERSION_OUTPUT=`$COMPILER 2>&1 | $HEAD -n 1 | $TR -d '\r'`
|
||||||
# Check that this is likely to be Microsoft CL.EXE.
|
# Check that this is likely to be Microsoft CL.EXE.
|
||||||
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "Microsoft.*Compiler" > /dev/null
|
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "Microsoft.*Compiler" > /dev/null
|
||||||
if test $? -ne 0; then
|
if test $? -ne 0; then
|
||||||
@ -360,7 +360,7 @@ AC_DEFUN([TOOLCHAIN_FIND_COMPILER],
|
|||||||
AC_MSG_NOTICE([Will use user supplied compiler $1=[$]$1])
|
AC_MSG_NOTICE([Will use user supplied compiler $1=[$]$1])
|
||||||
if test "x`basename [$]$1`" = "x[$]$1"; then
|
if test "x`basename [$]$1`" = "x[$]$1"; then
|
||||||
# A command without a complete path is provided, search $PATH.
|
# A command without a complete path is provided, search $PATH.
|
||||||
|
|
||||||
AC_PATH_PROGS(POTENTIAL_$1, [$]$1)
|
AC_PATH_PROGS(POTENTIAL_$1, [$]$1)
|
||||||
if test "x$POTENTIAL_$1" != x; then
|
if test "x$POTENTIAL_$1" != x; then
|
||||||
$1=$POTENTIAL_$1
|
$1=$POTENTIAL_$1
|
||||||
@ -375,12 +375,12 @@ AC_DEFUN([TOOLCHAIN_FIND_COMPILER],
|
|||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# No user supplied value. Locate compiler ourselves.
|
# No user supplied value. Locate compiler ourselves.
|
||||||
|
|
||||||
# If we are cross compiling, assume cross compilation tools follows the
|
# If we are cross compiling, assume cross compilation tools follows the
|
||||||
# cross compilation standard where they are prefixed with the autoconf
|
# cross compilation standard where they are prefixed with the autoconf
|
||||||
# standard name for the target. For example the binary
|
# standard name for the target. For example the binary
|
||||||
# i686-sun-solaris2.10-gcc will cross compile for i686-sun-solaris2.10.
|
# i686-sun-solaris2.10-gcc will cross compile for i686-sun-solaris2.10.
|
||||||
# If we are not cross compiling, then the default compiler name will be
|
# If we are not cross compiling, then the default compiler name will be
|
||||||
# used.
|
# used.
|
||||||
|
|
||||||
$1=
|
$1=
|
||||||
@ -450,9 +450,9 @@ AC_DEFUN([TOOLCHAIN_FIND_COMPILER],
|
|||||||
TOOLCHAIN_CHECK_COMPILER_VERSION([$1], [$COMPILER_NAME])
|
TOOLCHAIN_CHECK_COMPILER_VERSION([$1], [$COMPILER_NAME])
|
||||||
])
|
])
|
||||||
|
|
||||||
# Detect the core components of the toolchain, i.e. the compilers (CC and CXX),
|
# Detect the core components of the toolchain, i.e. the compilers (CC and CXX),
|
||||||
# preprocessor (CPP and CXXCPP), the linker (LD), the assembler (AS) and the
|
# preprocessor (CPP and CXXCPP), the linker (LD), the assembler (AS) and the
|
||||||
# archiver (AR). Verify that the compilers are correct according to the
|
# archiver (AR). Verify that the compilers are correct according to the
|
||||||
# toolchain type.
|
# toolchain type.
|
||||||
AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
|
AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
|
||||||
[
|
[
|
||||||
@ -529,7 +529,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
|
|||||||
])
|
])
|
||||||
|
|
||||||
# Setup additional tools that is considered a part of the toolchain, but not the
|
# Setup additional tools that is considered a part of the toolchain, but not the
|
||||||
# core part. Many of these are highly platform-specific and do not exist,
|
# core part. Many of these are highly platform-specific and do not exist,
|
||||||
# and/or are not needed on all platforms.
|
# and/or are not needed on all platforms.
|
||||||
AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_EXTRA],
|
AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_EXTRA],
|
||||||
[
|
[
|
||||||
@ -551,7 +551,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_EXTRA],
|
|||||||
AC_CHECK_PROG([DUMPBIN], [dumpbin], [dumpbin],,,)
|
AC_CHECK_PROG([DUMPBIN], [dumpbin], [dumpbin],,,)
|
||||||
BASIC_FIXUP_EXECUTABLE(DUMPBIN)
|
BASIC_FIXUP_EXECUTABLE(DUMPBIN)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||||||
BASIC_PATH_PROGS(STRIP, strip)
|
BASIC_PATH_PROGS(STRIP, strip)
|
||||||
BASIC_FIXUP_EXECUTABLE(STRIP)
|
BASIC_FIXUP_EXECUTABLE(STRIP)
|
||||||
@ -559,7 +559,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_EXTRA],
|
|||||||
BASIC_FIXUP_EXECUTABLE(NM)
|
BASIC_FIXUP_EXECUTABLE(NM)
|
||||||
BASIC_PATH_PROGS(GNM, gnm)
|
BASIC_PATH_PROGS(GNM, gnm)
|
||||||
BASIC_FIXUP_EXECUTABLE(GNM)
|
BASIC_FIXUP_EXECUTABLE(GNM)
|
||||||
|
|
||||||
BASIC_PATH_PROGS(MCS, mcs)
|
BASIC_PATH_PROGS(MCS, mcs)
|
||||||
BASIC_FIXUP_EXECUTABLE(MCS)
|
BASIC_FIXUP_EXECUTABLE(MCS)
|
||||||
elif test "x$OPENJDK_TARGET_OS" != xwindows; then
|
elif test "x$OPENJDK_TARGET_OS" != xwindows; then
|
||||||
@ -592,17 +592,17 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_EXTRA],
|
|||||||
|
|
||||||
# Setup the build tools (i.e, the compiler and linker used to build programs
|
# Setup the build tools (i.e, the compiler and linker used to build programs
|
||||||
# that should be run on the build platform, not the target platform, as a build
|
# that should be run on the build platform, not the target platform, as a build
|
||||||
# helper). Since the non-cross-compile case uses the normal, target compilers
|
# helper). Since the non-cross-compile case uses the normal, target compilers
|
||||||
# for this, we can only do this after these have been setup.
|
# for this, we can only do this after these have been setup.
|
||||||
AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
|
AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
|
||||||
[
|
[
|
||||||
if test "x$COMPILE_TYPE" = "xcross"; then
|
if test "x$COMPILE_TYPE" = "xcross"; then
|
||||||
# Now we need to find a C/C++ compiler that can build executables for the
|
# Now we need to find a C/C++ compiler that can build executables for the
|
||||||
# build platform. We can't use the AC_PROG_CC macro, since it can only be
|
# build platform. We can't use the AC_PROG_CC macro, since it can only be
|
||||||
# used once. Also, we need to do this without adding a tools dir to the
|
# used once. Also, we need to do this without adding a tools dir to the
|
||||||
# path, otherwise we might pick up cross-compilers which don't use standard
|
# path, otherwise we might pick up cross-compilers which don't use standard
|
||||||
# naming.
|
# naming.
|
||||||
|
|
||||||
# FIXME: we should list the discovered compilers as an exclude pattern!
|
# FIXME: we should list the discovered compilers as an exclude pattern!
|
||||||
# If we do that, we can do this detection before POST_DETECTION, and still
|
# If we do that, we can do this detection before POST_DETECTION, and still
|
||||||
# find the build compilers in the tools dir, if needed.
|
# find the build compilers in the tools dir, if needed.
|
||||||
@ -690,15 +690,39 @@ AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
|
|||||||
# If this is a --hash-style=gnu system, use --hash-style=both, why?
|
# If this is a --hash-style=gnu system, use --hash-style=both, why?
|
||||||
HAS_GNU_HASH=`$CC -dumpspecs 2>/dev/null | $GREP 'hash-style=gnu'`
|
HAS_GNU_HASH=`$CC -dumpspecs 2>/dev/null | $GREP 'hash-style=gnu'`
|
||||||
# This is later checked when setting flags.
|
# This is later checked when setting flags.
|
||||||
|
|
||||||
|
# "-Og" suppported for GCC 4.8 and later
|
||||||
|
CFLAG_OPTIMIZE_DEBUG_FLAG="-Og"
|
||||||
|
FLAGS_COMPILER_CHECK_ARGUMENTS([$CFLAG_OPTIMIZE_DEBUG_FLAG],
|
||||||
|
[HAS_CFLAG_OPTIMIZE_DEBUG=true],
|
||||||
|
[HAS_CFLAG_OPTIMIZE_DEBUG=false])
|
||||||
|
|
||||||
|
# "-fsanitize=undefined" supported for GCC 4.9 and later
|
||||||
|
CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG="-fsanitize=undefined -fsanitize-recover"
|
||||||
|
FLAGS_COMPILER_CHECK_ARGUMENTS([$CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG],
|
||||||
|
[HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR=true],
|
||||||
|
[HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR=false])
|
||||||
|
|
||||||
|
# "-z relro" supported in GNU binutils 2.17 and later
|
||||||
|
LINKER_RELRO_FLAG="-Xlinker -z -Xlinker relro"
|
||||||
|
FLAGS_LINKER_CHECK_ARGUMENTS([$LINKER_RELRO_FLAG],
|
||||||
|
[HAS_LINKER_RELRO=true],
|
||||||
|
[HAS_LINKER_RELRO=false])
|
||||||
|
|
||||||
|
# "-z now" supported in GNU binutils 2.11 and later
|
||||||
|
LINKER_NOW_FLAG="-Xlinker -z -Xlinker now"
|
||||||
|
FLAGS_LINKER_CHECK_ARGUMENTS([$LINKER_NOW_FLAG],
|
||||||
|
[HAS_LINKER_NOW=true],
|
||||||
|
[HAS_LINKER_NOW=false])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check for broken SuSE 'ld' for which 'Only anonymous version tag is allowed
|
# Check for broken SuSE 'ld' for which 'Only anonymous version tag is allowed
|
||||||
# in executable.'
|
# in executable.'
|
||||||
USING_BROKEN_SUSE_LD=no
|
USING_BROKEN_SUSE_LD=no
|
||||||
if test "x$OPENJDK_TARGET_OS" = xlinux && test "x$TOOLCHAIN_TYPE" = xgcc; then
|
if test "x$OPENJDK_TARGET_OS" = xlinux && test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
AC_MSG_CHECKING([for broken SuSE 'ld' which only understands anonymous version tags in executables])
|
AC_MSG_CHECKING([for broken SuSE 'ld' which only understands anonymous version tags in executables])
|
||||||
echo "SUNWprivate_1.1 { local: *; };" > version-script.map
|
$ECHO "SUNWprivate_1.1 { local: *; };" > version-script.map
|
||||||
echo "int main() { }" > main.c
|
$ECHO "int main() { }" > main.c
|
||||||
if $CXX -Xlinker -version-script=version-script.map main.c 2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD; then
|
if $CXX -Xlinker -version-script=version-script.map main.c 2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD; then
|
||||||
AC_MSG_RESULT(no)
|
AC_MSG_RESULT(no)
|
||||||
USING_BROKEN_SUSE_LD=no
|
USING_BROKEN_SUSE_LD=no
|
||||||
|
Loading…
x
Reference in New Issue
Block a user