[Bug c++/31761] Build fails with "exception.hpp:84: internal compiler error: Segmentation fault"

davek at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Tue Mar 23 03:52:00 GMT 2010



------- Comment #4 from davek at gcc dot gnu dot org  2010-03-23 03:52 -------
(In reply to comment #3)

> There is a bug in gcc-4_2 in that it won't let you make a new ABI (with a three
> stage build). So how can you switch ABIs?

  No, there is/was not a bug.  Switching ABIs isn't just a matter of changing
--enable-sjlj-exceptions to --disable-sjlj-exceptions (or vice-versa); you also
have to make sure the backend supports the exception model you're switching to.
 This was taken care of when Danny added the cygming-crt{begin,end}.c files,
some time after 4.2.  It's a weakness that there's no way for configure to know
whether or not the option is supported and warn you at configure time, but
apart from that it's not surprising or a bug that using invalid options to
configure GCC produces a compiler that crashes or has bugs.

> I was able to convert Cygwin from "coff-pe" object file format to "elf" object
> file format (so I can use TLS and other superior elf features). That is similar
> to an ABI conversion but was more of a binutils issue (and then recompiling gcc
> over the new "as" and "ld").

  That so doesn't work.  As you discovered.

> There is a similar problem with using all those fancy options (EG:
> --enable-java-awt=gtk,xlib --enable-gtk-cairo --enable-qt-peer --enable-xmlj
> --enable-gconf-peer _AND_ also using --enable-multilib) that involves gcc
> looking for 64 bit libraries (that don't even exist) in /usr/lib when it should
> look in /lib64.

  Nope, that was just a problem with there not being any such thing as a /lib64
directory in Cygwin and ELF just fundamentally not working or supported on
Windows in any way at all.  Closing to tidy up BZ.


-- 

davek at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31761



More information about the Gcc-bugs mailing list