diff -r e05b4241302b -r 92bea2b7732a make/launcher/Launcher-jdk.pack.gmk --- a/make/launcher/Launcher-jdk.pack.gmk Thu Mar 15 01:43:29 2018 +0100 +++ b/make/launcher/Launcher-jdk.pack.gmk Thu Apr 12 14:11:59 2018 +0200 @@ -34,6 +34,25 @@ # The order of the object files on the link command line affects the size of the resulting # binary (at least on linux) which causes the size to differ between old and new build. +# Tell the compiler not to export any functions unless declared so in +# the source code. On Windows, this is the default and cannot be changed. +# On Mac, we have always exported all symbols, probably due to oversight +# and/or misunderstanding. To emulate this, don't hide any symbols +# by default. +# Also provide an override for non-conformant libraries. +ifeq ($(TOOLCHAIN_TYPE), gcc) + CXXFLAGS_JDKEXE += -fvisibility=hidden + LDFLAGS_JDKEXE += -Wl,--exclude-libs,ALL +else ifeq ($(TOOLCHAIN_TYPE), clang) + ifneq ($(OPENJDK_TARGET_OS), macosx) + CXXFLAGS_JDKEXE += -fvisibility=hidden + endif +else ifeq ($(TOOLCHAIN_TYPE), solstudio) + CXXFLAGS_JDKEXE += -xldscope=hidden +else ifeq ($(TOOLCHAIN_TYPE), xlc) + CXXFLAGS_JDKEXE += -qvisibility=hidden +endif + UNPACKEXE_SRC := $(TOPDIR)/src/jdk.pack/share/native/common-unpack \ $(TOPDIR)/src/jdk.pack/share/native/unpack200 UNPACKEXE_CFLAGS := -I$(TOPDIR)/src/jdk.pack/share/native/common-unpack \ @@ -58,21 +77,6 @@ endif -UNPACK_MAPFILE_DIR := $(TOPDIR)/make/mapfiles/libunpack -UNPACK_MAPFILE_PLATFORM_FILE := \ - $(UNPACK_MAPFILE_DIR)/mapfile-vers-unpack200-$(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH) - -# The linker on older SuSE distros (e.g. on SLES 10) complains with: -# "Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable." -# if feeded with a version script which contains named tags. -ifeq ($(USING_BROKEN_SUSE_LD), yes) - UNPACK_MAPFILE := $(UNPACK_MAPFILE_DIR)/mapfile-vers-unpack200.anonymous -else ifneq ($(wildcard $(UNPACK_MAPFILE_PLATFORM_FILE)), ) - UNPACK_MAPFILE := $(UNPACK_MAPFILE_PLATFORM_FILE) -else - UNPACK_MAPFILE := $(UNPACK_MAPFILE_DIR)/mapfile-vers-unpack200 -endif - $(eval $(call SetupJdkExecutable, BUILD_UNPACKEXE, \ NAME := unpack200, \ SRC := $(UNPACKEXE_SRC), \ @@ -84,7 +88,7 @@ CFLAGS_solaris := -KPIC, \ CFLAGS_macosx := -fPIC, \ DISABLED_WARNINGS_gcc := unused-result implicit-fallthrough, \ - MAPFILE := $(UNPACK_MAPFILE),\ + DISABLED_WARNINGS_microsoft := 4005, \ LDFLAGS := $(UNPACKEXE_ZIPOBJS) \ $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \ $(call SET_SHARED_LIBRARY_ORIGIN), \