PicoLibc 1.4.7 Standard C Library Release

Keith Packard นักพัฒนา Debian ที่กระตือรือร้น ผู้นำโครงการ X.Org และผู้สร้างส่วนขยาย X มากมาย รวมถึง XRender, XComposite และ XRandR ตีพิมพ์ การเปิดตัวไลบรารี C มาตรฐาน PicoLibc 1.4.7ได้รับการพัฒนาเพื่อใช้บนอุปกรณ์ฝังตัวที่มีพื้นที่จัดเก็บถาวรและ RAM ที่จำกัด ในระหว่างการพัฒนา โค้ดบางส่วนถูกยืมมาจากห้องสมุด ใหม่ จากโครงการ Cygwin และ เอวีอาร์ ลิบซีพัฒนาขึ้นสำหรับไมโครคอนโทรลเลอร์ Atmel AVR รหัส PicoLibc จัดจำหน่ายโดย ภายใต้ใบอนุญาต BSD ชุดประกอบไลบรารีได้รับการสนับสนุนสำหรับสถาปัตยกรรม ARM (32 บิต), i386, RISC-V, x86_64 และ PowerPC

ในขั้นต้น โครงการนี้ได้รับการพัฒนาภายใต้ชื่อ "newlib-nano" และมีเป้าหมายที่จะนำฟังก์ชันบางอย่างที่ใช้ทรัพยากรมากของ Newlib กลับมาใช้ใหม่ ซึ่งเป็นปัญหาในการใช้งานบนอุปกรณ์ฝังตัวที่มี RAM เพียงเล็กน้อย ตัวอย่างเช่น ฟังก์ชัน stdio ถูกแทนที่ด้วยเวอร์ชันกะทัดรัดจากไลบรารี avrlibc รหัสยังได้รับการทำความสะอาดส่วนประกอบที่ไม่ได้รับใบอนุญาต BSD ซึ่งไม่ได้ใช้ในโครงสร้างแบบฝัง มีการเพิ่มรหัสการเริ่มต้นเวอร์ชันที่เรียบง่าย (crt0) และการใช้งานเธรดในเครื่องถูกย้ายจาก 'struct _reent' ไปยังกลไก TLS (ที่เก็บข้อมูลภายในเธรด). ชุดเครื่องมือ Meson ใช้สำหรับการประกอบ

ในรุ่นใหม่:

  • เพิ่มความสามารถในการสร้างโดยใช้ ตรวจสอบทางคณิตศาสตร์ คอมไพเลอร์ ใบรับรองคอมพิวเตอร์.
  • เพิ่มการรองรับคอมไพเลอร์ Clang
  • พฤติกรรมของฟังก์ชัน 'แกมมา' ได้รับการปรับให้สอดคล้องกับพฤติกรรมของ Glibc
  • การใช้งาน nano-malloc ช่วยให้แน่ใจว่าหน่วยความจำที่ส่งคืนถูกล้างแล้ว
  • ปรับปรุงประสิทธิภาพของ nano-realloc โดยเฉพาะอย่างยิ่งเมื่อรวมบล็อกอิสระและขยายขนาดฮีป
  • เพิ่มชุดการทดสอบเพื่อตรวจสอบการทำงานที่ถูกต้องของ malloc
  • ปรับปรุงการรองรับแพลตฟอร์ม Windows และเพิ่มความสามารถในการสร้างโดยใช้ชุดเครื่องมือ mingw
  • บนระบบ ARM หากมี การลงทะเบียนฮาร์ดแวร์ TLS (Thread-Local Storage) จะถูกเปิดใช้งาน

ที่มา: opennet.ru