Exceptions Handling on PPC64 with clang - gnu ld bug identified
Mark Millard
markmi at dsl-only.net
Sun Oct 8 00:47:42 UTC 2017
Roman Divacky rdivacky at freebsd.org wrote on
Sat Oct 7 10:03:10 UTC 2017 :
> In a followup to https://lists.freebsd.org/pipermail/freebsd-toolchain/2017-May/002961.html
>
> I attempted to fix gnu ld in base to fix the wrongly set bit.
>
> The following patch
> http://www.vlakno.cz/~rdivacky/ppc64.exceptions.fix.patch
>
> switches a few computations to happen in 64bits instead of 32bit and fixes the
> wrong personality/LDSA info in binaries.
>
> As a result clang compiled/assembled c++ binaries with EH start to work for me.
>
> Can someone verify this works for everyone? I can see the same cast in upstream
> binutils but in a couple more places, so this is probably not the final answer
> but is good enough for me.
Just for the record: in a separate exchange it was realized that:
A) This was for a context of a buildworld that was built
via gcc 4.2.1 and being able to use clang in such a
context.
B) This is insufficient to fully fix a buildworld that was built
via clang and then use either clang or gcc (such as gcc7) to
generate code bound to the system libc++ and libcxxrt for
code that throws C++ exceptions.
A clang-based builworld results in problems in libc++ and/or
libcxxrt for handling thrown C++ exceptions.
===
Mark Millard
markmi at dsl-only.net
More information about the freebsd-toolchain
mailing list