{"id":671,"date":"2019-11-30T06:21:40","date_gmt":"2019-11-30T10:21:40","guid":{"rendered":"https:\/\/jausoft.com\/blog\/?p=671"},"modified":"2019-11-30T15:54:16","modified_gmt":"2019-11-30T19:54:16","slug":"cross-compilation-to-arm64-for-openjdk-jogamp-on-gnu-linux-ios","status":"publish","type":"post","link":"https:\/\/jausoft.com\/blog\/2019\/11\/30\/cross-compilation-to-arm64-for-openjdk-jogamp-on-gnu-linux-ios\/","title":{"rendered":"Cross Compilation to Arm64 for OpenJDK, JogAmp on GNU\/Linux, iOS, .."},"content":{"rendered":"<p>Finally pushed our <a href=\"https:\/\/jogamp.org\/cgit\/crosstool-ng-projects.git\/about\/\" target=\"_blank\" rel=\"noopener noreferrer\">crosstool-ng-projects<\/a> configuration to our SCM repositories and <a href=\"https:\/\/jogamp.org\/files\/toolchain\/latest-linux-toolchain\/\" target=\"_blank\" rel=\"noopener noreferrer\">published the latest signed &amp; hashed binaries here<\/a>.<\/p>\n<p>Changes to the last April toolchain builds are multiple:<\/p>\n<ul>\n<li>Updating crosstool-ng to latest release 1.24.0<\/li>\n<li>Aligning configuration with Debian 10 (Buster):\n<ul>\n<li>glibc 2.28<\/li>\n<li>binutils 2.31.1<\/li>\n<li>gcc 8.3.0 (unchanged)<\/li>\n<\/ul>\n<\/li>\n<li>Using 4-tuple symbolic links to 3-tuple, dropping vendor. This allows drop-in usage for OpenJDK cross-compilation via <em>&#8211;with-toolchain-path=\/usr\/local\/x-tools\/aarch64-unknown-linux-gnu\/bin<\/em><\/li>\n<\/ul>\n<p><!--more--><\/p>\n<p>Then I have updated the user library developer sysroot package <em>opt-linux-arm64-debian10<\/em>, completing its coverage beyond JogAmp for full OpenJDK cross-compilation<\/p>\n<ul>\n<li>Using automatic debian package fetching and extraction<\/li>\n<li>Covering JogAmp cross-compilation<\/li>\n<li>Coverage OpenJDK cross-compilation<\/li>\n<\/ul>\n<p><em>Update (2019-11-30): Today&#8217;s snapshot has been <a href=\"https:\/\/jogamp.org\/files\/toolchain\/20191130-linux-toolchain\/\">signed and hashed. <\/a>From here on the latest is available via this <a href=\"https:\/\/jogamp.org\/files\/toolchain\/latest-linux-toolchain\/\">symbolic link<\/a>. It includes the sysroot package of Debian 10 for aarch64 and armv6-armhf.<\/em><\/p>\n<p>My full OpenJDK11 configure script for building its linux-aarch64 image on a linux-x86_64 now looks like the following quote<\/p>\n<blockquote><p>export CUPS_DIR=$HOME\/projects\/OpenJDK\/cups-2.2.11\/include<br \/>\nexport JDK_DIR=\/opt-linux-x86_64\/jdk11<\/p>\n<p>bash configure \\<br \/>\n&#8211;with-toolchain-path=\/usr\/local\/x-tools\/aarch64-unknown-linux-gnu\/bin \\<br \/>\n&#8211;with-sysroot=\/usr\/local\/x-tools\/aarch64-unknown-linux-gnu\/aarch64-unknown-linux-gnu\/sysroot \\<br \/>\n&#8211;with-alsa=\/usr\/local\/x-tools\/opt-linux-arm64-debian10\/usr \\<br \/>\n&#8211;with-x=\/usr\/local\/x-tools\/opt-linux-arm64-debian10\/usr \\<br \/>\n&#8211;with-fontconfig=\/usr\/local\/x-tools\/opt-linux-arm64-debian10\/usr \\<br \/>\n&#8211;with-freetype=bundled \\<br \/>\n&#8211;with-extra-ldflags=&#8221;-Wl,-rpath-link=\/usr\/local\/x-tools\/opt-linux-arm64-debian10\/usr\/lib&#8221; \\<br \/>\n&#8211;with-debug-level=release \\<br \/>\n&#8211;enable-option-checking=fatal \\<br \/>\n&#8211;openjdk-target=aarch64-linux-gnu \\<br \/>\n&#8211;disable-warnings-as-errors \\<br \/>\n&#8211;enable-headless-only \\<br \/>\n&#8211;enable-aot=no \\<br \/>\n&#8211;with-boot-jdk=$JDK_DIR \\<br \/>\n&#8211;with-jdk-variant=normal \\<br \/>\n&#8211;with-jvm-variants=server \\<br \/>\n&#8211;with-cpu-port=aarch64 \\<br \/>\n&#8211;with-abi-profile=aarch64 \\<br \/>\n&#8211;with-conf-name=linux-aarch64-server-aarch64-release \\<br \/>\n&#8211;with-cups-include=$CUPS_DIR \\<br \/>\n&#8211;disable-precompiled-headers \\<br \/>\n&#8211;disable-manpages \\<\/p><\/blockquote>\n<p>In a followup blog I shall elaborate on the iOS Arm64 cross-compilation of OpenJDK, porting the OpenJDK9 to OpenJDK9-mobile differences to OpenJDK11.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Finally pushed our crosstool-ng-projects configuration to our SCM repositories and published the latest signed &amp; hashed binaries here. Changes to the last April toolchain builds are multiple: Updating crosstool-ng to latest release 1.24.0 Aligning configuration with Debian 10 (Buster): glibc 2.28 binutils 2.31.1 gcc 8.3.0 (unchanged) Using 4-tuple symbolic links to 3-tuple, dropping vendor. This&hellip; <a class=\"more-link\" href=\"https:\/\/jausoft.com\/blog\/2019\/11\/30\/cross-compilation-to-arm64-for-openjdk-jogamp-on-gnu-linux-ios\/\">Continue reading <span class=\"screen-reader-text\">Cross Compilation to Arm64 for OpenJDK, JogAmp on GNU\/Linux, iOS, ..<\/span> <span class=\"meta-nav\" aria-hidden=\"true\">&rarr;<\/span><\/a><\/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":[8],"tags":[48,16,44,33,46],"class_list":["post-671","post","type-post","status-publish","format-standard","hentry","category-jogamp","tag-debian","tag-java","tag-jogamp","tag-linux","tag-openjdk"],"_links":{"self":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts\/671","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=671"}],"version-history":[{"count":6,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts\/671\/revisions"}],"predecessor-version":[{"id":687,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts\/671\/revisions\/687"}],"wp:attachment":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/media?parent=671"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/categories?post=671"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/tags?post=671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}