Μετά από έξι μήνες ανάπτυξης δημοσιεύθηκε έκδοση βιβλιοθήκης συστήματος Βιβλιοθήκη GNU C (glibc) 2.30, το οποίο συμμορφώνεται πλήρως με τις απαιτήσεις των ISO C11 και POSIX.1-2008. Η νέα έκδοση περιλαμβάνει διορθώσεις από 48 προγραμματιστές.
Υλοποιήθηκε στο Glibc 2.30 βελτιώσεις μπορείτε να σημειώσετε:
Ο δυναμικός σύνδεσμος υποστηρίζει την επιλογή "--preload" για προφόρτωση κοινόχρηστων αντικειμένων (παρόμοια με τη μεταβλητή περιβάλλοντος LD_PRELOAD).
Προστέθηκε η συνάρτηση twalk_r, παρόμοια με την ήδη υπάρχουσα συνάρτηση twalk, αλλά σας επιτρέπει να μεταβιβάσετε ένα πρόσθετο όρισμα στη δεδομένη συνάρτηση επανάκλησης.
Για το Linux, έχουν προστεθεί νέες συναρτήσεις getdents64, gettid και tgkill.
Οι λειτουργίες διαχείρισης μνήμης malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign και posix_memalign τερματίζονται με κωδικό σφάλματος όταν το συνολικό μέγεθος αντικειμένου υπερβαίνει την τιμή PTRDIFF_MAX. Αυτή η αλλαγή αποφεύγει την απροσδιόριστη συμπεριφορά όταν το αποτέλεσμα ενός χειρισμού δείκτη οδηγεί σε υπερχείλιση του τύπου ptrdiff_t.
Προστέθηκαν οι προτεινόμενες συναρτήσεις POSIX pthread_cond_clockwait, pthread_mutex_clock,
pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock και sem_clockwait, παρόμοια με τα "χρονισμένα" ισοδύναμα, αλλά επιπλέον λαμβάνοντας μια παράμετρο clockid_t για να επιλέξετε ένα χρονόμετρο.
Τα δεδομένα κωδικοποίησης, οι πληροφορίες τύπου χαρακτήρων και οι πίνακες μεταγραφής έχουν ενημερωθεί για να υποστηρίζουν την προδιαγραφή Unicode 12.1.0.
Οι λειτουργίες clock_gettime, clock_getres, clock_settime, clock_getcpuclockid και clock_nanosleep δεν παρέχονται πλέον στη βιβλιοθήκη librt για νέες εφαρμογές και οι ορισμοί libc χρησιμοποιούνται αυτόματα.
Το /etc/resolv.conf έχει καταργήσει την επιλογή "inet6". Καταργήθηκαν οι παρωχημένες σημαίες RES_USE_INET6, RES_INSECURE1 και RES_INSECURE2 από το resolv.h.
Κατά τον καθορισμό της επιλογής "--enable-bind-now", τα εγκατεστημένα προγράμματα δεσμεύονται τώρα χρησιμοποιώντας τη σημαία BIND_NOW.
Το αρχείο κεφαλίδας sys/sysctl.h για το Linux και η συνάρτηση sysctl έχουν καταργηθεί και οι εφαρμογές θα πρέπει να χρησιμοποιούν το /proc pseudo-FS.
Το Glibc απαιτεί τώρα GCC 6.2 ή νεότερο για την κατασκευή (οποιοσδήποτε μεταγλωττιστής μπορεί να χρησιμοποιηθεί για τη δημιουργία εφαρμογών).
Διορθώθηκε η ευπάθεια CVE-2019-7309 στην υλοποίηση της συνάρτησης memcmp για απαρχαιωμένος x32 υποαρχιτεκτονική (δεν πρέπει να συγχέεται με το x86 IA-32), ως αποτέλεσμα της οποίας η συνάρτηση θα μπορούσε να επιστρέψει λανθασμένα την τιμή 0 για μη ταιριαστές συμβολοσειρές.
Διορθώθηκε η ευπάθεια CVE-2019-9169, το οποίο μπορεί να προκαλέσει την ανάγνωση δεδομένων από ένα buffer εκτός ορίων κατά την επεξεργασία ορισμένων κανονικών εκφράσεων.