Changeset: f2d2cc5435db Author: Greg Lewis <gle...@eyesbeyond.com> Date: 2014-07-15 21:03 -0700 URL: http://hg.openjdk.java.net/bsd-port/jdk8/jdk/rev/f2d2cc5435db
(Free)BSD support. This is predominantly the work of: Jung-uk Kim <j...@freebsd.org> Brian Gardner <open...@getsnappy.com> Although it also builds on previous ports. I've made some additions too, hopefully without breaking anything. Details: . Account for libdl not existing on BSD. . Factor out common Linux/BSD, MacOS X/BSD, and Solaris/BSD classes and build logic so that targets are built on all relevant platforms. . Put the KQueue/NIO code for BSD in the BSD subdir since both MacOS X and BSD use it. Adjust build directories appropriately. . Add in BSD specific flags and build logic. . Adapt to how printf(1) works on BSD. . Add a classlist file for BSD. . Export __progname for BSD. . Add mapfiles for BSD. . Add BSD support to the NetBeans project files. . Adjust examples in BSD man pages to match FreeBSD paths. . Modify code so that Linux/BSD and MacOS X/BSD commonalities are expressed in many places. . Add in correct native library loading for external libraries on BSD (note that the version numbers may be FreeBSD specific). . Add a BSD version of java.security. . Use the defines VM_LITTLE_ENDIAN and VM_BIG_ENDIAN rather than _LITTLE_ENDIAN and _BIG_ENDIAN since the latter are defined on both types of endian mahcines in some BSD header files. . Spell memalign as posix_memalign on BSD. . Fix a void return from a non-void function in GcInfoBuilder.c . Detect suid/sgid on BSD using issetugid(). . Fix the /proc location for the current executable for FreeBSD. . Add a #define for gethrtime() on FreeBSD. . Modify UNIXProcess.java.bsd to work on BSD and move the current version to UNIXProcess.java.macosx. . Better bsd.fontconfig.properties (but needs work to eliminate hardcoded FreeBSD package paths). . Sync BsdFileSystemProvider with relevant changes in LinuxFileSystemProvider. . Fix printing on BSD. . Remove obsolete BSD code in Inet4AddressImpl.c . Add the correct timezone file for FreeBSD. . Add appropriate font paths for BSD. . In OperatingSystemImpl.c implement (for FreeBSD) . Available swap space size. . Commited virtual memory size. . Free physical memory size. . Total physical memory size. . Open file descriptor count. . Take account of SCTP support being natively in libc for FreeBSD. . Add BSD support for tests. ! make/CompileDemos.gmk ! make/CompileJavaClasses.gmk ! make/CompileLaunchers.gmk ! make/CopyFiles.gmk ! make/Images.gmk + make/data/classlist/classlist.bsd ! make/gendata/GendataFontConfig.gmk ! make/gensrc/GensrcMisc.gmk ! make/lib/Awt2dLibraries.gmk ! make/lib/CoreLibraries.gmk ! make/lib/NetworkingLibraries.gmk ! make/lib/NioLibraries.gmk ! make/lib/ServiceabilityLibraries.gmk ! make/lib/SoundLibraries.gmk ! make/mapfiles/launchers/mapfile-x86 ! make/mapfiles/launchers/mapfile-x86_64 + make/mapfiles/libattach/mapfile-bsd + make/mapfiles/libnio/mapfile-bsd ! make/mapfiles/libunpack/mapfile-vers-unpack200 + make/netbeans/common/bsd-sources.ent + make/netbeans/common/bsd-view.ent ! make/netbeans/common/java-data-native.ent ! make/netbeans/common/make.xml ! make/netbeans/j2se/nbproject/project.xml ! make/netbeans/world/nbproject/project.xml + src/bsd/classes/java/net/DefaultInterface.java + src/bsd/classes/sun/nio/ch/DefaultSelectorProvider.java + src/bsd/classes/sun/nio/ch/KQueueArrayWrapper.java + src/bsd/classes/sun/nio/ch/KQueueSelectorImpl.java + src/bsd/classes/sun/nio/ch/KQueueSelectorProvider.java ! src/bsd/doc/man/javah.1 ! src/bsd/doc/man/rmic.1 ! src/bsd/doc/man/rmid.1 + src/bsd/native/sun/nio/ch/KQueueArrayWrapper.c - src/macosx/classes/java/net/DefaultInterface.java - src/macosx/classes/sun/nio/ch/DefaultSelectorProvider.java - src/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java - src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java - src/macosx/classes/sun/nio/ch/KQueueSelectorProvider.java - src/macosx/native/sun/nio/ch/KQueueArrayWrapper.c ! src/share/bin/jli_util.h ! src/share/classes/sun/awt/FontConfiguration.java ! src/share/classes/sun/awt/OSInfo.java ! src/share/classes/sun/font/FontUtilities.java ! src/share/classes/sun/font/SunFontManager.java ! src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java ! src/share/classes/sun/print/PSPrinterJob.java ! src/share/classes/sun/security/jgss/GSSManagerImpl.java ! src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java ! src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java ! src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider + src/share/lib/security/java.security-bsd ! src/share/native/com/sun/java/util/jar/pack/zip.cpp ! src/share/native/com/sun/media/sound/DirectAudioDevice.c ! src/share/native/com/sun/media/sound/Utilities.c ! src/share/native/java/lang/fdlibm/include/fdlibm.h ! src/share/native/sun/awt/image/awt_parseImage.c ! src/share/native/sun/awt/medialib/awt_ImagingLib.c ! src/share/native/sun/awt/medialib/mlib_ImageConv2x2_f.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_8nw.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_u16ext.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c ! src/share/native/sun/awt/medialib/mlib_ImageCopy_Bit.c ! src/share/native/sun/awt/medialib/mlib_ImageLookUp_64.c ! src/share/native/sun/awt/medialib/mlib_ImageLookUp_Bit.c ! src/share/native/sun/awt/medialib/mlib_ImageUtils.c ! src/share/native/sun/awt/medialib/mlib_c_ImageCopy.c ! src/share/native/sun/awt/medialib/mlib_c_ImageLookUp_f.c ! src/share/native/sun/awt/medialib/mlib_image.h ! src/share/native/sun/awt/medialib/mlib_sys.c ! src/share/native/sun/font/layout/LEStandalone.h ! src/share/native/sun/java2d/cmm/lcms/LCMS.c ! src/share/native/sun/java2d/cmm/lcms/lcms2.h ! src/share/native/sun/management/DiagnosticCommandImpl.c ! src/share/native/sun/management/GcInfoBuilder.c ! src/solaris/back/util_md.h ! src/solaris/bin/ergo_i586.c ! src/solaris/bin/java_md_solinux.c ! src/solaris/bin/java_md_solinux.h ! src/solaris/classes/java/lang/UNIXProcess.java.bsd + src/solaris/classes/java/lang/UNIXProcess.java.macosx ! src/solaris/classes/sun/awt/X11FontManager.java ! src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties ! src/solaris/classes/sun/net/PortConfig.java ! src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java ! src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java ! src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java ! src/solaris/classes/sun/print/UnixPrintServiceLookup.java ! src/solaris/classes/sun/tools/attach/BsdVirtualMachine.java ! src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_PCM.c ! src/solaris/native/common/jni_util_md.c ! src/solaris/native/java/lang/java_props_md.c ! src/solaris/native/java/net/Inet4AddressImpl.c ! src/solaris/native/java/net/Inet6AddressImpl.c ! src/solaris/native/java/net/NetworkInterface.c ! src/solaris/native/java/net/PlainDatagramSocketImpl.c ! src/solaris/native/java/net/net_util_md.c ! src/solaris/native/java/net/net_util_md.h ! src/solaris/native/java/util/TimeZone_md.c ! src/solaris/native/sun/awt/awt_Font.c ! src/solaris/native/sun/awt/awt_GraphicsEnv.c ! src/solaris/native/sun/awt/awt_InputMethod.c ! src/solaris/native/sun/awt/awt_Robot.c ! src/solaris/native/sun/awt/extutil.h ! src/solaris/native/sun/awt/fontpath.c ! src/solaris/native/sun/java2d/j2d_md.h ! src/solaris/native/sun/java2d/loops/mlib_ImageZoom_NN.c ! src/solaris/native/sun/java2d/loops/vis_FuncArray.c ! src/solaris/native/sun/management/OperatingSystemImpl.c ! src/solaris/native/sun/nio/ch/NativeThread.c ! src/solaris/native/sun/nio/ch/sctp/Sctp.h ! src/solaris/native/sun/nio/ch/sctp/SctpNet.c ! src/solaris/native/sun/nio/fs/MagicFileTypeDetector.c ! src/solaris/native/sun/tools/attach/BsdVirtualMachine.c ! src/solaris/native/sun/xawt/XWindow.c ! src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_DirectSound.cpp ! test/com/sun/corba/5036554/TestCorbaBug.sh ! test/com/sun/corba/cachedSocket/7056731.sh ! test/com/sun/jdi/ImmutableResourceTest.sh ! test/com/sun/jdi/JITDebug.sh ! test/com/sun/jdi/PrivateTransportTest.sh ! test/com/sun/jdi/ShellScaffold.sh ! test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh ! test/java/awt/JAWT/JAWT.sh ! test/java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh ! test/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh ! test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh ! test/java/io/File/GetXSpace.java ! test/java/io/File/GetXSpace.sh ! test/java/io/Serializable/evolution/RenamePackage/run.sh ! test/java/io/Serializable/serialver/classpath/run.sh ! test/java/io/Serializable/serialver/nested/run.sh ! test/java/lang/ClassLoader/deadlock/TestCrossDelegate.sh ! test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh ! test/java/lang/ProcessBuilder/DestroyTest.java ! test/java/lang/ProcessBuilder/Zombies.java ! test/java/lang/StringCoding/CheckEncodings.sh ! test/java/lang/annotation/loaderLeak/LoaderLeak.sh ! test/java/lang/instrument/MakeJAR2.sh ! test/java/lang/instrument/appendToClassLoaderSearch/CommonSetup.sh ! test/java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java ! test/java/lang/management/OperatingSystemMXBean/TestSystemLoadAvg.sh ! test/java/net/Authenticator/B4933582.sh ! test/java/net/DatagramSocket/Send12k.java ! test/java/net/DatagramSocket/SendDatagramToBadAddress.java ! test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh ! test/java/net/Socket/OldSocketImpl.sh ! test/java/net/URL/B5086147.sh ! test/java/net/URLClassLoader/B5077773.sh ! test/java/net/URLClassLoader/sealing/checksealed.sh ! test/java/net/URLConnection/6212146/test.sh ! test/java/nio/channels/FileChannel/Transfer.java ! test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.c ! test/java/nio/charset/coders/CheckSJISMappingProp.sh ! test/java/nio/charset/spi/basic.sh ! test/java/nio/file/FileSystem/Basic.java ! test/java/nio/file/Files/CopyAndMove.java ! test/java/rmi/activation/Activatable/extLoadedImpl/ext.sh ! test/java/rmi/registry/readTest/readTest.sh ! test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh ! test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh ! test/java/security/Security/ClassLoaderDeadlock/Deadlock2.sh ! test/java/security/Security/signedfirst/Dyn.sh ! test/java/security/Security/signedfirst/Static.sh ! test/java/util/Currency/PropertiesTest.sh ! test/java/util/PluggableLocale/ExecTest.sh ! test/java/util/ResourceBundle/Bug6299235Test.sh ! test/java/util/ServiceLoader/basic.sh ! test/java/util/prefs/CheckUserPrefsStorage.sh ! test/javax/crypto/SecretKeyFactory/FailOverTest.sh ! test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatTest.sh ! test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatThreadTest.sh ! test/javax/imageio/stream/StreamCloserLeak/run_test.sh ! test/javax/script/CommonSetup.sh ! test/javax/security/auth/Subject/doAs/Test.sh ! test/lib/security/java.policy/Ext_AllPolicy.sh ! test/lib/testlibrary/jdk/testlibrary/Platform.java ! test/sun/management/jmxremote/bootstrap/GeneratePropertyPassword.sh ! test/sun/net/ftp/MarkResetTest.sh ! test/sun/net/www/http/HttpClient/RetryPost.sh ! test/sun/net/www/protocol/jar/B5105410.sh ! test/sun/net/www/protocol/jar/jarbug/run.sh ! test/sun/nio/ch/SelProvider.java ! test/sun/security/krb5/runNameEquals.sh ! test/sun/security/mscapi/ShortRSAKey1024.sh ! test/sun/security/pkcs11/Provider/ConfigQuotedString.sh ! test/sun/security/pkcs11/Provider/Login.sh ! test/sun/security/provider/KeyStore/DKSTest.sh ! test/sun/security/provider/PolicyFile/GrantAllPermToExtWhenNoPolicy.sh ! test/sun/security/provider/PolicyFile/getinstance/getinstance.sh ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/EngineArgs/DebugReportsOneExtraByte.sh ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.sh ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.sh ! test/sun/security/tools/jarsigner/AlgOptions.sh ! test/sun/security/tools/jarsigner/PercentSign.sh ! test/sun/security/tools/jarsigner/diffend.sh ! test/sun/security/tools/jarsigner/emptymanifest.sh ! test/sun/security/tools/jarsigner/oldsig.sh ! test/sun/security/tools/keytool/AltProviderPath.sh ! test/sun/security/tools/keytool/CloneKeyAskPassword.sh ! test/sun/security/tools/keytool/NoExtNPE.sh ! test/sun/security/tools/keytool/SecretKeyKS.sh ! test/sun/security/tools/keytool/StandardAlgName.sh ! test/sun/security/tools/keytool/StorePasswordsByShell.sh ! test/sun/security/tools/keytool/i18n.sh ! test/sun/security/tools/keytool/printssl.sh ! test/sun/security/tools/keytool/resource.sh ! test/sun/security/tools/keytool/standard.sh ! test/sun/security/tools/policytool/Alias.sh ! test/sun/security/tools/policytool/ChangeUI.sh ! test/sun/security/tools/policytool/OpenPolicy.sh ! test/sun/security/tools/policytool/SaveAs.sh ! test/sun/security/tools/policytool/UpdatePermissions.sh ! test/sun/security/tools/policytool/UsePolicy.sh ! test/sun/security/tools/policytool/i18n.sh ! test/sun/tools/common/CommonSetup.sh ! test/sun/tools/jconsole/ResourceCheckTest.sh ! test/sun/tools/native2ascii/resources/ImmutableResourceTest.sh ! test/tools/launcher/ExecutionEnvironment.java ! test/tools/launcher/RunpathTest.java ! test/tools/launcher/Test7029048.java ! test/tools/launcher/TestHelper.java