Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/64_all_gcc43-pr34571.patch
http://gcc.gnu.org/PR34571

2007-12-26  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/34571
	* config/alpha/alpha.c (alpha_cannot_force_const_mem): Use
	symbolic_operand.
	* varasm.c (output_constant_pool_1): Fix typo.

diff -durN gcc-4.3.1.orig/gcc/config/alpha/alpha.c gcc-4.3.1/gcc/config/alpha/alpha.c
--- gcc-4.3.1.orig/gcc/config/alpha/alpha.c	2008-02-07 18:45:24.000000000 +0100
+++ gcc-4.3.1/gcc/config/alpha/alpha.c	2008-06-10 14:58:24.000000000 +0200
@@ -1113,8 +1113,7 @@
 static bool
 alpha_cannot_force_const_mem (rtx x)
 {
-  enum rtx_code code = GET_CODE (x);
-  return code == SYMBOL_REF || code == LABEL_REF || code == CONST;
+  return symbolic_operand (x, GET_MODE (x));
 }
 
 /* We do not allow indirect calls to be optimized into sibling calls, nor
diff -durN gcc-4.3.1.orig/gcc/varasm.c gcc-4.3.1/gcc/varasm.c
--- gcc-4.3.1.orig/gcc/varasm.c	2007-12-05 22:55:10.000000000 +0100
+++ gcc-4.3.1/gcc/varasm.c	2008-06-10 14:58:24.000000000 +0200
@@ -3710,7 +3710,7 @@
       /* FALLTHRU  */
 
     case LABEL_REF:
-      tmp = XEXP (x, 0);
+      tmp = XEXP (tmp, 0);
       gcc_assert (!INSN_DELETED_P (tmp));
       gcc_assert (!NOTE_P (tmp)
 		  || NOTE_KIND (tmp) != NOTE_INSN_DELETED);
