Eldono de Sistemo Biblioteko Glibc 2.36

Post ses monatoj da evoluo, la eldono de la GNU C-Biblioteko (glibc) 2.36 estas publikigita, kiu plene konformas al la postuloj de la normoj ISO C11 kaj POSIX.1-2017. La nova eldono inkluzivas korektojn de 59 programistoj.

Inter la plibonigoj efektivigitaj en Glibc 2.36 estas:

  • Aldonita subteno por la nova DT_RELR (relativa translokado) adresloka formato, kiu ebligas vin redukti la grandecon de relativaj translokigoj en komunaj objektoj kaj ruleblaj dosieroj ligitaj en PIE (Pozicio-sendependaj ruligeblaj) reĝimo. Uzi la kampon DT_RELR en ELF-dosieroj postulas subtenon por la opcio "-z pack-relative-relocs" en la ligilo, enkondukita en la eldono de binutils 2.38.
  • Por la Linukso-platformo, la funkcioj pidfd_open, pidfd_getfd kaj pidfd_send_signal estas efektivigitaj, provizante aliron al pidfd-funkcio kiu helpas pritrakti PID-reuzosituaciojn por pli precize identigi procezojn alirantajn monitoritajn dosierojn (pidfd estas asociita kun specifa procezo kaj ne ŝanĝiĝas, dum PID povas. estu alkroĉita al alia procezo post kiam la nuna procezo asociita kun tiu PID finiĝas).
  • Por la Linukso-platformo, la funkcio process_madvise() estis aldonita por permesi al unu procezo elsendi la sistemvokon madvise() nome de alia procezo, identigante la celprocezon uzante pidfd. Per madvise(), vi povas informi la kernon pri la funkcioj de laborado kun memoro por optimumigi procezan memoradministradon; ekzemple, surbaze de la elsenditaj informoj, la kerno povas iniciati la liberigon de plia libera memoro. Voko al madvise() per alia procezo povas esti postulata en situacio kie la informoj necesaj por optimumigo estas nekonataj al la nuna procezo, sed estas kunordigita per aparta fonkontrolprocezo, kiu povas sendepende iniciati la forigon de neuzata memoro de procezoj.
  • Por la Linukso-platformo, la funkcio process_mrelease() estis aldonita, kiu ebligas al vi akceli la liberigon de memoro por procezo kompletiganta ĝian ekzekuton. Sub normalaj cirkonstancoj, rimedliberigo kaj procezfino ne estas tujaj kaj povas esti prokrastitaj pro diversaj kialoj, influante uzant-spacan memorajn fruajn respondsistemojn kiel ekzemple oomd (provizita de systemd). Nomante process_mrelease, tiaj sistemoj povas pli antaŭvideble ekigi la reakiron de memoro de malvolaj procezoj.
  • Subteno por la opcio "ne-aaaa" estis aldonita al la enkonstruita efektivigo de la DNS-solvilo, kiu ebligas al vi malŝalti la sendon de DNS-petoj por AAAA-rekordoj (determinante IPv6-adreson laŭ gastiga nomo), inkluzive kiam vi efektivigas NSS. funkcioj kiel getaddrinfo(), por simpligi problemo-diagnozon. Ĉi tiu opcio ne influas la prilaboradon de IPv6-adresligoj difinitaj en /etc/hosts kaj alvokoj al getaddrinfo() kun la flago AI_PASSIVE.
  • Por la Linukso-platformo, la funkcioj fsopen, fsmount, move_mount, fsconfig, fspick, open_tree kaj mount_setattr estis aldonitaj, havigante aliron al nova kerna API por administri dosiersistemmuntadon bazitan sur muntaj nomspacoj. La proponitaj funkcioj ebligas al vi aparte prilabori malsamajn etapojn de muntado (prilabori la superblokon, akiri informojn pri la dosiersistemo, munti, alfiksi al la munta punkto), kiuj antaŭe estis faritaj per la komuna muntado () funkcio. Apartaj funkcioj disponigas la kapablon elfari pli kompleksajn muntajn scenarojn kaj aparte fari operaciojn kiel ekzemple reagordi la superblokon, ebligante opciojn, ŝanĝi la muntan punkton, kaj moviĝi al alia nomspaco. Krome, aparta prilaborado ebligas al vi precize determini la kialojn de la eligo de eraraj kodoj kaj agordi plurajn fontojn por plurtavolaj dosiersistemoj, kiel overlayfs.
  • localedef provizas subtenon por prilaborado de lokadifindosieroj liveritaj en UTF-8-kodigo anstataŭ ASCII.
  • Aldonitaj funkcioj por konverti plurbajtajn mbrtoc8 kaj c8rtomb-kodigojn al ISO C2X N2653 kaj C++20 P0482R6-specifoj.
  • Aldonita subteno por la char8_t-tipo difinita en la ISO C2X N2653 skiza normo.
  • Aldonitaj arc4random, arc4random_buf, kaj arc4random_uniform funkcioj kiuj disponigas envolvaĵojn super la getrandom sistemvoko kaj la /dev/urandom interfaco kiuj resendas altkvalitajn pseŭdohazarajn nombrojn.
  • Kiam ĝi funkcias sur la Linukso-platformo, ĝi subtenas la arkitekturon de instrukcioj de LoongArch uzatan en la procesoroj Loongson 3 5000 kaj efektivigas la novan RISC ISA, similan al MIPS kaj RISC-V. En ĝia nuna formo, nur subteno por la 64-bita versio de LoongArch (LA64) estas havebla. Por funkcii, vi bezonas almenaŭ versiojn de binutils 2.38, GCC 12 kaj Linukso-kerno 5.19.
  • La antaŭliga mekanismo, same kiel ĝiaj rilataj LD_TRACE_PRELINKING kaj LD_USE_LOAD_BIAS mediovariabloj kaj ligilkapabloj, estis malrekomenditaj kaj estos forigitaj en estonta eldono.
  • Forigita kodo por kontroli la Linuksan kernan version kaj pritrakti la mediovariablon LD_ASSUME_KERNEL. La minimuma versio de la kerno subtenata dum konstruado de Glibc estas determinita per la ELF-kampo NT_GNU_ABI_TAG.
  • La mediovariablo LD_LIBRARY_VERSION estas ĉesigita sur la Linukso-platformo.

fonto: opennet.ru

Aldoni komenton