37 # Tell the compiler not to export any functions unless declared so in |
37 # Tell the compiler not to export any functions unless declared so in |
38 # the source code. On Windows, this is the default and cannot be changed. |
38 # the source code. On Windows, this is the default and cannot be changed. |
39 # On Mac, we have always exported all symbols, probably due to oversight |
39 # On Mac, we have always exported all symbols, probably due to oversight |
40 # and/or misunderstanding. To emulate this, don't hide any symbols |
40 # and/or misunderstanding. To emulate this, don't hide any symbols |
41 # by default. |
41 # by default. |
42 # On AIX/xlc we need at least xlc 13.1 for the symbol hiding |
42 # On AIX/xlc we need at least xlc 13.1 for the symbol hiding (see JDK-8214063) |
43 # Also provide an override for non-conformant libraries. |
43 # Also provide an override for non-conformant libraries. |
44 ifeq ($(TOOLCHAIN_TYPE), gcc) |
44 ifeq ($(TOOLCHAIN_TYPE), gcc) |
45 CXXFLAGS_JDKEXE += -fvisibility=hidden |
45 CXXFLAGS_JDKEXE += -fvisibility=hidden |
46 LDFLAGS_JDKEXE += -Wl,--exclude-libs,ALL |
46 LDFLAGS_JDKEXE += -Wl,--exclude-libs,ALL |
47 else ifeq ($(TOOLCHAIN_TYPE), clang) |
47 else ifeq ($(TOOLCHAIN_TYPE), clang) |
48 ifneq ($(OPENJDK_TARGET_OS), macosx) |
48 ifeq ($(call isTargetOs, macosx), false) |
49 CXXFLAGS_JDKEXE += -fvisibility=hidden |
49 CXXFLAGS_JDKEXE += -fvisibility=hidden |
50 endif |
50 endif |
51 else ifeq ($(TOOLCHAIN_TYPE), solstudio) |
51 else ifeq ($(TOOLCHAIN_TYPE), solstudio) |
52 CXXFLAGS_JDKEXE += -xldscope=hidden |
52 CXXFLAGS_JDKEXE += -xldscope=hidden |
53 else ifeq ($(TOOLCHAIN_TYPE), xlc) |
|
54 ifneq ($(CC_VERSION_NUMBER), 12.1) |
|
55 CXXFLAGS_JDKEXE += -qvisibility=hidden |
|
56 endif |
|
57 endif |
53 endif |
58 |
54 |
59 UNPACKEXE_SRC := $(TOPDIR)/src/jdk.pack/share/native/common-unpack \ |
55 UNPACKEXE_SRC := $(TOPDIR)/src/jdk.pack/share/native/common-unpack \ |
60 $(TOPDIR)/src/jdk.pack/share/native/unpack200 |
56 $(TOPDIR)/src/jdk.pack/share/native/unpack200 |
61 UNPACKEXE_CFLAGS := -I$(TOPDIR)/src/jdk.pack/share/native/common-unpack \ |
57 UNPACKEXE_CFLAGS := -I$(TOPDIR)/src/jdk.pack/share/native/common-unpack \ |
88 CFLAGS := $(UNPACKEXE_CFLAGS) $(CXXFLAGS_JDKEXE) -DFULL, \ |
84 CFLAGS := $(UNPACKEXE_CFLAGS) $(CXXFLAGS_JDKEXE) -DFULL, \ |
89 CFLAGS_release := -DPRODUCT, \ |
85 CFLAGS_release := -DPRODUCT, \ |
90 CFLAGS_linux := -fPIC, \ |
86 CFLAGS_linux := -fPIC, \ |
91 CFLAGS_solaris := -KPIC, \ |
87 CFLAGS_solaris := -KPIC, \ |
92 CFLAGS_macosx := -fPIC, \ |
88 CFLAGS_macosx := -fPIC, \ |
|
89 DISABLED_WARNINGS_clang := format-nonliteral, \ |
93 DISABLED_WARNINGS_solstudio := wunreachable, \ |
90 DISABLED_WARNINGS_solstudio := wunreachable, \ |
94 LDFLAGS := $(UNPACKEXE_ZIPOBJS) \ |
91 LDFLAGS := $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \ |
95 $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \ |
|
96 $(call SET_SHARED_LIBRARY_ORIGIN), \ |
92 $(call SET_SHARED_LIBRARY_ORIGIN), \ |
97 LIBS := $(UNPACKEXE_LIBS) $(LIBCXX), \ |
93 LIBS := $(UNPACKEXE_LIBS) $(LIBCXX), \ |
98 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/unpackexe, \ |
94 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/unpackexe, \ |
99 MANIFEST := $(TOPDIR)/src/jdk.pack/windows/native/unpack200/unpack200_proto.exe.manifest, \ |
95 MANIFEST := $(TOPDIR)/src/jdk.pack/windows/native/unpack200/unpack200_proto.exe.manifest, \ |
100 MANIFEST_VERSION := $(VERSION_NUMBER_FOUR_POSITIONS), \ |
96 MANIFEST_VERSION := $(VERSION_NUMBER_FOUR_POSITIONS), \ |
|
97 EXTRA_OBJECT_FILES := $(UNPACKEXE_ZIPOBJS) \ |
101 )) |
98 )) |
102 |
|
103 ifneq ($(USE_EXTERNAL_LIBZ), true) |
|
104 |
|
105 $(BUILD_UNPACKEXE): $(UNPACKEXE_ZIPOBJS) |
|
106 |
|
107 endif |
|
108 |
99 |
109 TARGETS += $(BUILD_UNPACKEXE) |
100 TARGETS += $(BUILD_UNPACKEXE) |
110 |
101 |
111 ################################################################################ |
102 ################################################################################ |