6717128: Using relative path for ALT_OUTPUTDIR does not work properly
authorxlu
Tue, 24 Jun 2008 16:52:31 -0700
changeset 774 e71318ea23e8
parent 773 01daf7c809b1
child 775 d9c9b9cd55fb
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
hotspot/make/defs.make
hotspot/make/linux/makefiles/rules.make
hotspot/make/pic.make
hotspot/make/solaris/makefiles/rules.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
--- 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
--- /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
--- 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