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

ПослС 10 мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСдставлСн Ρ€Π΅Π»ΠΈΠ· стандартной Π‘ΠΈ-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Musl 1.2.5, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ libc, которая ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для примСнСния ΠΊΠ°ΠΊ Π½Π° стационарных ПК ΠΈ сСрвСрах, Ρ‚Π°ΠΊ ΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… систСмах, сочСтая ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ стандартов (ΠΊΠ°ΠΊ Π² Glibc) с нСбольшим Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ, Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ рСсурсов ΠΈ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ (ΠΊΠ°ΠΊ Π² uClibc, dietlibc ΠΈ Android Bionic). Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° всСх ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… интСрфСйсов C99 ΠΈ POSIX 2008, Π° Ρ‚Π°ΠΊΠΆΠ΅ частично C11 ΠΈ Π½Π°Π±ΠΎΡ€ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ для ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ программирования (POSIX threads), управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с локалями. Код Musl поставляСтся ΠΏΠΎΠ΄ свободной Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция statx(), которая отличаСтся ΠΎΡ‚ fstatat64 Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π»Π°Π³ΠΎΠ²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π’ случаС, Ссли ядро Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ систСмный Π²Ρ‹Π·ΠΎΠ² statx, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ„Π°ΠΉΠ»Π΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ врСмя создания Ρ„Π°ΠΉΠ»Π° ΠΈ спСцифичныС для Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм Ρ„Π»Π°Π³ΠΈ, осущСствляСтся ΠΎΡ‚ΠΊΠ°Ρ‚ Π½Π° использованиСм систСмного Π²Ρ‹Π·ΠΎΠ²Π° fstatat.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ preadv2() ΠΈ pwritev2(), ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ обвязки Π½Π°Π΄ ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½Ρ‹ΠΌΠΈ систСмными Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ ядра Linux. ΠžΡ‚ preadv() ΠΈ pwritev() Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ядру Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π»Π°Π³ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ RWF_SYNC (сброс Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· кэша Π½Π° Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒ послС выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ) ΠΈ RWF_DSYNC (ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ сброс Π½Π° Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Ρ…).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ Loongarch64 ΠΈ Riscv32.
  • РСализация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ clone() Π΄ΠΎΠ²Π΅Π΄Π΅Π½Π° Π΄ΠΎ состояния, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊ использованию.
  • Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ statvfs() обСспСчСно Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° с Ρ‚ΠΈΠΏΠΎΠΌ f_type.
  • Для систСм Riscv64 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° TLSDESC (Thread-Local Storage Descriptor).
  • Π’ DNS-Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² с Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ CNAME. РСшСна ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°Π»ΠΈΡΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большиС ΠΎΡ‚Π²Π΅Ρ‚Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· TCP.
  • Π’ интСрфСйсах mntent появилась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° экранирования ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… путях ΠΈ опциях.
  • Π’ snprintf ΠΈ swprintf обСспСчСна коррСктная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ситуации Π² случаС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ чисСл Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ большС INT_MAX. Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ соотвСтствиС стандарту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ сСмСйства printf.

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