make/hotspot-rules.gmk
author ysr
Mon, 16 Aug 2010 15:58:42 -0700
changeset 6258 68f252c6e825
parent 5499 eb0b3e373167
child 6408 0f5fb350c89e
permissions -rw-r--r--
6948538: CMS: BOT walkers can fall into object allocation and initialization cracks Summary: GC workers now recognize an intermediate transient state of blocks which are allocated but have not yet completed initialization. blk_start() calls do not attempt to determine the size of a block in the transient state, rather waiting for the block to become initialized so that it is safe to query its size. Audited and ensured the order of initialization of object fields (klass, free bit and size) to respect block state transition protocol. Also included some new assertion checking code enabled in debug mode. Reviewed-by: chrisphi, johnc, poonam
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
fd16c54261b3 Initial load
duke
parents:
diff changeset
     1
#
5499
eb0b3e373167 6943119: Rebrand source copyright notices
ohair
parents: 4082
diff changeset
     2
# Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved.
0
fd16c54261b3 Initial load
duke
parents:
diff changeset
     3
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
fd16c54261b3 Initial load
duke
parents:
diff changeset
     4
#
fd16c54261b3 Initial load
duke
parents:
diff changeset
     5
# This code is free software; you can redistribute it and/or modify it
fd16c54261b3 Initial load
duke
parents:
diff changeset
     6
# under the terms of the GNU General Public License version 2 only, as
5499
eb0b3e373167 6943119: Rebrand source copyright notices
ohair
parents: 4082
diff changeset
     7
# published by the Free Software Foundation.  Oracle designates this
0
fd16c54261b3 Initial load
duke
parents:
diff changeset
     8
# particular file as subject to the "Classpath" exception as provided
5499
eb0b3e373167 6943119: Rebrand source copyright notices
ohair
parents: 4082
diff changeset
     9
# by Oracle in the LICENSE file that accompanied this code.
0
fd16c54261b3 Initial load
duke
parents:
diff changeset
    10
#
fd16c54261b3 Initial load
duke
parents:
diff changeset
    11
# This code is distributed in the hope that it will be useful, but WITHOUT
fd16c54261b3 Initial load
duke
parents:
diff changeset
    12
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
fd16c54261b3 Initial load
duke
parents:
diff changeset
    13
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
fd16c54261b3 Initial load
duke
parents:
diff changeset
    14
# version 2 for more details (a copy is included in the LICENSE file that
fd16c54261b3 Initial load
duke
parents:
diff changeset
    15
# accompanied this code).
fd16c54261b3 Initial load
duke
parents:
diff changeset
    16
#
fd16c54261b3 Initial load
duke
parents:
diff changeset
    17
# You should have received a copy of the GNU General Public License version
fd16c54261b3 Initial load
duke
parents:
diff changeset
    18
# 2 along with this work; if not, write to the Free Software Foundation,
fd16c54261b3 Initial load
duke
parents:
diff changeset
    19
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
fd16c54261b3 Initial load
duke
parents:
diff changeset
    20
#
5499
eb0b3e373167 6943119: Rebrand source copyright notices
ohair
parents: 4082
diff changeset
    21
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
eb0b3e373167 6943119: Rebrand source copyright notices
ohair
parents: 4082
diff changeset
    22
# or visit www.oracle.com if you need additional information or have any
eb0b3e373167 6943119: Rebrand source copyright notices
ohair
parents: 4082
diff changeset
    23
# questions.
0
fd16c54261b3 Initial load
duke
parents:
diff changeset
    24
#
fd16c54261b3 Initial load
duke
parents:
diff changeset
    25
fd16c54261b3 Initial load
duke
parents:
diff changeset
    26
################################################################
fd16c54261b3 Initial load
duke
parents:
diff changeset
    27
# HOTSPOT TARGETS
fd16c54261b3 Initial load
duke
parents:
diff changeset
    28
################################################################
fd16c54261b3 Initial load
duke
parents:
diff changeset
    29
fd16c54261b3 Initial load
duke
parents:
diff changeset
    30
# All the output from a hotspot build should be re-located to the
fd16c54261b3 Initial load
duke
parents:
diff changeset
    31
#    build output area.
fd16c54261b3 Initial load
duke
parents:
diff changeset
    32
#
fd16c54261b3 Initial load
duke
parents:
diff changeset
    33
HOTSPOT_OUTPUTDIR = $(HOTSPOT_DIR)/outputdir
fd16c54261b3 Initial load
duke
parents:
diff changeset
    34
fd16c54261b3 Initial load
duke
parents:
diff changeset
    35
# HOTSPOT_EXPORT_PATH points to a dir that contains files
fd16c54261b3 Initial load
duke
parents:
diff changeset
    36
# that are needed in an SDK build, in the same relative positions as
fd16c54261b3 Initial load
duke
parents:
diff changeset
    37
# these files are in an SDK image.
fd16c54261b3 Initial load
duke
parents:
diff changeset
    38
# The SDK java/redist/Makefile will copy files from HOTSPOT_EXPORT_PATH
fd16c54261b3 Initial load
duke
parents:
diff changeset
    39
# into the SDK being built.
fd16c54261b3 Initial load
duke
parents:
diff changeset
    40
# This is the export path supplied to the hotspot makefiles.
fd16c54261b3 Initial load
duke
parents:
diff changeset
    41
#
fd16c54261b3 Initial load
duke
parents:
diff changeset
    42
HOTSPOT_EXPORT_PATH = $(HOTSPOT_DIR)/import
fd16c54261b3 Initial load
duke
parents:
diff changeset
    43
fd16c54261b3 Initial load
duke
parents:
diff changeset
    44
# Default targets
fd16c54261b3 Initial load
duke
parents:
diff changeset
    45
HOTSPOT = hotspot-sanity hotspot-build
fd16c54261b3 Initial load
duke
parents:
diff changeset
    46
fd16c54261b3 Initial load
duke
parents:
diff changeset
    47
hotspot:: $(HOTSPOT)
fd16c54261b3 Initial load
duke
parents:
diff changeset
    48
fd16c54261b3 Initial load
duke
parents:
diff changeset
    49
# Hotspot clobber removes the output directory and exported files
fd16c54261b3 Initial load
duke
parents:
diff changeset
    50
hotspot-clobber:: 
fd16c54261b3 Initial load
duke
parents:
diff changeset
    51
	$(RM) -r $(HOTSPOT_OUTPUTDIR)
fd16c54261b3 Initial load
duke
parents:
diff changeset
    52
	$(RM) -r $(HOTSPOT_EXPORT_PATH)
fd16c54261b3 Initial load
duke
parents:
diff changeset
    53
fd16c54261b3 Initial load
duke
parents:
diff changeset
    54
hotspot-sanity::
fd16c54261b3 Initial load
duke
parents:
diff changeset
    55
	@$(MKDIR) -p $(HOTSPOT_OUTPUTDIR)
fd16c54261b3 Initial load
duke
parents:
diff changeset
    56
	@$(MKDIR) -p $(HOTSPOT_EXPORT_PATH)
fd16c54261b3 Initial load
duke
parents:
diff changeset
    57
	@$(ECHO) "Hotspot Settings: \n" \
fd16c54261b3 Initial load
duke
parents:
diff changeset
    58
	    "     HOTSPOT_BUILD_JOBS  = $(HOTSPOT_BUILD_JOBS) \n"  \
fd16c54261b3 Initial load
duke
parents:
diff changeset
    59
	    "     HOTSPOT_OUTPUTDIR   = $(HOTSPOT_OUTPUTDIR) \n"  \
fd16c54261b3 Initial load
duke
parents:
diff changeset
    60
	    "     HOTSPOT_EXPORT_PATH = $(HOTSPOT_EXPORT_PATH) \n"  \
fd16c54261b3 Initial load
duke
parents:
diff changeset
    61
	    "\n"  >> $(MESSAGE_FILE)
fd16c54261b3 Initial load
duke
parents:
diff changeset
    62
fd16c54261b3 Initial load
duke
parents:
diff changeset
    63
#
fd16c54261b3 Initial load
duke
parents:
diff changeset
    64
# Basic hotspot build and export of it's files
fd16c54261b3 Initial load
duke
parents:
diff changeset
    65
#
fd16c54261b3 Initial load
duke
parents:
diff changeset
    66
fd16c54261b3 Initial load
duke
parents:
diff changeset
    67
HOTSPOT_TARGET = all_product
fd16c54261b3 Initial load
duke
parents:
diff changeset
    68
ifeq ($(DEBUG_NAME), debug)
fd16c54261b3 Initial load
duke
parents:
diff changeset
    69
  HOTSPOT_TARGET = all_debug
fd16c54261b3 Initial load
duke
parents:
diff changeset
    70
endif
fd16c54261b3 Initial load
duke
parents:
diff changeset
    71
