Skip to content

Commit ea80402

Browse files
committed
Updated ARM gcc to 4.7.4. Added native 64 bit version for linux (no more ia32-libs needed).
Fixes #1474
1 parent b0332f0 commit ea80402

6 files changed

+40
-42
lines changed

build/build.xml

+35-40
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,10 @@
1111
<condition property="linux32"><os family="unix" arch="i386" /></condition>
1212
<condition property="linux64"><os family="unix" arch="amd64" /></condition>
1313

14-
<condition property="platform"
15-
value="macosx"><os family="mac" /></condition>
16-
<condition property="platform"
17-
value="windows"><os family="windows" /></condition>
18-
<condition property="platform"
19-
value="linux32"><os family="unix" arch="i386" /></condition>
20-
<condition property="platform"
21-
value="linux64"><os family="unix" arch="amd64" /></condition>
14+
<condition property="platform" value="macosx"><os family="mac" /></condition>
15+
<condition property="platform" value="windows"><os family="windows" /></condition>
16+
<condition property="platform" value="linux32"><os family="unix" arch="i386" /></condition>
17+
<condition property="platform" value="linux64"><os family="unix" arch="amd64" /></condition>
2218

2319
<!-- Libraries required for running arduino -->
2420
<fileset dir=".." id="runtime.jars">
@@ -440,7 +436,7 @@
440436
<fail message="wrong platform (${os.name})" />
441437
</target>
442438

443-
<target name="linux-build" depends="revision-check, linux-checkos, subprojects-build, linux-check-arm-toolchain" description="Build linux version">
439+
<target name="linux-build" depends="revision-check, linux-checkos, subprojects-build" description="Build linux version">
444440
<mkdir dir="linux/work" />
445441

446442
<copy todir="linux/work">
@@ -475,11 +471,16 @@
475471

476472
<copy todir="linux/work" file="linux/dist/arduino" />
477473
<chmod perm="755" file="linux/work/arduino" />
478-
479-
<antcall target="linux-unzip-arm-toolchain" />
480474
</target>
481475

482476
<target name="linux32-build" depends="linux-build" description="Build linux (32-bit) version">
477+
<!-- Unzip ARM tools -->
478+
<antcall target="linux-unzip-arm-toolchain">
479+
<param name="dist_file" value="gcc-arm-none-eabi-4.7.4-2013q2-linux32.tar.gz" />
480+
<param name="dist_url" value="http://arduino.googlecode.com/files/gcc-arm-none-eabi-4.7.4-2013q2-linux32.tar.gz" />
481+
<param name="dist_check_file" value="gcc-arm-none-eabi-4.7.4-2013q2" />
482+
</antcall>
483+
483484
<!-- Unzip AVR tools -->
484485
<exec executable="tar" dir="linux/work/hardware">
485486
<arg value="-xjf"/>
@@ -493,67 +494,61 @@
493494

494495
<chmod perm="755" file="linux/work/hardware/tools/avrdude" />
495496

497+
<!-- Unzip ARM tools -->
498+
<antcall target="linux-unzip-arm-toolchain">
499+
<param name="dist_file" value="gcc-arm-none-eabi-4.7.4-2013q2-linux64.tar.gz" />
500+
<param name="dist_url" value="http://arduino.googlecode.com/files/gcc-arm-none-eabi-4.7.4-2013q2-linux64.tar.gz" />
501+
<param name="dist_check_file" value="gcc-arm-none-eabi-4.7.4-2013q2" />
502+
</antcall>
503+
496504
<!-- Unzip AVR tools -->
497505
<exec executable="tar" dir="linux/work/hardware">
498506
<arg value="-xjf"/>
499507
<arg value="../../avr_tools_linux64.tar.bz2"/>
500508
</exec>
501509
</target>
502510

503-
<target name="linux32-run" depends="linux32-build"
504-
description="Run Linux (32-bit) version">
511+
<target name="linux32-run" depends="linux32-build" description="Run Linux (32-bit) version">
505512
<exec executable="./linux/work/arduino" spawn="false"/>
506513
</target>
507514

508-
<target name="linux64-run" depends="linux64-build"
509-
description="Run Linux (64-bit) version">
515+
<target name="linux64-run" depends="linux64-build" description="Run Linux (64-bit) version">
510516
<exec executable="./linux/work/arduino" spawn="false"/>
511517
</target>
512518

