237 |
237 |
238 # Code generation instruction set and optimization 'hints'. Use studio_XBITS |
238 # Code generation instruction set and optimization 'hints'. Use studio_XBITS |
239 # and not the .arch.bits variety directly. |
239 # and not the .arch.bits variety directly. |
240 studio_XBITS.sparc.32 = -xtarget=ultra2 -xarch=sparcvis -xchip=ultra2 |
240 studio_XBITS.sparc.32 = -xtarget=ultra2 -xarch=sparcvis -xchip=ultra2 |
241 studio_XBITS.sparc.64 = -xtarget=ultra2 -xarch=sparcvis -xchip=ultra2 |
241 studio_XBITS.sparc.64 = -xtarget=ultra2 -xarch=sparcvis -xchip=ultra2 |
242 studio_XBITS.i386.32 = -xarch=pentium |
242 studio_XBITS.i386.32 = -xchip=pentium |
243 studio_XBITS.i386.64 = -xarch=generic64 -Ui386 -U__i386 |
243 studio_XBITS.i386.64 = -xarch=generic64 -Ui386 -U__i386 |
244 studio_XBITS = $(studio_XBITS.$(ARCH).$(BITS)) |
244 studio_XBITS = $(studio_XBITS.$(MACH).$(BITS)) |
245 |
245 |
246 # Turn on recognition of supported C99 language features and enable the 1999 C |
246 # Turn on recognition of supported C99 language features and enable the 1999 C |
247 # standard library semantics of routines that appear in both the 1990 and |
247 # standard library semantics of routines that appear in both the 1990 and |
248 # 1999 C standard. To use set studio_C99MODE=$(studio_99_ENABLE) in your |
248 # 1999 C standard. To use set studio_C99MODE=$(studio_99_ENABLE) in your |
249 # component Makefile. |
249 # component Makefile. |
261 # Allow zero-sized struct/union declarations and void functions with return |
261 # Allow zero-sized struct/union declarations and void functions with return |
262 # statements. |
262 # statements. |
263 studio_FEATURES_EXTENSIONS = -features=extensions |
263 studio_FEATURES_EXTENSIONS = -features=extensions |
264 |
264 |
265 # Control the Studio optimization level. |
265 # Control the Studio optimization level. |
266 studio_OPT.sparc.32 = -x04 |
266 studio_OPT.sparc.32 = -xO4 |
267 studio_OPT.sparc.64 = -x04 |
267 studio_OPT.sparc.64 = -xO4 |
268 studio_OPT.i386.32 = -x04 |
268 studio_OPT.i386.32 = -xO4 |
269 studio_OPT.i386.64 = -x04 |
269 studio_OPT.i386.64 = -xO4 |
270 studio_OPT = $(studio_OPT.$(ARCH).$(BITS)) |
270 studio_OPT = $(studio_OPT.$(MACH).$(BITS)) |
271 |
271 |
272 # Studio PIC code generation. Use CC_PIC instead to select PIC code generation. |
272 # Studio PIC code generation. Use CC_PIC instead to select PIC code generation. |
273 studio_PIC = -KPIC -DPIC |
273 studio_PIC = -KPIC -DPIC |
274 |
274 |
275 # The Sun Studio 11 compiler has changed the behaviour of integer |
275 # The Sun Studio 11 compiler has changed the behaviour of integer |
276 # wrap arounds and so a flag is needed to use the legacy behaviour |
276 # wrap arounds and so a flag is needed to use the legacy behaviour |
277 # (without this flag panics/hangs could be exposed within the source). |
277 # (without this flag panics/hangs could be exposed within the source). |
278 # This is used through studio_IROPTS, not the 'sparc' variety. |
278 # This is used through studio_IROPTS, not the 'sparc' variety. |
279 studio_IROPTS.sparc = -W2,-xwrap_int |
279 studio_IROPTS.sparc = -W2,-xwrap_int |
280 studio_IROPTS = $(studio_IROPTS.$(ARCH)) |
280 studio_IROPTS = $(studio_IROPTS.$(MACH)) |
281 |
281 |
282 # Control register usage for generated code. SPARC ABI requires system |
282 # Control register usage for generated code. SPARC ABI requires system |
283 # libraries not to use application registers. x86 requires 'no%frameptr' at |
283 # libraries not to use application registers. x86 requires 'no%frameptr' at |
284 # x04 or higher. |
284 # x04 or higher. |
285 studio_XREGS.sparc = -xregs=no%appl,float |
285 studio_XREGS.sparc = -xregs=no%appl,float |
286 studio_XREGS.i386 = -xregs=no%frameptr |
286 studio_XREGS.i386 = -xregs=no%frameptr |
287 studio_XREGS = $(studio_XREGS.$(ARCH)) |
287 studio_XREGS = $(studio_XREGS.$(MACH)) |
288 |
288 |
289 # See CPP_XPG6MODE comment above. |
289 # See CPP_XPG6MODE comment above. |
290 studio_XPG6MODE = $(studio_C99MODE) $(CPP_XPG6MODE) |
290 studio_XPG6MODE = $(studio_C99MODE) $(CPP_XPG6MODE) |
291 XPG6MODE = $(studio_XPG6MODE) |
291 XPG6MODE = $(studio_XPG6MODE) |
292 |
292 |
381 LD_OPTIONS_SO += $(LD_Z_TEXT) $(LD_Z_DEFS) |
381 LD_OPTIONS_SO += $(LD_Z_TEXT) $(LD_Z_DEFS) |
382 |
382 |
383 # Default linker options that everyone should get. Do not add additional |
383 # Default linker options that everyone should get. Do not add additional |
384 # libraries to this macro, as it will apply to everything linked during the |
384 # libraries to this macro, as it will apply to everything linked during the |
385 # component build. |
385 # component build. |
386 LD_OPTIONS += $(LD_MAP_NOEXSTK) $(LD_MAP_NOEXDATA.$(ARCH)) \ |
386 LD_OPTIONS += $(LD_MAP_NOEXSTK) $(LD_MAP_NOEXDATA.$(MACH)) \ |
387 $(LD_MAP_PAGEALIGN) $(LD_B_DIRECT) |
387 $(LD_MAP_PAGEALIGN) $(LD_B_DIRECT) |
388 |
388 |
389 # Environment variables and arguments passed into the build and install |
389 # Environment variables and arguments passed into the build and install |
390 # environment(s). These are the initial settings. |
390 # environment(s). These are the initial settings. |
391 COMPONENT_BUILD_ENV= \ |
391 COMPONENT_BUILD_ENV= \ |