------- Comment #42 from iains at gcc dot gnu dot org  2010-04-13 01:07 -------
actually,

The logic in libgcc_s/libgcc_ext is working properly - libgcc_s.10.5 =>
/usr/libgcc_s.1.dylib => /usr/libSystem.dylib.   The function is named in
/usr/lib/libgcc_s.10.5.

What is happening is Bad [at least IMO]; 
we have a "catch-all" -lgcc at the end of each REAL_LIBGCC_SPEC line - which
I'm itching to remove (because, basically, it should not be necessary).

In the case of the 'working - by removing lm' what seems to be happening is
that the function is being picked up from the the static libgcc.a from that
catch-all.

in fact, the cases should fail regardless of -lm - since the function should be
sourced from the system-library via the libgcc_s.10.5 stubs.  

[FWIW the libgcc_s.10.5 stubs should also be removed for D10 - since they don't
add anything (except consumption of time) to the exercise.]

I dunno: 
I realize that people would prefer tests to pass - but I worry about the
tortuous way in which we are layering libraries (I'd really like to get rid of
the catch-all -lgcc) [although it could always be applied temporarily ahead of
the -lSystem in the LIB_SPEC for D10].

I guess the Right Thing is to XFAIL that test until the system lib is fixed...

We should still control the use/placement of -lm --- I've not changed opinion
on that.
And we should still file a "-lm not needed on Darwin" with Dejagnu (in spite of
nothing likely to happen quickly).

A user who REALLY wants the functions from libgcc.a can always put it on the
cl.


-- 


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

Reply via email to