Glibc 2.36 System Library Release

Human sa unom ka bulan nga pag-uswag, ang GNU C Library (glibc) 2.36 system library gipagawas, nga hingpit nga nagsunod sa mga kinahanglanon sa ISO C11 ug POSIX.1-2017 nga mga sumbanan. Ang bag-ong pagpagawas naglakip sa mga pag-ayo gikan sa 59 nga mga developer.

Ang pipila sa mga pagpaayo nga gipatuman sa Glibc 2.36 naglakip sa:

  • Gidugang nga suporta alang sa bag-ong DT_RELR (relative relocation) address relocation format, nga nagtugot kanimo sa pagpakunhod sa gidak-on sa mga paryente nga relokasyon sa gipaambit nga mga butang ug executable nga mga file nga nalambigit sa PIE (Position-independent executables) mode. Ang paggamit sa DT_RELR field sa ELF files nagkinahanglan og suporta para sa "-z pack-relative-relocs" nga opsyon sa linker, nga gipaila sa pagpagawas sa binutils 2.38.
  • Alang sa plataporma sa Linux, ang mga gimbuhaton nga pidfd_open, pidfd_getfd ug pidfd_send_signal gipatuman, nga naghatag og access sa pidfd functionality nga makatabang sa pagdumala sa PID reuse nga mga sitwasyon aron mas tukma nga mailhan ang mga proseso nga nag-access sa gimonitor nga mga file (ang pidfd nalangkit sa usa ka piho nga proseso ug dili mausab, samtang ang PID mahimo i-attach sa laing proseso human ang kasamtangang proseso nga nalangkit sa maong PID matapos).
  • Para sa plataporma sa Linux, ang process_madvise() function gidugang aron tugotan ang usa ka proseso sa pag-isyu sa madvise() system call alang sa laing proseso, pag-ila sa target nga proseso gamit ang pidfd. Pinaagi sa madvise(), mahimo nimong ipahibalo ang kernel bahin sa mga bahin sa pagtrabaho kauban ang memorya aron ma-optimize ang pagdumala sa memorya sa proseso; pananglitan, base sa gipasa nga kasayuran, ang kernel mahimo’g magsugod sa pagpagawas sa dugang nga libre nga memorya. Ang usa ka tawag sa madvise() pinaagi sa laing proseso mahimong gikinahanglan sa usa ka sitwasyon diin ang impormasyon nga gikinahanglan alang sa pag-optimize wala mahibal-i sa kasamtangan nga proseso, apan gi-coordinate sa usa ka bulag nga proseso sa pagkontrol sa background, nga mahimo nga independente nga magsugod sa pagtangtang sa wala magamit nga memorya gikan sa mga proseso.
  • Alang sa plataporma sa Linux, ang process_mrelease() function gidugang, nga nagtugot kanimo sa pagpadali sa pagpagawas sa memorya alang sa usa ka proseso nga nagkompleto sa pagpatuman niini. Ubos sa normal nga mga kahimtang, ang pagpagawas sa kahinguhaan ug pagtapos sa proseso dili dayon ug mahimong malangan tungod sa lainlaing mga hinungdan, nga makabalda sa memorya sa wanang sa user sa sayo nga mga sistema sa pagtubag sama sa oomd (gihatag sa systemd). Pinaagi sa pagtawag sa process_mrelease, ang ingon nga mga sistema mahimong mas matag-an nga magpahinabo sa pagbawi sa memorya gikan sa pinugos nga mga proseso.
  • Ang suporta alang sa opsyon nga "no-aaaa" gidugang sa built-in nga pagpatuman sa DNS resolver, nga nagtugot kanimo sa pag-disable sa pagpadala sa DNS nga mga pangutana alang sa mga rekord sa AAAA (pagtino sa IPv6 address pinaagi sa host name), lakip na kung ipatuman ang NSS mga function sama sa getaddrinfo(), aron mapasimple ang pagdayagnos sa problema. Kini nga opsyon dili makaapekto sa pagproseso sa IPv6 address bindings nga gihubit sa /etc/hosts ug mga tawag sa getaddrinfo() gamit ang AI_PASSIVE nga bandera.
  • Para sa platform sa Linux, ang mga function fsopen, fsmount, move_mount, fsconfig, fspick, open_tree ug mount_setattr gidugang, nga naghatag og access sa bag-ong kernel API para sa pagdumala sa file system mounting base sa mount namespaces. Gitugotan ka sa gisugyot nga mga gimbuhaton nga maglainlain ang pagproseso sa lainlaing mga yugto sa pag-mount (pagproseso sa usa ka superblock, pagkuha og kasayuran bahin sa file system, pag-mount, pag-attach sa usa ka mount point), nga kaniadto gihimo gamit ang sagad nga mount() function. Ang bulag nga mga gimbuhaton naghatag sa abilidad sa paghimo sa mas komplikado nga mga senaryo sa pag-mount ug gilain nga paghimo sa mga operasyon sama sa pag-configure pag-usab sa superblock, pagpagana sa mga kapilian, pagbag-o sa mount point, ug pagbalhin sa lain nga namespace. Dugang pa, ang bulag nga pagproseso nagtugot kanimo nga tukma nga mahibal-an ang mga hinungdan sa output sa mga error code ug magbutang daghang mga gigikanan alang sa mga multi-layer file system, sama sa mga overlay.
  • Ang localedef naghatag suporta alang sa pagproseso sa mga file sa kahulugan sa lokal nga gihatag sa pag-encode sa UTF-8 imbes sa ASCII.
  • Gidugang nga mga function aron mabag-o ang multi-byte mbrtoc8 ug c8rtomb encodings sa ISO C2X N2653 ug C++20 P0482R6 nga mga detalye.
  • Gidugang nga suporta alang sa char8_t type nga gihubit sa draft nga ISO C2X N2653 nga sumbanan.
  • Gidugang nga mga function arc4random, arc4random_buf ug arc4random_uniform, nga naghatag mga wrapper sa getrandom system call ug ang /dev/urandom interface nga nagbalik sa dekalidad nga pseudorandom nga mga numero.
  • Kung nagdagan sa platform sa Linux, gisuportahan niini ang arkitektura nga set sa pagtudlo sa LoongArch nga gigamit sa mga processor sa Loongson 3 5000 ug gipatuman ang bag-ong RISC ISA, parehas sa MIPS ug RISC-V. Sa kasamtangan nga porma niini, suporta lamang sa 64-bit nga bersyon sa LoongArch (LA64) ang anaa. Aron magtrabaho, kinahanglan nimo ang labing menos mga bersyon sa binutils 2.38, GCC 12 ug Linux kernel 5.19.
  • Ang mekanismo sa prelink, ingon man ang mga kauban nga LD_TRACE_PRELINKING ug LD_USE_LOAD_BIAS nga mga variable sa palibot ug mga kapabilidad sa linker, wala na gigamit ug tangtangon sa umaabot nga pagpagawas.
  • Gitangtang ang code para sa pagsusi sa Linux kernel version ug pagdumala sa LD_ASSUME_KERNEL environment variable. Ang minimum nga bersyon sa kernel nga gisuportahan sa pagtukod sa Glibc matino pinaagi sa ELF field NT_GNU_ABI_TAG.
  • Ang LD_LIBRARY_VERSION nga variable sa palibot gihunong na sa plataporma sa Linux.

Source: opennet.ru

Idugang sa usa ka comment