make/autoconf/flags-cflags.m4
author ihse
Mon, 05 Mar 2018 23:41:27 +0100
branchihse-cflags-rewrite-branch
changeset 56250 d64ab781c927
parent 56249 4141c47bb309
child 56312 a52bcf4118eb
permissions -rw-r--r--
Back away from -Wall to -W4 on windows, at least initially.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
     1
#
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
     2
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
     3
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
     4
#
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
     5
# This code is free software; you can redistribute it and/or modify it
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
     6
# under the terms of the GNU General Public License version 2 only, as
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
     7
# published by the Free Software Foundation.  Oracle designates this
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
     8
# particular file as subject to the "Classpath" exception as provided
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
     9
# by Oracle in the LICENSE file that accompanied this code.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    10
#
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    11
# This code is distributed in the hope that it will be useful, but WITHOUT
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    12
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    13
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    14
# version 2 for more details (a copy is included in the LICENSE file that
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    15
# accompanied this code).
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    16
#
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    17
# You should have received a copy of the GNU General Public License version
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    18
# 2 along with this work; if not, write to the Free Software Foundation,
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    19
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    20
#
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    21
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    22
# or visit www.oracle.com if you need additional information or have any
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    23
# questions.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    24
#
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    25
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    26
################################################################################
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    27
#
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    28
# Setup flags for C/C++ compiler
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    29
#
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    30
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    31
###############################################################################
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    32
#
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    33
# How to compile shared libraries.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    34
#
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    35
AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    36
[
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    37
  if test "x$TOOLCHAIN_TYPE" = xgcc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    38
    C_FLAG_REORDER=''
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    39
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    40
    # Default works for linux, might work on other platforms as well.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    41
    SHARED_LIBRARY_FLAGS='-shared'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    42
    SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    43
    SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    44
    SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    45
    SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    46
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    47
  elif test "x$TOOLCHAIN_TYPE" = xclang; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    48
    C_FLAG_REORDER=''
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    49
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    50
    if test "x$OPENJDK_TARGET_OS" = xmacosx; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    51
      # Linking is different on MacOSX
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    52
      SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    53
      SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path$(or [$]1,/.)'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    54
      SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    55
      SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    56
      SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,[$]1'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    57
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    58
    else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    59
      # Default works for linux, might work on other platforms as well.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    60
      SHARED_LIBRARY_FLAGS='-shared'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    61
      SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    62
      SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    63
      SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    64
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    65
      # arm specific settings
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    66
      if test "x$OPENJDK_TARGET_CPU" = "xarm"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    67
        # '-Wl,-z,origin' isn't used on arm.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    68
        SET_SHARED_LIBRARY_ORIGIN='-Wl,-rpath,\$$$$ORIGIN[$]1'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    69
      else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    70
        SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    71
      fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    72
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    73
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    74
  elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    75
    C_FLAG_REORDER='-xF'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    76
    SHARED_LIBRARY_FLAGS="-G"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    77
    SET_EXECUTABLE_ORIGIN='-R\$$ORIGIN[$]1'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    78
    SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    79
    SET_SHARED_LIBRARY_NAME='-h [$]1'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    80
    SET_SHARED_LIBRARY_MAPFILE='-M[$]1'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    81
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    82
  elif test "x$TOOLCHAIN_TYPE" = xxlc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    83
    C_FLAG_REORDER=''
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    84
    SHARED_LIBRARY_FLAGS="-qmkshrobj -bM:SRE -bnoentry"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    85
    SET_EXECUTABLE_ORIGIN=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    86
    SET_SHARED_LIBRARY_ORIGIN=''
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    87
    SET_SHARED_LIBRARY_NAME=''
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    88
    SET_SHARED_LIBRARY_MAPFILE=''
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    89
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    90
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    91
    C_FLAG_REORDER=''
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    92
    SHARED_LIBRARY_FLAGS="-dll"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    93
    SET_EXECUTABLE_ORIGIN=''
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    94
    SET_SHARED_LIBRARY_ORIGIN=''
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    95
    SET_SHARED_LIBRARY_NAME=''
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    96
    SET_SHARED_LIBRARY_MAPFILE='-def:[$]1'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    97
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    98
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
    99
  AC_SUBST(C_FLAG_REORDER)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   100
  AC_SUBST(SET_EXECUTABLE_ORIGIN)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   101
  AC_SUBST(SET_SHARED_LIBRARY_ORIGIN)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   102
  AC_SUBST(SET_SHARED_LIBRARY_NAME)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   103
  AC_SUBST(SET_SHARED_LIBRARY_MAPFILE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   104
  AC_SUBST(SHARED_LIBRARY_FLAGS)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   105
])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   106
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   107
AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   108
[
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   109
  # Debug symbols
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   110
  if test "x$TOOLCHAIN_TYPE" = xgcc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   111
    if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test "x$DEBUG_LEVEL" = "xfastdebug"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   112
      CFLAGS_DEBUG_SYMBOLS="-g1"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   113
    else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   114
      CFLAGS_DEBUG_SYMBOLS="-g"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   115
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   116
  elif test "x$TOOLCHAIN_TYPE" = xclang; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   117
    CFLAGS_DEBUG_SYMBOLS="-g"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   118
  elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   119
    CFLAGS_DEBUG_SYMBOLS="-g -xs"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   120
    # -g0 enables debug symbols without disabling inlining.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   121
    CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   122
  elif test "x$TOOLCHAIN_TYPE" = xxlc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   123
    CFLAGS_DEBUG_SYMBOLS="-g"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   124
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   125
    CFLAGS_DEBUG_SYMBOLS="-Zi"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   126
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   127
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   128
  if test "x$CXXFLAGS_DEBUG_SYMBOLS" = x; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   129
    # If we did not specify special flags for C++, use C version
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   130
    CXXFLAGS_DEBUG_SYMBOLS="$CFLAGS_DEBUG_SYMBOLS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   131
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   132
  AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   133
  AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   134
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   135
  # FIXME: This was never used in the old build. What to do with it?
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   136
  if test "x$TOOLCHAIN_TYPE" = xgcc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   137
    # "-Og" suppported for GCC 4.8 and later
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   138
    CFLAG_OPTIMIZE_DEBUG_FLAG="-Og"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   139
    FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$CFLAG_OPTIMIZE_DEBUG_FLAG],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   140
      IF_TRUE: [HAS_CFLAG_OPTIMIZE_DEBUG=true],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   141
      IF_FALSE: [HAS_CFLAG_OPTIMIZE_DEBUG=false])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   142
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   143
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   144
  # Debug symbols for JVM_CFLAGS
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   145
  if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   146
    JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -xs"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   147
    if test "x$DEBUG_LEVEL" = xslowdebug; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   148
      JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -g"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   149
    else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   150
      # -g0 does not disable inlining, which -g does.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   151
      JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -g0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   152
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   153
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   154
    JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -Z7 -d2Zi+"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   155
  else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   156
    JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -g"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   157
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   158
  AC_SUBST(JVM_CFLAGS_SYMBOLS)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   159
])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   160
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   161
AC_DEFUN([FLAGS_SETUP_WARNINGS],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   162
[
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   163
  AC_ARG_ENABLE([warnings-as-errors], [AS_HELP_STRING([--disable-warnings-as-errors],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   164
      [do not consider native warnings to be an error @<:@enabled@:>@])])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   165
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   166
  AC_MSG_CHECKING([if native warnings are errors])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   167
  if test "x$enable_warnings_as_errors" = "xyes"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   168
    AC_MSG_RESULT([yes (explicitly set)])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   169
    WARNINGS_AS_ERRORS=true
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   170
  elif test "x$enable_warnings_as_errors" = "xno"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   171
    AC_MSG_RESULT([no])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   172
    WARNINGS_AS_ERRORS=false
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   173
  elif test "x$enable_warnings_as_errors" = "x"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   174
    AC_MSG_RESULT([yes (default)])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   175
    WARNINGS_AS_ERRORS=true
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   176
  else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   177
    AC_MSG_ERROR([--enable-warnings-as-errors accepts no argument])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   178
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   179
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   180
  AC_SUBST(WARNINGS_AS_ERRORS)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   181
56217
e550367df595 Add LDFLAGS_WARNINGS_ARE_ERRORS.
ihse
parents: 56193
diff changeset
   182
  LDFLAGS_WARNINGS_ARE_ERRORS=""
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   183
  case "${TOOLCHAIN_TYPE}" in
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   184
    microsoft)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   185
      DISABLE_WARNING_PREFIX="-wd"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   186
      CFLAGS_WARNINGS_ARE_ERRORS="-WX"
56250
d64ab781c927 Back away from -Wall to -W4 on windows, at least initially.
ihse
parents: 56249
diff changeset
   187
      
d64ab781c927 Back away from -Wall to -W4 on windows, at least initially.
ihse
parents: 56249
diff changeset
   188
      # 4061
d64ab781c927 Back away from -Wall to -W4 on windows, at least initially.
ihse
parents: 56249
diff changeset
   189
      #WARNINGS_ENABLE_ALL="-Wall"
d64ab781c927 Back away from -Wall to -W4 on windows, at least initially.
ihse
parents: 56249
diff changeset
   190
      WARNINGS_ENABLE_ALL="-W4"
d64ab781c927 Back away from -Wall to -W4 on windows, at least initially.
ihse
parents: 56249
diff changeset
   191
      # 4061, 4062 = enum not handled
d64ab781c927 Back away from -Wall to -W4 on windows, at least initially.
ihse
parents: 56249
diff changeset
   192
      # 4130
d64ab781c927 Back away from -Wall to -W4 on windows, at least initially.
ihse
parents: 56249
diff changeset
   193
      #EVEN_MORE="4054 4055 4057 4100 4127 4131 4132 4152 4201 4204 4206 4210 4232 4244 4255 4263 4264 4295 4302 4306 4311 4324 4366 4388 4512 4548 4555 4574 4800 4986 4987"
d64ab781c927 Back away from -Wall to -W4 on windows, at least initially.
ihse
parents: 56249
diff changeset
   194
      #INIT_DISABLE=" 4189 4191 4211 4242 4245 4265 4287 4296 4310 4312 4350 4355 4365 4389 4505 4510 4514 4571 4610 4619 4623 4625 4626 4640 4668 4701 4702 4703 4706 4710 4711 4820 4917 4946 $EVEN_MORE"
d64ab781c927 Back away from -Wall to -W4 on windows, at least initially.
ihse
parents: 56249
diff changeset
   195
      #DISABLED_WARNINGS_WALL="4061 4062 $INIT_DISABLE"
d64ab781c927 Back away from -Wall to -W4 on windows, at least initially.
ihse
parents: 56249
diff changeset
   196
      RETRY_W4_HOTSPOT="4189 4211 4245 4310 4389 4505 4510 4610 4701 4702 4703 4706"
d64ab781c927 Back away from -Wall to -W4 on windows, at least initially.
ihse
parents: 56249
diff changeset
   197
      RETRY_W4_JDK="4054 4055 4057 4100 4127 4130 4131 4132 4152 4201 4204 4206 4210 4232 4244 4295 4306 4324 4366 4512 4800"
d64ab781c927 Back away from -Wall to -W4 on windows, at least initially.
ihse
parents: 56249
diff changeset
   198
      DISABLED_WARNINGS="$RETRY_W4_HOTSPOT $RETRY_W4_JDK"
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   199
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   200
    solstudio)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   201
      DISABLE_WARNING_PREFIX="-erroff="
