50 BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
51 endif
52 endif
53
54 LIBFDLIBM_SRC := $(TOPDIR)/src/java.base/share/native/libfdlibm
55 LIBFDLIBM_CFLAGS := -I$(LIBFDLIBM_SRC)
56
57 ifneq ($(OPENJDK_TARGET_OS), macosx)
58 $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM, \
59 STATIC_LIBRARY := fdlibm, \
60 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
61 SRC := $(LIBFDLIBM_SRC), \
62 OPTIMIZATION := $(BUILD_LIBFDLIBM_OPTIMIZATION), \
63 CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
64 CFLAGS_windows_debug := -DLOGGING, \
65 CFLAGS_aix := -qfloat=nomaf, \
66 CFLAGS_linux_ppc64 := -ffp-contract=off, \
67 CFLAGS_linux_ppc64le := -ffp-contract=off, \
68 CFLAGS_linux_s390x := -ffp-contract=off, \
69 CFLAGS_linux_aarch64 := -ffp-contract=off, \
70 DISABLED_WARNINGS_gcc := sign-compare, \
71 DISABLED_WARNINGS_microsoft := 4146 4244 4018, \
72 ARFLAGS := $(ARFLAGS), \
73 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
74 ))
75
76 else
77
78 # On macosx the old build does partial (incremental) linking of fdlibm instead of
79 # a plain static library.
80 $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM_MAC, \
81 LIBRARY := fdlibm, \
82 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
83 SRC := $(LIBFDLIBM_SRC), \
84 CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
85 LDFLAGS := -nostdlib $(ARFLAGS), \
86 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
87 ))
88
89 BUILD_LIBFDLIBM := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX)
90 $(BUILD_LIBFDLIBM): $(BUILD_LIBFDLIBM_MAC)
96
97 ifeq ($(OPENJDK_TARGET_OS), solaris)
98 ifneq ($(OPENJDK_TARGET_CPU), x86_64)
99 BUILD_LIBVERIFY_REORDER := $(TOPDIR)/make/mapfiles/libverify/reorder-$(OPENJDK_TARGET_CPU)
100 endif
101 endif
102
103 LIBVERIFY_OPTIMIZATION := HIGH
104 ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), )
105 ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true)
106 LIBVERIFY_OPTIMIZATION := LOW
107 endif
108 endif
109
110 $(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY, \
111 LIBRARY := verify, \
112 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
113 SRC := $(TOPDIR)/src/java.base/share/native/libverify, \
114 OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \
115 CFLAGS := $(CFLAGS_JDKLIB), \
116 DISABLED_WARNINGS_microsoft := 4244 4267, \
117 MAPFILE := $(TOPDIR)/make/mapfiles/libverify/mapfile-vers, \
118 LDFLAGS := $(LDFLAGS_JDKLIB) \
119 $(call SET_SHARED_LIBRARY_ORIGIN), \
120 LIBS_unix := -ljvm -lc, \
121 LIBS_windows := jvm.lib, \
122 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
123 RC_FLAGS := $(RC_FLAGS) \
124 -D "JDK_FNAME=verify.dll" \
125 -D "JDK_INTERNAL_NAME=verify" \
126 -D "JDK_FTYPE=0x2L", \
127 REORDER := $(BUILD_LIBVERIFY_REORDER), \
128 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libverify, \
129 ))
130
131 TARGETS += $(BUILD_LIBVERIFY)
132
133 ##########################################################################################
134
135 # Allow a custom makefile to add extra src dirs
212 BUILD_LIBZIP_REORDER := $(TOPDIR)/make/mapfiles/libzip/reorder-$(OPENJDK_TARGET_CPU)
213 endif
214 endif
215
216 ifeq ($(LIBZIP_CAN_USE_MMAP), true)
217 BUILD_LIBZIP_MMAP := -DUSE_MMAP
218 endif
219
220 $(eval $(call SetupNativeCompilation,BUILD_LIBZIP, \
221 LIBRARY := zip, \
222 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
223 OPTIMIZATION := LOW, \
224 SRC := $(TOPDIR)/src/java.base/share/native/libzip, \
225 EXCLUDES := $(LIBZIP_EXCLUDES), \
226 CFLAGS := $(CFLAGS_JDKLIB) \
227 $(LIBZ_CFLAGS) \
228 -I$(TOPDIR)/src/java.base/share/native/libjava \
229 -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
230 -I$(SUPPORT_OUTPUTDIR)/headers/java.base, \
231 CFLAGS_unix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \
232 MAPFILE := $(TOPDIR)/make/mapfiles/libzip/mapfile-vers, \
233 REORDER := $(BUILD_LIBZIP_REORDER), \
234 LDFLAGS := $(LDFLAGS_JDKLIB) \
235 $(call SET_SHARED_LIBRARY_ORIGIN), \
236 LDFLAGS_windows := -export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \
237 -export:ZIP_ReadEntry -export:ZIP_GetNextEntry \
238 -export:ZIP_InflateFully -export:ZIP_CRC32 -export:ZIP_FreeEntry, \
239 LIBS_unix := -ljvm -ljava $(LIBZ_LIBS), \
240 LIBS_solaris := -lc, \
241 LIBS_windows := jvm.lib $(WIN_JAVA_LIB), \
242 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
243 RC_FLAGS := $(RC_FLAGS) \
244 -D "JDK_FNAME=zip.dll" \
245 -D "JDK_INTERNAL_NAME=zip" \
246 -D "JDK_FTYPE=0x2L", \
247 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libzip, \
248 ))
249
250 $(BUILD_LIBZIP): $(BUILD_LIBJAVA)
251
253
254 ##########################################################################################
255
256 JIMAGELIB_CPPFLAGS := \
257 -I$(TOPDIR)/src/java.base/share/native/libjava \
258 -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
259 -I$(TOPDIR)/src/java.base/share/native/libjimage \
260 -I$(SUPPORT_OUTPUTDIR)/headers/java.base \
261 #
262
263 $(eval $(call SetupNativeCompilation,BUILD_LIBJIMAGE, \
264 LIBRARY := jimage, \
265 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
266 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
267 OPTIMIZATION := LOW, \
268 SRC := $(TOPDIR)/src/java.base/share/native/libjimage \
269 $(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjimage, \
270 EXCLUDES := $(LIBJIMAGE_EXCLUDES), \
271 CFLAGS := $(CFLAGS_JDKLIB) $(JIMAGELIB_CPPFLAGS), \
272 CXXFLAGS := $(CXXFLAGS_JDKLIB) $(JIMAGELIB_CPPFLAGS), \
273 CFLAGS_unix := -UDEBUG, \
274 MAPFILE := $(TOPDIR)/make/mapfiles/libjimage/mapfile-vers, \
275 LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
276 $(call SET_SHARED_LIBRARY_ORIGIN), \
277 LDFLAGS_windows := -export:JIMAGE_Open -export:JIMAGE_Close \
278 -export:JIMAGE_PackageToModule \
279 -export:JIMAGE_FindResource -export:JIMAGE_GetResource \
280 -export:JIMAGE_ResourceIterator -export:JIMAGE_ResourcePath, \
281 LIBS_unix := -ljvm -ldl $(LIBCXX), \
282 LIBS_solaris := -lc, \
283 LIBS_macosx := -lc++, \
284 LIBS_windows := jvm.lib, \
285 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
286 RC_FLAGS := $(RC_FLAGS) \
287 -D "JDK_FNAME=jimage.dll" \
288 -D "JDK_INTERNAL_NAME=jimage" \
289 -D "JDK_FTYPE=0x2L", \
290 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjimage, \
291 ))
292
346 ifneq ($(USE_EXTERNAL_LIBZ), true)
347 LIBJLI_EXTRA_FILES += \
348 $(addprefix $(TOPDIR)/src/java.base/share/native/libzip/zlib/, \
349 inflate.c \
350 inftrees.c \
351 inffast.c \
352 zadler32.c \
353 zcrc32.c \
354 zutil.c \
355 )
356 endif
357
358 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI, \
359 LIBRARY := jli, \
360 OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \
361 SRC := $(LIBJLI_SRC_DIRS), \
362 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
363 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
364 OPTIMIZATION := HIGH, \
365 CFLAGS := $(LIBJLI_CFLAGS), \
366 DISABLED_WARNINGS_solstudio := \
367 E_ASM_DISABLES_OPTIMIZATION \
368 E_STATEMENT_NOT_REACHED, \
369 MAPFILE := $(TOPDIR)/make/mapfiles/libjli/mapfile-vers, \
370 LDFLAGS := $(LDFLAGS_JDKLIB) \
371 $(call SET_SHARED_LIBRARY_ORIGIN), \
372 LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
373 LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
374 LDFLAGS_windows := \
375 -export:JLI_Launch \
376 -export:JLI_ManifestIterate \
377 -export:JLI_SetTraceLauncher \
378 -export:JLI_ReportErrorMessage \
379 -export:JLI_ReportErrorMessageSys \
380 -export:JLI_ReportMessage \
381 -export:JLI_ReportExceptionDescription \
382 -export:JLI_MemAlloc \
383 -export:JLI_CmdToArgs \
384 -export:JLI_GetStdArgc \
385 -export:JLI_GetStdArgs \
|
50 BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
51 endif
52 endif
53
54 LIBFDLIBM_SRC := $(TOPDIR)/src/java.base/share/native/libfdlibm
55 LIBFDLIBM_CFLAGS := -I$(LIBFDLIBM_SRC)
56
57 ifneq ($(OPENJDK_TARGET_OS), macosx)
58 $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM, \
59 STATIC_LIBRARY := fdlibm, \
60 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
61 SRC := $(LIBFDLIBM_SRC), \
62 OPTIMIZATION := $(BUILD_LIBFDLIBM_OPTIMIZATION), \
63 CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
64 CFLAGS_windows_debug := -DLOGGING, \
65 CFLAGS_aix := -qfloat=nomaf, \
66 CFLAGS_linux_ppc64 := -ffp-contract=off, \
67 CFLAGS_linux_ppc64le := -ffp-contract=off, \
68 CFLAGS_linux_s390x := -ffp-contract=off, \
69 CFLAGS_linux_aarch64 := -ffp-contract=off, \
70 DISABLED_WARNINGS_gcc := sign-compare misleading-indentation, \
71 DISABLED_WARNINGS_microsoft := 4146 4244 4018, \
72 ARFLAGS := $(ARFLAGS), \
73 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
74 ))
75
76 else
77
78 # On macosx the old build does partial (incremental) linking of fdlibm instead of
79 # a plain static library.
80 $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM_MAC, \
81 LIBRARY := fdlibm, \
82 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
83 SRC := $(LIBFDLIBM_SRC), \
84 CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
85 LDFLAGS := -nostdlib $(ARFLAGS), \
86 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
87 ))
88
89 BUILD_LIBFDLIBM := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX)
90 $(BUILD_LIBFDLIBM): $(BUILD_LIBFDLIBM_MAC)
96
97 ifeq ($(OPENJDK_TARGET_OS), solaris)
98 ifneq ($(OPENJDK_TARGET_CPU), x86_64)
99 BUILD_LIBVERIFY_REORDER := $(TOPDIR)/make/mapfiles/libverify/reorder-$(OPENJDK_TARGET_CPU)
100 endif
101 endif
102
103 LIBVERIFY_OPTIMIZATION := HIGH
104 ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), )
105 ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true)
106 LIBVERIFY_OPTIMIZATION := LOW
107 endif
108 endif
109
110 $(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY, \
111 LIBRARY := verify, \
112 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
113 SRC := $(TOPDIR)/src/java.base/share/native/libverify, \
114 OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \
115 CFLAGS := $(CFLAGS_JDKLIB), \
116 DISABLED_WARNINGS_gcc := implicit-fallthrough, \
117 DISABLED_WARNINGS_microsoft := 4244 4267, \
118 MAPFILE := $(TOPDIR)/make/mapfiles/libverify/mapfile-vers, \
119 LDFLAGS := $(LDFLAGS_JDKLIB) \
120 $(call SET_SHARED_LIBRARY_ORIGIN), \
121 LIBS_unix := -ljvm -lc, \
122 LIBS_windows := jvm.lib, \
123 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
124 RC_FLAGS := $(RC_FLAGS) \
125 -D "JDK_FNAME=verify.dll" \
126 -D "JDK_INTERNAL_NAME=verify" \
127 -D "JDK_FTYPE=0x2L", \
128 REORDER := $(BUILD_LIBVERIFY_REORDER), \
129 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libverify, \
130 ))
131
132 TARGETS += $(BUILD_LIBVERIFY)
133
134 ##########################################################################################
135
136 # Allow a custom makefile to add extra src dirs
213 BUILD_LIBZIP_REORDER := $(TOPDIR)/make/mapfiles/libzip/reorder-$(OPENJDK_TARGET_CPU)
214 endif
215 endif
216
217 ifeq ($(LIBZIP_CAN_USE_MMAP), true)
218 BUILD_LIBZIP_MMAP := -DUSE_MMAP
219 endif
220
221 $(eval $(call SetupNativeCompilation,BUILD_LIBZIP, \
222 LIBRARY := zip, \
223 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
224 OPTIMIZATION := LOW, \
225 SRC := $(TOPDIR)/src/java.base/share/native/libzip, \
226 EXCLUDES := $(LIBZIP_EXCLUDES), \
227 CFLAGS := $(CFLAGS_JDKLIB) \
228 $(LIBZ_CFLAGS) \
229 -I$(TOPDIR)/src/java.base/share/native/libjava \
230 -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
231 -I$(SUPPORT_OUTPUTDIR)/headers/java.base, \
232 CFLAGS_unix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \
233 DISABLED_WARNINGS_gcc := implicit-fallthrough, \
234 MAPFILE := $(TOPDIR)/make/mapfiles/libzip/mapfile-vers, \
235 REORDER := $(BUILD_LIBZIP_REORDER), \
236 LDFLAGS := $(LDFLAGS_JDKLIB) \
237 $(call SET_SHARED_LIBRARY_ORIGIN), \
238 LDFLAGS_windows := -export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \
239 -export:ZIP_ReadEntry -export:ZIP_GetNextEntry \
240 -export:ZIP_InflateFully -export:ZIP_CRC32 -export:ZIP_FreeEntry, \
241 LIBS_unix := -ljvm -ljava $(LIBZ_LIBS), \
242 LIBS_solaris := -lc, \
243 LIBS_windows := jvm.lib $(WIN_JAVA_LIB), \
244 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
245 RC_FLAGS := $(RC_FLAGS) \
246 -D "JDK_FNAME=zip.dll" \
247 -D "JDK_INTERNAL_NAME=zip" \
248 -D "JDK_FTYPE=0x2L", \
249 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libzip, \
250 ))
251
252 $(BUILD_LIBZIP): $(BUILD_LIBJAVA)
253
255
256 ##########################################################################################
257
258 JIMAGELIB_CPPFLAGS := \
259 -I$(TOPDIR)/src/java.base/share/native/libjava \
260 -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
261 -I$(TOPDIR)/src/java.base/share/native/libjimage \
262 -I$(SUPPORT_OUTPUTDIR)/headers/java.base \
263 #
264
265 $(eval $(call SetupNativeCompilation,BUILD_LIBJIMAGE, \
266 LIBRARY := jimage, \
267 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
268 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
269 OPTIMIZATION := LOW, \
270 SRC := $(TOPDIR)/src/java.base/share/native/libjimage \
271 $(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjimage, \
272 EXCLUDES := $(LIBJIMAGE_EXCLUDES), \
273 CFLAGS := $(CFLAGS_JDKLIB) $(JIMAGELIB_CPPFLAGS), \
274 CXXFLAGS := $(CXXFLAGS_JDKLIB) $(JIMAGELIB_CPPFLAGS), \
275 DISABLED_WARNINGS_gcc := implicit-fallthrough, \
276 CFLAGS_unix := -UDEBUG, \
277 MAPFILE := $(TOPDIR)/make/mapfiles/libjimage/mapfile-vers, \
278 LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
279 $(call SET_SHARED_LIBRARY_ORIGIN), \
280 LDFLAGS_windows := -export:JIMAGE_Open -export:JIMAGE_Close \
281 -export:JIMAGE_PackageToModule \
282 -export:JIMAGE_FindResource -export:JIMAGE_GetResource \
283 -export:JIMAGE_ResourceIterator -export:JIMAGE_ResourcePath, \
284 LIBS_unix := -ljvm -ldl $(LIBCXX), \
285 LIBS_solaris := -lc, \
286 LIBS_macosx := -lc++, \
287 LIBS_windows := jvm.lib, \
288 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
289 RC_FLAGS := $(RC_FLAGS) \
290 -D "JDK_FNAME=jimage.dll" \
291 -D "JDK_INTERNAL_NAME=jimage" \
292 -D "JDK_FTYPE=0x2L", \
293 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjimage, \
294 ))
295
349 ifneq ($(USE_EXTERNAL_LIBZ), true)
350 LIBJLI_EXTRA_FILES += \
351 $(addprefix $(TOPDIR)/src/java.base/share/native/libzip/zlib/, \
352 inflate.c \
353 inftrees.c \
354 inffast.c \
355 zadler32.c \
356 zcrc32.c \
357 zutil.c \
358 )
359 endif
360
361 $(eval $(call SetupNativeCompilation,BUILD_LIBJLI, \
362 LIBRARY := jli, \
363 OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \
364 SRC := $(LIBJLI_SRC_DIRS), \
365 EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
366 EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
367 OPTIMIZATION := HIGH, \
368 CFLAGS := $(LIBJLI_CFLAGS), \
369 DISABLED_WARNINGS_gcc := maybe-uninitialized, \
370 DISABLED_WARNINGS_solstudio := \
371 E_ASM_DISABLES_OPTIMIZATION \
372 E_STATEMENT_NOT_REACHED, \
373 MAPFILE := $(TOPDIR)/make/mapfiles/libjli/mapfile-vers, \
374 LDFLAGS := $(LDFLAGS_JDKLIB) \
375 $(call SET_SHARED_LIBRARY_ORIGIN), \
376 LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
377 LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
378 LDFLAGS_windows := \
379 -export:JLI_Launch \
380 -export:JLI_ManifestIterate \
381 -export:JLI_SetTraceLauncher \
382 -export:JLI_ReportErrorMessage \
383 -export:JLI_ReportErrorMessageSys \
384 -export:JLI_ReportMessage \
385 -export:JLI_ReportExceptionDescription \
386 -export:JLI_MemAlloc \
387 -export:JLI_CmdToArgs \
388 -export:JLI_GetStdArgc \
389 -export:JLI_GetStdArgs \
|