7071286 workaround 7030022 (-xregs=no%appl not working on sparc)
authorMike Sullivan <Mike.Sullivan@Oracle.COM>
Fri, 05 Aug 2011 09:14:45 -0700
changeset 459 c7579764bc73
parent 458 2edc011b559e
child 460 aded0f0f9594
7071286 workaround 7030022 (-xregs=no%appl not working on sparc)
components/bison/patches/shared-ly.patch
components/fastcgi/Makefile
components/flex/patches/000-flex-2.5.35.Makefile.in.patch
components/openssl/openssl-0.9.8-fips-140/patches/18-compiler_opts.patch
components/openssl/openssl-1.0.0/patches/18-compiler_opts.patch
components/stdcxx/Makefile
components/wxwidgets/Makefile
make-rules/shared-macros.mk
--- a/components/bison/patches/shared-ly.patch	Thu Aug 04 19:59:04 2011 -0700
+++ b/components/bison/patches/shared-ly.patch	Fri Aug 05 09:14:45 2011 -0700
@@ -7,7 +7,7 @@
   am_liby_a_OBJECTS = main.$(OBJEXT) yyerror.$(OBJEXT)
   liby_a_OBJECTS = $(am_liby_a_OBJECTS)
 + 
-+ main.o yyerror.o : CFLAGS += -DPIC -KPIC -xregs=no%appl
++ main.o yyerror.o : CFLAGS += -DPIC -KPIC -Qoption cg -xregs=no%appl
 + 
   DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
   depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
--- a/components/fastcgi/Makefile	Thu Aug 04 19:59:04 2011 -0700
+++ b/components/fastcgi/Makefile	Fri Aug 05 09:14:45 2011 -0700
@@ -41,7 +41,7 @@
 CONFIGURE_OPTIONS += --with-pic
 CONFIGURE_OPTIONS += --includedir=$(CONFIGURE_INCLUDEDIR)/fastcgi
 CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
-CONFIGURE_OPTIONS += CXXFLAGS="$(CFLAGS)"
+CONFIGURE_OPTIONS += CXXFLAGS="$(CFLAGS) $(studio_XREGS)"
 
 # common targets
 build:     $(BUILD_32_and_64)
--- a/components/flex/patches/000-flex-2.5.35.Makefile.in.patch	Thu Aug 04 19:59:04 2011 -0700
+++ b/components/flex/patches/000-flex-2.5.35.Makefile.in.patch	Fri Aug 05 09:14:45 2011 -0700
@@ -17,7 +17,7 @@
 -	-fPIC         \
 +	-DPIC         \
 +	-KPIC	\
-+	-xregs=no%appl \
++	-Qoption cg -xregs=no%appl \
  	$(AM_CFLAGS)
  
  noinst_HEADERS = \
--- a/components/openssl/openssl-0.9.8-fips-140/patches/18-compiler_opts.patch	Thu Aug 04 19:59:04 2011 -0700
+++ b/components/openssl/openssl-0.9.8-fips-140/patches/18-compiler_opts.patch	Fri Aug 05 09:14:45 2011 -0700
@@ -20,8 +20,8 @@
 +#### Solaris configs, used for OpenSSL as delivered by OpenSolaris
 +"solaris-x86-cc-sunw","cc:-m32 -xO3 -xspace -g -Xa::-D_REENTRANT::-lsocket -lnsl -lc -R /lib/openssl/fips-140:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${x86_elf_asm_sunw}:dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign -M/usr/lib/ld/map.noexdata:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 +"solaris64-x86_64-cc-sunw","cc:-xO3 -m64 -g -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -lc -R /lib/openssl/fips-140/64:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK BF_PTR DES_PTR DES_INT DES_UNROLL:${x86_64_asm_sunw}:dlfcn:solaris-shared:-KPIC:-m64 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign -M/usr/lib/ld/map.noexdata:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"solaris-sparcv8-cc-sunw","cc:-m32 -xregs=no%appl -xO5 -g -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -lc -R /lib/openssl/fips-140:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o::::::::::dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"solaris64-sparcv9-cc-sunw","cc:-m64 -xregs=no%appl -xO5 -g -xstrconst -xdepend -xspace -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc -R /lib/openssl/fips-140/64:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::::::::::dlfcn:solaris-shared:-KPIC:-m64 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
++"solaris-sparcv8-cc-sunw","cc:-m32 -Qoption cg -xregs=no%appl -xO5 -g -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -lc -R /lib/openssl/fips-140:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o::::::::::dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"solaris64-sparcv9-cc-sunw","cc:-m64 -Qoption cg -xregs=no%appl -xO5 -g -xstrconst -xdepend -xspace -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc -R /lib/openssl/fips-140/64:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::::::::::dlfcn:solaris-shared:-KPIC:-m64 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
 +
  #### IRIX 5.x configs
  # -mips2 flag is added by ./config when appropriate.
