On Sun, Feb 10, 2008 at 06:33:46PM +0100, Martin Michlmayr <[EMAIL PROTECTED]> 
was heard to say:
> * Gaudenz Steinlin <[EMAIL PROTECTED]> [2008-02-09 21:01]:
> > I tried to fix this today, but quickly discovered that #456971 on
> > libsigc++-2.0-dev is blocking this further down the path. As I currently
> > don't have the time to fix libsigc++-2.0-dev as well I just subscribed
> > to #456971 and added a block. I will look into this again as soon as
> > #456971 is fixed.
> > 
> > What are the current NMU rules for this issue? Would an NMU for #456971
> > be acceptable atm?
> 
> I'm not sure there's a solution for #456971 yet, although I heard
> rumours the problem is fixed in a newer upstream release.
> 
> Daniel, did you have any chance to look into this issue?  This is
> getting really important because many packages fail to compile with
> gcc 4.3 because of this.

  I did talk to upstream, and it looks like there is a completely new
branch of libsigc++ in which this is fixed.  Unfortunately, it appears
that this change hasn't yet made it into the 2.0 branch.  If this is
becoming important, then the steps I see are to:

  (a) do my best to ensure that there are no nasty side-effects if I
      apply the workaround I found earlier, and
  (b) apply it if it looks safe.

  I might be able to make some time next weekend to at least get some
work started on (a), although that's probably something other people
could verify as well.  The patch that fixes the build is attached.
According to comments in the code, the typedef that's at fault is purely
a backwards-compatibility feature, and since it's just a typedef I would
*presume* that type erasure means it won't affect the ABI of the
library.  I'll feel better if I can verify that lots of code still
builds and runs against the new version (and that the new version is
runtime-compatible with the old version).

  Daniel
--- sigc++/signal.h.orig	2008-02-11 21:11:19.000000000 -0800
+++ sigc++/signal.h	2008-02-11 21:15:19.000000000 -0800
@@ -18,7 +18,11 @@
   //Compilers, such as older versions of SUN Forte C++, that do not allow this also often
   //do not allow a typedef to have the same name as a class in the typedef's definition.
   //For Sun Forte CC 5.7 (SUN Workshop 10), comment this out to fix the build.
-  #define SIGC_TYPEDEF_REDEFINE_ALLOWED 1
+  //
+  // Debian-specific patch: gcc-4.3 does not allow this either, and the
+  // comments below say this is a backwards-compatibility typedef, so
+  // just don't enable this feature at all.
+  //#define SIGC_TYPEDEF_REDEFINE_ALLOWED 1
 #endif
 
 namespace sigc {

Reply via email to