Bug#685894: linux FTBFS on alpha: gcc-4.5 no longer available
Justification: Fails to build from source but built in the past.
linux no longer builds on Alpha due to the demise of gcc-4.5 in unstable.
We will have to move to the default compiler (gcc-4.6) but using gcc-4.6
to build the kernel results in relocation errors against the sbss
section during the link. This can be worked around by modifying the
-msmall-data compiler argument in arch/alpha/Makefile to -mlarge-data.
It means extra CPU instructions to access kernel global variables thus a
slightly larger and less efficient kernel. I did try to ask the gcc
Alpha maintainer why using gcc-4.6 should have such an effect but did
not get back a particularly informative answer.
So if you could remove the requirement to build the kernel with gcc-4.5
and apply the attached patch to switch to the large data model for the
next linux source upload, I should be grateful.
diff --git a/arch/alpha/Makefile b/arch/alpha/Makefile
index 4759fe7..b5d44bd 100644
@@ -12,7 +12,7 @@ NM := $(NM) -B
LDFLAGS_vmlinux := -static -N #-relax
CHECKFLAGS += -D__alpha__ -m64
-cflags-y := -pipe -mno-fp-regs -ffixed-8 -msmall-data
+cflags-y := -pipe -mno-fp-regs -ffixed-8 -mlarge-data
cflags-y += $(call cc-option, -fno-jump-tables)
cpuflags-$(CONFIG_ALPHA_EV4) := -mcpu=ev4