common/autoconf/flags.m4

Print this page
rev 977 : JDK-8019470: Changes needed to compile JDK8 on MacOS with clang compiler
Reviewed-by:


 131   if test "x$TOOLCHAIN_TYPE" = xgcc; then
 132     PICFLAG="-fPIC"
 133     C_FLAG_REORDER=''
 134     CXX_FLAG_REORDER=''
 135 
 136     if test "x$OPENJDK_TARGET_OS" = xmacosx; then
 137       # Linking is different on MacOSX
 138       SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
 139       SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.'
 140       SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
 141       SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1'
 142       SET_SHARED_LIBRARY_MAPFILE=''
 143     else
 144       # Default works for linux, might work on other platforms as well.
 145       SHARED_LIBRARY_FLAGS='-shared'
 146       SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker \$$$$ORIGIN[$]1'
 147       SET_SHARED_LIBRARY_ORIGIN="-Xlinker -z -Xlinker origin $SET_EXECUTABLE_ORIGIN"
 148       SET_SHARED_LIBRARY_NAME='-Xlinker -soname=[$]1'
 149       SET_SHARED_LIBRARY_MAPFILE='-Xlinker -version-script=[$]1'
 150     fi




















 151   elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
 152     PICFLAG="-KPIC"
 153     C_FLAG_REORDER='-xF'
 154     CXX_FLAG_REORDER='-xF'
 155     SHARED_LIBRARY_FLAGS="-G"
 156     SET_EXECUTABLE_ORIGIN='-R\$$$$ORIGIN[$]1'
 157     SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
 158     SET_SHARED_LIBRARY_NAME=''
 159     SET_SHARED_LIBRARY_MAPFILE='-M[$]1'
 160   elif test "x$TOOLCHAIN_TYPE" = xxlc; then
 161     PICFLAG="-qpic=large"
 162     C_FLAG_REORDER=''
 163     CXX_FLAG_REORDER=''
 164     SHARED_LIBRARY_FLAGS="-qmkshrobj"
 165     SET_EXECUTABLE_ORIGIN=""
 166     SET_SHARED_LIBRARY_ORIGIN=''
 167     SET_SHARED_LIBRARY_NAME=''
 168     SET_SHARED_LIBRARY_MAPFILE=''
 169   elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
 170     PICFLAG=""


 225     #  CXXFLAGS_JDK="${CXXFLAGS_JDK} -xmemalign=4s"
 226     #fi
 227 
 228 AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
 229 [
 230 
 231   ###############################################################################
 232   #
 233   # Setup the opt flags for different compilers
 234   # and different operating systems.
 235   #
 236 
 237   # FIXME: this was indirectly the old default, but just inherited.
 238   # if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
 239   #   C_FLAG_DEPS="-MMD -MF"
 240   # fi
 241 
 242   # Generate make dependency files
 243   if test "x$TOOLCHAIN_TYPE" = xgcc; then
 244     C_FLAG_DEPS="-MMD -MF"


 245   elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
 246     C_FLAG_DEPS="-xMMD -xMF"
 247   elif test "x$TOOLCHAIN_TYPE" = xxlc; then
 248     C_FLAG_DEPS="-qmakedep=gcc -MF"
 249   fi
 250   CXX_FLAG_DEPS="$C_FLAG_DEPS"
 251   AC_SUBST(C_FLAG_DEPS)
 252   AC_SUBST(CXX_FLAG_DEPS)
 253 
 254   # Debug symbols
 255   if test "x$TOOLCHAIN_TYPE" = xgcc; then
 256     if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test "x$DEBUG_LEVEL" = "xfastdebug"; then
 257       CFLAGS_DEBUG_SYMBOLS="-g1"
 258       CXXFLAGS_DEBUG_SYMBOLS="-g1"
 259     else
 260       CFLAGS_DEBUG_SYMBOLS="-g"
 261       CXXFLAGS_DEBUG_SYMBOLS="-g"
 262     fi



 263   elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
 264     CFLAGS_DEBUG_SYMBOLS="-g -xs"
 265     CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
 266   elif test "x$TOOLCHAIN_TYPE" = xxlc; then
 267     CFLAGS_DEBUG_SYMBOLS="-g"
 268     CXXFLAGS_DEBUG_SYMBOLS="-g"
 269   fi
 270   AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
 271   AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
 272 
 273   # Optimization levels
 274   if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
 275     CC_HIGHEST="$CC_HIGHEST -fns -fsimple -fsingle -xalias_level=basic -xbuiltin=%all -xdepend -xrestrict -xlibmil"
 276 
 277     if test "x$OPENJDK_TARGET_CPU_ARCH" = "xx86"; then
 278       # FIXME: seems we always set -xregs=no%frameptr; put it elsewhere more global?
 279       C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST -xregs=no%frameptr"
 280       C_O_FLAG_HI="-xO4 -Wu,-O4~yz -xregs=no%frameptr"
 281       C_O_FLAG_NORM="-xO2 -Wu,-O2~yz -xregs=no%frameptr"
 282       C_O_FLAG_NONE="-xregs=no%frameptr"


 285       CXX_O_FLAG_NORM="-xO2 -Qoption ube -O2~yz -xregs=no%frameptr"
 286       CXX_O_FLAG_NONE="-xregs=no%frameptr"
 287       if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then
 288         C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xchip=pentium"
 289         CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_HIGHEST -xchip=pentium"
 290       fi
 291     elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then
 292       C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 $CC_HIGHEST -xprefetch=auto,explicit -xchip=ultra"
 293       C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0"
 294       C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0"
 295       C_O_FLAG_NONE=""
 296       CXX_O_FLAG_HIGHEST="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0 $CC_HIGHEST -xprefetch=auto,explicit -xchip=ultra"
 297       CXX_O_FLAG_HI="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
 298       CXX_O_FLAG_NORM="-xO2 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
 299       CXX_O_FLAG_NONE=""
 300     fi
 301   else
 302     # The remaining toolchains share opt flags between CC and CXX;
 303     # setup for C and duplicate afterwards.
 304     if test "x$TOOLCHAIN_TYPE" = xgcc; then














 305       if test "x$OPENJDK_TARGET_OS" = xmacosx; then
 306         # On MacOSX we optimize for size, something
 307         # we should do for all platforms?
 308         C_O_FLAG_HIGHEST="-Os"
 309         C_O_FLAG_HI="-Os"
 310         C_O_FLAG_NORM="-Os"
 311         C_O_FLAG_NONE=""
 312       else
 313         C_O_FLAG_HIGHEST="-O3"
 314         C_O_FLAG_HI="-O3"
 315         C_O_FLAG_NORM="-O2"
 316         C_O_FLAG_NONE="-O0"
 317       fi
 318     elif test "x$TOOLCHAIN_TYPE" = xxlc; then
 319       C_O_FLAG_HIGHEST="-O3"
 320       C_O_FLAG_HI="-O3 -qstrict"
 321       C_O_FLAG_NORM="-O2"
 322       C_O_FLAG_NONE=""
 323     elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
 324       C_O_FLAG_HIGHEST="-O2"




 131   if test "x$TOOLCHAIN_TYPE" = xgcc; then
 132     PICFLAG="-fPIC"
 133     C_FLAG_REORDER=''
 134     CXX_FLAG_REORDER=''
 135 
 136     if test "x$OPENJDK_TARGET_OS" = xmacosx; then
 137       # Linking is different on MacOSX
 138       SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
 139       SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.'
 140       SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
 141       SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1'
 142       SET_SHARED_LIBRARY_MAPFILE=''
 143     else
 144       # Default works for linux, might work on other platforms as well.
 145       SHARED_LIBRARY_FLAGS='-shared'
 146       SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker \$$$$ORIGIN[$]1'
 147       SET_SHARED_LIBRARY_ORIGIN="-Xlinker -z -Xlinker origin $SET_EXECUTABLE_ORIGIN"
 148       SET_SHARED_LIBRARY_NAME='-Xlinker -soname=[$]1'
 149       SET_SHARED_LIBRARY_MAPFILE='-Xlinker -version-script=[$]1'
 150     fi
 151   elif test "x$TOOLCHAIN_TYPE" = xclang; then
 152     PICFLAG=''
 153     C_FLAG_REORDER=''
 154     CXX_FLAG_REORDER=''
 155 
 156     if test "x$OPENJDK_TARGET_OS" = xmacosx; then
 157       # Linking is different on MacOSX
 158       SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
 159       SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.'
 160       SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
 161       SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1'
 162       SET_SHARED_LIBRARY_MAPFILE=''
 163     else
 164       # Default works for linux, might work on other platforms as well.
 165       SHARED_LIBRARY_FLAGS='-shared'
 166       SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker \$$$$ORIGIN[$]1'
 167       SET_SHARED_LIBRARY_ORIGIN="-Xlinker -z -Xlinker origin $SET_EXECUTABLE_ORIGIN"
 168       SET_SHARED_LIBRARY_NAME='-Xlinker -soname=[$]1'
 169       SET_SHARED_LIBRARY_MAPFILE='-Xlinker -version-script=[$]1'
 170     fi
 171   elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
 172     PICFLAG="-KPIC"
 173     C_FLAG_REORDER='-xF'
 174     CXX_FLAG_REORDER='-xF'
 175     SHARED_LIBRARY_FLAGS="-G"
 176     SET_EXECUTABLE_ORIGIN='-R\$$$$ORIGIN[$]1'
 177     SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
 178     SET_SHARED_LIBRARY_NAME=''
 179     SET_SHARED_LIBRARY_MAPFILE='-M[$]1'
 180   elif test "x$TOOLCHAIN_TYPE" = xxlc; then
 181     PICFLAG="-qpic=large"
 182     C_FLAG_REORDER=''
 183     CXX_FLAG_REORDER=''
 184     SHARED_LIBRARY_FLAGS="-qmkshrobj"
 185     SET_EXECUTABLE_ORIGIN=""
 186     SET_SHARED_LIBRARY_ORIGIN=''
 187     SET_SHARED_LIBRARY_NAME=''
 188     SET_SHARED_LIBRARY_MAPFILE=''
 189   elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
 190     PICFLAG=""


 245     #  CXXFLAGS_JDK="${CXXFLAGS_JDK} -xmemalign=4s"
 246     #fi
 247 
 248 AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
 249 [
 250 
 251   ###############################################################################
 252   #
 253   # Setup the opt flags for different compilers
 254   # and different operating systems.
 255   #
 256 
 257   # FIXME: this was indirectly the old default, but just inherited.
 258   # if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
 259   #   C_FLAG_DEPS="-MMD -MF"
 260   # fi
 261 
 262   # Generate make dependency files
 263   if test "x$TOOLCHAIN_TYPE" = xgcc; then
 264     C_FLAG_DEPS="-MMD -MF"
 265   elif test "x$TOOLCHAIN_TYPE" = xclang; then
 266     C_FLAG_DEPS="-MMD -MF"
 267   elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
 268     C_FLAG_DEPS="-xMMD -xMF"
 269   elif test "x$TOOLCHAIN_TYPE" = xxlc; then
 270     C_FLAG_DEPS="-qmakedep=gcc -MF"
 271   fi
 272   CXX_FLAG_DEPS="$C_FLAG_DEPS"
 273   AC_SUBST(C_FLAG_DEPS)
 274   AC_SUBST(CXX_FLAG_DEPS)
 275 
 276   # Debug symbols
 277   if test "x$TOOLCHAIN_TYPE" = xgcc; then
 278     if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test "x$DEBUG_LEVEL" = "xfastdebug"; then
 279       CFLAGS_DEBUG_SYMBOLS="-g1"
 280       CXXFLAGS_DEBUG_SYMBOLS="-g1"
 281     else
 282       CFLAGS_DEBUG_SYMBOLS="-g"
 283       CXXFLAGS_DEBUG_SYMBOLS="-g"
 284     fi
 285   elif test "x$TOOLCHAIN_TYPE" = xclang; then
 286     CFLAGS_DEBUG_SYMBOLS="-g"
 287     CXXFLAGS_DEBUG_SYMBOLS="-g"
 288   elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
 289     CFLAGS_DEBUG_SYMBOLS="-g -xs"
 290     CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
 291   elif test "x$TOOLCHAIN_TYPE" = xxlc; then
 292     CFLAGS_DEBUG_SYMBOLS="-g"
 293     CXXFLAGS_DEBUG_SYMBOLS="-g"
 294   fi
 295   AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
 296   AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
 297 
 298   # Optimization levels
 299   if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
 300     CC_HIGHEST="$CC_HIGHEST -fns -fsimple -fsingle -xalias_level=basic -xbuiltin=%all -xdepend -xrestrict -xlibmil"
 301 
 302     if test "x$OPENJDK_TARGET_CPU_ARCH" = "xx86"; then
 303       # FIXME: seems we always set -xregs=no%frameptr; put it elsewhere more global?
 304       C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST -xregs=no%frameptr"
 305       C_O_FLAG_HI="-xO4 -Wu,-O4~yz -xregs=no%frameptr"
 306       C_O_FLAG_NORM="-xO2 -Wu,-O2~yz -xregs=no%frameptr"
 307       C_O_FLAG_NONE="-xregs=no%frameptr"


 310       CXX_O_FLAG_NORM="-xO2 -Qoption ube -O2~yz -xregs=no%frameptr"
 311       CXX_O_FLAG_NONE="-xregs=no%frameptr"
 312       if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then
 313         C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xchip=pentium"
 314         CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_HIGHEST -xchip=pentium"
 315       fi
 316     elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then
 317       C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 $CC_HIGHEST -xprefetch=auto,explicit -xchip=ultra"
 318       C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0"
 319       C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0"
 320       C_O_FLAG_NONE=""
 321       CXX_O_FLAG_HIGHEST="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0 $CC_HIGHEST -xprefetch=auto,explicit -xchip=ultra"
 322       CXX_O_FLAG_HI="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
 323       CXX_O_FLAG_NORM="-xO2 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
 324       CXX_O_FLAG_NONE=""
 325     fi
 326   else
 327     # The remaining toolchains share opt flags between CC and CXX;
 328     # setup for C and duplicate afterwards.
 329     if test "x$TOOLCHAIN_TYPE" = xgcc; then
 330       if test "x$OPENJDK_TARGET_OS" = xmacosx; then
 331         # On MacOSX we optimize for size, something
 332         # we should do for all platforms?
 333         C_O_FLAG_HIGHEST="-Os"
 334         C_O_FLAG_HI="-Os"
 335         C_O_FLAG_NORM="-Os"
 336         C_O_FLAG_NONE=""
 337       else
 338         C_O_FLAG_HIGHEST="-O3"
 339         C_O_FLAG_HI="-O3"
 340         C_O_FLAG_NORM="-O2"
 341         C_O_FLAG_NONE="-O0"
 342       fi
 343     elif test "x$TOOLCHAIN_TYPE" = xclang; then
 344       if test "x$OPENJDK_TARGET_OS" = xmacosx; then
 345         # On MacOSX we optimize for size, something
 346         # we should do for all platforms?
 347         C_O_FLAG_HIGHEST="-Os"
 348         C_O_FLAG_HI="-Os"
 349         C_O_FLAG_NORM="-Os"
 350         C_O_FLAG_NONE=""
 351       else
 352         C_O_FLAG_HIGHEST="-O3"
 353         C_O_FLAG_HI="-O3"
 354         C_O_FLAG_NORM="-O2"
 355         C_O_FLAG_NONE="-O0"
 356       fi
 357     elif test "x$TOOLCHAIN_TYPE" = xxlc; then
 358       C_O_FLAG_HIGHEST="-O3"
 359       C_O_FLAG_HI="-O3 -qstrict"
 360       C_O_FLAG_NORM="-O2"
 361       C_O_FLAG_NONE=""
 362     elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
 363       C_O_FLAG_HIGHEST="-O2"