513-
<target name="linux-check-arm-toolchain-distfile">
514-
<available file="linux/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-linux32.tar.gz" property="arm_distfile_available" />
515-
</target>
516-
517-
<target name="linux-get-arm-toolchain" depends="linux-check-arm-toolchain-distfile" unless="arm_distfile_available">
518-
<!-- Retrieve ARM toolchain -->
519-
<get
520-
src="http://arduino.googlecode.com/files/gcc-arm-none-eabi-4.4.1-2010q1-188-linux32.tar.gz"
521-
dest="linux/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-linux32.tar.gz"
522-
verbose="true" />
519+
<!-- Set 'arm_disfile_available' property if ARM toolchain dist_file is downloaded -->
520+
<!-- Set 'arm_toolchain_installed' property if ARM toolchain is installed in working directory -->
521+
<target name="linux-check-arm-toolchain">
522+
<available file="linux/dist/${dist_file}" property="arm_distfile_available" />
523+
<available file="linux/work/hardware/tools/${dist_check_file}" property="arm_toolchain_installed" />
523524
</target>
524525

525-
<target name="linux-check-arm-toolchain">
526-
<available file="linux/work/hardware/tools/g++_arm_none_eabi" property="arm_available" />
526+
<!-- Retrieve ARM toolchain -->
527+
<target name="linux-get-arm-toolchain" depends="linux-check-arm-toolchain" unless="arm_distfile_available">
528+
<get src="${dist_url}" dest="linux/dist/${dist_file}" verbose="true" />
527529
</target>
528530

529-
<target name="linux-unzip-arm-toolchain" depends="linux-get-arm-toolchain, linux-check-arm-toolchain" unless="arm_available">
530-
<checksum file="linux/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-linux32.tar.gz" algorithm="sha"
531+
<target name="linux-unzip-arm-toolchain" depends="linux-get-arm-toolchain, linux-check-arm-toolchain"
532+
unless="arm_toolchain_installed">
533+
<checksum file="linux/dist/${dist_file}" algorithm="sha"
531534
fileext=".sha" verifyproperty="checksum.matches"/>
532535
<condition property="checksum.matches.fail">
533536
<equals arg1="${checksum.matches}" arg2="false"/>
534537
</condition>
535538
<fail if="checksum.matches.fail">Checksum failed.
536539

537-
File gcc-arm-none-eabi-4.4.1-2010q1-188-linux32.tar.gz failed checksum.
538-
Please remove "linux/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-linux32.tar.gz" to download it again.
540+
File ${dist_file} failed checksum.
541+
Please remove "linux/dist/${dist_file}" to download it again.
539542
</fail>
540543

541544
<!-- Unzip toolchain to the destination folder -->
542545
<exec executable="tar" output="/dev/null" os="Linux">
543546
<arg value="xfz"/>
544-
<arg value="linux/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-linux32.tar.gz"/>
547+
<arg value="linux/dist/${dist_file}"/>
545548
<arg value="--directory=linux/work/hardware/tools"/>
546549
</exec>
547550
</target>
548551

549-
<target name="linux64-get-arm-toolchain" depends="linux-check-arm-toolchain-distfile" unless="arm_distfile_available">
550-
<antcall target="linux-get-arm-toolchain" />
551-
</target>
552-
553-
<target name="linux64-unzip-arm-toolchain" depends="linux-get-arm-toolchain" unless="arm_available">
554-
<antcall target="linux-unzip-arm-toolchain" />
555-
</target>
556-
557552
<target name="linux-dist" depends="build"
558553
description="Build .tar.gz of linux version">
559554

build/linux/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-linux32.tar.gz.sha

-1
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
b35a6b9b1066977509ad5dcf51936b7a6bb18c18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
14afebbb1a26b799237080ec32b300a409ff99cb

build/shared/revisions.txt

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ ARDUINO 1.5.3 BETA
77
* Added support for new 1.5 Library format (https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification)
88
* Pass board type from boards.txt (https://github.com/arduino/Arduino/issues/308)
99
* Display estimated RAM usage after compile (Loren M. Lang)
10+
* Updated arm gcc to 4.7.4 for linux
11+
* ARM gcc doesn't require ia32-libs anymore on 64 bits linux systems
1012

1113
[arduino core]
1214
* sam: Fixed delayMicrosecond() when interrupts are disabled

hardware/arduino/sam/platform.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ version=1.5.3
1010
# SAM3 compile variables
1111
# ----------------------
1212

13-
compiler.path={runtime.ide.path}/hardware/tools/g++_arm_none_eabi/bin/
13+
compiler.path={runtime.ide.path}/hardware/tools/gcc-arm-none-eabi-4.7.4-2013q2/bin/
1414
compiler.c.cmd=arm-none-eabi-gcc
1515
compiler.c.flags=-c -g -Os -w -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -Dprintf=iprintf
1616
compiler.c.elf.cmd=arm-none-eabi-g++

0 commit comments

Comments
 (0)