author | ihse |
Tue, 20 Feb 2018 21:30:05 +0100 | |
branch | ihse-cflags-rewrite-branch |
changeset 56162 | d421dac1932f |
parent 56161 | a7585ecb9fc2 |
child 56168 | cb0b10e44247 |
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 |
PICFLAG="-fPIC" |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
39 |
C_FLAG_REORDER='' |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
40 |
CXX_FLAG_REORDER='' |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
41 |
|
14111 | 42 |
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
|
43 |
# Linking is different on MacOSX |
33562
c76b2fa11486
8136556: Add the ability to perform static builds of MacOSX x64 binaries
bobv
parents:
32813
diff
changeset
|
44 |
if test "x$STATIC_BUILD" = xtrue; then |
c76b2fa11486
8136556: Add the ability to perform static builds of MacOSX x64 binaries
bobv
parents:
32813
diff
changeset
|
45 |
SHARED_LIBRARY_FLAGS ='-undefined dynamic_lookup' |
c76b2fa11486
8136556: Add the ability to perform static builds of MacOSX x64 binaries
bobv
parents:
32813
diff
changeset
|
46 |
else |
56158
97b2b2de66f2
Fixing PIC-flag issues, and all remaining differences on linux_x64.
ihse
parents:
56146
diff
changeset
|
47 |
SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 -fPIC" |
33562
c76b2fa11486
8136556: Add the ability to perform static builds of MacOSX x64 binaries
bobv
parents:
32813
diff
changeset
|
48 |
fi |
44398
406532d25529
8177634: Fix for 8175307 may cause linker errors on OS X 10.9
ihse
parents:
44074
diff
changeset
|
49 |
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path$(or [$]1,/.)' |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
50 |
SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN" |
34596
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
51 |
SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1' |
35747 | 52 |
SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,[$]1' |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
53 |
else |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
54 |
# Default works for linux, might work on other platforms as well. |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
55 |
SHARED_LIBRARY_FLAGS='-shared' |
41875 | 56 |
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1' |
34596
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
57 |
SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN" |
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
58 |
SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1' |
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
59 |
SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1' |
13133
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
60 |
fi |
23161
85635b5bf0a6
8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
henryjen
parents:
22730
diff
changeset
|
61 |
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
|
62 |
C_FLAG_REORDER='' |
85635b5bf0a6
8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
henryjen
parents:
22730
diff
changeset
|
63 |
CXX_FLAG_REORDER='' |
85635b5bf0a6
8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
henryjen
parents:
22730
diff
changeset
|
64 |
|
85635b5bf0a6
8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
henryjen
parents:
22730
diff
changeset
|
65 |
if test "x$OPENJDK_TARGET_OS" = xmacosx; then |
85635b5bf0a6
8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
henryjen
parents:
22730
diff
changeset
|
66 |
# Linking is different on MacOSX |
34596
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
67 |
PICFLAG='' |
56158
97b2b2de66f2
Fixing PIC-flag issues, and all remaining differences on linux_x64.
ihse
parents:
56146
diff
changeset
|
68 |
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
|
69 |
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
|
70 |
SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN" |
34596
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
71 |
SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1' |
35747 | 72 |
SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,[$]1' |
37402 | 73 |
|
23161
85635b5bf0a6
8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
henryjen
parents:
22730
diff
changeset
|
74 |
else |
85635b5bf0a6
8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
henryjen
parents:
22730
diff
changeset
|
75 |
# Default works for linux, might work on other platforms as well. |
34596
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
76 |
PICFLAG='-fPIC' |
23161
85635b5bf0a6
8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
henryjen
parents:
22730
diff
changeset
|
77 |
SHARED_LIBRARY_FLAGS='-shared' |
41875 | 78 |
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1' |
34596
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
79 |
SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1' |
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
80 |
SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1' |
42538 | 81 |
|
82 |
# arm specific settings |
|
83 |
if test "x$OPENJDK_TARGET_CPU" = "xarm"; then |
|
84 |
# '-Wl,-z,origin' isn't used on arm. |
|
85 |
SET_SHARED_LIBRARY_ORIGIN='-Wl,-rpath,\$$$$ORIGIN[$]1' |
|
86 |
else |
|
87 |
SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN" |
|
88 |
fi |
|
89 |
||
23161
85635b5bf0a6
8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
henryjen
parents:
22730
diff
changeset
|
90 |
fi |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
91 |
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
42141 | 92 |
if test "x$OPENJDK_TARGET_CPU" = xsparcv9; then |
93 |
PICFLAG="-xcode=pic32" |
|
94 |
else |
|
95 |
PICFLAG="-KPIC" |
|
96 |
fi |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
97 |
C_FLAG_REORDER='-xF' |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
98 |
CXX_FLAG_REORDER='-xF' |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
99 |
SHARED_LIBRARY_FLAGS="-G" |
41875 | 100 |
SET_EXECUTABLE_ORIGIN='-R\$$ORIGIN[$]1' |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
101 |
SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN" |
34596
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
102 |
SET_SHARED_LIBRARY_NAME='-h [$]1' |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
103 |
SET_SHARED_LIBRARY_MAPFILE='-M[$]1' |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
104 |
elif test "x$TOOLCHAIN_TYPE" = xxlc; then |
36051 | 105 |
# '-qpic' defaults to 'qpic=small'. This means that the compiler generates only |
106 |
# one instruction for accessing the TOC. If the TOC grows larger than 64K, the linker |
|
107 |
# will have to patch this single instruction with a call to some out-of-order code which |
|
108 |
# does the load from the TOC. This is of course slow. But in that case we also would have |
|
109 |
# to use '-bbigtoc' for linking anyway so we could also change the PICFLAG to 'qpic=large'. |
|
110 |
# With 'qpic=large' the compiler will by default generate a two-instruction sequence which |
|
111 |
# can be patched directly by the linker and does not require a jump to out-of-order code. |
|
112 |
# Another alternative instead of using 'qpic=large -bbigtoc' may be to use '-qminimaltoc' |
|
113 |
# instead. This creates a distinct TOC for every compilation unit (and thus requires two |
|
114 |
# loads for accessing a global variable). But there are rumors that this may be seen as a |
|
115 |
# 'performance feature' because of improved code locality of the symbols used in a |
|
116 |
# compilation unit. |
|
117 |
PICFLAG="-qpic" |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
118 |
C_FLAG_REORDER='' |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
119 |
CXX_FLAG_REORDER='' |
36051 | 120 |
SHARED_LIBRARY_FLAGS="-qmkshrobj -bM:SRE -bnoentry" |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
121 |
SET_EXECUTABLE_ORIGIN="" |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
122 |
SET_SHARED_LIBRARY_ORIGIN='' |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
123 |
SET_SHARED_LIBRARY_NAME='' |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
124 |
SET_SHARED_LIBRARY_MAPFILE='' |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
125 |
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
126 |
PICFLAG="" |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
127 |
C_FLAG_REORDER='' |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
128 |
CXX_FLAG_REORDER='' |
34596
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
129 |
SHARED_LIBRARY_FLAGS="-dll" |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
130 |
SET_EXECUTABLE_ORIGIN='' |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
131 |
SET_SHARED_LIBRARY_ORIGIN='' |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
132 |
SET_SHARED_LIBRARY_NAME='' |
35747 | 133 |
SET_SHARED_LIBRARY_MAPFILE='-def:[$]1' |
20363 | 134 |
fi |
13133
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
135 |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
136 |
AC_SUBST(C_FLAG_REORDER) |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
137 |
AC_SUBST(CXX_FLAG_REORDER) |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
138 |
AC_SUBST(SET_EXECUTABLE_ORIGIN) |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
139 |
AC_SUBST(SET_SHARED_LIBRARY_ORIGIN) |
20363 | 140 |
AC_SUBST(SET_SHARED_LIBRARY_NAME) |
141 |
AC_SUBST(SET_SHARED_LIBRARY_MAPFILE) |
|
34596
e8328ce5b64e
8142907: Integration of minor fixes from the build-infra project
ihse
parents:
34120
diff
changeset
|
142 |
AC_SUBST(SHARED_LIBRARY_FLAGS) |
13133
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
143 |
]) |
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
144 |
|
56124 | 145 |
AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS], |
13133
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
146 |
[ |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
147 |
# Debug symbols |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
148 |
if test "x$TOOLCHAIN_TYPE" = xgcc; then |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
149 |
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
|
150 |
CFLAGS_DEBUG_SYMBOLS="-g1" |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
151 |
else |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
152 |
CFLAGS_DEBUG_SYMBOLS="-g" |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
153 |
fi |
23161
85635b5bf0a6
8019470: Changes needed to compile JDK 8 on MacOS with clang compiler
henryjen
parents:
22730
diff
changeset
|
154 |
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
|
155 |
CFLAGS_DEBUG_SYMBOLS="-g" |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
156 |
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
157 |
CFLAGS_DEBUG_SYMBOLS="-g -xs" |
35032 | 158 |
# -g0 enables debug symbols without disabling inlining. |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
159 |
CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs" |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
160 |
elif test "x$TOOLCHAIN_TYPE" = xxlc; then |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
161 |
CFLAGS_DEBUG_SYMBOLS="-g" |
36531
ef4e1ca50af8
8151619: genSocketOptionRegistry.exe always relinked on Windows
erikj
parents:
36051
diff
changeset
|
162 |
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then |
ef4e1ca50af8
8151619: genSocketOptionRegistry.exe always relinked on Windows
erikj
parents:
36051
diff
changeset
|
163 |
CFLAGS_DEBUG_SYMBOLS="-Zi" |
56162 | 164 |
fi |
165 |
||
166 |
if test "x$CXXFLAGS_DEBUG_SYMBOLS" = x; then |
|
167 |
# If we did not specify special flags for C++, use C version |
|
168 |
CXXFLAGS_DEBUG_SYMBOLS="$CFLAGS_DEBUG_SYMBOLS" |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
169 |
fi |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
170 |
AC_SUBST(CFLAGS_DEBUG_SYMBOLS) |
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
171 |
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
|
172 |
|
a7585ecb9fc2
Trying to sort out EXTRA_CFLAGS. Moving all flag handling to flags.m4.
ihse
parents:
56158
diff
changeset
|
173 |
# 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
|
174 |
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
|
175 |
# "-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
|
176 |
CFLAG_OPTIMIZE_DEBUG_FLAG="-Og" |
a7585ecb9fc2
Trying to sort out EXTRA_CFLAGS. Moving all flag handling to flags.m4.
ihse
parents:
56158
diff
changeset
|
177 |
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
|
178 |
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
|
179 |
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
|
180 |
fi |
a7585ecb9fc2
Trying to sort out EXTRA_CFLAGS. Moving all flag handling to flags.m4.
ihse
parents:
56158
diff
changeset
|
181 |
|
56124 | 182 |
]) |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
183 |
|
56124 | 184 |
AC_DEFUN([FLAGS_SETUP_QUALITY_CHECKS], |
185 |
[ |
|
24911
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
186 |
# bounds, memory and behavior checking options |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
187 |
if test "x$TOOLCHAIN_TYPE" = xgcc; then |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
188 |
case $DEBUG_LEVEL in |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
189 |
release ) |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
190 |
# no adjustment |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
191 |
;; |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
192 |
fastdebug ) |
26123
44827e1a7a7b
8047952: Remove FORTIFY_SOURCE from fastdebug and slowdebug builds
mduigou
parents:
25459
diff
changeset
|
193 |
# no adjustment |
24911
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
194 |
;; |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
195 |
slowdebug ) |
37402 | 196 |
# FIXME: By adding this to C(XX)FLAGS_DEBUG_OPTIONS/JVM_CFLAGS_SYMBOLS it |
35747 | 197 |
# get's added conditionally on whether we produce debug symbols or not. |
198 |
# This is most likely not really correct. |
|
199 |
||
30856
09b01c98ca8d
8081692: Configure should verify that -fstack-protector is valid
ihse
parents:
30740
diff
changeset
|
200 |
# Add runtime stack smashing and undefined behavior checks. |
09b01c98ca8d
8081692: Configure should verify that -fstack-protector is valid
ihse
parents:
30740
diff
changeset
|
201 |
# Not all versions of gcc support -fstack-protector |
09b01c98ca8d
8081692: Configure should verify that -fstack-protector is valid
ihse
parents:
30740
diff
changeset
|
202 |
STACK_PROTECTOR_CFLAG="-fstack-protector-all" |
35451
d0b71f2375d0
8129395: Configure should verify that -fstack-protector is valid - take 2
ihse
parents:
35450
diff
changeset
|
203 |
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$STACK_PROTECTOR_CFLAG -Werror], IF_FALSE: [STACK_PROTECTOR_CFLAG=""]) |
30856
09b01c98ca8d
8081692: Configure should verify that -fstack-protector is valid
ihse
parents:
30740
diff
changeset
|
204 |
|
09b01c98ca8d
8081692: Configure should verify that -fstack-protector is valid
ihse
parents:
30740
diff
changeset
|
205 |
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
|
206 |
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
|
207 |
;; |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
208 |
esac |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
209 |
fi |
56124 | 210 |
]) |
24911
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
211 |
|
56124 | 212 |
AC_DEFUN([FLAGS_SETUP_OPTIMIZATION], |
213 |
[ |
|
37402 | 214 |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
215 |
# Optimization levels |
56162 | 216 |
# Most toolchains share opt flags between CC and CXX; |
217 |
# setup for C and duplicate afterwards. |
|
218 |
||
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
219 |
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
56162 | 220 |
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
|
221 |
|
56162 | 222 |
C_O_FLAG_HIGHEST_JVM="-xO4" |
223 |
C_O_FLAG_DEBUG_JVM="" |
|
224 |
C_O_FLAG_SIZE="" |
|
225 |
C_O_FLAG_DEBUG="" |
|
226 |
C_O_FLAG_NONE="" |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
227 |
if test "x$OPENJDK_TARGET_CPU_ARCH" = "xx86"; then |
56162 | 228 |
C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST" |
229 |
C_O_FLAG_HI="-xO4 -Wu,-O4~yz" |
|
230 |
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
|
231 |
elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then |
56162 | 232 |
C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 -xprefetch=auto,explicit -xchip=ultra $CC_HIGHEST" |
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
233 |
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
|
234 |
C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0" |
56162 | 235 |
fi |
236 |
elif test "x$TOOLCHAIN_TYPE" = xgcc; then |
|
237 |
C_O_FLAG_HIGHEST_JVM="-O3" |
|
238 |
C_O_FLAG_HIGHEST="-O3" |
|
239 |
C_O_FLAG_HI="-O3" |
|
240 |
C_O_FLAG_NORM="-O2" |
|
241 |
C_O_FLAG_SIZE="-Os" |
|
242 |
C_O_FLAG_DEBUG="-O0" |
|
243 |
C_O_FLAG_DEBUG_JVM="-O0" |
|
244 |
C_O_FLAG_NONE="-O0" |
|
245 |
elif test "x$TOOLCHAIN_TYPE" = xclang; then |
|
246 |
if test "x$OPENJDK_TARGET_OS" = xmacosx; then |
|
247 |
# On MacOSX we optimize for size, something |
|
248 |
# we should do for all platforms? |
|
249 |
C_O_FLAG_HIGHEST_JVM="-Os" |
|
250 |
C_O_FLAG_HIGHEST="-Os" |
|
251 |
C_O_FLAG_HI="-Os" |
|
252 |
C_O_FLAG_NORM="-Os" |
|
37402 | 253 |
C_O_FLAG_DEBUG_JVM="" |
56162 | 254 |
else |
255 |
C_O_FLAG_HIGHEST_JVM="-O3" |
|
256 |
C_O_FLAG_HIGHEST="-O3" |
|
257 |
C_O_FLAG_HI="-O3" |
|
258 |
C_O_FLAG_NORM="-O2" |
|
259 |
C_O_FLAG_DEBUG_JVM="-O0" |
|
22721
63761da45392
8034788: Rewrite toolchain.m4 to support multiple toolchains per platform.
ihse
parents:
22715
diff
changeset
|
260 |
fi |
56162 | 261 |
C_O_FLAG_SIZE="-Os" |
262 |
C_O_FLAG_DEBUG="-O0" |
|
263 |
C_O_FLAG_NONE="-O0" |
|
264 |
elif test "x$TOOLCHAIN_TYPE" = xxlc; then |
|
265 |
C_O_FLAG_HIGHEST_JVM="-O3 -qhot=level=1 -qinline -qinlglue" |
|
266 |
C_O_FLAG_HIGHEST="-O3 -qhot=level=1 -qinline -qinlglue" |
|
267 |
C_O_FLAG_HI="-O3 -qinline -qinlglue" |
|
268 |
C_O_FLAG_NORM="-O2" |
|
269 |
C_O_FLAG_DEBUG="-qnoopt" |
|
270 |
# FIXME: Value below not verified. |
|
271 |
C_O_FLAG_DEBUG_JVM="" |
|
272 |
C_O_FLAG_NONE="-qnoopt" |
|
273 |
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then |
|
274 |
C_O_FLAG_HIGHEST_JVM="-O2 -Oy-" |
|
275 |
C_O_FLAG_HIGHEST="-O2" |
|
276 |
C_O_FLAG_HI="-O1" |
|
277 |
C_O_FLAG_NORM="-O1" |
|
278 |
C_O_FLAG_DEBUG="-Od" |
|
279 |
C_O_FLAG_DEBUG_JVM="" |
|
280 |
C_O_FLAG_NONE="-Od" |
|
281 |
C_O_FLAG_SIZE="-Os" |
|
282 |
fi |
|
283 |
||
284 |
# Now copy to C++ flags |
|
285 |
CXX_O_FLAG_HIGHEST_JVM="$C_O_FLAG_HIGHEST_JVM" |
|
286 |
CXX_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST" |
|
287 |
CXX_O_FLAG_HI="$C_O_FLAG_HI" |
|
288 |
CXX_O_FLAG_NORM="$C_O_FLAG_NORM" |
|
289 |
CXX_O_FLAG_DEBUG="$C_O_FLAG_DEBUG" |
|
290 |
CXX_O_FLAG_DEBUG_JVM="$C_O_FLAG_DEBUG_JVM" |
|
291 |
CXX_O_FLAG_NONE="$C_O_FLAG_NONE" |
|
292 |
CXX_O_FLAG_SIZE="$C_O_FLAG_SIZE" |
|
293 |
||
294 |
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
|
295 |
# In solstudio, also add this to C (but not C++) flags... |
|
296 |
C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xalias_level=basic" |
|
20363 | 297 |
fi |
13133
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
298 |
|
24911
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
299 |
# Adjust optimization flags according to debug level. |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
300 |
case $DEBUG_LEVEL in |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
301 |
release ) |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
302 |
# no adjustment |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
303 |
;; |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
304 |
fastdebug ) |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
305 |
# Not quite so much optimization |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
306 |
C_O_FLAG_HI="$C_O_FLAG_NORM" |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
307 |
CXX_O_FLAG_HI="$CXX_O_FLAG_NORM" |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
308 |
;; |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
309 |
slowdebug ) |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
310 |
# Disable optimization |
37402 | 311 |
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
|
312 |
C_O_FLAG_HIGHEST="$C_O_FLAG_DEBUG" |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
313 |
C_O_FLAG_HI="$C_O_FLAG_DEBUG" |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
314 |
C_O_FLAG_NORM="$C_O_FLAG_DEBUG" |
37402 | 315 |
C_O_FLAG_SIZE="$C_O_FLAG_DEBUG" |
316 |
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
|
317 |
CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_DEBUG" |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
318 |
CXX_O_FLAG_HI="$CXX_O_FLAG_DEBUG" |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
319 |
CXX_O_FLAG_NORM="$CXX_O_FLAG_DEBUG" |
37402 | 320 |
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
|
321 |
;; |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
322 |
esac |
a039e17f8896
8032045: Enable compiler and linker safety switches for debug builds
mduigou
parents:
23981
diff
changeset
|
323 |
|
37402 | 324 |
AC_SUBST(C_O_FLAG_HIGHEST_JVM) |
20363 | 325 |
AC_SUBST(C_O_FLAG_HIGHEST) |
326 |
AC_SUBST(C_O_FLAG_HI) |
|
327 |
AC_SUBST(C_O_FLAG_NORM) |
|
328 |
AC_SUBST(C_O_FLAG_NONE) |
|
37402 | 329 |
AC_SUBST(C_O_FLAG_SIZE) |
330 |
AC_SUBST(CXX_O_FLAG_HIGHEST_JVM) |
|
20363 | 331 |
AC_SUBST(CXX_O_FLAG_HIGHEST) |
332 |
AC_SUBST(CXX_O_FLAG_HI) |
|
333 |
AC_SUBST(CXX_O_FLAG_NORM) |
|
334 |
AC_SUBST(CXX_O_FLAG_NONE) |
|
37402 | 335 |
AC_SUBST(CXX_O_FLAG_SIZE) |
13133
701e61c32ece
7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents:
diff
changeset
|
336 |
]) |