mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 14:24:46 +02:00
8136556: Add the ability to perform static builds of MacOSX x64 binaries
Reviewed-by: ihse, bdelsart, gadams, lfoltan, rriggs, hseigel, twisti
This commit is contained in:
parent
119988f54a
commit
d65d34b99d
11 changed files with 128 additions and 38 deletions
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -403,6 +403,8 @@ $(EXPORT_LIB_ARCH_DIR)/%.dSYM: $(C2_BUILD_DIR)/%.dSYM
|
||||||
$(install-dir)
|
$(install-dir)
|
||||||
$(EXPORT_SERVER_DIR)/%.dSYM: $(C2_BUILD_DIR)/%.dSYM
|
$(EXPORT_SERVER_DIR)/%.dSYM: $(C2_BUILD_DIR)/%.dSYM
|
||||||
$(install-dir)
|
$(install-dir)
|
||||||
|
$(EXPORT_SERVER_DIR)/%.symbols: $(C2_BUILD_DIR)/%.symbols
|
||||||
|
$(install-file)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Client (C1)
|
# Client (C1)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -224,6 +224,11 @@ flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst
|
||||||
echo "OPENJDK = $(OPENJDK)"; \
|
echo "OPENJDK = $(OPENJDK)"; \
|
||||||
echo "$(LP64_SETTING/$(DATA_MODE))"; \
|
echo "$(LP64_SETTING/$(DATA_MODE))"; \
|
||||||
echo; \
|
echo; \
|
||||||
|
echo "STATIC_BUILD = $(STATIC_BUILD)"; \
|
||||||
|
echo "COMPILER_WARNINGS_FATAL = $(COMPILER_WARNINGS_FATAL)"; \
|
||||||
|
echo "EXTRA_LDFLAGS = $(EXTRA_LDFLAGS)"; \
|
||||||
|
echo "LIBRARY_SUFFIX = $(LIBRARY_SUFFIX)"; \
|
||||||
|
echo; \
|
||||||
echo "# Used for platform dispatching"; \
|
echo "# Used for platform dispatching"; \
|
||||||
echo "TARGET_DEFINES = -DTARGET_OS_FAMILY_\$$(Platform_os_family)"; \
|
echo "TARGET_DEFINES = -DTARGET_OS_FAMILY_\$$(Platform_os_family)"; \
|
||||||
echo "TARGET_DEFINES += -DTARGET_ARCH_\$$(Platform_arch)"; \
|
echo "TARGET_DEFINES += -DTARGET_ARCH_\$$(Platform_arch)"; \
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -186,6 +186,8 @@ ifeq ($(JDK6_OR_EARLIER),0)
|
||||||
# executed multiple times. We reduce the noise by at least checking that
|
# executed multiple times. We reduce the noise by at least checking that
|
||||||
# BUILD_FLAVOR has been set.
|
# BUILD_FLAVOR has been set.
|
||||||
ifneq ($(BUILD_FLAVOR),)
|
ifneq ($(BUILD_FLAVOR),)
|
||||||
|
# FULL_DEBUG_SYMBOLS not created for individual static libraries
|
||||||
|
ifeq ($(STATIC_BUILD),false)
|
||||||
ifeq ($(BUILD_FLAVOR), product)
|
ifeq ($(BUILD_FLAVOR), product)
|
||||||
FULL_DEBUG_SYMBOLS ?= 1
|
FULL_DEBUG_SYMBOLS ?= 1
|
||||||
ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
|
ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
|
||||||
|
@ -193,6 +195,7 @@ ifeq ($(JDK6_OR_EARLIER),0)
|
||||||
# debug variants always get Full Debug Symbols (if available)
|
# debug variants always get Full Debug Symbols (if available)
|
||||||
ENABLE_FULL_DEBUG_SYMBOLS = 1
|
ENABLE_FULL_DEBUG_SYMBOLS = 1
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
$(eval $(call print_info, "ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)"))
|
$(eval $(call print_info, "ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)"))
|
||||||
# since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
|
# since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
|
||||||
|
|
||||||
|
@ -256,16 +259,24 @@ endif # JDK_6_OR_EARLIER
|
||||||
JDK_INCLUDE_SUBDIR=bsd
|
JDK_INCLUDE_SUBDIR=bsd
|
||||||
|
|
||||||
# Library suffix
|
# Library suffix
|
||||||
|
ifneq ($(STATIC_BUILD),true)
|
||||||
ifeq ($(OS_VENDOR),Darwin)
|
ifeq ($(OS_VENDOR),Darwin)
|
||||||
LIBRARY_SUFFIX=dylib
|
LIBRARY_SUFFIX=dylib
|
||||||
else
|
else
|
||||||
LIBRARY_SUFFIX=so
|
LIBRARY_SUFFIX=so
|
||||||
endif
|
endif
|
||||||
|
else
|
||||||
|
LIBRARY_SUFFIX=a
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
|
EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
|
||||||
|
|
||||||
|
# jsig library not needed for static builds
|
||||||
|
ifneq ($(STATIC_BUILD),true)
|
||||||
# client and server subdirectories have symbolic links to ../libjsig.so
|
# client and server subdirectories have symbolic links to ../libjsig.so
|
||||||
EXPORT_LIST += $(EXPORT_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
|
EXPORT_LIST += $(EXPORT_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
||||||
ifeq ($(ZIP_DEBUGINFO_FILES),1)
|
ifeq ($(ZIP_DEBUGINFO_FILES),1)
|
||||||
|
@ -286,6 +297,9 @@ EXPORT_MINIMAL_DIR = $(EXPORT_LIB_ARCH_DIR)/minimal
|
||||||
ifeq ($(findstring true, $(JVM_VARIANT_SERVER) $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
|
ifeq ($(findstring true, $(JVM_VARIANT_SERVER) $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
|
||||||
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
||||||
|
ifeq ($(STATIC_BUILD),true)
|
||||||
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.symbols
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
||||||
ifeq ($(ZIP_DEBUGINFO_FILES),1)
|
ifeq ($(ZIP_DEBUGINFO_FILES),1)
|
||||||
|
@ -303,6 +317,9 @@ endif
|
||||||
ifeq ($(JVM_VARIANT_CLIENT),true)
|
ifeq ($(JVM_VARIANT_CLIENT),true)
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
|
||||||
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
||||||
|
ifeq ($(STATIC_BUILD),true)
|
||||||
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.symbols
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
||||||
ifeq ($(ZIP_DEBUGINFO_FILES),1)
|
ifeq ($(ZIP_DEBUGINFO_FILES),1)
|
||||||
|
@ -320,6 +337,9 @@ endif
|
||||||
ifeq ($(JVM_VARIANT_MINIMAL1),true)
|
ifeq ($(JVM_VARIANT_MINIMAL1),true)
|
||||||
EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/Xusage.txt
|
EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/Xusage.txt
|
||||||
EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
||||||
|
ifeq ($(STATIC_BUILD),true)
|
||||||
|
EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/libjvm.symbols
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Serviceability Binaries
|
# Serviceability Binaries
|
||||||
|
@ -388,7 +408,9 @@ ifeq ($(OS_VENDOR), Darwin)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Binaries to 'universalize' if built
|
# Binaries to 'universalize' if built
|
||||||
|
ifneq ($(STATIC_BUILD),true)
|
||||||
UNIVERSAL_LIPO_LIST += $(EXPORT_LIB_DIR)/libjsig.$(LIBRARY_SUFFIX)
|
UNIVERSAL_LIPO_LIST += $(EXPORT_LIB_DIR)/libjsig.$(LIBRARY_SUFFIX)
|
||||||
|
endif
|
||||||
UNIVERSAL_LIPO_LIST += $(EXPORT_LIB_DIR)/libsaproc.$(LIBRARY_SUFFIX)
|
UNIVERSAL_LIPO_LIST += $(EXPORT_LIB_DIR)/libsaproc.$(LIBRARY_SUFFIX)
|
||||||
UNIVERSAL_LIPO_LIST += $(EXPORT_LIB_DIR)/server/libjvm.$(LIBRARY_SUFFIX)
|
UNIVERSAL_LIPO_LIST += $(EXPORT_LIB_DIR)/server/libjvm.$(LIBRARY_SUFFIX)
|
||||||
UNIVERSAL_LIPO_LIST += $(EXPORT_LIB_DIR)/client/libjvm.$(LIBRARY_SUFFIX)
|
UNIVERSAL_LIPO_LIST += $(EXPORT_LIB_DIR)/client/libjvm.$(LIBRARY_SUFFIX)
|
||||||
|
@ -396,6 +418,13 @@ ifeq ($(OS_VENDOR), Darwin)
|
||||||
# Files to simply copy in place
|
# Files to simply copy in place
|
||||||
UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/server/Xusage.txt
|
UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/server/Xusage.txt
|
||||||
UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/client/Xusage.txt
|
UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/client/Xusage.txt
|
||||||
|
|
||||||
|
ifeq ($(STATIC_BUILD),true)
|
||||||
|
UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/server/libjvm.symbols
|
||||||
|
UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/client/libjvm.symbols
|
||||||
|
UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/minimal/libjvm.symbols
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
||||||
ifeq ($(ZIP_DEBUGINFO_FILES),1)
|
ifeq ($(ZIP_DEBUGINFO_FILES),1)
|
||||||
UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/server/libjvm.diz
|
UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/server/libjvm.diz
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -37,15 +37,15 @@ DtraceOutDir = $(GENERATED)/dtracefiles
|
||||||
# Bsd does not build libjvm_db, does not compile on macosx
|
# Bsd does not build libjvm_db, does not compile on macosx
|
||||||
# disabled in build: rule in vm.make
|
# disabled in build: rule in vm.make
|
||||||
JVM_DB = libjvm_db
|
JVM_DB = libjvm_db
|
||||||
LIBJVM_DB = libjvm_db.dylib
|
LIBJVM_DB = libjvm_db.$(LIBRARY_SUFFIX)
|
||||||
|
|
||||||
LIBJVM_DB_DEBUGINFO = libjvm_db.dylib.dSYM
|
LIBJVM_DB_DEBUGINFO = libjvm_db.$(LIBRARY_SUFFIX).dSYM
|
||||||
LIBJVM_DB_DIZ = libjvm_db.diz
|
LIBJVM_DB_DIZ = libjvm_db.diz
|
||||||
|
|
||||||
JVM_DTRACE = jvm_dtrace
|
JVM_DTRACE = jvm_dtrace
|
||||||
LIBJVM_DTRACE = libjvm_dtrace.dylib
|
LIBJVM_DTRACE = libjvm_dtrace.$(LIBRARY_SUFFIX)
|
||||||
|
|
||||||
LIBJVM_DTRACE_DEBUGINFO = libjvm_dtrace.dylib.dSYM
|
LIBJVM_DTRACE_DEBUGINFO = libjvm_dtrace.$(LIBRARY_SUFFIX).dSYM
|
||||||
LIBJVM_DTRACE_DIZ = libjvm_dtrace.diz
|
LIBJVM_DTRACE_DIZ = libjvm_dtrace.diz
|
||||||
|
|
||||||
JVMOFFS = JvmOffsets
|
JVMOFFS = JvmOffsets
|
||||||
|
@ -167,14 +167,14 @@ endif # ifneq ("${ISA}","${BUILDARCH}")
|
||||||
|
|
||||||
LFLAGS_GENOFFS += -L.
|
LFLAGS_GENOFFS += -L.
|
||||||
|
|
||||||
lib$(GENOFFS).dylib: $(DTRACE_SRCDIR)/$(GENOFFS).cpp $(DTRACE_SRCDIR)/$(GENOFFS).h \
|
lib$(GENOFFS).$(LIBRARY_SUFFIX): $(DTRACE_SRCDIR)/$(GENOFFS).cpp $(DTRACE_SRCDIR)/$(GENOFFS).h \
|
||||||
$(LIBJVM.o)
|
$(LIBJVM.o)
|
||||||
$(QUIETLY) $(CXX) $(CXXFLAGS) $(GENOFFS_CFLAGS) $(SHARED_FLAG) $(PICFLAG) \
|
$(QUIETLY) $(CXX) $(CXXFLAGS) $(GENOFFS_CFLAGS) $(SHARED_FLAG) $(PICFLAG) \
|
||||||
$(LFLAGS_GENOFFS) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS).cpp -ljvm
|
$(LFLAGS_GENOFFS) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS).cpp -ljvm
|
||||||
|
|
||||||
$(GENOFFS): $(DTRACE_SRCDIR)/$(GENOFFS)Main.c lib$(GENOFFS).dylib
|
$(GENOFFS): $(DTRACE_SRCDIR)/$(GENOFFS)Main.c lib$(GENOFFS).$(LIBRARY_SUFFIX)
|
||||||
$(QUIETLY) $(LINK.CXX) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS)Main.c \
|
$(QUIETLY) $(LINK.CXX) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS)Main.c \
|
||||||
./lib$(GENOFFS).dylib
|
./lib$(GENOFFS).$(LIBRARY_SUFFIX)
|
||||||
|
|
||||||
# $@.tmp is created first to avoid an empty $(JVMOFFS).h if an error occurs.
|
# $@.tmp is created first to avoid an empty $(JVMOFFS).h if an error occurs.
|
||||||
$(JVMOFFS).h: $(GENOFFS)
|
$(JVMOFFS).h: $(GENOFFS)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -185,7 +185,14 @@ ifeq ($(JVM_VARIANT_ZEROSHARK), true)
|
||||||
CFLAGS += $(LIBFFI_CFLAGS)
|
CFLAGS += $(LIBFFI_CFLAGS)
|
||||||
CFLAGS += $(LLVM_CFLAGS)
|
CFLAGS += $(LLVM_CFLAGS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(STATIC_BUILD),true)
|
||||||
|
CXXFLAGS += -DSTATIC_BUILD
|
||||||
|
CFLAGS += -DSTATIC_BUILD
|
||||||
|
else
|
||||||
CFLAGS += $(VM_PICFLAG)
|
CFLAGS += $(VM_PICFLAG)
|
||||||
|
endif
|
||||||
|
|
||||||
CFLAGS += -fno-rtti
|
CFLAGS += -fno-rtti
|
||||||
CFLAGS += -fno-exceptions
|
CFLAGS += -fno-exceptions
|
||||||
ifeq ($(USE_CLANG),)
|
ifeq ($(USE_CLANG),)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -28,9 +28,9 @@
|
||||||
JSIG = jsig
|
JSIG = jsig
|
||||||
|
|
||||||
ifeq ($(OS_VENDOR), Darwin)
|
ifeq ($(OS_VENDOR), Darwin)
|
||||||
LIBJSIG = lib$(JSIG).dylib
|
LIBJSIG = lib$(JSIG).$(LIBRARY_SUFFIX)
|
||||||
|
|
||||||
LIBJSIG_DEBUGINFO = lib$(JSIG).dylib.dSYM
|
LIBJSIG_DEBUGINFO = lib$(JSIG).$(LIBRARY_SUFFIX).dSYM
|
||||||
LIBJSIG_DIZ = lib$(JSIG).diz
|
LIBJSIG_DIZ = lib$(JSIG).diz
|
||||||
else
|
else
|
||||||
LIBJSIG = lib$(JSIG).so
|
LIBJSIG = lib$(JSIG).so
|
||||||
|
@ -61,8 +61,14 @@ endif
|
||||||
|
|
||||||
$(LIBJSIG): $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE)
|
$(LIBJSIG): $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE)
|
||||||
@echo $(LOG_INFO) Making signal interposition lib...
|
@echo $(LOG_INFO) Making signal interposition lib...
|
||||||
|
ifeq ($(STATIC_BUILD),true)
|
||||||
|
$(QUIETLY) $(CC) -c $(SYMFLAG) $(EXTRA_CFLAGS) $(ARCHFLAG) $(PICFLAG) \
|
||||||
|
$(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) -o $(JSIG).o $<
|
||||||
|
$(QUIETLY) $(AR) $(ARFLAGS) $@ $(JSIG).o
|
||||||
|
else
|
||||||
$(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
|
$(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
|
||||||
$(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) -o $@ $<
|
$(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) -o $@ $<
|
||||||
|
endif
|
||||||
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
||||||
ifeq ($(OS_VENDOR), Darwin)
|
ifeq ($(OS_VENDOR), Darwin)
|
||||||
$(DSYMUTIL) $@
|
$(DSYMUTIL) $@
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -39,7 +39,11 @@ AS.S = $(AS) $(ASFLAGS)
|
||||||
COMPILE.CC = $(CC_COMPILE) -c
|
COMPILE.CC = $(CC_COMPILE) -c
|
||||||
GENASM.CC = $(CC_COMPILE) -S
|
GENASM.CC = $(CC_COMPILE) -S
|
||||||
LINK.CC = $(CC) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
|
LINK.CC = $(CC) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
|
||||||
|
ifeq ($(STATIC_BUILD),true)
|
||||||
|
LINK_LIB.CC = $(AR) $(ARFLAGS)
|
||||||
|
else
|
||||||
LINK_LIB.CC = $(CC) $(LFLAGS) $(SHARED_FLAG)
|
LINK_LIB.CC = $(CC) $(LFLAGS) $(SHARED_FLAG)
|
||||||
|
endif
|
||||||
PREPROCESS.CC = $(CC_COMPILE) -E
|
PREPROCESS.CC = $(CC_COMPILE) -E
|
||||||
|
|
||||||
COMPILE.CXX = $(CXX_COMPILE) -c
|
COMPILE.CXX = $(CXX_COMPILE) -c
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -28,9 +28,9 @@
|
||||||
SAPROC = saproc
|
SAPROC = saproc
|
||||||
|
|
||||||
ifeq ($(OS_VENDOR), Darwin)
|
ifeq ($(OS_VENDOR), Darwin)
|
||||||
LIBSAPROC = lib$(SAPROC).dylib
|
LIBSAPROC = lib$(SAPROC).$(LIBRARY_SUFFIX)
|
||||||
|
|
||||||
LIBSAPROC_DEBUGINFO = lib$(SAPROC).dylib.dSYM
|
LIBSAPROC_DEBUGINFO = lib$(SAPROC).$(LIBRARY_SUFFIX).dSYM
|
||||||
LIBSAPROC_DIZ = lib$(SAPROC).diz
|
LIBSAPROC_DIZ = lib$(SAPROC).diz
|
||||||
else
|
else
|
||||||
LIBSAPROC = lib$(SAPROC).so
|
LIBSAPROC = lib$(SAPROC).so
|
||||||
|
|
|
@ -142,10 +142,10 @@ include $(MAKEFILES_DIR)/dtrace.make
|
||||||
|
|
||||||
JVM = jvm
|
JVM = jvm
|
||||||
ifeq ($(OS_VENDOR), Darwin)
|
ifeq ($(OS_VENDOR), Darwin)
|
||||||
LIBJVM = lib$(JVM).dylib
|
LIBJVM = lib$(JVM).$(LIBRARY_SUFFIX)
|
||||||
CFLAGS += -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE
|
CFLAGS += -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE
|
||||||
|
|
||||||
LIBJVM_DEBUGINFO = lib$(JVM).dylib.dSYM
|
LIBJVM_DEBUGINFO = lib$(JVM).$(LIBRARY_SUFFIX).dSYM
|
||||||
LIBJVM_DIZ = lib$(JVM).diz
|
LIBJVM_DIZ = lib$(JVM).diz
|
||||||
else
|
else
|
||||||
LIBJVM = lib$(JVM).so
|
LIBJVM = lib$(JVM).so
|
||||||
|
@ -261,6 +261,16 @@ mapfile : $(MAPFILE) mapfile_extra vm.def
|
||||||
{ print $$0 } \
|
{ print $$0 } \
|
||||||
}' > $@ < $(MAPFILE)
|
}' > $@ < $(MAPFILE)
|
||||||
|
|
||||||
|
ifeq ($(STATIC_BUILD),true)
|
||||||
|
EXPORTED_SYMBOLS = libjvm.symbols
|
||||||
|
|
||||||
|
libjvm.symbols : mapfile
|
||||||
|
$(CP) mapfile libjvm.symbols
|
||||||
|
|
||||||
|
else
|
||||||
|
EXPORTED_SYMBOLS =
|
||||||
|
endif
|
||||||
|
|
||||||
mapfile_reorder : mapfile $(REORDERFILE)
|
mapfile_reorder : mapfile $(REORDERFILE)
|
||||||
rm -f $@
|
rm -f $@
|
||||||
cat $^ > $@
|
cat $^ > $@
|
||||||
|
@ -288,9 +298,11 @@ else
|
||||||
LFLAGS_VM += $(SONAMEFLAG:SONAME=$(LIBJVM))
|
LFLAGS_VM += $(SONAMEFLAG:SONAME=$(LIBJVM))
|
||||||
|
|
||||||
ifeq ($(OS_VENDOR), Darwin)
|
ifeq ($(OS_VENDOR), Darwin)
|
||||||
|
ifneq ($(STATIC_BUILD),true)
|
||||||
LFLAGS_VM += -Xlinker -rpath -Xlinker @loader_path/.
|
LFLAGS_VM += -Xlinker -rpath -Xlinker @loader_path/.
|
||||||
LFLAGS_VM += -Xlinker -rpath -Xlinker @loader_path/..
|
LFLAGS_VM += -Xlinker -rpath -Xlinker @loader_path/..
|
||||||
LFLAGS_VM += -Xlinker -install_name -Xlinker @rpath/$(@F)
|
LFLAGS_VM += -Xlinker -install_name -Xlinker @rpath/$(@F)
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
LFLAGS_VM += -Wl,-z,defs
|
LFLAGS_VM += -Wl,-z,defs
|
||||||
endif
|
endif
|
||||||
|
@ -345,6 +357,10 @@ LD_SCRIPT_FLAG = -Wl,-T,$(LD_SCRIPT)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT)
|
$(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT)
|
||||||
|
ifeq ($(STATIC_BUILD),true)
|
||||||
|
echo Linking static vm...;
|
||||||
|
$(LINK_LIB.CC) $@ $(LIBJVM.o)
|
||||||
|
else
|
||||||
$(QUIETLY) { \
|
$(QUIETLY) { \
|
||||||
echo $(LOG_INFO) Linking vm...; \
|
echo $(LOG_INFO) Linking vm...; \
|
||||||
$(LINK_LIB.CXX/PRE_HOOK) \
|
$(LINK_LIB.CXX/PRE_HOOK) \
|
||||||
|
@ -354,6 +370,8 @@ $(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT)
|
||||||
rm -f $@.1; ln -s $@ $@.1; \
|
rm -f $@.1; ln -s $@ $@.1; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
||||||
ifeq ($(OS_VENDOR), Darwin)
|
ifeq ($(OS_VENDOR), Darwin)
|
||||||
$(DSYMUTIL) $@
|
$(DSYMUTIL) $@
|
||||||
|
@ -410,10 +428,10 @@ include $(MAKEFILES_DIR)/saproc.make
|
||||||
|
|
||||||
ifeq ($(OS_VENDOR), Darwin)
|
ifeq ($(OS_VENDOR), Darwin)
|
||||||
# no libjvm_db for macosx
|
# no libjvm_db for macosx
|
||||||
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(BUILDLIBSAPROC) dtraceCheck
|
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(BUILDLIBSAPROC) dtraceCheck $(EXPORTED_SYMBOLS)
|
||||||
echo "Doing vm.make build:"
|
echo "Doing vm.make build:"
|
||||||
else
|
else
|
||||||
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC)
|
build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC) $(EXPORTED_SYMBOLS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
install: install_jvm install_jsig install_saproc
|
install: install_jvm install_jsig install_saproc
|
||||||
|
|
|
@ -442,6 +442,10 @@ void os::init_system_properties_values() {
|
||||||
if (pslash != NULL) {
|
if (pslash != NULL) {
|
||||||
*pslash = '\0'; // Get rid of /{client|server|hotspot}.
|
*pslash = '\0'; // Get rid of /{client|server|hotspot}.
|
||||||
}
|
}
|
||||||
|
#ifdef STATIC_BUILD
|
||||||
|
strcat(buf, "/lib");
|
||||||
|
#endif
|
||||||
|
|
||||||
Arguments::set_dll_dir(buf);
|
Arguments::set_dll_dir(buf);
|
||||||
|
|
||||||
if (pslash != NULL) {
|
if (pslash != NULL) {
|
||||||
|
@ -1390,6 +1394,9 @@ bool os::dll_address_to_library_name(address addr, char* buf,
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
void * os::dll_load(const char *filename, char *ebuf, int ebuflen) {
|
void * os::dll_load(const char *filename, char *ebuf, int ebuflen) {
|
||||||
|
#ifdef STATIC_BUILD
|
||||||
|
return os::get_default_process_handle();
|
||||||
|
#else
|
||||||
void * result= ::dlopen(filename, RTLD_LAZY);
|
void * result= ::dlopen(filename, RTLD_LAZY);
|
||||||
if (result != NULL) {
|
if (result != NULL) {
|
||||||
// Successful loading
|
// Successful loading
|
||||||
|
@ -1401,9 +1408,13 @@ void * os::dll_load(const char *filename, char *ebuf, int ebuflen) {
|
||||||
ebuf[ebuflen-1]='\0';
|
ebuf[ebuflen-1]='\0';
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
#endif // STATIC_BUILD
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
void * os::dll_load(const char *filename, char *ebuf, int ebuflen) {
|
void * os::dll_load(const char *filename, char *ebuf, int ebuflen) {
|
||||||
|
#ifdef STATIC_BUILD
|
||||||
|
return os::get_default_process_handle();
|
||||||
|
#else
|
||||||
void * result= ::dlopen(filename, RTLD_LAZY);
|
void * result= ::dlopen(filename, RTLD_LAZY);
|
||||||
if (result != NULL) {
|
if (result != NULL) {
|
||||||
// Successful loading
|
// Successful loading
|
||||||
|
@ -1576,6 +1587,7 @@ void * os::dll_load(const char *filename, char *ebuf, int ebuflen) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
#endif // STATIC_BUILD
|
||||||
}
|
}
|
||||||
#endif // !__APPLE__
|
#endif // !__APPLE__
|
||||||
|
|
||||||
|
|
|
@ -88,6 +88,12 @@ bool Disassembler::load_library() {
|
||||||
os::jvm_path(buf, sizeof(buf));
|
os::jvm_path(buf, sizeof(buf));
|
||||||
int jvm_offset = -1;
|
int jvm_offset = -1;
|
||||||
int lib_offset = -1;
|
int lib_offset = -1;
|
||||||
|
#ifdef STATIC_BUILD
|
||||||
|
char* p = strrchr(buf, '/');
|
||||||
|
*p = '\0';
|
||||||
|
strcat(p, "/lib/");
|
||||||
|
lib_offset = jvm_offset = strlen(buf);
|
||||||
|
#else
|
||||||
{
|
{
|
||||||
// Match "jvm[^/]*" in jvm_path.
|
// Match "jvm[^/]*" in jvm_path.
|
||||||
const char* base = buf;
|
const char* base = buf;
|
||||||
|
@ -96,6 +102,7 @@ bool Disassembler::load_library() {
|
||||||
p = strstr(p ? p : base, "jvm");
|
p = strstr(p ? p : base, "jvm");
|
||||||
if (p != NULL) jvm_offset = p - base;
|
if (p != NULL) jvm_offset = p - base;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
// Find the disassembler shared library.
|
// Find the disassembler shared library.
|
||||||
// Search for several paths derived from libjvm, in this order:
|
// Search for several paths derived from libjvm, in this order:
|
||||||
// 1. <home>/jre/lib/<arch>/<vm>/libhsdis-<arch>.so (for compatibility)
|
// 1. <home>/jre/lib/<arch>/<vm>/libhsdis-<arch>.so (for compatibility)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue