Lines Matching +full:- +full:dposix +full:- +full:io
2 Copyright © 2018-2023 Keith Packard
7 [AVR Libc](https://www.nongnu.org/avr-libc/).
19 from Newlib, none of the GPL-related bits used to build the library
20 are left in the repository, so all of the source code uses BSD-like
21 licenses, a mixture of 2- and 3- clause BSD itself and a variety of
24 There are two files used for testing printf, test/printf-tests.c and
32 license information in the Debian standard machine-readable format. It
33 was generated using the make-copyrights and find-copyright
41 * ARC (32- and 64- bit)
42 * ARM (32- and 64- bit)
49 * RISC-V (both 32- and 64- bit)
56 * Microblaze (32-bit, big and little endian)
64 architecture-specific libc bits. This should at least include
70 environment. By default, it stores them in 16-bit values, but
71 some architectures only have 32-bit atomics. To avoid ABI
76 architecture-specific libm bits
83 5. cross-_gcc-triple_.txt to configure the meson cross-compilation
86 6. do-_architecture_-configure to make testing the cross-compilation
93 8. run-_architecture_ script to run tests under QEMU. Look at the ARM
94 and RISC-V examples to get a sense of what this needs to do and
95 how it gets invoked from the cross-_gcc-triple_.txt configuration
102 changes in the build system and per-thread data storage, the bulk of
130 * [Hello World](hello-world/README.md). Build and run a stand-alone C
131 application by following step-by-step instructions
140 * [Re-entrancy and Locking](doc/locking.md)
158 * Support ARM v8.1-m BTI and PAC features
189 * Make Zephyr's -Oz cmake option enable
197 * Stop using -include picolibc.h during library build.
199 * Add -Wmissing-declarations and -Wmissing-prototypes to library
212 -march=armv8-a+nofp -mabi=aapcs-soft. This required building a
213 custom toolchain that included a compiler-rt library built with the
243 * Provide a build-time option to enable %n in printf. This is
249 * Fix wide and multi-byte character support in printf and scanf. For
251 %lc/%ls in printf even if multi-byte support is not enabled.
266 * Add support for C's Annex K functions. These are bounds-checking
273 * Place compiler-rt library after C library when linking
287 * Enable 32-bit SPARC for testing.
293 target types to 32-, 64-, 80- and 128- bit picolibc code.
298 * Improve debugger stack trace in risc-v exception code. Thanks to
301 * Add an option (-Dfast-bufio=true) for more efficient fread/fwrite
333 * Detect clang multi-lib support correctly by passing compiler flags.
336 * Create a new 'long-long' printf variant. This provides enough
349 * Add full precision fma/fmaf fallbacks by adapting the long-double
353 * Fix more m68k 80-bit float bugs
357 * Use an m68k-unknown-elf toolchain for m68k testing, including
358 multi-lib to check various FPU configurations on older and more
365 * Move a bunch of read-only data out of RAM and into flash by adding
372 * Fix a bunch of bugs on targets with 16-bit int type. Thanks to
384 * Provide a division-free binary to decimal conversion option for
387 implementation. This is controlled with the 'printf-small-ultoa'
393 variable, minimal-io-long-long, controls whether that code supports
396 * Add a 'assert-verbose' option which controls whether the assert
410 * Use -fanalyzer to find and fix a range of issues.
413 building applications with -fsanitize=bounds and
414 -fno-sanitize-undefined-trap-on-error.
422 re-ordering code and causing incorrect exception generation.
424 * Use the small/slow string code when -fsanitize=address is used
435 * Fix 80-bit floating math library support for m68k targets.
438 testing to all standard multi-lib configurations.
447 addend is infinity (-inf + inf results in NaN in that case).
459 * Fix a couple of minor imprecisions in pow and 80-bit powl.
473 * Fix cmake build system to auto-detect compiler characteristics
520 * Fix FPSCR state for Arm8.1-M low overhead loops (thanks to David
523 * Add -Werror=double-promotion to default error set and fix related
526 * Fix locking bug in malloc out-of-memory path and freeing a locked
546 * Add nearly complete long double support from openlibm for 80-bit
547 Intel and 128-bit IEEE values (in addition to supporting 64-bit
556 needed to validate the big-endian and exception code for 128-bit
574 sysroot-install when compiler doesn't use sysroot.
578 * Deal with RISC-V changes in gcc that don't reliably include zicsr
580 * Support Picolibc as default C library with -Dsystem-libc option.
587 * Support 16-bit int targets by fixing a few places assuming
589 ucs-4 values
595 * Support libc++ by adding non-standard mbstate_t.h
609 2. Fix out-of-source CMake build (thanks Max Behensky)
617 6. Remove %M from linker paths in single-arch builds
621 8. Use -fno-builtin-malloc -fno-builtin-free (GCC 12 compat)
623 9. Use -fno-builtin-copysignl (GCC 12 compat)
625 10. Add _zicsr to -march for risc-v picocrt (binutils 2.38 compat)
627 11. Add -no-warn-rwx-segments to link spec (binutils 2.38 compat)
635 3. Document how re-entrant locking APIs are used. (Thanks to rdiez)
637 4. Fix some 16-bit int issues in tinystdio. (Thanks to Ayke van
647 7. Re-do buffered I/O support to handle mixed read/write files
664 2. Automatically include '-nostdlib' to options used while
668 functions work in installed applications for arm and risc-v.
672 1. Fix build on big-endian systems (thanks to Thomas Daede)
676 3. Fix build issues with ARM Cortex-a9 target (thanks to Ilia
680 returned the wrong value and legacy stdio caused a divide-by-zero
689 7. Fix tinystdio error-handling bugs
695 10. Big-endian PowerPC support
703 13. Support for multiple build-styles of picolibc (minsize/release)
708 bugs, including a couple of places where the nano-malloc failed
709 to check for out-of-memory. Picolibc now passes all of the glibc
727 returns. The ARM and RISC-V versions of this also include trap
744 5. Support building with -D_FORTIFY_SOURCE enabled.
746 6. Clean up 32-bit arm assembly code, eliminating __aeabi wrappers
751 8. Fix all old-style (K&R) function definitions.
757 11. Add tests from musl libc-testsuite. There aren't many tests, but
765 compiler work-arounds to ensure run-time evaluation of
767 the libm/math files were reformatted with clang-format.
778 1. Add -Wall -Wextra to default builds. Fixed warnings this raised.
794 3. Also stick -isystem in C++ compile command to try and get
802 2. Fix lack of 'hh' support in integer-only tinystdio printf path.
810 '-lm' to link successfully. Having them merged allows use of libm
825 restore compatibility with applications building with --std=c18.
833 2. Add '-fno-stack-protector' when supported by the C compiler
839 with --std=c18
862 5. Fix HW floating point initialization on 32-bit ARM processors to
866 6. Create a new '--picolibc-prefix' GCC command line parameter that
869 7. Add bare-metal i386 and x86_64 initializatiton code (thanks to
878 'NAN' and 'INF' in fscanf in a case-insensitive manner, fix
911 8. A few RISC-V assembly fixes and new libm code.
914 architecture-specific implementations.
929 3. Fix fma/fmaf on arm and RISC-V so that the machine-specific versions
933 4. Fix numerous nano-malloc bugs, especially with unusual parameters.
935 5. Change nano-malloc to always clear returned memory.
937 6. Improve nano-realloc to perform better in various ways, including
951 clang builds use -Wdouble-promotion -Werror=double-promotion
954 12. Have portable code check for machine-specific overrides by
966 compiling with -D_FORTIFY_SOURCE.
968 2. Make getc/ungetc re-entrant. This feature, which is enabled by
974 built-in CCS data for all of the supported encodings, which takes
975 a fairly large amount of read-only memory. Iconv is now always
980 GCC version 10 compiled for aarch64-linux-gnu.
982 5. Change how integer- and float- only versions of printf and scanf
983 are selected. Instead of re-defining the symbols using the C
984 preprocessor, picolibc now re-defines the symbols at link
987 still preserving the smallest possible integer-only
1001 2. Add startup and TLS support for aarch64 and non Cortex-M 32-bit
1015 1. Make fix for CVE 2019-14871 - CVE 2019-14878 in original newlib
1024 by accident while removing POSIX filesystem-specific code.
1030 5. More clang-compatibility fixes. (Thanks to Denis Feklushkin)
1044 3. Testing on github on push and pull-request. For now, this is
1058 7. Check for correct prefix when sysroot-install option is
1080 compiling with -ansi
1082 5. Make 'naked' RISC-V _start function contain only asm
1085 6. Use -msave-restore in sample RISC-V cross-compile
1098 3. 4-clause BSD licenses were changed (with permission) to 3-clause
1100 4. Fix RISC-V ieeefp.h exception bits
1114 passes its own test suite on x86, RISC-V and ARM.
1119 4. A few RISC-V ABI fixes, including setting the TLS base correctly,
1120 compiling with -mcmodel=medany, and enabling the FPU for libraries
1136 space definitions. These re-definitions would fail and the default
1145 lets the 'hello-world' example do some semihost specific things.
1152 and RISC-V hosts using the standard semihosting interfaces.
1154 2. Posix I/O support in tinystdio. When -Dposix-io=true is included
1157 write and lseek. If -Dposix-console=true is also passed to meson,
1165 how to us picolibc when installed for ARM and RISC-V embedded
1176 1. Remove all non-BSD licensed code. None of it was used in building
1180 2. Move thread-local values to native TLS mechanism
1182 3. Add smaller stdio from avr-libc, which is enabled by default