make-rules/shared-macros.mk
changeset 102 1a8b07a3e826
parent 99 c15c9099bb44
child 105 da9e87a40aec
equal deleted inserted replaced
101:ecb1f3b5f835 102:1a8b07a3e826
   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= \