Após 10 meses de desenvolvimento, a biblioteca padrão C Musl 1.2.5 foi lançada. Ela fornece uma implementação da libc adequada para PCs desktop, servidores e sistemas móveis. Combina suporte completo aos padrões (como a Glibc) com tamanho reduzido, baixo consumo de recursos e alto desempenho (como a uClibc, dietlibc e Android Bionic). Suporta todas as interfaces C99 e POSIX 2008 necessárias, além de suporte parcial ao C11 e um conjunto de extensões para programação multithread (threads POSIX), gerenciamento de memória e suporte a localidades. A Musl é licenciada sob a licença MIT.
Grandes mudanças:
- A função statx() foi adicionada. Ela difere de fstatat64 por possuir um argumento de flag adicional. Se o kernel não suportar a chamada de sistema statx, que retorna informações estendidas sobre o arquivo, incluindo a hora de criação do arquivo e flags específicas do sistema de arquivos, a chamada de sistema fstatat será usada em seu lugar.
- As funções preadv2() e pwritev2() foram adicionadas, fornecendo wrappers para as chamadas de sistema do kernel Linux de mesmo nome. As novas funções diferem de preadv() e pwritev() por possuírem um argumento adicional para passar flags extras para o kernel, como RWF_SYNC (descarregar dados e metadados do cache para o dispositivo de armazenamento após a operação) e RWF_DSYNC (forçar a descarregamento apenas dos dados para o dispositivo de armazenamento).
- Adicionado suporte para as arquiteturas Loongarch64 e Riscv32.
- A implementação da função clone() foi levada a um estado utilizável.
- A função statvfs() garante retornar um resultado do tipo f_type.
- Para sistemas Riscv64, foi adicionado suporte ao mecanismo TLSDESC (Thread-Local Storage Descriptor).
- O resolvedor de DNS agora processa respostas com longas sequências CNAME. Um problema que causava o descarte de algumas respostas grandes transmitidas via TCP foi resolvido.
- As interfaces do mntent agora suportam a quebra de espaços em caminhos de arquivos e opções.
- As funções snprintf e swprintf agora lidam corretamente com números maiores que INT_MAX. A família de funções printf foi aprimorada para melhor conformidade com o padrão.
Fonte: opennet.ru
