{"id":634,"date":"2019-06-17T00:43:19","date_gmt":"2019-06-17T04:43:19","guid":{"rendered":"http:\/\/jausoft.com\/blog\/?p=634"},"modified":"2019-06-17T00:43:19","modified_gmt":"2019-06-17T04:43:19","slug":"jogamp-ios-arm64-bring-up","status":"publish","type":"post","link":"https:\/\/jausoft.com\/blog\/2019\/06\/17\/jogamp-ios-arm64-bring-up\/","title":{"rendered":"JogAmp iOS Arm64 bring-up"},"content":{"rendered":"<p>I have been <em>distracted<\/em> from completing the 2.4.0 JogAmp release last two weeks, but at least it is for a good reason.<\/p>\n<p>Our most valuable client <a href=\"http:\/\/www.cctintl.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">CCT International<\/a> ordered a JogAmp port running on Apple&#8217;s iOS devices, namely iPad Pro using an arm64.<!--more--><\/p>\n<p>Right now I still finalize the <em>NativeWindow<\/em>, <em>Jogl<\/em> and <em>Newt<\/em> specialization for iOS.<br \/>\nSubsequently I will add JavaFX to the proof of concept (POC).<br \/>\nIf all goes as planned, I will demonstrate a working demo soon.<\/p>\n<p>Here is a little teaser of the past work, my first <em>GlueGen<\/em> bring-up on iOS arm64.<br \/>\nThe work includes a statically linked OpenJDK 9 hotspot-zero build,<br \/>\nwhich we may disclose at a later time. Naturally we aim for hotspot arm64 as the final goal.<br \/>\nFor now the required <a href=\"https:\/\/jausoft.com\/cgit\/gluegen.git\/log\/?h=ios\" target=\"_blank\" rel=\"noopener noreferrer\"><em>GlueGen<\/em> changes<\/a> are published pro-forma,<br \/>\nas well as some <a href=\"https:\/\/jausoft.com\/cgit\/ant-cpptasks.git\/log\/\" target=\"_blank\" rel=\"noopener noreferrer\"><em>ant-cpptask<\/em> enhancements<\/a> to allow using <em>xcrun clang<\/em> to create the static libraries instead of <em>ar<\/em>.<\/p>\n<p>Since you still have to wait a few more days for the demo video, here is the informal <em>GlueGen<\/em> stdout VersionInfo:<\/p>\n<blockquote><p>Hello JogAmp World<br \/>\nos.name: &lt;iOS&gt;<br \/>\nos.version: &lt;12.3.1&gt;<br \/>\nos.arch: &lt;aarch64&gt;<br \/>\njava.vendor: &lt;Gothel Software e.K.&gt;<br \/>\njava.vendor.url: &lt;https:\/\/jausoft.com\/&gt;<br \/>\njava.version: &lt;9.0.0.179-internal&gt;<br \/>\njava.vm.name: &lt;OpenJDK 64-Bit Zero VM&gt;<br \/>\njava.runtime.name: &lt;OpenJDK Runtime Environment&gt;<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\nPlatform: IOS \/ iOS 12.3.1 (12.3.1), aarch64 (ARM64, EABI_AARCH64), 8 cores, littleEndian true<br \/>\nMachineDataInfo: runtimeValidated true, 32Bit false, primitive size \/ alignment:<br \/>\nint8 1 \/ 1, int16 2 \/ 2<br \/>\nint 4 \/ 4, long 8 \/ 8<br \/>\nint32 4 \/ 4, int64 8 \/ 8<br \/>\nfloat 4 \/ 4, double 8 \/ 8, ldouble 8 \/ 8<br \/>\npointer 8 \/ 8, page 16384<br \/>\nPlatform: Java Version: 9.0.0.179-internal (9.0.0u0), VM: OpenJDK 64-Bit Zero VM, Runtime: OpenJDK Runtime Environment<br \/>\nPlatform: Java Vendor: Gothel Software e.K., https:\/\/jausoft.com\/, JavaSE: true, Java9: true, Java6: true, dynamicLib: false, AWT enabled: false<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>Version Info:<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\nPackage: com.jogamp.common<br \/>\nExtension Name: com.jogamp.common<br \/>\nSpecification Title: GlueGen Java Bindings Generator<br \/>\nSpecification Vendor: JogAmp Community<br \/>\nSpecification Version: 2.4<br \/>\nImplementation Title: GlueGen Run-Time<br \/>\nImplementation Vendor: JogAmp Community<br \/>\nImplementation Vendor ID: com.jogamp<br \/>\nImplementation URL: http:\/\/jogamp.org\/<br \/>\nImplementation Version: 2.4.0-rc-20190617<br \/>\nImplementation Build: 2.4-bmanual-20190617<br \/>\nImplementation Branch: ios<br \/>\nImplementation Commit: 062901d807770646604322aa45d1e018270ae7ce<br \/>\nImplementation SHA Sources: c018dbf83c4e85a75d998cb3a96ad0feaf334464f9703c89728f041eb5bb5565<br \/>\nImplementation SHA Classes: 36c3a9f3eaac9301c413a32a37fa3d5212dcf2f5128a3ad550e13909c178e3ef<br \/>\nImplementation SHA Classes-this: 4000b41b1305f973f4d2049974406879f817b202de4fe42f3e73ace1774a6471<br \/>\nImplementation SHA Natives: 83580e1de4d81afe54d75046de8c00e8a72126f58cbbd719c7e532a8951a901c<br \/>\nImplementation SHA Natives-this: 0<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>Full Manifest:<br \/>\nManifest-Version = 1.0<br \/>\nAnt-Version = Apache Ant 1.9.4<br \/>\nCreated-By = 1.8.0_66-b17 (Oracle Corporation)<br \/>\nApplication-Name = GlueGen Run-Time<br \/>\nSpecification-Title = GlueGen Java Bindings Generator<br \/>\nSpecification-Version = 2.4<br \/>\nSpecification-Vendor = JogAmp Community<br \/>\nImplementation-Title = GlueGen Run-Time<br \/>\nImplementation-Version = 2.4.0-rc-20190617<br \/>\nImplementation-Build = 2.4-bmanual-20190617<br \/>\nImplementation-Branch = ios<br \/>\nImplementation-Commit = 062901d807770646604322aa45d1e018270ae7ce<br \/>\nImplementation-SHA-Sources = c018dbf83c4e85a75d998cb3a96ad0feaf334464f9703c89728f041eb5bb5565<br \/>\nImplementation-SHA-Classes = 36c3a9f3eaac9301c413a32a37fa3d5212dcf2f5128a3ad550e13909c178e3ef<br \/>\nImplementation-SHA-Classes-this = 4000b41b1305f973f4d2049974406879f817b202de4fe42f3e73ace1774a6471<br \/>\nImplementation-SHA-Natives = 83580e1de4d81afe54d75046de8c00e8a72126f58cbbd719c7e532a8951a901c<br \/>\nImplementation-SHA-Natives-this = 0<br \/>\nImplementation-Vendor = JogAmp Community<br \/>\nImplementation-Vendor-Id = com.jogamp<br \/>\nImplementation-URL = http:\/\/jogamp.org\/<br \/>\nExtension-Name = com.jogamp.common<br \/>\nTrusted-Library = true<br \/>\nPermissions = all-permissions<br \/>\nApplication-Library-Allowable-Codebase = *<br \/>\nCodebase = *.goethel.localnet<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>I have been distracted from completing the 2.4.0 JogAmp release last two weeks, but at least it is for a good reason. Our most valuable client CCT International ordered a JogAmp port running on Apple&#8217;s iOS devices, namely iPad Pro using an arm64.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[7,3,8],"tags":[9,30,45,16,44,31,17],"class_list":["post-634","post","type-post","status-publish","format-standard","hentry","category-3d-opengl","category-computer-stuff","category-jogamp","tag-3d","tag-arm","tag-ios","tag-java","tag-jogamp","tag-mobile","tag-opengl"],"_links":{"self":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts\/634","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/comments?post=634"}],"version-history":[{"count":2,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts\/634\/revisions"}],"predecessor-version":[{"id":636,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts\/634\/revisions\/636"}],"wp:attachment":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/media?parent=634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/categories?post=634"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/tags?post=634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}