make/linux/makefiles/vm.make
Print this page
*** 33,63 ****
#----------------------------------------------------------------------
# Defs
GENERATED = ../generated
! # read a generated file defining the set of .o's and the .o .h dependencies
! include $(GENERATED)/Dependencies
# read machine-specific adjustments (%%% should do this via buildtree.make?)
ifeq ($(ZERO_BUILD), true)
include $(MAKEFILES_DIR)/zeroshark.make
else
include $(MAKEFILES_DIR)/$(BUILDARCH).make
endif
# set VPATH so make knows where to look for source files
# Src_Dirs is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm
- # The incls directory contains generated header file lists for inclusion.
# The adfiles directory contains ad_<arch>.[ch]pp.
# The jvmtifiles directory contains jvmti*.[ch]pp
! Src_Dirs_V = $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED)/incls
VPATH += $(Src_Dirs_V:%=%:)
# set INCLUDES for C preprocessor
! Src_Dirs_I = $(PRECOMPILED_HEADER_DIR) $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED)
INCLUDES += $(Src_Dirs_I:%=-I%)
ifeq (${VERSION}, debug)
SYMFLAG = -g
else
--- 33,63 ----
#----------------------------------------------------------------------
# Defs
GENERATED = ../generated
+ DEP_DIR = $(GENERATED)/dependencies
! # reads the generated files defining the set of .o's and the .o .h dependencies
! -include $(DEP_DIR)/*.d
# read machine-specific adjustments (%%% should do this via buildtree.make?)
ifeq ($(ZERO_BUILD), true)
include $(MAKEFILES_DIR)/zeroshark.make
else
include $(MAKEFILES_DIR)/$(BUILDARCH).make
endif
# set VPATH so make knows where to look for source files
# Src_Dirs is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm
# The adfiles directory contains ad_<arch>.[ch]pp.
# The jvmtifiles directory contains jvmti*.[ch]pp
! Src_Dirs_V = $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs}
VPATH += $(Src_Dirs_V:%=%:)
# set INCLUDES for C preprocessor
! Src_Dirs_I = $(PRECOMPILED_HEADER_DIR) $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GAMMADIR)/src/share/vm $(GENERATED)
INCLUDES += $(Src_Dirs_I:%=-I%)
ifeq (${VERSION}, debug)
SYMFLAG = -g
else
*** 116,125 ****
--- 116,190 ----
JVM = jvm
LIBJVM = lib$(JVM).so
LIBJVM_G = lib$(JVM)$(G_SUFFIX).so
+ BASE_PATHS := $(shell find $(GAMMADIR)/src/share/vm/* -prune -type d \! \( -name adlc -o -name c1 -o -name gc_implementation -o -name opto -o -name shark -o -name libadt \))
+ BASE_PATHS += $(GAMMADIR)/src/share/vm/gc_implementation/shared
+ BASE_PATHS += $(GAMMADIR)/src/os/$(Platform_os_family)/vm
+ BASE_PATHS += $(GAMMADIR)/src/cpu/$(Platform_arch)/vm
+ BASE_PATHS += $(GAMMADIR)/src/os_cpu/$(Platform_os_arch)/vm
+ BASE_PATHS += $(GENERATED)/jvmtifiles
+
+ CORE_PATHS := $(BASE_PATHS)
+ # shared is already in BASE_PATHS. Should add vm/memory but that one is also in BASE_PATHS.
+ CORE_PATHS += $(shell find $(GAMMADIR)/src/share/vm/gc_implementation/* -prune -type d \! -name shared)
+
+ COMPILER1_PATHS := $(GAMMADIR)/src/share/vm/c1
+
+ COMPILER2_PATHS := $(GAMMADIR)/src/share/vm/opto
+ COMPILER2_PATHS += $(GAMMADIR)/src/share/vm/libadt
+ COMPILER2_PATHS += $(GENERATED)/adfiles
+
+ # Include dirs per type.
+ Src_Dirs/CORE := $(CORE_PATHS)
+ Src_Dirs/KERNEL := $(BASE_PATHS) $(COMPILER1_PATHS)
+ Src_Dirs/COMPILER1 := $(CORE_PATHS) $(COMPILER1_PATHS)
+ Src_Dirs/COMPILER2 := $(CORE_PATHS) $(COMPILER2_PATHS)
+ Src_Dirs/TIERED := $(CORE_PATHS) $(COMPILER1_PATHS) $(COMPILER2_PATHS)
+ Src_Dirs/ZERO := $(CORE_PATHS)
+ Src_Dirs/SHARK := $(CORE_PATHS)
+ Src_Dirs := $(Src_Dirs/$(TYPE))
+
+ COMPILER2_SPECIFIC_FILES := opto libadt bcEscapeAnalyzer.cpp chaitin c2_\* runtime_\*
+ COMPILER1_SPECIFIC_FILES := c1_\*
+ SHARK_SPECIFIC_FILES := shark
+ ZERO_SPECIFIC_FILES := zero
+
+ # These files need to be excluded when building the kernel target.
+ KERNEL_EXCLUDED_FILES := attachListener.cpp attachListener_${Platform_os_family}.cpp dump.cpp dump_$(Platform_arch_model).cpp forte.cpp fprofiler.cpp heapDumper.cpp heapInspection.cpp jniCheck.cpp jvmtiCodeBlobEvents.cpp jvmtiExtensions.cpp jvmtiImpl.cpp jvmtiTagMap.cpp jvmtiTrace.cpp restore.cpp serialize.cpp vmStructs.cpp g1MemoryPool.cpp psMemoryPool.cpp gcAdaptivePolicyCounters.cpp concurrentGCThread.cpp mutableNUMASpace.cpp allocationStats.cpp gSpaceCounters.cpp immutableSpace.cpp mutableSpace.cpp spaceCounters.cpp yieldingWorkgroup.cpp
+
+ # Always exclude these.
+ Src_Files_EXCLUDE := jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp
+
+ # Exclude per type.
+ Src_Files_EXCLUDE/CORE := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
+ Src_Files_EXCLUDE/KERNEL := $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) $(KERNEL_EXCLUDED_FILES) ciTypeFlow.cpp
+ Src_Files_EXCLUDE/COMPILER1 := $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
+ Src_Files_EXCLUDE/COMPILER2 := $(COMPILER1_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES)
+ Src_Files_EXCLUDE/TIERED := $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES)
+ Src_Files_EXCLUDE/ZERO := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp
+ Src_Files_EXCLUDE/SHARK := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES)
+
+ Src_Files_EXCLUDE += $(Src_Files_EXCLUDE/$(TYPE))
+
+ # Special handling of arch model.
+ ifeq ($(Platform_arch_model), x86_32)
+ Src_Files_EXCLUDE += \*x86_64\*
+ endif
+ ifeq ($(Platform_arch_model), x86_64)
+ Src_Files_EXCLUDE += \*x86_32\*
+ endif
+
+ define findsrc
+ $(notdir $(shell find $(1) \( -name \*.c -o -name \*.cpp -o -name \*.s \) -a \! \( -name DUMMY $(addprefix -o -name ,$(Src_Files_EXCLUDE)) \) ))
+ endef
+
+ Src_Files := $(foreach e,$(Src_Dirs),$(call findsrc,$(e)))
+
+ Obj_Files = $(addsuffix .o,$(basename $(Src_Files)))
+
JVM_OBJ_FILES = $(Obj_Files)
vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
mapfile : $(MAPFILE) vm.def
*** 178,191 ****
endif
LINK_VM = $(LINK_LIB.c)
# rule for building precompiled header
! $(PRECOMPILED_HEADER): $(Precompiled_Files)
$(QUIETLY) echo Generating precompiled header $@
! $(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)/incls
! $(QUIETLY) $(COMPILE.CC) -x c++-header -c $(GENERATED)/incls/_precompiled.incl -o $@ $(COMPILE_DONE)
# making the library:
ifneq ($(JVM_BASE_ADDR),)
# By default shared library is linked at base address == 0. Modify the
--- 243,256 ----
endif
LINK_VM = $(LINK_LIB.c)
# rule for building precompiled header
! $(PRECOMPILED_HEADER):
$(QUIETLY) echo Generating precompiled header $@
! $(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)
! $(QUIETLY) $(COMPILE.CC) -x c++-header -MMD -MP -MF $(DEP_DIR)/$(@:%=%.d) -MT '$@' -c $(PRECOMPILED_HEADER_SRC) -o $@ $(COMPILE_DONE)
# making the library:
ifneq ($(JVM_BASE_ADDR),)
# By default shared library is linked at base address == 0. Modify the