hotspot/make/solaris/makefiles/sparcWorks.make
changeset 33981 652bf41da963
parent 33801 e4f6657aeecb
parent 33957 39113ae98993
child 35485 9ee1d7aba342
equal deleted inserted replaced
33956:1a8be137cfee 33981:652bf41da963
     1 #
     1 #
     2 # Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
     2 # Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
     3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4 #
     4 #
     5 # This code is free software; you can redistribute it and/or modify it
     5 # This code is free software; you can redistribute it and/or modify it
     6 # under the terms of the GNU General Public License version 2 only, as
     6 # under the terms of the GNU General Public License version 2 only, as
     7 # published by the Free Software Foundation.
     7 # published by the Free Software Foundation.
    17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    18 #
    18 #
    19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    20 # or visit www.oracle.com if you need additional information or have any
    20 # or visit www.oracle.com if you need additional information or have any
    21 # questions.
    21 # questions.
    22 #  
    22 #
    23 #
    23 #
    24 
    24 
    25 # If a SPEC is not set already, then use these defaults.
    25 # If a SPEC is not set already, then use these defaults.
    26 ifeq ($(SPEC),)
    26 ifeq ($(SPEC),)
    27   # Compiler-specific flags for sparcworks.
    27   # Compiler-specific flags for sparcworks.
    37 
    37 
    38   MCS	= /usr/ccs/bin/mcs
    38   MCS	= /usr/ccs/bin/mcs
    39   STRIP	= /usr/ccs/bin/strip
    39   STRIP	= /usr/ccs/bin/strip
    40 endif
    40 endif
    41 
    41 
    42 # Check for the versions of C++ and C compilers ($CXX and $CC) used. 
    42 # Check for the versions of C++ and C compilers ($CXX and $CC) used.
    43 
    43 
    44 # Get the last thing on the line that looks like x.x+ (x is a digit).
    44 # Get the last thing on the line that looks like x.x+ (x is a digit).
    45 COMPILER_REV := \
    45 COMPILER_REV := \
    46 $(shell $(CXX) -V 2>&1 | sed -n 's/^.*[ ,\t]C++[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p')
    46 $(shell $(CXX) -V 2>&1 | sed -n 's/^.*[ ,\t]C++[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p')
    47 CC_COMPILER_REV := \
    47 CC_COMPILER_REV := \
    48 $(shell $(CC) -V 2>&1 | sed -n 's/^.*[ ,\t]C[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p')
    48 $(shell $(CC) -V 2>&1 | sed -n 's/^.*[ ,\t]C[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p')
    49 
    49 
    50 # Pick which compiler is validated
    50 # Pick which compiler is validated
    51 ifeq ($(JRE_RELEASE_VER),1.6.0)
    51 # Validated compiler for JDK9 is SS12.3 (5.12)
    52   # Validated compiler for JDK6 is SS11 (5.8)
    52 VALIDATED_COMPILER_REVS   := 5.12
    53   VALIDATED_COMPILER_REVS   := 5.8
    53 VALIDATED_CC_COMPILER_REVS := 5.12
    54   VALIDATED_CC_COMPILER_REVS := 5.8
       
    55 else
       
    56   # Validated compiler for JDK9 is SS12.3 (5.12)
       
    57   VALIDATED_COMPILER_REVS   := 5.12
       
    58   VALIDATED_CC_COMPILER_REVS := 5.12
       
    59 endif
       
    60 
    54 
    61 # Warning messages about not using the above validated versions
    55 # Warning messages about not using the above validated versions
    62 ENFORCE_COMPILER_REV${ENFORCE_COMPILER_REV} := $(strip ${VALIDATED_COMPILER_REVS})
    56 ENFORCE_COMPILER_REV${ENFORCE_COMPILER_REV} := $(strip ${VALIDATED_COMPILER_REVS})
    63 ifeq ($(filter ${ENFORCE_COMPILER_REV},${COMPILER_REV}),)
    57 ifeq ($(filter ${ENFORCE_COMPILER_REV},${COMPILER_REV}),)
    64 PRINTABLE_CC_REVS := $(subst $(shell echo ' '), or ,${ENFORCE_COMPILER_REV})
    58 PRINTABLE_CC_REVS := $(subst $(shell echo ' '), or ,${ENFORCE_COMPILER_REV})
   235 
   229 
   236 # no more exceptions
   230 # no more exceptions
   237 CFLAGS/NOEX=-features=no%except
   231 CFLAGS/NOEX=-features=no%except
   238 
   232 
   239 
   233 
   240 # avoid compilation problems arising from fact that C++ compiler tries 
   234 # avoid compilation problems arising from fact that C++ compiler tries
   241 # to search for external template definition by just compiling additional
   235 # to search for external template definition by just compiling additional
   242 # source files in th same context
   236 # source files in th same context
   243 CFLAGS +=  -template=no%extdef
   237 CFLAGS +=  -template=no%extdef
   244 
   238 
   245 # Reduce code bloat by reverting back to 5.0 behavior for static initializers
   239 # Reduce code bloat by reverting back to 5.0 behavior for static initializers
   246 CFLAGS += -features=no%split_init
   240 CFLAGS += -features=no%split_init
   247 
   241 
   248 # Use -D_Crun_inline_placement so we don't get references to 
   242 # Use -D_Crun_inline_placement so we don't get references to
   249 #    __1c2n6FIpv_0_ or   void*operator new(unsigned,void*)
   243 #    __1c2n6FIpv_0_ or   void*operator new(unsigned,void*)
   250 #  This avoids the hard requirement of the newer Solaris C++ runtime patches.
   244 #  This avoids the hard requirement of the newer Solaris C++ runtime patches.
   251 #  NOTE: This is an undocumented feature of the SS10 compiler. See 6306698.
   245 #  NOTE: This is an undocumented feature of the SS10 compiler. See 6306698.
   252 CFLAGS += -D_Crun_inline_placement
   246 CFLAGS += -D_Crun_inline_placement
   253 
   247