Mercurial > hg > graal-jvmci-8
comparison make/bsd/makefiles/gcc.make @ 4006:436b4a3231bf
7098194: integrate macosx-port changes
Summary: Integrate bsd-port/hotspot and macosx-port/hotspot changes as of 2011.09.29.
Reviewed-by: kvn, dholmes, never, phh
Contributed-by: Christos Zoulas <christos@zoulas.com>, Greg Lewis <glewis@eyesbeyond.com>, Kurt Miller <kurt@intricatesoftware.com>, Alexander Strange <astrange@apple.com>, Mike Swingler <swingler@apple.com>, Roger Hoover <rhoover@apple.com>, Victor Hernandez <vhernandez@apple.com>, Pratik Solanki <psolanki@apple.com>
author | dcubed |
---|---|
date | Thu, 13 Oct 2011 09:35:42 -0700 |
parents | f08d439fab8c |
children | 95009f678859 |
comparison
equal
deleted
inserted
replaced
4005:2ef3386478e6 | 4006:436b4a3231bf |
---|---|
28 # CC, CPP & AS | 28 # CC, CPP & AS |
29 | 29 |
30 # When cross-compiling the ALT_COMPILER_PATH points | 30 # When cross-compiling the ALT_COMPILER_PATH points |
31 # to the cross-compilation toolset | 31 # to the cross-compilation toolset |
32 ifdef CROSS_COMPILE_ARCH | 32 ifdef CROSS_COMPILE_ARCH |
33 CXX = $(ALT_COMPILER_PATH)/g++ | 33 CPP = $(ALT_COMPILER_PATH)/g++ |
34 CPP = $(ALT_COMPILER_PATH)/g++ | 34 CC = $(ALT_COMPILER_PATH)/gcc |
35 CC = $(ALT_COMPILER_PATH)/gcc | 35 HOSTCPP = g++ |
36 HOSTCPP = g++ | 36 HOSTCC = gcc |
37 HOSTCC = gcc | 37 else ifneq ($(OS_VENDOR), Darwin) |
38 else | 38 CXX = g++ |
39 CXX ?= g++ | 39 CPP = $(CXX) |
40 CPP = $(CXX) | 40 CC = gcc |
41 CC ?= gcc | 41 HOSTCPP = $(CPP) |
42 HOSTCPP = $(CPP) | 42 HOSTCC = $(CC) |
43 HOSTCC = $(CPP) | 43 endif |
44 | |
45 # i486 hotspot requires -mstackrealign on Darwin. | |
46 # llvm-gcc supports this in Xcode 3.2.6 and 4.0. | |
47 # gcc-4.0 supports this on earlier versions. | |
48 # Prefer llvm-gcc where available. | |
49 ifeq ($(OS_VENDOR), Darwin) | |
50 ifeq ($(origin CXX), default) | |
51 CXX = llvm-g++ | |
52 endif | |
53 ifeq ($(origin CC), default) | |
54 CC = llvm-gcc | |
55 endif | |
56 CPP = $(CXX) | |
57 | |
58 ifeq ($(ARCH), i486) | |
59 LLVM_SUPPORTS_STACKREALIGN := $(shell \ | |
60 [ "0"`llvm-gcc -v 2>&1 | grep LLVM | sed -E "s/.*LLVM build ([0-9]+).*/\1/"` -gt "2333" ] \ | |
61 && echo true || echo false) | |
62 | |
63 ifeq ($(LLVM_SUPPORTS_STACKREALIGN), true) | |
64 CXX32 ?= llvm-g++ | |
65 CC32 ?= llvm-gcc | |
66 else | |
67 CXX32 ?= g++-4.0 | |
68 CC32 ?= gcc-4.0 | |
69 endif | |
70 CPP = $(CXX32) | |
71 CC = $(CC32) | |
72 endif | |
73 | |
74 HOSTCPP = $(CPP) | |
75 HOSTCC = $(CC) | |
44 endif | 76 endif |
45 | 77 |
46 AS = $(CC) -c -x assembler-with-cpp | 78 AS = $(CC) -c -x assembler-with-cpp |
47 | 79 |
48 # -dumpversion in gcc-2.91 shows "egcs-2.91.66". In later version, it only | 80 # -dumpversion in gcc-2.91 shows "egcs-2.91.66". In later version, it only |
128 else | 160 else |
129 CFLAGS += -pipe | 161 CFLAGS += -pipe |
130 endif | 162 endif |
131 | 163 |
132 # Compiler warnings are treated as errors | 164 # Compiler warnings are treated as errors |
133 WARNINGS_ARE_ERRORS = -Werror | 165 ifneq ($(COMPILER_WARNINGS_FATAL),false) |
166 WARNINGS_ARE_ERRORS = -Werror | |
167 endif | |
134 | 168 |
135 # Except for a few acceptable ones | 169 # Except for a few acceptable ones |
136 # Since GCC 4.3, -Wconversion has changed its meanings to warn these implicit | 170 # Since GCC 4.3, -Wconversion has changed its meanings to warn these implicit |
137 # conversions which might affect the values. To avoid that, we need to turn | 171 # conversions which might affect the values. To avoid that, we need to turn |
138 # it off explicitly. | 172 # it off explicitly. |
150 CFLAGS_WARN/os_bsd.o = $(CFLAGS_WARN/DEFAULT) -Wno-deprecated-declarations | 184 CFLAGS_WARN/os_bsd.o = $(CFLAGS_WARN/DEFAULT) -Wno-deprecated-declarations |
151 endif | 185 endif |
152 | 186 |
153 | 187 |
154 # The flags to use for an Optimized g++ build | 188 # The flags to use for an Optimized g++ build |
155 OPT_CFLAGS += -O3 | 189 ifeq ($(OS_VENDOR), Darwin) |
190 # use -Os by default, unless -O3 can be proved to be worth the cost, as per policy | |
191 # <http://wikis.sun.com/display/OpenJDK/Mac+OS+X+Port+Compilers> | |
192 OPT_CFLAGS += -Os | |
193 else | |
194 OPT_CFLAGS += -O3 | |
195 endif | |
156 | 196 |
157 # Hotspot uses very unstrict aliasing turn this optimization off | 197 # Hotspot uses very unstrict aliasing turn this optimization off |
158 OPT_CFLAGS += -fno-strict-aliasing | 198 OPT_CFLAGS += -fno-strict-aliasing |
159 | 199 |
160 # The gcc compiler segv's on ia64 when compiling bytecodeInterpreter.cpp | 200 # The gcc compiler segv's on ia64 when compiling bytecodeInterpreter.cpp |
210 | 250 |
211 # Use $(SONAMEFLAG:SONAME=soname) to specify the intrinsic name of a shared obj | 251 # Use $(SONAMEFLAG:SONAME=soname) to specify the intrinsic name of a shared obj |
212 SONAMEFLAG = | 252 SONAMEFLAG = |
213 | 253 |
214 # Build shared library | 254 # Build shared library |
215 SHARED_FLAG = -dynamiclib $(VM_PICFLAG) | 255 SHARED_FLAG = -Wl,-install_name,@rpath/$(@F) -dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $(VM_PICFLAG) |
216 | 256 |
217 # Keep symbols even they are not used | 257 # Keep symbols even they are not used |
218 #AOUT_FLAGS += -Xlinker -export-dynamic | 258 #AOUT_FLAGS += -Xlinker -export-dynamic |
219 else | 259 else |
220 # Enable linker optimization | 260 # Enable linker optimization |