Lançamento da biblioteca padrão C PicoLibc 1.8.6

Foi lançado o release da biblioteca padrão C PicoLibc 1.8.6, desenvolvida por Keith Packard (líder do projeto X.Org) para uso em dispositivos embarcados com espaço de armazenamento permanente e memória RAM limitados. Durante o desenvolvimento, parte do código foi emprestada da biblioteca newlib do projeto Cygwin e AVR Libc, que foi desenvolvida para microcontroladores Atmel AVR. O código do PicoLibc é distribuído sob a licença BSD. A biblioteca é suportada para arquiteturas ARM (32 bits), Aarch64, i386, RISC-V, x86_64, m68k e PowerPC.

Inicialmente, o projeto foi desenvolvido sob o nome "newlib-nano" e tinha como objetivo a reengenharia de algumas funções do Newlib que eram problemáticas para uso em dispositivos embarcados com pouca RAM. Por exemplo, em PicoLibc, as funções stdio foram substituídas por uma versão compacta da biblioteca avrlibc. O código também foi limpo de componentes não utilizados na construção para dispositivos embarcados que não eram fornecidos sob a licença BSD. Uma versão simplificada do código de inicialização (crt0) foi adicionada, e a implementação das chamadas foi mudada de 'struct _reent' para um mecanismo TLS (armazenamento local por thread). A construção utiliza a ferramenta Meson.

No novo lançamento:

  • As mudanças do Newlib 4.4.0 foram transferidas, como suporte ao tipo 'long double' nas arquiteturas i386, RISC-V, Aarch64 e x86_64, suporte aos extensões RISC-V Zfinx/Zdinx, a possibilidade de usar máscaras na inserção de diretórios, a implementação do porto para processadores Xtensa, e a separação dos manipuladores printf em arquivos individuais para reduzir o tamanho durante a vinculação.
  • Adicionados símbolos '__eh_*' no picolibc.ld para LLVM libunwind.
  • Suporte de teste para sistemas SPARC de 32 bits foi incluído.
  • Suporte para plataformas-alvo com tipos de ponto flutuante não convencionais agora é refletido nos tipos de 32, 64, 80 e 128 bits no código do picolibc.
  • Adicionado suporte à arquitetura RISC SuperH.
  • Melhorada a rastreabilidade da pilha durante a depuração de código de exceção em sistemas RISC-V.
  • Adicionada a opção '-Dfast-bufio=true' para aumentar a eficiência de leitura e gravação ao usar bufio.
  • Limpeza das funções inline públicas para compartilhamento da semântica gnu_inline foi realizada.
  • A maioria das funções fenv para melhorar o desempenho foi convertida para usar funções inline (gnu_inline) em vez das normais.
  • Uma implementação alternativa de ctype foi criada, que não usa um array ctype e realiza comparações diretas de valores.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster