makefiles/CompileNativeLibraries.gmk

Print this page
rev 7983 : 8024265: Enable new build on AIX

@@ -93,10 +93,11 @@
                 LANG:=C,\
                 OPTIMIZATION:=$(BUILD_LIBFDLIBM_OPTIMIZATION), \
                 CFLAGS:=$(CFLAGS_JDKLIB) \
                         -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include,\
                 CFLAGS_windows_debug:=-DLOGGING,\
+                CFLAGS_aix:=-qfloat=nomaf,\
                 ARFLAGS:=$(ARFLAGS),\
                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfdlibm,\
                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
 
 else

@@ -248,10 +249,11 @@
                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
                          $(call SET_SHARED_LIBRARY_ORIGIN), \
                 LDFLAGS_SUFFIX_posix:=-ljvm -lverify, \
                 LDFLAGS_SUFFIX_solaris:=-lsocket -lnsl -lscf $(LIBDL) $(BUILD_LIBFDLIBM) -lc,\
                 LDFLAGS_SUFFIX_linux:=$(LIBDL) $(BUILD_LIBFDLIBM),\
+                LDFLAGS_SUFFIX_aix:=$(LIBDL) $(BUILD_LIBFDLIBM) -lm,\
                 LDFLAGS_SUFFIX_macosx:=-L$(JDK_OUTPUTDIR)/objs/ -lfdlibm \
                                          -framework CoreFoundation \
                                          -framework Security -framework SystemConfiguration, \
                 LDFLAGS_SUFFIX_windows:=-export:winFileHandleOpen -export:handleLseek \
                                         jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \

@@ -550,11 +552,11 @@
         debug_assert.c \
         debug_mem.c \
         debug_trace.c \
         debug_util.c
 
-ifneq (,$(filter $(OPENJDK_TARGET_OS), solaris linux))
+ifneq (,$(filter $(OPENJDK_TARGET_OS), solaris linux aix))
         LIBAWT_FILES += awt_LoadLibrary.c initIDs.c img_colors.c
 endif
 
 ifeq ($(OPENJDK_TARGET_OS),macosx)
         LIBAWT_FILES += awt_LoadLibrary.c img_colors.c

@@ -721,10 +723,11 @@
                 MAPFILE:=$(LIBAWT_MAPFILE), \
                 LDFLAGS:=$(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN),\
                 LDFLAGS_solaris:=-R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR),\
                 LDFLAGS_SUFFIX_linux:=-ljvm $(LIBM) $(LIBDL) -ljava,\
                 LDFLAGS_SUFFIX_solaris:=-ljvm $(LIBM) $(LIBDL) -ljava -lc,\
+                LDFLAGS_SUFFIX_aix:=-ljvm $(LIBM) $(LIBDL) -ljava -lm,\
                 LDFLAGS_SUFFIX_macosx:=-lmlib_image -ljvm $(LIBM) \
                                        -framework Cocoa \
                                        -framework OpenGL \
                                        -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
                                        -framework JavaNativeFoundation \

@@ -966,10 +969,11 @@
                 LDFLAGS_windows:=-export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \
                                 -export:ZIP_ReadEntry -export:ZIP_GetNextEntry jvm.lib \
                                 $(WIN_JAVA_LIB),\
                 LDFLAGS_SUFFIX_linux:=-ljvm -ljava $(LIBZ),\
                 LDFLAGS_SUFFIX_solaris:=-ljvm -ljava $(LIBZ) -lc,\
+                LDFLAGS_SUFFIX_aix:=-ljvm -ljava $(LIBZ),\
                 LDFLAGS_SUFFIX_macosx:=$(LIBZ) -ljava -ljvm,\
                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
                 RC_FLAGS:=$(RC_FLAGS)\
                           -D "JDK_FNAME=zip.dll" \
                           -D "JDK_INTERNAL_NAME=zip" \

@@ -1031,10 +1035,13 @@
     LIBATTACH_EXCLUDE_FILES+=LinuxVirtualMachine.c
 endif
 ifneq ($(OPENJDK_TARGET_OS),macosx)
     LIBATTACH_EXCLUDE_FILES+=BsdVirtualMachine.c
 endif
+ifneq ($(OPENJDK_TARGET_OS),aix)
+    LIBATTACH_EXCLUDE_FILES+=AixVirtualMachine.c
+endif
 
 $(eval $(call SetupNativeCompilation,BUILD_LIBATTACH,\
                 LIBRARY:=attach, \
                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
                 SRC:=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/tools/attach,\

@@ -1253,10 +1260,11 @@
                 LDFLAGS_solaris:=/usr/lib$(OPENJDK_TARGET_CPU_ISADIR)/libm.so.2,\
                 LDFLAGS_windows:=$(WIN_AWT_LIB) $(WIN_JAVA_LIB),\
                 LDFLAGS_SUFFIX_solaris:=-lawt -ljava -ljvm -lc,\
                 LDFLAGS_SUFFIX_macosx:=$(LIBM) -lawt -ljava -ljvm,\
                 LDFLAGS_SUFFIX_linux:=-lm -lawt -ljava -ljvm,\
+                LDFLAGS_SUFFIX_aix:=-lm -lawt -ljava -ljvm,\
                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
                 RC_FLAGS:=$(RC_FLAGS)\
                           -D "JDK_FNAME=lcms.dll" \
                           -D "JDK_INTERNAL_NAME=lcms" \
                           -D "JDK_FTYPE=0x2L",\

@@ -1386,10 +1394,11 @@
                 LDFLAGS:=$(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK) \
                          $(call SET_SHARED_LIBRARY_ORIGIN),\
                 LDFLAGS_SUFFIX:=$(BUILD_LIBFONTMANAGER_FONTLIB),\
                 LDFLAGS_SUFFIX_linux:=-lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc,\
                 LDFLAGS_SUFFIX_solaris:=-lawt -lawt_xawt -lc $(LIBM) $(LIBCXX) -ljava -ljvm,\
+                LDFLAGS_SUFFIX_aix:=-lawt -lawt_xawt $(LIBM) $(LIBCXX) -ljava -ljvm,\
                 LDFLAGS_SUFFIX_macosx:=-lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \
                                        -ljava -ljvm,\
                 LDFLAGS_SUFFIX_windows:=$(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
                                         $(WIN_AWT_LIB),\
                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\

@@ -1400,11 +1409,11 @@
                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libfontmanager,\
                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))
 
 $(BUILD_LIBFONTMANAGER) : $(BUILD_LIBAWT)
 
-ifneq (,$(findstring $(OPENJDK_TARGET_OS),solaris macosx))
+ifneq (,$(findstring $(OPENJDK_TARGET_OS),solaris macosx aix))
 $(BUILD_LIBFONTMANAGER) : $(BUILD_LIBAWT_XAWT)
 endif
 
 BUILD_LIBRARIES += $(BUILD_LIBFONTMANAGER)
 

@@ -1537,10 +1546,11 @@
                 MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libjawt/mapfile-vers, \
                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
                          $(call SET_SHARED_LIBRARY_ORIGIN),\
                 LDFLAGS_solaris:=-L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR),\
                 LDFLAGS_SUFFIX_linux:=$(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX),\
+                LDFLAGS_SUFFIX_aix:=$(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX),\
                 LDFLAGS_SUFFIX_solaris:=$(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender,\
                 LDFLAGS_SUFFIX_macosx:=-Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \
                                        -framework Cocoa $(LDFLAGS_JDKLIB_SUFFIX),\
                 OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjawt,\
                 DEBUG_SYMBOLS:=$(DEBUG_ALL_BINARIES)))

@@ -1620,19 +1630,20 @@
                                 -framework Cocoa -framework Security -framework ApplicationServices,\
                 LDFLAGS_SUFFIX:=$(LIBINSTRUMENT_LDFLAGS_SUFFIX),\
                 LDFLAGS_SUFFIX_macosx:=-liconv $(LIBZ),\
                 LDFLAGS_SUFFIX_solaris:=$(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL) -lc,\
                 LDFLAGS_SUFFIX_linux:=$(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL),\
+                LDFLAGS_SUFFIX_aix:=$(LIBZ) -L$(JDK_OUTPUTDIR)/objs -ljli_static $(LIBDL),\
                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
                 RC_FLAGS:=$(RC_FLAGS)\
                           -D "JDK_FNAME=instrument.dll" \
                           -D "JDK_INTERNAL_NAME=instrument" \
                           -D "JDK_FTYPE=0x2L",\
                 OBJECT_DIR:=$(LIBINSTRUMENT_DIR),\
                 DEBUG_SYMBOLS:=true))
 
-ifneq (,$(findstring $(OPENJDK_TARGET_OS), macosx windows))
+ifneq (,$(findstring $(OPENJDK_TARGET_OS), macosx windows aix))
 $(BUILD_LIBINSTRUMENT) : $(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)jli_static$(STATIC_LIBRARY_SUFFIX)
 else
 $(BUILD_LIBINSTRUMENT) : $(INSTALL_LIBRARIES_HERE)/jli/$(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX)
 endif
 $(BUILD_LIBINSTRUMENT) : $(BUILD_LIBJAVA)

@@ -1686,10 +1697,11 @@
                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
                          $(call SET_SHARED_LIBRARY_ORIGIN),\
                 LDFLAGS_solaris:=-lkstat,\
                 LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
                 LDFLAGS_SUFFIX_windows:=jvm.lib psapi.lib $(WIN_JAVA_LIB) advapi32.lib,\
+                LDFLAGS_SUFFIX_aix:=-lperfstat,\
                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
                 RC_FLAGS:=$(RC_FLAGS)\
                           -D "JDK_FNAME=management.dll" \
                           -D "JDK_INTERNAL_NAME=management" \
                           -D "JDK_FTYPE=0x2L",\

@@ -1808,11 +1820,11 @@
 endif
 
 LIBNET_CFLAGS:=$(foreach dir,$(LIBNET_SRC_DIRS),-I$(dir))
 
 LIBNET_EXCLUDE_FILES:=
-ifneq ($(OPENJDK_TARGET_OS),linux)
+ifeq (,$(filter $(OPENJDK_TARGET_OS), linux aix))
         LIBNET_EXCLUDE_FILES += linux_close.c
 endif
 
 ifneq ($(OPENJDK_TARGET_OS),macosx)
         LIBNET_EXCLUDE_FILES += bsd_close.c

@@ -1839,10 +1851,11 @@
                 LDFLAGS:=$(LDFLAGS_JDKLIB) \
                          $(call SET_SHARED_LIBRARY_ORIGIN),\
                 LDFLAGS_SUFFIX_macosx:=-ljvm -ljava,\
                 LDFLAGS_SUFFIX_solaris:=-ljvm -ljava -lnsl -lsocket $(LIBDL) -lc ,\
                 LDFLAGS_SUFFIX_linux:=$(LIBDL) -ljvm -lpthread -ljava,\
+                LDFLAGS_SUFFIX_aix:=$(LIBDL) -ljvm -ljava,\
                 LDFLAGS_SUFFIX_windows:=ws2_32.lib jvm.lib secur32.lib iphlpapi.lib \
                                         delayimp.lib $(WIN_JAVA_LIB) advapi32.lib \
                                         -DELAYLOAD:secur32.dll -DELAYLOAD:iphlpapi.dll, \
                 VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
                 RC_FLAGS:=$(RC_FLAGS)\

@@ -1959,10 +1972,25 @@
                 SolarisWatchService.c \
                 UnixCopyFile.c \
                 UnixNativeDispatcher.c
 endif
 
