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

preparing sid/lenny to build with GCC-4.3

Hash: SHA1

preparing sid/lenny to build with GCC-4.3 (0-day NMUs)

Over the last year many test rebuilds of the archive were made using
new compiler versions taken from the upstream repositories.  The
results of these rebuilds look promising so we will make GCC-4.3 the
default compiler for at least these architectures with good test
results soon after the creation of the GCC-4.3 release branch.  Other
distributions (Fedora and Novell) are currently preparing their next
releases based on the GCC-4.3 compilers, and are heavily involved in
upstream development.  Test rebuilds for Ubuntu gutsy and hardy were
made for amd64, i386, and sparc.  On Debian one or more test rebuilds
were made for alpha, hppa, i386, ia64, amd64, sparc. In short, 4.3
will become a good release.

Among some new features and bug fixes (see [1] for a preliminary list
of changes), the C++ compiler is now more strict, plus libstdc++ did
see a reorganisation of header include files, which both lead to a
large number of build failures, which will turn into release critical
bugs once the first architecture changes to g++-4.3 as the default C++
compiler.  While a large number of packages is already fixed and
prepared to build with 4.3, we still have more than 500 packages which
do not build with g++-4.3 (see [3]).  The list may not be complete as
the libstdc++ header reorganisation was ongoing after filing these

The buildability with GCC-4.3 is a proposed release goal ([4]), please
help fixing these known build failures.  You can use 0-day-NMUs to
upload packages which fix build failures with GCC-4.3.  To test-build
packages, either set CC=gcc-4.3 CXX=g++-4.3 explicitely or use the
cpp, gcc, g++ packages from experimental.

If you file new bug reports for build failures with GCC-4.3, please
tag them with user tags (User: tbm@cyrius.com, Usertags: ftbfs-gcc-4.3).

See [2] for a porting guide towards GCC-4.3.  The majority of build
failures result from missing declarations of C functions; these can
ususally be fixed by including additional header files (e.g., #include
<cstring>, #include <cstdlib>).  Other failures result from the use of
duplicate parameter names in method declarations or long deprecated
header files which are gone now (iostream.h -> iostream).

Avoid working around problems.  Don't use options to work around
problems (-fpermissive, -Wno-deprecated), but update the packages (try
to avoid <backward/*.h> headers).  If you have to use an older
compiler version, please try to use gcc-4.1/g++-4.1, so that we have
the chance to drop gcc-4.2 for the next release (together with
gcc-3.4/g++-3.4/gcc-4.0).  If you need to use a non-default-compiler
version, please file a bug report for this package and tag it with
user tags (User: debian-gcc@lists.debian.org, Usertags:
non-standard-compiler).  The list of these packages can be found at [5].

It is likely that other distributions and/or upstream already have
patches for buildability with 4.3 (e.g. the Ubuntu diff at
http://packages.qa.debian.org/<srcpackage>), or a patch in the Fedora
packaging archive).

The 4.3 compilers for fortran and java are already used as the default
compilers.  Details for the transition from g77 to gfortran can be
found at [6].

Please use the debian-gcc@lists.debian.org ML for help, for gfortran
related issues please use debian-toolchain@lists.debian.org.


Thanks to Martin Michlmayer and Lucas Nussbaum for the ongoing testing.

[1] http://gcc.gnu.org/gcc-4.3/changes.html
[2] http://gcc.gnu.org/gcc-4.3/porting_to.html
[4] http://lists.debian.org/debian-release/2007/09/msg00001.html
[6] http://lists.debian.org/debian-toolchain/2007/07/msg00000.html

Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org


Reply to: