Phát hành thư viện C chuẩn PicoLibc 1.4.7

Keith Packard, nhà phát triển Debian tích cực, lãnh đạo dự án X.Org và là người tạo ra nhiều tiện ích mở rộng X, bao gồm XRender, XComposite và XRandR, công bố phát hành thư viện C tiêu chuẩn PicoLibc 1.4.7, được phát triển để sử dụng trên các thiết bị nhúng có RAM và bộ nhớ cố định hạn chế. Trong quá trình phát triển, một phần mã được mượn từ thư viện thư viện mới từ dự án Cygwin và AVR Libc, được phát triển cho bộ vi điều khiển Atmel AVR. Mã PicoLibc phân phối bởi theo giấy phép BSD. Việc lắp ráp thư viện được hỗ trợ cho các kiến ​​trúc ARM (32-bit), i386, RISC-V, x86_64 và PowerPC.

Ban đầu, dự án được phát triển với tên “newlib-nano” và nhằm mục đích xử lý lại một số chức năng tiêu tốn nhiều tài nguyên của Newlib, vốn gặp khó khăn khi sử dụng trên các thiết bị nhúng có ít RAM. Ví dụ: các hàm stdio đã được thay thế bằng phiên bản nhỏ gọn từ thư viện avrlibc. Mã cũng đã được làm sạch khỏi các thành phần không được cấp phép BSD không được sử dụng trong bản dựng nhúng. Một phiên bản đơn giản của mã khởi tạo (crt0) đã được thêm vào và việc triển khai các luồng cục bộ đã được chuyển từ 'struct _reent' sang cơ chế TLS (lưu trữ cục bộ chuỗi). Bộ công cụ Meson được sử dụng để lắp ráp.

Trong bản phát hành mới:

  • Đã thêm khả năng xây dựng bằng cách sử dụng được xác minh về mặt toán học trình biên dịch Giấy chứng nhận.
  • Đã thêm hỗ trợ cho trình biên dịch Clang.
  • Hoạt động của chức năng 'gamma' đã được điều chỉnh phù hợp với hoạt động của Glibc.
  • Việc triển khai nano-malloc đảm bảo rằng bộ nhớ trả về sẽ bị xóa.
  • Cải thiện hiệu suất của nano-realloc, đặc biệt khi hợp nhất các khối miễn phí và mở rộng kích thước vùng heap.
  • Đã thêm một bộ kiểm tra để kiểm tra hoạt động chính xác của malloc.
  • Cải thiện hỗ trợ cho nền tảng Windows và thêm khả năng xây dựng bằng bộ công cụ mingw.
  • Trên hệ thống ARM, nếu có, thanh ghi phần cứng TLS (Thread-Local Storage) sẽ được bật.

Nguồn: opennet.ru