[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

gcc-defaults: Please make gcc-3.4 the default on amd64

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.

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)
-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)
 ifeq ($(DEB_HOST_GNU_TYPE),arm-linux)

Reply to: