On 10 Dec 2008, at 18:10, Mike Stump wrote:
On Dec 10, 2008, at 9:43 AM, Jack Howarth wrote:
If I now understand correctly, the symbols present in updated
versions of
libgcc that are not in the "stock" system libgcc on darwin - need
to be
mentioned in the stub libraries (ligcc_s.10.{4,5,...} ). The
emutls ones
were not present causing linkage failures that were silently
UNSUPPORTING
a lot of tests.
No, those files are meant to describe what was shipped in the past
on darwin as part of darwin. So, changing them isn't quite the
right way to do this. Best to put them in the libgcc.a file and
let them link in statically. Is there some reason why this doesn't
work? I can answer questions and offer advice, feel free to cc me.
thanks MIke,
the basic issue is that TLS (as used extensively within gomp) is
implemented, at present, as an emulation (emutls).
This is present in libgcc_s.1.dylib and libgcc_eh.a
However, as Jack says, it seems currently very difficult to persuade
gcc to extract symbols from this un-versioned lib (without mentioning
it specifically on the CL)
Whilst this is a possible work-around for getting the test suite to
work, it concerns me that it's quite obscure and prone to being
missed out, forgotten, and/or fragile.
There is an added inconvenience in that darwin8's ld command behaves
differently from darwin9's
the only work-around I've found that gives equal results on d8 and d9
is to specify -lgcc_eh
these approaches seem like temporary hacks .. and I wonder what a
good long-term solution would be?
cheers,
Iain