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
Apache/2.2.29 (Linux/SUSE) Server at volker.top.geek.nz Port 80Name 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