[Picolibc] Version 1.8.4

Keith Packard keithp at keithp.com
Wed Sep 20 18:03:45 PDT 2023


### Picolibc version 1.8.4

 * Make math overflow and underflow handlers respect rounding modes.

 * Add full precision fma/fmaf fallbacks by adapting the long-double
   code which uses two floats/doubles and some careful exponent
   management to ensure that only a single rounding operation occurs.

 * Fix more m68k 80-bit float bugs

 * Fix m68k asm ABI by returning pointers in %a0 and %d0

 * Use an m68k-unknown-elf toolchain for m68k testing, including
   multi-lib to check various FPU configurations on older and more
   modern 68k targets.

 * Improve CI speed by using ccache on zephyr and mac tests,
   compressing the docker images and automatically canceling jobs when
   the related PR is updated. Thanks to Peter Jonsson.

 * Move a bunch of read-only data out of RAM and into flash by adding
   'const' attributes in various places.

 * Add a new linker symbol, `__heap_size_min`, which specifies a
   minimum heap size. The linker will emit an error if this much space
   is not available between the end of static data and the stack.

 * Fix a bunch of bugs on targets with 16-bit int type. Thanks to
   Peter Jonsson for many of these.

 * Work around a handful of platform bugs on MSP430. I think these are
   compiler bugs as they occur using both the binutils simulator and
   mspsim.

 * Run tests on MSP430 using the simulator that comes with gdb. Thanks to
   Peter Jonsson for spliting tests apart to make them small enough to
   link in under 1MB. This requires a patch adding primitive
   semihosting to the simulator.

 * Provide a division-free binary to decimal conversion option for
   printf at friends. This is useful on targets without hardware
   divide as it avoids pulling in a (usually large) software
   implementation. This is controlled with the 'printf-small-ultoa'
   meson option and is 'false' by default.

 * Add 'minimal' printf and scanf variants. These reduce functionality
   by removing code that acts on most data modifers including width
   and precision fields and alternate presentation modes. A new config
   variable, minimal-io-long-long, controls whether that code supports
   long long types.

 * Add a 'assert-verbose' option which controls whether the assert
   macro is chatty by default. It is 'true' by default, which
   preserves the existing code, but when set to 'false', then a
   failing assert calls __assert_no_msg with no arguments, saving the
   memory usually occupied by the filename, function name and
   expression.

 * Fix arm asm syntax for mrc/mcr instructions to make clang happy.
   Thanks to Radovan Blažek for this patch.


-- 
-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/20230920/27b62f64/attachment.sig>


More information about the Picolibc mailing list