+ifeq ($(OPENJDK_TARGET_OS), aix)
+        BUILD_LIBNIO_MAPFILE:=$(JDK_TOPDIR)/makefiles/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
+        BUILD_LIBNIO_FILES += \
+                AixPollPort.c \
+                InheritedChannel.c \
+                NativeThread.c \
+                PollArrayWrapper.c \
+                UnixAsynchronousServerSocketChannelImpl.c \
+                UnixAsynchronousSocketChannelImpl.c \
+                GnomeFileTypeDetector.c \
+                UnixCopyFile.c \
+                AixNativeDispatcher.c \
+                UnixNativeDispatcher.c
+endif
+
 $(eval $(call SetupNativeCompilation,BUILD_LIBNIO,\
                 LIBRARY:=nio,\
                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
                 SRC:=$(BUILD_LIBNIO_SRC),\
                 INCLUDE_FILES:=$(BUILD_LIBNIO_FILES), \

@@ -1972,10 +2000,11 @@
                         $(BUILD_LIBNIO_CFLAGS),\
                 MAPFILE:=$(BUILD_LIBNIO_MAPFILE), \
                 LDFLAGS:=$(LDFLAGS_JDKLIB) $(BUILD_LIBNIO_LDFLAGS) \
                          $(call SET_SHARED_LIBRARY_ORIGIN),\
                 LDFLAGS_SUFFIX_linux:=-ljava -lnet -lpthread $(LIBDL),\
+                LDFLAGS_SUFFIX_aix:=-ljava -lnet $(LIBDL),\
                 LDFLAGS_SUFFIX_solaris:=-ljvm -lsocket -lposix4 $(LIBDL) \
                                         -lsendfile -ljava -lnet -lc,\
                 LDFLAGS_SUFFIX_windows:=jvm.lib ws2_32.lib $(WIN_JAVA_LIB) \
                                         $(JDK_OUTPUTDIR)/objs/libnet/net.lib \
                                         advapi32.lib,\

@@ -1995,11 +2024,11 @@
 
 ##########################################################################################
 
 ifeq ($(OPENJDK_TARGET_OS_API),posix)
 
-  ifneq ($(OPENJDK_TARGET_OS),macosx)
+  ifeq (,$(filter $(OPENJDK_TARGET_OS), macosx aix))
 
     SCTP_WERROR := -Werror
     ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc)
       SCTP_WERROR :=
     endif

@@ -2125,10 +2154,11 @@
                 LDFLAGS_linux:=$(call SET_SHARED_LIBRARY_ORIGIN,/..),\
                 LDFLAGS_solaris:=$(call SET_SHARED_LIBRARY_ORIGIN,/..),\
                 LDFLAGS_macosx:=-framework Cocoa -framework Security -framework ApplicationServices,\
                 LDFLAGS_SUFFIX_solaris:=$(LIBZ) $(LIBDL) -lc,\
                 LDFLAGS_SUFFIX_linux:=$(LIBZ) $(LIBDL) -lc -lpthread,\
+                LDFLAGS_SUFFIX_aix:=$(LIBZ) $(LIBDL),\
                 LDFLAGS_SUFFIX_macosx:=$(LIBZ),\
                 LDFLAGS_SUFFIX_windows:=\
                         -export:JLI_Launch \
                         -export:JLI_ManifestIterate \
                         -export:JLI_SetTraceLauncher \

@@ -2190,10 +2220,25 @@
 
 $(JDK_OUTPUTDIR)/objs/libjli_static.a : $(BUILD_LIBJLI_STATIC)
         $(call install-file)
 
 BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a
+
+else ifeq ($(OPENJDK_TARGET_OS), aix)
+    $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC,\
+                STATIC_LIBRARY:=jli_static,\
+                OUTPUT_DIR:=$(JDK_OUTPUTDIR)/objs,\
+                SRC:=$(BUILD_LIBJLI_SRC_DIRS),\
+                INCLUDE_FILES:=$(BUILD_LIBJLI_FILES),\
+                LANG:=C,\
+                OPTIMIZATION:=HIGH, \
+                CFLAGS:=$(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS),\
+                ARFLAGS:=$(ARFLAGS),\
+                OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/libjli_static))
+
+BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a
+
 endif
 
 ##########################################################################################
 
 ifndef OPENJDK

@@ -2411,10 +2456,11 @@
                                  -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) \
                                  -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR),\
                 LDFLAGS_macosx:=$(call SET_SHARED_LIBRARY_ORIGIN).,\
                 REORDER:=$(LIBAWT_HEADLESS_REORDER), \
                 LDFLAGS_SUFFIX_linux:=-ljvm -lawt -lm $(LIBDL) -ljava,\
+                LDFLAGS_SUFFIX_aix:=-ljvm -lawt -ljava,\
                 LDFLAGS_SUFFIX_solaris:=$(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc,\
                 LDFLAGS_SUFFIX_macosx:=-ljvm $(LIBCXX) -lawt $(LIBDL) -ljava \
                                  -framework Accelerate \
                                  -framework ApplicationServices \
                                  -framework Cocoa \

@@ -2815,10 +2861,14 @@
 ifeq ($(OPENJDK_TARGET_OS), linux)
         EXTRA_SOUND_JNI_LIBS += jsoundalsa
         LIBJSOUND_CFLAGS += -DX_PLATFORM=X_LINUX
 endif # OPENJDK_TARGET_OS linux
 
+ifeq ($(OPENJDK_TARGET_OS), aix)
+        LIBJSOUND_CFLAGS += -DX_PLATFORM=X_AIX
+endif # OPENJDK_TARGET_OS linux
+
 ifeq ($(OPENJDK_TARGET_OS), macosx)
         LIBJSOUND_LANG:=C++
         LIBJSOUND_CFLAGS += -DX_PLATFORM=X_MACOSX \
                             -DUSE_PORTS=TRUE \
                             -DUSE_DAUDIO=TRUE \