ספריית C של גנו היא תוכנת קוד פתוח, חופשית וחזקה לכל תפוצה של גנו / לינוקס. הוא ידוע גם בשם Glibc ו נדרש על ידי כל מערכת ההפעלה UNIX כמו המחשב. גנו C Library אחראית על הגדרת שיחות המערכת, כמו גם על פונקציות בסיסיות אחרות, כגון malloc, open, exit, printf, וכו '.
משמש כברירת מחדל בכל מערכות ההפעלה מבוססות ליבה של לינוקס
ספריית C GNU מותקנת ומשמשת כברירת מחדל בכל מערכת ההפעלה מבוססת ליבת לינוקס, שתוכננה מהיסוד לשמש כספריית C הראשית במערכות GNU ובכל מערכת הפעלה אחרת המופעלת באמצעות ליבת Linux.
נועד להיות ניידים
Glibc הוא ספריה בעלת ביצועים גבוהים C, שנכתבה כולה בשפת התכנות C. זה נועד להיות נייד, בינלאומית, ומהונדסים לתמוך בכל הסטנדרטים הרלוונטיים, כולל POSIX.1-2008 ו- ISO C11.
תומך בתכונות של גרסאות UNIX ידוע
בעוד של- GNU C Library יש ממשק בינאמי מלא, הוא מנסה לתמוך בתכונות של גרסאות UNIX ידועות, כגון BSD ו- System V, הודות למצבי התאימות המובנים שלה.
תחילת העבודה עם ספריית גנו C
בעוד ש- GNU C Library מותקן כברירת מחדל כמעט בכל מערכות ההפעלה של גנו / לינוקס, ניתן גם להתקין אותו מחדש באמצעות חבילת המקור המופצת באתר האינטרנט שלה או ב- Softoware ללא תשלום. כדי להתחיל, להוריד ולשמור את הארכיון בספריית הבית שלך.
הוצא את הארכיון מארכיון כלי השירות של מנהל הארכיון, פתח חלון מסוף, עבור אל המיקום שבו הוצאו קבצי הארכיון, הפעל את התצורה & lsquo ;. & config; rsquo; (ראה את הפקודה & lsquo; / config - הפקודה & rsquo; עבור אפשרויות אופטימיזציה שונות).
לאחר מכן הפעל את & lsquo; בצע & rsquo; הפקודה כדי לקמפל את הספריה, אשר ניתן להתקין את המערכת רחב על ידי הפעלת אחד של & lsquo; הפוך להתקין & rsquo; או & lsquo; sudo לבצע התקנה & rsquo; פקודות, בהתאם לשורש או למשתמש מועדף.
מה חדש במהדורה זו:
- https://sourceware.org/ml/libc-announce/2018/msg00000.html
מה חדש בגירסה 2.27:
- https://sourceware.org/ml/libc-announce/2018/msg00000.html
מה חדש בגרסה:
- גרסת הליבה המינימלית של לינוקס שניתן להשתמש בה בגירסה זו של GNU C Library היא 3.2, למעט i [4567] 86 ו- x86_64, כאשר גרסת הליבה של לינוקס 2.6.32 ואילך מספיקה (על ארכיטקטורות שכבר נדרשו ליבה גרסאות האחרונות יותר מ 3.2, דרישות אלה נשארים ללא שינוי). כותרות לינוקס 3.2 ואילך נדרשות על כל הארכיטקטורות.
- האזור pap_AN נמחק. זה כבר הוצא משימוש במשך זמן רב. זה הוחלף על ידי pap_AW & amp; pap_CW, ששניהם כבר מזמן נכללו במהדורות קודמות.
- הפונקציות readdir_r ו- readdir64_r הוצאו משימוש. מומלץ להשתמש ב- readdir וב- readdir64 במקום זאת.
- הסוג "wait union" הוסר. זה היה משוגע בתחילת 1990 ולא חלק POSIX. קוד היישום צריך להשתמש בסוג int במקום "wait union".
- פעולה חדשה של NSS מתווספת כדי לאפשר ניהול מערכת מבוזר גדול. הפעולה, MERGE, מאפשרת לחנויות משתמש מרוחקות כמו LDAP להיות ממוזגות בחנויות משתמש מקומיות כמו / etc / groups על מנת לספק קל לשימוש, מעודכן, ומנוהל ערכות של אישורים ממוזגים. ניתן להשתמש בפעולה החדשה על-ידי הגדרת התצורה ב- /etc/nsswitch.conf: group: files [SUCCESS = merge] nis מיושם על-ידי Stephen Gallagher (Red Hat).
- המשתנה __malloc_initialize_hook שהוצא משימוש הוסר מ- API.
- האפשרות longedefed - long-style שאינה בשימוש כבר הוסרה. זה לא עשה שום דבר מעל 16 שנים. סקריפטים המשתמשים באפשרות זו יכולים להוריד אותו בבטחה.
- nextupl, nextup, nextupf, nextdownl, nextdown and nextdownf מתווספות ל- libm. הם מוגדרים על ידי TS 18661 ו- IEEE754-2008. הפונקציות הבאות מחזירות את הערך המייצג הבא בכיוון האינסוף החיובי, והפונקציות הבאות מחזירות את הערך המייצג הבא בכיוון האינסוף השלילי. בשלב זה מופעלים הרחבות גנו.
- שינויים הקשורים לאבטחה:
- עותק ערימה מיותר ב- _nss_dns_getnetbyname_r הוסר. זה עלול לגרום לערימת מחסנית כאשר getnetbyname נקרא עם שם ארוך מדי. (CVE-2016-3075)
- בעבר, getaddrinfo העתק כמויות גדולות של נתוני כתובות לערימה, גם לאחר התקנת התיקון עבור CVE-2013-4458, דבר שעלול לגרום לגלישת מחסנית. getaddrinfo עכשיו משתמשת בהקצאה ערימה במקום. דווח על ידי מייקל פטלן. (CVE-2016-3706)
- הפונקציה הגלובלית סבלה מעליפת מאגר של מחסנית כאשר היא נקראה בדגל GLOB_ALTDIRFUNC ונתקל שם קובץ ארוך. דווח על ידי אלכסנדר Cherepanov. (CVE-2016-1234)
- לקוח UDP של Sun RPC יכול למצות את כל שטח הערימה הזמין כאשר מוצף בהודעות ICMP בעלות מבנה ו- UDP. דווח על ידי אלדי הרננדס 'alloca תוסף עבור GCC. (CVE-2016-4429)
- קוד הניהול של שרת שמות IPv6 ב- libresolv עלול לגרום לדליפת זיכרון עבור כל חוט שנוצר, מבצע בדיקת שמות שנכשלו ויציאה. עם הזמן, זה עלול לגרום למניעת שירות עקב תשישות הזיכרון. דווח על ידי מתיאס שיפר. (CVE-2016-5417)
- הבאגים הבאים נפתרים במהדורה זו:
- [1170] localedata: ne_NP: עדכון קובץ הגדרות אזור נפאלי [3629] מדריך: תיאור stpcpy ב- string.texi מתייחס ל- MS-DOG במקום ל- MS-DOS. [6527] malloc: [powerpc] יישור מלוק לא מספיק עבור PowerPC [6796] מתמטיקה: fdim () אינו קובע errno על גלישה [10354] libc: posix_spawn צריך להשתמש vfork () במקרים רבים יותר מאשר כיום [11213] localedata: localedata: [12143] Localidata: chr_US: New Cherokee locale [12450] localedata: sgs_LT: אזור חדש [12676] localedata: ln_CD: אזור חדש [13237] localedata: LC_ADDRESS.country_name: עדכון כל המקומות w / latest CLDR נתונים [13304] מתמטיקה: fma, fmaf, fmal לייצר תוצאות שגויות [14259] build: --localedir לטעון להגדיר הוא התעלם [14499] nptl: האם posix_spawn להפעיל atfork מטפלים / להשתמש vfork? [14750] libc: מצב מרוץ בשימוש ב- posix_spawn vfork בהשוואה למפעילי אותות [14934] localedata: es_cl: אזור השילאן הראשון שגוי בשבוע שעבר [15262] Localedata: LC_MESSAGES.yesexpr / noexpr: שימוש לא עקבי ברומאניזציה [15263] Localedata: LC_MESSAGES.yesexpr / noexpr: שימוש לא עקבי של 1/0 ו + / - [15264] localedata: LC_MESSAGES.כן, לא חסרים מקומות רבים [15368] nptl: להעלות () אינו סינכרוני-אות בטוח [15479] מתמטיקה: ceil, floor, round and trunk להעלות חריג למעט [15578] localedata: kk_KZ: עדכונים שונים [16003] [16190] localedata: iw_IL: punt old locale [16190] localedata: eo: new esperanto locale [16374] localedata: lv_Lv: שינוי סמל המטבע ב- LC_MONETARY לאירו [16742] malloc: מצב מרוץ: pthread_atfork () נקרא לפני המאלוק הראשון () גורם להתנהגות / נעילות נעילה בלתי צפויות [16975] localdata: LC_MESSAGES.yesexpr / noexpr: שימוש חוזר באותיות רישיות בכל היישובים [16983] localedata: postal_fmt אינו מאפשר% l ו- n% n modifiers [17565] localedata : pt_pt: התחלה לא נכונה (עבודה -) בשבוע [17899] מתמטיקה: [powerpc] floorl מחזירה אפס שלילי עם FE_DOWNWARD [17950] build: Build with with [-18205] localedata: be_BY *: first_weekday wrong and first_workday [18433] libc : posix_spawn אינו חוזר כראוי על אי ביצוע [18453] localedata: / charm8 / IBM875: קודים לא נכונים [18712] מחרוזת: bits / string2.h לא תואם ל- -O2 -Werror = packed -Wsystem-headers [18896] localedata: he_IL: שיפורים במטבע [18911] localedata: ro_RO: תיקון שם יום בשבוע עבור "יום שלישי" בנתוני מקום רומנית [18960] loc: s390: _nl_locale_subfreeres משתמש ב- opl larl על סמל לא מסומן [19056] libc: readdir_r [19133] דומם: pt_ *: ימים & amp; [19198] localedata: nl_NL: שיפורים קטנים עבור המקומיים ההולנדים [19257] רשת: דליפת זיכרון לכל חותם ב- __res_vinit עם שמות של IPv6 (CVE-2016-5417) [19269] build: tst-audit4 ו- tn-audit10 כשלים ב- GCC-6 על מכונה ללא avx [19400] אזור: שפה חסרה ב- iso-639.def, תיקון טריוויאלי [19431] malloc: קיפאון בין fflush, getdelim ומזלג [19505] libc: תוקף שגוי של קובץ מתאמת קובץ ב- posix_spawn_file_actions_add {link, dup2} [19509] Dynamic-link: dlsym, dlvsym לא מדווחים על שגיאות באמצעות dlerror בעת שימוש ב- RTLD_NEXT [19512] אזור: Stale `#ifndef HAVE_BUILTIN_EXPECT 'ב-` intl / {gettextP , Loadinfo}.h [19534] libc: execle, execlp עשוי להשתמש ב- malloc [19568] localedata: * _CH: אזורים שוויצרים הם בעלי התחלה לא עקבית של שבוע [19573] רשת: res_nclose ו __res_maybe_init אינם מסכימים על אתחול שרת שם, שבירת Hesiod [19575] localedata: Status של טבלאות GB18030 [19581] localedata: sr_ * date_fmt מחרוזת נוספת [19583] מחרוזת: SSSE3_Fast_Copy_Bopyward הדגל צריך להיות מופעל עבור הליבה AMD מחפר [19592] מתמטיקה: [ldbl-128ibm] ceill שגוי במצבים עיגול שאינם ברירת מחדל [19593 ] מתמטיקה: [ldbl-128ibm] truncl שגוי במצבי עיגול שאינם של ברירת מחדל [19594] מתמטיקה: [ldbl-128ibm] עגול שגוי במצבי עיגול שאינם של ברירת מחדל [19595] מתמטיקה: [ldbl-128ibm] fmodl שגוי עבור תוצאות בתת- [19601] מתמטיקה: [ldbl-128ibm] טיפול fmodl של טיעונים שווים עם חלק נמוך אפס שגוי [19603] מתמטיקה: [ldbl-128ibm] נשאר, remkol טיפול סימן שגוי במבחני שוויון [19610] קישור דינמי: ldconfig - X מסיר קישורים סמליים מעופשים [19613] libc: s390x (64 סיביות) הרחבת מאקרו WCOREDUMP ואחרים [19633] אזור: strfmon_l חל אזור גלובלי על מספר עיצוב [19642] רשת: דליפת זיכרון ב- getnameinfo [19648] libc: test-skeleton.c: אל תגדיר RLIMIT_DATA [19653] libc: פוטנציאל עבור DREference של NULL מצביע (CWE-476) ב- glibc-2.22 [19654] מתמטיקה: [x86_64] זקוק ל- testcase עבור BZ # 19590 לתקן [19671] localedata: חסר Sanity Check for malloc () ב- 'tst-fmon.c' & amp; 'td-numeric.c' [19674] מתמטיקה: [ldbl-128ibm] עוף צוללת טיפול שגוי [19677] מתמטיקה: [ldbl-128ibm] נשאר מבחן השוויון נשאר לא נכון עבור חלק נמוך אפס [19678] מתמטיקה: [ldbl-128ibm] nextafterl , nexttowardl סימן שגוי של התוצאה אפס [19679] קישור דינמי: GCC-4.9.3 C + חריגים טיפול שבור עקב ערימה לא מסונכרנת [19726] אזור: המרת UCS4LE אל פנים עם iconv () לא לעדכן מצביעים ואורכים במקרה שגיאה . [19727] אזור: המרת מ / אל UTF-xx עם iconv () לא תמיד מדווח על שגיאות בערכי תחליף UTF-16.[19755] nscd: nscd: nscd: nscd: nsd: 19765] libc: s390 זקוק ל- mempcpy ממוטב [19779] גלוב: גלוב: גלישת מאגר עם GLOB_ALTDIRFUNC עקב הנחה שגויה של NAME_MAX (CVE-2016-1234) [19783] build: benchtests אינם תומכים --enable-hardcoded-path -בחינות [19787] רשת: בדיקה לא נכונה ושגויה ב - getnameinfo [19790] מתמטיקה: [ldbl-128ibm] nearintl לא נכונה במצבי עיגול שאינם ברירת מחדל [19791] רשת: כשל ב- res_query.c עם שם שאינו ניתן לחיבור [19792] libc: MIPS: Backtrace תשואות backtrace אינסופי עם makecontext [19822] מתמטיקה: libm.כדי להתקין נתונים לא מסודרים בתגובת 2 כדי לקבל אתaddaddrino [19830] רשת: nss_dns: יש לבדוק אורך RDATA נגד אורך חיץ [19831] רשת: nss_dns: getaddrinfo מחזירה נתונים לא מזוהים כאשר מתמודדים עם רשומות A / AAA של גודל לא חוקי [19837] nss: nss_db: אין נסיונות לשורות ארוכות עם מאגר גדול יותר [19848] מתמטיקה: עוף (10, n) עבור n = -4, -5, -6, -7 על ידי יותר מ 1 ULP [19853]: הדפסה יבמ כפול כפול עשרוני עם דיוק גבוה לפעמים שגוי [19860] לבנות: x86_64: שגיאות לקמפל עבור tst-audit10 ו tst-auditmod10b [19861] nptl: libfthread פתרון IFUNC עבור מזלג [19862] רשת: resolv, nss_dns: הסר רישום שנותר של סוגי רשומות לא צפויות [19865] רשת: כשל כשל או דליפת זיכרון ב- nys_dns_getcanonname_r [19868] רשת: nss_dns: קוד Netnet אינו מדלג על רשומות שאינן רשומות PTR [ 19879] רשת: nss_dns: מחסנית הצפת ב getnetbyname ליישם (1990) מחרוזת: [957] מחרוזות שגוי [19916] קישור דינמי: S390: fprs / vrs לא נשמרים / משוחזרים תוך כדי פתרון הסמלים [19925] libc : termios.h XCASE מרחב שמות [19928] מחרוזת: memmove-vec-unaligned-erms.S n NL_NMAX מרחב שמות [19931] stdio: דליפת זיכרון ב- vfprintf [19957] libc: clone_vm גישה לזיכרון הורה לא חוקי [19963] localedata: en_IL: מקום חדש [19989 ] stdio.h cuserid namespace [19994] רשת: getaddrinfo אינו משחזר את הדגל RES_USE_INET6 ב- gethosts [19996] אזור: langinfo.h nl_langinfo_l מרחב שמות [20005] stdio: fflush על קובץ שנפתח עם מיקום fmemopen מאפס ל- 0 [20010] רשת: getaddrinfo: ערימת גלישה בתרגום מארח (CVE-2016-3706) [20012] stdio: libio: כישלון מצב הוספה של fmemopen [20014] stdio: מרחב שמות stdio.h עבור טרום אשכולות POSIX [20017] רשת: resolv: השתמש gmetime_r במקום gmtime ב p_secododate [20023] libc: fcntl.h timespec מרחב שמות [20024] מתמטיקה: [x86_64] sincos vectorized trashes את הערימה [20031] רשת: nss_hesiod: הצפת גלי ב get_txt_records [20041] זמן: sys / time.h timespec מרחב שמות [20043] libc: unistd.h חסר cuserid עבור UNIX98 ולפני [20044] libc: unistd [20051] libc: ttyslot בכותרת שגויה תחת תנאים שגויים [20054] libc: gethostname לא הוכרז עבור XPG4 [20055] libc: termios.txgetsid חסר קישורים עבור XPG4 [20072] קישור דינמי: x86 init_cpu_features נקרא פעמיים בהפעלה סטטית [20073] libc: sys / stat.h fchmod namespace [20074] libc: stdlib.h מרחב שמות rand_r [20076] libc: sys / stat . sdif4k [20091] libc: stdlib.h לא צריך להכריז על מענק, ptsname, unlockpt עבור XPG3 [20111] libc: struct sockaddr_storage לא ניתן להעתיק מצטבר [20112] רשת: sunrpc: ערימה (מסגרת) הצפת ([CVC-2016-4429]) [20115] מחרוזת: יישור נוסף ב- mmset [20139] קישור דינמי: חלק עליון של zmm הוא אפס אם Glibc נבנה עם AS לא תומך AVX512 [מתמטיקה: 20151]: [ldbl-128 / ldbl-128ibm] j0l, j1l, y0l, y1l לחזור sNaN עבור ארגומנט sNaN [20153] מתמטיקה: [ldbl-128ibm] sqrtl (snaN) מחזירה את sNaN [20156] מתמטיקה: [ldbl-128ibm] cill, rintl וכו 'חזרה sNaN עבור ארגומנט sNaN [20157] מתמטיקה: [powerpc] fabsl (sNaN) טועה מעלה "לא חוקי" [20160] מתמטיקה: [p owerpc] ceil, rint וכו 'snaN עבור כניסת sNaN [20178] libc: posix_spawn {p} לא צריך לקרוא ליציאה [20191] stdio: libio: vtables hardening [20195] string: זיהוי FMA4 מחייב ביצוע CPUID עם רישום eax = 0x80000001 [20198] libc: quick_exit הורס באופן שגוי C + 11 אובייקטים פתיל. [20205] מתמטיקה: [i386 / x86_64] Nextafterl שגוי הגדלת תת-תת-תרמיות שליליות [20212] מתמטיקה: acos (sNaN) מחזירה sNaN [20213] מתמטיקה: asin (sNaN) מחזירה sNaN [20214] רשת: סינכרון לינוקס עם לינוקס / in6. h ו ipv6.h שוב.[20218] מתמטיקה: [i386] asinhl (sNaN) מחזירה sNaN [20219] מתמטיקה: [i386] atanhl (sNaN) מחזירה sNaN [20222] stopio: fopencookie: מצבי פונקציה Mangle [20224] מתמטיקה: [i386] cbrtl (sNaN) מחזירה sNaN [20225] מתמטיקה: ldexp, scalbn, scalbn חזרה sNaN עבור קלט sNaN [20226] מתמטיקה: [i386 / x86_64] expl, exp10l, expm1l לחזור sNaN עבור קלט sNaN [20227] מתמטיקה: [i386 / x86_64] logl (sNaN ) מחזירה sNaN [20228] מתמטיקה: [i386 / x86_64] log10l (sNaN) מחזירה sNaN [20229] מתמטיקה: [i386 / x86_64] log1pl (sNaN) מחזירה sNaN [20232] מתמטיקה: [ldbl-128] expm1l (sNaN) מחזירה snaN [20233] מתמטיקה: [ldbl-128ibm] expm1l (sNaN) מחזירה sNaN [20234] מתמטיקה: [ldbl-128ibm] log1pl (sNaN) מחזירה sNaN [20235] מתמטיקה: [i386 / x86_64] log2l (sNaN) מחזירה sNaN [ 20237] nss: nss_db: get * sgfaults ללא קודמת * * [20240] מתמטיקה: modf (sNaN) מחזירה sNaN [20248] libc: debug / tst-longjump_chk2 שיחות printf ממעבד אות [20250] מתמטיקה: frexp (sNaN ) מחזירה sNaN [20252] מתמטיקה: atan2 (sNaN, qNaN) נכשלה להעלות "לא חוקי" [20255] ma : [i386] fdim, חזרה fdimf עם טווח עודף ודיוק / עיגול כפול [20256] מתמטיקה: [i386 / x86_64] fdiml מחזירה sNaN עבור קלט sNaN [20260] מחרוזת: ../sysdeps/x86/bits/string.
h: 1092: 3: error: sub subscript הוא מתחת לגבולות המערך [-Werror = array-bounds] [20262] nis: _nss_nis_initgroups_dyn מחזירה תמיד NSS_STATUS_NOTFOUND [20263] nptl: חסימות mutex חזקות אם בקשות אחרות של פתיל timedlock (רק זרוע / linux) [20277] libc: $ dp לא מאותחל כהלכה ב- sysdeps / hppa / start.S [20284] malloc: malloc: הימנעות בזירה מושחתת גורמת למחסור ב- mmap fallbacks [20296] מתמטיקה: [i386 / x86_64] scalbl מחזירה sNaN עבור קלט sNaN, חסר חריגים "לא חוקיים" [20314] nptl: make [4]: *** [/usr/include/stdlib.h] שגיאה 1 [20316] localedata: id_ID: Februari במקום Pebruari [20327] string: POWER8 strcasecmp מחזירה תוצאה שגויה [20347] מתמטיקה: כשל: בדיקה: j0_downward (0xap + 0) [20348] libc: FAIL: misc / tst-preadvwritev64 [20349] libc: ערך 64 סיביות מועבר בצורה שונה ב- p {readv, writev} {64} [20350] libc: אין בדיקה עבור p [קריאה, כתיבה} 64 [20357] מתמטיקה: תוצאה לא נכונה של cos עבור 1.5174239687223976 [20384] build: אל תפעיל בדיקות libmvec-sincos-avx * on a avx m achines
מה חדש בגירסה 2.23:
- CVE-2015-7547: glibc getaddrinfo () ערימת מאגר מבוסס על מחסנית - תוקן על ענף הפיתוח עבור שחרור 2.23 glibc.
מה חדש בגירסה 2.21:
- הבאגים הבאים נפתרו במהדורה זו: 6652, 10672, 12674, 12847, 12926, 13862, 14132, 14138, 14171, 14498, 15215, 15378, 15884, 16009, 16418, 16191, 16469, 16576, 16617, 16618, 17343, 17363, 17363, 17370, 17371, 17411, 17460, 17475, 17475, 17485, 17501, 17506, 17508, 17522, 17555, 17570, 17571, 17572, 17573, 17574, 17565, 17601, 17608, 17616, 17630, 1783, 17633, 17634, 17634, 17647, 17657, 17657, 17658, 17658, 17664, 17665, 17668, 17682, 17702, 17717, 17719, 17745, 17745, 17746, 17747, 17747, 17724, 17775, 1777, 17780, 17780, 17733, 17782, 17844, 17848, 17868, 17869, 17870, 17885, 17892.
- CVE-2015-1472 בתנאים מסוימים, wscanf יכול להקצות זיכרון מועט מדי עבור הארגומנטים המיועדים לסריקה, ולהעביר את המאגר שהוקצה. היישום מבצע כעת חישוב נכון של גודל המאגר הדרוש בעת שימוש במאלוק.
- אלגוריתם סמפור חדש יושם בקוד הגנרי C עבור כל המכונות. בעבר היו ההרכבים מותאמים אישית של הרכבה סמפור קשה לחשוב או לוודא שהם בטוחים. הגרסה החדשה של סמפור תומכת במכונות עם פעולות אטומיות של 64 סיביות או 32 סיביות. האלגוריתם החדש של סמפור נעשה על ידי חציון, sem_open, sem_post, semwwait, sem_timedwait, sem_trywait ו- sem_getvalue.
- נמל אלטרה ניוס השני כבר תרם על ידי מנטור גרפיקה.
- מיישומי strcpy, stpcpy, strncpy, stpncpy, strcmp ו- strncmp עבור powerpc64 / powerpc64le. מיושם על ידי Adhemerval Zanella (IBM).
- תמיכה נוספת עבור TSX נעל elision של mutexes pthread על powerpc32, powerpc64 ו powerpc64le. זה עשוי לשפר את קנה המידה של נעילה של תוכניות קיימות על מערכות מסוג HTM. קוד נעילת נעילה מופעלת רק עם --enable-lock-elision = כן. כמו כן, יישום TSX נעילה elx עבור powerpc תנפיק את העסקה על כל syscall כדי למנוע תופעות לוואי להיות עסקאות מחוץ לעין.
- מיישומי strcpy, stpcpy, strchrnul ו- strrchr מותאמים ל- AArch64. נתרם על ידי ARM בע"מ.
- i386 פונקציות memcpy ממוטבות עם עומס / טעינה של SSE2.
- CVE-2104-7817 פונקציית wordexp עלולה להתעלם מדגל WRDE_NOCMD בתנאי קלט מסוימים, וכתוצאה מכך ביצוע פגז להחלפת פקודה כאשר הבקשה אינה מבקשת זאת. היישום בודק כעת את WRDE_NOCMD מיד לפני ביצוע הקליפה ומחזיר את השגיאה WRDE_CMDSUB כצפוי.
- פונקציות CVE-2012-3406 printf-style יכולות להיתקל בגלישת מחסנית בעת עיבוד מחרוזות תבנית עם מספר רב של מפרטי פורמט.
- CVE-2014-9402 יישום nss_dns של getnetbyname עלול להיתקל בלולאה אינסופית אם תגובת DNS הכילה רשומת PTR של פורמט לא צפוי.
- גירסת GCC המינימלית שניתן להשתמש בה לבניית גרסה זו של ספריית C של גנו היא GCC 4.6. גירסאות קודמות של GCC, ומהדורות שאינן גנו, עדיין יכולות לשמש להכנת תוכניות באמצעות ספריית C של גנו.
- ספריית C של גנו נבנית כעת עם -Werror כברירת מחדל. זה יכול להיות מושבת על ידי קביעת תצורה עם - disable-werror.
- אזורים חדשים: tu_in, bh_IN, raj_in, ce_RU.
- פונקציית sigvec הישנה הוסרה. זה היה ממשק 4.2BSD המקורי אשר השראה את ממשק SOSaction POSIX.1, אשר תוכניות השתמשו במקום במשך כ -25 שנים. כמובן, תאימות ABI עבור קבצים בינאריים ישנים באמצעות sigvec נשאר שלם.
- getext ממוזג 0.19.3 לתוך תיקיית המשנה intl. זה מתקן את הבניין עם גרסאות חדשות יותר של ביזון.
- תמיכה עבור MIPS o32 FPXX, FP64A ו- FP64 ABI Extensions. MIPS המקורי o32 קשה לצוף ABI דורש FPU שבו דו כיווני דיוק יש לכסות שני רצופים דיוק חד פעמי. MIPS32R2 הציג מצב FPU חדש (FR = 1) שבו רושמי דיוק כפול מרחיבים את רישומי הדיוק החד-צדדי המתאימים, שאינם עולים בקנה אחד עם A32 A3 לצוף קשה ABI. את MIPS SIMD ואת הארכיטקטורה MIPSR6 שניהם דורשים את השימוש FR = 1 ביצוע המעבר הכרחי. חדש O32 הרחבות ABI לאפשר למשתמשים להגר לאורך זמן מ A32 המקורי ABI דרך מעודכנת O32 FP64 ABI. כדי להשיג את זה מקשר דינמי עכשיו עוקב אחר ABI של כל אובייקט טעון ומאמת כי אובייקטים חדשים תואמים. מעברי מצב יתבקשו גם לפי הצורך ואובייקטים שאינם נתמכים יידחו. בדיקות ABI כוללים גם רך וקשה לצוף ABIs עבור o32, n32 ו n64.
תגובות לא נמצא