56219
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   202
      CFLAGS_WARNINGS_ARE_ERRORS="-errwarn=%all"
56217
e550367df595 Add LDFLAGS_WARNINGS_ARE_ERRORS.
ihse
parents: 56193
diff changeset
   203
      LDFLAGS_WARNINGS_ARE_ERRORS="-Wl,-z,fatal-warnings"
56219
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   204
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   205
      WARNINGS_ENABLE_ALL_CFLAGS="-v -fd -xtransition"
56222
05cc7c290f08 Fix problems on solaris. Now it works.
ihse
parents: 56221
diff changeset
   206
      WARNINGS_ENABLE_ALL_CXXFLAGS="+w +w2"
56219
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   207
56249
4141c47bb309 Promote E_DECLARATION_IN_CODE to global disable on solaris.
ihse
parents: 56242
diff changeset
   208
      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"
56240
1950c307f07a Promote inllargeint to global disable on solstudio.
ihse
parents: 56239
diff changeset
   209
      DISABLED_WARNINGS_CXX="inllargeuse inllargeint notused wemptydecl notemsource"
1950c307f07a Promote inllargeint to global disable on solstudio.
ihse
parents: 56239
diff changeset
   210
      # helpful quality checks, should not be disabled: inllargeuse inllargeint
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   211
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   212
    gcc)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   213
      # Prior to gcc 4.4, a -Wno-X where X is unknown for that version of gcc will cause an error
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   214
      FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [-Wno-this-is-a-warning-that-do-not-exist],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   215
          IF_TRUE: [GCC_CAN_DISABLE_WARNINGS=true],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   216
          IF_FALSE: [GCC_CAN_DISABLE_WARNINGS=false]
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   217
      )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   218
      if test "x$GCC_CAN_DISABLE_WARNINGS" = "xtrue"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   219
        DISABLE_WARNING_PREFIX="-Wno-"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   220
      else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   221
        DISABLE_WARNING_PREFIX=
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   222
      fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   223
      CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
56221
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   224
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   225
      # -Wall -Wextra does not enable all warnings. We add some more that we
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   226
      # consider relevant:
56238
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   227
      WARNINGS_ENABLE_ADDITIONAL="-Wpointer-arith -Wundef -Wlogical-op -Winit-self -Wpacked -Wdisabled-optimization -Wtrampolines"
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   228
      WARNINGS_ENABLE_ADDITIONAL_CXX="-Wc++0x-compat -Wreorder -Wnoexcept -Woverloaded-virtual -Wdelete-non-virtual-dtor -Wwrite-strings -Wstrict-null-sentinel"
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   229
56221
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   230
      WARNINGS_ENABLE_ALL="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   231
      WARNINGS_ENABLE_ALL_CXXFLAGS="$WARNINGS_ENABLE_ADDITIONAL_CXX"
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   232
56238
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   233
      DISABLED_WARNINGS_JUST_GET_THIS_PASS="unused-variable unused-function unused-but-set-variable undef unused-value unused-label pointer-arith"
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   234
      DISABLED_WARNINGS="unknown-warning unused-parameter $DISABLED_WARNINGS_JUST_GET_THIS_PASS"
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   235
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   236
      # Repeate the check for the BUILD_CC and BUILD_CXX. Need to also reset
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   237
      # CFLAGS since any target specific flags will likely not work with the
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   238
      # build compiler
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   239
      CC_OLD="$CC"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   240
      CXX_OLD="$CXX"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   241
      CC="$BUILD_CC"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   242
      CXX="$BUILD_CXX"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   243
      CFLAGS_OLD="$CFLAGS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   244
      CFLAGS=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   245
      FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [-Wno-this-is-a-warning-that-do-not-exist],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   246
          IF_TRUE: [BUILD_CC_CAN_DISABLE_WARNINGS=true],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   247
          IF_FALSE: [BUILD_CC_CAN_DISABLE_WARNINGS=false]
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   248
      )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   249
      if test "x$BUILD_CC_CAN_DISABLE_WARNINGS" = "xtrue"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   250
        BUILD_CC_DISABLE_WARNING_PREFIX="-Wno-"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   251
      else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   252
        BUILD_CC_DISABLE_WARNING_PREFIX=
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   253
      fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   254
      CC="$CC_OLD"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   255
      CXX="$CXX_OLD"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   256
      CFLAGS="$CFLAGS_OLD"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   257
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   258
    clang)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   259
      DISABLE_WARNING_PREFIX="-Wno-"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   260
      CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   261
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   262
    xlc)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   263
      DISABLE_WARNING_PREFIX="-qsuppress="
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   264
      CFLAGS_WARNINGS_ARE_ERRORS="-qhalt=w"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   265
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   266
  esac
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   267
  AC_SUBST(DISABLE_WARNING_PREFIX)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   268
  AC_SUBST(BUILD_CC_DISABLE_WARNING_PREFIX)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   269
  AC_SUBST(CFLAGS_WARNINGS_ARE_ERRORS)
56217
e550367df595 Add LDFLAGS_WARNINGS_ARE_ERRORS.
ihse
parents: 56193
diff changeset
   270
  AC_SUBST(LDFLAGS_WARNINGS_ARE_ERRORS)
56238
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   271
  AC_SUBST(DISABLED_WARNINGS)
56219
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   272
  AC_SUBST(DISABLED_WARNINGS_C)
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   273
  AC_SUBST(DISABLED_WARNINGS_CXX)
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   274
])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   275
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   276
AC_DEFUN([FLAGS_SETUP_QUALITY_CHECKS],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   277
[
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   278
  # bounds, memory and behavior checking options
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   279
  if test "x$TOOLCHAIN_TYPE" = xgcc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   280
    case $DEBUG_LEVEL in
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   281
    release )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   282
      # no adjustment
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   283
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   284
    fastdebug )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   285
      # no adjustment
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   286
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   287
    slowdebug )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   288
      # FIXME: By adding this to C(XX)FLAGS_DEBUG_OPTIONS/JVM_CFLAGS_SYMBOLS it
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   289
      # get's added conditionally on whether we produce debug symbols or not.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   290
      # This is most likely not really correct.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   291
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   292
      # Add runtime stack smashing and undefined behavior checks.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   293
      # Not all versions of gcc support -fstack-protector
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   294
      STACK_PROTECTOR_CFLAG="-fstack-protector-all"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   295
      FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$STACK_PROTECTOR_CFLAG -Werror],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   296
          IF_FALSE: [STACK_PROTECTOR_CFLAG=""])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   297
56238
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   298
      CFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1 -Wstack-protector"
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   299
      CXXFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1 -Wstack-protector"
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   300
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   301
      if test "x$STACK_PROTECTOR_CFLAG" != x; then
