Diego Perez (1): Use system property to detect Android Gilles Filippini (1): Support architecture ppc64le (Debian ppc64el). Sven Gothel (130): Bump to 2.4.0-rc Version Semantics Test: Bump for 2.3.2 -> 2.4.x Remove deprectated classes and methods Bug 1268 - DynamicLibraryBundleInfo: Add NativeLibrary's 'searchSystemPath' and 'searchSystemPathFirst' attributes Bump scripts to jre1.8.0_66 HowToBuild: Refine and add Debian 9 (Stretch) Factor out Cleaner access for general use (Cleaning up NIO DirectBuffer) MappedByteBufferInputStream: Add flushSlices() to release mapped slices to save mapped ByteBuffer memory Adding 'jogamp.gluegen.TestTempDirExec' property, allowing to disable testing executable of temp dir local build windows scripts: add 7zip to path Eclipse: Move android.jar to classpath end, avoid junit override Bug 1219, Bug 1231: Avoid deflating test-exe on Windows using java.nio.file.Files.isExecutable(Path) Bug 1219, Bug 1231: Re-add executable test by execution Update HowToBuild.html Bug 1316: MacOSX: Keep *.dylib (Don't move to *.jnilib) Bug 1366 - Use String.format((Locale)null, "..." ..) avoiding Locale output for System related Operations Bug 1367: Make TempFileCache & TempJarCache even if temp folder can't handle executables Bug 1369: Source Certification Contract (SCC): Initial SHA256 fingerprint & runtime validation OpenJDK8 Script Usage: Linux: Favor Debian default; Windows: Use AdoptOpenJDK8 Bug 1367: TempJarCache: Fix Unit Test using Reflections Bug 1369: SCC: Hide SHA Algorithm bit size in literals of Specification Bug 1369: SCC: Clarify & fix build dependencies in build.xml Bug 1190: Updating crosstools and enabling aarch64 + armv6hf 'ontarget' Bug 1190: Fix arm6hf + aarch64 gcc options, adapt glibc-compat-symbols.h Bug 1190: aarch64 + armhf ld symbolic link to actual x-tool binary of ld.bfd Bug 1190: Define TARGET_PLATFORM_SYSROOT TARGET_PLATFORM_USRROOT TARGET_PLATFORM_USRLIBS for crosscompilation Complete jogamp-env.xml TARGET_* readout; Use parsed env in cpptasks-base as well build.xml:gluegen.build.native: Place unsetting into the conditional .impl target Update CSS; Add responsive viewport design tag Update CSS; Add responsive viewport design tag Bug 1363: Java 11: Initial Host/Target Compiler Selection: Java8 Update cpptask.jar to commit 757192655df20cc6a68affe8cbb4d7de387c9c67 iOS: Initial iOS support commit: build.xml targets, java code-path etc Bug 1363: Java 11: Recognize Java9+ ..; Support JEP 178 static linkage libgluegen-rt[.so] -> libgluegen_rt[.so|.a] Update cpptask.jar to commit 18e04a2fb9c2a3556040091213f82fc570bc5736 iOS: Bump required iOS default version to 11.0 iOS: Generalize building the native symbols file via macro iOS: NativeLibrary: Refine iOS, use proper alt system path for iOS+OSX, relax closeLibrary(..) Bug 1363: Java 11: Mod scripts for OpenJDK11 usage Bug 1363: Java 11: HowToBuild Update Bug 1363: Java 11: build.xml fix some comments, javah replacement move and compile time build Bug 1363: Java 11: Refine 'java.home.dir' and 'java.lib.dir.platform' setup for traditional layout and JEP 220(Java 9+) Bug 1363: Java 11: Align gluegen-cpptask-custom.xml template to commit f54e4fbaebfec36bd3b523dc4e23f744e8e6a4ef iOS: Fix native symbol generation for Windows MacOS shall only scan for .dylib, dropping .jnilib search in NativeLibrary build.xml: Explicitly issue 'clean-temp' at start and in the end of default 'all*' targets. Update HowToBuild (gawk) and windows test scripts Bug 1363: Java 11: Fix javadoc invocation, drop -source for compile time javac Bug 1363: Java 11: Java version must be 11 or greater; Fix HowToBuild: Give detailed build commandline. Bug 1363: Java 11: Adopt java.lib.dir.platform changes to make/lib/gluegen-cpptasks-* Bug 1363: Java 11: Complete renaming JEP 178 compatible native lib basename gluegen-rt -> gluegen_rt Build Update: CMake 2.8.10.2 -> 3.15.2 (Windows + MacOS), Mingw64 4.8.1 -> 8.1.0 Bug 1363: Java 11: Resolve Buffers.Cleaner implementation Bug 1363: Java 11: Refine Build and Runtime requirements. Fix Java compiler test. Windows Regression: Mingw64 8.1.0 using statical linked tool lib Test1p1Test1p1JavaEmitter Bug 1363: Java 11: Document Java8 target constraints; Fix one odd compile issue Bug 1363: Java 11: Revert CStructAnnotationProcessor's @SupportedSourceVersion back to 11 Bug 1363: Java 11: Use new Android SDK 24 for Eclipse Android .classpath Fix JogAmp Next Release Number: 2.4.0 Bug 1363: Java 11: Extract and extend sun.misc.Unsafe functionality to UnsafeUtil minor autocleanup (final removed from static) Fix gluegen-cpptasks-base.xml for crosscompilation, failed due to unset supposedly detected mandatory new properties Scripts: Macos /opt-share -> /usr/local (Catalina Read-Only) Bug 1412 - JNI: GlueGen JavaEmitter: Check & Handle Exception after calling back into Java Bug 1417 - Android: Support building using current SDK and NDK v20 as of 2019-12-10 (GlueGen w/ android-aarch64 patched) Bug 1417 - Android: Complete 1st round: make/lib/gluegen-cpptask-android-.xml and scripts Bug 1417 - Android: Update cpptasks.jar Bug 1417 - Android: Add new x86 MachineDataInfo, differs due to smaller 'long double' than regular x86_32_unix Bug 1417 - Android: Manifest*-android* can no more have 'Name: ' directives for apk Bug 1417 - Android: Resulting dynamic libraries require the 'soname' to be set since API level 23 Bug 1417 - Android: Update cpptask, using implicit 'soname' setup, which scales better for all platforms. Bug 1417 - Android: Classify SYSROOTs in NDK for native libraries (link) and headers (compile) Bug 1417 - Android: Add ANDROID_TOOLCHAIN_SYSROOT1_INC_ARCH for arch specific includes like asm/types.h Bug 1417 - Android: Add ANDROID_TOOLCHAIN_SYSROOT1_INC_STL for LLVM's C++ STL headers (default since NDK r18) Bug 1417 - Android: Add adb scripts to force-stop and clear all jogamp tasks and packages Bug 1417 - Android: jogamp-env.xml: Elaborate on Android SDK API versions required [min=21, target=28], javac w/ 24, some NDK's clang with 22. Bug 1417 - Android: Context.MODE_WORLD_READABLE causes SecurityException on API >= 24, use Context.MODE_PRIVATE for temp cache Bug 1417 - Android: Use d8 for dex'ing w/ implicit Java8 desugaring (macro: aapt.signed) Add WeakIdentityHashMap implementation (from Apache Avro) WeakIdentityHashMap: Cleanup; Implement putAll(..); Make IdentityWeakReference static WeakIdentityHashMap: Refine capacity computation; Bitfield.Util add 'PowerOf2' functions WeakIdentityHashMap: Always null check on weakRef.get(); IdentityWeakReference: hash is final. Bug 1417: Update ant-cpptasks to commit c45a19eadc4c697b7cc1b095692b04deb73da5ce update make-all script add optional make/lib/gluegen/cpptasks* for iOS aarch64 and amd64 make/lib/gluegen-cpptasks* set 'is64Bit' where appropriate (no impact, but added for correctness) jogamp-fat.jar Main-Class VersionApplet -> GLWindow Bump iOS 12.2 -> 13.2 iOS scripts: Use GLUEGEN_CPPTASKS_FILE instead of -DisIOS*=true all build scripts: make.gluegen.all-host-macos.sh make.gluegen.all-host-linux.sh Handle special junit treatment via make/lib/gluegen-cpptasks* (i.e. iOS) OpenJDK 11 javadoc stylesheet and resources javadoc stylesheet: Apply JogAmp Style .. javadoc: enable frames native.tag.jar: include *.symbols native.tag.jar: Revert explicit inclusion of *.symbols file -> implicit inclusion/exclusion based on build.dynamiclibs fix windows build scripts MacOS: Add fat universal build w/ x86_64 + aarch64; Bump min SDK version >= 11.0 Fix unit test1.h Eclipse: Use JDK 1.8.0 JRE container to avoid Java 11 modules MacOS: Add description to produce fat OpenJDK libraries for x86_64 and aarch64 Eclipse: Add jdt settings Eclipse: Update settings Replace AccessController.doPrivileged() w/ SecurityUtil.doPrivileged() build.xml: Always set source w/ target version, avoid build WARNING Default build is JDK-17, prepare up to Java-21 (next LTS); PlatformPropsImpl: Remove static OSXVersion and Version* vars, add JAVA_17 and JAVA_21 flag. SecurityUtil: Skip System's SecurityManager action for getSecurityManager() and doPrivileged() for Java17+ TestIteratorIndexCORE: Fix template usage TestRecursiveLock01, TestRecursiveThreadGroupLock01: 'yield()' -> 'yield_thread()' to avoid potential Java>17 collision (JEP 361) src/junit/com/jogamp/gluegen/test/junit/generation/test1.h: Fix warnings re 'const' qualifier Build scripts: MacOS + Windows: Use JDK-17 to build our Java-1.8 API HowToBuild: adoptopenjdk -> adoptium, openjdk-11 -> openjdk-17 Build: jogamp-env: Set minJava{8,9,11,17,21}, allowing detailed JVM attributes and reuse it. Update Windows build/test scripts, remove 32-bit windows scripts HowToBuild: Remove Windows 32bit; Update Window 64bit toolchain, fix MacOS cmake version HowToBuild: Update Debian >= 11 android aapt: add includeAntRuntime="false" (warning off) check-java-major-version: Add proper alt version jogamp-androidtasks: Drop fixed 'android.api.level.min', 'use android.api.level' (default: level 24 or 'N') jogamp-androidtasks: Update key and sign parameter: sigalg 'SHA256withRSA', keyalg 'RSA', keysize '2048', validity '365', digestalg 'SHA256' Formatting: BindingJNILibLoader, AWTEDTExecutor Bump cpptasks.jar, commit 19c854265956942497dc89444a9ee84f18383671 (Support native windows dll-names) Remove Windows dll-rename, adopting to cpptasks.jar change Windows java-win64.bat launch script: Set LIB_DIR to absolute path as required by System.load*() NativeLibrary: Add getSystemEnvLibraryPaths(), i.e. LD_LIBRARY_PATH, PATH, .. content NativeLibrary.enumerateLibraryPaths(): Using addPaths() ensures given 'path' is being resolved as absolute-canonical as required for System.load*() JNILibLoaderBase.loadLibraryInternal(): Produce own detailed exception if lib couldn't be loaded (avoid showing misleading orig exception) NativeLibrary.enumerateLibraryPaths(): Reduce relative/absolute path mapping to 'java.library.path', others are absolute MappedByteBufferInputStream: Reduce dependency to Platform GlueGen: Mark 2.4.0 as released. Wade Walker (8): Ported NativeTaglet to jdk.javadoc.doclet.Taglet Fixed native header generation so it doesn't use javah Fix warning in annotation processor Fixed null pointer exception in logging print Fixed CStruct annotation processor to not use dummy Java variable types Fixed java.home directory and removed obsolete tools.jar Fixed minor Ant buildfile consistency issues Fixed JRE path for Linux AMD64 to work for Java 11 Xavier Hallade (1): added android x86 support. Xerxes Ranby (1): Bug 1295: Add linux-aarch64 GNU/Linux AArch64 support Xerxes RĂ„nby (3): Bug 682: Rename com.sun.gluegen -> com.jogamp.gluegen in doc/** Add GitLab CI .gitlab-ci.yml, build and test each commit on aarch64 and x86-64 linux systems. Bug 1295: Add linux-aarch64 GNU/Linux AArch64 crosscompile support