make/common/shared/Compiler-sun.gmk

Print this page




  44   CC             = $(COMPILER_PATH)cc
  45   CPP            = $(COMPILER_PATH)cc -E
  46   CXX            = $(COMPILER_PATH)CC
  47   LINT           = $(COMPILER_PATH)lint
  48   # statically link libstdc++ before C++ ABI is stablized on Linux
  49   STATIC_CXX     = true
  50   ifeq ($(STATIC_CXX),true)
  51     # CC always dynamically links libstdc++, even we use "-Wl,-Bstatic -lstdc++"
  52     # We need to use cc to statically link the C++ runtime.
  53     CXX            = $(COMPILER_PATH)cc
  54   else
  55     CXX            = $(COMPILER_PATH)CC
  56   endif
  57   # Option used to create a shared library
  58   SHARED_LIBRARY_FLAG = -G
  59 endif
  60 
  61 # Get compiler version
  62 _CC_VER :=$(shell $(CC) -V 2>&1 | $(HEAD) -n 1)
  63 CC_VER  :=$(call GetVersion,"$(_CC_VER)")

  64 
  65 # Name of compilers being used
  66 COMPILER_VERSION-5.7  = SS10
  67 COMPILER_NAME-5.7     = Sun Studio 10
  68 COMPILER_VERSION-5.8  = SS11
  69 COMPILER_NAME-5.8     = Sun Studio 11
  70 COMPILER_VERSION-5.9  = SS12
  71 COMPILER_NAME-5.9     = Sun Studio 12
  72 COMPILER_VERSION-5.10 = SS13
  73 COMPILER_NAME-5.10    = Sun Studio 13


  74 COMPILER_VERSION      = $(COMPILER_VERSION-$(CC_VER))
  75 COMPILER_NAME         = $(COMPILER_NAME-$(CC_VER))
  76 
  77 # Arch specific settings (determines type of .o files and instruction set)
  78 #  Starting in SS12 (5.9), the arch options changed.
  79 #  The assembler /usr/ccs/bin/as wants older SS11 (5.8) style options.
  80 #   Note: We need to have both 32 and 64 values at all times for awt Makefiles.
  81 #
  82 XARCH_OPTION_OLD/32 =
  83 XARCH_OPTION_OLD/64 =
  84 XARCH_OPTION_NEW/32 = -m32
  85 XARCH_OPTION_NEW/64 = -m64
  86 # Lint options are slightly different
  87 LINT_XARCH_OPTION_OLD/32 =
  88 LINT_XARCH_OPTION_OLD/64 =
  89 LINT_XARCH_OPTION_NEW/32 = -m32
  90 LINT_XARCH_OPTION_NEW/64 = -m64
  91 ifeq ($(ARCH_FAMILY), sparc)
  92   ifdef VIS_NEEDED
  93     XARCH_OPTION_OLD/32 += -xarch=v8plusa


  95     XARCH_OPTION_NEW/32 += -xarch=sparcvis
  96     XARCH_OPTION_NEW/64 += -xarch=sparcvis
  97   else
  98     # Someday this should change to improve optimization on UltraSPARC
  99     #    and abandon v8, even change to sparcvis or sparcvis2, this
 100     #    abandons machines like the SPARCstation 10.
 101     #    Indications with jdk6 is that alacrity runs do not show a
 102     #    big improvement using v8plus over v8, but other benchmarks might.
 103     XARCH_OPTION_OLD/32 += -xarch=v8
 104     XARCH_OPTION_OLD/64 += -xarch=v9
 105     # Note that this new option (SS12+) effectively means v8plus
 106     XARCH_OPTION_NEW/32 += -xarch=sparc
 107     XARCH_OPTION_NEW/64 += -xarch=sparc
 108   endif
 109   LINT_XARCH_OPTION_OLD/64 += -Xarch=v9
 110 endif
 111 ifeq ($(ARCH_FAMILY), i586)
 112   XARCH_OPTION_OLD/64      += -xarch=amd64
 113   LINT_XARCH_OPTION_OLD/64 += -Xarch=amd64
 114 endif
 115 # Pick the options we want based on the compiler being used.
 116 ifeq ($(shell expr $(CC_VER) \>= 5.9), 1)
 117   XARCH_OPTION/32 = $(XARCH_OPTION_NEW/32)
 118   XARCH_OPTION/64 = $(XARCH_OPTION_NEW/64)
 119   LINT_XARCH_OPTION/32 = $(LINT_XARCH_OPTION_NEW/32)
 120   LINT_XARCH_OPTION/64 = $(LINT_XARCH_OPTION_NEW/64)
 121 else
 122   XARCH_OPTION/32 = $(XARCH_OPTION_OLD/32)
 123   XARCH_OPTION/64 = $(XARCH_OPTION_OLD/64)
 124   LINT_XARCH_OPTION/32 = $(LINT_XARCH_OPTION_OLD/32)
 125   LINT_XARCH_OPTION/64 = $(LINT_XARCH_OPTION_OLD/64)
 126 endif
 127 XARCH_OPTION = $(XARCH_OPTION/$(ARCH_DATA_MODEL))
 128 LINT_XARCH_OPTION = $(LINT_XARCH_OPTION/$(ARCH_DATA_MODEL))
 129 # The /usr/ccs/bin/as assembler always wants the older SS11 (5.8) options.
 130 AS_XARCH_OPTION = $(XARCH_OPTION_OLD/$(ARCH_DATA_MODEL))
 131 


  44   CC             = $(COMPILER_PATH)cc
  45   CPP            = $(COMPILER_PATH)cc -E
  46   CXX            = $(COMPILER_PATH)CC
  47   LINT           = $(COMPILER_PATH)lint
  48   # statically link libstdc++ before C++ ABI is stablized on Linux
  49   STATIC_CXX     = true
  50   ifeq ($(STATIC_CXX),true)
  51     # CC always dynamically links libstdc++, even we use "-Wl,-Bstatic -lstdc++"
  52     # We need to use cc to statically link the C++ runtime.
  53     CXX            = $(COMPILER_PATH)cc
  54   else
  55     CXX            = $(COMPILER_PATH)CC
  56   endif
  57   # Option used to create a shared library
  58   SHARED_LIBRARY_FLAG = -G
  59 endif
  60 
  61 # Get compiler version
  62 _CC_VER :=$(shell $(CC) -V 2>&1 | $(HEAD) -n 1)
  63 CC_VER  :=$(call GetVersion,"$(_CC_VER)")
  64 CC_MINORVER  :=$(call MinorVersion,$(CC_VER))
  65 
  66 # Name of compilers being used
  67 COMPILER_VERSION-5.7  = SS10
  68 COMPILER_NAME-5.7     = Sun Studio 10
  69 COMPILER_VERSION-5.8  = SS11
  70 COMPILER_NAME-5.8     = Sun Studio 11
  71 COMPILER_VERSION-5.9  = SS12
  72 COMPILER_NAME-5.9     = Sun Studio 12
  73 COMPILER_VERSION-5.10 = SS12u1
  74 COMPILER_NAME-5.10    = Sun Studio 12 Update 1
  75 COMPILER_VERSION-5.11 = OSS12u2
  76 COMPILER_NAME-5.11    = Oracle Solaris Studio 12 Update 2
  77 COMPILER_VERSION      = $(COMPILER_VERSION-$(CC_VER))
  78 COMPILER_NAME         = $(COMPILER_NAME-$(CC_VER))
  79 
  80 # Arch specific settings (determines type of .o files and instruction set)
  81 #  Starting in SS12 (5.9), the arch options changed.
  82 #  The assembler /usr/ccs/bin/as wants older SS11 (5.8) style options.
  83 #   Note: We need to have both 32 and 64 values at all times for awt Makefiles.
  84 #
  85 XARCH_OPTION_OLD/32 =
  86 XARCH_OPTION_OLD/64 =
  87 XARCH_OPTION_NEW/32 = -m32
  88 XARCH_OPTION_NEW/64 = -m64
  89 # Lint options are slightly different
  90 LINT_XARCH_OPTION_OLD/32 =
  91 LINT_XARCH_OPTION_OLD/64 =
  92 LINT_XARCH_OPTION_NEW/32 = -m32
  93 LINT_XARCH_OPTION_NEW/64 = -m64
  94 ifeq ($(ARCH_FAMILY), sparc)
  95   ifdef VIS_NEEDED
  96     XARCH_OPTION_OLD/32 += -xarch=v8plusa


  98     XARCH_OPTION_NEW/32 += -xarch=sparcvis
  99     XARCH_OPTION_NEW/64 += -xarch=sparcvis
 100   else
 101     # Someday this should change to improve optimization on UltraSPARC
 102     #    and abandon v8, even change to sparcvis or sparcvis2, this
 103     #    abandons machines like the SPARCstation 10.
 104     #    Indications with jdk6 is that alacrity runs do not show a
 105     #    big improvement using v8plus over v8, but other benchmarks might.
 106     XARCH_OPTION_OLD/32 += -xarch=v8
 107     XARCH_OPTION_OLD/64 += -xarch=v9
 108     # Note that this new option (SS12+) effectively means v8plus
 109     XARCH_OPTION_NEW/32 += -xarch=sparc
 110     XARCH_OPTION_NEW/64 += -xarch=sparc
 111   endif
 112   LINT_XARCH_OPTION_OLD/64 += -Xarch=v9
 113 endif
 114 ifeq ($(ARCH_FAMILY), i586)
 115   XARCH_OPTION_OLD/64      += -xarch=amd64
 116   LINT_XARCH_OPTION_OLD/64 += -Xarch=amd64
 117 endif
 118 # Pick the options we want based on the compiler being used. (5.9 or newer)
 119 ifeq ($(shell expr $(CC_MINORVER) \>= 9), 1)
 120   XARCH_OPTION/32 = $(XARCH_OPTION_NEW/32)
 121   XARCH_OPTION/64 = $(XARCH_OPTION_NEW/64)
 122   LINT_XARCH_OPTION/32 = $(LINT_XARCH_OPTION_NEW/32)
 123   LINT_XARCH_OPTION/64 = $(LINT_XARCH_OPTION_NEW/64)
 124 else
 125   XARCH_OPTION/32 = $(XARCH_OPTION_OLD/32)
 126   XARCH_OPTION/64 = $(XARCH_OPTION_OLD/64)
 127   LINT_XARCH_OPTION/32 = $(LINT_XARCH_OPTION_OLD/32)
 128   LINT_XARCH_OPTION/64 = $(LINT_XARCH_OPTION_OLD/64)
 129 endif
 130 XARCH_OPTION = $(XARCH_OPTION/$(ARCH_DATA_MODEL))
 131 LINT_XARCH_OPTION = $(LINT_XARCH_OPTION/$(ARCH_DATA_MODEL))
 132 # The /usr/ccs/bin/as assembler always wants the older SS11 (5.8) options.
 133 AS_XARCH_OPTION = $(XARCH_OPTION_OLD/$(ARCH_DATA_MODEL))
 134