Hat hónapnyi fejlesztés után a rendszerkönyvtár kiadása (glibc) , amely teljes mértékben megfelel az ISO C11 és POSIX.1-2008 szabványok követelményeinek. Az új verzióba 48 fejlesztő javításai kerültek be.
A Glibc 2.30-ban megvalósított funkcionalitások közül kiemelhető:
- A dinamikus linker támogatja a «—preload» opciót, amely lehetővé teszi a megosztott objektumok előtöltését (hasonlóan az LD_PRELOAD környezeti változóhoz);
- Hozzáadva a twalk_r függvény, amely hasonló a meglévő twalk függvényhez, de lehetővé teszi egy további argumentum átadását a megadott callback függvénynek;
- Linuxhoz új függvények kerültek hozzáadásra: getdents64, gettid és tgkill;
- A memóriakezelő függvények, mint a malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign és posix_memalign hibakódú befejezését biztosítja, ha az objektum összmérete meghaladja a PTRDIFF_MAX értéket. Ez a módosítás lehetővé teszi a nem meghatározott viselkedés elkerülését, amikor a pointerek manipulálásának eredménye a ptrdiff_t típus túllépését okozza;
- Hozzáadták a POSIX által javasolt pthread_cond_clockwait, pthread_mutex_clocklock függvényeket,
pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock és sem_clockwait, amelyek hasonlóak az «időzített» megfelelőikhez, de kiegészítő klokid_t paramétert is elfogadnak az időzítő kiválasztásához; - A kódolási adatok, karaktertípus információk és transliterációs táblák frissítésre kerültek az Unicode 12.1.0 specifikáció támogatásához;
- Az librt könyvtárban új alkalmazások számára a clock_gettime, clock_getres, clock_settime, clock_getcpuclockid és clock_nanosleep függvények már nem elérhetőek, helyettük automatikusan a libc-ban található definíciók kerülnek alkalmazásra;
- Az /etc/resolv.conf fájlban megszűnt az «inet6» opció támogatása. A resolv.h-ból eltávolították a elavult RES_USE_INET6, RES_INSECURE1 és RES_INSECURE2 flagokat;
- A «—enable-bind-now» opció megadásakor az installált programok most BIND_NOW flaggel kötődnek;
- A Linuxra specifikus sys/sysctl.h fejléc és a sysctl függvény elavultnak nyilvánítva, helyettük a /proc pszeudo-FS-t kell használniuk az alkalmazásoknak;
- A Glibc buildeléséhez most GCC 6.2 vagy annál újabb verzió szükséges (alkalmazások buildeléséhez bármilyen fordító használható);
- A a memcmp függvény implementációjában x32 alarchitektúra esetén (ne keverjük össze az x86 IA-32-vel), aminek eredményeként a függvény helytelenül 0-t adhatott vissza eltérő karakterláncok esetén;
- A , amely a bizonyos reguláris kifejezések feldolgozása során a határokon kívüli területekről adatok olvasásához vezethet.
Forrás: opennet.ru
