[Picolibc] Version 1.7.5

Keith Packard keithp at keithp.com
Mon Mar 14 11:54:26 PDT 2022


Version 1.7.5 is finally wrapped up this morning; lots of useful
changes; here's the README.md notes about the release. Thanks to all who
contributed to this release.

Debian and Arm GNU Toolkit packages are now built in both space and
speed optimized forms; the space optimized forms are what you get by
default. If you want the speed optimized versions, use
'--picolibc-buildtype=release' when building your applications.

 1. Fix build on big-endian systems (thanks to Thomas Daede)

 2. Add m68k support (thanks to Thomas Daede).

 3. Fix build issues with ARM Cortex-a9 target (thanks to Ilia
    Sergachev).

 4. Fix fwrite(x,0,y,z) in both tinystdio and legacy stdio. tinystdio
    returned the wrong value and legacy stdio caused a divide-by-zero
    fault.

 5. Update Ryu code to match upstream (minor fixes)

 6. Fix various __NEWLIB and __PICOLIBC macros; they were using a
    single leading underscore instead of two (thanks to Vincent
    Palatin).

 7. Fix tinystdio error-handling bugs

 8. Merge recent newlib changes (fixed ltdoa in legacy stdio)

 9. Speed improvements for github CI system

 10. Big-endian PowerPC support

 11. Fail builds if most 'run_command' uses fail (thanks to Johan de
     Claville Christiansen)

 12. Positional parameters in tinystdio. With this, I think tinystdio
     is feature complete.

 13. Support for multiple build-styles of picolibc (minsize/release)
     in one binary package. This still requires separate meson runs.

 14. Testing with glibc test code. This uncovered numerous bugs,
     mostly math errno/exception mistakes, but also a few serious
     bugs, including a couple of places where the nano-malloc failed
     to check for out-of-memory. Picolibc now passes all of the glibc
     math tests except for jn, yn, lgamma and tgamma. The picolibc
     versions of those functions are too inaccurate. Picolibc also
     passes most other relevant glibc tests, including stdio,
     string and stdlib areas.

 15. Tinystdio version of fcvt now has a static buffer large enough to
     hold the maximum return size.

 16. Tinystdio versions of ecvtbuf and fcvtbuf have been replaced
     with ecvt_r and fcvt_r equivalents, which take a 'len' parameter
     to prevent buffer overruns.

 17. Add the GeneratePicolibcCrossFile.sh script which provides a way
     to isolate picolibc build scripts from the vagaries of meson
     version shifts (thanks to R. Diez).

 18. Add 'semihost' version of crt0 that calls 'exit' after main
     returns. The ARM and RISC-V versions of this also include trap
     handlers for exceptions that print out information and exit when
     an exception occurs.

-- 
-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/20220314/21c4689d/attachment-0001.sig>


More information about the Picolibc mailing list