--- a/components/openssl/openssl-1.0.0/patches/18-compiler_opts.patch	Thu Aug 04 19:59:04 2011 -0700
+++ b/components/openssl/openssl-1.0.0/patches/18-compiler_opts.patch	Fri Aug 05 09:14:45 2011 -0700
@@ -9,9 +9,9 @@
 +#
 +"solaris64-x86_64-cc-sunw","cc:-xO3 -m64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -lc:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR DES_PTR DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:solaris-shared:-KPIC:-m64 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign -M/usr/lib/ld/map.noexdata:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 +#
-+"solaris-sparcv9-cc-sunw","cc:-xtarget=ultra -m32 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc:BN_LLONG RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"solaris-sparcv9-cc-sunw","cc:-xtarget=ultra -m32 -Qoption cg -xregs=no%appl -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc:BN_LLONG RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 +#
-+"solaris64-sparcv9-cc-sunw","cc:-xtarget=ultra -m64 -xregs=no%appl -xO5 -xstrconst -xdepend -xspace -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc:BN_LLONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m64 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs::/64",
++"solaris64-sparcv9-cc-sunw","cc:-xtarget=ultra -m64 -Qoption cg -xregs=no%appl -xO5 -xstrconst -xdepend -xspace -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc:BN_LLONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m64 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs::/64",
 +
  #### IRIX 5.x configs
  # -mips2 flag is added by ./config when appropriate.
--- a/components/stdcxx/Makefile	Thu Aug 04 19:59:04 2011 -0700
+++ b/components/stdcxx/Makefile	Fri Aug 05 09:14:45 2011 -0700
@@ -78,7 +78,7 @@
 FLAGS_i386 = -m32 -xarch=386
 FLAGS_amd64 = -m64 -xarch=generic
 CFLAGS_sparc = -Xc -features=extinl  -xvis=yes
-CFLAGS_sparc += -xregs=no%appl -xbuiltin=%none -xO4 $(PICFLAG)
+CFLAGS_sparc += -Qoption cg -xregs=no%appl -xbuiltin=%none -xO4 $(PICFLAG)
 CFLAGS_i386 = -Xc -features=extinl -xregs=no%frameptr
 CFLAGS_i386 += -xO3 -xbuiltin=%none $(PICFLAG)
 
--- a/components/wxwidgets/Makefile	Thu Aug 04 19:59:04 2011 -0700
+++ b/components/wxwidgets/Makefile	Fri Aug 05 09:14:45 2011 -0700
@@ -45,6 +45,8 @@
 LDFLAGS += $(studio_NORUNPATH)
 LDFLAGS += $(CC_BITS)
 
+CXXFLAGS += $(studio_XREGS)
+
 CONFIGURE_OPTIONS += --with-gtk
 CONFIGURE_OPTIONS += --enable-gtk2
 CONFIGURE_OPTIONS += --enable-unicode
--- a/make-rules/shared-macros.mk	Thu Aug 04 19:59:04 2011 -0700
+++ b/make-rules/shared-macros.mk	Fri Aug 05 09:14:45 2011 -0700
@@ -423,10 +423,20 @@
 # Control register usage for generated code.  SPARC ABI requires system
 # libraries not to use application registers.  x86 requires 'no%frameptr' at
 # x04 or higher.
-studio_XREGS.sparc =	-xregs=no%appl,float
+
+# We should just use -xregs but we need to workaround 7030022. Note
+# that we can't use the (documented) -Wc,-xregs workaround because
+# libtool really hates -Wc and thinks it should be -Wl. Instead
+# we use an (undocumented) option which actually happens to be what
+# CC would use.
+studio_XREGS.sparc =	-Qoption cg -xregs=no%appl
 studio_XREGS.i386 =	-xregs=no%frameptr
 studio_XREGS =		$(studio_XREGS.$(MACH))
 
+gcc_XREGS.sparc =	-mno-app-regs
+gcc_XREGS.i386 =
+gcc_XREGS =		$(gcc_XREGS.$(MACH))
+
 # Set data alignment on sparc to reasonable values, 8 byte alignment for 32 bit
 # objects and 16 byte alignment for 64 bit objects.  This is added to CFLAGS by
 # default.
@@ -479,6 +489,7 @@
 # should not be necessary to add CFLAGS to any environment other than the
 # configure environment.
 CFLAGS.gcc +=	$(gcc_OPT)
+CFLAGS.gcc +=	$(gcc_XREGS)
 
 
 # Build 32 or 64 bit objects.