This directory contains spec files and scripts used for creating rpms of the
latest 4.x gcc releases for openSUSE 12.3.
http://volker.top.geek.nz/arduino/tools/suse12.3/
The packages are compiled for prefix /usr.
Package building was on openSUSE 12.3 using rpmbuild.
Steps:
* Remove all AVR packages.
* Install cross-avr-binutils from the OSS(!!!!) repo.
* Build + install avr-gcc-482.
* Build avr-libc.
* Uninstall all avr-gcc-X, avr-libc, and build the other compiler versions.
I don't know whether the compilers can be built with any avr-gcc found in PATH,
so it's safer not to.
Notes:
* Building avr-gcc does NOT depend on avr-libc.
* The "cross-" package name prefix is silly, serves no useful purpose and is
just a PITA.
* The avr-binutils get their "cross-" prefix from the maintainer in the OSS
repo.
* Using wrapper scripts (see
https://bugzilla.novell.com/show_bug.cgi?id=767294) is a bad headache, and
not required.
* A goal is to be able to install multiple avr-gcc versions in parallel.
* All these compilers are vanilla gcc packages, no patches.
* I am getting substantially smaller binaries with the later gcc versions, and
the avr-gcc maintainer says the latest are the best optimised and the least
buggy (fixes are not backported). I don't know why the Arduino people hold
on to this massively obsolete 4.3.2.
* The avr-gcc maintainer says LTO is not expected to work with AVR, but it
works for me and the additional (over non-LTO)code space saving is also
substantial. YMMV, but it's definitely worth a try!
Issues to decide:
* One of the compiler packages should be built with noversion_symlink set to
1, so avr-gcc etc. symlinks are created in /usr/bin. Only one such package
can be installed.
* The AVR repo contains an avr-gcc 4.3.3 version with several patches applied.
I don't know to what extent these patches are required or useful. The
Arduino IDE 1.0.5 ships with avr-gcc 4.3.2 and I don't know how many patches
to that. If the aim was to have the default compiler in the AVR repo match
what the Arduino official IDE uses then that's a fail.
Volker Kuhlmann, 23 Oct 2013
Name Last modified Size Description
Parent Directory -
00-README 23-Oct-2013 17:53 2.1K README file
avr-gcc-436-4.3.6-18.spec 23-Oct-2013 15:16 23K Spec files for rpm
avr-gcc-436-rpmlintrc 16-Nov-2011 22:14 375 Needed with the spec file
avr-gcc-454-4.5.4-18.spec 24-Oct-2013 20:57 23K Spec files for rpm
avr-gcc-454-rpmlintrc 16-Nov-2011 22:14 375 Needed with the spec file
avr-gcc-464-4.6.4-18.spec 23-Oct-2013 15:12 23K Spec files for rpm
avr-gcc-464-rpmlintrc 16-Nov-2011 22:14 375 Needed with the spec file
avr-gcc-473-4.7.3-18.spec 23-Oct-2013 15:11 23K Spec files for rpm
avr-gcc-473-rpmlintrc 16-Nov-2011 22:14 375 Needed with the spec file
avr-gcc-482-4.8.2-18.spec 23-Oct-2013 15:10 23K Spec files for rpm
avr-gcc-482-4.8.2-18.x86_64.log.lzma 23-Oct-2013 16:06 123K Log file, compressed
avr-gcc-482-rpmlintrc 16-Nov-2011 22:14 375 Needed with the spec file
avr-libc-1.8.0-9.spec 23-Oct-2013 15:18 13K Spec files for rpm
avr-libc-1.8.0-9.x86_64.log.lzma 23-Oct-2013 16:26 63K Log file, compressed
avr-libc-rpmlintrc 30-Nov-2010 01:51 438 Needed with the spec file
run-avr-gcc 05-Sep-2013 23:15 1.4K Wrapper script for running gcc
Apache/2.2.29 (Linux/SUSE) Server at volker.top.geek.nz Port 80