aboutsummaryrefslogtreecommitdiffstats
path: root/devel/avr-gcc-3
diff options
context:
space:
mode:
authorjoerg <joerg@FreeBSD.org>2004-04-29 04:53:33 +0800
committerjoerg <joerg@FreeBSD.org>2004-04-29 04:53:33 +0800
commit9b03cdd5646b4b4673aba06cb98681c6ce96ced4 (patch)
tree4680788e24729f1b173f70810f5ea582f4c72dfe /devel/avr-gcc-3
parentc22bdc8b13e219871c36fa1875332c414c784206 (diff)
downloadfreebsd-ports-gnome-9b03cdd5646b4b4673aba06cb98681c6ce96ced4.tar.gz
freebsd-ports-gnome-9b03cdd5646b4b4673aba06cb98681c6ce96ced4.tar.zst
freebsd-ports-gnome-9b03cdd5646b4b4673aba06cb98681c6ce96ced4.zip
Upgrade to GCC 3.4.0.
This also makes the port compile (again) under all 64-bit archs. For amd64, patch-ad modifies config.guess to match GCC's expectation of x86_64.
Diffstat (limited to 'devel/avr-gcc-3')
-rw-r--r--devel/avr-gcc-3/Makefile17
-rw-r--r--devel/avr-gcc-3/distinfo12
-rw-r--r--devel/avr-gcc-3/files/patch-16bitassign300
-rw-r--r--devel/avr-gcc-3/files/patch-aa8
-rw-r--r--devel/avr-gcc-3/files/patch-ab412
-rw-r--r--devel/avr-gcc-3/files/patch-ac10
-rw-r--r--devel/avr-gcc-3/files/patch-ad12
-rw-r--r--devel/avr-gcc-3/pkg-plist108
8 files changed, 387 insertions, 492 deletions
diff --git a/devel/avr-gcc-3/Makefile b/devel/avr-gcc-3/Makefile
index 122778bce0cf..93a410f28d9c 100644
--- a/devel/avr-gcc-3/Makefile
+++ b/devel/avr-gcc-3/Makefile
@@ -6,7 +6,7 @@
#
PORTNAME= gcc
-PORTVERSION= 3.3.2
+PORTVERSION= 3.4.0
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GNU}
MASTER_SITES+= http://people.freebsd.org/~joerg/:local
@@ -22,8 +22,7 @@ MAINTAINER= joerg@freebsd.org
COMMENT= FSF GCC 3.x for Atmel AVR 8-bit RISC cross-development
BUILD_DEPENDS= avr-as:${PORTSDIR}/devel/avr-binutils \
- avr-ld:${PORTSDIR}/devel/avr-binutils \
- autoheader:${PORTSDIR}/devel/autoconf
+ avr-ld:${PORTSDIR}/devel/avr-binutils
RUN_DEPENDS= avr-as:${PORTSDIR}/devel/avr-binutils \
avr-ld:${PORTSDIR}/devel/avr-binutils
@@ -33,10 +32,10 @@ USE_PERL5_BUILD= yes
USE_BZIP2= yes
USE_GMAKE= yes
USE_BISON= yes
-USE_GETTEXT= yes
+USE_AUTOHEADER= yes
GNU_CONFIGURE= yes
-CONFIGURE_ARGS= --target=avr
+CONFIGURE_ARGS= --target=avr --disable-nls
MAN_AUX= gcc-man.${PORTVERSION}.tar.gz
@@ -44,16 +43,12 @@ MAKE_FLAGS= LANGUAGES="c c++"
# get rid of that silly -mcpu=pentiumpro FreeBSD 5+ is so fond of. :-(
MAKE_ENV= MACHINE_ARCH=avr
-MAN1= cpp.1 avr-gcc.1 avr-g++.1 gcov.1
+MAN1= avr-cpp.1 avr-gcc.1 avr-g++.1 avr-gcov.1
MAN7= fsf-funding.7 gfdl.7 gpl.7
-INFO= cpp gcc gccint cppinternals
+INFO= cpp gcc gccint cppinternals gccinstall
.include <bsd.port.pre.mk>
-.if ${ARCH} != "i386" && ${ARCH} != "alpha"
-BROKEN= "Does not build on !i386 and !alpha"
-.endif
-
# Since the pod2man in FreeBSD 4-stable's /usr/bin cannot be used, we
# help out by extracting precompiled manpages there.
pre-build:
diff --git a/devel/avr-gcc-3/distinfo b/devel/avr-gcc-3/distinfo
index 0cfeb46f37e3..42c2f480d165 100644
--- a/devel/avr-gcc-3/distinfo
+++ b/devel/avr-gcc-3/distinfo
@@ -1,6 +1,6 @@
-MD5 (gcc-core-3.3.2.tar.bz2) = 42d1314aaa11a40e4c7c9fcb0f49259a
-SIZE (gcc-core-3.3.2.tar.bz2) = 11258151
-MD5 (gcc-g++-3.3.2.tar.bz2) = b9ae980739e7f9299addc0a3576777e7
-SIZE (gcc-g++-3.3.2.tar.bz2) = 2068257
-MD5 (gcc-man.3.3.2.tar.gz) = 0f028fe521da96f7903060f642bb436f
-SIZE (gcc-man.3.3.2.tar.gz) = 155462
+MD5 (gcc-core-3.4.0.tar.bz2) = 6371ff0a37d5e1809f4f59d0045dcaa5
+SIZE (gcc-core-3.4.0.tar.bz2) = 12506941
+MD5 (gcc-g++-3.4.0.tar.bz2) = 4b66e4ce2e25d8c73b05ea97f27b2d8e
+SIZE (gcc-g++-3.4.0.tar.bz2) = 2379100
+MD5 (gcc-man.3.4.0.tar.gz) = 30028447bf3b166b8865f47c3e55a465
+SIZE (gcc-man.3.4.0.tar.gz) = 322924
diff --git a/devel/avr-gcc-3/files/patch-16bitassign b/devel/avr-gcc-3/files/patch-16bitassign
deleted file mode 100644
index 2241dfa1adbe..000000000000
--- a/devel/avr-gcc-3/files/patch-16bitassign
+++ /dev/null
@@ -1,300 +0,0 @@
-From marekm@amelek.gda.pl Sun Jan 19 02:37:50 2003
-Path: interface-business.de!not-for-mail
-Newsgroups: local.avr.gcc
-Followup-To: poster
-Reply-To: avr-gcc-list@avr1.org
-Subject: [avr-gcc-list] Patch for indirect 16-bit I/O
-To: avr-gcc-list@avr1.org
-X-Mailer: ELM [version 2.4ME+ PL95 (25)]
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset=US-ASCII
-Message-ID: <E18a4PG-0004Cs-00@alf.amelek.gda.pl>
-From: Marek Michalkiewicz <marekm@amelek.gda.pl>
-Sender: owner-avr-gcc-list@avr1.org
-Precedence: bulk
-Date: Sun, 19 Jan 2003 02:37:50 +0100 (CET)
-Lines: 280
-Xref: interface-business.de local.avr.gcc:2452
-
-Hi,
-
-This should handle all these 16-bit I/O accesses addressed with
-pointers ("volatile" is required to force writing high byte first
-and reading low byte first in absolutely all cases, even if that
-makes the code less efficient). The patch is for CVS mainline, but
-should apply cleanly to the 3.3 branch too. I'm not committing it
-to GCC CVS just yet - please test, I haven't... well, it compiles :)
-
-BTW, mainline currently requires that SEEK_{SET,CUR,END} are
-defined in <stdio.h> - otherwise some new libgcc2.c stuff (unused
-on the AVR, but it has to compile) will cause the build to fail.
-Just edit /usr/local/avr/include/stdio.h to add them manually...
-
-Marek
-
-
-Index: gcc/config/avr/avr.c
-===================================================================
-RCS file: /cvs/gcc/gcc/gcc/config/avr/avr.c,v
-retrieving revision 1.87
-diff -c -3 -p -r1.87 avr.c
-*** gcc/config/avr/avr.c 16 Dec 2002 18:20:58 -0000 1.87
---- gcc/config/avr/avr.c 19 Jan 2003 01:07:52 -0000
-*************** print_operand (file, x, code)
-*** 1138,1143 ****
---- 1138,1153 ----
-
- print_operand (file, XEXP (addr, 1), 0);
- }
-+ else if (code == 'p' || code == 'r')
-+ {
-+ if (GET_CODE (addr) != POST_INC && GET_CODE (addr) != PRE_DEC)
-+ fatal_insn ("bad address, not post_inc or pre_dec:", addr);
-+
-+ if (code == 'p')
-+ print_operand_address (file, XEXP (addr, 0)); /* X, Y, Z */
-+ else
-+ print_operand (file, XEXP (addr, 0), 0); /* r26, r28, r30 */
-+ }
- else if (GET_CODE (addr) == PLUS)
- {
- print_operand_address (file, XEXP (addr,0));
-*************** out_movhi_r_mr (insn, op, l)
-*** 1944,1949 ****
---- 1954,1962 ----
- rtx base = XEXP (src, 0);
- int reg_dest = true_regnum (dest);
- int reg_base = true_regnum (base);
-+ /* "volatile" forces reading low byte first, even if less efficient,
-+ for correct operation with 16-bit I/O registers. */
-+ int mem_volatile_p = MEM_VOLATILE_P (src);
- int tmp;
-
- if (!l)
-*************** out_movhi_r_mr (insn, op, l)
-*** 2037,2042 ****
---- 2050,2074 ----
- if (reg_overlap_mentioned_p (dest, XEXP (base, 0)))
- fatal_insn ("incorrect insn:", insn);
-
-+ if (mem_volatile_p)
-+ {
-+ if (REGNO (XEXP (base, 0)) == REG_X)
-+ {
-+ *l = 4;
-+ return (AS2 (sbiw,r26,2) CR_TAB
-+ AS2 (ld,%A0,X+) CR_TAB
-+ AS2 (ld,%B0,X) CR_TAB
-+ AS2 (sbiw,r26,1));
-+ }
-+ else
-+ {
-+ *l = 3;
-+ return (AS2 (sbiw,%r1,2) CR_TAB
-+ AS2 (ld,%A0,%p1) CR_TAB
-+ AS2 (ldd,%B0,%p1+1));
-+ }
-+ }
-+
- *l = 2;
- return (AS2 (ld,%B0,%1) CR_TAB
- AS2 (ld,%A0,%1));
-*************** out_movhi_mr_r (insn, op, l)
-*** 2668,2674 ****
---- 2700,2710 ----
- rtx base = XEXP (dest, 0);
- int reg_base = true_regnum (base);
- int reg_src = true_regnum (src);
-+ /* "volatile" forces writing high byte first, even if less efficient,
-+ for correct operation with 16-bit I/O registers. */
-+ int mem_volatile_p = MEM_VOLATILE_P (dest);
- int tmp;
-+
- if (!l)
- l = &tmp;
- if (CONSTANT_ADDRESS_P (base))
-*************** out_movhi_mr_r (insn, op, l)
-*** 2688,2720 ****
- {
- if (reg_src == REG_X)
- {
-! /* "st X+,r26" is undefined */
-! if (reg_unused_after (insn, src))
- return *l=4, (AS2 (mov,__tmp_reg__,r27) CR_TAB
- AS2 (st,X,r26) CR_TAB
- AS2 (adiw,r26,1) CR_TAB
- AS2 (st,X,__tmp_reg__));
- else
- return *l=5, (AS2 (mov,__tmp_reg__,r27) CR_TAB
-- AS2 (st,X,r26) CR_TAB
- AS2 (adiw,r26,1) CR_TAB
- AS2 (st,X,__tmp_reg__) CR_TAB
-! AS2 (sbiw,r26,1));
- }
- else
- {
-! if (reg_unused_after (insn, base))
- return *l=2, (AS2 (st,X+,%A1) CR_TAB
- AS2 (st,X,%B1));
- else
-! return *l=3, (AS2 (st ,X+,%A1) CR_TAB
-! AS2 (st ,X,%B1) CR_TAB
-! AS2 (sbiw,r26,1));
- }
- }
- else
-! return *l=2, (AS2 (st ,%0,%A1) CR_TAB
-! AS2 (std,%0+1,%B1));
- }
- else if (GET_CODE (base) == PLUS)
- {
---- 2724,2756 ----
- {
- if (reg_src == REG_X)
- {
-! /* "st X+,r26" and "st -X,r26" are undefined. */
-! if (!mem_volatile_p && reg_unused_after (insn, src))
- return *l=4, (AS2 (mov,__tmp_reg__,r27) CR_TAB
- AS2 (st,X,r26) CR_TAB
- AS2 (adiw,r26,1) CR_TAB
- AS2 (st,X,__tmp_reg__));
- else
- return *l=5, (AS2 (mov,__tmp_reg__,r27) CR_TAB
- AS2 (adiw,r26,1) CR_TAB
- AS2 (st,X,__tmp_reg__) CR_TAB
-! AS2 (sbiw,r26,1) CR_TAB
-! AS2 (st,X,r26));
- }
- else
- {
-! if (!mem_volatile_p && reg_unused_after (insn, base))
- return *l=2, (AS2 (st,X+,%A1) CR_TAB
- AS2 (st,X,%B1));
- else
-! return *l=3, (AS2 (adiw,r26,1) CR_TAB
-! AS2 (st,X,%B1) CR_TAB
-! AS2 (st,-X,%A1));
- }
- }
- else
-! return *l=2, (AS2 (std,%0+1,%B1) CR_TAB
-! AS2 (st,%0,%A1));
- }
- else if (GET_CODE (base) == PLUS)
- {
-*************** out_movhi_mr_r (insn, op, l)
-*** 2727,2740 ****
-
- if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
- return *l = 4, (AS2 (adiw,r28,%o0-62) CR_TAB
-- AS2 (std,Y+62,%A1) CR_TAB
- AS2 (std,Y+63,%B1) CR_TAB
- AS2 (sbiw,r28,%o0-62));
-
- return *l = 6, (AS2 (subi,r28,lo8(-%o0)) CR_TAB
- AS2 (sbci,r29,hi8(-%o0)) CR_TAB
-- AS2 (st,Y,%A1) CR_TAB
- AS2 (std,Y+1,%B1) CR_TAB
- AS2 (subi,r28,lo8(%o0)) CR_TAB
- AS2 (sbci,r29,hi8(%o0)));
- }
---- 2763,2776 ----
-
- if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
- return *l = 4, (AS2 (adiw,r28,%o0-62) CR_TAB
- AS2 (std,Y+63,%B1) CR_TAB
-+ AS2 (std,Y+62,%A1) CR_TAB
- AS2 (sbiw,r28,%o0-62));
-
- return *l = 6, (AS2 (subi,r28,lo8(-%o0)) CR_TAB
- AS2 (sbci,r29,hi8(-%o0)) CR_TAB
- AS2 (std,Y+1,%B1) CR_TAB
-+ AS2 (st,Y,%A1) CR_TAB
- AS2 (subi,r28,lo8(%o0)) CR_TAB
- AS2 (sbci,r29,hi8(%o0)));
- }
-*************** out_movhi_mr_r (insn, op, l)
-*** 2746,2772 ****
- *l = 7;
- return (AS2 (mov,__tmp_reg__,r26) CR_TAB
- AS2 (mov,__zero_reg__,r27) CR_TAB
-! AS2 (adiw,r26,%o0) CR_TAB
-! AS2 (st,X+,__tmp_reg__) CR_TAB
- AS2 (st,X,__zero_reg__) CR_TAB
- AS1 (clr,__zero_reg__) CR_TAB
-! AS2 (sbiw,r26,%o0+1));
- }
- *l = 4;
-! return (AS2 (adiw,r26,%o0) CR_TAB
-! AS2 (st,X+,%A1) CR_TAB
-! AS2 (st,X,%B1) CR_TAB
-! AS2 (sbiw,r26,%o0+1));
- }
-! return *l=2, (AS2 (std,%A0,%A1) CR_TAB
-! AS2 (std,%B0,%B1));
- }
- else if (GET_CODE (base) == PRE_DEC) /* (--R) */
- return *l=2, (AS2 (st,%0,%B1) CR_TAB
- AS2 (st,%0,%A1));
- else if (GET_CODE (base) == POST_INC) /* (R++) */
-! return *l=2, (AS2 (st,%0,%A1) CR_TAB
-! AS2 (st,%0,%B1));
- fatal_insn ("unknown move insn:",insn);
- return "";
- }
---- 2782,2830 ----
- *l = 7;
- return (AS2 (mov,__tmp_reg__,r26) CR_TAB
- AS2 (mov,__zero_reg__,r27) CR_TAB
-! AS2 (adiw,r26,%o0+1) CR_TAB
- AS2 (st,X,__zero_reg__) CR_TAB
-+ AS2 (st,-X,__tmp_reg__) CR_TAB
- AS1 (clr,__zero_reg__) CR_TAB
-! AS2 (sbiw,r26,%o0));
- }
- *l = 4;
-! return (AS2 (adiw,r26,%o0+1) CR_TAB
-! AS2 (st,X,%B1) CR_TAB
-! AS2 (st,-X,%A1) CR_TAB
-! AS2 (sbiw,r26,%o0));
- }
-! return *l=2, (AS2 (std,%B0,%B1) CR_TAB
-! AS2 (std,%A0,%A1));
- }
- else if (GET_CODE (base) == PRE_DEC) /* (--R) */
- return *l=2, (AS2 (st,%0,%B1) CR_TAB
- AS2 (st,%0,%A1));
- else if (GET_CODE (base) == POST_INC) /* (R++) */
-! {
-! if (mem_volatile_p)
-! {
-! if (REGNO (XEXP (base, 0)) == REG_X)
-! {
-! *l = 4;
-! return (AS2 (adiw,r26,1) CR_TAB
-! AS2 (st,X,%B1) CR_TAB
-! AS2 (st,-X,%A1) CR_TAB
-! AS2 (adiw,r26,2));
-! }
-! else
-! {
-! *l = 3;
-! return (AS2 (std,%p0+1,%B1) CR_TAB
-! AS2 (st,%p0,%A1) CR_TAB
-! AS2 (adiw,%r0,2));
-! }
-! }
-!
-! *l = 2;
-! return (AS2 (st,%0,%A1) CR_TAB
-! AS2 (st,%0,%B1));
-! }
- fatal_insn ("unknown move insn:",insn);
- return "";
- }
-
-
-
-avr-gcc-list at http://avr1.org
-
diff --git a/devel/avr-gcc-3/files/patch-aa b/devel/avr-gcc-3/files/patch-aa
index d8682e145771..8fe15263247a 100644
--- a/devel/avr-gcc-3/files/patch-aa
+++ b/devel/avr-gcc-3/files/patch-aa
@@ -1,6 +1,6 @@
---- libiberty/Makefile.in.orig Tue Jan 22 21:03:29 2002
-+++ libiberty/Makefile.in Tue Jun 4 18:19:26 2002
-@@ -234,7 +234,8 @@
+--- libiberty/Makefile.in.orig Wed Jan 14 22:27:28 2004
++++ libiberty/Makefile.in Wed Apr 21 11:14:30 2004
+@@ -267,7 +267,8 @@
@MAINT@ echo stamp > stamp-functions
INSTALL_DEST = @INSTALL_DEST@
@@ -9,4 +9,4 @@
+install:
install_to_libdir: all
- $(INSTALL_DATA) $(TARGETLIB) $(libdir)$(MULTISUBDIR)/$(TARGETLIB)n
+ ${mkinstalldirs} $(DESTDIR)$(libdir)$(MULTISUBDIR)
diff --git a/devel/avr-gcc-3/files/patch-ab b/devel/avr-gcc-3/files/patch-ab
index c340404fa7fe..9ebf9649b5e2 100644
--- a/devel/avr-gcc-3/files/patch-ab
+++ b/devel/avr-gcc-3/files/patch-ab
@@ -1,110 +1,302 @@
---- Makefile.in.orig Wed Jan 8 21:17:05 2003
-+++ Makefile.in Wed Jan 8 23:13:49 2003
-@@ -745,79 +745,19 @@
-
- # This is a list of the targets for all of the modules which are compiled
- # using $(TARGET_FLAGS_TO_PASS).
--ALL_TARGET_MODULES = \
-- all-target-libstdc++-v3 \
-- all-target-newlib \
-- all-target-libf2c \
-- all-target-libobjc \
-- all-target-libtermcap \
-- all-target-winsup \
-- all-target-libgloss \
-- all-target-libiberty \
-- all-target-gperf \
-- all-target-examples \
-- all-target-libffi \
-- all-target-libjava \
-- all-target-zlib \
-- all-target-boehm-gc \
-- all-target-qthreads \
-- all-target-rda
-+ALL_TARGET_MODULES =
-
- # This is a list of the configure targets for all of the modules which
- # are compiled using the target tools.
--CONFIGURE_TARGET_MODULES = \
-- configure-target-libstdc++-v3 \
-- configure-target-newlib \
-- configure-target-libf2c \
-- configure-target-libobjc \
-- configure-target-libtermcap \
-- configure-target-winsup \
-- configure-target-libgloss \
-- configure-target-libiberty \
-- configure-target-gperf \
-- configure-target-examples \
-- configure-target-libffi \
-- configure-target-libjava \
-- configure-target-zlib \
-- configure-target-boehm-gc \
-- configure-target-qthreads \
-- configure-target-rda
-+CONFIGURE_TARGET_MODULES =
-
- # This is a list of the check targets for all of the modules which are
- # compiled using $(TARGET_FLAGS_TO_PASS).
--CHECK_TARGET_MODULES = \
-- check-target-libstdc++-v3 \
-- check-target-newlib \
-- check-target-libf2c \
-- check-target-libobjc \
-- check-target-winsup \
-- check-target-libiberty \
-- check-target-gperf \
-- check-target-libffi \
-- check-target-libjava \
-- check-target-zlib \
-- check-target-boehm-gc \
-- check-target-qthreads \
-- check-target-rda
-+CHECK_TARGET_MODULES =
-
- # This is a list of the install targets for all of the modules which are
- # compiled using $(TARGET_FLAGS_TO_PASS).
--INSTALL_TARGET_MODULES = \
-- install-target-libstdc++-v3 \
-- install-target-newlib \
-- install-target-libf2c \
-- install-target-libobjc \
-- install-target-libtermcap \
-- install-target-winsup \
-- install-target-libgloss \
-- install-target-libiberty \
-- install-target-gperf \
-- install-target-libffi \
-- install-target-libjava \
-- install-target-zlib \
-- install-target-boehm-gc \
-- install-target-qthreads \
-- install-target-rda
-+INSTALL_TARGET_MODULES =
-
- # This is a list of the targets for which we can do a clean-{target}.
- CLEAN_MODULES = \
-@@ -883,22 +823,7 @@
- clean-zlib
-
- # All of the target modules that can be cleaned
--CLEAN_TARGET_MODULES = \
-- clean-target-libstdc++-v3 \
-- clean-target-newlib \
-- clean-target-libf2c \
-- clean-target-libobjc \
-- clean-target-winsup \
-- clean-target-libgloss \
-- clean-target-libiberty \
-- clean-target-gperf \
-- clean-target-examples \
-- clean-target-libffi \
-- clean-target-libjava \
-- clean-target-zlib \
-- clean-target-boehm-gc \
-- clean-target-qthreads \
-- clean-target-rda
-+CLEAN_TARGET_MODULES =
-
- # All of the x11 modules that can be cleaned
- CLEAN_X11_MODULES = \
+--- Makefile.in.orig Wed Jan 14 21:09:37 2004
++++ Makefile.in Wed Apr 21 12:27:58 2004
+@@ -595,23 +595,7 @@
+ maybe-configure-libtermcap \
+ maybe-configure-utils
+ .PHONY: configure-target
+-configure-target: \
+- maybe-configure-target-libstdc++-v3 \
+- maybe-configure-target-newlib \
+- maybe-configure-target-libf2c \
+- maybe-configure-target-libobjc \
+- maybe-configure-target-libtermcap \
+- maybe-configure-target-winsup \
+- maybe-configure-target-libgloss \
+- maybe-configure-target-libiberty \
+- maybe-configure-target-gperf \
+- maybe-configure-target-examples \
+- maybe-configure-target-libffi \
+- maybe-configure-target-libjava \
+- maybe-configure-target-zlib \
+- maybe-configure-target-boehm-gc \
+- maybe-configure-target-qthreads \
+- maybe-configure-target-rda
++configure-target:
+
+ # The target built for a native build.
+ .PHONY: all.normal
+@@ -684,23 +668,7 @@
+ maybe-all-libtermcap \
+ maybe-all-utils
+ .PHONY: all-target
+-all-target: \
+- maybe-all-target-libstdc++-v3 \
+- maybe-all-target-newlib \
+- maybe-all-target-libf2c \
+- maybe-all-target-libobjc \
+- maybe-all-target-libtermcap \
+- maybe-all-target-winsup \
+- maybe-all-target-libgloss \
+- maybe-all-target-libiberty \
+- maybe-all-target-gperf \
+- maybe-all-target-examples \
+- maybe-all-target-libffi \
+- maybe-all-target-libjava \
+- maybe-all-target-zlib \
+- maybe-all-target-boehm-gc \
+- maybe-all-target-qthreads \
+- maybe-all-target-rda
++all-target:
+
+ # Do a target for all the subdirectories. A ``make do-X'' will do a
+ # ``make X'' in all subdirectories (because, in general, there is a
+@@ -778,23 +746,7 @@
+ maybe-info-utils
+
+ .PHONY: info-target
+-info-target: \
+- maybe-info-target-libstdc++-v3 \
+- maybe-info-target-newlib \
+- maybe-info-target-libf2c \
+- maybe-info-target-libobjc \
+- maybe-info-target-libtermcap \
+- maybe-info-target-winsup \
+- maybe-info-target-libgloss \
+- maybe-info-target-libiberty \
+- maybe-info-target-gperf \
+- maybe-info-target-examples \
+- maybe-info-target-libffi \
+- maybe-info-target-libjava \
+- maybe-info-target-zlib \
+- maybe-info-target-boehm-gc \
+- maybe-info-target-qthreads \
+- maybe-info-target-rda
++info-target:
+
+ # GCC, the eternal special case
+ .PHONY: maybe-info-gcc info-gcc
+@@ -2654,23 +2606,7 @@
+ maybe-dvi-utils
+
+ .PHONY: dvi-target
+-dvi-target: \
+- maybe-dvi-target-libstdc++-v3 \
+- maybe-dvi-target-newlib \
+- maybe-dvi-target-libf2c \
+- maybe-dvi-target-libobjc \
+- maybe-dvi-target-libtermcap \
+- maybe-dvi-target-winsup \
+- maybe-dvi-target-libgloss \
+- maybe-dvi-target-libiberty \
+- maybe-dvi-target-gperf \
+- maybe-dvi-target-examples \
+- maybe-dvi-target-libffi \
+- maybe-dvi-target-libjava \
+- maybe-dvi-target-zlib \
+- maybe-dvi-target-boehm-gc \
+- maybe-dvi-target-qthreads \
+- maybe-dvi-target-rda
++dvi-target:
+
+ # GCC, the eternal special case
+ .PHONY: maybe-dvi-gcc dvi-gcc
+@@ -4530,23 +4466,7 @@
+ maybe-TAGS-utils
+
+ .PHONY: TAGS-target
+-TAGS-target: \
+- maybe-TAGS-target-libstdc++-v3 \
+- maybe-TAGS-target-newlib \
+- maybe-TAGS-target-libf2c \
+- maybe-TAGS-target-libobjc \
+- maybe-TAGS-target-libtermcap \
+- maybe-TAGS-target-winsup \
+- maybe-TAGS-target-libgloss \
+- maybe-TAGS-target-libiberty \
+- maybe-TAGS-target-gperf \
+- maybe-TAGS-target-examples \
+- maybe-TAGS-target-libffi \
+- maybe-TAGS-target-libjava \
+- maybe-TAGS-target-zlib \
+- maybe-TAGS-target-boehm-gc \
+- maybe-TAGS-target-qthreads \
+- maybe-TAGS-target-rda
++TAGS-target:
+
+ # GCC, the eternal special case
+ .PHONY: maybe-TAGS-gcc TAGS-gcc
+@@ -6406,23 +6326,7 @@
+ maybe-install-info-utils
+
+ .PHONY: install-info-target
+-install-info-target: \
+- maybe-install-info-target-libstdc++-v3 \
+- maybe-install-info-target-newlib \
+- maybe-install-info-target-libf2c \
+- maybe-install-info-target-libobjc \
+- maybe-install-info-target-libtermcap \
+- maybe-install-info-target-winsup \
+- maybe-install-info-target-libgloss \
+- maybe-install-info-target-libiberty \
+- maybe-install-info-target-gperf \
+- maybe-install-info-target-examples \
+- maybe-install-info-target-libffi \
+- maybe-install-info-target-libjava \
+- maybe-install-info-target-zlib \
+- maybe-install-info-target-boehm-gc \
+- maybe-install-info-target-qthreads \
+- maybe-install-info-target-rda
++install-info-target:
+
+ # GCC, the eternal special case
+ .PHONY: maybe-install-info-gcc install-info-gcc
+@@ -8363,23 +8267,7 @@
+ maybe-installcheck-utils
+
+ .PHONY: installcheck-target
+-installcheck-target: \
+- maybe-installcheck-target-libstdc++-v3 \
+- maybe-installcheck-target-newlib \
+- maybe-installcheck-target-libf2c \
+- maybe-installcheck-target-libobjc \
+- maybe-installcheck-target-libtermcap \
+- maybe-installcheck-target-winsup \
+- maybe-installcheck-target-libgloss \
+- maybe-installcheck-target-libiberty \
+- maybe-installcheck-target-gperf \
+- maybe-installcheck-target-examples \
+- maybe-installcheck-target-libffi \
+- maybe-installcheck-target-libjava \
+- maybe-installcheck-target-zlib \
+- maybe-installcheck-target-boehm-gc \
+- maybe-installcheck-target-qthreads \
+- maybe-installcheck-target-rda
++installcheck-target:
+
+ # GCC, the eternal special case
+ .PHONY: maybe-installcheck-gcc installcheck-gcc
+@@ -10239,23 +10127,7 @@
+ maybe-mostlyclean-utils
+
+ .PHONY: mostlyclean-target
+-mostlyclean-target: \
+- maybe-mostlyclean-target-libstdc++-v3 \
+- maybe-mostlyclean-target-newlib \
+- maybe-mostlyclean-target-libf2c \
+- maybe-mostlyclean-target-libobjc \
+- maybe-mostlyclean-target-libtermcap \
+- maybe-mostlyclean-target-winsup \
+- maybe-mostlyclean-target-libgloss \
+- maybe-mostlyclean-target-libiberty \
+- maybe-mostlyclean-target-gperf \
+- maybe-mostlyclean-target-examples \
+- maybe-mostlyclean-target-libffi \
+- maybe-mostlyclean-target-libjava \
+- maybe-mostlyclean-target-zlib \
+- maybe-mostlyclean-target-boehm-gc \
+- maybe-mostlyclean-target-qthreads \
+- maybe-mostlyclean-target-rda
++mostlyclean-target:
+
+ # GCC, the eternal special case
+ .PHONY: maybe-mostlyclean-gcc mostlyclean-gcc
+@@ -11992,23 +11864,7 @@
+ maybe-clean-utils
+
+ .PHONY: clean-target
+-clean-target: \
+- maybe-clean-target-libstdc++-v3 \
+- maybe-clean-target-newlib \
+- maybe-clean-target-libf2c \
+- maybe-clean-target-libobjc \
+- maybe-clean-target-libtermcap \
+- maybe-clean-target-winsup \
+- maybe-clean-target-libgloss \
+- maybe-clean-target-libiberty \
+- maybe-clean-target-gperf \
+- maybe-clean-target-examples \
+- maybe-clean-target-libffi \
+- maybe-clean-target-libjava \
+- maybe-clean-target-zlib \
+- maybe-clean-target-boehm-gc \
+- maybe-clean-target-qthreads \
+- maybe-clean-target-rda
++clean-target:
+
+ # GCC, the eternal special case
+ .PHONY: maybe-clean-gcc clean-gcc
+@@ -13759,23 +13615,7 @@
+ maybe-distclean-utils
+
+ .PHONY: distclean-target
+-distclean-target: \
+- maybe-distclean-target-libstdc++-v3 \
+- maybe-distclean-target-newlib \
+- maybe-distclean-target-libf2c \
+- maybe-distclean-target-libobjc \
+- maybe-distclean-target-libtermcap \
+- maybe-distclean-target-winsup \
+- maybe-distclean-target-libgloss \
+- maybe-distclean-target-libiberty \
+- maybe-distclean-target-gperf \
+- maybe-distclean-target-examples \
+- maybe-distclean-target-libffi \
+- maybe-distclean-target-libjava \
+- maybe-distclean-target-zlib \
+- maybe-distclean-target-boehm-gc \
+- maybe-distclean-target-qthreads \
+- maybe-distclean-target-rda
++distclean-target:
+
+ # GCC, the eternal special case
+ .PHONY: maybe-distclean-gcc distclean-gcc
+@@ -15526,23 +15366,7 @@
+ maybe-maintainer-clean-utils
+
+ .PHONY: maintainer-clean-target
+-maintainer-clean-target: \
+- maybe-maintainer-clean-target-libstdc++-v3 \
+- maybe-maintainer-clean-target-newlib \
+- maybe-maintainer-clean-target-libf2c \
+- maybe-maintainer-clean-target-libobjc \
+- maybe-maintainer-clean-target-libtermcap \
+- maybe-maintainer-clean-target-winsup \
+- maybe-maintainer-clean-target-libgloss \
+- maybe-maintainer-clean-target-libiberty \
+- maybe-maintainer-clean-target-gperf \
+- maybe-maintainer-clean-target-examples \
+- maybe-maintainer-clean-target-libffi \
+- maybe-maintainer-clean-target-libjava \
+- maybe-maintainer-clean-target-zlib \
+- maybe-maintainer-clean-target-boehm-gc \
+- maybe-maintainer-clean-target-qthreads \
+- maybe-maintainer-clean-target-rda
++maintainer-clean-target:
+
+ # GCC, the eternal special case
+ .PHONY: maybe-maintainer-clean-gcc maintainer-clean-gcc
+@@ -17526,23 +17350,7 @@
+ maybe-install-utils
+
+ .PHONY: install-target
+-install-target: \
+- maybe-install-target-libstdc++-v3 \
+- maybe-install-target-newlib \
+- maybe-install-target-libf2c \
+- maybe-install-target-libobjc \
+- maybe-install-target-libtermcap \
+- maybe-install-target-winsup \
+- maybe-install-target-libgloss \
+- maybe-install-target-libiberty \
+- maybe-install-target-gperf \
+- maybe-install-target-examples \
+- maybe-install-target-libffi \
+- maybe-install-target-libjava \
+- maybe-install-target-zlib \
+- maybe-install-target-boehm-gc \
+- maybe-install-target-qthreads \
+- maybe-install-target-rda
++install-target:
+
+ uninstall:
+ @echo "the uninstall target is not supported in this tree"
diff --git a/devel/avr-gcc-3/files/patch-ac b/devel/avr-gcc-3/files/patch-ac
index cec083e3ee83..a1826c113722 100644
--- a/devel/avr-gcc-3/files/patch-ac
+++ b/devel/avr-gcc-3/files/patch-ac
@@ -1,8 +1,8 @@
---- configure.in.orig Sun May 5 20:56:48 2002
-+++ configure.in Tue Jun 4 18:21:31 2002
-@@ -706,6 +706,9 @@
- target_configdirs="${target_configdirs} target-bsp target-cygmon"
- fi
+--- configure.in.orig Mon Mar 1 20:27:33 2004
++++ configure.in Wed Apr 21 11:14:31 2004
+@@ -428,6 +428,9 @@
+ arm-*-pe*)
+ noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
;;
+ avr-*-*)
+ noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libglosstarget-libiberty"
diff --git a/devel/avr-gcc-3/files/patch-ad b/devel/avr-gcc-3/files/patch-ad
new file mode 100644
index 000000000000..05c5c3a7407f
--- /dev/null
+++ b/devel/avr-gcc-3/files/patch-ad
@@ -0,0 +1,12 @@
+--- config.guess.orig Sun Feb 22 15:44:23 2004
++++ config.guess Wed Apr 21 15:10:25 2004
+@@ -792,6 +792,9 @@
+ #endif
+ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
++ if [ ".$UNAME_MACHINE" = ".amd64" ] ; then
++ UNAME_MACHINE=x86_64
++ fi
+ # GNU/KFreeBSD systems have a "k" prefix to indicate we are using
+ # FreeBSD's kernel, but not the complete OS.
+ case ${LIBC} in gnu) kernel_only='k' ;; esac
diff --git a/devel/avr-gcc-3/pkg-plist b/devel/avr-gcc-3/pkg-plist
index 9beb52d403f5..872615930f01 100644
--- a/devel/avr-gcc-3/pkg-plist
+++ b/devel/avr-gcc-3/pkg-plist
@@ -5,60 +5,56 @@ bin/avr-c++
bin/avr-cpp
bin/avr-g++
bin/avr-gcc
-bin/avr-gcc-3.3.2
+bin/avr-gcc-3.4.0
bin/avr-gccbug
-lib/charset.alias
-lib/gcc-lib/avr/3.3.2/avr3/libgcc.a
-lib/gcc-lib/avr/3.3.2/avr4/libgcc.a
-lib/gcc-lib/avr/3.3.2/avr5/libgcc.a
-lib/gcc-lib/avr/3.3.2/cc1
-lib/gcc-lib/avr/3.3.2/cc1plus
-lib/gcc-lib/avr/3.3.2/collect2
-lib/gcc-lib/avr/3.3.2/include/README
-lib/gcc-lib/avr/3.3.2/include/fixed
-lib/gcc-lib/avr/3.3.2/include/float.h
-lib/gcc-lib/avr/3.3.2/include/iso646.h
-lib/gcc-lib/avr/3.3.2/include/limits.h
-lib/gcc-lib/avr/3.3.2/include/stdarg.h
-lib/gcc-lib/avr/3.3.2/include/stdbool.h
-lib/gcc-lib/avr/3.3.2/include/stddef.h
-lib/gcc-lib/avr/3.3.2/include/syslimits.h
-lib/gcc-lib/avr/3.3.2/include/unwind.h
-lib/gcc-lib/avr/3.3.2/include/varargs.h
-lib/gcc-lib/avr/3.3.2/install-tools/fix-header
-lib/gcc-lib/avr/3.3.2/install-tools/fixinc.sh
-lib/gcc-lib/avr/3.3.2/install-tools/fixincl
-lib/gcc-lib/avr/3.3.2/install-tools/fixproto
-lib/gcc-lib/avr/3.3.2/install-tools/gsyslimits.h
-lib/gcc-lib/avr/3.3.2/install-tools/include/README
-lib/gcc-lib/avr/3.3.2/install-tools/include/float.h
-lib/gcc-lib/avr/3.3.2/install-tools/include/iso646.h
-lib/gcc-lib/avr/3.3.2/install-tools/include/limits.h
-lib/gcc-lib/avr/3.3.2/install-tools/include/stdarg.h
-lib/gcc-lib/avr/3.3.2/install-tools/include/stdbool.h
-lib/gcc-lib/avr/3.3.2/install-tools/include/stddef.h
-lib/gcc-lib/avr/3.3.2/install-tools/include/unwind.h
-lib/gcc-lib/avr/3.3.2/install-tools/include/varargs.h
-lib/gcc-lib/avr/3.3.2/install-tools/mkheaders
-lib/gcc-lib/avr/3.3.2/install-tools/mkheaders.conf
-lib/gcc-lib/avr/3.3.2/install-tools/mkinstalldirs
-lib/gcc-lib/avr/3.3.2/libgcc.a
-lib/gcc-lib/avr/3.3.2/specs
-share/locale/be/LC_MESSAGES/gcc.mo
-share/locale/da/LC_MESSAGES/gcc.mo
-share/locale/de/LC_MESSAGES/gcc.mo
-share/locale/el/LC_MESSAGES/gcc.mo
-share/locale/es/LC_MESSAGES/gcc.mo
-share/locale/fr/LC_MESSAGES/gcc.mo
-share/locale/ja/LC_MESSAGES/gcc.mo
-share/locale/nl/LC_MESSAGES/gcc.mo
-share/locale/sv/LC_MESSAGES/gcc.mo
-share/locale/tr/LC_MESSAGES/gcc.mo
-@dirrm lib/gcc-lib/avr/3.3.2/avr3
-@dirrm lib/gcc-lib/avr/3.3.2/avr4
-@dirrm lib/gcc-lib/avr/3.3.2/avr5
-@dirrm lib/gcc-lib/avr/3.3.2/include
-@dirrm lib/gcc-lib/avr/3.3.2/install-tools/include
-@dirrm lib/gcc-lib/avr/3.3.2/install-tools
-@dirrm lib/gcc-lib/avr/3.3.2
-@dirrm lib/gcc-lib/avr
+lib/gcc/avr/3.4.0/avr3/libgcc.a
+lib/gcc/avr/3.4.0/avr3/libgcov.a
+lib/gcc/avr/3.4.0/avr4/libgcc.a
+lib/gcc/avr/3.4.0/avr4/libgcov.a
+lib/gcc/avr/3.4.0/avr5/libgcc.a
+lib/gcc/avr/3.4.0/avr5/libgcov.a
+lib/gcc/avr/3.4.0/include/README
+lib/gcc/avr/3.4.0/include/fixed
+lib/gcc/avr/3.4.0/include/float.h
+lib/gcc/avr/3.4.0/include/iso646.h
+lib/gcc/avr/3.4.0/include/limits.h
+lib/gcc/avr/3.4.0/include/stdarg.h
+lib/gcc/avr/3.4.0/include/stdbool.h
+lib/gcc/avr/3.4.0/include/stddef.h
+lib/gcc/avr/3.4.0/include/syslimits.h
+lib/gcc/avr/3.4.0/include/unwind.h
+lib/gcc/avr/3.4.0/include/varargs.h
+lib/gcc/avr/3.4.0/install-tools/gsyslimits.h
+lib/gcc/avr/3.4.0/install-tools/include/README
+lib/gcc/avr/3.4.0/install-tools/include/float.h
+lib/gcc/avr/3.4.0/install-tools/include/iso646.h
+lib/gcc/avr/3.4.0/install-tools/include/limits.h
+lib/gcc/avr/3.4.0/install-tools/include/stdarg.h
+lib/gcc/avr/3.4.0/install-tools/include/stdbool.h
+lib/gcc/avr/3.4.0/install-tools/include/stddef.h
+lib/gcc/avr/3.4.0/install-tools/include/unwind.h
+lib/gcc/avr/3.4.0/install-tools/include/varargs.h
+lib/gcc/avr/3.4.0/install-tools/mkheaders.conf
+lib/gcc/avr/3.4.0/libgcc.a
+lib/gcc/avr/3.4.0/libgcov.a
+lib/gcc/avr/3.4.0/specs
+libexec/gcc/avr/3.4.0/cc1
+libexec/gcc/avr/3.4.0/cc1plus
+libexec/gcc/avr/3.4.0/collect2
+libexec/gcc/avr/3.4.0/install-tools/fix-header
+libexec/gcc/avr/3.4.0/install-tools/fixinc.sh
+libexec/gcc/avr/3.4.0/install-tools/fixincl
+libexec/gcc/avr/3.4.0/install-tools/fixproto
+libexec/gcc/avr/3.4.0/install-tools/mkheaders
+libexec/gcc/avr/3.4.0/install-tools/mkinstalldirs
+@dirrm lib/gcc/avr/3.4.0/avr3
+@dirrm lib/gcc/avr/3.4.0/avr4
+@dirrm lib/gcc/avr/3.4.0/avr5
+@dirrm lib/gcc/avr/3.4.0/include
+@dirrm lib/gcc/avr/3.4.0/install-tools/include
+@dirrm lib/gcc/avr/3.4.0/install-tools
+@dirrm lib/gcc/avr/3.4.0
+@dirrm lib/gcc/avr
+@dirrm libexec/gcc/avr/3.4.0/install-tools
+@dirrm libexec/gcc/avr/3.4.0
+@dirrm libexec/gcc/avr