Utgivning av standard C-biblioteken Glibc 2.43 och newlib 4.6.0

Efter sex mÄnaders utveckling har den systembiblioteket GNU C Library 2.43 (glibc) publicerats, vilket helt följer kraven i ISO C23 och POSIX.1-2024. 69 utvecklare deltog i skapandet av den nya versionen.

Bland förbÀttringarna i Glibc 2.43 kan nÀmnas:

  • En experimentell möjlighet för kompilering med Clang har lagts till, som för nĂ€rvarande bara Ă€r tillgĂ€nglig för plattformarna aarch64-linux-gnu och x86_64-linux-gnu vid anvĂ€ndning av runtime kompatibel med libgcc. För att kompilera Glibc krĂ€vs Ă„tminstone version Clang 18.
  • För Linux-system har funktionen mseal() lagts till, vilket gör att processer kan sĂ€tta lĂ„s pĂ„ Ă€ndring av vissa delar av sitt adressutrymme.
  • För Linux-system har funktionen openat2() lagts till, vilken, till skillnad frĂ„n funktionen openat(), stöder en uppsĂ€ttning ytterligare flaggor för att begrĂ€nsa filvĂ€gsbehörigheten (förbjuder överlappning av monteringspunkter, symboliska lĂ€nkar, magic-lĂ€nkar (/proc/PID/fd), komponenter "../").
  • Funktionerna free_sized, free_aligned_sized, memset_explicit och memalignment, som introducerades i standarden C23, har lagts till.
  • I enlighet med standarden C23 har anropet assert definierats som en makro med variabelt antal argument, som stöder kommateckenuttryck inom initialiseraren.
  • I enlighet med standarden C23 har funktionerna bsearch, memchr, strchr, strpbrk, strrchr, strstr, wcschr, wcspbrk, wcsrchr, wcsstr och wmemchr, som returnerar pekare till ingĂ„ngsmatriser, omdefinierats som makron som returnerar pekare av typen med kvalificeraren "const", om ingĂ„ngsargumentet Ă€r en pekare till typen med kvalificeraren "const".
  • I header-filen math.h har definitioner av typerna long_double_t, _Float32_t, _Float64_t och _Float128_t, som introducerades i standarden C23, lagts till.
  • Valbara lĂ€gen för tidsberĂ€kning TIME_MONOTONIC (konstant ökande tid som inte pĂ„verkas av förĂ€ndringar i systemklockor), TIME_ACTIVE och TIME_THREAD_ACTIVE (tiden för aktivt körande av processen eller trĂ„den) har lagts till för anvĂ€ndning i funktionen timespec_get.
  • Optimiserade versioner av matematiska funktioner som acosh, asinh, atanh, erf, erfc, lgamma och tgamma har överförts frĂ„n projektet CORE-MATH.
  • Optimiserade implementationer av funktionerna fma, fmaf, remainder, remaindef, frexpf, frexp, frexpl (binary128) och frexpl (intel96) har lagts till.
  • Prestandan för matematiska funktioner som acosf, acoshf, asinhf, atan2f, atanhf, coshf, fmodf, lgammaf/lgammaf_r, log10f, remainderf, sinhf, sqrtf, tgammaf, y0/j0, y1/j1 och yn/jn har ökats genom att felhanteringskoden SVID (anrop av anvĂ€ndarfunktionen matherr vid fel) har tagits bort för nya versioner (för att bevara kompatibiliteten med redan sammanstĂ€llda program har de lĂ€mnats i kompatibilitetslĂ€ge).
  • PĂ„ x86-system har stöd lagts till för Intel Nova Lake och Wildcat Lake-processorer.
  • PĂ„ AArch64-system Ă€r stöd för stora minnessidor (transparent huge pages) av storlek 2MB som standard aktiverat i malloc-funktionen (parametern ibc.malloc.hugetlb Ă€r nu instĂ€lld pĂ„ 1). I clone()-funktionen har inaktivering av ZA-tillstĂ„ndet (Z-Array) implementerats pĂ„ CPU:er som stöder SME (Scalable Matrix Extension).
  • För AArch64-system som stöder BTI (Branch Target Identification) har instĂ€llningen glibc.cpu.aarch64_bti lagts till, vilket tvingar BTI att aktiveras för alla körbara filer och bibliotek. BTI blockerar övergĂ„ngar till godtyckliga kodsnuttar för att motverka skapandet av gadgets i exploateringar som anvĂ€nder Ă„terkopplingsorienterad programmering.
  • PĂ„ AArch64-system som stöder ett av de skyddande branch-target-identifikationssystemen (Branch Target Identification eller Guarded Control Stack) Ă€r anvĂ€ndning av miljövariabeln "LD_DEBUG=security" tillĂ„ten för att ge lĂ€nkaren varningar vid laddning av körbara filer och bibliotek som inte stöder dessa utökningar.
  • För AArch64-system har vektorvarianter av funktionerna exp2m1, exp10m1, log10p1, log2p1 och rsqrt lagts till.
  • För RISC-V-arkitekturen har en optimerad implementation av funktionen memset, som anvĂ€nder RVV (RISC-V Vector), lagts till.
  • I testsviten har kontrollen för multitrĂ„dning och funktionerna scanf, strerror och strsignal kraftigt utökats.
  • Kodningsdata, information om teckentyper och translittereringstabeller har uppdaterats för att stödja Unicode-specifikationen 17.0.0.
  • I implementationen av funktionaliteten LD_PROFILE har anvĂ€ndningen av standardkatalogen (/var/tmp) för att skriva profileringdata upphört. För att bevara sĂ„dana data krĂ€vs nu en explicit angivelse av katalogen genom miljövariabeln LD_PROFILE_OUTPUT.
  • SĂ„rbarheter Ă„tgĂ€rdade:
    • CVE-2026-0861 – heltalsöverflöd i funktionen memalign som leder till skador pĂ„ heap.
    • CVE-2026-0915 – lĂ€cka av stackinnehĂ„ll i funktionerna getnetbyaddr och getnetbyaddr_r.
    • CVE-2025-15281 – Ă„terkomst av oinitialiserat minne som kan innehĂ„lla resterande data nĂ€r funktionen wordexp anvĂ€nds med parametrarna WRDE_REUSE och WRDE_APPEND.

