Skip to content

Commit c1ea769

Browse files
nvswarrencmaglie
authored andcommitted
AArch64 support
This patch will require a little rework before it gets submitted. 1) I don't know if the Arduino team will simply edit the existing binary dependencies in place and hence NOT change the filename like I have below (libastylej-2.05.1-3.zip -> libastylej-2.05.1-4.zip), or will indeed upload to new a filename. 2) Since the Arduino team will build and distribute all the binaries, the SHA values in the patch below will have to be recalculated once the actual files are available. The values below are for my locally built versions.
1 parent 418e3de commit c1ea769

7 files changed

+72
-8
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
037414a2491950ada8f0f389de39e7c2d6be05ca

build/build.xml

+66-8
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
<condition property="platform" value="linux32"><os family="unix" arch="i386" /></condition>
2424
<condition property="platform" value="linux64"><os family="unix" arch="amd64" /></condition>
2525
<condition property="platform" value="linuxarm"><os family="unix" arch="arm" /></condition>
26+
<condition property="platform" value="linuxaarch64"><os family="unix" arch="aarch64" /></condition>
2627

2728
<condition property="windows_host" value="true"><os family="windows" /></condition>
2829

@@ -33,18 +34,21 @@
3334
<condition property="linux"><equals arg1="${platform}" arg2="linux32" /></condition>
3435
<condition property="linux"><equals arg1="${platform}" arg2="linux64" /></condition>
3536
<condition property="linux"><equals arg1="${platform}" arg2="linuxarm" /></condition>
37+
<condition property="linux"><equals arg1="${platform}" arg2="linuxaarch64" /></condition>
3638

3739
<condition property="staging_folder" value="macosx"><equals arg1="${platform}" arg2="macosx" /></condition>
3840
<condition property="staging_folder" value="windows"><equals arg1="${platform}" arg2="windows" /></condition>
3941
<condition property="staging_folder" value="linux"><equals arg1="${platform}" arg2="linux32" /></condition>
4042
<condition property="staging_folder" value="linux"><equals arg1="${platform}" arg2="linux64" /></condition>
4143
<condition property="staging_folder" value="linux"><equals arg1="${platform}" arg2="linuxarm" /></condition>
44+
<condition property="staging_folder" value="linux"><equals arg1="${platform}" arg2="linuxaarch64" /></condition>
4245

4346
<condition property="staging_hardware_folder" value="Arduino.app/Contents/Java/hardware"><equals arg1="${platform}" arg2="macosx" /></condition>
4447
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="windows" /></condition>
4548
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="linux32" /></condition>
4649
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="linux64" /></condition>
4750
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="linuxarm" /></condition>
51+
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="linuxaarch64" /></condition>
4852

4953
<condition property="arch-bits" value="32">
5054
<equals arg1="${platform}" arg2="linux32"/>
@@ -55,6 +59,9 @@
5559
<condition property="arch-bits" value="64">
5660
<equals arg1="${platform}" arg2="linux64"/>
5761
</condition>
62+
<condition property="arch-bits" value="32">
63+
<equals arg1="${platform}" arg2="linuxaarch64"/>
64+
</condition>
5865

5966
<condition property="launch4j-download-unpack-target-name" value="launch4j-windows"><os family="windows" /></condition>
6067
<property name="launch4j-download-unpack-target-name" value="launch4j-linux"/>
@@ -455,8 +462,8 @@
455462
</antcall>
456463

457464
<antcall target="unzip">
458-
<param name="archive_file" value="./libastylej-2.05.1-3.zip" />
459-
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-3.zip" />
465+
<param name="archive_file" value="./libastylej-2.05.1-4.zip" />
466+
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-4.zip" />
460467
<param name="final_folder" value="${staging_folder}/libastylej-2.05.1" />
461468
<param name="dest_folder" value="${staging_folder}" />
462469
</antcall>
@@ -643,8 +650,8 @@
643650

644651
<target name="linux-libastyle-x86" depends="linux-build" description="Download libastyle.so for x86/x64 arch">
645652
<antcall target="unzip">
646-
<param name="archive_file" value="./libastylej-2.05.1-3.zip" />
647-
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-3.zip" />
653+
<param name="archive_file" value="./libastylej-2.05.1-4.zip" />
654+
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-4.zip" />
648655
<param name="final_folder" value="${staging_folder}/libastylej-2.05.1" />
649656
<param name="dest_folder" value="${staging_folder}" />
650657
</antcall>
@@ -668,8 +675,8 @@
668675

669676
<target name="linux-libastyle-arm" depends="linux-build" description="Download libastyle.so for ARM">
670677
<antcall target="unzip">
671-
<param name="archive_file" value="./libastylej-2.05.1-3.zip" />
672-
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-3.zip" />
678+
<param name="archive_file" value="./libastylej-2.05.1-4.zip" />
679+
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-4.zip" />
673680
<param name="final_folder" value="${staging_folder}/libastylej-2.05.1" />
674681
<param name="dest_folder" value="${staging_folder}" />
675682
</antcall>
@@ -709,6 +716,48 @@
709716
</antcall>
710717
</target>
711718

