# HG changeset patch # User xlu # Date 1214351551 25200 # Node ID e71318ea23e858837a8a1dd19bf5d79cc3471f77 # Parent 01daf7c809b1b642638e3dba20023829b15c4751 6717128: Using relative path for ALT_OUTPUTDIR does not work properly Summary: import the absolute output directory when launching sub make process and avoid including defs.make in rules.make Reviewed-by: kamg, kvn diff -r 01daf7c809b1 -r e71318ea23e8 hotspot/make/defs.make --- a/hotspot/make/defs.make Sun Jun 22 20:07:58 2008 -0700 +++ b/hotspot/make/defs.make Tue Jun 24 16:52:31 2008 -0700 @@ -228,6 +228,7 @@ # Required make macro settings for all platforms MAKE_ARGS += JAVA_HOME=$(ABS_BOOTDIR) +MAKE_ARGS += OUTPUTDIR=$(ABS_OUTPUTDIR) MAKE_ARGS += GAMMADIR=$(ABS_GAMMADIR) MAKE_ARGS += MAKE_VERBOSE=$(MAKE_VERBOSE) MAKE_ARGS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) @@ -261,21 +262,3 @@ EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jni.h EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/$(JDK_INCLUDE_SUBDIR)/jni_md.h EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jmm.h - -# A list of object files built without the platform specific PIC flags, e.g. -# -fPIC on linux. Performance measurements show that by compiling GC related -# code, we could significantly reduce the GC pause time on 32 bit Linux/Unix -# platforms. See 6454213 for more details. -include $(GAMMADIR)/make/scm.make - -ifneq ($(OSNAME), windows) - ifndef LP64 - NONPIC_DIRS = memory oops gc_implementation gc_interface - NONPIC_DIRS := $(foreach dir,$(NONPIC_DIRS), $(GAMMADIR)/src/share/vm/$(dir)) - # Look for source files under NONPIC_DIRS - NONPIC_FILES := $(foreach dir,$(NONPIC_DIRS),\ - $(shell find $(dir) \( $(SCM_DIRS) \) -prune -o \ - -name '*.cpp' -print)) - NONPIC_OBJ_FILES := $(notdir $(subst .cpp,.o,$(NONPIC_FILES))) - endif -endif diff -r 01daf7c809b1 -r e71318ea23e8 hotspot/make/linux/makefiles/rules.make --- a/hotspot/make/linux/makefiles/rules.make Sun Jun 22 20:07:58 2008 -0700 +++ b/hotspot/make/linux/makefiles/rules.make Tue Jun 24 16:52:31 2008 -0700 @@ -133,7 +133,10 @@ COMPILE_DONE = && { echo Done with $<; } endif -include $(GAMMADIR)/make/defs.make +# Include $(NONPIC_OBJ_FILES) definition +ifndef LP64 +include $(GAMMADIR)/make/pic.make +endif # The non-PIC object files are only generated for 32 bit platforms. ifdef LP64 diff -r 01daf7c809b1 -r e71318ea23e8 hotspot/make/pic.make --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/make/pic.make Tue Jun 24 16:52:31 2008 -0700 @@ -0,0 +1,41 @@ +# +# Copyright 2006-2007 Sun Microsystems, Inc. All Rights Reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +# CA 95054 USA or visit www.sun.com if you need additional information or +# have any questions. +# +# + +# A list of object files built without the platform specific PIC flags, e.g. +# -fPIC on linux. Performance measurements show that by compiling GC related +# code, we could significantly reduce the GC pause time on 32 bit Linux/Unix +# platforms. See 6454213 for more details. +include $(GAMMADIR)/make/scm.make + +ifneq ($(OSNAME), windows) + ifndef LP64 + NONPIC_DIRS = memory oops gc_implementation gc_interface + NONPIC_DIRS := $(foreach dir,$(NONPIC_DIRS), $(GAMMADIR)/src/share/vm/$(dir)) + # Look for source files under NONPIC_DIRS + NONPIC_FILES := $(foreach dir,$(NONPIC_DIRS),\ + $(shell find $(dir) \( $(SCM_DIRS) \) -prune -o \ + -name '*.cpp' -print)) + NONPIC_OBJ_FILES := $(notdir $(subst .cpp,.o,$(NONPIC_FILES))) + endif +endif diff -r 01daf7c809b1 -r e71318ea23e8 hotspot/make/solaris/makefiles/rules.make --- a/hotspot/make/solaris/makefiles/rules.make Sun Jun 22 20:07:58 2008 -0700 +++ b/hotspot/make/solaris/makefiles/rules.make Tue Jun 24 16:52:31 2008 -0700 @@ -133,7 +133,10 @@ COMPILE_DONE = && { echo Done with $<; } endif -include $(GAMMADIR)/make/defs.make +# Include NONPIC_OBJ_FILES definition +ifndef LP64 +include $(GAMMADIR)/make/pic.make +endif # Sun compiler for 64 bit Solaris does not support building non-PIC object files. ifdef LP64