Skip to content

Commit 6280b28

Browse files
nvswarrenfacchinm
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 285f328 commit 6280b28

7 files changed

+72
-8
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
037414a2491950ada8f0f389de39e7c2d6be05ca

build/build.xml

Lines changed: 66 additions & 8 deletions
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"/>
@@ -450,8 +457,8 @@
450457
</antcall>
451458

452459
<antcall target="unzip">
453-
<param name="archive_file" value="./libastylej-2.05.1-3.zip" />
454-
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-3.zip" />
460+
<param name="archive_file" value="./libastylej-2.05.1-4.zip" />
461+
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-4.zip" />
455462
<param name="final_folder" value="${staging_folder}/libastylej-2.05.1" />
456463
<param name="dest_folder" value="${staging_folder}" />
457464
</antcall>
@@ -638,8 +645,8 @@
638645

639646
<target name="linux-libastyle-x86" depends="linux-build" description="Download libastyle.so for x86/x64 arch">
640647
<antcall target="unzip">
641-
<param name="archive_file" value="./libastylej-2.05.1-3.zip" />
642-
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-3.zip" />
648+
<param name="archive_file" value="./libastylej-2.05.1-4.zip" />
649+
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-4.zip" />
643650
<param name="final_folder" value="${staging_folder}/libastylej-2.05.1" />
644651
<param name="dest_folder" value="${staging_folder}" />
645652
</antcall>
@@ -663,8 +670,8 @@
663670

664671
<target name="linux-libastyle-arm" depends="linux-build" description="Download libastyle.so for ARM">
665672
<antcall target="unzip">
666-
<param name="archive_file" value="./libastylej-2.05.1-3.zip" />
667-
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-3.zip" />
673+
<param name="archive_file" value="./libastylej-2.05.1-4.zip" />
674+
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-4.zip" />
668675
<param name="final_folder" value="${staging_folder}/libastylej-2.05.1" />
669676
<param name="dest_folder" value="${staging_folder}" />
670677
</antcall>
@@ -704,6 +711,48 @@
704711
</antcall>
705712
</target>
706713

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

759808
<target name="linuxarm-run" depends="build,start"/>
760809

810+
<target name="linuxaarch64-run" depends="build,start"/>
811+
761812
<target name="linux32-start">
762813
<exec executable="./linux/work/arduino" spawn="false" failonerror="true"/>
763814
</target>
@@ -770,6 +821,10 @@
770821
<exec executable="./linux/work/arduino" spawn="false" failonerror="true"/>
771822
</target>
772823

824+
<target name="linuxaarch64-start">
825+
<exec executable="./linux/work/arduino" spawn="false" failonerror="true"/>
826+
</target>
827+
773828
<target name="build-arduino-builder" unless="no_arduino_builder">
774829
<delete dir="${staging_folder}/arduino-builder-${platform}" includeemptydirs="true"/>
775830
<mkdir dir="${staging_folder}/arduino-builder-${platform}"/>
@@ -901,6 +956,9 @@
901956
<target name="linuxarm-dist" depends="linux-dist"
902957
description="Build .tar.xz of linux armhf version" />
903958

959+
<target name="linuxaarch64-dist" depends="linux-dist"
960+
description="Build .tar.xz of linux aarch64 version" />
961+
904962
<!-- - - - - - - - -->
905963
<!-- Windows -->
906964
<!-- - - - - - - - -->
@@ -978,8 +1036,8 @@
9781036
<antcall target="windows-build-avr-toolchain" />
9791037

9801038
<antcall target="unzip">
981-
<param name="archive_file" value="./libastylej-2.05.1-3.zip" />
982-
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-3.zip" />
1039+
<param name="archive_file" value="./libastylej-2.05.1-4.zip" />
1040+
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-4.zip" />
9831041
<param name="final_folder" value="${staging_folder}/libastylej-2.05.1" />
9841042
<param name="dest_folder" value="${staging_folder}" />
9851043
</antcall>

build/libastylej-2.05.1-4.zip.sha

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
821c2b8c7560f9ff934b052e2b26eaeca05ea28f

build/liblistSerials-1.4.0-2.zip.sha

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
79311e47bfc3bbde9cb907760008b5bc91414ba7
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
4a4df0746debf7768a5ffae7201d533d0ca79685
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
b21e4b06af3a045762276b7705508896f33a4757
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
40cc1a87ae550c958735d485e05c79be320f0ae1

0 commit comments

Comments
 (0)