make/autoconf/flags-cflags.m4
author ihse
Mon, 05 Mar 2018 23:23:50 +0100
branchihse-cflags-rewrite-branch
changeset 56249 4141c47bb309
parent 56242 e60ee82dc0ce
child 56250 d64ab781c927
permissions -rw-r--r--
Promote E_DECLARATION_IN_CODE to global disable on solaris.
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"
56249
4141c47bb309 Promote E_DECLARATION_IN_CODE to global disable on solaris.
ihse
parents: 56242
diff changeset
   187
56242
e60ee82dc0ce Initial conversion for windows with -Wall and disables.
ihse
parents: 56240
diff changeset
   188
      WARNINGS_ENABLE_ALL="-Wall"
e60ee82dc0ce Initial conversion for windows with -Wall and disables.
ihse
parents: 56240
diff changeset
   189
      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"
e60ee82dc0ce Initial conversion for windows with -Wall and disables.
ihse
parents: 56240
diff changeset
   190
      DISABLED_WARNINGS="4061 4062 4130 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"
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   191
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   192
    solstudio)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   193
      DISABLE_WARNING_PREFIX="-erroff="
56219
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   194
      CFLAGS_WARNINGS_ARE_ERRORS="-errwarn=%all"
56217
e550367df595 Add LDFLAGS_WARNINGS_ARE_ERRORS.
ihse
parents: 56193
diff changeset
   195
      LDFLAGS_WARNINGS_ARE_ERRORS="-Wl,-z,fatal-warnings"
56219
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   196
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   197
      WARNINGS_ENABLE_ALL_CFLAGS="-v -fd -xtransition"
56222
05cc7c290f08 Fix problems on solaris. Now it works.
ihse
parents: 56221
diff changeset
   198
      WARNINGS_ENABLE_ALL_CXXFLAGS="+w +w2"
56219
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   199
56249
4141c47bb309 Promote E_DECLARATION_IN_CODE to global disable on solaris.
ihse
parents: 56242
diff changeset
   200
      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
   201
      DISABLED_WARNINGS_CXX="inllargeuse inllargeint notused wemptydecl notemsource"
1950c307f07a Promote inllargeint to global disable on solstudio.
ihse
parents: 56239
diff changeset
   202
      # helpful quality checks, should not be disabled: inllargeuse inllargeint
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   203
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   204
    gcc)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   205
      # 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
   206
      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
   207
          IF_TRUE: [GCC_CAN_DISABLE_WARNINGS=true],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   208
          IF_FALSE: [GCC_CAN_DISABLE_WARNINGS=false]
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   209
      )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   210
      if test "x$GCC_CAN_DISABLE_WARNINGS" = "xtrue"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   211
        DISABLE_WARNING_PREFIX="-Wno-"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   212
      else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   213
        DISABLE_WARNING_PREFIX=
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   214
      fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   215
      CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
56221
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   216
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   217
      # -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
   218
      # consider relevant:
56238
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   219
      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
   220
      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
   221
56221
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   222
      WARNINGS_ENABLE_ALL="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   223
      WARNINGS_ENABLE_ALL_CXXFLAGS="$WARNINGS_ENABLE_ADDITIONAL_CXX"
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   224
56238
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   225
      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
   226
      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
   227
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   228
      # 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
   229
      # CFLAGS since any target specific flags will likely not work with the
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   230
      # build compiler
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   231
      CC_OLD="$CC"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   232
      CXX_OLD="$CXX"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   233
      CC="$BUILD_CC"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   234
      CXX="$BUILD_CXX"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   235
      CFLAGS_OLD="$CFLAGS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   236
      CFLAGS=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   237
      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
   238
          IF_TRUE: [BUILD_CC_CAN_DISABLE_WARNINGS=true],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   239
          IF_FALSE: [BUILD_CC_CAN_DISABLE_WARNINGS=false]
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   240
      )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   241
      if test "x$BUILD_CC_CAN_DISABLE_WARNINGS" = "xtrue"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   242
        BUILD_CC_DISABLE_WARNING_PREFIX="-Wno-"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   243
      else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   244
        BUILD_CC_DISABLE_WARNING_PREFIX=
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   245
      fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   246
      CC="$CC_OLD"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   247
      CXX="$CXX_OLD"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   248
      CFLAGS="$CFLAGS_OLD"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   249
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   250
    clang)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   251
      DISABLE_WARNING_PREFIX="-Wno-"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   252
      CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   253
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   254
    xlc)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   255
      DISABLE_WARNING_PREFIX="-qsuppress="
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   256
      CFLAGS_WARNINGS_ARE_ERRORS="-qhalt=w"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   257
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   258
  esac
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   259
  AC_SUBST(DISABLE_WARNING_PREFIX)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   260
  AC_SUBST(BUILD_CC_DISABLE_WARNING_PREFIX)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   261
  AC_SUBST(CFLAGS_WARNINGS_ARE_ERRORS)
56217
e550367df595 Add LDFLAGS_WARNINGS_ARE_ERRORS.
ihse
parents: 56193
diff changeset
   262
  AC_SUBST(LDFLAGS_WARNINGS_ARE_ERRORS)
56238
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   263
  AC_SUBST(DISABLED_WARNINGS)
