make/pic.make

Wed, 18 Aug 2010 10:59:06 -0700

author
johnc
date
Wed, 18 Aug 2010 10:59:06 -0700
changeset 2076
413ad0331a0c
parent 1907
c18cbe5936b8
child 3880
06320b1578cb
permissions
-rw-r--r--

6977924: Changes for 6975078 produce build error with certain gcc versions
Summary: The changes introduced for 6975078 assign badHeapOopVal to the _allocation field in the ResourceObj class. In 32 bit linux builds with certain versions of gcc this assignment will be flagged as an error while compiling allocation.cpp. In 32 bit builds the constant value badHeapOopVal (which is cast to an intptr_t) is negative. The _allocation field is typed as an unsigned intptr_t and gcc catches this as an error.
Reviewed-by: jcoomes, ysr, phh

xlu@663 1 #
trims@1907 2 # Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved.
xlu@663 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
xlu@663 4 #
xlu@663 5 # This code is free software; you can redistribute it and/or modify it
xlu@663 6 # under the terms of the GNU General Public License version 2 only, as
xlu@663 7 # published by the Free Software Foundation.
xlu@663 8 #
xlu@663 9 # This code is distributed in the hope that it will be useful, but WITHOUT
xlu@663 10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
xlu@663 11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
xlu@663 12 # version 2 for more details (a copy is included in the LICENSE file that
xlu@663 13 # accompanied this code).
xlu@663 14 #
xlu@663 15 # You should have received a copy of the GNU General Public License version
xlu@663 16 # 2 along with this work; if not, write to the Free Software Foundation,
xlu@663 17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
xlu@663 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.
xlu@663 22 #
xlu@663 23 #
xlu@663 24
xlu@663 25 # A list of object files built without the platform specific PIC flags, e.g.
xlu@663 26 # -fPIC on linux. Performance measurements show that by compiling GC related
xlu@663 27 # code, we could significantly reduce the GC pause time on 32 bit Linux/Unix
xlu@663 28 # platforms. See 6454213 for more details.
xlu@663 29 include $(GAMMADIR)/make/scm.make
xlu@663 30
xlu@663 31 ifneq ($(OSNAME), windows)
xlu@663 32 ifndef LP64
xlu@663 33 NONPIC_DIRS = memory oops gc_implementation gc_interface
xlu@663 34 NONPIC_DIRS := $(foreach dir,$(NONPIC_DIRS), $(GAMMADIR)/src/share/vm/$(dir))
xlu@663 35 # Look for source files under NONPIC_DIRS
xlu@663 36 NONPIC_FILES := $(foreach dir,$(NONPIC_DIRS),\
xlu@663 37 $(shell find $(dir) \( $(SCM_DIRS) \) -prune -o \
xlu@663 38 -name '*.cpp' -print))
xlu@663 39 NONPIC_OBJ_FILES := $(notdir $(subst .cpp,.o,$(NONPIC_FILES)))
xlu@663 40 endif
xlu@663 41 endif

mercurial