6717128: Using relative path for ALT_OUTPUTDIR does not work properly

Tue, 24 Jun 2008 16:52:31 -0700

author
xlu
date
Tue, 24 Jun 2008 16:52:31 -0700
changeset 663
f232d7d67023
parent 662
8d852b81e775
child 664
3e82d72933d0

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

make/defs.make file | annotate | diff | comparison | revisions
make/linux/makefiles/rules.make file | annotate | diff | comparison | revisions
make/pic.make file | annotate | diff | comparison | revisions
make/solaris/makefiles/rules.make file | annotate | diff | comparison | revisions
     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

mercurial