56219
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   264
  AC_SUBST(DISABLED_WARNINGS_C)
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   265
  AC_SUBST(DISABLED_WARNINGS_CXX)
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   266
])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   267
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   268
AC_DEFUN([FLAGS_SETUP_QUALITY_CHECKS],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   269
[
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   270
  # bounds, memory and behavior checking options
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   271
  if test "x$TOOLCHAIN_TYPE" = xgcc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   272
    case $DEBUG_LEVEL in
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   273
    release )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   274
      # no adjustment
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   275
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   276
    fastdebug )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   277
      # no adjustment
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   278
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   279
    slowdebug )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   280
      # 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
   281
      # get's added conditionally on whether we produce debug symbols or not.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   282
      # This is most likely not really correct.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   283
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   284
      # Add runtime stack smashing and undefined behavior checks.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   285
      # Not all versions of gcc support -fstack-protector
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   286
      STACK_PROTECTOR_CFLAG="-fstack-protector-all"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   287
      FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$STACK_PROTECTOR_CFLAG -Werror],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   288
          IF_FALSE: [STACK_PROTECTOR_CFLAG=""])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   289
56238
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   290
      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
   291
      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
   292
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   293
      if test "x$STACK_PROTECTOR_CFLAG" != x; then
56238
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   294
        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
   295
      fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   296
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   297
    esac
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   298
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   299
])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   300
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   301
AC_DEFUN([FLAGS_SETUP_OPTIMIZATION],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   302
[
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   303
  if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   304
    CC_HIGHEST="-fns -fsimple -fsingle -xbuiltin=%all -xdepend -xrestrict -xlibmil"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   305
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   306
    C_O_FLAG_HIGHEST_JVM="-xO4"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   307
    C_O_FLAG_DEBUG_JVM=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   308
    C_O_FLAG_SIZE=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   309
    C_O_FLAG_DEBUG=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   310
    C_O_FLAG_NONE=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   311
    if test "x$OPENJDK_TARGET_CPU_ARCH" = "xx86"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   312
      C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   313
      C_O_FLAG_HI="-xO4 -Wu,-O4~yz"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   314
      C_O_FLAG_NORM="-xO2 -Wu,-O2~yz"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   315
    elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   316
      C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   317
          -xprefetch=auto,explicit -xchip=ultra $CC_HIGHEST"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   318
      C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   319
      C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   320
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   321
  elif test "x$TOOLCHAIN_TYPE" = xgcc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   322
    C_O_FLAG_HIGHEST_JVM="-O3"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   323
    C_O_FLAG_HIGHEST="-O3"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   324
    C_O_FLAG_HI="-O3"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   325
    C_O_FLAG_NORM="-O2"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   326
    C_O_FLAG_SIZE="-Os"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   327
    C_O_FLAG_DEBUG="-O0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   328
    C_O_FLAG_DEBUG_JVM="-O0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   329
    C_O_FLAG_NONE="-O0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   330
  elif test "x$TOOLCHAIN_TYPE" = xclang; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   331
    if test "x$OPENJDK_TARGET_OS" = xmacosx; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   332
      # On MacOSX we optimize for size, something
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   333
      # we should do for all platforms?
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   334
      C_O_FLAG_HIGHEST_JVM="-Os"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   335
      C_O_FLAG_HIGHEST="-Os"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   336
      C_O_FLAG_HI="-Os"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   337
      C_O_FLAG_NORM="-Os"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   338
      C_O_FLAG_DEBUG_JVM=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   339
    else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   340
      C_O_FLAG_HIGHEST_JVM="-O3"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   341
      C_O_FLAG_HIGHEST="-O3"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   342
      C_O_FLAG_HI="-O3"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   343
      C_O_FLAG_NORM="-O2"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   344
      C_O_FLAG_DEBUG_JVM="-O0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   345
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   346
    C_O_FLAG_SIZE="-Os"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   347
    C_O_FLAG_DEBUG="-O0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   348
    C_O_FLAG_NONE="-O0"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   349
  elif test "x$TOOLCHAIN_TYPE" = xxlc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   350
    C_O_FLAG_HIGHEST_JVM="-O3 -qhot=level=1 -qinline -qinlglue"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   351
    C_O_FLAG_HIGHEST="-O3 -qhot=level=1 -qinline -qinlglue"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   352
    C_O_FLAG_HI="-O3 -qinline -qinlglue"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   353
    C_O_FLAG_NORM="-O2"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   354
    C_O_FLAG_DEBUG="-qnoopt"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   355
    # FIXME: Value below not verified.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   356
    C_O_FLAG_DEBUG_JVM=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   357
    C_O_FLAG_NONE="-qnoopt"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   358
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   359
    C_O_FLAG_HIGHEST_JVM="-O2 -Oy-"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   360
    C_O_FLAG_HIGHEST="-O2"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   361
    C_O_FLAG_HI="-O1"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   362
    C_O_FLAG_NORM="-O1"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   363
    C_O_FLAG_DEBUG="-Od"
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="-Od"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   366
    C_O_FLAG_SIZE="-Os"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   367
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   368
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   369
  # Now copy to C++ flags
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   370
  CXX_O_FLAG_HIGHEST_JVM="$C_O_FLAG_HIGHEST_JVM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   371
  CXX_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   372
  CXX_O_FLAG_HI="$C_O_FLAG_HI"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   373
  CXX_O_FLAG_NORM="$C_O_FLAG_NORM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   374
  CXX_O_FLAG_DEBUG="$C_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   375
  CXX_O_FLAG_DEBUG_JVM="$C_O_FLAG_DEBUG_JVM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   376
  CXX_O_FLAG_NONE="$C_O_FLAG_NONE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   377
  CXX_O_FLAG_SIZE="$C_O_FLAG_SIZE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   378
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   379
  if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   380
    # In solstudio, also add this to C (but not C++) flags...
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   381
    C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xalias_level=basic"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   382
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   383
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   384
  # Adjust optimization flags according to debug level.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   385
  case $DEBUG_LEVEL in
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   386
    release )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   387
      # no adjustment
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   388
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   389
    fastdebug )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   390
      # Not quite so much optimization
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   391
      C_O_FLAG_HI="$C_O_FLAG_NORM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   392
      CXX_O_FLAG_HI="$CXX_O_FLAG_NORM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   393
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   394
    slowdebug )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   395
      # Disable optimization
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   396
      C_O_FLAG_HIGHEST_JVM="$C_O_FLAG_DEBUG_JVM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   397
      C_O_FLAG_HIGHEST="$C_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   398
      C_O_FLAG_HI="$C_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   399
      C_O_FLAG_NORM="$C_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   400
      C_O_FLAG_SIZE="$C_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   401
      CXX_O_FLAG_HIGHEST_JVM="$CXX_O_FLAG_DEBUG_JVM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   402
      CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   403
      CXX_O_FLAG_HI="$CXX_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   404
      CXX_O_FLAG_NORM="$CXX_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   405
      CXX_O_FLAG_SIZE="$CXX_O_FLAG_DEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   406
      ;;
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   407
  esac
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   408
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   409
  AC_SUBST(C_O_FLAG_HIGHEST_JVM)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   410
  AC_SUBST(C_O_FLAG_HIGHEST)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   411
  AC_SUBST(C_O_FLAG_HI)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   412
  AC_SUBST(C_O_FLAG_NORM)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   413
  AC_SUBST(C_O_FLAG_NONE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   414
  AC_SUBST(C_O_FLAG_SIZE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   415
  AC_SUBST(CXX_O_FLAG_HIGHEST_JVM)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   416
  AC_SUBST(CXX_O_FLAG_HIGHEST)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   417
  AC_SUBST(CXX_O_FLAG_HI)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   418
  AC_SUBST(CXX_O_FLAG_NORM)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   419
  AC_SUBST(CXX_O_FLAG_NONE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   420
  AC_SUBST(CXX_O_FLAG_SIZE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   421
])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   422
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   423
AC_DEFUN([FLAGS_SETUP_CFLAGS],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   424
[
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   425
  ### CFLAGS
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   426
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   427
  FLAGS_SETUP_CFLAGS_HELPER
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   428
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   429
  FLAGS_OS=$OPENJDK_TARGET_OS
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   430
  FLAGS_OS_TYPE=$OPENJDK_TARGET_OS_TYPE
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   431
  FLAGS_CPU=$OPENJDK_TARGET_CPU
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   432
  FLAGS_CPU_ARCH=$OPENJDK_TARGET_CPU_ARCH
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   433
  FLAGS_CPU_BITS=$OPENJDK_TARGET_CPU_BITS
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   434
  FLAGS_CPU_ENDIAN=$OPENJDK_TARGET_CPU_ENDIAN
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   435
  FLAGS_CPU_LEGACY=$OPENJDK_TARGET_CPU_LEGACY
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   436
  FLAGS_CPU_LEGACY_LIB=$OPENJDK_TARGET_CPU_LEGACY_LIB
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   437
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   438
  FLAGS_SETUP_CFLAGS_CPU_DEP([TARGET])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   439
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   440
  FLAGS_OS=$OPENJDK_BUILD_OS
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   441
  FLAGS_OS_TYPE=$OPENJDK_BUILD_OS_TYPE
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   442
  FLAGS_CPU=$OPENJDK_BUILD_CPU
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   443
  FLAGS_CPU_ARCH=$OPENJDK_BUILD_CPU_ARCH
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   444
  FLAGS_CPU_BITS=$OPENJDK_BUILD_CPU_BITS
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   445
  FLAGS_CPU_ENDIAN=$OPENJDK_BUILD_CPU_ENDIAN
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   446
  FLAGS_CPU_LEGACY=$OPENJDK_BUILD_CPU_LEGACY
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   447
  FLAGS_CPU_LEGACY_LIB=$OPENJDK_BUILD_CPU_LEGACY_LIB
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   448
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   449
  FLAGS_SETUP_CFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   450
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   451
  # Tests are only ever compiled for TARGET
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   452
  CFLAGS_TESTLIB="$CFLAGS_JDKLIB"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   453
  CXXFLAGS_TESTLIB="$CXXFLAGS_JDKLIB"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   454
  CFLAGS_TESTEXE="$CFLAGS_JDKEXE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   455
  CXXFLAGS_TESTEXE="$CXXFLAGS_JDKEXE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   456
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   457
  AC_SUBST(CFLAGS_TESTLIB)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   458
  AC_SUBST(CFLAGS_TESTEXE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   459
  AC_SUBST(CXXFLAGS_TESTLIB)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   460
  AC_SUBST(CXXFLAGS_TESTEXE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   461
])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   462
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   463
################################################################################
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   464
# platform independent
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   465
AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   466
[
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   467
  #### OS DEFINES, these should be independent on toolchain
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   468
  if test "x$OPENJDK_TARGET_OS" = xlinux; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   469
    CFLAGS_OS_DEF_JVM="-DLINUX"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   470
    CFLAGS_OS_DEF_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   471
  elif test "x$OPENJDK_TARGET_OS" = xsolaris; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   472
    CFLAGS_OS_DEF_JVM="-DSOLARIS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   473
    CFLAGS_OS_DEF_JDK="-D__solaris__"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   474
  elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   475
    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
   476
    CFLAGS_OS_DEF_JDK="-D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   477
  elif test "x$OPENJDK_TARGET_OS" = xaix; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   478
    CFLAGS_OS_DEF_JVM="-DAIX"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   479
  elif test "x$OPENJDK_TARGET_OS" = xbsd; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   480
    CFLAGS_OS_DEF_JDK="-D_ALLBSD_SOURCE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   481
  elif test "x$OPENJDK_TARGET_OS" = xwindows; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   482
    CFLAGS_OS_DEF_JVM="-D_WINDOWS -DWIN32 -D_JNI_IMPLEMENTATION_"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   483
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   484
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   485
  # Setup target OS define. Use OS target name but in upper case.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   486
  OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   487
  CFLAGS_OS_DEF_JDK="$CFLAGS_OS_DEF_JDK -D$OPENJDK_TARGET_OS_UPPERCASE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   488
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   489
  #### GLOBAL DEFINES
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   490
  # Set some common defines. These works for all compilers, but assume
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   491
  # -D is universally accepted.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   492
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   493
  # Always enable optional macros for VM.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   494
  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
   495
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   496
  # Setup some hard coded includes
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   497
  ALWAYS_CFLAGS_JDK=" \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   498
      -I\$(SUPPORT_OUTPUTDIR)/modules_include/java.base \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   499
      -I\$(SUPPORT_OUTPUTDIR)/modules_include/java.base/\$(OPENJDK_TARGET_OS_INCLUDE_SUBDIR) \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   500
      -I${TOPDIR}/src/java.base/share/native/libjava \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   501
      -I${TOPDIR}/src/java.base/$OPENJDK_TARGET_OS_TYPE/native/libjava \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   502
      -I${TOPDIR}/src/hotspot/share/include \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   503
      -I${TOPDIR}/src/hotspot/os/${HOTSPOT_TARGET_OS_TYPE}/include"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   504
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   505
  ###############################################################################
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   506
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   507
  # Adjust flags according to debug level.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   508
  # Setup debug/release defines
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   509
  if test "x$DEBUG_LEVEL" = xrelease; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   510
    DEBUG_CFLAGS_JDK="-DNDEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   511
    if test "x$OPENJDK_TARGET_OS" = xsolaris; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   512
      DEBUG_CFLAGS_JDK="$DEBUG_CFLAGS_JDK -DTRIMMED"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   513
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   514
  else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   515
    DEBUG_CFLAGS_JDK="-DDEBUG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   516
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   517
    if test "x$TOOLCHAIN_TYPE" = xxlc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   518
      # We need '-qminimaltoc' or '-qpic=large -bbigtoc' if the TOC overflows.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   519
      # Hotspot now overflows its 64K TOC (currently only for debug),
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   520
      # so for debug we build with '-qpic=large -bbigtoc'.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   521
      DEBUG_CFLAGS_JVM="-qpic=large"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   522
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   523
  fi
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$DEBUG_LEVEL" != xrelease; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   526
    DEBUG_OPTIONS_FLAGS_JDK="$CFLAGS_DEBUG_OPTIONS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   527
    DEBUG_SYMBOLS_CFLAGS_JDK="$CFLAGS_DEBUG_SYMBOLS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   528
    DEBUG_SYMBOLS_CXXFLAGS_JDK="$CXXFLAGS_DEBUG_SYMBOLS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   529
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   530
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   531
  #### TOOLCHAIN DEFINES
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$TOOLCHAIN_TYPE" = xgcc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   534
    ALWAYS_DEFINES_JVM="-D_GNU_SOURCE -D_REENTRANT"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   535
  elif test "x$TOOLCHAIN_TYPE" = xclang; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   536
    ALWAYS_DEFINES_JVM="-D_GNU_SOURCE"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   537
  elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   538
    ALWAYS_DEFINES_JVM="-DSPARC_WORKS -D_Crun_inline_placement"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   539
    ALWAYS_DEFINES_JDK="-DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   540
    ALWAYS_DEFINES_JDK_CXXONLY="-DCC_NOEX"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   541
  elif test "x$TOOLCHAIN_TYPE" = xxlc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   542
    ALWAYS_DEFINES_JVM="-D_REENTRANT"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   543
    ALWAYS_DEFINES_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   544
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   545
    ALWAYS_DEFINES_JDK="-DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_DEPRECATE \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   546
        -D_CRT_NONSTDC_NO_DEPRECATE -DWIN32 -DIAL"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   547
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   548
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   549
  ###############################################################################
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   550
  #
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   551
  #
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   552
  # CFLAGS BASIC
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   553
  if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   554
    # COMMON to gcc and clang
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   555
    TOOLCHAIN_CFLAGS_JVM="-pipe -fno-rtti -fno-exceptions \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   556
        -fvisibility=hidden -fno-strict-aliasing -fno-omit-frame-pointer"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   557
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   558
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   559
  if test "x$TOOLCHAIN_TYPE" = xgcc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   560
    TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fcheck-new"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   561
    TOOLCHAIN_CFLAGS_JDK="-pipe"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   562
    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
   563
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   564
    CXXSTD_CXXFLAG="-std=gnu++98"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   565
    FLAGS_CXX_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$CXXSTD_CXXFLAG -Werror],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   566
    						 IF_FALSE: [CXXSTD_CXXFLAG=""])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   567
    TOOLCHAIN_CFLAGS_JDK_CXXONLY="$CXXSTD_CXXFLAG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   568
    TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM $CXXSTD_CXXFLAG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   569
    ADLC_CXXFLAG="$CXXSTD_CXXFLAG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   570
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   571
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   572
  elif test "x$TOOLCHAIN_TYPE" = xclang; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   573
    # Restrict the debug information created by Clang to avoid
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   574
    # too big object files and speed the build up a little bit
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   575
    # (see http://llvm.org/bugs/show_bug.cgi?id=7554)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   576
    TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -flimit-debug-info"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   577
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   578
    if test "x$OPENJDK_TARGET_OS" = xlinux; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   579
      TOOLCHAIN_CFLAGS_JDK="-pipe"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   580
      TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   581
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   582
  elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
56219
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   583
    TOOLCHAIN_FLAGS="-errtags -errfmt"
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   584
    TOOLCHAIN_CFLAGS="-errshort=tags"
852414e4ae77 Clean up solstudio warning handling.
ihse
parents: 56217
diff changeset
   585
56222
05cc7c290f08 Fix problems on solaris. Now it works.
ihse
parents: 56221
diff changeset
   586
    TOOLCHAIN_CFLAGS_JDK="-mt $TOOLCHAIN_FLAGS"
05cc7c290f08 Fix problems on solaris. Now it works.
ihse
parents: 56221
diff changeset
   587
    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
   588
    TOOLCHAIN_CFLAGS_JDK_CXXONLY="-features=no%except -norunpath -xnolib" # CXX only
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   589
    TOOLCHAIN_CFLAGS_JVM="-template=no%extdef -features=no%split_init \
56222
05cc7c290f08 Fix problems on solaris. Now it works.
ihse
parents: 56221
diff changeset
   590
        -library=stlport4 -mt -features=no%except $TOOLCHAIN_FLAGS"
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   591
  elif test "x$TOOLCHAIN_TYPE" = xxlc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   592
    TOOLCHAIN_CFLAGS_JDK="-qchars=signed -qfullpath -qsaveopt"  # add on both CFLAGS
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   593
    TOOLCHAIN_CFLAGS_JVM="-qtune=balanced \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   594
        -qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   595
        -qlanglvl=noredefmac -qnortti -qnoeh -qignerrno"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   596
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   597
    TOOLCHAIN_CFLAGS_JVM="-nologo -MD -MP"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   598
    TOOLCHAIN_CFLAGS_JDK="-nologo -MD -Zc:wchar_t-"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   599
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   600
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   601
  # CFLAGS WARNINGS STUFF
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   602
  # Set JVM_CFLAGS warning handling
56221
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   603
  if test "x$TOOLCHAIN_TYPE" = xgcc; then
56238
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   604
#    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
   605
#    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
   606
56221
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   607
    WARNING_CFLAGS_JDK="$WARNINGS_ENABLE_ALL $JDK_DISABLED"
56238
c4bda870c926 First pass at getting gcc warnings right.
ihse
parents: 56237
diff changeset
   608
    WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
56221
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   609
    WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   610
    WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL $WARNINGS_ENABLE_ALL_CXXFLAGS $JVM_DISABLED"
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   611
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   612
  elif test "x$TOOLCHAIN_TYPE" = xclang; then
56221
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   613
    WARNING_CFLAGS_JVM="-Wpointer-arith -Wsign-compare -Wunused-function -Wno-deprecated"
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   614
    if test "x$OPENJDK_TARGET_OS" = xlinux; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   615
      WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wno-sometimes-uninitialized"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   616
      WARNING_CFLAGS_JDK="-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   617
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   618
  elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
56221
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   619
    WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   620
    WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
bdf8f77aad3a Trying to clear up gcc warnings as well.
ihse
parents: 56219
diff changeset
   621
    WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL_CXXFLAGS"
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   622
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
56242
e60ee82dc0ce Initial conversion for windows with -Wall and disables.
ihse
parents: 56240
diff changeset
   623
    WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
e60ee82dc0ce Initial conversion for windows with -Wall and disables.
ihse
parents: 56240
diff changeset
   624
    #WARNING_CFLAGS="-W3"
e60ee82dc0ce Initial conversion for windows with -Wall and disables.
ihse
parents: 56240
diff changeset
   625
    #WARNING_CFLAGS_JDK="-wd4800"
49120
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   626
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   627
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   628
  # Set some additional per-OS defines.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   629
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   630
  # Additional macosx handling
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   631
  if test "x$OPENJDK_TARGET_OS" = xmacosx; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   632
    OS_CFLAGS="-DMAC_OS_X_VERSION_MIN_REQUIRED=$MACOSX_VERSION_MIN_NODOTS \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   633
        -mmacosx-version-min=$MACOSX_VERSION_MIN"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   634
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   635
    if test -n "$MACOSX_VERSION_MAX"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   636
        OS_CFLAGS="$OS_CFLAGS \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   637
            -DMAC_OS_X_VERSION_MAX_ALLOWED=$MACOSX_VERSION_MAX_NODOTS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   638
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   639
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   640
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   641
  # Where does this really belong??
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   642
  if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   643
    PICFLAG="-fPIC"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   644
  elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   645
    PICFLAG="-KPIC"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   646
  elif test "x$TOOLCHAIN_TYPE" = xxlc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   647
    # '-qpic' defaults to 'qpic=small'. This means that the compiler generates only
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   648
    # 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
   649
    # 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
   650
    # 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
   651
    # 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
   652
    # 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
   653
    # 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
   654
    # Another alternative instead of using 'qpic=large -bbigtoc' may be to use '-qminimaltoc'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   655
    # 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
   656
    # 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
   657
    # 'performance feature' because of improved code locality of the symbols used in a
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   658
    # compilation unit.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   659
    PICFLAG="-qpic"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   660
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   661
    PICFLAG=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   662
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   663
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   664
  JVM_PICFLAG="$PICFLAG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   665
  JDK_PICFLAG="$PICFLAG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   666
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   667
  if test "x$OPENJDK_TARGET_OS" = xmacosx; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   668
    # Linking is different on MacOSX
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   669
    JDK_PICFLAG=''
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   670
    if test "x$STATIC_BUILD" = xtrue; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   671
      JVM_PICFLAG=""
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   672
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   673
  fi
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
    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
   677
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   678
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   679
  # Optional POSIX functionality needed by the JVM
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   680
  #
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   681
  # Check if clock_gettime is available and in which library. This indicates
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   682
  # 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
   683
  # don't let it update LIBS.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   684
  save_LIBS="$LIBS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   685
  AC_SEARCH_LIBS(clock_gettime, rt, [HAS_CLOCK_GETTIME=true], [])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   686
  if test "x$LIBS" = "x-lrt "; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   687
    CLOCK_GETTIME_IN_LIBRT=true
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   688
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   689
  LIBS="$save_LIBS"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   690
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   691
  if test "x$HAS_CLOCK_GETTIME" = "xtrue"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   692
    OS_CFLAGS_JVM="$OS_CFLAGS_JVM -DSUPPORTS_CLOCK_MONOTONIC"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   693
    if test "x$CLOCK_GETTIME_IN_LIBRT" = "xtrue"; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   694
      OS_CFLAGS_JVM="$OS_CFLAGS_JVM -DNEEDS_LIBRT"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   695
    fi
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
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   698
  # EXPORT
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   699
  AC_SUBST(ADLC_CXXFLAG)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   700
])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   701
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   702
################################################################################
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   703
# $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
   704
#      conditionals against.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   705
# $2 - Optional prefix for each variable defined.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   706
AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   707
[
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   708
  #### CPU DEFINES, these should (in theory) be independent on toolchain
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   709
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   710
  # Setup target CPU
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   711
  # Setup endianness
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   712
  if test "x$FLAGS_CPU_ENDIAN" = xlittle; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   713
    $1_DEFINES_CPU_JVM="-DVM_LITTLE_ENDIAN"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   714
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   715
  if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   716
    # The macro _LITTLE_ENDIAN needs to be defined the same to avoid the
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   717
    #   Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   718
    if test "x$FLAGS_CPU_ENDIAN" = xlittle; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   719
      $1_DEFINES_CPU_JDK="-D_LITTLE_ENDIAN="
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   720
    else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   721
      $1_DEFINES_CPU_JDK="-D_BIG_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
  else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   724
    if test "x$FLAGS_CPU_ENDIAN" = xlittle; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   725
      $1_DEFINES_CPU_JDK="-D_LITTLE_ENDIAN"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   726
    else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   727
      $1_DEFINES_CPU_JDK="-D_BIG_ENDIAN"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   728
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   729
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   730
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   731
  # setup CPU bit size
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   732
  $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -DARCH='\"$FLAGS_CPU_LEGACY\"' \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   733
      -D$FLAGS_CPU_LEGACY"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   734
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   735
  if test "x$FLAGS_CPU_BITS" = x64; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   736
    # -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
   737
    # unpack200.exe.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   738
    if test "x$FLAGS_OS" = xlinux || test "x$FLAGS_OS" = xmacosx; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   739
      $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_LP64=1"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   740
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   741
    if test "x$FLAGS_OS" != xsolaris && test "x$FLAGS_OS" != xaix; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   742
      # Solaris does not have _LP64=1 in the old build.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   743
      # 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
   744
      $1_DEFINES_CPU_JVM="${$1_DEFINES_CPU_JVM} -D_LP64=1"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   745
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   746
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   747
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   748
  # toolchain dependend, per-cpu
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   749
  if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   750
    if test "x$FLAGS_CPU_ARCH" = xx86; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   751
      $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
   752
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   753
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   754
    if test "x$FLAGS_CPU" = xx86_64; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   755
      $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_AMD64_ -Damd64"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   756
    else
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   757
      $1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_X86_ -Dx86"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   758
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   759
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   760
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   761
  # CFLAGS PER CPU
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   762
  if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   763
    # COMMON to gcc and clang
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   764
    if test "x$FLAGS_CPU" = xx86; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   765
      # Force compatibility with i586 on 32 bit intel platforms.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   766
      $1_CFLAGS_CPU="-march=i586"
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
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   769
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   770
  if test "x$TOOLCHAIN_TYPE" = xgcc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   771
    if test "x$FLAGS_CPU" = xarm; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   772
      # -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
   773
      $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
   774
      $1_CFLAGS_CPU_JVM="-DARM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   775
    elif test "x$FLAGS_CPU" = xaarch64; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   776
      if test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   777
        $1_CFLAGS_CPU_JVM="-fsigned-char -DARM"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   778
      fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   779
    elif test "x$FLAGS_CPU_ARCH" = xppc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   780
      $1_CFLAGS_CPU_JVM="-minsert-sched-nops=regroup_exact -mno-multiple -mno-string"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   781
      if test "x$FLAGS_CPU" = xppc64; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   782
        # -mminimal-toc fixes `relocation truncated to fit' error for gcc 4.1.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   783
        # Use ppc64 instructions, but schedule for power5
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   784
        $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
   785
      elif test "x$FLAGS_CPU" = xppc64le; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   786
        # Little endian machine uses ELFv2 ABI.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   787
        # 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
   788
        $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
   789
      fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   790
    elif test "x$FLAGS_CPU" = xs390x; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   791
      $1_CFLAGS_CPU="-mbackchain -march=z10"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   792
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   793
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   794
    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
   795
      # for all archs except arm and ppc, prevent gcc to omit frame pointer
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   796
      $1_CFLAGS_CPU_JDK="${$1_CFLAGS_CPU_JDK} -fno-omit-frame-pointer"
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
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   799
  elif test "x$TOOLCHAIN_TYPE" = xclang; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   800
    if test "x$FLAGS_OS" = xlinux; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   801
      # ppc test not really needed for clang
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
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   807
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   808
  elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   809
    if test "x$FLAGS_CPU" = xx86_64; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   810
      # NOTE: -xregs=no%frameptr is supposed to be default on x64
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   811
      $1_CFLAGS_CPU_JDK="-xregs=no%frameptr"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   812
    elif test "x$FLAGS_CPU" = xsparcv9; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   813
      $1_CFLAGS_CPU_JVM="-xarch=sparc"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   814
      $1_CFLAGS_CPU_JDK_LIBONLY="-xregs=no%appl"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   815
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   816
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   817
  elif test "x$TOOLCHAIN_TYPE" = xxlc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   818
    if test "x$FLAGS_CPU" = xppc64; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   819
      $1_CFLAGS_CPU_JVM="-qarch=ppc64"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   820
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   821
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   822
  elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   823
    if test "x$FLAGS_CPU" = xx86; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   824
      $1_CFLAGS_CPU_JVM="-arch:IA32"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   825
    elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   826
      if test "x$DEBUG_LEVEL" != xrelease; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   827
        # NOTE: This is probably redundant; -homeparams is default on
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   828
        # non-release builds.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   829
        $1_CFLAGS_CPU_JVM="-homeparams"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   830
      fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   831
    fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   832
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   833
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   834
  if test "x$TOOLCHAIN_TYPE" = xgcc; then
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   835
    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
   836
    $1_TOOLCHAIN_CFLAGS="${$1_GCC6_CFLAGS}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   837
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   838
    TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: [4.8], PREFIX: $2,
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   839
        IF_AT_LEAST: [
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   840
          # 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
   841
          $1_WARNING_CFLAGS_JVM="-Wno-format-zero-length -Wtype-limits -Wuninitialized"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   842
        ]
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   843
    )
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   844
  fi
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   845
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   846
  # EXPORT to API
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   847
  CFLAGS_JVM_COMMON="$ALWAYS_CFLAGS_JVM $ALWAYS_DEFINES_JVM $TOOLCHAIN_CFLAGS_JVM \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   848
      $OS_CFLAGS $OS_CFLAGS_JVM $CFLAGS_OS_DEF_JVM $DEBUG_CFLAGS_JVM \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   849
      $WARNING_CFLAGS $WARNING_CFLAGS_JVM $JVM_PICFLAG"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   850
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   851
  CFLAGS_JDK_COMMON="$ALWAYS_CFLAGS_JDK $ALWAYS_DEFINES_JDK $TOOLCHAIN_CFLAGS_JDK \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   852
      $OS_CFLAGS $CFLAGS_OS_DEF_JDK $DEBUG_CFLAGS_JDK $DEBUG_OPTIONS_FLAGS_JDK \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   853
      $WARNING_CFLAGS $WARNING_CFLAGS_JDK"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   854
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   855
  # Use ${$2EXTRA_CFLAGS} to block EXTRA_CFLAGS to be added to build flags.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   856
  # (Currently we don't have any OPENJDK_BUILD_EXTRA_CFLAGS, but that might
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   857
  # change in the future.)
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_CONLY="$TOOLCHAIN_CFLAGS_JDK_CONLY $DEBUG_SYMBOLS_CFLAGS_JDK \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   860
      $WARNING_CFLAGS_JDK_CONLY ${$2EXTRA_CFLAGS}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   861
  CFLAGS_JDK_COMMON_CXXONLY="$ALWAYS_DEFINES_JDK_CXXONLY $TOOLCHAIN_CFLAGS_JDK_CXXONLY \
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   862
      $DEBUG_SYMBOLS_CXXFLAGS_JDK $WARNING_CFLAGS_JDK_CXXONLY ${$2EXTRA_CXXFLAGS}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   863
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   864
  $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
   865
  $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
   866
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   867
  $2JVM_CFLAGS="$CFLAGS_JVM_COMMON ${$1_CFLAGS_JVM} ${$2EXTRA_CXXFLAGS}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   868
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   869
  $2CFLAGS_JDKEXE="$CFLAGS_JDK_COMMON $CFLAGS_JDK_COMMON_CONLY ${$1_CFLAGS_JDK}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   870
  $2CXXFLAGS_JDKEXE="$CFLAGS_JDK_COMMON $CFLAGS_JDK_COMMON_CXXONLY ${$1_CFLAGS_JDK}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   871
  $2CFLAGS_JDKLIB="${$2CFLAGS_JDKEXE} $JDK_PICFLAG ${$1_CFLAGS_CPU_JDK_LIBONLY}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   872
  $2CXXFLAGS_JDKLIB="${$2CXXFLAGS_JDKEXE} $JDK_PICFLAG ${$1_CFLAGS_CPU_JDK_LIBONLY}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   873
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   874
  AC_SUBST($2JVM_CFLAGS)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   875
  AC_SUBST($2CFLAGS_JDKLIB)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   876
  AC_SUBST($2CFLAGS_JDKEXE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   877
  AC_SUBST($2CXXFLAGS_JDKLIB)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   878
  AC_SUBST($2CXXFLAGS_JDKEXE)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   879
])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   880
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   881
# FLAGS_SETUP_GCC6_COMPILER_FLAGS([PREFIX])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   882
# Arguments:
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   883
# $1 - Prefix for each variable defined.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   884
AC_DEFUN([FLAGS_SETUP_GCC6_COMPILER_FLAGS],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   885
[
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   886
  # 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
   887
  # runs afoul of the more aggressive versions of these optimisations.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   888
  # Notably, value range propagation now assumes that the this pointer of C++
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   889
  # member functions is non-null.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   890
  NO_DELETE_NULL_POINTER_CHECKS_CFLAG="-fno-delete-null-pointer-checks"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   891
  dnl Argument check is disabled until FLAGS_COMPILER_CHECK_ARGUMENTS handles cross-compilation
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   892
  dnl FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   893
  dnl					     IF_FALSE: [NO_DELETE_NULL_POINTER_CHECKS_CFLAG=""])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   894
  NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   895
  dnl Argument check is disabled until FLAGS_COMPILER_CHECK_ARGUMENTS handles cross-compilation
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   896
  dnl FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_LIFETIME_DSE_CFLAG -Werror],
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   897
  dnl					     IF_FALSE: [NO_LIFETIME_DSE_CFLAG=""])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   898
  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
   899
  $1_GCC6_CFLAGS="${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}"
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   900
])
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   901
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   902
# Documentation on common flags used for solstudio in HIGHEST.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   903
#
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   904
# WARNING: Use of OPTIMIZATION_LEVEL=HIGHEST in your Makefile needs to be
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   905
#          done with care, there are some assumptions below that need to
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   906
#          be understood about the use of pointers, and IEEE behavior.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   907
#
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   908
# -fns: Use non-standard floating point mode (not IEEE 754)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   909
# -fsimple: Do some simplification of floating point arithmetic (not IEEE 754)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   910
# -fsingle: Use single precision floating point with 'float'
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   911
# -xalias_level=basic: Assume memory references via basic pointer types do not alias
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   912
#   (Source with excessing pointer casting and data access with mixed
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   913
#    pointer types are not recommended)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   914
# -xbuiltin=%all: Use intrinsic or inline versions for math/std functions
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   915
#   (If you expect perfect errno behavior, do not use this)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   916
# -xdepend: Loop data dependency optimizations (need -xO3 or higher)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   917
# -xrestrict: Pointer parameters to functions do not overlap
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   918
#   (Similar to -xalias_level=basic usage, but less obvious sometimes.
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   919
#    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
   920
# -xlibmil: Inline some library routines
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   921
#   (If you expect perfect errno behavior, do not use this)
c04d813140dc 8198724: Refactor FLAGS handling in configure
ihse
parents:
diff changeset
   922
# -xlibmopt: Use optimized math routines (CURRENTLY DISABLED)
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
#  Can cause undefined external on Solaris 8 X86 on __sincos, removing for now