Выпуск стандартной Π‘ΠΈ-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ PicoLibc 1.4.7

ΠšΠΈΡ‚ ΠŸΠ°ΠΊΠΊΠ°Ρ€Π΄ (Keith Packard), Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Debian, Π»ΠΈΠ΄Π΅Ρ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° X.Org ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ мноТСства X-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ XRender, XComposite ΠΈ XRandR, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» выпуск стандартной Π‘ΠΈ-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ PicoLibc 1.4.7, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ для примСнСния Π½Π° встраиваСмых устройствах с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ постоянного Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° заимствована ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ newlib ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π‘ygwin ΠΈ AVR Libc, Ρ€Π°Π·Π²ΠΈΠ²Π°Π²ΡˆΠ΅ΠΉΡΡ для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² Atmel AVR. Код PicoLibc распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ сборка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ ARM (32-bit), i386, RISC-V, x86_64 ΠΈ PowerPC.

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ развивался ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ «newlib-nano» ΠΈ Π±Ρ‹Π» Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… рСсурсоёмких Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Newlib, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° встраиваСмых устройствах с нСбольшим ΠžΠ—Π£. НапримСр, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ stdio Π±Ρ‹Π»ΠΈ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ avrlibc. Код Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π» Π²Ρ‹Ρ‡ΠΈΡ‰Π΅Π½ ΠΎΡ‚ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² сборкС для встраиваСмых устройств ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², поставляСмых Π½Π΅ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΊΠΎΠ΄Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (crt0), Π° рСализация Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° с ‘struct _reent’ Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ TLS (thread-local storage). Для сборки задСйствован инструмСнтарий Meson.

Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сборки с использованиСм матСматичСски Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ компилятора CompCert.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° компилятора Clang.
  • ПовСдСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ‘gamma’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² соотвСтствиС с ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Glibc.
  • Π’ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ nano-malloc обСспСчСна ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ очистка Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠΉ памяти.
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ nano-realloc, особСнно ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ слияния свободных Π±Π»ΠΎΠΊΠΎΠ² ΠΈ Ρ€Π°cΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΡƒΡ‡ΠΈ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½Π°Π±ΠΎΡ€ тСстов для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ коррСктности Ρ€Π°Π±ΠΎΡ‚Ρ‹ malloc.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Windows ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сборки с использованиСм инструмСнтария mingw.
  • На систСмах ARM ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ задСйствован Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΉ рСгистр TLS (Thread-Local Storage).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru