Re: -= PROPOSAL =- Release sarge with amd64
On Tue, Jul 13, 2004 at 05:04:12PM +0200, Andreas Jochens wrote:
> Colin Watson wrote:
> >Judging from conversation on debian-glibc, it sounds like AMD64 really
> >wants to use gcc 3.4, which is not tenable for sarge because it involves
> >an API change (see Matthias Klose's recent mail to debian-release and
> >debian-glibc).
I meant ABI rather than API here, sorry.
> >Can you explain how critical this is to the port?
>
> There are minor ABI changes from gcc-3.3 to gcc-3.4 on some
> architectures (MIPS/SPARC).
> I doubt that those ABI changes will affect many libraries (They
> basically involve the direct use of structs and unions as function
> parameters, e.g. 'void f(struct s x)' - not pointer arguments like
> 'void f(struct s *x)'.)
Notes on GCC 3.4 in the sarge distribution
------------------------------------------
[package maintainers: when using GCC 3.4 for package building, please
check that your packages still work on platforms with GCC changes
specific for these platforms (hppa, m68k, mips, mipsel, sparc). ]
GCC 3.4 is included in sarge as a newer compiler version, the system
compiler for sarge is GCC 3.3 (the transition to a newer system compiler
is a post sarge issue). Due to some incompatibilities between
3.3 and 3.4 care should be taken, when some code built by both versions
is linked together (most likely linking against a shared library found
in Debian):
- C++ code compiled by g++-3.3 and g++-3.4 is not compatible. Applications
using C++ libraries have to make sure that these libraries are rebuilt.
[...]
Looking at libstdc++5 and libstdc++6, I see:
$ objdump -x /usr/lib/libstdc++.so.5 | grep CXXABI
7 0x00 0x056bafd2 CXXABI_1.2
8 0x00 0x0bafd271 CXXABI_1.2.1
CXXABI_1.2
$ objdump -x libstdc++6/usr/lib/libstdc++.so.6 | grep CXXABI
objdump: libstdc++6/usr/lib/libstdc++.so.6: no symbols
4 0x00 0x056bafd3 CXXABI_1.3
This is an ABI transition. In order to cope with this, all C++ library
packages will have to be renamed to *c103, the same way that they all
had to be renamed to *c102 when we moved to g++ 3.3. This took a long
time; the experience of the last time means that we know how to do it
gracefully, but it will still take time.
We *will not* be moving to g++ 3.4 for sarge. It would be release
management insanity.
> I fail to see why the amd64 port cannot use gcc-3.4. The amd64 port
> may use gcc-3.4 while the other architectures still use gcc-3.3.
The required library package name changes mean that the g++ 3.4
transition has to happen simultaneously on all architectures, or the
result will be total madness.
Cheers,
--
Colin Watson [cjwatson@flatline.org.uk]
Reply to: