31 ifeq ($(call And, $(call isTargetOs, windows) $(call isTargetCpu, x86_64)), false)
32 # On Windows x86_64, we should not have any symbols at all, since that
33 # results in duplicate warnings from the linker (JDK-8043491).
34 SYMBOLS_SRC += $(TOPDIR)/make/hotspot/symbols/symbols-shared
35 endif
36
37 ifeq ($(call isTargetOsType, unix), true)
38 SYMBOLS_SRC += $(TOPDIR)/make/hotspot/symbols/symbols-unix
39 endif
40
41 ifneq ($(wildcard $(TOPDIR)/make/hotspot/symbols/symbols-$(OPENJDK_TARGET_OS)), )
42 SYMBOLS_SRC += $(TOPDIR)/make/hotspot/symbols/symbols-$(OPENJDK_TARGET_OS)
43 endif
44
45 ifneq ($(findstring debug, $(DEBUG_LEVEL)), )
46 ifneq ($(wildcard $(TOPDIR)/make/hotspot/symbols/symbols-$(OPENJDK_TARGET_OS)-debug), )
47 SYMBOLS_SRC += $(TOPDIR)/make/hotspot/symbols/symbols-$(OPENJDK_TARGET_OS)-debug
48 endif
49 endif
50
51 ifeq ($(call isTargetOs, solaris), true)
52 ifeq ($(call check-jvm-feature, dtrace), true)
53 # Additional mapfiles that are only used when dtrace is enabled
54 ifeq ($(call check-jvm-feature, compiler2), true)
55 # This also covers the case of compiler1+compiler2.
56 SYMBOLS_SRC += $(TOPDIR)/make/hotspot/symbols/symbols-solaris-dtrace-compiler2
57 else ifeq ($(call check-jvm-feature, compiler1), true)
58 SYMBOLS_SRC += $(TOPDIR)/make/hotspot/symbols/symbols-solaris-dtrace-compiler1
59 endif
60 endif
61 endif
62
63 ################################################################################
64 # Create a dynamic list of symbols from the built object files. This is highly
65 # platform dependent.
66
67 ifeq ($(call isTargetOs, linux), true)
68 DUMP_SYMBOLS_CMD := $(NM) --defined-only *.o
69 ifneq ($(FILTER_SYMBOLS_PATTERN), )
70 FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
71 endif
72 FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)^_ZTV|^gHotSpotVM|^UseSharedSpaces$$
73 FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|^_ZN9Arguments17SharedArchivePathE$$
74 FILTER_SYMBOLS_AWK_SCRIPT := \
75 '{ \
76 if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
77 }'
78
79 else ifeq ($(call isTargetOs, solaris), true)
80 DUMP_SYMBOLS_CMD := $(NM) -p *.o
81 ifneq ($(FILTER_SYMBOLS_PATTERN), )
82 FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
83 endif
84 FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)^__1c.*__vtbl_$$|^gHotSpotVM
85 FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|^UseSharedSpaces$$
86 FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|^__1cJArgumentsRSharedArchivePath_$$
87 FILTER_SYMBOLS_AWK_SCRIPT := \
88 '{ \
89 if ($$2 == "U") next; \
90 if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
91 }'
92
93 else ifeq ($(call isTargetOs, macosx), true)
94 # nm on macosx prints out "warning: nm: no name list" to stderr for
95 # files without symbols. Hide this, even at the expense of hiding real errors.
96 DUMP_SYMBOLS_CMD := $(NM) -Uj *.o 2> /dev/null
97 ifneq ($(FILTER_SYMBOLS_PATTERN), )
98 FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
99 endif
100 FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)^_ZTV|^gHotSpotVM
101 FILTER_SYMBOLS_AWK_SCRIPT := \
102 '{ \
103 if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
104 }'
105
106 # NOTE: The script is from the old build. It is broken and finds no symbols.
107 # The script below might be what was intended, but it failes to link with tons
108 # of 'cannot export hidden symbol vtable for X'.
109 # '{ if ($$1 ~ /^__ZTV/ || $$1 ~ /^_gHotSpotVM/) print substr($$1, 2) }'
|
31 ifeq ($(call And, $(call isTargetOs, windows) $(call isTargetCpu, x86_64)), false)
32 # On Windows x86_64, we should not have any symbols at all, since that
33 # results in duplicate warnings from the linker (JDK-8043491).
34 SYMBOLS_SRC += $(TOPDIR)/make/hotspot/symbols/symbols-shared
35 endif
36
37 ifeq ($(call isTargetOsType, unix), true)
38 SYMBOLS_SRC += $(TOPDIR)/make/hotspot/symbols/symbols-unix
39 endif
40
41 ifneq ($(wildcard $(TOPDIR)/make/hotspot/symbols/symbols-$(OPENJDK_TARGET_OS)), )
42 SYMBOLS_SRC += $(TOPDIR)/make/hotspot/symbols/symbols-$(OPENJDK_TARGET_OS)
43 endif
44
45 ifneq ($(findstring debug, $(DEBUG_LEVEL)), )
46 ifneq ($(wildcard $(TOPDIR)/make/hotspot/symbols/symbols-$(OPENJDK_TARGET_OS)-debug), )
47 SYMBOLS_SRC += $(TOPDIR)/make/hotspot/symbols/symbols-$(OPENJDK_TARGET_OS)-debug
48 endif
49 endif
50
51 ################################################################################
52 # Create a dynamic list of symbols from the built object files. This is highly
53 # platform dependent.
54
55 ifeq ($(call isTargetOs, linux), true)
56 DUMP_SYMBOLS_CMD := $(NM) --defined-only *.o
57 ifneq ($(FILTER_SYMBOLS_PATTERN), )
58 FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
59 endif
60 FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)^_ZTV|^gHotSpotVM|^UseSharedSpaces$$
61 FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|^_ZN9Arguments17SharedArchivePathE$$
62 FILTER_SYMBOLS_AWK_SCRIPT := \
63 '{ \
64 if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
65 }'
66
67 else ifeq ($(call isTargetOs, macosx), true)
68 # nm on macosx prints out "warning: nm: no name list" to stderr for
69 # files without symbols. Hide this, even at the expense of hiding real errors.
70 DUMP_SYMBOLS_CMD := $(NM) -Uj *.o 2> /dev/null
71 ifneq ($(FILTER_SYMBOLS_PATTERN), )
72 FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
73 endif
74 FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)^_ZTV|^gHotSpotVM
75 FILTER_SYMBOLS_AWK_SCRIPT := \
76 '{ \
77 if ($$3 ~ /$(FILTER_SYMBOLS_PATTERN)/) print $$3; \
78 }'
79
80 # NOTE: The script is from the old build. It is broken and finds no symbols.
81 # The script below might be what was intended, but it failes to link with tons
82 # of 'cannot export hidden symbol vtable for X'.
83 # '{ if ($$1 ~ /^__ZTV/ || $$1 ~ /^_gHotSpotVM/) print substr($$1, 2) }'
|