Dessutom har projektet Cygwin, efter ett Ärs utveckling, publicerat en version av den standardiserade C-biblioteket newlib 4.6.0, som utvecklats av ingenjörer frÄn företaget Red Hat. Biblioteket Àr inriktat pÄ att tillhandahÄlla en kompakt implementation av det standardiserade C-biblioteket (libc) som Àr lÀmplig för anvÀndning pÄ inbyggda system med begrÀnsat lagringsutrymme och RAM. Projektets kod Àr skriven i C och distribueras under LGPLv2-licensen.

I den nya versionen av newlib:

  • Stödet för specifikationen POSIX.1-2024 har utökats.
  • Prestandan hos funktionerna memcpy, mempcpy och memmove har förbĂ€ttrats.
  • En ny instĂ€llning "—enable-newlib-hw-misaligned-access" har lagts till.
  • Arkitekturen för RISC-V har optimerats för funktionerna mem* och str*.
  • Koden för lokalitetsbehandling har omarbetats och befriats frĂ„n den globala variabeln global_locale_string till förmĂ„n för separata variabler locale_string för varje lokalitetsobjekt av typen locale_t.
  • Stöd för den nya plattformen m68k-atari-elf har lagts till.
  • Koden strtorQ.c frĂ„n FreeBSD-biblioteket gdtoa har flyttats, vilket möjliggör stöd för 128-bitars typen "long double" i funktionen strtold.
  • Kodningsdata har uppdaterats till Unicode 17.0.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster