This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: new improved EH on Darwin


Geoffrey Keating wrote:

Apparently, Darwin's ld will reorder objects you supply on the command
line, which means that the end-of-section marker in crtend.o sometimes
appears before the EH information for libgcc.  In particular, all the
EH tests fail on mainline if you use the sourceware dejagnu (because
the sourceware dejagnu supplies -lm, which is really -lc on Darwin, so
you get -lc -lgcc -lc -lgcc -lcrtend.o which then gets reordered).

Thus, some rewriting is in order.  This version of EH for Darwin has
these additional advantages:
- works across modules
- compatible with the native GCC on Darwin
- less load-time overhead
none of which the previous version (in this tree) had.  It also has a
small advantage over the previous Apple version:
- can throw even when malloc can't allocate memory.

This looks great!  A big improvement over that first version I put
in.  It would sure be nice to have some tests for this, seeing as
how this is only visibly different in the testsuite depending on
the dejagnu version one uses, but admittedly it might be hard to
guarantee reordering, or to set up something with multiple dylibs.

A couple nits:

	(DWARF2_OBJECT_END_PTR_EXTENSION): Define.

Is this really the first use of this macro, as it appears to be?
Curious.  In any case, it would be good to document it in tm.texi.

	* config/rs6000/darwin-crtbegin.c: New.

Presumably that's darwin-crt2.c.

It's probably also worth describing the keymgr a little more
in unwind-dw2-fde-darwin.c, since it's not a documented API
of Darwin even though it's always present in the System
framework.  Should include a pointer to its sources too.

Stan



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]