ifeq ($(DEBUG_NAME), fastdebug)
fd16c54261b3 Initial load
duke
parents:
diff changeset
    72
  HOTSPOT_TARGET = all_fastdebug
fd16c54261b3 Initial load
duke
parents:
diff changeset
    73
endif
fd16c54261b3 Initial load
duke
parents:
diff changeset
    74
4082
d3f4c20c3f80 6891677: java/build integrate zero assembler JDK changes
gbenson
parents: 3792
diff changeset
    75
ifeq ($(ZERO_BUILD), true)
d3f4c20c3f80 6891677: java/build integrate zero assembler JDK changes
gbenson
parents: 3792
diff changeset
    76
  HOTSPOT_TARGET := $(HOTSPOT_TARGET)zero
d3f4c20c3f80 6891677: java/build integrate zero assembler JDK changes
gbenson
parents: 3792
diff changeset
    77
endif
d3f4c20c3f80 6891677: java/build integrate zero assembler JDK changes
gbenson
parents: 3792
diff changeset
    78
0
fd16c54261b3 Initial load
duke
parents:
diff changeset
    79
HOTSPOT_BUILD_ARGUMENTS += $(COMMON_BUILD_ARGUMENTS)
fd16c54261b3 Initial load
duke
parents:
diff changeset
    80
HOTSPOT_BUILD_ARGUMENTS += ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR)
fd16c54261b3 Initial load
duke
parents:
diff changeset
    81
HOTSPOT_BUILD_ARGUMENTS += ALT_EXPORT_PATH=$(HOTSPOT_EXPORT_PATH)
fd16c54261b3 Initial load
duke
parents:
diff changeset
    82
fd16c54261b3 Initial load
duke
parents:
diff changeset
    83
# Why do these need to be passed in? Because of windows nmake? and MAKEFLAGS=?
fd16c54261b3 Initial load
duke
parents:
diff changeset
    84
#   Or is there something wrong with hotspot/make/Makefile?
fd16c54261b3 Initial load
duke
parents:
diff changeset
    85
HOTSPOT_BUILD_ARGUMENTS += ALT_SLASH_JAVA=$(SLASH_JAVA)
fd16c54261b3 Initial load
duke
parents:
diff changeset
    86
HOTSPOT_BUILD_ARGUMENTS += ALT_BOOTDIR=$(BOOTDIR)
fd16c54261b3 Initial load
duke
parents:
diff changeset
    87
fd16c54261b3 Initial load
duke
parents:
diff changeset
    88
ifeq ($(BUILD_LANGTOOLS), true)
fd16c54261b3 Initial load
duke
parents:
diff changeset
    89
  HOTSPOT_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
fd16c54261b3 Initial load
duke
parents:
diff changeset
    90
endif
fd16c54261b3 Initial load
duke
parents:
diff changeset
    91
fd16c54261b3 Initial load
duke
parents:
diff changeset
    92
hotspot-build::
fd16c54261b3 Initial load
duke
parents:
diff changeset
    93
	$(MKDIR) -p $(HOTSPOT_OUTPUTDIR)
fd16c54261b3 Initial load
duke
parents:
diff changeset
    94
	$(MKDIR) -p $(HOTSPOT_EXPORT_PATH)
3789
2040d99c6f14 6855174: Improve log output when builds transition from one workspace to another
ohair
parents: 0
diff changeset
    95
	@$(call MakeStart, hotspot, $(HOTSPOT_TARGET))
0
fd16c54261b3 Initial load
duke
parents:
diff changeset
    96
	$(CD) $(HOTSPOT_TOPDIR)/make && \
fd16c54261b3 Initial load
duke
parents:
diff changeset
    97
	    $(MAKE) $(HOTSPOT_BUILD_ARGUMENTS) $(HOTSPOT_TARGET)
3789
2040d99c6f14 6855174: Improve log output when builds transition from one workspace to another
ohair
parents: 0
diff changeset
    98
	@$(call MakeFinish, hotspot, $(HOTSPOT_TARGET))
0
fd16c54261b3 Initial load
duke
parents:
diff changeset
    99
fd16c54261b3 Initial load
duke
parents:
diff changeset
   100
#####################
fd16c54261b3 Initial load
duke
parents:
diff changeset
   101
# .PHONY
fd16c54261b3 Initial load
duke
parents:
diff changeset
   102
#####################
fd16c54261b3 Initial load
duke
parents:
diff changeset
   103
.PHONY: hotspot-build hotspot-clobber hotspot-sanity
fd16c54261b3 Initial load
duke
parents:
diff changeset
   104