GNU C biblioteka yra atviro kodo, nemokama ir galinga bibliotekos programinė įranga bet kokiam GNU / Linux platinimui. Jis taip pat žinomas kaip "Glibc" ir jam reikalinga bet kuri "UNIX" tipo kompiuterio operacinė sistema. GNU C biblioteka yra atsakinga už sistemos skambučių apibrėžimą, taip pat į įvairias kitas pagrindines funkcijas, tokias kaip "malloc", "open", "exit", printf ir kt.
Pagal numatytuosius nustatymus naudojama visose Linux branduolio operacinėse sistemose
GNU C biblioteka yra įdiegta ir naudojama pagal numatytuosius nustatymus visuose "Linux" branduoliuose veikiančioje operacinėje sistemoje, kuri yra sukurta iš pat pradžių, kad būtų pagrindinė biblioteka C bibliotekoje GNU ir bet kuriai kitai operacinei sistemai, kuria palaiko "Linux" branduolys.
Suplanuotos būti nešiojamam
"Glibc" yra didelio našumo C biblioteka, pilnai parašyta C programavimo kalba. Jis suprojektuotas taip, kad būtų nešiojamas, internacionalizuotas ir sukurtas siekiant paremti visus svarbius standartus, įskaitant POSIX.1-2008 ir ISO C11.
Palaiko gerai žinomų UNIX variantų savybes
Nors GNU C biblioteka turi visiškai internacionalizuotą sąsają, ji dėka integruotų suderinamumo režimų bando palaikyti gerai žinomų UNIX variantų funkcijas, pvz., BSD ir "System V".
Darbo su GNU C biblioteka pradžia
Nors GNU C biblioteka pagal nutylėjimą yra įdiegta beveik visose GNU / Linux operacinėse sistemose, ją galite iš naujo įdiegti naudodamiesi savo svetainėje arba "Softoware" platinamais šaltiniais nemokamai. Norėdami pradėti, atsisiųskite ir išsaugokite archyvą savo namų kataloge.
Išpakuokite archyvą naudodami archyvo tvarkyklės įrankį, atidarykite terminalo langą, eikite į vietą, kurioje buvo išgauti archyvo failai, paleiskite & lsquo; ./configure & rsquo; komandą sukonfigūruoti programą (žr. komandą & lsquo; ./ configure --help & rsquo; komandą, skirtą įvairioms optimizavimo parinktims).
Tada paleiskite "& rsquo; komandą rinkti biblioteką, kurią galima įdiegti sistemoje, vykdydami vieną iš "make install" & rsquo; arba "sudo make install & rsquo; komandas, priklausomai nuo jūsų šaknies ar privilegijuoto vartotojo.
Kas naujo šiame leidime:
- https://sourceware.org/ml/libc-announce/2018/msg00000.html
Kas naujo 2.27 versijoje:
- https://sourceware.org/ml/libc-announce/2018/msg00000.html
Kas naujo versijoje:
- Minimali Linux branduolio versija, kurią galima naudoti su GNU C biblioteka, yra 3.2, išskyrus i [4567] 86 ir x86_64, kur kyla Linux branduolio versija 2.6.32 ar naujesnė (architektūros, kurioms jau reikėjo branduolio naujesnės nei 3.2 versijos, šie reikalavimai lieka nepakitę). Linux 3.2 ar vėlesnės branduolio antraštės reikalingos visoms architektūroms.
- "pap_AN" lokalė buvo ištrinta. Tai ilgą laiką buvo nebeaktualus. Jis buvo pakeistas pap_AW & amp; pap_CW, abu iš kurių jau seniai buvo įtraukti į ankstesnius leidimus.
- "readdir_r" ir "readdir64_r" funkcijos nebeveikė. Rekomenduojama vietoj to naudoti "readdir" ir "readdir64".
- "Union wait" tipas buvo pašalintas. Tai buvo pasenusi 1990 m. Pradžioje ir niekada nebuvo POSIX dalis. Programos kodas turėtų naudoti int tipo, o ne "union wait".
- Naujas NSS veiksmas pridedamas norint palengvinti didelės paskirstytos sistemos administravimą. Veiksmas MERGE leidžia nuotolinėms vartotojų parduotuvėms, pvz., LDAP, sujungti į vietines vartotojų parduotuves, pvz., / Etc / groups, kad būtų lengva naudoti, atnaujinti ir valdyti sujungtų kredencialų rinkiniai. Naują veiksmą galima naudoti konfigūruojant jį /etc/nsswitch.conf: grupė: failai [SUCCESS = merge] Įgyvendinta Stephen Gallagher (Red Hat).
- Neteisingas kintamasis __malloc_initialize_hook buvo pašalintas iš API.
- Ilgas neišnaudotas vietinio lango variantas pašalintas. Tai nieko daugiau nei 16 metų. Skriptai, naudojantys šią parinktį, gali jį saugiai atsisakyti.
- nextbie, nextup, nextupf, nextdownl, nextdown and nextdownf pridedami prie libm. Jas apibrėžia TS 18661 ir IEEE754-2008. Nextup funkcijos grąžina kitą reikšmingą reikšmę teigiamos begalybės kryptimi, o nextdown funkcijos grąžina kitą reprezentatyvią reikšmę neigiamos begalybės kryptimi. Šiuo metu jie yra įgalinti kaip GNU plėtiniai.
- Su saugumu susiję pakeitimai:
- "_nss_dns_getnetbyname_r" nereikalingos kopijos kopija buvo pašalinta. Gavęs "getnetbyname" pavadinimą su pernelyg ilgu pavadinimu, jis gali sukelti perpildymą. (CVE-2016-3075)
- Anksčiau "getaddrinfo" nukopijavo didelius adresų duomenis į krūvą, netgi pritaikius CVE-2013-4458 pataisą, dėl kurios gali susidaryti statinių perpildymas. Dabar "getaddrinfo" naudoja kietojo disko paskirstymą. Pranešė Michael Petlan. (CVE-2016-3706)
- "glob" funkcija kyla iš kamino pagrįstos buferinės perpildymo, kai ji buvo iškviesta su GLOB_ALTDIRFUNC vėliava ir susidūrė su ilgiu failo pavadinimu. Pranešė Aleksandras Čerepanovas. (CVE-2016-1234)
- "Sun RPC" UDP klientas gali išnaudoti visą prieinamą saugyklos vietą, kai užtvindytas sukurtais ICMP ir UDP pranešimais. Pranešė Aldy Hernandez "alloca plugin for GCC. (CVE-2016-4429)
- "libresolv" IPv6 vardų serverio valdymo kodas gali sukelti atminties nutekėjimą kiekvienam sukurtam pokalbiui, atlikti nepavykusį vardų peržiūrą ir išeiti. Laikui bėgant dėl atminties ištrynimo dėl to gali būti atsisakyta paslaugų. Pranešė Matthiasas Schifferis. (CVE-2016-5417)
- Šios klaidos išsprendžiamos šiomis klaidomis:
- [1170] localedata: ne_NP: atnaujinti Nepalo lokalės apibrėžimo failą [3629] manual: stpcpy aprašymas string.texi reiškia MS-DOG, o ne MS-DOS. [6527] malloc: [powerpc] Malloc derinimas nepakankamas PowerPC [6796] matematika: fdim () nenustato errno dėl perpildymo [10354] libc: posix_spawn turėtų naudoti vfork () daugeliu atvejų nei dabar [11213] localedata: localedata: Įtraukti autorių teisių atsisakymą į vietinį failą [12143] localedata: chr_US: naujas Cherokee locale [12450] localedata: sgs_LT: new locale [12676] localedata: ln_CD: new locale [13237] localedata: LC_ADDRESS.country_name: atnaujinti visas vietoves su naujausia CLDR duomenys [13304] matematika: fma, fmaf, fmal klaidingi rezultatai [14259] build: - localedir arg configure to ignoruoti [14499] nptl: Ar posix_spawn remiasi atfork tvarkytojai / use vfork? [14750] libc: lenktynių būklė posix_spawn vfork naudojimas palyginti su signalų apdorojimo priemonėmis [14934] localedata: es_CL: klaidingas pirmą savaitės dieną chilean locale [15262] localedata: LC_MESSAGES.yesexpr / noexpr: nenuosekliai naudojamas romanizavimas [15263] localedata: LC_MESSAGES.yesexpr / noexpr: netinkamas 1/0 ir +/- [15264] naudojimas localedata: LC_MESSAGES.yesstr / nostr: trūksta daugelyje vietovių [15368] nptl: raise () nėra async-signal-safe [15479] matematika: ceil, floor, round and trunc raise the inexact exception [15578] localedata: kk_KZ: various updates [16003] localedata: pap_AN: punt old locale [16137] localedata: iw_IL: punt old locale [16190] localedata: eo: new esperanto locale [16374] localedata: lv_LV: pakeisti valiutos simbolį LC_MONETARY į eurą [16742] malloc: race condition: pthread_atfork () iškviečiamas prieš pradedant pirmą malloc () sukelia netikėtą užrakinimo elgseną / neveiklumą [16975] localedata: LC_MESSAGES.yesexpr / noexpr: peržiūrėkite kapitalizaciją visose vietose [16983] localedata: postal_fmt neleidžia% l ir% n modifikatorių [17565] localedata : pt_PT: neteisingas (darbo) savaitės pradžia [17899] matematika: [powerpc] floorl grąžina neigiamą nulį su FE_DOWNWARD [17950] statyti: kūrimas nepavyksta su -msse [18205] localedata: be_BY *: klaidingas first_weekday ir first_workday [18433] libc : posix_spawn neteisingai grįžta po nesugebėjimo įvykdyti [18453] localedata: charmaps / IBM875: neteisingi kodai [18712] string: bits / string2.h nesuderinama su -O2 -Werror = supakuota -Wsystem-antraštės [18896] localedata: he_IL: patobulinimai valiutai [18911] localedata: ro_RO: taisymas savaitės dienos pavadinimas "antradienis" rumunų kalbų duomenys [18960] lokalė: s390: _nl_locale_subfreeres naudoja larl opcode ant neteisingo simbolio [19056] libc: deprecate readdir_r [19133] localedata: pt_ *: days & amp; mėnesiai turi būti mažosiomis kalbomis portugalų kalba [19198] localedata: nl_NL: nedideli Olandų lokalizacijų patobulinimai [19257] tinklas: "thread-in-memory" nuotėkis __res_vinit su IPv6 vardų serveriais (CVE-2016-5417) [19269] build: tst-audit4 ir tst-audit10 nesėkmės su gcc-6 ne avx mašinoje [19400] lokalė: trūksta kalbos "iso-639.def", trivialus nustatymas aprašyme [19431] malloc: išjungimas tarp fflush, getdelim ir fork [19505] libc: Neteisingi failų deskriptoriaus galiojimo patikrinimai po posix_spawn_file_actions_add (atidaryti, uždaryti, dup2) [19509] dinaminė nuoroda: dlsym, dlvsym nepraneša apie klaidas per dlerror, kai naudojamas RTLD_NEXT [19512] locale: Stale `#ifndef HAVE_BUILTIN_EXPECT 'iš intl / {gettextP , loadinfo}.h [19534] libc: execle, execlp gali naudoti malloc [19568] localedata: * _CH: šveicariškos vietos turi nenuoseklią savaitės pradžią [19573] tinklą: res_nclose ir __res_maybe_init nesutaria dėl vardų serverio iniciacijos, pažeidžiant Hesiod [19575] localedata: Statusas iš GB18030 stalų [19581] localedata: sr_ * date_fmt eilutė papildoma nauja eilutė [19583] eilutė: SSSE3_Fast_Copy_Backward vėliava turi būti įjungta AMD "Excavator core" [19592] matematika: [ldbl-128ibm] neveikia klaidingai nenumatant apvalinimo režimų [19593 ] matematika: [ldbl-128ibm] klaidinga klaidinga neapibrėžtų apvalinimo režimuose [19594] matematika: [ldbl-128ibm] apvalus neteisingas nenumatytų apvalinimo režimu [19595] matematika: [ldbl-128ibm] fmodl neteisinga, kad rezultatas būtų subnormalus dvigubas diapazonas [19602] matematika: [ldbl-128ibm] fmodl lygių argumentų tvarkymas su maža dalimi nulis neteisingas [19603] matematika: [ldbl-128ibm] remainderl, remquol neteisingas ženklų tvarkymas lygybės testuose [19610] dynamic link: ldconfig - X pašalina nenustatytas simbolines nuorodas [19613] libc: s390x (64 bitų) makroekskursas WCOREDUMP ir kiti [19633] lokalė: strfmon_l taiko pasaulinę lokalę numerių formatavimui [19642] tinkle: atminties nutekėjimas getnameinfo [19648] libc: test-skeleton.c: Nenustatykite RLIMIT_DATA [19653] libc: potencialas NULL rodiklio dereference (CWE-476) į glibc-2.22 [19654] matematikos: [x86_64] Reikia testo BZ # 19590 nustatyti [19671] localedata: trūksta Sanity Patikrinti malloc () "tst-fmon.c" & amp; "tst-numeric.c" [19674] matematika: [ldbl-128ibm] powl neteisingas perpildymo tvarkymas [19677] matematika: [ldbl-128ibm] remainderl lygybės testas neteisingas nuliui mažos dalies [19678] matematika: [ldbl-128ibm] nextafterl , nexttowardl neteisingas ženklas nulinio rezultato [19679] dinaminis-link: gcc-4.9.3 C + + išimtis tvarkyti sugedo dėl nepakeisto kamino [19726] locale: konvertuojant UCS4LE į VIDAUS su iconv () ne atnaujina rodyklių ir ilgių klaidos atveju . [19727] lokalė: konvertavimas iš / į UTF-xx su iconv () ne visada praneša apie klaidas UTF-16 pakaitinių verčių.[19755] nscd: nscd patvirtinimo gedimas gc [19758] dinaminis ryšys: tipografija EXTRA_LD_ENVVARS x86-64 [19759] libc: mempcpy neturėtų būti įklijuotas [19762] dinaminis ryšys: HAS_CPU_FEATURE / HAS_ARCH_FEATURE yra lengva piktnaudžiauti [ 19765] libc: s390 reikalauja optimizuotos mempcpy [19779] glob: glob: buferinis perpildymas su GLOB_ALTDIRFUNC dėl klaidingos prielaidos NAME_MAX ribos (CVE-2016-1234) [19783] build: benchtesting not supported - enable-hardcoded path "in-tests" [19787] tinklas: trūkstami ir neteisingi patikrinimai trunka į getnameinfo [19790] matematika: [ldbl-128ibm] netinkamasis netinklis nenumatytų apvalinimo režimuose [19791] tinklas: patvirtinimo klaida res_query.c su nenaudojamu vardu serverio adresai [19792] libc: MIPS: backtrace gauna begalinį backtrace su makecontext [19822] matematika: libm.todėl įdiekite clobbers senąją versiją [19825] tinklą: resolv: send_vc gali grąžinti neinitializuotus duomenis antrajame atsakyme į getaddrinfo [19830] tinklą: nss_dns: turėtų patikrinti RDATA ilgis prieš buferio ilgį [19831] tinklas: nss_dns: getaddrinfo grąžina neinitializuotus duomenis, kai susiduria su A / AAAA įrašai apie netinkamą dydį [19837] nss: nss_db: nėra bandymų kai kurioms ilgioms eilutėms su didesniu buferiu [19848] matematika: powl (10, n) n = -4, -5, -6, -7 yra [19860] build: x86_64: sudaryti klaidas tst-audit10 ir tst-auditmod10b [19861] nptl: libpthread IFUNC šakutė gali sukelti avariją [19862] tinklas: resolv, nss_dns: pašalinti likusį netikėtų įrašų tipų registravimą [19865] tinklas: patvirtinimo gedimas arba atminties nutekėjimas _nss_dns_getcanonname_r [19868] tinkle: nss_dns: netent kodas nepaleidžia ne PTR įrašų [ 19879] tinklas: nss_dns: stack overflow in getnetbyname implementa (CVE-2016-3075) [19881] eilutė: patobulinti x86-64 memset [19907] eilutė: neteisingi memcpy testai [19916] dinaminis ryšys: S390: fprs / vrs neišsaugomi / neatsimenami sprendžiant simbolius [19925] libc : termios.h XCASE namespace [19928] eilutė: memmove-vec-unaligned-erms.S lėtas su dideliu duomenų dydžiu [19929] libc: limits.h NL_NMAX vardų sritis [19931] stdio: atminties nutekėjimas vfprintf [19957] libc: clone (CLONE_VM) prieiga prie netinkamos tėvų atminties [19963] localedata: en_IL: New locale [19989 ] stdio: stdio.h cuserid namespace [19994] tinklas: getaddrinfo neatnaujina RES_USE_INET6 vėliavos gethosts [19996] locale: langinfo.h nl_langinfo_l namespace [20005] stdio: fflush į failą, atidarytą fmemopen, paleidžia poziciją 0 [20010] Tinklas: getaddrinfo: Stack overflow į konsoliduotą vertimą (CVE-2016-3706) [20012] stdio: libio: fmemopen pridėti režimo triktį [20014] stdio: stdio.h vardų sritis POSIX [20017] tinklui: resolv: naudoti gmtime_r vietoj gmtime į p_secstodate [20023] libc: fcntl.h timespec vardų sritis [20024] matematika: [x86_64] vektorizuoti sincos ištrūko stočių [20031] tinklą: nss_hesiod: šliuzų perpildymas get_txt_records [20041] laikas: sys / time.h timespec namespace [20043] libc: unistd.h trūksta cuserid UNIX98 ir anksčiau [20044] libc: unistd .h trūksta pthread_atfork, skirtas UNIX98 [20051] libc: ttyslot neteisingoje antraštėje klaidingomis sąlygomis [20054] libc: gethostname nėra deklaruota XPG4 [20055] libc: termios.h trūksta tcgetsid for XPG4 [20072] dinaminis ryšys: x86 init_cpu_features du kartus paleidžiamas statiškai vykdomajame [20073] libc: sys / stat.h fchmod namespace [20074] libc: stdlib.h rand_r namespace [20076] libc: sys / stat .h trūksta S_IFSOCK, S_ISSOCK už XPG4 [20094] libc: stdlib.h neturėtų paskelbti grantpt, ptsname, unlockpt for XPG3 [20111] libc: struct sockaddr_storage negali būti kopijuojamas [20112] tinklas: sunrpc: stack (frame) overflow į Sun RPC clntudp_call (CVE-2016-4429) [20115] eilutė: papildomas derinimas į memset-vec-unaligned-erms.S [20119] libc: neteisinga procesoriaus lygio tipo kaukė iš CPUID [20139] dinaminė nuoroda: viršutinė dalis zmm yra nulinis, jei Glibc yra pastatytas su AS, kuris nepalaiko AVX512 [20151] matematika: [ldbl-128 / ldbl-128ibm] j0l, j1l, y0l, y1l grąžina sNaN sNaN argumentui [20153] matematika: [ldbl-128ibm] sqrtl (sNaN) grąžina sNaN [20156] matematika: [ldbl-128ibm] ceill, rintl ir tt grįžti sNaN sNaN argumentui [20157] matematika: [powerpc] fabsl (sNaN) neteisingai kelia "negaliojančia" [20160] matematika: [p owerpc] ceil, rint ir ttgrįžti sNaN už sNaN įvesties [20.178] libc: posix_spawn {p} neturėtų kelti Exit [20191] stdio: libio: vtables grūdinimas [20195] eilutė: FMA4 aptikimo reikalauja cpuid vykdymą su Registruotis EAX = 0x80000001 [20.198] libc: quick_exit neteisingai sunaikina C + +1 temos objektai. [20205] matematika: [i386 / x86_64] nextafterl neteisingi pokyčio neigiamas subnormals [20212] matematikos: ACOS (sNaN) grąžina sNaN [20213] matematika: ASIN (sNaN) grąžina sNaN [20214] tinklas: "Linux" antraštė sinchronizacija su linux / in6. h ir ipv6.h vėl.[20218] matematika: [i386] Asinhl (sNaN) grąžina sNaN [20219] matematika: [i386] atanh (sNaN) grąžina sNaN [20222] stdio: fopencookie: Mangle funkcijos nurodo [20224] matematika: [i386] cbrtl (sNaN) [20226] matematika: [i386 / x86_64] logl (sNaN (sNaN) grąžina sNaN [20232] matematikos: [ldbl-128] expm1l (sNaN) grąžina sNaN [20228] sNaN [20233] math: [i386 / x86_64] log2l (sNaN) returns sNaN [20233] math: [ldbl-128ibm] expm1l (sNaN) returns sNaN [20234] math: [ldbl-128ibm] log1pl (sNaN) 20237] nss: nss_db: get * ent segfaults be preceding set * ent [20240] math: modf (sNaN) returns sNaN [20248] libc: debug / tst-longjump_chk2 calls the printf from signal handler [20250] math: frexp (sNaN ) grąžina sNaN [20252] matematika: atan2 (sNaN, qNaN) nerodo "negaliojančio" [20255] ma th: [i386] fdim, fdimf grįžti su pertekliniu diapazonu ir tikslumu / dvigubu apvalinimu [20256] matematika: [i386 / x86_64] fdiml grąžina sNaN į sNaN įvestį [20260] eilutę: ../sysdeps/x86/bits/string.
h: 1092: 3: klaida: masyvo indeksas yra žemiau masyvo apribojimų [-Werror = matricos apribojimai] [20262] nis: _nss_nis_initgroups_dyn visada grąžina NSS_STATUS_NOTFOUND [20263] nptl: tvirtus mutexo blokus, / linux) [20277] libc: $ dp neteisingai inicijuojamas sistemoje sysdeps / hppa / start.S [20284] malloc: malloc: sugadintas arenos vengimas sukelia nereikalingus "mmap" nugaros [20296] matematikos: [i386 / x86_64] scalbl grąžina sNaN sNaN įvestis, trūksta "negaliojančių" išimčių [20314] nptl: make [4]: *** [/usr/include/stdlib.h] 1 klaida [20316] localedata: id_ID: Februari vietoj Pebruari [20327] eilutė: POWER8 strcasecmp grąžina neteisingą rezultatą [20347] matematika: nesėkmė: testas: j0_downward (0xap + 0) [20348] libc: FAIL: misc / tst-preadvwritev64 [20349] libc: 64 bitų reikšmė perduodama kitaip p (readv, writev) {64} [20350] libc: nėra p (skaitoma, rašoma) 64 [20357] matematikos testas: neteisingas cos rezultatas, skirtas 1.5174239687223976 [20384] statyti: neveikia libmvec-sincos-avx * testai ne avx m achines
Kas naujo 2.23 versijoje:
- CVE-2015-7547: glibc getaddrinfo () statinių buferinis perpildymas. Ištaisyta plėtinio filiale, skirta glibc 2.23.
Kas naujo 2.21 versijoje:
- Šios klaidos yra išspręstos šiuo leidimu: 6652, 10672, 12674, 12847, 12926, 13862, 14132, 14138, 14171, 14498, 15215, 15378, 15884, 16009, 16418, 16191, 16469, 16576, 16617, 16618, 16619, 16657, 16740, 16857, 17192, 17266, 17273, 17344, 17363, 17370, 17371, 17411, 17460, 17475, 17485, 17501, 17506, 17508, 17522, 17555, 17570, 17571, 17572, 17573, 17574, 17582, 17583, 17584, 17585, 17583, 17584, 17585, 17589, 17594, 17601, 17608, 17616, 17625, 17630, 17633, 17634, 17635, 17647, 17653, 17657, 17658, 17664, 17665, 17668, 17682, 17702, 17717, 17719, 17722, 17723, 17724, 17725, 17732, 17733, 17744, 17745, 17743, 17747, 17745, 17746, 17747, 17748, 17775, 17777, 17780, 17781, 17782, 17791, 17793, 17796, 17797, 17801, 17803, 17806, 17834, 17844, 17848, 17868, 17869, 17870, 17885, 17892.
- CVE-2015-1472 Tam tikromis sąlygomis wscanf gali skirti pernelyg mažą atmintį nuskaitytiems argumentams ir perpildyti paskirtą buferį. Naudojant malloc, dabar teisingai apskaičiuojamas reikalingas buferio dydis.
- Naujas semaforo algoritmas buvo įdiegtas į bendrąjį C kodą visoms mašinoms. Ankstesniam semaforo pasirinktiniams surenkamiesiems įrenginiams buvo sunku pasiteisinti ar užtikrinti, kad jie yra saugūs. Naujoji semaforo versija palaiko 64-bitų ar 32-bitų atomų operacijas. Naująjį semaforo algoritmą naudoja sem_init, sem_open, sem_post, sem_wait, sem_timedwait, sem_trywait ir sem_getvalue.
- "Altera Nios II" uostą įnešė "Mentor Graphics".
- "powerpc64 / powerpc64le" optimizuoti "strcpy", "stpcpy", "strncpy", "stpncpy", "strcmp" ir "strncmp" diegimai. Įdiegė "Adhemerval Zanella" (IBM).
- Pridėjo palaikymą "pthread mutexes" TSX užraktų elizijai "powerpc32", "powerpc64" ir "powerpc64le". Tai gali pagerinti esamų programų užrakto mastelį HTM sistemose. Užrakto elizės kodas įjungiamas tik su --enable-lock-elision = taip. Be to, "powerpc" "TSX" užraktų elision diegimas išduos kiekvieno "syscall" operaciją nutraukiant, kad būtų išvengta pašalinių efektų matomoje išorėje.
- "AArch64" optimizuoti "strcpy", "stpcpy", "strchrnul" ir "strrchr" įdiegimai. Prisidėjo ARM Ltd.
- i386 memcpy funkcijos, optimizuotos su SSE2 nepakeista apkrova / saugykla.
- CVE-2104-7817 "Wordexp" funkcija gali ignoruoti WRDE_NOCMD vėliavėlę tam tikromis įvesties sąlygomis, todėl komandų pakaitalas įvykdomas, kai aplikacja neprašė jo. Dabar įgyvendinimas tikrina WRDE_NOCMD iškart prieš paleidžiant apvalkalą ir grąžina WRDE_CMDSUB klaidą, kaip tikėtasi.
- CVE-2012-3406 "printf" stiliaus funkcijos gali virsti sienų perpildymu apdorojant formatų eilutes su daugybe formato specifi škų.
- CVE-2014-9402 "getnetbyname" diegimas nss_dns gali būti begalinis ciklas, jei DNS atsakyme yra netikėto formato PTR įrašas.
- Mažiausia GCC versija, kuri gali būti naudojama kuriant šią GNU C bibliotekos versiją, yra GCC 4.6. Senesnės GCC versijos ir ne GNU kompiliatoriai dar gali būti naudojami programoms kaupti naudojant GNU C biblioteką.
- GNU C biblioteka dabar yra sukurta pagal numatytuosius parametrus -Werror. Tai gali būti išjungta konfigūruojant su --disable-werror.
- Nauji regionai: tu_IN, bh_IN, raj_IN, ce_RU.
- Pasenusi sigvec funkcija buvo pašalinta. Tai buvo originalus 4.2BSD sąsaja, kuri įkvėpė POSIX.1 sigaction sąsają, kurios programos buvo naudojamos maždaug 25 metus. Žinoma, ABI suderinamumas su senais dvejetainiais failais naudojant sigvec lieka nepažeistas.
- Sujungtas gettext 0.19.3 intl pakatalogyje. Tai pataiso pastatą su naujesnėmis bizonų versijomis.
- "MIPS o32" "FPXX", "FP64A" ir "FP64 ABI" plėtinių palaikymas. Originalus "MIPS o32" kietasis plūduras "ABI" reikalauja FPU, kuriame dvigubo tikslumo registrai perdengia du nuoseklius vieno tikslumo registrus. MIPS32R2 pristatė naują FPU režimą (FR = 1), kuriame dvigubo tikslumo registrai išplečia atitinkamus vieno tikslumo registrus, kurie nesuderinami su "O32" kietuoju slankiuoju ABI. MIPS SIMD ASE ir MIPSR6 architektūra reikalauja naudoti FR = 1, todėl reikia atlikti perėjimą. Nauji ABI pratęsimai o32 leidžia vartotojams per tam tikrą laikotarpį pereiti nuo originalios O32 ABI iki atnaujintos o32 FP64 ABI. Norėdami tai pasiekti, dinaminis linkeris dabar stebi bet kurio pakrauto objekto ABI ir patvirtina, kad nauji objektai yra suderinami. Taip pat reikalaujama, kad režimo perėjimai būtų reikalaujami, o nepatvirtinami objektai bus atmesti. ABI patikrinimai apima tiek minkštųjų, tiek kietų plūduriuojančių ABI, skirtų o32, n32 ir n64.
Komentarai nerastas