author | ihse |
Tue, 20 Feb 2018 21:46:02 +0100 | |
branch | ihse-cflags-rewrite-branch |
changeset 56168 | cb0b10e44247 |
parent 56162 | d421dac1932f |
child 56176 | b3e3a12dcb33 |
permissions | -rw-r--r-- |
13133
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
1 |
# |
48767
0c6ce8fdb50a
8080990: libdt_socket/socket_md.c(202) : warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW()
gadams
parents:
48751
diff
changeset
|
2 |
# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved. |
13133
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
3 |
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
4 |
# |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
5 |
# This code is free software; you can redistribute it and/or modify it |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
6 |
# under the terms of the GNU General Public License version 2 only, as |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
7 |
# published by the Free Software Foundation. Oracle designates this |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
8 |
# particular file as subject to the "Classpath" exception as provided |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
9 |
# by Oracle in the LICENSE file that accompanied this code. |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
10 |
# |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
11 |
# This code is distributed in the hope that it will be useful, but WITHOUT |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
12 |
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
13 |
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
14 |
# version 2 for more details (a copy is included in the LICENSE file that |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
15 |
# accompanied this code). |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
16 |
# |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
17 |
# You should have received a copy of the GNU General Public License version |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
18 |
# 2 along with this work; if not, write to the Free Software Foundation, |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
19 |
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
20 |
# |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
21 |
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
22 |
# or visit www.oracle.com if you need additional information or have any |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
23 |
# questions. |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
24 |
# |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
25 |
|
42538 | 26 |
################################################################################ |
27 |
# |
|
56124 | 28 |
# Setup flags for C/C++ compiler |
42538 | 29 |
# |
30 |
||
56124 | 31 |
############################################################################### |
32 |
# |
|
33 |
# How to compile shared libraries. |
|
34 |
# |
|
35 |
AC_DEFUN([FLAGS_SETUP_SHARED_LIBS], |
|
32810
8203e52cd373
8138694: Devkit build on Macosx still requires Xcode to be installed
erikj
parents:
30856
diff
changeset
|
36 |
[ |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
37 |
if test "x$TOOLCHAIN_TYPE" = xgcc; then |
13133
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
38 |
C_FLAG_REORDER='' |
56168 | 39 |
|
40 |
# Default works for linux, might work on other platforms as well. |
|
41 |
SHARED_LIBRARY_FLAGS='-shared' |
|
42 |
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1' |
|
43 |
SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN" |
|
44 |
SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1' |
|
45 |
SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1' |
|
46 |
||
47 |
elif test "x$TOOLCHAIN_TYPE" = xclang; then |
|
48 |
C_FLAG_REORDER='' |
|
13133
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
49 |
|
14111 | 50 |
if test "x$OPENJDK_TARGET_OS" = xmacosx; then |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
51 |
# Linking is different on MacOSX |
56158
97b2b2de66f2
Fixing PIC-flag issues, and all remaining differences on linux_x64.
ihse
parents:
56146
diff
changeset
|
52 |
SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0" |
44398
406532d25529
8177634: Fix for 8175307 may cause linker errors on OS X 10.9
ihse
parents:
44074
diff
changeset
|
53 |
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path$(or [$]1,/.)' |
23161
85635b5bf0a6
8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
henryjen
parents:
22730
diff
changeset
|
54 |
SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN" |
34596
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
55 |
SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1' |
35747 | 56 |
SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,[$]1' |
37402 | 57 |
|
23161
85635b5bf0a6
8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
henryjen
parents:
22730
diff
changeset
|
58 |
else |
85635b5bf0a6
8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
henryjen
parents:
22730
diff
changeset
|
59 |
# Default works for linux, might work on other platforms as well. |
85635b5bf0a6
8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
henryjen
parents:
22730
diff
changeset
|
60 |
SHARED_LIBRARY_FLAGS='-shared' |
41875 | 61 |
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1' |
34596
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
62 |
SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1' |
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
63 |
SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1' |
42538 | 64 |
|
65 |
# arm specific settings |
|
66 |
if test "x$OPENJDK_TARGET_CPU" = "xarm"; then |
|
67 |
# '-Wl,-z,origin' isn't used on arm. |
|
68 |
SET_SHARED_LIBRARY_ORIGIN='-Wl,-rpath,\$$$$ORIGIN[$]1' |
|
69 |
else |
|
70 |
SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN" |
|
71 |
fi |
|
56168 | 72 |
fi |
42538 | 73 |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
74 |
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
75 |
C_FLAG_REORDER='-xF' |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
76 |
SHARED_LIBRARY_FLAGS="-G" |
41875 | 77 |
SET_EXECUTABLE_ORIGIN='-R\$$ORIGIN[$]1' |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
78 |
SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN" |
34596
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
79 |
SET_SHARED_LIBRARY_NAME='-h [$]1' |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
80 |
SET_SHARED_LIBRARY_MAPFILE='-M[$]1' |
56168 | 81 |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
82 |
elif test "x$TOOLCHAIN_TYPE" = xxlc; then |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
83 |
C_FLAG_REORDER='' |
36051 | 84 |
SHARED_LIBRARY_FLAGS="-qmkshrobj -bM:SRE -bnoentry" |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
85 |
SET_EXECUTABLE_ORIGIN="" |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
86 |
SET_SHARED_LIBRARY_ORIGIN='' |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
87 |
SET_SHARED_LIBRARY_NAME='' |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
88 |
SET_SHARED_LIBRARY_MAPFILE='' |
56168 | 89 |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
90 |
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
91 |
C_FLAG_REORDER='' |
34596
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
92 |
SHARED_LIBRARY_FLAGS="-dll" |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
93 |
SET_EXECUTABLE_ORIGIN='' |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
94 |
SET_SHARED_LIBRARY_ORIGIN='' |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
95 |
SET_SHARED_LIBRARY_NAME='' |
35747 | 96 |
SET_SHARED_LIBRARY_MAPFILE='-def:[$]1' |
20363 | 97 |
fi |
13133
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
98 |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
99 |
AC_SUBST(C_FLAG_REORDER) |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
100 |
AC_SUBST(SET_EXECUTABLE_ORIGIN) |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
101 |
AC_SUBST(SET_SHARED_LIBRARY_ORIGIN) |
20363 | 102 |
AC_SUBST(SET_SHARED_LIBRARY_NAME) |
103 |
AC_SUBST(SET_SHARED_LIBRARY_MAPFILE) |
|
34596
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
104 |
AC_SUBST(SHARED_LIBRARY_FLAGS) |
13133
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
105 |
]) |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
106 |
|
56124 | 107 |
AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS], |
13133
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
108 |
[ |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
109 |
# Debug symbols |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
110 |
if test "x$TOOLCHAIN_TYPE" = xgcc; then |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
111 |
if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test "x$DEBUG_LEVEL" = "xfastdebug"; then |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
112 |
CFLAGS_DEBUG_SYMBOLS="-g1" |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
113 |
else |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
114 |
CFLAGS_DEBUG_SYMBOLS="-g" |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
115 |
fi |
23161
85635b5bf0a6
8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
henryjen
parents:
22730
diff
changeset
|
116 |
elif test "x$TOOLCHAIN_TYPE" = xclang; then |
85635b5bf0a6
8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
henryjen
parents:
22730
diff
changeset
|
117 |
CFLAGS_DEBUG_SYMBOLS="-g" |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
118 |
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
119 |
CFLAGS_DEBUG_SYMBOLS="-g -xs" |
35032 | 120 |
# -g0 enables debug symbols without disabling inlining. |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
121 |
CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs" |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
122 |
elif test "x$TOOLCHAIN_TYPE" = xxlc; then |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
123 |
CFLAGS_DEBUG_SYMBOLS="-g" |
36531
ef4e1ca50af8
8151619: genSocketOptionRegistry.exe always relinked on Windows
erikj
parents:
36051
diff
changeset
|
124 |
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then |
ef4e1ca50af8
8151619: genSocketOptionRegistry.exe always relinked on Windows
erikj
parents:
36051
diff
changeset
|
125 |
CFLAGS_DEBUG_SYMBOLS="-Zi" |
56162 | 126 |
fi |
127 |
||
128 |
if test "x$CXXFLAGS_DEBUG_SYMBOLS" = x; then |
|
129 |
# If we did not specify special flags for C++, use C version |
|
130 |
CXXFLAGS_DEBUG_SYMBOLS="$CFLAGS_DEBUG_SYMBOLS" |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
131 |
fi |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
132 |
AC_SUBST(CFLAGS_DEBUG_SYMBOLS) |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
133 |
AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS) |
56161
a7585ecb9fc2
Trying to sort out EXTRA_CFLAGS. Moving all flag handling to flags.m4.
ihse
parents:
56158
diff
changeset
|
134 |
|
a7585ecb9fc2
Trying to sort out EXTRA_CFLAGS. Moving all flag handling to flags.m4.
ihse
parents:
56158
diff
changeset
|
135 |
# FIXME: This was never used in the old build. What to do with it? |
a7585ecb9fc2
Trying to sort out EXTRA_CFLAGS. Moving all flag handling to flags.m4.
ihse
parents:
56158
diff
changeset
|
136 |
if test "x$TOOLCHAIN_TYPE" = xgcc; then |
a7585ecb9fc2
Trying to sort out EXTRA_CFLAGS. Moving all flag handling to flags.m4.
ihse
parents:
56158
diff
changeset
|
137 |
# "-Og" suppported for GCC 4.8 and later |
a7585ecb9fc2
Trying to sort out EXTRA_CFLAGS. Moving all flag handling to flags.m4.
ihse
parents:
56158
diff
changeset
|
138 |
CFLAG_OPTIMIZE_DEBUG_FLAG="-Og" |
a7585ecb9fc2
Trying to sort out EXTRA_CFLAGS. Moving all flag handling to flags.m4.
ihse
parents:
56158
diff
changeset
|
139 |
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$CFLAG_OPTIMIZE_DEBUG_FLAG], |
a7585ecb9fc2
Trying to sort out EXTRA_CFLAGS. Moving all flag handling to flags.m4.
ihse
parents:
56158
diff
changeset
|
140 |
IF_TRUE: [HAS_CFLAG_OPTIMIZE_DEBUG=true], |
a7585ecb9fc2
Trying to sort out EXTRA_CFLAGS. Moving all flag handling to flags.m4.
ihse
parents:
56158
diff
changeset
|
141 |
IF_FALSE: [HAS_CFLAG_OPTIMIZE_DEBUG=false]) |
a7585ecb9fc2
Trying to sort out EXTRA_CFLAGS. Moving all flag handling to flags.m4.
ihse
parents:
56158
diff
changeset
|
142 |
fi |
56124 | 143 |
]) |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
144 |
|
56124 | 145 |
AC_DEFUN([FLAGS_SETUP_QUALITY_CHECKS], |
146 |
[ |
|
24911
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
147 |
# bounds, memory and behavior checking options |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
148 |
if test "x$TOOLCHAIN_TYPE" = xgcc; then |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
149 |
case $DEBUG_LEVEL in |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
150 |
release ) |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
151 |
# no adjustment |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
152 |
;; |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
153 |
fastdebug ) |
26123
44827e1a7a7b
8047952: Remove FORTIFY_SOURCE from fastdebug and slowdebug builds
mduigou
parents:
25459
diff
changeset
|
154 |
# no adjustment |
24911
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
155 |
;; |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
156 |
slowdebug ) |
37402 | 157 |
# FIXME: By adding this to C(XX)FLAGS_DEBUG_OPTIONS/JVM_CFLAGS_SYMBOLS it |
35747 | 158 |
# get's added conditionally on whether we produce debug symbols or not. |
159 |
# This is most likely not really correct. |
|
160 |
||
30856
09b01c98ca8d
8081692: Configure should verify that -fstack-protector is valid
ihse
parents:
30740
diff
changeset
|
161 |
# Add runtime stack smashing and undefined behavior checks. |
09b01c98ca8d
8081692: Configure should verify that -fstack-protector is valid
ihse
parents:
30740
diff
changeset
|
162 |
# Not all versions of gcc support -fstack-protector |
09b01c98ca8d
8081692: Configure should verify that -fstack-protector is valid
ihse
parents:
30740
diff
changeset
|
163 |
STACK_PROTECTOR_CFLAG="-fstack-protector-all" |
56168 | 164 |
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$STACK_PROTECTOR_CFLAG -Werror], |
165 |
IF_FALSE: [STACK_PROTECTOR_CFLAG=""]) |
|
30856
09b01c98ca8d
8081692: Configure should verify that -fstack-protector is valid
ihse
parents:
30740
diff
changeset
|
166 |
|
09b01c98ca8d
8081692: Configure should verify that -fstack-protector is valid
ihse
parents:
30740
diff
changeset
|
167 |
CFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1" |
09b01c98ca8d
8081692: Configure should verify that -fstack-protector is valid
ihse
parents:
30740
diff
changeset
|
168 |
CXXFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1" |
24911
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
169 |
;; |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
170 |
esac |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
171 |
fi |
56124 | 172 |
]) |
24911
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
173 |
|
56124 | 174 |
AC_DEFUN([FLAGS_SETUP_OPTIMIZATION], |
175 |
[ |
|
37402 | 176 |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
177 |
# Optimization levels |
56162 | 178 |
# Most toolchains share opt flags between CC and CXX; |
179 |
# setup for C and duplicate afterwards. |
|
180 |
||
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
181 |
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
56162 | 182 |
CC_HIGHEST="-fns -fsimple -fsingle -xbuiltin=%all -xdepend -xrestrict -xlibmil" |
13133
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
183 |
|
56162 | 184 |
C_O_FLAG_HIGHEST_JVM="-xO4" |
185 |
C_O_FLAG_DEBUG_JVM="" |
|
186 |
C_O_FLAG_SIZE="" |
|
187 |
C_O_FLAG_DEBUG="" |
|
188 |
C_O_FLAG_NONE="" |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
189 |
if test "x$OPENJDK_TARGET_CPU_ARCH" = "xx86"; then |
56162 | 190 |
C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST" |
191 |
C_O_FLAG_HI="-xO4 -Wu,-O4~yz" |
|
192 |
C_O_FLAG_NORM="-xO2 -Wu,-O2~yz" |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
193 |
elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then |
56168 | 194 |
C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 \ |
195 |
-xprefetch=auto,explicit -xchip=ultra $CC_HIGHEST" |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
196 |
C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0" |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
197 |
C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0" |
56162 | 198 |
fi |
199 |
elif test "x$TOOLCHAIN_TYPE" = xgcc; then |
|
200 |
C_O_FLAG_HIGHEST_JVM="-O3" |
|
201 |
C_O_FLAG_HIGHEST="-O3" |
|
202 |
C_O_FLAG_HI="-O3" |
|
203 |
C_O_FLAG_NORM="-O2" |
|
204 |
C_O_FLAG_SIZE="-Os" |
|
205 |
C_O_FLAG_DEBUG="-O0" |
|
206 |
C_O_FLAG_DEBUG_JVM="-O0" |
|
207 |
C_O_FLAG_NONE="-O0" |
|
208 |
elif test "x$TOOLCHAIN_TYPE" = xclang; then |
|
209 |
if test "x$OPENJDK_TARGET_OS" = xmacosx; then |
|
210 |
# On MacOSX we optimize for size, something |
|
211 |
# we should do for all platforms? |
|
212 |
C_O_FLAG_HIGHEST_JVM="-Os" |
|
213 |
C_O_FLAG_HIGHEST="-Os" |
|
214 |
C_O_FLAG_HI="-Os" |
|
215 |
C_O_FLAG_NORM="-Os" |
|
37402 | 216 |
C_O_FLAG_DEBUG_JVM="" |
56162 | 217 |
else |
218 |
C_O_FLAG_HIGHEST_JVM="-O3" |
|
219 |
C_O_FLAG_HIGHEST="-O3" |
|
220 |
C_O_FLAG_HI="-O3" |
|
221 |
C_O_FLAG_NORM="-O2" |
|
222 |
C_O_FLAG_DEBUG_JVM="-O0" |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
223 |
fi |
56162 | 224 |
C_O_FLAG_SIZE="-Os" |
225 |
C_O_FLAG_DEBUG="-O0" |
|
226 |
C_O_FLAG_NONE="-O0" |
|
227 |
elif test "x$TOOLCHAIN_TYPE" = xxlc; then |
|
228 |
C_O_FLAG_HIGHEST_JVM="-O3 -qhot=level=1 -qinline -qinlglue" |
|
229 |
C_O_FLAG_HIGHEST="-O3 -qhot=level=1 -qinline -qinlglue" |
|
230 |
C_O_FLAG_HI="-O3 -qinline -qinlglue" |
|
231 |
C_O_FLAG_NORM="-O2" |
|
232 |
C_O_FLAG_DEBUG="-qnoopt" |
|
233 |
# FIXME: Value below not verified. |
|
234 |
C_O_FLAG_DEBUG_JVM="" |
|
235 |
C_O_FLAG_NONE="-qnoopt" |
|
236 |
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then |
|
237 |
C_O_FLAG_HIGHEST_JVM="-O2 -Oy-" |
|
238 |
C_O_FLAG_HIGHEST="-O2" |
|
239 |
C_O_FLAG_HI="-O1" |
|
240 |
C_O_FLAG_NORM="-O1" |
|
241 |
C_O_FLAG_DEBUG="-Od" |
|
242 |
C_O_FLAG_DEBUG_JVM="" |
|
243 |
C_O_FLAG_NONE="-Od" |
|
244 |
C_O_FLAG_SIZE="-Os" |
|
245 |
fi |
|
246 |
||
247 |
# Now copy to C++ flags |
|
248 |
CXX_O_FLAG_HIGHEST_JVM="$C_O_FLAG_HIGHEST_JVM" |
|
249 |
CXX_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST" |
|
250 |
CXX_O_FLAG_HI="$C_O_FLAG_HI" |
|
251 |
CXX_O_FLAG_NORM="$C_O_FLAG_NORM" |
|
252 |
CXX_O_FLAG_DEBUG="$C_O_FLAG_DEBUG" |
|
253 |
CXX_O_FLAG_DEBUG_JVM="$C_O_FLAG_DEBUG_JVM" |
|
254 |
CXX_O_FLAG_NONE="$C_O_FLAG_NONE" |
|
255 |
CXX_O_FLAG_SIZE="$C_O_FLAG_SIZE" |
|
256 |
||
257 |
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
|
258 |
# In solstudio, also add this to C (but not C++) flags... |
|
259 |
C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xalias_level=basic" |
|
20363 | 260 |
fi |
13133
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
261 |
|
24911
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
262 |
# Adjust optimization flags according to debug level. |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
263 |
case $DEBUG_LEVEL in |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
264 |
release ) |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
265 |
# no adjustment |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
266 |
;; |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
267 |
fastdebug ) |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
268 |
# Not quite so much optimization |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
269 |
C_O_FLAG_HI="$C_O_FLAG_NORM" |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
270 |
CXX_O_FLAG_HI="$CXX_O_FLAG_NORM" |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
271 |
;; |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
272 |
slowdebug ) |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
273 |
# Disable optimization |
37402 | 274 |
C_O_FLAG_HIGHEST_JVM="$C_O_FLAG_DEBUG_JVM" |
24911
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
275 |
C_O_FLAG_HIGHEST="$C_O_FLAG_DEBUG" |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
276 |
C_O_FLAG_HI="$C_O_FLAG_DEBUG" |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
277 |
C_O_FLAG_NORM="$C_O_FLAG_DEBUG" |
37402 | 278 |
C_O_FLAG_SIZE="$C_O_FLAG_DEBUG" |
279 |
CXX_O_FLAG_HIGHEST_JVM="$CXX_O_FLAG_DEBUG_JVM" |
|
24911
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
280 |
CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_DEBUG" |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
281 |
CXX_O_FLAG_HI="$CXX_O_FLAG_DEBUG" |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
282 |
CXX_O_FLAG_NORM="$CXX_O_FLAG_DEBUG" |
37402 | 283 |
CXX_O_FLAG_SIZE="$CXX_O_FLAG_DEBUG" |
24911
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
284 |
;; |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
285 |
esac |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
286 |
|
37402 | 287 |
AC_SUBST(C_O_FLAG_HIGHEST_JVM) |
20363 | 288 |
AC_SUBST(C_O_FLAG_HIGHEST) |
289 |
AC_SUBST(C_O_FLAG_HI) |
|
290 |
AC_SUBST(C_O_FLAG_NORM) |
|
291 |
AC_SUBST(C_O_FLAG_NONE) |
|
37402 | 292 |
AC_SUBST(C_O_FLAG_SIZE) |
293 |
AC_SUBST(CXX_O_FLAG_HIGHEST_JVM) |
|
20363 | 294 |
AC_SUBST(CXX_O_FLAG_HIGHEST) |
295 |
AC_SUBST(CXX_O_FLAG_HI) |
|
296 |
AC_SUBST(CXX_O_FLAG_NORM) |
|
297 |
AC_SUBST(CXX_O_FLAG_NONE) |
|
37402 | 298 |
AC_SUBST(CXX_O_FLAG_SIZE) |
13133
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
299 |
]) |