[Picolibc] Aarch64 testing in picolibc

Keith Packard keithp at keithp.com
Wed Jun 17 14:43:19 PDT 2020


I spent a bit of time yesterday getting enough aarch64 support added to
picolibc so that the tests now run under qemu.

 * Semihosting support. This just required an aarch64 implementation of
   'sys_semihost' as the rest of the semihost code 'just worked'.

 * thread local storage. Aarch64 uses the tpidr_el0 register as a
   pointer to TLS info, although (like arm), the values are offset for
   some reason. In this case it looks like the tpidr_el0 register points
   16 bytes before the TLS block. So, adding TLS support to picolibc 
   only needed defining the _set_tls function.
   
 * picolibc.specs. The Debian aarch64 compiler is set up to generate
   linux binaries, which include dynamic linking and other stuff. I've
   hacked up the picolibc.specs file so that the aarch64 port can add
   stuff to try and build usable embedded binaries.

I don't have any embedded aarch64 code to test this on, so everything
here was focused on getting tests running under qemu. Review and fixes
from those with actual aarch64 experience would be awesome.

-- 
-keith
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://keithp.com/pipermail/picolibc/attachments/20200617/40f578f6/attachment.sig>


More information about the Picolibc mailing list