Hello community, here is the log from the commit of package cross-avr-binutils for openSUSE:Factory checked in at Mon Jul 19 20:34:14 CEST 2010. -------- New Changes file: --- /dev/null 2010-05-08 11:31:08.000000000 +0200 +++ /mounts/work_src_done/STABLE/cross-avr-binutils/cross-avr-binutils.changes 2010-03-04 23:48:36.000000000 +0100 @@ -0,0 +1,7 @@ +------------------------------------------------------------------- +Thu Mar 4 22:47:02 UTC 2010 - jw@novell.com + +- Release: 25jan2010 +- using build instructions from + http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=42631 + calling whatdependson for head-i586 New: ---- binutils-2.19.1.tar.bz2 binutils-patch-aa.diff binutils-patch-avr-size.diff binutils-patch-avr25-wraparound-reloc.diff binutils-patch-coff-avr.diff binutils-patch-data-origin.diff binutils-patch-newdevices.diff binutils-patch-newsections.diff binutils-patch-xmega.diff binutils-patch-zzz-atmega128rfa1.diff buildavr-no-insight.sh cross-avr-binutils.changes cross-avr-binutils.spec get-patches.sh getfiles.sh hotfix.txt ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cross-avr-binutils.spec ++++++ # # spec file for package cross-avr-binutils (Version 2.19.1) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild %define prefix /opt/cross/avr Name: cross-avr-binutils Version: 2.19.1 Release: 1 Summary: Atmel AVR binutils with xmega support BuildRequires: expat libexpat-devel libmpfr1 texinfo BuildRequires: bison dejagnu flex gcc-c++ %if 0%{?suse_version} > 1110 BuildRequires: zlib-devel-static %else BuildRequires: zlib-devel %endif Source0: ftp://ftp.dkuug.dk/pub/gnu/ftp/gnu/binutils/binutils-2.19.1.tar.bz2 Source1: buildavr-no-insight.sh Source2: getfiles.sh Source3: get-patches.sh Source4: hotfix.txt Patch1: binutils-patch-aa.diff Patch2: binutils-patch-coff-avr.diff Patch3: binutils-patch-data-origin.diff Patch4: binutils-patch-newdevices.diff Patch5: binutils-patch-newsections.diff Patch6: binutils-patch-xmega.diff Patch7: binutils-patch-zzz-atmega128rfa1.diff Patch8: binutils-patch-avr25-wraparound-reloc.diff Patch9: binutils-patch-avr-size.diff Url: http://sourceware.org/insight/index.php Group: Development/Libraries/C and C++ License: BSD3c AutoReqProv: on BuildRoot: %{_tmppath}/%{name}-%{version}-build %description Atmel AVR binutils with xmega support build instructions from http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=42631 %prep %setup -n binutils-%{version} cp %SOURCE1 . cp %SOURCE2 . cp %SOURCE3 . cp %SOURCE4 . %patch1 -p0 %patch2 -p0 %patch3 -p0 %patch4 -p0 %patch5 -p0 %patch6 -p0 %patch7 -p0 %patch8 -p0 %patch9 -p0 %build export CFLAGS="$RPM_OPT_FLAGS" export target=avr echo "($0) configuring binutils source" ./configure -v --target=${target} \ --prefix=%prefix --mandir=%prefix/share/man --infodir=%prefix/share/info --with-gnu-ld --with-gnu-as --quiet --enable-install-libbfd --with-dwarf2 --disable-werror CFLAGS="-Wno-format-security $RPM_OPT_FLAGS" make all chmod 644 *.sh %install # simulavrxx needs bfd.h so better keep this include directory # rm -rf $RPM_BUILD_ROOT%{_prefix}/include # gnu tools honor DESTDIR; # itcl Makefile has DESTDIR, but it cannot be set from ouside. # tcl Makefile has INSTALL_ROOT, but it cannot be set from ouside, and is missing a few times #sed -i.orig -e 's@^INSTALL_ROOT[ ]*=$@INSTALL_ROOT = '$RPM_BUILD_ROOT'@' tcl/unix/Makefile make install DESTDIR=$RPM_BUILD_ROOT INSTALL_ROOT=$RPM_BUILD_ROOT gzip $RPM_BUILD_ROOT/%prefix/share/man/man1/*.1 install -d $RPM_BUILD_ROOT/usr/bin for i in avr-addr2line avr-ar avr-as avr-c++filt avr-gprof avr-ld avr-nm avr-objcopy avr-objdump avr-ranlib avr-readelf avr-size avr-strings avr-strip do ln -s %prefix/bin/$i $RPM_BUILD_ROOT/usr/bin done install -d $RPM_BUILD_ROOT/usr/share/man/man1 for i in avr-addr2line avr-ar avr-as avr-c++filt avr-dlltool avr-gprof avr-ld avr-nlmconv avr-nm avr-objcopy avr-objdump avr-ranlib avr-readelf avr-size avr-strings avr-strip avr-windmc avr-windres do ln -s %prefix/share/man/man1/$i.1.gz $RPM_BUILD_ROOT/usr/share/man/man1 done %clean rm -rf $RPM_BUILD_ROOT %files %defattr (-, root, root) %doc hotfix.txt getfiles.sh get-patches.sh buildavr-no-insight.sh COPYING* /opt/cross /usr/bin/* /usr/share/man/man1/* %changelog ++++++ binutils-patch-aa.diff ++++++ --- bfd/Makefile.in | 3 ++- etc/Makefile.in | 3 ++- libiberty/Makefile.in | 3 ++- opcodes/Makefile.in | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) Index: bfd/Makefile.in =================================================================== --- bfd/Makefile.in.orig +++ bfd/Makefile.in @@ -1222,7 +1222,8 @@ installdirs-am: for dir in "$(DESTDIR)$(bfdlibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done -install: install-recursive +#install: install-recursive +install: install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive Index: etc/Makefile.in =================================================================== --- etc/Makefile.in.orig +++ etc/Makefile.in @@ -64,7 +64,8 @@ PDFFILES = standards.pdf configure.pdf HTMLFILES = standards.html configure.html all: info -install: install-info +#install: install-info +install: uninstall: Index: libiberty/Makefile.in =================================================================== --- libiberty/Makefile.in.orig +++ libiberty/Makefile.in @@ -346,7 +346,8 @@ libiberty.html : $(srcdir)/libiberty.tex @MAINT@ echo stamp > stamp-functions INSTALL_DEST = @INSTALL_DEST@ -install: install_to_$(INSTALL_DEST) install-subdir +#install: install_to_$(INSTALL_DEST) install-subdir +install: # This is tricky. Even though CC in the Makefile contains # multilib-specific flags, it's overridden by FLAGS_TO_PASS from the Index: opcodes/Makefile.in =================================================================== --- opcodes/Makefile.in.orig +++ opcodes/Makefile.in @@ -879,7 +879,8 @@ installdirs-am: for dir in "$(DESTDIR)$(bfdlibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done -install: install-recursive +#install: install-recursive +install: install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive ++++++ binutils-patch-avr-size.diff ++++++ AVR specific only -------------------------------------------------------------------------------- --- binutils/size.c | 331 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 311 insertions(+), 20 deletions(-) Index: binutils/size.c =================================================================== --- binutils/size.c.orig +++ binutils/size.c @@ -36,10 +36,31 @@ #include "getopt.h" #include "bucomm.h" -#ifndef BSD_DEFAULT -#define BSD_DEFAULT 1 +typedef enum +{ + format_sysv = 0, + format_bsd = 1, + format_avr = 2, +} format_type_t; + + +/* Set the default format. */ +#define FORMAT_DEFAULT_SYSV 0 +#define FORMAT_DEFAULT_BSD 1 +#define FORMAT_DEFAULT_AVR 0 + +#if FORMAT_DEFAULT_SYSV + #define FORMAT_DEFAULT format_sysv + #define FORMAT_NAME "sysv" +#elif FORMAT_DEFAULT_BSD + #define FORMAT_DEFAULT format_bsd + #define FORMAT_NAME "berkeley" +#elif FORMAT_DEFAULT_AVR + #define FORMAT_DEFAULT format_avr + #define FORMAT_NAME "avr" #endif + /* Program options. */ static enum @@ -48,9 +69,8 @@ static enum } radix = decimal; -/* 0 means use AT&T-style output. */ -static int berkeley_format = BSD_DEFAULT; +format_type_t format = FORMAT_DEFAULT; static int show_version = 0; static int show_help = 0; static int show_totals = 0; @@ -64,6 +84,163 @@ static bfd_size_type total_textsize; /* Program exit status. */ static int return_code = 0; + +/* AVR Size specific stuff */ + +#define AVR64 64UL +#define AVR128 128UL +#define AVR256 256UL +#define AVR512 512UL +#define AVR1K 1024UL +#define AVR2K 2048UL +#define AVR4K 4096UL +#define AVR8K 8192UL +#define AVR16K 16384UL +#define AVR24K 24576UL +#define AVR32K 32768UL +#define AVR40K 40960UL +#define AVR64K 65536UL +#define AVR128K 131072UL +#define AVR256K 262144UL + +typedef struct +{ + char *name; + long flash; + long ram; + long eeprom; +} avr_device_t; + +avr_device_t avr[] = +{ + {"atmega2560", AVR256K, AVR8K, AVR4K}, + {"atmega2561", AVR256K, AVR8K, AVR4K}, + {"atxmega256a3", AVR256K, AVR8K, AVR4K}, + {"atxmega256a3b", AVR256K, AVR8K, AVR4K}, + {"atxmega256a3v", AVR256K, AVR8K, AVR4K}, + + {"at43usb320", AVR128K, 608UL, 0}, + {"at90can128", AVR128K, AVR4K, AVR4K}, + {"at90usb1286", AVR128K, AVR8K, AVR4K}, + {"at90usb1287", AVR128K, AVR8K, AVR4K}, + {"atmega128", AVR128K, AVR4K, AVR4K}, + {"atmega1280", AVR128K, AVR8K, AVR4K}, + {"atmega1281", AVR128K, AVR8K, AVR4K}, + {"atmega1284P", AVR128K, AVR16K, AVR4K}, + {"atmega103", AVR128K, 4000UL, AVR4K}, + {"atxmega128a1", AVR128K, AVR8K, AVR2K}, + {"atxmega128a3", AVR128K, AVR16K, AVR2K}, + + {"at90can64", AVR64K, AVR4K, AVR2K}, + {"at90usb646", AVR64K, AVR4K, AVR2K}, + {"at90usb647", AVR64K, AVR4K, AVR2K}, + {"atmega64", AVR64K, AVR4K, AVR2K}, + {"atmega640", AVR64K, AVR8K, AVR4K}, + {"atmega644", AVR64K, AVR4K, AVR2K}, + {"atmega644p", AVR64K, AVR4K, AVR2K}, + {"atmega645", AVR64K, AVR4K, AVR2K}, + {"atmega6450", AVR64K, AVR4K, AVR2K}, + {"atmega649", AVR64K, AVR4K, AVR2K}, + {"atmega6490", AVR64K, AVR4K, AVR2K}, + {"atxmega64a1", AVR64K, AVR4K, AVR2K}, + {"atxmega64a3", AVR64K, AVR4K, AVR2K}, + + {"atmega406", AVR40K, AVR2K, AVR512}, + + {"at90can32", AVR32K, AVR2K, AVR1K}, + {"at94k", AVR32K, AVR4K, 0}, + {"atmega32", AVR32K, AVR2K, AVR1K}, + {"atmega323", AVR32K, AVR2K, AVR1K}, + {"atmega324p", AVR32K, AVR2K, AVR1K}, + {"atmega325", AVR32K, AVR2K, AVR1K}, + {"atmega325p", AVR32K, AVR2K, AVR1K}, + {"atmega3250", AVR32K, AVR2K, AVR1K}, + {"atmega3250p", AVR32K, AVR2K, AVR1K}, + {"atmega328p", AVR32K, AVR2K, AVR1K}, + {"atmega329", AVR32K, AVR2K, AVR1K}, + {"atmega329p", AVR32K, AVR2K, AVR1K}, + {"atmega3290", AVR32K, AVR2K, AVR1K}, + {"atmega3290p", AVR32K, AVR2K, AVR1K}, + {"atmega32hvb", AVR32K, AVR2K, AVR1K}, + {"atmega32c1", AVR32K, AVR2K, AVR1K}, + {"atmega32m1", AVR32K, AVR2K, AVR1K}, + {"atmega32u4", AVR32K, 2560UL, AVR1K}, + {"atmega32u6", AVR32K, 2560UL, AVR1K}, + + {"at43usb355", AVR24K, 1120, 0}, + + {"at76c711", AVR16K, AVR2K, 0}, + {"at90pwm216", AVR16K, AVR1K, AVR512}, + {"at90pwm316", AVR16K, AVR1K, AVR512}, + {"at90usb162", AVR16K, AVR512, AVR512}, + {"atmega16", AVR16K, AVR1K, AVR512}, + {"atmega161", AVR16K, AVR1K, AVR512}, + {"atmega162", AVR16K, AVR1K, AVR512}, + {"atmega163", AVR16K, AVR1K, AVR512}, + {"atmega164", AVR16K, AVR1K, AVR512}, + {"atmega164p", AVR16K, AVR1K, AVR512}, + {"atmega165", AVR16K, AVR1K, AVR512}, + {"atmega165p", AVR16K, AVR1K, AVR512}, + {"atmega168", AVR16K, AVR1K, AVR512}, + {"atmega168p", AVR16K, AVR1K, AVR512}, + {"atmega169", AVR16K, AVR1K, AVR512}, + {"atmega169p", AVR16K, AVR1K, AVR512}, + {"atmega16u4", AVR16K, 1280UL, AVR512}, + {"attiny167", AVR16K, AVR512, AVR512}, + + {"at90c8534", AVR8K, 352, AVR512}, + {"at90pwm1", AVR8K, AVR512, AVR512}, + {"at90pwm2", AVR8K, AVR512, AVR512}, + {"at90pwm2b", AVR8K, AVR512, AVR512}, + {"at90pwm3", AVR8K, AVR512, AVR512}, + {"at90pwm3b", AVR8K, AVR512, AVR512}, + {"at90s8515", AVR8K, AVR512, AVR512}, + {"at90s8535", AVR8K, AVR512, AVR512}, + {"at90usb82", AVR8K, AVR512, AVR512}, + {"atmega8", AVR8K, AVR1K, AVR512}, + {"atmega8515", AVR8K, AVR512, AVR512}, + {"atmega8535", AVR8K, AVR512, AVR512}, + {"atmega88", AVR8K, AVR1K, AVR512}, + {"atmega88p", AVR8K, AVR1K, AVR512}, + {"attiny84", AVR8K, AVR512, AVR512}, + {"attiny85", AVR8K, AVR512, AVR512}, + {"attiny861", AVR8K, AVR512, AVR512}, + {"attiny88", AVR8K, AVR256, AVR64}, + + {"at90s4414", AVR4K, 352, AVR256}, + {"at90s4433", AVR4K, AVR128, AVR256}, + {"at90s4434", AVR4K, 352, AVR256}, + {"atmega48", AVR4K, AVR512, AVR256}, + {"atmega48p", AVR4K, AVR512, AVR256}, + {"attiny43u", AVR4K, AVR256, AVR64}, + {"attiny44", AVR4K, AVR256, AVR256}, + {"attiny45", AVR4K, AVR256, AVR256}, + {"attiny461", AVR4K, AVR256, AVR256}, + {"attiny48", AVR4K, AVR256, AVR64}, + + {"at86rf401", AVR2K, 224, AVR128}, + {"at90s2313", AVR2K, AVR128, AVR128}, + {"at90s2323", AVR2K, AVR128, AVR128}, + {"at90s2333", AVR2K, 224, AVR128}, + {"at90s2343", AVR2K, AVR128, AVR128}, + {"attiny22", AVR2K, 224, AVR128}, + {"attiny2313", AVR2K, AVR128, AVR128}, + {"attiny24", AVR2K, AVR128, AVR128}, + {"attiny25", AVR2K, AVR128, AVR128}, + {"attiny26", AVR2K, AVR128, AVR128}, + {"attiny261", AVR2K, AVR128, AVR128}, + {"attiny28", AVR2K, 0, 0}, + + {"at90s1200", AVR1K, 0, AVR64}, + {"attiny11", AVR1K, 0, AVR64}, + {"attiny12", AVR1K, 0, AVR64}, + {"attiny13", AVR1K, AVR64, AVR64}, + {"attiny15", AVR1K, 0, AVR64}, +}; + +static char *avrmcu = NULL; + + static char *target = NULL; /* Forward declarations. */ @@ -79,7 +256,8 @@ usage (FILE *stream, int status) fprintf (stream, _(" Displays the sizes of sections inside binary files\n")); fprintf (stream, _(" If no input file(s) are specified, a.out is assumed\n")); fprintf (stream, _(" The options are:\n\ - -A|-B --format={sysv|berkeley} Select output style (default is %s)\n\ + -A|-B|-C --format={sysv|berkeley|avr} Select output style (default is %s)\n\ + --mcu=<avrmcu> MCU name for AVR format only\n\ -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n\ -t --totals Display the total sizes (Berkeley only)\n\ --common Display total size for *COM* syms\n\ @@ -88,11 +266,7 @@ usage (FILE *stream, int status) -h --help Display this information\n\ -v --version Display the program's version\n\ \n"), -#if BSD_DEFAULT - "berkeley" -#else - "sysv" -#endif +FORMAT_NAME ); list_supported_targets (program_name, stream); if (REPORT_BUGS_TO[0] && status == 0) @@ -103,6 +277,7 @@ usage (FILE *stream, int status) #define OPTION_FORMAT (200) #define OPTION_RADIX (OPTION_FORMAT + 1) #define OPTION_TARGET (OPTION_RADIX + 1) +#define OPTION_MCU (OPTION_TARGET + 1) static struct option long_options[] = { @@ -110,6 +285,7 @@ static struct option long_options[] = {"format", required_argument, 0, OPTION_FORMAT}, {"radix", required_argument, 0, OPTION_RADIX}, {"target", required_argument, 0, OPTION_TARGET}, + {"mcu", required_argument, 0, 203}, {"totals", no_argument, &show_totals, 1}, {"version", no_argument, &show_version, 1}, {"help", no_argument, &show_help, 1}, @@ -141,7 +317,7 @@ main (int argc, char **argv) bfd_init (); set_default_bfd_target (); - while ((c = getopt_long (argc, argv, "ABHhVvdfotx", long_options, + while ((c = getopt_long (argc, argv, "ABCHhVvdfotx", long_options, (int *) 0)) != EOF) switch (c) { @@ -150,11 +326,15 @@ main (int argc, char **argv) { case 'B': case 'b': - berkeley_format = 1; + format = format_bsd; break; case 'S': case 's': - berkeley_format = 0; + format = format_sysv; + break; + case 'A': + case 'a': + format = format_avr; break; default: non_fatal (_("invalid argument to --format: %s"), optarg); @@ -162,6 +342,10 @@ main (int argc, char **argv) } break; + case OPTION_MCU: + avrmcu = optarg; + break; + case OPTION_TARGET: target = optarg; break; @@ -190,11 +374,14 @@ main (int argc, char **argv) break; case 'A': - berkeley_format = 0; + format = format_sysv; break; case 'B': - berkeley_format = 1; + format = format_bsd; break; + case 'C': + format = format_avr; + break; case 'v': case 'V': show_version = 1; @@ -240,7 +427,7 @@ main (int argc, char **argv) for (; optind < argc;) display_file (argv[optind++]); - if (show_totals && berkeley_format) + if (show_totals && format == format_bsd) { bfd_size_type total = total_textsize + total_datasize + total_bsssize; @@ -599,13 +786,117 @@ print_sysv_format (bfd *file) printf ("\n\n"); } + +static avr_device_t * +avr_find_device (void) +{ + unsigned int i; + if (avrmcu != NULL) + { + for (i = 0; i < sizeof(avr) / sizeof(avr[0]); i++) + { + if (strcmp(avr[i].name, avrmcu) == 0) + { + /* Match found */ + return (&avr[i]); + } + } + } + return (NULL); +} + + + +static void +print_avr_format (bfd *file) +{ + char *avr_name = "Unknown"; + int flashmax = 0; + int rammax = 0; + int eeprommax = 0; + asection *section; + bfd_size_type datasize = 0; + bfd_size_type textsize = 0; + bfd_size_type bsssize = 0; + bfd_size_type bootloadersize = 0; + bfd_size_type noinitsize = 0; + bfd_size_type eepromsize = 0; + + avr_device_t *avrdevice = avr_find_device(); + if (avrdevice != NULL) + { + avr_name = avrdevice->name; + flashmax = avrdevice->flash; + rammax = avrdevice->ram; + eeprommax = avrdevice->eeprom; + } + + if ((section = bfd_get_section_by_name (file, ".data")) != NULL) + datasize = bfd_section_size (file, section); + if ((section = bfd_get_section_by_name (file, ".text")) != NULL) + textsize = bfd_section_size (file, section); + if ((section = bfd_get_section_by_name (file, ".bss")) != NULL) + bsssize = bfd_section_size (file, section); + if ((section = bfd_get_section_by_name (file, ".bootloader")) != NULL) + bootloadersize = bfd_section_size (file, section); + if ((section = bfd_get_section_by_name (file, ".noinit")) != NULL) + noinitsize = bfd_section_size (file, section); + if ((section = bfd_get_section_by_name (file, ".eeprom")) != NULL) + eepromsize = bfd_section_size (file, section); + + bfd_size_type text = textsize + datasize + bootloadersize; + bfd_size_type data = datasize + bsssize + noinitsize; + bfd_size_type eeprom = eepromsize; + + printf ("AVR Memory Usage\n" + "----------------\n" + "Device: %s\n\n", avr_name); + + /* Text size */ + printf ("Program:%8ld bytes", text); + if (flashmax > 0) + { + printf (" (%2.1f%% Full)", ((float)text / flashmax) * 100); + } + printf ("\n(.text + .data + .bootloader)\n\n"); + + /* Data size */ + printf ("Data: %8ld bytes", data); + if (rammax > 0) + { + printf (" (%2.1f%% Full)", ((float)data / rammax) * 100); + } + printf ("\n(.data + .bss + .noinit)\n\n"); + + /* EEPROM size */ + if (eeprom > 0) + { + printf ("EEPROM: %8ld bytes", eeprom); + if (eeprommax > 0) + { + printf (" (%2.1f%% Full)", ((float)eeprom / eeprommax) * 100); + } + printf ("\n(.eeprom)\n\n"); + } +} + + static void print_sizes (bfd *file) { if (show_common) calculate_common_size (file); - if (berkeley_format) - print_berkeley_format (file); - else - print_sysv_format (file); + switch (format) + { + case format_sysv: + print_sysv_format (file); + break; + case format_bsd: + print_berkeley_format (file); + break; + case format_avr: + default: + print_avr_format (file); + break; + } } ++++++ binutils-patch-avr25-wraparound-reloc.diff ++++++ --- bfd/elf32-avr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Index: bfd/elf32-avr.c =================================================================== --- bfd/elf32-avr.c.orig +++ bfd/elf32-avr.c @@ -854,10 +854,11 @@ avr_final_link_relocate (reloc_howto_typ { /* Relative distance is too large. */ - /* Always apply WRAPAROUND for avr2 and avr4. */ + /* Always apply WRAPAROUND for avr2, avr25, and avr4. */ switch (bfd_get_mach (input_bfd)) { case bfd_mach_avr2: + case bfd_mach_avr25: case bfd_mach_avr4: break; ++++++ binutils-patch-coff-avr.diff ++++++ ++++ 5663 lines (skipped) ++++++ binutils-patch-data-origin.diff ++++++ --- ld/emulparams/avr1.sh | 1 + ld/emulparams/avr2.sh | 1 + ld/emulparams/avr3.sh | 1 + ld/emulparams/avr4.sh | 1 + ld/emulparams/avr5.sh | 1 + ld/emulparams/avr6.sh | 3 ++- ld/scripttempl/avr.sc | 2 +- 7 files changed, 8 insertions(+), 2 deletions(-) Index: ld/emulparams/avr1.sh =================================================================== --- ld/emulparams/avr1.sh.orig +++ ld/emulparams/avr1.sh @@ -7,5 +7,6 @@ EMBEDDED=yes TEMPLATE_NAME=elf32 TEXT_LENGTH=8K +DATA_ORIGIN=0x800060 DATA_LENGTH=0 EXTRA_EM_FILE=avrelf Index: ld/emulparams/avr2.sh =================================================================== --- ld/emulparams/avr2.sh.orig +++ ld/emulparams/avr2.sh @@ -7,5 +7,6 @@ EMBEDDED=yes TEMPLATE_NAME=elf32 TEXT_LENGTH=8K +DATA_ORIGIN=0x800060 DATA_LENGTH=0xffa0 EXTRA_EM_FILE=avrelf Index: ld/emulparams/avr3.sh =================================================================== --- ld/emulparams/avr3.sh.orig +++ ld/emulparams/avr3.sh @@ -7,5 +7,6 @@ EMBEDDED=yes TEMPLATE_NAME=elf32 TEXT_LENGTH=128K +DATA_ORIGIN=0x800060 DATA_LENGTH=0xffa0 EXTRA_EM_FILE=avrelf Index: ld/emulparams/avr4.sh =================================================================== --- ld/emulparams/avr4.sh.orig +++ ld/emulparams/avr4.sh @@ -7,5 +7,6 @@ EMBEDDED=yes TEMPLATE_NAME=elf32 TEXT_LENGTH=8K +DATA_ORIGIN=0x800060 DATA_LENGTH=0xffa0 EXTRA_EM_FILE=avrelf Index: ld/emulparams/avr5.sh =================================================================== --- ld/emulparams/avr5.sh.orig +++ ld/emulparams/avr5.sh @@ -7,5 +7,6 @@ EMBEDDED=yes TEMPLATE_NAME=elf32 TEXT_LENGTH=128K +DATA_ORIGIN=0x800060 DATA_LENGTH=0xffa0 EXTRA_EM_FILE=avrelf Index: ld/emulparams/avr6.sh =================================================================== --- ld/emulparams/avr6.sh.orig +++ ld/emulparams/avr6.sh @@ -7,5 +7,6 @@ EMBEDDED=yes TEMPLATE_NAME=elf32 TEXT_LENGTH=1024K -DATA_LENGTH=0xffa0 +DATA_ORIGIN=0x800200 +DATA_LENGTH=0xfe00 EXTRA_EM_FILE=avrelf Index: ld/scripttempl/avr.sc =================================================================== --- ld/scripttempl/avr.sc.orig +++ ld/scripttempl/avr.sc @@ -5,7 +5,7 @@ OUTPUT_ARCH(${ARCH}) MEMORY { text (rx) : ORIGIN = 0, LENGTH = $TEXT_LENGTH - data (rw!x) : ORIGIN = 0x800060, LENGTH = $DATA_LENGTH + data (rw!x) : ORIGIN = $DATA_ORIGIN, LENGTH = $DATA_LENGTH eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 64K } ++++++ binutils-patch-newdevices.diff ++++++ --- gas/config/tc-avr.c | 1 + gas/doc/c-avr.texi | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) Index: gas/config/tc-avr.c =================================================================== --- gas/config/tc-avr.c.orig +++ gas/config/tc-avr.c @@ -173,6 +173,7 @@ static struct mcu_type_s mcu_types[] = {"atmega32c1", AVR_ISA_AVR5, bfd_mach_avr5}, {"atmega32m1", AVR_ISA_AVR5, bfd_mach_avr5}, {"atmega32u4", AVR_ISA_AVR5, bfd_mach_avr5}, + {"atmega32u6", AVR_ISA_AVR5, bfd_mach_avr5}, {"at90usb646", AVR_ISA_AVR5, bfd_mach_avr5}, {"at90usb647", AVR_ISA_AVR5, bfd_mach_avr5}, {"at94k", AVR_ISA_94K, bfd_mach_avr5}, Index: gas/doc/c-avr.texi =================================================================== --- gas/doc/c-avr.texi.orig +++ gas/doc/c-avr.texi @@ -67,7 +67,7 @@ atmega323, atmega324p, atmega325, atmega atmega328p, atmega329, atmega329p, atmega3290, atmega3290p, atmega406, atmega64, atmega640, atmega644, atmega644p, atmega645, atmega6450, atmega649, atmega6490, atmega16hva, at90can32, at90can64, at90pwm216, at90pwm316, atmega16u4, -atmega32c1, atmega32m1, atmega32u4, at90usb646, at90usb647, at94k). +atmega32c1, atmega32m1, atmega32u4, atmega32u6, at90usb646, at90usb647, at94k). Instruction set avr51 is for the enhanced AVR core with exactly 128K program memory space (MCU types: atmega128, atmega1280, atmega1281, atmega1284p, ++++++ binutils-patch-newsections.diff ++++++ --- ld/scripttempl/avr.sc | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) Index: ld/scripttempl/avr.sc =================================================================== --- ld/scripttempl/avr.sc.orig +++ ld/scripttempl/avr.sc @@ -4,9 +4,12 @@ OUTPUT_ARCH(${ARCH}) MEMORY { - text (rx) : ORIGIN = 0, LENGTH = $TEXT_LENGTH - data (rw!x) : ORIGIN = $DATA_ORIGIN, LENGTH = $DATA_LENGTH - eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 64K + text (rx) : ORIGIN = 0, LENGTH = $TEXT_LENGTH + data (rw!x) : ORIGIN = $DATA_ORIGIN, LENGTH = $DATA_LENGTH + eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 64K + fuse (rw!x) : ORIGIN = 0x820000, LENGTH = 1K + lock (rw!x) : ORIGIN = 0x830000, LENGTH = 1K + signature (rw!x) : ORIGIN = 0x840000, LENGTH = 1K } SECTIONS @@ -196,6 +199,24 @@ SECTIONS ${RELOCATING+ __eeprom_end = . ; } } ${RELOCATING+ > eeprom} + .fuse ${RELOCATING-0}: + { + KEEP(*(.fuse)) + KEEP(*(.lfuse)) + KEEP(*(.hfuse)) + KEEP(*(.efuse)) + } ${RELOCATING+ > fuse} + + .lock ${RELOCATING-0}: + { + KEEP(*(.lock*)) + } ${RELOCATING+ > lock} + + .signature ${RELOCATING-0}: + { + KEEP(*(.signature*)) + } ${RELOCATING+ > signature} + /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } ++++++ binutils-patch-xmega.diff ++++++ ++++ 700 lines (skipped) ++++++ binutils-patch-zzz-atmega128rfa1.diff ++++++ --- gas/config/tc-avr.c | 1 + gas/doc/c-avr.texi | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) Index: gas/config/tc-avr.c =================================================================== --- gas/config/tc-avr.c.orig +++ gas/config/tc-avr.c @@ -189,6 +189,7 @@ static struct mcu_type_s mcu_types[] = {"atmega1280", AVR_ISA_AVR51, bfd_mach_avr51}, {"atmega1281", AVR_ISA_AVR51, bfd_mach_avr51}, {"atmega1284p",AVR_ISA_AVR51, bfd_mach_avr51}, + {"atmega128rfa1",AVR_ISA_AVR51, bfd_mach_avr51}, {"at90can128", AVR_ISA_AVR51, bfd_mach_avr51}, {"at90usb1286",AVR_ISA_AVR51, bfd_mach_avr51}, {"at90usb1287",AVR_ISA_AVR51, bfd_mach_avr51}, Index: gas/doc/c-avr.texi =================================================================== --- gas/doc/c-avr.texi.orig +++ gas/doc/c-avr.texi @@ -71,7 +71,7 @@ atmega32c1, atmega32m1, atmega32u4, atme Instruction set avr51 is for the enhanced AVR core with exactly 128K program memory space (MCU types: atmega128, atmega1280, atmega1281, atmega1284p, -at90can128, at90usb1286, at90usb1287). +atmega128rfa1, at90can128, at90usb1286, at90usb1287). Instruction set avr6 is for the enhanced AVR core with a 3-byte PC (MCU types: atmega2560, atmega2561). ++++++ buildavr-no-insight.sh ++++++ #!/bin/bash # AVR GNU development tools install script # $Id: buildavr.sh,v 1.21 2004/11/09 02:25:48 rmoffitt Exp $ # Modified by AJ Erasmus 2005/03/22 # Use the same source and patches as for WinAVR 20050214 # Updated script to compile the C and C++ compilers, as well # as allow the output of dwarf-2 debug information 2005/03/25 # Updated script to add new devices 2005/03/26 # Copyright (C) 2003-2004 Rod Moffitt rod@rod.info http://rod.info # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # run the script as is to get a list of the files necessary to build, # takes optionally three arguments, the location of the source files, # where to install and build the tools and the path where to output a # log file # start of configuration, edit these defaults to suit your environment, or # simply override them via the command line - you will need write # permission to $prefix (make sure it's empty or non-existent!) # location of source tarballs archive=${PWD} # GNU tools will be installed under this directory #prefix=$archive/avr prefix=/usr/local/avr # build log file - see this if any errors occur buildlog=/tmp/buildavr.log # end of configuration # what are we building for? target=avr # the files below shouldn't be changed unless a new release has been made # and I (Rod) haven't updated this script! avaricever=2.10 avaricebase=avarice-${avaricever} avaricetar=${avaricebase}.tar.bz2 avrdudever=5.10 avrdudebase=avrdude-${avrdudever} avrdudetar=${avrdudebase}.tar.gz binutilsver=2.19.1 binutilsbase=binutils-${binutilsver} binutilstar=${binutilsbase}.tar.bz2 sourcefiles="${sourcefiles} ${binutilstar} binutils-patch-aa.diff binutils-patch-newsections.diff binutils-patch-avr-size.diff binutils-patch-coff-avr.diff binutils-patch-xmega.diff binutils-patch-data-origin.diff binutils-patch-zzz-atmega128rfa1.diff binutils-patch-newdevices.diff binutils-patch-avr25-wraparound-reloc.diff" gmpver=4.3.1 gmpbase=gmp-${gmpver} gmptar=${gmpbase}.tar.bz2 mpfrver=4.3.1 mpfrbase=gmp-${mpfrver} mpfrtar=${mpfrbase}.tar.bz2 gccver=4.3.3 gcccore=gcc-${gccver} gcccoretar=${gcccore}.tar.bz2 gccbase=gcc-${gccver} sourcefiles="${sourcefiles} ${gcccoretar} gcc-patch-avr-libgcc.S.diff gcc-patch-libiberty-Makefile.in.diff gcc-patch-bug11259.diff gcc-patch-newdevices.diff gcc-patch-bug19636-24894-31644-31786.diff gcc-patch-xmega.diff gcc-patch-bug33009.diff gcc-patch-xx-os_main.diff gcc-patch-bug34210-35508.diff gcc-patch-bug35013.diff" avrlibcver=1.6.7 avrlibcbase=avr-libc-${avrlibcver} avrlibctar=${avrlibcbase}.tar.bz2 sourcefiles="${sourcefiles} ${avrlibctar}" function buildandinstall() { mkdir -p $prefix/source $prefix/build cd $prefix/source echo "($0) installing avarice source" tar xvjf $archive/${avaricetar} cerror "avarice source installation failed" cd ${avaricebase} echo "($0) patching avarice source" # patch -p0 < $archive/avarice-2.10-bug2812023.patch cerror "avarice patching failed" mkdir -p ../../build/${avaricebase} cd ../../build/${avaricebase} echo "($0) configuring avarice source" ../../source/${avaricebase}/configure -v --prefix=$prefix #--with-gnu-ld --with-gnu-as --quiet --enable-install-libbfd --with-dwarf2 cerror "avarice configuration failed" echo "($0) building avarice" make all install clean cerror "avarice build failed" # # # cd $prefix/source echo "($0) installing ardude source" tar xvzf $archive/${avrdudetar} cerror "avrdude source installation failed" cd ${avrdudebase} # # # echo "($0) patching avrdude source" # # patch -p1 < $archive/avrdude-5.8-xprog-fix.patch # patch -p0 < $archive/avrdude-5.8-bug27507.patch # cerror "avrdude patching failed" # mkdir -p ../../build/${avrdudebase} cd ../../build/${avrdudebase} echo "($0) configuring avrdude source" ../../source/${avrdudebase}/configure -v --prefix=$prefix #--with-gnu-ld --with-gnu-as --quiet --enable-install-libbfd --with-dwarf2 cerror "avrdude configuration failed" echo "($0) building avrdude" make all install clean cerror "avrdude build failed" # # # cd $prefix/source echo "($0) installing binutils source" tar xvjf $archive/${binutilstar} cerror "binutils source installation failed" cd ${binutilsbase} echo "($0) patching binutils source" # patch -p0 < $archive/binutils-patch-aa.diff cerror "binutils patching failed" # patch -p0 < $archive/binutils-patch-coff-avr.diff cerror "binutils patching failed" # patch -p0 < $archive/binutils-patch-data-origin.diff cerror "binutils patching failed" # patch -p0 < $archive/binutils-patch-newdevices.diff cerror "binutils patching failed" # patch -p0 < $archive/binutils-patch-newsections.diff cerror "binutils patching failed" # # Skip below patch , it's included in binutils2.19.1 # patch -p0 < $archive/binutils-patch-wrong-arch.diff # cerror "binutils patching failed" # patch -p0 < $archive/binutils-patch-xmega.diff cerror "binutils patching failed" # patch -p0 < $archive/binutils-patch-zzz-atmega128rfa1.diff cerror "binutils patching failed" # # Apply EW's AVR25 Architecture patch patch -p0 < $archive/binutils-patch-avr25-wraparound-reloc.diff cerror "binutils patching failed" # patch -p0 < $archive/binutils-patch-avr-size.diff cerror "binutils patching failed" # # mkdir -p ../../build/${binutilsbase} cd ../../build/${binutilsbase} echo "($0) configuring binutils source" ../../source/${binutilsbase}/configure -v --target=${target} \ --prefix=$prefix --with-gnu-ld --with-gnu-as --quiet --enable-install-libbfd --with-dwarf2 --disable-werror CFLAGS="-Wno-format-security " cerror "binutils configuration failed" echo "($0) building binutils" make all install clean cerror "binutils build failed" # # path to the newly installed binutils is needed to build GCC # PATH=$prefix/bin:$PATH # two lines below special for Ubuntu LD_LIBRARY_PATH=$PREFIX/lib:$LD_LIBRARY_PATH LD_RUN_PATH=$PREFIX/lib:$LD_RUN_PATH export PATH export LD_LIBRARY_PATH export LD_RUN_PATH cd $prefix/source echo "($0) installing GMP source" tar xvjf $archive/${gmptar} cerror "GMP source installation failed" echo "($0) installing mpfr source" tar xvjf $archive/${mpfrtar} cerror "MPFR source installation failed" echo "($0) installing GCC source" tar xvjf $archive/${gcccoretar} cerror "GCC source installation failed" # # Copy GMP & MPFR sources into GCC directory # rm -rf ${gccbase}/gmp rm -rf ${gccbase}/mpfr mkdir -p ${gccbase}/gmp mkdir -p ${gccbase}/mpfr cp -rfp ${gmpbase}/* ${gccbase}/gmp cp -rfp ${mpfrbase}/* ${gccbase}/mpfr # cd $prefix/source cd ${gccbase} # # echo "($0) patching GCC source" patch -p0 < $archive/gcc-patch-avr-libgcc.S.diff cerror "GCC patching failed" # echo "($0) patching GCC source" patch -p0 < $archive/gcc-patch-bug11259.diff cerror "GCC patching failed" # echo "($0) patching GCC source" patch -p0 < $archive/gcc-patch-bug19636-24894-31644-31786.diff cerror "GCC patching failed" # echo "($0) patching GCC source" patch -p0 < $archive/gcc-patch-bug33009.diff cerror "GCC patching failed" # echo "($0) patching GCC source" patch -p0 < $archive/gcc-patch-bug34210-35508.diff cerror "GCC patching failed" # echo "($0) patching GCC source" patch -p0 < $archive/gcc-patch-bug35013.diff cerror "GCC patching failed" # echo "($0) patching GCC source" patch -p0 < $archive/gcc-patch-libiberty-Makefile.in.diff cerror "GCC patching failed" # echo "($0) patching GCC source" patch -p0 < $archive/gcc-patch-newdevices.diff cerror "GCC patching failed" # echo "($0) patching GCC source" patch -p0 < $archive/gcc-patch-xmega.diff cerror "GCC patching failed" # echo "($0) patching GCC source" patch -p0 < $archive/gcc-patch-xx-os_main.diff cerror "GCC patching failed" # mkdir -p ../../build/${gcccore} cd ../../build/${gcccore} echo "($0) configuring GCC source" ../../source/${gccbase}/configure -v --target=${target} --disable-nls \ --prefix=$prefix --with-gnu-ld --with-gnu-as --enable-languages="c,c++" --disable-libssp --with-dwarf2 cerror "GCC configuration failed" echo "($0) building GCC" # make all install clean LANGUAGES="c obj-c++" make all install clean LANGUAGES="c c++" cerror "GCC build failed" # # # cd $prefix/source echo "($0) installing libc" tar xvjf $archive/${avrlibctar} cerror "libc source installation failed" cd $avrlibcbase # sh reconf # sh doconf # ./bootstrap # cerror "libc source setup failed" mkdir -p ../../build/${avrlibcbase} cd ../../build/${avrlibcbase} echo "($0) configuring libc source" CC=$prefix/bin/avr-gcc ../../source/${avrlibcbase}/configure -v \ --build=`../../source/${avrlibcbase}/config.guess` --target=${target} --host=avr --prefix=$prefix --quiet cerror "libc configuration failed" echo "($0) building libc" make all install clean cerror "libc build failed" # strip all the binaries find $prefix -type d -name bin -exec find \{\} -type f \; | xargs strip > /dev/null 2>&1 cecho "\n" cecho "${cyan}installation of ${target} GNU tools complete\n" cecho "${cyan}add ${GREEN}$prefix/bin${cyan} to your path to use the ${target} GNU tools\n" cecho "${cyan}you might want to run the following to save disk space:\n" cecho "\n" cecho "${green}rm -rf $prefix/source $prefix/build\n" } # color definitions RED='\e[1;31m' green='\e[0;32m' GREEN='\e[1;32m' cyan='\e[0;36m' yellow='\e[0;33m' NC='\e[0m' # no color function cecho() { echo -ne "($green$0$NC) $1$NC" } function cerror() { if [ $? -ne 0 ]; then cecho "$RED$1$NC\n" exit fi } function ask() { cecho "$@ [y/n] " read ans case "$ans" in y*|Y*) return 0 ;; *) return 1 ;; esac } # source command line overrides until [ -z "$1" ]; do eval "$1" shift done cecho "${cyan}about to build and install ${target} GNU development tools using\n" cecho "${cyan}the following settings (override via the command line):\n" cecho "\n" cecho " ${yellow}archive=${archive} $cyan(location of source tarballs)\n" cecho " ${yellow}prefix=${prefix} $cyan(installation prefix/directory)\n" cecho " ${yellow}buildlog=${buildlog} $cyan(build log)\n" cecho "\n" ask "${cyan}proceed?"; if [ "$?" -eq 1 ] then exit fi # check on target directory if [ -d $prefix ]; then cecho "\n" ask "${RED}$prefix already exists, continue?"; if [ "$?" -eq 1 ] then exit fi fi mkdir -p $prefix 2> /dev/null if [ ! -w $prefix ]; then cecho "\n" cecho "${RED}failed! to create install directory $prefix\n"; exit fi # check for required files missingfiles=; for file in $sourcefiles; do if [ ! -f $archive/$file ]; then missingfiles="${missingfiles} $file"; fi done if [ -n "$missingfiles" ]; then cecho "\n" cecho "${RED}error! required source file(s):\n"; cecho "\n" for file in $missingfiles; do cecho " ${yellow}$file\n" done cecho "\n" cecho "${cyan}were missing - download them to $archive first\n"; exit fi buildandinstall 2>&1 | tee $buildlog exit ++++++ get-patches.sh ++++++ # #Cleanup # rm -f *.diff # # Get binutils patches # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-binutils/fi... # # Rename to our patchname # mv patch-aa binutils-patch-aa.diff # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-binutils/fi... # # Rename to our patchname # mv patch-coff-avr binutils-patch-coff-avr.diff # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-binutils/fi... # # Rename to our patchname # mv patch-data-origin binutils-patch-data-origin.diff # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-binutils/fi... # # Rename to our patchname # mv patch-newdevices binutils-patch-newdevices.diff # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-binutils/fi... # # Rename to our patchname # mv patch-newsections binutils-patch-newsections.diff # # # Drop the wrong-arch patch , it's included in binutils 2.19.1 # #wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-binutils/fi... # # Rename to our patchname # #mv patch-wrong-arch binutils-patch-wrong-arch.diff # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-binutils/fi... # # Rename to our patchname # mv patch-xmega binutils-patch-xmega.diff # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-binutils/fi... # # Rename to our patchname # mv patch-zzz-atmega128rfa1 binutils-patch-zzz-atmega128rfa1.diff # # # The AVR Architecture 25 Relocaction wraparound patch is included in the package atm , so skip the wget #wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-binutils/fi... # # Rename to our patchname # mv patch-avr25-wraparound-reloc.patch binutils-patch-avr25-wraparound-reloc.diff # # # Get WinAVR binutils avr-size patch , NOTE ... 2.19 is in the patch path # wget -c --user-agent=MyBrowser http://winavr.cvs.sourceforge.net/viewvc/*checkout*/winavr/patches/binutils/... # # Rename to our patchname # mv 30-binutils-2.19-avr-size.patch binutils-patch-avr-size.diff # # Get gcc patches # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-gcc/files/p... # # Rename to our patchname # mv patch-avr-libgcc.S gcc-patch-avr-libgcc.S.diff # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-gcc/files/p... # # Rename to our patchname # mv patch-bug11259 gcc-patch-bug11259.diff # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-gcc/files/p... # # Rename to our patchname # mv patch-bug19636-24894-31644-31786 gcc-patch-bug19636-24894-31644-31786.diff # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-gcc/files/p... # # Rename to our patchname # mv patch-bug33009 gcc-patch-bug33009.diff # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-gcc/files/p... # # Rename to our patchname # mv patch-bug34210-35508 gcc-patch-bug34210-35508.diff # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-gcc/files/p... # # Rename to our patchname # mv patch-bug35013 gcc-patch-bug35013.diff # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-gcc/files/p... # # Rename to our patchname # mv patch-libiberty-Makefile.in gcc-patch-libiberty-Makefile.in.diff # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-gcc/files/p... # # Rename to our patchname # mv patch-newdevices gcc-patch-newdevices.diff # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-gcc/files/p... # # Rename to our patchname # mv patch-xmega gcc-patch-xmega.diff # wget -c --user-agent=MyBrowser http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-gcc/files/p... # # Rename to our patchname # mv patch-xx-os_main gcc-patch-xx-os_main.diff # ++++++ getfiles.sh ++++++ # # Get GDB Insight # wget -c ftp://sourceware.org/pub/insight/releases/insight-6.8.tar.bz2 # # Get avarice # wget -c http://downloads.sourceforge.net/avarice/avarice-2.10.tar.bz2 # # Get avrdude # wget -c http://download.savannah.gnu.org/releases/avrdude/avrdude-5.10.tar.gz wget -c http://download.savannah.gnu.org/releases/avrdude/avrdude-doc-5.10.pdf # # Get Binutils # wget -c ftp://ftp.dkuug.dk/pub/gnu/ftp/gnu/binutils/binutils-2.19.1.tar.bz2 # # Get avr-libc # #Updated to avr-libc-1.6.6 # wget -c http://download.savannah.gnu.org/releases/avr-libc/avr-libc-user-manual-1.6.... wget -c http://download.savannah.gnu.org/releases/avr-libc/avr-libc-1.6.8.tar.bz2 # # Get GMP # #wget -c http://ftp.sunet.se/pub/gnu/gmp/gmp-4.2.4.tar.bz2 wget -c http://ftp.sunet.se/pub/gnu/gmp/gmp-4.3.1.tar.bz2 # # Get MPFR # #wget -c http://www.mpfr.org/mpfr-current/mpfr-2.4.1.tar.bz2 #wget -c http://www.mpfr.org/mpfr-current/mpfr-2.4.1.tar.bz2 # Don't use "current dir" they keep changing the files , use url's like below wget -c http://www.mpfr.org/mpfr-2.4.1/mpfr-2.4.1.tar.bz2 # #Get GCC # #wget -c ftp://ftp.dkuug.dk/pub/gnu/ftp/gnu/gcc/gcc-4.3.2/gcc-4.3.2.tar.bz2 wget -c ftp://ftp.dkuug.dk/pub/gnu/ftp/gnu/gcc/gcc-4.3.3/gcc-4.3.3.tar.bz2 # # Done # ++++++ hotfix.txt ++++++ I have included a binutils 2.19.1 patch to fix an avr25 architecture Relocation error patch-avr25-wraparound-reloc.patch It's actually a copy of EW's winavr patch : 41-binutils-2.19-avr25-wraparound-reloc.patch If this patch appears in the FreeBSD repository i'll get it from there , but until then. Its included locally in the build-script package. I experienced the bug when compiling uracoli , and it terminated with this error. /usr/local/avr-gcc-4.3.3-libc-1.6.7-14-Jun-2009/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn84.o: In function `__bad_interrupt': ../../../../../../source/avr-libc-1.6.7/crt1/gcrt1.S:193: relocation truncated to fit: R_AVR_13_PCREL against symbol `exit' defined in .fini9 section in /usr/local/avr-gcc-4.3.3-libc-1.6.7-14-Jun-2009/bin/../lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o) /Bingo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org