Tue, 24 Jun 2008 16:52:31 -0700
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
1.1 --- a/make/defs.make Sun Jun 22 20:07:58 2008 -0700 1.2 +++ b/make/defs.make Tue Jun 24 16:52:31 2008 -0700 1.3 @@ -228,6 +228,7 @@ 1.4 1.5 # Required make macro settings for all platforms 1.6 MAKE_ARGS += JAVA_HOME=$(ABS_BOOTDIR) 1.7 +MAKE_ARGS += OUTPUTDIR=$(ABS_OUTPUTDIR) 1.8 MAKE_ARGS += GAMMADIR=$(ABS_GAMMADIR) 1.9 MAKE_ARGS += MAKE_VERBOSE=$(MAKE_VERBOSE) 1.10 MAKE_ARGS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) 1.11 @@ -261,21 +262,3 @@ 1.12 EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jni.h 1.13 EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/$(JDK_INCLUDE_SUBDIR)/jni_md.h 1.14 EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jmm.h 1.15 - 1.16 -# A list of object files built without the platform specific PIC flags, e.g. 1.17 -# -fPIC on linux. Performance measurements show that by compiling GC related 1.18 -# code, we could significantly reduce the GC pause time on 32 bit Linux/Unix 1.19 -# platforms. See 6454213 for more details. 1.20 -include $(GAMMADIR)/make/scm.make 1.21 - 1.22 -ifneq ($(OSNAME), windows) 1.23 - ifndef LP64 1.24 - NONPIC_DIRS = memory oops gc_implementation gc_interface 1.25 - NONPIC_DIRS := $(foreach dir,$(NONPIC_DIRS), $(GAMMADIR)/src/share/vm/$(dir)) 1.26 - # Look for source files under NONPIC_DIRS 1.27 - NONPIC_FILES := $(foreach dir,$(NONPIC_DIRS),\ 1.28 - $(shell find $(dir) \( $(SCM_DIRS) \) -prune -o \ 1.29 - -name '*.cpp' -print)) 1.30 - NONPIC_OBJ_FILES := $(notdir $(subst .cpp,.o,$(NONPIC_FILES))) 1.31 - endif 1.32 -endif
2.1 --- a/make/linux/makefiles/rules.make Sun Jun 22 20:07:58 2008 -0700 2.2 +++ b/make/linux/makefiles/rules.make Tue Jun 24 16:52:31 2008 -0700 2.3 @@ -133,7 +133,10 @@ 2.4 COMPILE_DONE = && { echo Done with $<; } 2.5 endif 2.6 2.7 -include $(GAMMADIR)/make/defs.make 2.8 +# Include $(NONPIC_OBJ_FILES) definition 2.9 +ifndef LP64 2.10 +include $(GAMMADIR)/make/pic.make 2.11 +endif 2.12 2.13 # The non-PIC object files are only generated for 32 bit platforms. 2.14 ifdef LP64
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/make/pic.make Tue Jun 24 16:52:31 2008 -0700 3.3 @@ -0,0 +1,41 @@ 3.4 +# 3.5 +# Copyright 2006-2007 Sun Microsystems, Inc. All Rights Reserved. 3.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3.7 +# 3.8 +# This code is free software; you can redistribute it and/or modify it 3.9 +# under the terms of the GNU General Public License version 2 only, as 3.10 +# published by the Free Software Foundation. 3.11 +# 3.12 +# This code is distributed in the hope that it will be useful, but WITHOUT 3.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 3.14 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 3.15 +# version 2 for more details (a copy is included in the LICENSE file that 3.16 +# accompanied this code). 3.17 +# 3.18 +# You should have received a copy of the GNU General Public License version 3.19 +# 2 along with this work; if not, write to the Free Software Foundation, 3.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 3.21 +# 3.22 +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 3.23 +# CA 95054 USA or visit www.sun.com if you need additional information or 3.24 +# have any questions. 3.25 +# 3.26 +# 3.27 + 3.28 +# A list of object files built without the platform specific PIC flags, e.g. 3.29 +# -fPIC on linux. Performance measurements show that by compiling GC related 3.30 +# code, we could significantly reduce the GC pause time on 32 bit Linux/Unix 3.31 +# platforms. See 6454213 for more details. 3.32 +include $(GAMMADIR)/make/scm.make 3.33 + 3.34 +ifneq ($(OSNAME), windows) 3.35 + ifndef LP64 3.36 + NONPIC_DIRS = memory oops gc_implementation gc_interface 3.37 + NONPIC_DIRS := $(foreach dir,$(NONPIC_DIRS), $(GAMMADIR)/src/share/vm/$(dir)) 3.38 + # Look for source files under NONPIC_DIRS 3.39 + NONPIC_FILES := $(foreach dir,$(NONPIC_DIRS),\ 3.40 + $(shell find $(dir) \( $(SCM_DIRS) \) -prune -o \ 3.41 + -name '*.cpp' -print)) 3.42 + NONPIC_OBJ_FILES := $(notdir $(subst .cpp,.o,$(NONPIC_FILES))) 3.43 + endif 3.44 +endif
4.1 --- a/make/solaris/makefiles/rules.make Sun Jun 22 20:07:58 2008 -0700 4.2 +++ b/make/solaris/makefiles/rules.make Tue Jun 24 16:52:31 2008 -0700 4.3 @@ -133,7 +133,10 @@ 4.4 COMPILE_DONE = && { echo Done with $<; } 4.5 endif 4.6 4.7 -include $(GAMMADIR)/make/defs.make 4.8 +# Include NONPIC_OBJ_FILES definition 4.9 +ifndef LP64 4.10 +include $(GAMMADIR)/make/pic.make 4.11 +endif 4.12 4.13 # Sun compiler for 64 bit Solaris does not support building non-PIC object files. 4.14 ifdef LP64