On Mon, Aug 02, 2021 at 08:04:45PM +0100, Lee Noar wrote:
> Unfortunately, GCC 10 does not support module generation as yet which
> is why GCC 4 is still our main compiler.
> The problem is that libscl which is the interface to the SharedCLibrary
> and what modules are linked against needs to be built as hard-float+FPA,
> however, FPA code generation was removed from GCC some years ago and is
> no longer supported. Really, what we need is a SharedCLibrary that
> supports VFP. Obviously, being able to build C modules is important to
> RISC OS and until GCC 10 can do that, we can't really have it as our
> main compiler.
I did wonder whether it would be feasible to add another ABI 'personality'
to SharedCLibrary - APCS_32_VFP or something - so I took a look. Yikes:
https://gitlab.riscosopen.org/RiscOS/Sources/Lib/RISC_OSLib/-/blob/master/s/cxsupport
There's quite a lot of FPA assembler lurking in there, with hand coded
assembler for doing math lib functions and in other places. Reimplementing
that for VFP (even in C) and getting it right would not be much fun.
I did wonder how much usefulness there is in the SharedCLibrary concept
nowadays. It's primarily designed for reducing the size of ROM modules, but
ISTM it doesn't actually do a whole lot as far as the user is concerned
(only basic ANSI C library functions plus bits like _kernel_swi), and its
interfacing with the system is relatively slim (memory management, file I/O,
stdin/out).
So I was wondering whether it would be feasible to instead use a third party
tiny libc like newlib. That has all the C stuff already implemented
(including optimised versions for ARM), and only needs the backend plumbing
to be implemented:
https://interrupt.memfault.com/blog/boostrapping-libc-with-newlib
https://sourceware.org/newlib/libc.html#Syscalls
Of course it's not going to be as small as SharedCLibrary, but
is it would be thread safe, portable and easier to maintain.
It wouldn't help building ROM modules with GCC though.
Theo
_______________________________________________
GCCSDK mailing list gcc@gccsdk.riscos.info
Bugzilla: http://www.riscos.info/bugzilla/index.cgi
List Info: http://www.riscos.info/mailman/listinfo/gcc
Main Page: http://www.riscos.info/index.php/GCCSDK
No comments:
Post a Comment