make/windows/makefiles/rules.make

Fri, 20 Sep 2013 10:53:28 +0200

author
stefank
date
Fri, 20 Sep 2013 10:53:28 +0200
changeset 5769
2c022e432e10
parent 5605
f462e61bce87
child 6198
55fb97c4c58d
permissions
-rw-r--r--

8024974: Incorrect use of GC_locker::is_active()
Summary: SymbolTable and StringTable can make calls to GC_locker::is_active() outside a safepoint. This isn't safe because the GC_locker active state (lock count) is only updated at a safepoint and only remains valid as long as _needs_gc is true. However, outside a safepoint_needs_gc can change to false at any time, which makes it impossible to do a correct call to is_active() in that context. In this case these calls can just be removed since the input argument to basic_add() should never be on the heap and so there's no need to check the GC_locker state. This change also adjusts the assert() in is_active() to makes sure all calls to this function are always done under a safepoint.
Reviewed-by: brutisso, dcubed
Contributed-by: per.liden@oracle.com

duke@435 1 #
mikael@4153 2 # Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
duke@435 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
duke@435 4 #
duke@435 5 # This code is free software; you can redistribute it and/or modify it
duke@435 6 # under the terms of the GNU General Public License version 2 only, as
duke@435 7 # published by the Free Software Foundation.
duke@435 8 #
duke@435 9 # This code is distributed in the hope that it will be useful, but WITHOUT
duke@435 10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
duke@435 11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
duke@435 12 # version 2 for more details (a copy is included in the LICENSE file that
duke@435 13 # accompanied this code).
duke@435 14 #
duke@435 15 # You should have received a copy of the GNU General Public License version
duke@435 16 # 2 along with this work; if not, write to the Free Software Foundation,
duke@435 17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
duke@435 18 #
trims@1907 19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
trims@1907 20 # or visit www.oracle.com if you need additional information or have any
trims@1907 21 # questions.
duke@435 22 #
duke@435 23 #
duke@435 24
duke@435 25 # These are the commands used externally to compile and run.
dcubed@3990 26 # The \ are used here for traditional Windows apps and " quoted to get
dcubed@3990 27 # past the Unix-like shell:
duke@435 28 !ifdef BootStrapDir
dcubed@3990 29 RUN_JAVA="$(BootStrapDir)\bin\java"
dcubed@3990 30 RUN_JAVAP="$(BootStrapDir)\bin\javap"
dcubed@3990 31 RUN_JAVAH="$(BootStrapDir)\bin\javah"
dcubed@3990 32 RUN_JAR="$(BootStrapDir)\bin\jar"
dcubed@3990 33 COMPILE_JAVAC="$(BootStrapDir)\bin\javac" $(BOOTSTRAP_JAVAC_FLAGS)
dcubed@3990 34 COMPILE_RMIC="$(BootStrapDir)\bin\rmic"
duke@435 35 BOOT_JAVA_HOME=$(BootStrapDir)
duke@435 36 !else
duke@435 37 RUN_JAVA=java
duke@435 38 RUN_JAVAP=javap
duke@435 39 RUN_JAVAH=javah
duke@435 40 RUN_JAR=jar
andrew@1406 41 COMPILE_JAVAC=javac $(BOOTSTRAP_JAVAC_FLAGS)
duke@435 42 COMPILE_RMIC=rmic
duke@435 43 BOOT_JAVA_HOME=
duke@435 44 !endif
duke@435 45
andrew@1406 46 # Settings for javac
andrew@1406 47 BOOT_SOURCE_LANGUAGE_VERSION=6
andrew@1406 48 BOOT_TARGET_CLASS_VERSION=6
andrew@1406 49 JAVAC_FLAGS=-g -encoding ascii
andrew@1406 50 BOOTSTRAP_JAVAC_FLAGS=$(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION)
andrew@1406 51
sla@2369 52 ProjectFile=jvm.vcproj
ikrylov@1094 53
duke@435 54 !if "$(MSC_VER)" == "1200"
ikrylov@1094 55
duke@435 56 VcVersion=VC6
sla@2540 57 ProjectFile=jvm.dsp
ikrylov@1094 58
ikrylov@1094 59 !elseif "$(MSC_VER)" == "1400"
ikrylov@1094 60
ikrylov@1094 61 VcVersion=VC8
ikrylov@1094 62
ikrylov@1094 63 !elseif "$(MSC_VER)" == "1500"
ikrylov@1094 64
ikrylov@1094 65 VcVersion=VC9
ikrylov@1094 66
sla@2369 67 !elseif "$(MSC_VER)" == "1600"
sla@2369 68
sla@2675 69 VcVersion=VC10
sla@2675 70 ProjectFile=jvm.vcxproj
sla@2369 71
iklam@5605 72 !elseif "$(MSC_VER)" == "1700"
iklam@5605 73 # This is VS2012, but it loads VS10 projects just fine (and will
iklam@5605 74 # upgrade them automatically to VS2012 format).
iklam@5605 75
iklam@5605 76 VcVersion=VC10
iklam@5605 77 ProjectFile=jvm.vcxproj
iklam@5605 78
duke@435 79 !else
ikrylov@1094 80
duke@435 81 VcVersion=VC7
ikrylov@1094 82
duke@435 83 !endif

mercurial