56238
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   302
        JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS $STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1 -Wstack-protector"
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   303
      fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   304
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   305
    esac
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   306
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   307
])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   308
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   309
AC_DEFUN([FLAGS_SETUP_OPTIMIZATION],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   310
[
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   311
  if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   312
    CC_HIGHEST="-fns -fsimple -fsingle -xbuiltin=%all -xdepend -xrestrict -xlibmil"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   313
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   314
    C_O_FLAG_HIGHEST_JVM="-xO4"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   315
    C_O_FLAG_DEBUG_JVM=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   316
    C_O_FLAG_SIZE=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   317
    C_O_FLAG_DEBUG=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   318
    C_O_FLAG_NONE=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   319
    if test "x$OPENJDK_TARGET_CPU_ARCH" = "xx86"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   320
      C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   321
      C_O_FLAG_HI="-xO4 -Wu,-O4~yz"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   322
      C_O_FLAG_NORM="-xO2 -Wu,-O2~yz"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   323
    elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   324
      C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   325
          -xprefetch=auto,explicit -xchip=ultra $CC_HIGHEST"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   326
      C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   327
      C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   328
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   329
  elif test "x$TOOLCHAIN_TYPE" = xgcc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   330
    C_O_FLAG_HIGHEST_JVM="-O3"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   331
    C_O_FLAG_HIGHEST="-O3"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   332
    C_O_FLAG_HI="-O3"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   333
    C_O_FLAG_NORM="-O2"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   334
    C_O_FLAG_SIZE="-Os"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   335
    C_O_FLAG_DEBUG="-O0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   336
    C_O_FLAG_DEBUG_JVM="-O0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   337
    C_O_FLAG_NONE="-O0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   338
  elif test "x$TOOLCHAIN_TYPE" = xclang; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   339
    if test "x$OPENJDK_TARGET_OS" = xmacosx; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   340
      # On MacOSX we optimize for size, something
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   341
      # we should do for all platforms?
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   342
      C_O_FLAG_HIGHEST_JVM="-Os"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   343
      C_O_FLAG_HIGHEST="-Os"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   344
      C_O_FLAG_HI="-Os"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   345
      C_O_FLAG_NORM="-Os"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   346
      C_O_FLAG_DEBUG_JVM=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   347
    else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   348
      C_O_FLAG_HIGHEST_JVM="-O3"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   349
      C_O_FLAG_HIGHEST="-O3"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   350
      C_O_FLAG_HI="-O3"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   351
      C_O_FLAG_NORM="-O2"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   352
      C_O_FLAG_DEBUG_JVM="-O0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   353
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   354
    C_O_FLAG_SIZE="-Os"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   355
    C_O_FLAG_DEBUG="-O0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   356
    C_O_FLAG_NONE="-O0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   357
  elif test "x$TOOLCHAIN_TYPE" = xxlc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   358
    C_O_FLAG_HIGHEST_JVM="-O3 -qhot=level=1 -qinline -qinlglue"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   359
    C_O_FLAG_HIGHEST="-O3 -qhot=level=1 -qinline -qinlglue"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   360
    C_O_FLAG_HI="-O3 -qinline -qinlglue"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   361
    C_O_FLAG_NORM="-O2"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   362
    C_O_FLAG_DEBUG="-qnoopt"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   363
    # FIXME: Value below not verified.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   364
    C_O_FLAG_DEBUG_JVM=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   365
    C_O_FLAG_NONE="-qnoopt"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   366
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   367
    C_O_FLAG_HIGHEST_JVM="-O2 -Oy-"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   368
    C_O_FLAG_HIGHEST="-O2"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   369
    C_O_FLAG_HI="-O1"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   370
    C_O_FLAG_NORM="-O1"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   371
    C_O_FLAG_DEBUG="-Od"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   372
    C_O_FLAG_DEBUG_JVM=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   373
    C_O_FLAG_NONE="-Od"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   374
    C_O_FLAG_SIZE="-Os"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   375
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   376
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   377
  # Now copy to C++ flags
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   378
  CXX_O_FLAG_HIGHEST_JVM="$C_O_FLAG_HIGHEST_JVM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   379
  CXX_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   380
  CXX_O_FLAG_HI="$C_O_FLAG_HI"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   381
  CXX_O_FLAG_NORM="$C_O_FLAG_NORM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   382
  CXX_O_FLAG_DEBUG="$C_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   383
  CXX_O_FLAG_DEBUG_JVM="$C_O_FLAG_DEBUG_JVM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   384
  CXX_O_FLAG_NONE="$C_O_FLAG_NONE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   385
  CXX_O_FLAG_SIZE="$C_O_FLAG_SIZE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   386
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   387
  if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   388
    # In solstudio, also add this to C (but not C++) flags...
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   389
    C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xalias_level=basic"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   390
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   391
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   392
  # Adjust optimization flags according to debug level.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   393
  case $DEBUG_LEVEL in
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   394
    release )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   395
      # no adjustment
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   396
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   397
    fastdebug )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   398
      # Not quite so much optimization
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   399
      C_O_FLAG_HI="$C_O_FLAG_NORM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   400
      CXX_O_FLAG_HI="$CXX_O_FLAG_NORM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   401
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   402
    slowdebug )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   403
      # Disable optimization
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   404
      C_O_FLAG_HIGHEST_JVM="$C_O_FLAG_DEBUG_JVM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   405
      C_O_FLAG_HIGHEST="$C_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   406
      C_O_FLAG_HI="$C_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   407
      C_O_FLAG_NORM="$C_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   408
      C_O_FLAG_SIZE="$C_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   409
      CXX_O_FLAG_HIGHEST_JVM="$CXX_O_FLAG_DEBUG_JVM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   410
      CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   411
      CXX_O_FLAG_HI="$CXX_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   412
      CXX_O_FLAG_NORM="$CXX_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   413
      CXX_O_FLAG_SIZE="$CXX_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   414
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   415
  esac
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   416
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   417
  AC_SUBST(C_O_FLAG_HIGHEST_JVM)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   418
  AC_SUBST(C_O_FLAG_HIGHEST)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   419
  AC_SUBST(C_O_FLAG_HI)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   420
  AC_SUBST(C_O_FLAG_NORM)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   421
  AC_SUBST(C_O_FLAG_NONE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   422
  AC_SUBST(C_O_FLAG_SIZE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   423
  AC_SUBST(CXX_O_FLAG_HIGHEST_JVM)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   424
  AC_SUBST(CXX_O_FLAG_HIGHEST)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   425
  AC_SUBST(CXX_O_FLAG_HI)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   426
  AC_SUBST(CXX_O_FLAG_NORM)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   427
  AC_SUBST(CXX_O_FLAG_NONE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   428
  AC_SUBST(CXX_O_FLAG_SIZE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   429
])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   430
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   431
AC_DEFUN([FLAGS_SETUP_CFLAGS],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   432
[
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   433
  ### CFLAGS
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   434
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   435
  FLAGS_SETUP_CFLAGS_HELPER
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   436
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   437
  FLAGS_OS=$OPENJDK_TARGET_OS
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   438
  FLAGS_OS_TYPE=$OPENJDK_TARGET_OS_TYPE
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   439
  FLAGS_CPU=$OPENJDK_TARGET_CPU
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   440
  FLAGS_CPU_ARCH=$OPENJDK_TARGET_CPU_ARCH
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   441
  FLAGS_CPU_BITS=$OPENJDK_TARGET_CPU_BITS
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   442
  FLAGS_CPU_ENDIAN=$OPENJDK_TARGET_CPU_ENDIAN
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   443
  FLAGS_CPU_LEGACY=$OPENJDK_TARGET_CPU_LEGACY
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   444
  FLAGS_CPU_LEGACY_LIB=$OPENJDK_TARGET_CPU_LEGACY_LIB
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   445
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   446
  FLAGS_SETUP_CFLAGS_CPU_DEP([TARGET])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   447
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   448
  FLAGS_OS=$OPENJDK_BUILD_OS
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   449
  FLAGS_OS_TYPE=$OPENJDK_BUILD_OS_TYPE
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   450
  FLAGS_CPU=$OPENJDK_BUILD_CPU
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   451
  FLAGS_CPU_ARCH=$OPENJDK_BUILD_CPU_ARCH
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   452
  FLAGS_CPU_BITS=$OPENJDK_BUILD_CPU_BITS
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   453
  FLAGS_CPU_ENDIAN=$OPENJDK_BUILD_CPU_ENDIAN
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   454
  FLAGS_CPU_LEGACY=$OPENJDK_BUILD_CPU_LEGACY
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   455
  FLAGS_CPU_LEGACY_LIB=$OPENJDK_BUILD_CPU_LEGACY_LIB
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   456
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   457
  FLAGS_SETUP_CFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   458
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   459
  # Tests are only ever compiled for TARGET
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   460
  CFLAGS_TESTLIB="$CFLAGS_JDKLIB"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   461
  CXXFLAGS_TESTLIB="$CXXFLAGS_JDKLIB"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   462
  CFLAGS_TESTEXE="$CFLAGS_JDKEXE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   463
  CXXFLAGS_TESTEXE="$CXXFLAGS_JDKEXE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   464
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   465
  AC_SUBST(CFLAGS_TESTLIB)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   466
  AC_SUBST(CFLAGS_TESTEXE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   467
  AC_SUBST(CXXFLAGS_TESTLIB)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   468
  AC_SUBST(CXXFLAGS_TESTEXE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   469
])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   470
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   471
################################################################################
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   472
# platform independent
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   473
AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   474
[
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   475
  #### OS DEFINES, these should be independent on toolchain
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   476
  if test "x$OPENJDK_TARGET_OS" = xlinux; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   477
    CFLAGS_OS_DEF_JVM="-DLINUX"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   478
    CFLAGS_OS_DEF_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   479
  elif test "x$OPENJDK_TARGET_OS" = xsolaris; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   480
    CFLAGS_OS_DEF_JVM="-DSOLARIS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   481
    CFLAGS_OS_DEF_JDK="-D__solaris__"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   482
  elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   483
    CFLAGS_OS_DEF_JVM="-D_ALLBSD_SOURCE -D_DARWIN_C_SOURCE -D_XOPEN_SOURCE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   484
    CFLAGS_OS_DEF_JDK="-D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   485
  elif test "x$OPENJDK_TARGET_OS" = xaix; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   486
    CFLAGS_OS_DEF_JVM="-DAIX"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   487
  elif test "x$OPENJDK_TARGET_OS" = xbsd; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   488
    CFLAGS_OS_DEF_JDK="-D_ALLBSD_SOURCE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   489
  elif test "x$OPENJDK_TARGET_OS" = xwindows; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   490
    CFLAGS_OS_DEF_JVM="-D_WINDOWS -DWIN32 -D_JNI_IMPLEMENTATION_"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   491
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   492
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   493
  # Setup target OS define. Use OS target name but in upper case.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   494
  OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   495
  CFLAGS_OS_DEF_JDK="$CFLAGS_OS_DEF_JDK -D$OPENJDK_TARGET_OS_UPPERCASE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   496
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   497
  #### GLOBAL DEFINES
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   498
  # Set some common defines. These works for all compilers, but assume
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   499
  # -D is universally accepted.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   500
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   501
  # Always enable optional macros for VM.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   502
  ALWAYS_CFLAGS_JVM="-D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   503
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   504
  # Setup some hard coded includes
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   505
  ALWAYS_CFLAGS_JDK=" \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   506
      -I\$(SUPPORT_OUTPUTDIR)/modules_include/java.base \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   507
      -I\$(SUPPORT_OUTPUTDIR)/modules_include/java.base/\$(OPENJDK_TARGET_OS_INCLUDE_SUBDIR) \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   508
      -I${TOPDIR}/src/java.base/share/native/libjava \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   509
      -I${TOPDIR}/src/java.base/$OPENJDK_TARGET_OS_TYPE/native/libjava \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   510
      -I${TOPDIR}/src/hotspot/share/include \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   511
      -I${TOPDIR}/src/hotspot/os/${HOTSPOT_TARGET_OS_TYPE}/include"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   512
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   513
  ###############################################################################
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   514
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   515
  # Adjust flags according to debug level.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   516
  # Setup debug/release defines
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   517
  if test "x$DEBUG_LEVEL" = xrelease; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   518
    DEBUG_CFLAGS_JDK="-DNDEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   519
    if test "x$OPENJDK_TARGET_OS" = xsolaris; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   520
      DEBUG_CFLAGS_JDK="$DEBUG_CFLAGS_JDK -DTRIMMED"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   521
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   522
  else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   523
    DEBUG_CFLAGS_JDK="-DDEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   524
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   525
    if test "x$TOOLCHAIN_TYPE" = xxlc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   526
      # We need '-qminimaltoc' or '-qpic=large -bbigtoc' if the TOC overflows.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   527
      # Hotspot now overflows its 64K TOC (currently only for debug),
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   528
      # so for debug we build with '-qpic=large -bbigtoc'.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   529
      DEBUG_CFLAGS_JVM="-qpic=large"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   530
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   531
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   532
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   533
  if test "x$DEBUG_LEVEL" != xrelease; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   534
    DEBUG_OPTIONS_FLAGS_JDK="$CFLAGS_DEBUG_OPTIONS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   535
    DEBUG_SYMBOLS_CFLAGS_JDK="$CFLAGS_DEBUG_SYMBOLS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   536
    DEBUG_SYMBOLS_CXXFLAGS_JDK="$CXXFLAGS_DEBUG_SYMBOLS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   537
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   538
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   539
  #### TOOLCHAIN DEFINES
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   540
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   541
  if test "x$TOOLCHAIN_TYPE" = xgcc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   542
    ALWAYS_DEFINES_JVM="-D_GNU_SOURCE -D_REENTRANT"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   543
  elif test "x$TOOLCHAIN_TYPE" = xclang; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   544
    ALWAYS_DEFINES_JVM="-D_GNU_SOURCE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   545
  elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   546
    ALWAYS_DEFINES_JVM="-DSPARC_WORKS -D_Crun_inline_placement"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   547
    ALWAYS_DEFINES_JDK="-DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   548
    ALWAYS_DEFINES_JDK_CXXONLY="-DCC_NOEX"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   549
  elif test "x$TOOLCHAIN_TYPE" = xxlc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   550
    ALWAYS_DEFINES_JVM="-D_REENTRANT"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   551
    ALWAYS_DEFINES_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   552
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   553
    ALWAYS_DEFINES_JDK="-DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_DEPRECATE \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   554
        -D_CRT_NONSTDC_NO_DEPRECATE -DWIN32 -DIAL"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   555
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   556
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   557
  ###############################################################################
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   558
  #
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   559
  #
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   560
  # CFLAGS BASIC
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   561
  if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   562
    # COMMON to gcc and clang
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   563
    TOOLCHAIN_CFLAGS_JVM="-pipe -fno-rtti -fno-exceptions \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   564
        -fvisibility=hidden -fno-strict-aliasing -fno-omit-frame-pointer"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   565
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   566
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   567
  if test "x$TOOLCHAIN_TYPE" = xgcc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   568
    TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fcheck-new"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   569
    TOOLCHAIN_CFLAGS_JDK="-pipe"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   570
    TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX (but since this gives *worse* performance, use no-strict-aliasing everywhere!)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   571
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   572
    CXXSTD_CXXFLAG="-std=gnu++98"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   573
    FLAGS_CXX_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$CXXSTD_CXXFLAG -Werror],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   574
    						 IF_FALSE: [CXXSTD_CXXFLAG=""])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   575
    TOOLCHAIN_CFLAGS_JDK_CXXONLY="$CXXSTD_CXXFLAG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   576
    TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM $CXXSTD_CXXFLAG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   577
    ADLC_CXXFLAG="$CXXSTD_CXXFLAG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   578
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   579
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   580
  elif test "x$TOOLCHAIN_TYPE" = xclang; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   581
    # Restrict the debug information created by Clang to avoid
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   582
    # too big object files and speed the build up a little bit
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   583
    # (see http://llvm.org/bugs/show_bug.cgi?id=7554)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   584
    TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -flimit-debug-info"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   585
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   586
    if test "x$OPENJDK_TARGET_OS" = xlinux; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   587
      TOOLCHAIN_CFLAGS_JDK="-pipe"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   588
      TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   589
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   590
  elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
56219
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   591
    TOOLCHAIN_FLAGS="-errtags -errfmt"
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   592
    TOOLCHAIN_CFLAGS="-errshort=tags"
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   593
56222
05cc7c290f08 Fix problems on solaris. Now it works.
ihse
parents: 56221
diff changeset
   594
    TOOLCHAIN_CFLAGS_JDK="-mt $TOOLCHAIN_FLAGS"
05cc7c290f08 Fix problems on solaris. Now it works.
ihse
parents: 56221
diff changeset
   595
    TOOLCHAIN_CFLAGS_JDK_CONLY="-xc99=%none -xCC -Xa -W0,-noglobal $TOOLCHAIN_CFLAGS" # C only
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   596
    TOOLCHAIN_CFLAGS_JDK_CXXONLY="-features=no%except -norunpath -xnolib" # CXX only
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   597
    TOOLCHAIN_CFLAGS_JVM="-template=no%extdef -features=no%split_init \
56222
05cc7c290f08 Fix problems on solaris. Now it works.
ihse
parents: 56221
diff changeset
   598
        -library=stlport4 -mt -features=no%except $TOOLCHAIN_FLAGS"
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   599
  elif test "x$TOOLCHAIN_TYPE" = xxlc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   600
    TOOLCHAIN_CFLAGS_JDK="-qchars=signed -qfullpath -qsaveopt"  # add on both CFLAGS
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   601
    TOOLCHAIN_CFLAGS_JVM="-qtune=balanced \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   602
        -qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   603
        -qlanglvl=noredefmac -qnortti -qnoeh -qignerrno"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   604
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   605
    TOOLCHAIN_CFLAGS_JVM="-nologo -MD -MP"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   606
    TOOLCHAIN_CFLAGS_JDK="-nologo -MD -Zc:wchar_t-"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   607
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   608
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   609
  # CFLAGS WARNINGS STUFF
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   610
  # Set JVM_CFLAGS warning handling
56221
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   611
  if test "x$TOOLCHAIN_TYPE" = xgcc; then
56238
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   612
#    JDK_DISABLED="-Wno-pointer-arith -Wno-undef -Wno-unused-function -Wno-unused-value -Wno-unused-but-set-variable -Wno-unused-parameter -Wno-unused-variable -Wno-unused-label"
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   613
#    JVM_DISABLED="-Wno-unknown-pragmas -Wno-comment -Wno-delete-non-virtual-dtor -Wno-ignored-qualifiers -Wno-parentheses -Wno-reorder -Wno-unused-local-typedefs -Wno-unused-parameter -Wno-unused-variable -Wno-address -Wno-missing-field-initializers -Wno-unused-but-set-variable -Wno-char-subscripts -Wno-array-bounds -Wno-narrowing -Wno-empty-body -Wno-unused-but-set-parameter"
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   614
56221
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   615
    WARNING_CFLAGS_JDK="$WARNINGS_ENABLE_ALL $JDK_DISABLED"
56238
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   616
    WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
56221
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   617
    WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   618
    WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL $WARNINGS_ENABLE_ALL_CXXFLAGS $JVM_DISABLED"
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   619
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   620
  elif test "x$TOOLCHAIN_TYPE" = xclang; then
56221
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   621
    WARNING_CFLAGS_JVM="-Wpointer-arith -Wsign-compare -Wunused-function -Wno-deprecated"
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   622
    if test "x$OPENJDK_TARGET_OS" = xlinux; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   623
      WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wno-sometimes-uninitialized"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   624
      WARNING_CFLAGS_JDK="-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   625
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   626
  elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
56221
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   627
    WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   628
    WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   629
    WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL_CXXFLAGS"
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   630
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
56242
e60ee82dc0ce Initial conversion for windows with -Wall and disables.
ihse
parents: 56240
diff changeset
   631
    WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
e60ee82dc0ce Initial conversion for windows with -Wall and disables.
ihse
parents: 56240
diff changeset
   632
    #WARNING_CFLAGS="-W3"
e60ee82dc0ce Initial conversion for windows with -Wall and disables.
ihse
parents: 56240
diff changeset
   633
    #WARNING_CFLAGS_JDK="-wd4800"
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   634
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   635
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   636
  # Set some additional per-OS defines.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   637
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   638
  # Additional macosx handling
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   639
  if test "x$OPENJDK_TARGET_OS" = xmacosx; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   640
    OS_CFLAGS="-DMAC_OS_X_VERSION_MIN_REQUIRED=$MACOSX_VERSION_MIN_NODOTS \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   641
        -mmacosx-version-min=$MACOSX_VERSION_MIN"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   642
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   643
    if test -n "$MACOSX_VERSION_MAX"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   644
        OS_CFLAGS="$OS_CFLAGS \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   645
            -DMAC_OS_X_VERSION_MAX_ALLOWED=$MACOSX_VERSION_MAX_NODOTS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   646
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   647
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   648
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   649
  # Where does this really belong??
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   650
  if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   651
    PICFLAG="-fPIC"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   652
  elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   653
    PICFLAG="-KPIC"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   654
  elif test "x$TOOLCHAIN_TYPE" = xxlc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   655
    # '-qpic' defaults to 'qpic=small'. This means that the compiler generates only
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   656
    # one instruction for accessing the TOC. If the TOC grows larger than 64K, the linker
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   657
    # will have to patch this single instruction with a call to some out-of-order code which
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   658
    # does the load from the TOC. This is of course slow. But in that case we also would have
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   659
    # to use '-bbigtoc' for linking anyway so we could also change the PICFLAG to 'qpic=large'.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   660
    # With 'qpic=large' the compiler will by default generate a two-instruction sequence which
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   661
    # can be patched directly by the linker and does not require a jump to out-of-order code.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   662
    # Another alternative instead of using 'qpic=large -bbigtoc' may be to use '-qminimaltoc'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   663
    # instead. This creates a distinct TOC for every compilation unit (and thus requires two
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   664
    # loads for accessing a global variable). But there are rumors that this may be seen as a
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   665
    # 'performance feature' because of improved code locality of the symbols used in a
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   666
    # compilation unit.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   667
    PICFLAG="-qpic"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   668
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   669
    PICFLAG=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   670
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   671
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   672
  JVM_PICFLAG="$PICFLAG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   673
  JDK_PICFLAG="$PICFLAG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   674
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   675
  if test "x$OPENJDK_TARGET_OS" = xmacosx; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   676
    # Linking is different on MacOSX
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   677
    JDK_PICFLAG=''
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   678
    if test "x$STATIC_BUILD" = xtrue; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   679
      JVM_PICFLAG=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   680
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   681
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   682
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   683
  if test "x$OPENJDK_TARGET_OS" = xmacosx; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   684
    OS_CFLAGS_JVM="$OS_CFLAGS_JVM -mno-omit-leaf-frame-pointer -mstack-alignment=16"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   685
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   686
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   687
  # Optional POSIX functionality needed by the JVM
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   688
  #
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   689
  # Check if clock_gettime is available and in which library. This indicates
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   690
  # availability of CLOCK_MONOTONIC for hotspot. But we don't need to link, so
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   691
  # don't let it update LIBS.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   692
  save_LIBS="$LIBS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   693
  AC_SEARCH_LIBS(clock_gettime, rt, [HAS_CLOCK_GETTIME=true], [])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   694
  if test "x$LIBS" = "x-lrt "; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   695
    CLOCK_GETTIME_IN_LIBRT=true
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   696
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   697
  LIBS="$save_LIBS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   698
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   699
  if test "x$HAS_CLOCK_GETTIME" = "xtrue"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   700
    OS_CFLAGS_JVM="$OS_CFLAGS_JVM -DSUPPORTS_CLOCK_MONOTONIC"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   701
    if test "x$CLOCK_GETTIME_IN_LIBRT" = "xtrue"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   702
      OS_CFLAGS_JVM="$OS_CFLAGS_JVM -DNEEDS_LIBRT"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   703
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   704
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   705
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   706
  # EXPORT
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   707
  AC_SUBST(ADLC_CXXFLAG)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   708
])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   709
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   710
################################################################################
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   711
# $1 - Either BUILD or TARGET to pick the correct OS/CPU variables to check
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   712
#      conditionals against.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   713
# $2 - Optional prefix for each variable defined.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   714
AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   715
[
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   716
  #### CPU DEFINES, these should (in theory) be independent on toolchain
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   717
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   718
  # Setup target CPU
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   719
  # Setup endianness
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   720
  if test "x$FLAGS_CPU_ENDIAN" = xlittle; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   721
    $1_DEFINES_CPU_JVM="-DVM_LITTLE_ENDIAN"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   722
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   723
  if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   724
    # The macro _LITTLE_ENDIAN needs to be defined the same to avoid the
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   725
    #   Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   726
    if test "x$FLAGS_CPU_ENDIAN" = xlittle; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   727
      $1_DEFINES_CPU_JDK="-D_LITTLE_ENDIAN="
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   728
    else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   729
      $1_DEFINES_CPU_JDK="-D_BIG_ENDIAN="
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   730
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   731
  else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   732
    if test "x$FLAGS_CPU_ENDIAN" = xlittle; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   733
      $1_DEFINES_CPU_JDK="-D_LITTLE_ENDIAN"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   734
    else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   735
      $1_DEFINES_CPU_JDK="-D_BIG_ENDIAN"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   736
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   737
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   738
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   739
  # setup CPU bit size
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   740
  $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -DARCH='\"$FLAGS_CPU_LEGACY\"' \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   741
      -D$FLAGS_CPU_LEGACY"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   742
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   743
  if test "x$FLAGS_CPU_BITS" = x64; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   744
    # -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   745
    # unpack200.exe.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   746
    if test "x$FLAGS_OS" = xlinux || test "x$FLAGS_OS" = xmacosx; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   747
      $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_LP64=1"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   748
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   749
    if test "x$FLAGS_OS" != xsolaris && test "x$FLAGS_OS" != xaix; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   750
      # Solaris does not have _LP64=1 in the old build.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   751
      # xlc on AIX defines _LP64=1 by default and issues a warning if we redefine it.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   752
      $1_DEFINES_CPU_JVM="${$1_DEFINES_CPU_JVM} -D_LP64=1"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   753
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   754
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   755
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   756
  # toolchain dependend, per-cpu
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   757
  if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   758
    if test "x$FLAGS_CPU_ARCH" = xx86; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   759
      $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -DcpuIntel -Di586 -D$FLAGS_CPU_LEGACY_LIB"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   760
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   761
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   762
    if test "x$FLAGS_CPU" = xx86_64; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   763
      $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_AMD64_ -Damd64"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   764
    else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   765
      $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_X86_ -Dx86"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   766
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   767
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   768
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   769
  # CFLAGS PER CPU
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   770
  if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   771
    # COMMON to gcc and clang
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   772
    if test "x$FLAGS_CPU" = xx86; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   773
      # Force compatibility with i586 on 32 bit intel platforms.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   774
      $1_CFLAGS_CPU="-march=i586"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   775
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   776
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   777
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   778
  if test "x$TOOLCHAIN_TYPE" = xgcc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   779
    if test "x$FLAGS_CPU" = xarm; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   780
      # -Wno-psabi to get rid of annoying "note: the mangling of 'va_list' has changed in GCC 4.4"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   781
      $1_CFLAGS_CPU="-fsigned-char -Wno-psabi $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS -DJDK_ARCH_ABI_PROP_NAME='\"\$(JDK_ARCH_ABI_PROP_NAME)\"'"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   782
      $1_CFLAGS_CPU_JVM="-DARM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   783
    elif test "x$FLAGS_CPU" = xaarch64; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   784
      if test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   785
        $1_CFLAGS_CPU_JVM="-fsigned-char -DARM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   786
      fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   787
    elif test "x$FLAGS_CPU_ARCH" = xppc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   788
      $1_CFLAGS_CPU_JVM="-minsert-sched-nops=regroup_exact -mno-multiple -mno-string"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   789
      if test "x$FLAGS_CPU" = xppc64; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   790
        # -mminimal-toc fixes `relocation truncated to fit' error for gcc 4.1.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   791
        # Use ppc64 instructions, but schedule for power5
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   792
        $1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -mminimal-toc -mcpu=powerpc64 -mtune=power5"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   793
      elif test "x$FLAGS_CPU" = xppc64le; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   794
        # Little endian machine uses ELFv2 ABI.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   795
        # Use Power8, this is the first CPU to support PPC64 LE with ELFv2 ABI.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   796
        $1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -DABI_ELFv2 -mcpu=power8 -mtune=power8"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   797
      fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   798
    elif test "x$FLAGS_CPU" = xs390x; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   799
      $1_CFLAGS_CPU="-mbackchain -march=z10"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   800
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   801
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   802
    if test "x$FLAGS_CPU_ARCH" != xarm &&  test "x$FLAGS_CPU_ARCH" != xppc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   803
      # for all archs except arm and ppc, prevent gcc to omit frame pointer
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   804
      $1_CFLAGS_CPU_JDK="${$1_CFLAGS_CPU_JDK} -fno-omit-frame-pointer"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   805
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   806
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   807
  elif test "x$TOOLCHAIN_TYPE" = xclang; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   808
    if test "x$FLAGS_OS" = xlinux; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   809
      # ppc test not really needed for clang
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   810
      if test "x$FLAGS_CPU_ARCH" != xarm &&  test "x$FLAGS_CPU_ARCH" != xppc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   811
        # for all archs except arm and ppc, prevent gcc to omit frame pointer
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   812
        $1_CFLAGS_CPU_JDK="${$1_CFLAGS_CPU_JDK} -fno-omit-frame-pointer"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   813
      fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   814
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   815
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   816
  elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   817
    if test "x$FLAGS_CPU" = xx86_64; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   818
      # NOTE: -xregs=no%frameptr is supposed to be default on x64
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   819
      $1_CFLAGS_CPU_JDK="-xregs=no%frameptr"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   820
    elif test "x$FLAGS_CPU" = xsparcv9; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   821
      $1_CFLAGS_CPU_JVM="-xarch=sparc"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   822
      $1_CFLAGS_CPU_JDK_LIBONLY="-xregs=no%appl"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   823
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   824
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   825
  elif test "x$TOOLCHAIN_TYPE" = xxlc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   826
    if test "x$FLAGS_CPU" = xppc64; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   827
      $1_CFLAGS_CPU_JVM="-qarch=ppc64"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   828
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   829
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   830
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   831
    if test "x$FLAGS_CPU" = xx86; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   832
      $1_CFLAGS_CPU_JVM="-arch:IA32"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   833
    elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   834
      if test "x$DEBUG_LEVEL" != xrelease; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   835
        # NOTE: This is probably redundant; -homeparams is default on
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   836
        # non-release builds.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   837
        $1_CFLAGS_CPU_JVM="-homeparams"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   838
      fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   839
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   840
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   841
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   842
  if test "x$TOOLCHAIN_TYPE" = xgcc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   843
    TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: 6, PREFIX: $2, IF_AT_LEAST: FLAGS_SETUP_GCC6_COMPILER_FLAGS($1))
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   844
    $1_TOOLCHAIN_CFLAGS="${$1_GCC6_CFLAGS}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   845
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   846
    TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: [4.8], PREFIX: $2,
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   847
        IF_AT_LEAST: [
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   848
          # These flags either do not work or give spurious warnings prior to gcc 4.8.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   849
          $1_WARNING_CFLAGS_JVM="-Wno-format-zero-length -Wtype-limits -Wuninitialized"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   850
        ]
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   851
    )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   852
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   853
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   854
  # EXPORT to API
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   855
  CFLAGS_JVM_COMMON="$ALWAYS_CFLAGS_JVM $ALWAYS_DEFINES_JVM $TOOLCHAIN_CFLAGS_JVM \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   856
      $OS_CFLAGS $OS_CFLAGS_JVM $CFLAGS_OS_DEF_JVM $DEBUG_CFLAGS_JVM \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   857
      $WARNING_CFLAGS $WARNING_CFLAGS_JVM $JVM_PICFLAG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   858
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   859
  CFLAGS_JDK_COMMON="$ALWAYS_CFLAGS_JDK $ALWAYS_DEFINES_JDK $TOOLCHAIN_CFLAGS_JDK \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   860
      $OS_CFLAGS $CFLAGS_OS_DEF_JDK $DEBUG_CFLAGS_JDK $DEBUG_OPTIONS_FLAGS_JDK \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   861
      $WARNING_CFLAGS $WARNING_CFLAGS_JDK"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   862
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   863
  # Use ${$2EXTRA_CFLAGS} to block EXTRA_CFLAGS to be added to build flags.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   864
  # (Currently we don't have any OPENJDK_BUILD_EXTRA_CFLAGS, but that might
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   865
  # change in the future.)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   866
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   867
  CFLAGS_JDK_COMMON_CONLY="$TOOLCHAIN_CFLAGS_JDK_CONLY $DEBUG_SYMBOLS_CFLAGS_JDK \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   868
      $WARNING_CFLAGS_JDK_CONLY ${$2EXTRA_CFLAGS}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   869
  CFLAGS_JDK_COMMON_CXXONLY="$ALWAYS_DEFINES_JDK_CXXONLY $TOOLCHAIN_CFLAGS_JDK_CXXONLY \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   870
      $DEBUG_SYMBOLS_CXXFLAGS_JDK $WARNING_CFLAGS_JDK_CXXONLY ${$2EXTRA_CXXFLAGS}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   871
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   872
  $1_CFLAGS_JVM="${$1_DEFINES_CPU_JVM} ${$1_CFLAGS_CPU} ${$1_CFLAGS_CPU_JVM} ${$1_TOOLCHAIN_CFLAGS} ${$1_WARNING_CFLAGS_JVM}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   873
  $1_CFLAGS_JDK="${$1_DEFINES_CPU_JDK} ${$1_CFLAGS_CPU} ${$1_CFLAGS_CPU_JDK} ${$1_TOOLCHAIN_CFLAGS}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   874
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   875
  $2JVM_CFLAGS="$CFLAGS_JVM_COMMON ${$1_CFLAGS_JVM} ${$2EXTRA_CXXFLAGS}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   876
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   877
  $2CFLAGS_JDKEXE="$CFLAGS_JDK_COMMON $CFLAGS_JDK_COMMON_CONLY ${$1_CFLAGS_JDK}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   878
  $2CXXFLAGS_JDKEXE="$CFLAGS_JDK_COMMON $CFLAGS_JDK_COMMON_CXXONLY ${$1_CFLAGS_JDK}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   879
  $2CFLAGS_JDKLIB="${$2CFLAGS_JDKEXE} $JDK_PICFLAG ${$1_CFLAGS_CPU_JDK_LIBONLY}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   880
  $2CXXFLAGS_JDKLIB="${$2CXXFLAGS_JDKEXE} $JDK_PICFLAG ${$1_CFLAGS_CPU_JDK_LIBONLY}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   881
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   882
  AC_SUBST($2JVM_CFLAGS)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   883
  AC_SUBST($2CFLAGS_JDKLIB)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   884
  AC_SUBST($2CFLAGS_JDKEXE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   885
  AC_SUBST($2CXXFLAGS_JDKLIB)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   886
  AC_SUBST($2CXXFLAGS_JDKEXE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   887
])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   888
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   889
# FLAGS_SETUP_GCC6_COMPILER_FLAGS([PREFIX])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   890
# Arguments:
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   891
# $1 - Prefix for each variable defined.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   892
AC_DEFUN([FLAGS_SETUP_GCC6_COMPILER_FLAGS],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   893
[
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   894
  # These flags are required for GCC 6 builds as undefined behaviour in OpenJDK code
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   895
  # runs afoul of the more aggressive versions of these optimisations.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   896
  # Notably, value range propagation now assumes that the this pointer of C++
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   897
  # member functions is non-null.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   898
  NO_DELETE_NULL_POINTER_CHECKS_CFLAG="-fno-delete-null-pointer-checks"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   899
  dnl Argument check is disabled until FLAGS_COMPILER_CHECK_ARGUMENTS handles cross-compilation
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   900
  dnl FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   901
  dnl					     IF_FALSE: [NO_DELETE_NULL_POINTER_CHECKS_CFLAG=""])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   902
  NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   903
  dnl Argument check is disabled until FLAGS_COMPILER_CHECK_ARGUMENTS handles cross-compilation
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   904
  dnl FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_LIFETIME_DSE_CFLAG -Werror],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   905
  dnl					     IF_FALSE: [NO_LIFETIME_DSE_CFLAG=""])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   906
  AC_MSG_NOTICE([GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} and ${NO_LIFETIME_DSE_CFLAG}])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   907
  $1_GCC6_CFLAGS="${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   908
])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   909
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   910
# Documentation on common flags used for solstudio in HIGHEST.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   911
#
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   912
# WARNING: Use of OPTIMIZATION_LEVEL=HIGHEST in your Makefile needs to be
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   913
#          done with care, there are some assumptions below that need to
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   914
#          be understood about the use of pointers, and IEEE behavior.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   915
#
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   916
# -fns: Use non-standard floating point mode (not IEEE 754)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   917
# -fsimple: Do some simplification of floating point arithmetic (not IEEE 754)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   918
# -fsingle: Use single precision floating point with 'float'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   919
# -xalias_level=basic: Assume memory references via basic pointer types do not alias
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   920
#   (Source with excessing pointer casting and data access with mixed
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   921
#    pointer types are not recommended)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   922
# -xbuiltin=%all: Use intrinsic or inline versions for math/std functions
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   923
#   (If you expect perfect errno behavior, do not use this)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   924
# -xdepend: Loop data dependency optimizations (need -xO3 or higher)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   925
# -xrestrict: Pointer parameters to functions do not overlap
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   926
#   (Similar to -xalias_level=basic usage, but less obvious sometimes.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   927
#    If you pass in multiple pointers to the same data, do not use this)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   928
# -xlibmil: Inline some library routines
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   929
#   (If you expect perfect errno behavior, do not use this)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   930
# -xlibmopt: Use optimized math routines (CURRENTLY DISABLED)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   931
#   (If you expect perfect errno behavior, do not use this)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   932
#  Can cause undefined external on Solaris 8 X86 on __sincos, removing for now