RISC-V: `ld.so' fails linking against `libgcc.a' built at `-O0'
Maciej W. Rozycki
macro@wdc.com
Tue Jul 14 09:35:16 GMT 2020
On Tue, 14 Jul 2020, Richard Biener wrote:
> > > Arguably this might probably be called a deficiency in libgcc, however
> > > the objects are built with `-fexceptions -fnon-call-exceptions'
> >
> > I consider that broken. It doesn't make any sense to build a lowlevel
> > runtime library like libgcc with exceptions.
>
> Indeed - you only need to be able to unwind through those, so
> -fasynchronous-unwind-tables should be used.
This is libgcc's default however, only overridden for a couple of ARM
targets, for the very reason to avoid pulling in the unwinder, according
to the associated comments. This was added with commit fc6aa0a98a0c some
3 months before commit b932f770f70d added `-fasynchronous-unwind-tables'
as a supported compiler option, all back in 2001, so we've had it for
quite a while now.
The RISC-V target doesn't appear to produce any division overflow traps,
which would necessarily have to be arranged by a software convention like
with, say, the MIPS target, as the relevant hardware instructions do not
trigger an exception under any conditions.
By switching to `-fasynchronous-unwind-tables' the ARM override can also
go presumably, right?
Maciej
More information about the Gcc
mailing list