719+
<target name="linux-libastyle-aarch64" depends="linux-build" description="Download libastyle.so for AArch64">
720+
<antcall target="unzip">
721+
<param name="archive_file" value="./libastylej-2.05.1-4.zip" />
722+
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-4.zip" />
723+
<param name="final_folder" value="${staging_folder}/libastylej-2.05.1" />
724+
<param name="dest_folder" value="${staging_folder}" />
725+
</antcall>
726+
<copy file="linux/libastylej-2.05.1/libastylej_aarch64.so" tofile="linux/work/lib/libastylej.so" />
727+
<chmod perm="755" file="linux/work/lib/libastylej.so" />
728+
729+
<antcall target="portable-${portable}">
730+
<param name="parentdir" value="linux/work" />
731+
</antcall>
732+
733+
<antcall target="unzip">
734+
<param name="archive_file" value="./liblistSerials-${LIBLISTSERIAL-VERSION}-2.zip" />
735+
<param name="archive_url" value="https://downloads.arduino.cc/liblistSerials/liblistSerials-${LIBLISTSERIAL-VERSION}.zip" />
736+
<param name="final_folder" value="${staging_folder}/liblistSerials-${LIBLISTSERIAL-VERSION}" />
737+
<param name="dest_folder" value="${staging_folder}" />
738+
</antcall>
739+
<copy file="linux/liblistSerials-${LIBLISTSERIAL-VERSION}/aarch64/liblistSerialsj.so" todir="linux/work/lib/" />
740+
<chmod perm="755" file="linux/work/lib/liblistSerialsj.so" />
741+
</target>
742+
743+
<target name="linuxaarch64-build" depends="linux-libastyle-aarch64" description="Build Linux (AArch64) version">
744+
<antcall target="linux-jvm-${linux-bundle-jvm-task}">
745+
<param name="JVM" value="${LINUXARM_BUNDLED_JVM}"/>
746+
</antcall>
747+
748+
<antcall target="build-arduino-builder" />
749+
750+
<antcall target="avr-toolchain-bundle">
751+
<param name="unpack_target" value="untar"/>
752+
<param name="gcc_archive_file" value="avr-gcc-${AVRGCC-VERSION}-aarch64-pc-linux-gnu.tar.bz2"/>
753+
<param name="gcc_version" value="${AVRGCC-VERSION}"/>
754+
<param name="avrdude_archive_file" value="avrdude-${AVRDUDE-VERSION}-aarch64-pc-linux-gnu.tar.bz2"/>
755+
<param name="avrdude_version" value="${AVRDUDE-VERSION}"/>
756+
<param name="arduinoOTA_archive_file" value="arduinoOTA-${arduinoOTA-VERSION}-linux_aarch64.tar.bz2"/>
757+
<param name="arduinoOTA_version" value="${arduinoOTA-VERSION}"/>
758+
</antcall>
759+
</target>
760+
712761
<target name="linux32-build" depends="linux-libastyle-x86" description="Build linux (32-bit) version">
713762
<antcall target="linux-jvm-${linux-bundle-jvm-task}">
714763
<param name="JVM" value="${LINUX32_BUNDLED_JVM}"/>
@@ -763,6 +812,8 @@
763812

764813
<target name="linuxarm-run" depends="build,start"/>
765814

815+
<target name="linuxaarch64-run" depends="build,start"/>
816+
766817
<target name="linux32-start">
767818
<exec executable="./linux/work/arduino" spawn="false" failonerror="true"/>
768819
</target>
@@ -775,6 +826,10 @@
775826
<exec executable="./linux/work/arduino" spawn="false" failonerror="true"/>
776827
</target>
777828

829+
<target name="linuxaarch64-start">
830+
<exec executable="./linux/work/arduino" spawn="false" failonerror="true"/>
831+
</target>
832+
778833
<target name="build-arduino-builder" unless="no_arduino_builder">
779834
<delete dir="${staging_folder}/arduino-builder-${platform}" includeemptydirs="true"/>
780835
<mkdir dir="${staging_folder}/arduino-builder-${platform}"/>
@@ -906,6 +961,9 @@
906961
<target name="linuxarm-dist" depends="linux-dist"
907962
description="Build .tar.xz of linux armhf version" />
908963

964+
<target name="linuxaarch64-dist" depends="linux-dist"
965+
description="Build .tar.xz of linux aarch64 version" />
966+
909967
<!-- - - - - - - - -->
910968
<!-- Windows -->
911969
<!-- - - - - - - - -->
@@ -983,8 +1041,8 @@
9831041
<antcall target="windows-build-avr-toolchain" />
9841042

9851043
<antcall target="unzip">
986-
<param name="archive_file" value="./libastylej-2.05.1-3.zip" />
987-
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-3.zip" />
1044+
<param name="archive_file" value="./libastylej-2.05.1-4.zip" />
1045+
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-4.zip" />
9881046
<param name="final_folder" value="${staging_folder}/libastylej-2.05.1" />
9891047
<param name="dest_folder" value="${staging_folder}" />
9901048
</antcall>

build/libastylej-2.05.1-4.zip.sha

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
821c2b8c7560f9ff934b052e2b26eaeca05ea28f

build/liblistSerials-1.4.0-2.zip.sha

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
79311e47bfc3bbde9cb907760008b5bc91414ba7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
4a4df0746debf7768a5ffae7201d533d0ca79685
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
b21e4b06af3a045762276b7705508896f33a4757
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
40cc1a87ae550c958735d485e05c79be320f0ae1

0 commit comments

Comments
 (0)