make/jprt.config

Thu, 20 Nov 2008 16:56:09 -0800

author
ysr
date
Thu, 20 Nov 2008 16:56:09 -0800
changeset 888
c96030fff130
parent 713
4852f4a82e58
child 1148
4961a8a726a4
permissions
-rw-r--r--

6684579: SoftReference processing can be made more efficient
Summary: For current soft-ref clearing policies, we can decide at marking time if a soft-reference will definitely not be cleared, postponing the decision of whether it will definitely be cleared to the final reference processing phase. This can be especially beneficial in the case of concurrent collectors where the marking is usually concurrent but reference processing is usually not.
Reviewed-by: jmasa

     1 #!echo "This is not a shell script"
     2 #
     3 # Copyright 2006-2008 Sun Microsystems, Inc.  All Rights Reserved.
     4 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     5 #
     6 # This code is free software; you can redistribute it and/or modify it
     7 # under the terms of the GNU General Public License version 2 only, as
     8 # published by the Free Software Foundation.
     9 #
    10 # This code is distributed in the hope that it will be useful, but WITHOUT
    11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    12 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    13 # version 2 for more details (a copy is included in the LICENSE file that
    14 # accompanied this code).
    15 #
    16 # You should have received a copy of the GNU General Public License version
    17 # 2 along with this work; if not, write to the Free Software Foundation,
    18 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    19 #
    20 # Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
    21 # CA 95054 USA or visit www.sun.com if you need additional information or
    22 # have any questions.
    23 #  
    24 #
    26 #############################################################################
    27 # Error
    28 error() # message
    29 {
    30   echo "ERROR: $1"
    31   exit 6
    32 }
    33 # Directory must exist
    34 dirMustExist() # dir name
    35 {
    36   if [ ! -d "$1" ] ; then
    37     error "Directory for $2 does not exist: $1"
    38   fi
    39 }
    40 # File must exist
    41 fileMustExist() # dir name
    42 {
    43   if [ ! -f "$1" ] ; then
    44     error "File for $2 does not exist: $1"
    45   fi
    46 }
    47 #############################################################################
    49 # Should be set by JPRT as the 3 basic inputs
    50 bootdir="${ALT_BOOTDIR}"
    51 slashjava="${ALT_SLASH_JAVA}"
    52 jdk_import="${ALT_JDK_IMPORT_PATH}"
    54 # Check input
    55 dirMustExist "${bootdir}"    ALT_BOOTDIR
    56 dirMustExist "${slashjava}"  ALT_SLASH_JAVA
    57 dirMustExist "${jdk_import}" ALT_JDK_IMPORT_PATH
    59 # Uses 'uname -s', but only expect SunOS or Linux, assume Windows otherwise.
    60 osname=`uname -s`
    61 if [ "${osname}" = SunOS ] ; then
    63     # SOLARIS: Sparc or X86
    64     osarch=`uname -p`
    65     if [ "${osarch}" = sparc ] ; then
    66 	solaris_arch=sparc
    67     else
    68 	solaris_arch=i386
    69     fi
    71     if [ "${JPRT_SOLARIS_COMPILER_NAME}" != "" ] ; then
    72         compiler_name=${JPRT_SOLARIS_COMPILER_NAME}
    73     else
    74         if [ "${JPRT_JOB_PRODUCT_RELEASE}" = "jdk6"      -o \
    75              "${JPRT_JOB_PRODUCT_RELEASE}" = "jdk6u10"   -o \
    76              "${JPRT_JOB_PRODUCT_RELEASE}" = "jdk6perf" ] ; then
    77             # All jdk6 builds use SS11
    78             compiler_name=SS11
    79         else
    80 	    compiler_name=SS12
    81         fi
    82     fi
    84     # Get into path (make sure it matches ALT setting)
    85     compiler_path=${slashjava}/devtools/${solaris_arch}/SUNWspro/${compiler_name}/bin
    86     dirMustExist "${compiler_path}" COMPILER_PATH
    87     path4sdk=${compiler_path}
    89     # Add basic solaris system paths
    90     path4sdk=${path4sdk}:/usr/ccs/bin:/usr/ccs/lib:/usr/bin:/bin:/usr/sfw/bin
    92     # Get the previous JDK to be used to bootstrap the build
    93     path4sdk=${bootdir}/bin:${path4sdk}
    95     # Find GNU make
    96     make=/usr/sfw/bin/gmake
    97     if [ ! -f ${make} ] ; then
    98 	make=/opt/sfw/bin/gmake
    99 	if [ ! -f ${make} ] ; then
   100 	    make=${slashjava}/devtools/${solaris_arch}/bin/gnumake
   101         fi 
   102     fi
   103     fileMustExist "${make}" make
   105     # File creation mask
   106     umask 002
   108 elif [ "${osname}" = Linux ] ; then
   110     # LINUX: X86, AMD64
   111     osarch=`uname -m`
   112     if [ "${osarch}" = i686 ] ; then
   113 	linux_arch=i586
   114     elif [ "${osarch}" = x86_64 ] ; then
   115 	linux_arch=amd64
   116     fi
   118     # Get the compilers into path (make sure it matches ALT setting)
   119     compiler_path=/usr/bin
   120     dirMustExist "${compiler_path}" COMPILER_PATH
   121     path4sdk=${compiler_path}
   123     # Add basic paths
   124     path4sdk=${path4sdk}:/usr/bin:/bin:/usr/sbin:/sbin
   126     # Get the previous JDK to be used to bootstrap the build
   127     path4sdk=${bootdir}/bin:${path4sdk}
   129     # Find GNU make
   130     make=/usr/bin/make
   131     fileMustExist "${make}" make
   133     umask 002
   135 else
   137     # Windows: Differs on CYGWIN vs. MKS, and the compiler available.
   138     #   Also, blanks in pathnames gives GNU make headaches, so anything placed
   139     #   in any ALT_* variable should be the short windows dosname.
   141     # WINDOWS: Install and use MKS or CYGWIN (should have already been done)
   142     #   Assumption here is that you are in a shell window via MKS or cygwin.
   143     #   MKS install should have defined the environment variable ROOTDIR.
   144     #   We also need to figure out which one we have: X86, AMD64
   145     if [ "`echo ${PROCESSOR_IDENTIFIER} | fgrep AMD64`" != "" ] ; then
   146 	windows_arch=amd64
   147     else
   148 	windows_arch=i586
   149     fi
   151     # We need to determine if we are running a CYGWIN shell or an MKS shell
   152     #    (if uname isn't available, then it will be unix_toolset=unknown)
   153     unix_toolset=unknown
   154     if [ "`uname -a | fgrep Cygwin`" = "" -a -d "${ROOTDIR}" ] ; then
   155         # We kind of assume ROOTDIR is where MKS is and it's ok
   156         unix_toolset=MKS
   157         mkshome=`dosname -s "${ROOTDIR}"`
   158 	# Utility to convert to short pathnames without spaces
   159 	dosname="${mkshome}/mksnt/dosname -s"
   160         # Most unix utilities are in the mksnt directory of ROOTDIR
   161         unixcommand_path="${mkshome}/mksnt"
   162         path4sdk="${unixcommand_path}"
   163         dirMustExist "${unixcommand_path}" UNIXCOMMAND_PATH
   164 	devtools_path="${slashjava}/devtools/win32/bin"
   165 	path4sdk="${devtools_path};${path4sdk}"
   166         dirMustExist "${devtools_path}" DEVTOOLS_PATH
   167         # Find GNU make
   168         make="${devtools_path}/gnumake.exe"
   169         fileMustExist "${make}" make
   170     elif [ "`uname -a | fgrep Cygwin`" != "" -a -f /bin/cygpath ] ; then
   171         # For CYGWIN, uname will have "Cygwin" in it, and /bin/cygpath should exist
   172         unix_toolset=CYGWIN
   173 	# Utility to convert to short pathnames without spaces
   174 	dosname="/usr/bin/cygpath -a -m -s"
   175         # Most unix utilities are in the /usr/bin
   176         unixcommand_path="/usr/bin"
   177         path4sdk="${unixcommand_path}"
   178         dirMustExist "${unixcommand_path}" UNIXCOMMAND_PATH
   179         # Find GNU make
   180         make="${unixcommand_path}/make.exe"
   181         fileMustExist "${make}" make
   182     else
   183       echo "WARNING: Cannot figure out if this is MKS or CYGWIN"
   184     fi
   186     # WINDOWS: Compiler setup (nasty part)
   187     #   NOTE: You can use vcvars32.bat to set PATH, LIB, and INCLUDE.
   188     #   NOTE: CYGWIN has a link.exe too, make sure the compilers are first
   189     if [ "${windows_arch}" = i586 ] ; then
   190         # 32bit Windows compiler settings
   191         # VisualStudio .NET 2003 VC++ 7.1 (VS71COMNTOOLS should be defined)
   192         vs_root=`${dosname} "${VS71COMNTOOLS}/../.."`
   193         # Fill in PATH, LIB, and INCLUDE (unset all others to make sure)
   194         vc7_root="${vs_root}/Vc7"
   195         compiler_path="${vc7_root}/bin"
   196         platform_sdk="${vc7_root}/PlatformSDK"
   197         # LIB and INCLUDE must use ; as a separator
   198         include4sdk="${vc7_root}/atlmfc/include"
   199         include4sdk="${include4sdk};${vc7_root}/include"
   200         include4sdk="${include4sdk};${platform_sdk}/include/prerelease"
   201         include4sdk="${include4sdk};${platform_sdk}/include"
   202         include4sdk="${include4sdk};${vs_root}/SDK/v1.1/include"
   203         lib4sdk="${vc7_root}/atlmfc/lib"
   204         lib4sdk="${lib4sdk};${vc7_root}/lib"
   205         lib4sdk="${lib4sdk};${platform_sdk}/lib/prerelease"
   206         lib4sdk="${lib4sdk};${platform_sdk}/lib"
   207         lib4sdk="${lib4sdk};${vs_root}/SDK/v1.1/lib"
   208         # Search path and DLL locating path
   209         #   WARNING: CYGWIN has a link.exe too, make sure compilers are first
   210         path4sdk="${vs_root}/Common7/Tools/bin;${path4sdk}"
   211 	path4sdk="${vs_root}/SDK/v1.1/bin;${path4sdk}"
   212         path4sdk="${vs_root}/Common7/Tools;${path4sdk}"
   213 	path4sdk="${vs_root}/Common7/Tools/bin/prerelease;${path4sdk}"
   214         path4sdk="${vs_root}/Common7/IDE;${path4sdk}"
   215 	path4sdk="${compiler_path};${path4sdk}"
   216     elif [ "${windows_arch}" = amd64 ] ; then
   217         # AMD64 64bit Windows compiler settings
   218 	if [ "${MSSDK}" != "" ] ; then
   219 	    platform_sdk="${MSSDK}"
   220 	else
   221 	    platform_sdk=`${dosname} "C:/Program Files/Microsoft Platform SDK/"`
   222 	fi
   223 	compiler_path="${platform_sdk}/Bin/win64/x86/AMD64"
   224         # LIB and INCLUDE must use ; as a separator
   225         include4sdk="${platform_sdk}/Include"
   226 	include4sdk="${include4sdk};${platform_sdk}/Include/crt/sys"
   227 	include4sdk="${include4sdk};${platform_sdk}/Include/mfc"
   228 	include4sdk="${include4sdk};${platform_sdk}/Include/atl"
   229 	include4sdk="${include4sdk};${platform_sdk}/Include/crt"
   230         lib4sdk="${platform_sdk}/Lib/AMD64"
   231         lib4sdk="${lib4sdk};${platform_sdk}/Lib/AMD64/atlmfc"
   232         # Search path and DLL locating path
   233         #   WARNING: CYGWIN has a link.exe too, make sure compilers are first
   234         path4sdk="${platform_sdk}/bin;${path4sdk}"
   235         path4sdk="${compiler_path};${path4sdk}"
   236     fi
   237     # Export LIB and INCLUDE
   238     unset lib
   239     unset Lib
   240     LIB="${lib4sdk}"
   241     export LIB
   242     unset include
   243     unset Include
   244     INCLUDE="${include4sdk}"
   245     export INCLUDE
   246     # Set the ALT variable
   247     dirMustExist "${compiler_path}" COMPILER_PATH
   249     # WINDOWS: Get the previous JDK to be used to bootstrap the build
   250     path4sdk="${bootdir}/bin;${path4sdk}"
   252     # Turn all \\ into /, remove duplicates and trailing /
   253     slash_path="`echo ${path4sdk} | sed -e 's@\\\\@/@g' -e 's@//@/@g' -e 's@/$@@' -e 's@/;@;@g'`"
   255     # For windows, it's hard to know where the system is, so we just add this
   256     #    to PATH.
   257     path4sdk="${slash_path};${PATH}"
   259     # Convert path4sdk to cygwin style
   260     if [ "${unix_toolset}" = CYGWIN ] ; then
   261 	path4sdk="`/usr/bin/cygpath -p ${path4sdk}`"
   262     fi
   264 fi
   266 # Export PATH setting
   267 PATH="${path4sdk}"
   268 export PATH
   270 # Unset certain vars
   271 unset LD_LIBRARY_PATH
   272 unset LD_LIBRARY_PATH_32
   273 unset LD_LIBRARY_PATH_64

mercurial