De release van de systeembibliotheek Glibc 2.36

Na zes maanden ontwikkeling is de release van de GNU C Library (glibc) 2.36 gepubliceerd, die volledig voldoet aan de eisen van de ISO C11- en POSIX.1-2017-standaarden. Deze nieuwe release bevat correcties van 59 ontwikkelaars.

Enkele van de verbeteringen in Glibc 2.36 zijn:

  • Ondersteuning voor het nieuwe formaat van relatieve adresverplaatsingen DT_RELR (relative relocation) is toegevoegd, waardoor de grootte van relatieve verplaatsingen in gedeelde objecten en uitvoerbare bestanden, die in PIE-modus (Position-independent executables) zijn samengesteld, kan worden verkleind. Om het veld DT_RELR in ELF-bestanden te gebruiken, is ondersteuning vereist voor de optie "-z pack-relative-relocs" in de linker, die in release 2.38 van de binutils is toegevoegd.
  • Voor het Linux-platform zijn de functies pidfd_open, pidfd_getfd en pidfd_send_signal geĆÆmplementeerd, die toegang bieden tot de pidfd-functionaliteit en helpen bij het omgaan met situaties waarbij PID opnieuw wordt gebruikt voor een nauwkeurigere identificatie van processen die toegang hebben tot getraceerde bestanden (pidfd is gekoppeld aan een specifiek proces en verandert niet, terwijl PID aan een ander proces kan worden gekoppeld nadat het huidige proces dat bij deze PID hoort, is beĆ«indigd).
  • Voor het Linux-platform is de functie process_madvise() toegevoegd, waarmee een proces een systeemaanroep madvise() kan uitvoeren namens een ander proces door het doelproces te identificeren met behulp van pidfd. Via madvise() kan de kernel worden geĆÆnformeerd over geheugenwerkwijzen om het geheugenbeheer van het proces te optimaliseren; bijvoorbeeld kan de kernel op basis van de doorgegeven informatie extra vrije geheugen vrijgeven. Een aanroep van madvise() door een ander proces kan nodig zijn in situaties waarin de informatie die nodig is voor optimalisatie onbekend is voor het huidige proces, maar wordt gecoƶrdineerd door een aparte achtergrondbeheerder die zelfstandig ongebruikt geheugen uit de processen kan intrekken.
  • Voor het Linux-platform is de functie process_mrelease() toegevoegd, die het vrijgeven van geheugen versnelt voor processen die hun uitvoering beĆ«indigen. Normaal gesproken gebeurt het vrijgeven van middelen en het beĆ«indigen van een proces niet onmiddellijk en kan om verschillende redenen vertraging oplopen, wat de werking van systemen voor vroegtijdige reactie op geheugen tekort, zoals oomd (verstrekt in systemd), belemmert. Met behulp van de aanroep process_mrelease kunnen dergelijke systemen voorspelbaarder geheugen terugkrijgen van geforceerd beĆ«indigde processen.
  • De ingebouwde implementatie van de DNS-resolver heeft ondersteuning gekregen voor de optie "no-aaaa", waarmee het verzenden van DNS-verzoeken voor AAAA-records (het bepalen van het IPv6-adres op basis van de hostnaam) kan worden uitgeschakeld ter vereenvoudiging van het diagnosticeren van problemen, inclusief bij het uitvoeren van NSS-functies zoals getaddrinfo(). De optie heeft geen invloed op de verwerking van IPv6-adressen die zijn gedefinieerd in /etc/hosts en op aanroepen van getaddrinfo() met de vlag AI_PASSIVE.
  • Voor het Linux-platform zijn de functies fsopen, fsmount, move_mount, fsconfig, fspick, open_tree en mount_setattr toegevoegd, die toegang bieden tot de nieuwe kernel-API voor het beheren van het monteren van bestandssystemen met inachtneming van de mount-namespace. De voorgestelde functies maken het mogelijk om verschillende fasen van het monteren afzonderlijk af te handelen (het verwerken van de superblock, het verkrijgen van informatie over het bestandssysteem, monteren, en koppelen aan een mountpunt), die eerder werden uitgevoerd met behulp van de algemene functie mount(). De afzonderlijke functies bieden de mogelijkheid om complexere montagescenario's uit te voeren en om operaties zoals het opnieuw configureren van de superblock, het inschakelen van opties, het wijzigen van mountpunten en het verplaatsen naar een andere namespace apart uit te voeren. Bovendien maakt het afzonderlijk afhandelen het mogelijk om de oorzaken van foutcodes nauwkeurig te identificeren en verschillende bronnen voor gelaagde bestandssystemen zoals overlayfs op te geven.
  • In localedef is ondersteuning voor het verwerken van bestanden met locale-definities die in UTF-8-indeling zijn geleverd in plaats van ASCII gerealiseerd.
  • Functies voor het converteren van multibyte-coderingen mbrtoc8 en c8rtomb zijn toegevoegd, die overeenkomen met de specificaties ISO C2X N2653 en C++20 P0482R6.
  • Ondersteuning voor het type char8_t, gedefinieerd in het conceptdocument van ISO C2X N2653, is toegevoegd.
  • Toegevoegd zijn de functies arc4random, arc4random_buf en arc4random_uniform, die een wrapper bieden rond de systeemaanroep getrandom en de interface /dev/urandom, waarmee hoogkwalitatieve pseudowillekeurige getallen worden teruggegeven.
  • Op het Linux-platform is ondersteuning toegevoegd voor de LoongArch instructiesetarchitectuur, die wordt gebruikt in Loongson 3 5000-processors en een nieuwe RISC ISA implementeert die lijkt op MIPS en RISC-V. Momenteel is alleen de ondersteuning voor de 64-bits variant LoongArch (LA64) beschikbaar. Dit vereist minimaal binutils 2.38, GCC 12 en Linux kernel 5.19.
  • De prelink-mechanisme is als verouderd verklaard en zal in de volgende uitgave worden verwijderd, evenals de bijbehorende omgevingsvariabelen LD_TRACE_PRELINKING en LD_USE_LOAD_BIAS en de linkerfunctionaliteit.
  • De code voor het controleren van de versie van de Linux-kernel en het verwerken van de omgevingsvariabele LD_ASSUME_KERNEL is verwijderd. De minimaal ondersteunde Linux-kernelversie bij het bouwen van Glibc wordt bepaald via het ELF-veld NT_GNU_ABI_TAG.
  • Op het Linux-platform is de ondersteuning voor de omgevingsvariabele LD_LIBRARY_VERSION stopgezet.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster