< prev index next >
make/autoconf/flags-cflags.m4
Print this page
rev 59383 : [mq]: final
*** 33,54 ****
# How to compile shared libraries.
#
AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
[
if test "x$TOOLCHAIN_TYPE" = xgcc; then
- C_FLAG_REORDER=''
-
# Default works for linux, might work on other platforms as well.
SHARED_LIBRARY_FLAGS='-shared'
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
elif test "x$TOOLCHAIN_TYPE" = xclang; then
- C_FLAG_REORDER=''
-
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
# Linking is different on MacOSX
SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0"
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path$(or [$]1,/.)'
SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
--- 33,50 ----
*** 69,104 ****
else
SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
fi
fi
- elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- C_FLAG_REORDER='-xF'
- SHARED_LIBRARY_FLAGS="-G"
- SET_EXECUTABLE_ORIGIN='-R\$$ORIGIN[$]1'
- SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
- SET_SHARED_LIBRARY_NAME='-h [$]1'
- SET_SHARED_LIBRARY_MAPFILE='-M[$]1'
-
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
- C_FLAG_REORDER=''
SHARED_LIBRARY_FLAGS="-qmkshrobj -bM:SRE -bnoentry"
SET_EXECUTABLE_ORIGIN=""
SET_SHARED_LIBRARY_ORIGIN=''
SET_SHARED_LIBRARY_NAME=''
SET_SHARED_LIBRARY_MAPFILE=''
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
- C_FLAG_REORDER=''
SHARED_LIBRARY_FLAGS="-dll"
SET_EXECUTABLE_ORIGIN=''
SET_SHARED_LIBRARY_ORIGIN=''
SET_SHARED_LIBRARY_NAME=''
SET_SHARED_LIBRARY_MAPFILE='-def:[$]1'
fi
- AC_SUBST(C_FLAG_REORDER)
AC_SUBST(SET_EXECUTABLE_ORIGIN)
AC_SUBST(SET_SHARED_LIBRARY_ORIGIN)
AC_SUBST(SET_SHARED_LIBRARY_NAME)
AC_SUBST(SET_SHARED_LIBRARY_MAPFILE)
AC_SUBST(SHARED_LIBRARY_FLAGS)
--- 65,89 ----
*** 115,127 ****
CFLAGS_DEBUG_SYMBOLS="-g"
ASFLAGS_DEBUG_SYMBOLS="-g"
elif test "x$TOOLCHAIN_TYPE" = xclang; then
CFLAGS_DEBUG_SYMBOLS="-g"
ASFLAGS_DEBUG_SYMBOLS="-g"
- elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- # -g0 enables debug symbols without disabling inlining.
- CFLAGS_DEBUG_SYMBOLS="-g0 -xs"
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
CFLAGS_DEBUG_SYMBOLS="-g1"
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
CFLAGS_DEBUG_SYMBOLS="-Z7"
fi
--- 100,109 ----
*** 152,172 ****
WARNINGS_ENABLE_ALL="-W3"
DISABLED_WARNINGS="4800"
;;
- solstudio)
- DISABLE_WARNING_PREFIX="-erroff="
- CFLAGS_WARNINGS_ARE_ERRORS="-errwarn=%all"
-
- WARNINGS_ENABLE_ALL_CFLAGS="-v -fd -xtransition"
- WARNINGS_ENABLE_ALL_CXXFLAGS="+w +w2"
-
- DISABLED_WARNINGS_C="E_OLD_STYLE_FUNC_DECL E_OLD_STYLE_FUNC_DEF E_SEMANTICS_OF_OP_CHG_IN_ANSI_C E_NO_REPLACEMENT_IN_STRING E_DECLARATION_IN_CODE"
- DISABLED_WARNINGS_CXX="inllargeuse inllargeint notused wemptydecl notemsource"
- ;;
-
gcc)
DISABLE_WARNING_PREFIX="-Wno-"
CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
# Additional warnings that are not activated by -Wall and -Wextra
--- 134,143 ----
*** 242,270 ****
fi
])
AC_DEFUN([FLAGS_SETUP_OPTIMIZATION],
[
! if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
! CC_HIGHEST="-fns -fsimple -fsingle -xbuiltin=%all -xdepend -xrestrict -xlibmil"
!
! C_O_FLAG_HIGHEST_JVM="-xO4"
! C_O_FLAG_DEBUG_JVM=""
! C_O_FLAG_SIZE=""
! C_O_FLAG_DEBUG=""
! C_O_FLAG_NONE=""
! if test "x$OPENJDK_TARGET_CPU_ARCH" = "xx86"; then
! C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST"
! C_O_FLAG_HI="-xO4 -Wu,-O4~yz"
! C_O_FLAG_NORM="-xO2 -Wu,-O2~yz"
! elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then
! C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 \
! -xprefetch=auto,explicit $CC_HIGHEST"
! C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0"
! C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0"
! fi
! elif test "x$TOOLCHAIN_TYPE" = xgcc; then
C_O_FLAG_HIGHEST_JVM="-O3"
C_O_FLAG_HIGHEST="-O3"
C_O_FLAG_HI="-O3"
C_O_FLAG_NORM="-O2"
C_O_FLAG_SIZE="-Os"
--- 213,223 ----
fi
])
AC_DEFUN([FLAGS_SETUP_OPTIMIZATION],
[
! if test "x$TOOLCHAIN_TYPE" = xgcc; then
C_O_FLAG_HIGHEST_JVM="-O3"
C_O_FLAG_HIGHEST="-O3"
C_O_FLAG_HI="-O3"
C_O_FLAG_NORM="-O2"
C_O_FLAG_SIZE="-Os"
*** 332,346 ****
CXX_O_FLAG_DEBUG="$C_O_FLAG_DEBUG"
CXX_O_FLAG_DEBUG_JVM="$C_O_FLAG_DEBUG_JVM"
CXX_O_FLAG_NONE="$C_O_FLAG_NONE"
CXX_O_FLAG_SIZE="$C_O_FLAG_SIZE"
- if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- # In solstudio, also add this to C (but not C++) flags...
- C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xalias_level=basic"
- fi
-
# Adjust optimization flags according to debug level.
case $DEBUG_LEVEL in
release )
# no adjustment
;;
--- 285,294 ----
*** 429,441 ****
[
#### OS DEFINES, these should be independent on toolchain
if test "x$OPENJDK_TARGET_OS" = xlinux; then
CFLAGS_OS_DEF_JVM="-DLINUX"
CFLAGS_OS_DEF_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
- elif test "x$OPENJDK_TARGET_OS" = xsolaris; then
- CFLAGS_OS_DEF_JVM="-DSOLARIS"
- CFLAGS_OS_DEF_JDK="-D__solaris__"
elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
CFLAGS_OS_DEF_JVM="-D_ALLBSD_SOURCE -D_DARWIN_C_SOURCE -D_XOPEN_SOURCE"
CFLAGS_OS_DEF_JDK="-D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
elif test "x$OPENJDK_TARGET_OS" = xaix; then
CFLAGS_OS_DEF_JVM="-DAIX"
--- 377,386 ----
*** 467,479 ****
# Adjust flags according to debug level.
# Setup debug/release defines
if test "x$DEBUG_LEVEL" = xrelease; then
DEBUG_CFLAGS_JDK="-DNDEBUG"
- if test "x$OPENJDK_TARGET_OS" = xsolaris; then
- DEBUG_CFLAGS_JDK="$DEBUG_CFLAGS_JDK -DTRIMMED"
- fi
else
DEBUG_CFLAGS_JDK="-DDEBUG"
if test "x$TOOLCHAIN_TYPE" = xxlc; then
# We need '-qminimaltoc' or '-qpic=large -bbigtoc' if the TOC overflows.
--- 412,421 ----
*** 492,505 ****
if test "x$TOOLCHAIN_TYPE" = xgcc; then
ALWAYS_DEFINES_JVM="-D_GNU_SOURCE -D_REENTRANT"
elif test "x$TOOLCHAIN_TYPE" = xclang; then
ALWAYS_DEFINES_JVM="-D_GNU_SOURCE"
- elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- ALWAYS_DEFINES_JVM="-DSPARC_WORKS -D_Crun_inline_placement"
- ALWAYS_DEFINES_JDK="-DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS"
- ALWAYS_DEFINES_JDK_CXXONLY="-DCC_NOEX"
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
ALWAYS_DEFINES_JVM="-D_REENTRANT"
ALWAYS_DEFINES_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC"
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
ALWAYS_DEFINES_JDK="-DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_DEPRECATE \
--- 434,443 ----
*** 552,575 ****
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -mllvm -inlinehint-threshold=100000"
fi
TOOLCHAIN_CFLAGS_JDK="-pipe"
TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX
fi
- elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- TOOLCHAIN_FLAGS="-errtags -errfmt"
- TOOLCHAIN_CFLAGS="-errshort=tags"
-
- TOOLCHAIN_CFLAGS_JDK="-mt $TOOLCHAIN_FLAGS"
- TOOLCHAIN_CFLAGS_JDK_CONLY="-W0,-noglobal $TOOLCHAIN_CFLAGS" # C only
- TOOLCHAIN_CFLAGS_JDK_CXXONLY="-features=no%except -norunpath -xnolib" # CXX only
- TOOLCHAIN_CFLAGS_JVM="-template=no%extdef -features=no%split_init \
- -library=stlport4 -mt -features=no%except $TOOLCHAIN_FLAGS"
- if test "x$DEBUG_LEVEL" = xslowdebug; then
- # Previously -g was used instead of -g0 for slowdebug; this is equivalent
- # to setting +d.
- TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM +d"
- fi
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
# Suggested additions: -qsrcmsg to get improved error reporting
# set -qtbtable=full for a better traceback table/better stacks in hs_err when xlc16 is used
TOOLCHAIN_CFLAGS_JDK="-qtbtable=full -qchars=signed -qfullpath -qsaveopt -qstackprotect" # add on both CFLAGS
--- 490,499 ----
*** 586,600 ****
# our toolchains are in a condition to support that. But what we loosely aim for is
# C99 level.
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang || test "x$TOOLCHAIN_TYPE" = xxlc; then
# Explicitly set C99. clang and xlclang support the same flag.
LANGSTD_CFLAGS="-std=c99"
- elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- # We can't turn on -std=c99 without breaking compilation of the splashscreen/png
- # utilities. But we can enable c99 as below (previously achieved by using -Xa).
- # It is the no_lib that makes the difference.
- LANGSTD_CFLAGS="-xc99=all,no_lib"
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# MSVC doesn't support C99/C11 explicitly, unless you compile as C++:
# LANGSTD_CFLAGS="-TP"
# but that requires numerous changes to the sources files. So we are limited
# to C89/C90 plus whatever extensions Visual Studio has decided to implement.
--- 510,519 ----
*** 611,625 ****
WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL_CXXFLAGS"
elif test "x$TOOLCHAIN_TYPE" = xclang; then
WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
- elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
- WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
- WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL_CXXFLAGS"
-
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
WARNING_CFLAGS="" # currently left empty
--- 530,539 ----
*** 640,651 ****
# Where does this really belong??
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
PICFLAG="-fPIC"
PIEFLAG="-fPIE"
- elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- PICFLAG="-KPIC"
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
# '-qpic' defaults to 'qpic=small'. This means that the compiler generates only
# one instruction for accessing the TOC. If the TOC grows larger than 64K, the linker
# will have to patch this single instruction with a call to some out-of-order code which
# does the load from the TOC. This is of course slower, and we also would have
--- 554,563 ----
*** 723,748 ****
# Setup target CPU
# Setup endianness
if test "x$FLAGS_CPU_ENDIAN" = xlittle; then
$1_DEFINES_CPU_JVM="-DVM_LITTLE_ENDIAN"
- fi
- if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- # The macro _LITTLE_ENDIAN needs to be defined the same to avoid the
- # Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN
- if test "x$FLAGS_CPU_ENDIAN" = xlittle; then
- $1_DEFINES_CPU_JDK="-D_LITTLE_ENDIAN="
- else
- $1_DEFINES_CPU_JDK="-D_BIG_ENDIAN="
- fi
- else
- if test "x$FLAGS_CPU_ENDIAN" = xlittle; then
$1_DEFINES_CPU_JDK="-D_LITTLE_ENDIAN"
else
$1_DEFINES_CPU_JDK="-D_BIG_ENDIAN"
fi
- fi
# setup CPU bit size
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -DARCH='\"$FLAGS_CPU_LEGACY\"' \
-D$FLAGS_CPU_LEGACY"
--- 635,648 ----
*** 750,772 ****
# -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in
# unpack200.exe.
if test "x$FLAGS_OS" = xlinux || test "x$FLAGS_OS" = xmacosx; then
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_LP64=1"
fi
! if test "x$FLAGS_OS" != xsolaris && test "x$FLAGS_OS" != xaix; then
! # Solaris does not have _LP64=1 in the old build.
# xlc on AIX defines _LP64=1 by default and issues a warning if we redefine it.
$1_DEFINES_CPU_JVM="${$1_DEFINES_CPU_JVM} -D_LP64=1"
fi
fi
# toolchain dependend, per-cpu
! if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
! if test "x$FLAGS_CPU_ARCH" = xx86; then
! $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -DcpuIntel -Di586 -D$FLAGS_CPU_LEGACY_LIB"
! fi
! elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
if test "x$FLAGS_CPU" = xx86_64; then
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_AMD64_ -Damd64"
else
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_X86_ -Dx86"
fi
--- 650,667 ----
# -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in
# unpack200.exe.
if test "x$FLAGS_OS" = xlinux || test "x$FLAGS_OS" = xmacosx; then
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_LP64=1"
fi
! if test "x$FLAGS_OS" != xaix; then
# xlc on AIX defines _LP64=1 by default and issues a warning if we redefine it.
$1_DEFINES_CPU_JVM="${$1_DEFINES_CPU_JVM} -D_LP64=1"
fi
fi
# toolchain dependend, per-cpu
! if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
if test "x$FLAGS_CPU" = xx86_64; then
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_AMD64_ -Damd64"
else
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_X86_ -Dx86"
fi
*** 823,841 ****
# for all archs except arm and ppc, prevent gcc to omit frame pointer
$1_CFLAGS_CPU_JDK="${$1_CFLAGS_CPU_JDK} -fno-omit-frame-pointer"
fi
fi
- elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- if test "x$FLAGS_CPU" = xx86_64; then
- # NOTE: -xregs=no%frameptr is supposed to be default on x64
- $1_CFLAGS_CPU_JDK="-xregs=no%frameptr"
- elif test "x$FLAGS_CPU" = xsparcv9; then
- $1_CFLAGS_CPU_JVM="-xarch=sparc"
- $1_CFLAGS_CPU_JDK_LIBONLY="-xregs=no%appl"
- fi
-
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
if test "x$FLAGS_CPU" = xppc64; then
$1_CFLAGS_CPU_JVM="-qarch=ppc64"
fi
--- 718,727 ----
*** 953,981 ****
NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse"
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_LIFETIME_DSE_CFLAG],
PREFIX: $2, IF_FALSE: [NO_LIFETIME_DSE_CFLAG=""])
$1_GCC6_CFLAGS="${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}"
])
-
- # Documentation on common flags used for solstudio in HIGHEST.
- #
- # WARNING: Use of OPTIMIZATION_LEVEL=HIGHEST in your Makefile needs to be
- # done with care, there are some assumptions below that need to
- # be understood about the use of pointers, and IEEE behavior.
- #
- # -fns: Use non-standard floating point mode (not IEEE 754)
- # -fsimple: Do some simplification of floating point arithmetic (not IEEE 754)
- # -fsingle: Use single precision floating point with 'float'
- # -xalias_level=basic: Assume memory references via basic pointer types do not alias
- # (Source with excessing pointer casting and data access with mixed
- # pointer types are not recommended)
- # -xbuiltin=%all: Use intrinsic or inline versions for math/std functions
- # (If you expect perfect errno behavior, do not use this)
- # -xdepend: Loop data dependency optimizations (need -xO3 or higher)
- # -xrestrict: Pointer parameters to functions do not overlap
- # (Similar to -xalias_level=basic usage, but less obvious sometimes.
- # If you pass in multiple pointers to the same data, do not use this)
- # -xlibmil: Inline some library routines
- # (If you expect perfect errno behavior, do not use this)
- # -xlibmopt: Use optimized math routines (CURRENTLY DISABLED)
- # (If you expect perfect errno behavior, do not use this)
- # Can cause undefined external on Solaris 8 X86 on __sincos, removing for now
--- 839,843 ----
< prev index next >