Package: gcc-defaults Severity: wishlist Please make gcc-3.4 the default on amd64. It has much better support for the amd64 architecture and also much better performance on amd64 than gcc-3.3.
Moreover, some packages cannot be compiled on amd64 at all with gcc-3.3 (e.g. gnustep-base, boost, etc.) and other packages just segfault amd64 when compiled with gcc-3.3 (e.g. mozilla). I recompiled the whole archive (~8500 packages including main, contrib, non-free and experimental) with gcc-3.4 as the default on amd64 to check for possible problems. This took about 9 days on a Dual-2GHz-Opteron machine. There are a few packages which need minor patches because gcc-3.4 is somewhat stricter than gcc-3.3. gcc-3.4 refuses to compile some constructs which do not conform to the C or C++-standards but which were tolerated by earlier gcc versions. I filed more than 150 bug reports with patches for packages which did not compile with gcc-3.4 and I will file some more in the next few days. Many of those patches have already been applied by the respective maintainers (thanks!). Those issues will have to be sorted out anyway because sooner or later the other architectures will switch to gcc-3.4 (or to a later version). I used the gcc-3.4.1 package from http://people.debian.org/~doko/gcc-3.4 and something like the attached patch to 'gcc-defaults' for my tests. However, I am not sure if this patch is entirely correct. Please note the following lines of the patch: -ifeq ($(DEB_HOST_GNU_TYPE),amd64-linux) +ifeq ($(DEB_HOST_GNU_TYPE),x86_64-linux) i.e. 'amd64-linux' has to be replaced with 'x86_64-linux'. Otherwise the condition will always be false and the amd64 specific settings (like excluding 'chill' from packages) will be ignored. This is a bug in the current version of 'gcc-defaults'. Thank you for your help with the amd64 port. Regards Andreas Jochens diff -urN ../tmp-orig/gcc-defaults-1.17/debian/rules ./debian/rules --- ../tmp-orig/gcc-defaults-1.17/debian/rules 2004-07-13 07:43:06.000000000 +0200 +++ ./debian/rules 2004-07-18 10:48:36.606020682 +0200 @@ -31,6 +31,8 @@ REL_NO_333 := $(shell expr $(REL_NO) - 12) # gcc-defaults 1.16 is the first version with 3.3.4 support. REL_NO_334 := $(shell expr $(REL_NO) - 15) +# gcc-defaults 1.17 is the first version with 3.4 support. +REL_NO_34 := $(shell expr $(REL_NO) - 16) # GPC_DATE := 20040516 @@ -42,7 +44,9 @@ REQV_30 := (>= 1:3.0.4-12) REQV_32 := (>= 1:3.2.3-1) REQV_33 := (>= 1:3.3.4-1) +REQV_34 := (>= 3.4.1-1) REQV_GPC_33 := (>= 1:3.3.4.$(GPC_DATE)-1) +REQV_GPC_34 := (>= 3.4.1.$(GPC_DATE)-1) # architecture dependent variables DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH) @@ -81,8 +85,29 @@ ifeq ($(DEB_HOST_GNU_TYPE),alpha-linux) endif -ifeq ($(DEB_HOST_GNU_TYPE),amd64-linux) +ifeq ($(DEB_HOST_GNU_TYPE),x86_64-linux) packages := c++ fortran java objc pascal + + CV_GPC := 3.4.1-$(REL_NO_34) + + CV_CPP := 3.4.1-$(REL_NO_34) + CV_GCC := 3.4.1-$(REL_NO_34) + CV_GPP := 3.4.1-$(REL_NO_34) + CV_GOBJC := 3.4.1-$(REL_NO_34) + CV_G77 := 3.4.1-$(REL_NO_34) + CV_GCJ := 3.4.1-$(REL_NO_34) + CV_GIJ := 3.4.1-$(REL_NO_34) + + REQV_GPC = $(REQV_34) + + REQV_CPP = $(REQV_34) + REQV_GCC = $(REQV_34) + REQV_GPP = $(REQV_34) + REQV_GOBJC = $(REQV_34) + REQV_G77 = $(REQV_34) + REQV_GCJ = $(REQV_34) + REQV_GIJ = $(REQV_34) + REQV_GPC = $(REQV_GPC_34) endif ifeq ($(DEB_HOST_GNU_TYPE),arm-linux)