]>
Commit | Line | Data |
---|---|---|
acd57ac5 | 1 | |
b05a2a18 NN |
2 | # This file should be included (directly or indirectly) by every |
3 | # Makefile.am that builds programs. And also the top-level Makefile.am. | |
4 | ||
5 | #---------------------------------------------------------------------------- | |
6 | # Global stuff | |
7 | #---------------------------------------------------------------------------- | |
acd57ac5 | 8 | |
acd57ac5 NN |
9 | inplacedir = $(top_builddir)/.in_place |
10 | ||
b05a2a18 NN |
11 | # This used to be required when Vex had a handwritten Makefile. It |
12 | # shouldn't be needed any more, though. | |
13 | ##.NOTPARALLEL: | |
14 | ||
15 | #---------------------------------------------------------------------------- | |
16 | # noinst_PROGRAMS and noinst_DSYMS targets | |
17 | #---------------------------------------------------------------------------- | |
18 | ||
19 | # On Darwin, for a program 'p', the DWARF debug info is stored in the | |
20 | # directory 'p.dSYM'. This must be generated after the executable is | |
21 | # created, with 'dsymutil p'. We could redefine LINK with a script that | |
22 | # executes 'dsymutil' after linking, but that's a pain. Instead we use this | |
23 | # hook so that every time "make check" is run, we subsequently invoke | |
24 | # 'dsymutil' on all the executables that lack a .dSYM directory, or that are | |
25 | # newer than their corresponding .dSYM directory. | |
26 | build-noinst_DSYMS: $(noinst_DSYMS) | |
27 | for f in $(noinst_DSYMS); do \ | |
28 | if [ ! -e $$f.dSYM -o $$f -nt $$f.dSYM ] ; then \ | |
29 | echo "dsymutil $$f"; \ | |
30 | dsymutil $$f; \ | |
31 | fi; \ | |
32 | done | |
33 | ||
34 | # This is used by coregrind/Makefile.am and Makefile.tool.am for doing | |
35 | # "in-place" installs. It copies $(noinst_PROGRAMS) into $inplacedir. | |
36 | # It needs to be depended on by an 'all-local' rule. | |
37 | inplace-noinst_PROGRAMS: $(noinst_PROGRAMS) | |
389b3f02 NN |
38 | mkdir -p $(inplacedir); \ |
39 | for f in $(noinst_PROGRAMS) ; do \ | |
52760b13 NN |
40 | rm -f $(inplacedir)/$$f; \ |
41 | ln -f -s ../$(subdir)/$$f $(inplacedir); \ | |
389b3f02 | 42 | done |
b05a2a18 NN |
43 | |
44 | # Similar to inplace-noinst_PROGRAMS | |
45 | inplace-noinst_DSYMS: build-noinst_DSYMS | |
389b3f02 NN |
46 | mkdir -p $(inplacedir); \ |
47 | for f in $(noinst_DSYMS); do \ | |
48 | rm -f $(inplacedir)/$$f.dSYM; \ | |
49 | ln -f -s ../$(subdir)/$$f.dSYM $(inplacedir); \ | |
50 | done | |
b05a2a18 NN |
51 | |
52 | # This is used by coregrind/Makefile.am and by <tool>/Makefile.am for doing | |
c9d1cd0d | 53 | # "make install". It copies $(noinst_PROGRAMS) into $prefix/libexec/valgrind/. |
b05a2a18 NN |
54 | # It needs to be depended on by an 'install-exec-local' rule. |
55 | install-noinst_PROGRAMS: $(noinst_PROGRAMS) | |
c9d1cd0d | 56 | $(mkinstalldirs) $(DESTDIR)$(pkglibexecdir); \ |
389b3f02 | 57 | for f in $(noinst_PROGRAMS); do \ |
c9d1cd0d | 58 | $(INSTALL_PROGRAM) $$f $(DESTDIR)$(pkglibexecdir); \ |
389b3f02 | 59 | done |
b05a2a18 | 60 | |
895f25f4 | 61 | # This is used by coregrind/Makefile.am and by <tool>/Makefile.am for doing |
c9d1cd0d | 62 | # "make uninstall". It removes $(noinst_PROGRAMS) from $prefix/libexec/valgrind/. |
895f25f4 MW |
63 | # It needs to be depended on by an 'uninstall-local' rule. |
64 | uninstall-noinst_PROGRAMS: | |
65 | for f in $(noinst_PROGRAMS); do \ | |
c9d1cd0d | 66 | rm -f $(DESTDIR)$(pkglibexecdir)/$$f; \ |
895f25f4 MW |
67 | done |
68 | ||
b05a2a18 NN |
69 | # Similar to install-noinst_PROGRAMS. |
70 | # Nb: we don't use $(INSTALL_PROGRAM) here because it doesn't work with | |
71 | # directories. XXX: not sure whether the resulting permissions will be | |
72 | # correct when using 'cp -R'... | |
73 | install-noinst_DSYMS: build-noinst_DSYMS | |
c9d1cd0d | 74 | $(mkinstalldirs) $(DESTDIR)$(pkglibexecdir); \ |
389b3f02 | 75 | for f in $(noinst_DSYMS); do \ |
c9d1cd0d | 76 | cp -R $$f.dSYM $(DESTDIR)$(pkglibexecdir); \ |
389b3f02 | 77 | done |
b05a2a18 | 78 | |
895f25f4 MW |
79 | # Similar to uninstall-noinst_PROGRAMS. |
80 | uninstall-noinst_DSYMS: | |
81 | for f in $(noinst_DSYMS); do \ | |
c9d1cd0d | 82 | rm -f $(DESTDIR)$(pkglibexecdir)/$$f.dSYM; \ |
895f25f4 MW |
83 | done |
84 | ||
b05a2a18 NN |
85 | # This needs to be depended on by a 'clean-local' rule. |
86 | clean-noinst_DSYMS: | |
87 | for f in $(noinst_DSYMS); do \ | |
88 | rm -rf $$f.dSYM; \ | |
89 | done | |
90 | ||
91 | #---------------------------------------------------------------------------- | |
92 | # Flags | |
93 | #---------------------------------------------------------------------------- | |
94 | ||
95 | # Baseline flags for all compilations. Aim here is to maximise | |
96 | # performance and get whatever useful warnings we can out of gcc. | |
e8ce3f7a JS |
97 | # -fno-builtin is important for defeating LLVM's idiom recognition |
98 | # that somehow causes VG_(memset) to get into infinite recursion. | |
b05a2a18 | 99 | AM_CFLAGS_BASE = \ |
71cf18c1 | 100 | -O2 -g \ |
b05a2a18 NN |
101 | -Wall \ |
102 | -Wmissing-prototypes \ | |
103 | -Wshadow \ | |
104 | -Wpointer-arith \ | |
105 | -Wstrict-prototypes \ | |
106 | -Wmissing-declarations \ | |
b41e80f2 | 107 | @FLAG_W_CAST_ALIGN@ \ |
f38d96dd FK |
108 | @FLAG_W_CAST_QUAL@ \ |
109 | @FLAG_W_WRITE_STRINGS@ \ | |
2de98199 | 110 | @FLAG_W_EMPTY_BODY@ \ |
f38d96dd | 111 | @FLAG_W_FORMAT@ \ |
9a3883bf | 112 | @FLAG_W_FORMAT_SIGNEDNESS@ \ |
f38d96dd | 113 | @FLAG_W_FORMAT_SECURITY@ \ |
096bcbf0 FK |
114 | @FLAG_W_IGNORED_QUALIFIERS@ \ |
115 | @FLAG_W_MISSING_PARAMETER_TYPE@ \ | |
f19a956e | 116 | @FLAG_W_LOGICAL_OP@ \ |
3e94579a | 117 | @FLAG_W_ENUM_CONVERSION@ \ |
f04ae9f3 | 118 | @FLAG_W_IMPLICIT_FALLTHROUGH@ \ |
096bcbf0 | 119 | @FLAG_W_OLD_STYLE_DECLARATION@ \ |
71cf18c1 | 120 | @FLAG_FINLINE_FUNCTIONS@ \ |
f38d96dd | 121 | @FLAG_FNO_STACK_PROTECTOR@ \ |
6dce6532 | 122 | @FLAG_FSANITIZE@ \ |
e8ce3f7a JS |
123 | -fno-strict-aliasing \ |
124 | -fno-builtin | |
b05a2a18 | 125 | |
025bdca2 CL |
126 | # Power ISA flag for use by guest_ppc_helpers.c |
127 | if HAS_XSCVHPDP | |
8afb49ab | 128 | if HAS_DARN |
a63e9c28 | 129 | ISA_3_0_BUILD_FLAG = -DHAS_XSCVHPDP -DHAS_DARN -DHAS_ISA_3_00 |
8afb49ab | 130 | else |
a63e9c28 | 131 | ISA_3_0_BUILD_FLAG = -DHAS_XSCVHPDP -DHAS_ISA_3_00 |
8afb49ab | 132 | endif |
025bdca2 CL |
133 | else |
134 | ISA_3_0_BUILD_FLAG = | |
135 | endif | |
136 | ||
f38d96dd FK |
137 | if COMPILER_IS_CLANG |
138 | AM_CFLAGS_BASE += -Wno-cast-align -Wno-self-assign \ | |
139 | -Wno-tautological-compare | |
140 | endif | |
141 | ||
26f0bb05 | 142 | # These flags are used for building the preload shared objects (PSOs). |
b05a2a18 NN |
143 | # The aim is to give reasonable performance but also to have good |
144 | # stack traces, since users often see stack traces extending | |
26f0bb05 JS |
145 | # into (and through) the preloads. Also, we must use any |
146 | # -mpreferred-stack-boundary flag to build the preload shared | |
147 | # objects, since that risks misaligning the client's stack and | |
148 | # results in segfaults like (eg) #324050. | |
b05a2a18 | 149 | if VGCONF_OS_IS_DARWIN |
26f0bb05 JS |
150 | AM_CFLAGS_PSO_BASE = -dynamic \ |
151 | -O -g -fno-omit-frame-pointer -fno-strict-aliasing \ | |
d2b96ae9 | 152 | -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@ |
b05a2a18 | 153 | else |
e2583c02 PF |
154 | if VGCONF_OS_IS_FREEBSD |
155 | AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \ | |
156 | -fpic -fPIC -fno-builtin | |
157 | if COMPILER_IS_CLANG | |
158 | AM_CFLAGS_BASE += @FLAG_W_NO_EXPANSION_TO_DEFINED@ | |
159 | endif | |
160 | else | |
26f0bb05 | 161 | AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \ |
d2b96ae9 | 162 | -fpic -fno-builtin @FLAG_FNO_IPA_ICF@ |
b05a2a18 | 163 | endif |
e2583c02 | 164 | endif |
b05a2a18 NN |
165 | |
166 | ||
167 | # Flags for specific targets. | |
168 | # | |
169 | # Nb: the AM_CPPFLAGS_* values are suitable for building tools and auxprogs. | |
170 | # For building the core, coregrind/Makefile.am files add some extra things. | |
b05a2a18 NN |
171 | |
172 | AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@ = \ | |
e9de4585 JS |
173 | -I$(top_srcdir) \ |
174 | -I$(top_srcdir)/include \ | |
3387b8ba | 175 | -I$(top_builddir)/include \ |
b05a2a18 | 176 | -I$(top_srcdir)/VEX/pub \ |
fbd9fe85 | 177 | -I$(top_builddir)/VEX/pub \ |
b05a2a18 NN |
178 | -DVGA_@VGCONF_ARCH_PRI@=1 \ |
179 | -DVGO_@VGCONF_OS@=1 \ | |
d136f187 JS |
180 | -DVGP_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1 \ |
181 | -DVGPV_@VGCONF_ARCH_PRI@_@VGCONF_OS@_@VGCONF_PLATVARIANT@=1 | |
b05a2a18 NN |
182 | if VGCONF_HAVE_PLATFORM_SEC |
183 | AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@ = \ | |
e9de4585 JS |
184 | -I$(top_srcdir) \ |
185 | -I$(top_srcdir)/include \ | |
3387b8ba | 186 | -I$(top_builddir)/include \ |
b05a2a18 | 187 | -I$(top_srcdir)/VEX/pub \ |
fbd9fe85 | 188 | -I$(top_builddir)/VEX/pub \ |
b05a2a18 NN |
189 | -DVGA_@VGCONF_ARCH_SEC@=1 \ |
190 | -DVGO_@VGCONF_OS@=1 \ | |
d136f187 JS |
191 | -DVGP_@VGCONF_ARCH_SEC@_@VGCONF_OS@=1 \ |
192 | -DVGPV_@VGCONF_ARCH_SEC@_@VGCONF_OS@_@VGCONF_PLATVARIANT@=1 | |
b05a2a18 NN |
193 | endif |
194 | ||
9a6cf7a4 PJ |
195 | if VGCONF_HAVE_ABI |
196 | AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@ += -DVGABI_@VGCONF_ABI@ | |
197 | if VGCONF_HAVE_PLATFORM_SEC | |
198 | AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@ += -DVGABI_@VGCONF_ABI@ | |
199 | endif | |
200 | endif | |
201 | ||
b05a2a18 | 202 | AM_FLAG_M3264_X86_LINUX = @FLAG_M32@ |
26f0bb05 | 203 | AM_CFLAGS_X86_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY_2@ \ |
cad5f2ea | 204 | $(AM_CFLAGS_BASE) -fomit-frame-pointer |
26f0bb05 | 205 | AM_CFLAGS_PSO_X86_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE) |
46b85eeb | 206 | AM_CCASFLAGS_X86_LINUX = @FLAG_M32@ -g |
b05a2a18 NN |
207 | |
208 | AM_FLAG_M3264_AMD64_LINUX = @FLAG_M64@ | |
26f0bb05 | 209 | AM_CFLAGS_AMD64_LINUX = @FLAG_M64@ \ |
cad5f2ea | 210 | $(AM_CFLAGS_BASE) -fomit-frame-pointer |
26f0bb05 | 211 | AM_CFLAGS_PSO_AMD64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE) |
46b85eeb | 212 | AM_CCASFLAGS_AMD64_LINUX = @FLAG_M64@ -g |
b05a2a18 NN |
213 | |
214 | AM_FLAG_M3264_PPC32_LINUX = @FLAG_M32@ | |
215 | AM_CFLAGS_PPC32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) | |
26f0bb05 | 216 | AM_CFLAGS_PSO_PPC32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE) |
46b85eeb | 217 | AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g |
b05a2a18 | 218 | |
a6348169 CL |
219 | AM_FLAG_M3264_PPC64BE_LINUX = @FLAG_M64@ |
220 | AM_CFLAGS_PPC64BE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) | |
26f0bb05 | 221 | AM_CFLAGS_PSO_PPC64BE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE) |
a6348169 CL |
222 | AM_CCASFLAGS_PPC64BE_LINUX = @FLAG_M64@ -g |
223 | ||
224 | AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@ | |
025bdca2 | 225 | AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(ISA_3_0_BUILD_FLAG) |
26f0bb05 | 226 | AM_CFLAGS_PSO_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE) |
a6348169 | 227 | AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g |
b05a2a18 | 228 | |
e2583c02 PF |
229 | AM_FLAG_M3264_X86_FREEBSD = @FLAG_M32@ |
230 | AM_CFLAGS_X86_FREEBSD = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY_2@ \ | |
231 | $(AM_CFLAGS_BASE) -fomit-frame-pointer | |
232 | AM_CFLAGS_PSO_X86_FREEBSD = @FLAG_M32@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE) | |
233 | AM_CCASFLAGS_X86_FREEBSD = @FLAG_M32@ -g | |
234 | ||
3ddac968 PF |
235 | AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@ @VGCONF_PLATFORM_ARM_ARCH@ |
236 | AM_CFLAGS_ARM_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) @VGCONF_PLATFORM_ARM_ARCH@ | |
26f0bb05 | 237 | AM_CFLAGS_PSO_ARM_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) \ |
3ddac968 PF |
238 | $(AM_CFLAGS_PSO_BASE) @VGCONF_PLATFORM_ARM_ARCH@ |
239 | AM_CCASFLAGS_ARM_LINUX = @FLAG_M32@ @VGCONF_PLATFORM_ARM_ARCH@ | |
e9de4585 | 240 | |
3f6d2112 JS |
241 | AM_FLAG_M3264_ARM64_LINUX = @FLAG_M64@ |
242 | AM_CFLAGS_ARM64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) | |
26f0bb05 | 243 | AM_CFLAGS_PSO_ARM64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE) |
3f6d2112 JS |
244 | AM_CCASFLAGS_ARM64_LINUX = @FLAG_M64@ -g |
245 | ||
e2583c02 PF |
246 | |
247 | AM_FLAG_M3264_AMD64_FREEBSD = @FLAG_M64@ | |
248 | AM_CFLAGS_AMD64_FREEBSD = @FLAG_M64@ \ | |
249 | $(AM_CFLAGS_BASE) -fomit-frame-pointer | |
250 | AM_CFLAGS_PSO_AMD64_FREEBSD = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE) | |
251 | AM_CCASFLAGS_AMD64_FREEBSD = @FLAG_M64@ -g | |
252 | ||
26924849 PF |
253 | AM_CFLAGS_ARM64_FREEBSD = @FLAG_M64@ $(AM_CFLAGS_BASE) |
254 | AM_CFLAGS_PSO_ARM64_FREEBSD= @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE) | |
255 | AM_CCASFLAGS_ARM64_FREEBSD = @FLAG_M64@ -g | |
e2583c02 | 256 | |
b05a2a18 NN |
257 | AM_FLAG_M3264_X86_DARWIN = -arch i386 |
258 | AM_CFLAGS_X86_DARWIN = $(WERROR) -arch i386 $(AM_CFLAGS_BASE) \ | |
0661bc7e | 259 | -mmacosx-version-min=10.6 \ |
3cd099ab | 260 | -fno-pic -fno-PIC |
6fd0eb7b | 261 | |
26f0bb05 | 262 | AM_CFLAGS_PSO_X86_DARWIN = $(AM_CFLAGS_X86_DARWIN) $(AM_CFLAGS_PSO_BASE) |
46b85eeb | 263 | AM_CCASFLAGS_X86_DARWIN = -arch i386 -g |
b05a2a18 NN |
264 | |
265 | AM_FLAG_M3264_AMD64_DARWIN = -arch x86_64 | |
266 | AM_CFLAGS_AMD64_DARWIN = $(WERROR) -arch x86_64 $(AM_CFLAGS_BASE) \ | |
3cd099ab | 267 | -mmacosx-version-min=10.6 |
26f0bb05 | 268 | AM_CFLAGS_PSO_AMD64_DARWIN = $(AM_CFLAGS_AMD64_DARWIN) $(AM_CFLAGS_PSO_BASE) |
46b85eeb | 269 | AM_CCASFLAGS_AMD64_DARWIN = -arch x86_64 -g |
b05a2a18 | 270 | |
6107fd66 | 271 | AM_FLAG_M3264_S390X_LINUX = @FLAG_M64@ |
92c67b0a | 272 | AM_CFLAGS_S390X_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) -fomit-frame-pointer |
26f0bb05 | 273 | AM_CFLAGS_PSO_S390X_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE) |
05364323 | 274 | AM_CCASFLAGS_S390X_LINUX = @FLAG_M64@ -g |
46b85eeb | 275 | |
3e344c57 | 276 | AM_FLAG_M3264_MIPS32_LINUX = @FLAG_M32@ |
c0695891 PJ |
277 | AM_CFLAGS_MIPS32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) |
278 | AM_CFLAGS_PSO_MIPS32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) \ | |
26f0bb05 | 279 | $(AM_CFLAGS_PSO_BASE) |
c0695891 | 280 | AM_CCASFLAGS_MIPS32_LINUX = @FLAG_M32@ -g |
3e344c57 | 281 | |
deae79f7 PJ |
282 | AM_FLAG_M3264_NANOMIPS_LINUX = @FLAG_M32@ |
283 | AM_CFLAGS_NANOMIPS_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) -mno-jump-table-opt | |
284 | AM_CFLAGS_PSO_NANOMIPS_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) \ | |
285 | $(AM_CFLAGS_PSO_BASE) | |
286 | AM_CCASFLAGS_NANOMIPS_LINUX = @FLAG_M32@ -g | |
287 | ||
5dd4c02e | 288 | AM_FLAG_M3264_MIPS64_LINUX = @FLAG_M64@ |
c0695891 PJ |
289 | AM_CFLAGS_MIPS64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) |
290 | AM_CFLAGS_PSO_MIPS64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) \ | |
26f0bb05 | 291 | $(AM_CFLAGS_PSO_BASE) |
c0695891 | 292 | AM_CCASFLAGS_MIPS64_LINUX = @FLAG_M64@ -g |
6107fd66 | 293 | |
ac60633d JS |
294 | AM_FLAG_M3264_X86_SOLARIS = @FLAG_M32@ |
295 | AM_CFLAGS_X86_SOLARIS = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY_2@ \ | |
8caab853 | 296 | $(AM_CFLAGS_BASE) -fomit-frame-pointer @SOLARIS_UNDEF_LARGESOURCE@ |
ac60633d JS |
297 | AM_CFLAGS_PSO_X86_SOLARIS = @FLAG_M32@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE) |
298 | AM_CCASFLAGS_X86_SOLARIS = @FLAG_M32@ -g -D_ASM | |
299 | ||
300 | AM_FLAG_M3264_AMD64_SOLARIS = @FLAG_M64@ | |
301 | AM_CFLAGS_AMD64_SOLARIS = @FLAG_M64@ \ | |
302 | $(AM_CFLAGS_BASE) -fomit-frame-pointer | |
303 | AM_CFLAGS_PSO_AMD64_SOLARIS = @FLAG_M64@ $(AM_CFLAGS_BASE) $(AM_CFLAGS_PSO_BASE) | |
304 | AM_CCASFLAGS_AMD64_SOLARIS = @FLAG_M64@ -g -D_ASM | |
305 | ||
b05a2a18 NN |
306 | # Flags for the primary target. These must be used to build the |
307 | # regtests and performance tests. In fact, these must be used to | |
308 | # build anything which is built only once on a dual-arch build. | |
309 | # | |
310 | AM_FLAG_M3264_PRI = $(AM_FLAG_M3264_@VGCONF_PLATFORM_PRI_CAPS@) | |
311 | AM_CPPFLAGS_PRI = $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) | |
312 | AM_CFLAGS_PRI = $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) | |
313 | AM_CCASFLAGS_PRI = $(AM_CCASFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) | |
314 | ||
315 | if VGCONF_HAVE_PLATFORM_SEC | |
316 | AM_FLAG_M3264_SEC = $(AM_FLAG_M3264_@VGCONF_PLATFORM_SEC_CAPS@) | |
317 | else | |
318 | AM_FLAG_M3264_SEC = | |
319 | endif | |
320 | ||
321 | ||
322 | # Baseline link flags for making vgpreload shared objects. | |
323 | # | |
324 | PRELOAD_LDFLAGS_COMMON_LINUX = -nodefaultlibs -shared -Wl,-z,interpose,-z,initfirst | |
e2583c02 | 325 | PRELOAD_LDFLAGS_COMMON_FREEBSD = -nodefaultlibs -shared -Wl,-z,interpose,-z,initfirst |
b05a2a18 | 326 | PRELOAD_LDFLAGS_COMMON_DARWIN = -dynamic -dynamiclib -all_load |
ac60633d JS |
327 | PRELOAD_LDFLAGS_COMMON_SOLARIS = -nodefaultlibs -shared -Wl,-z,interpose,-z,initfirst |
328 | if SOLARIS_XPG_SYMBOLS_PRESENT | |
329 | PRELOAD_LDFLAGS_COMMON_SOLARIS += -Wl,-M,$(top_srcdir)/solaris/vgpreload-solaris.mapfile | |
330 | endif | |
acd57ac5 | 331 | |
ab7b3383 PW |
332 | if VGCONF_PLATVARIANT_IS_ANDROID |
333 | # The Android toolchain includes all kinds of stdlib helpers present in | |
334 | # bionic which is bad because we are not linking with it and the Android | |
335 | # linker will panic. | |
336 | PRELOAD_LDFLAGS_COMMON_LINUX += -nostdlib | |
337 | endif | |
338 | ||
914f75de CL |
339 | PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ |
340 | PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ | |
341 | PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ | |
342 | PRELOAD_LDFLAGS_PPC64BE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ | |
343 | PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ | |
344 | PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ | |
345 | PRELOAD_LDFLAGS_ARM64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ | |
26924849 PF |
346 | PRELOAD_LDFLAGS_X86_FREEBSD = $(PRELOAD_LDFLAGS_COMMON_FREEBSD) @FLAG_M32@ |
347 | PRELOAD_LDFLAGS_AMD64_FREEBSD = $(PRELOAD_LDFLAGS_COMMON_FREEBSD) @FLAG_M64@ | |
348 | PRELOAD_LDFLAGS_ARM64_FREEBSD = $(PRELOAD_LDFLAGS_COMMON_FREEBSD) @FLAG_M64@ | |
914f75de CL |
349 | PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386 |
350 | PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64 | |
351 | PRELOAD_LDFLAGS_S390X_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ | |
352 | PRELOAD_LDFLAGS_MIPS32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ | |
deae79f7 | 353 | PRELOAD_LDFLAGS_NANOMIPS_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@ |
914f75de | 354 | PRELOAD_LDFLAGS_MIPS64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@ |
ac60633d JS |
355 | PRELOAD_LDFLAGS_X86_SOLARIS = $(PRELOAD_LDFLAGS_COMMON_SOLARIS) @FLAG_M32@ |
356 | PRELOAD_LDFLAGS_AMD64_SOLARIS = $(PRELOAD_LDFLAGS_COMMON_SOLARIS) @FLAG_M64@ | |
4d17b312 | 357 |