GNU C -kirjasto on avoin lähdekoodi, ilmainen ja tehokas kirjasto-ohjelmisto kaikille GNU / Linux-jakeluille. Se tunnetaan myös nimellä Glibc ja sitä vaaditaan millä tahansa UNIX-kaltaisella tietokoneen käyttöjärjestelmällä. GNU C -kirjasto vastaa järjestelmäpuheluiden määrittämisestä sekä erilaisista muista perustoiminnoista, kuten malloc, open, exit, printf jne.
Käytetään oletusarvoisesti kaikissa Linux-ytimen käyttöjärjestelmissä
GNU C -kirjasto on asennettu ja sitä käytetään oletuksena kaikissa Linux-ytimen käyttöjärjestelmissä, joka on suunniteltu toimimaan GN-järjestelmien tärkeimpänä C-kirjastona ja millä tahansa muulla Linux-ytimellä toimivalle käyttöjärjestelmälle.
Suunniteltu kannettavaksi
Glibc on korkean suorituskyvyn C-kirjasto, joka on kirjoitettu kokonaan C-ohjelmointikielellä. Se on suunniteltu kannettavaksi, kansainväliseksi ja muokatuksi kaikkien asiaankuuluvien standardien, kuten POSIX.1-2008 ja ISO C11, tukemiseksi.
Tukee tunnettujen UNIX-versioiden ominaisuuksia
Vaikka GNU C -kirjastolla on täysin kansainvälistetty käyttöliittymä, se pyrkii tukemaan tunnettujen UNIX-versioiden ominaisuuksia, kuten BSD ja System V, sen sisäänrakennetun yhteensopivuustilan ansiosta.
GNU C -kirjaston käytön aloittaminen
Vaikka GNU C -kirjasto asennetaan oletusarvoisesti lähes kaikissa GNU / Linux-käyttöjärjestelmissä, voit myös asentaa sen itsenäisesti verkkosivustollaan tai Softoware-ohjelmistollaan maksuttoman lähdepaketin avulla. Aloita lataamalla ja tallentamalla arkisto kotihakemistasi.
Pura arkisto arkisto manager-apuohjelmalla, avaa pääteikkuna, siirry paikkaan, jossa arkistointitiedostot on purettu, suorita & lsquo; ./ configure & rsquo; komento määrittää ohjelman (ks. & lsquo; ./ configure --help & rsquo; -komento eri optimointivaihtoehdoista).
Käytä & lsquo; tee & rsquo; komento koota kirjasto, joka voidaan asentaa leveäksi suorittamalla joko & lsquo; make install & rsquo; tai & lsquo; sudo make install & rsquo; komennot, riippuen siitä, onko juuri tai etuoikeutettu käyttäjä.
Uutta strong> tässä julkaisussa:
- https://sourceware.org/ml/libc-announce/2018/msg00000.html
Uutta strong> versiossa 2.27:
- https://sourceware.org/ml/libc-announce/2018/msg00000.html
Uutta strong> versiona:
- Linux-ytimen versio, jota GNU C -kirjaston tätä versiota voidaan käyttää, on 3.2, paitsi i [4567] 86 ja x86_64, jossa Linux-ytimen versio 2.6.32 tai uudempi riittää (arkkitehtuureissa, jotka jo vaativat ydintä aikaisemmat kuin 3.2, nämä vaatimukset pysyvät ennallaan). Linux 3.2 tai uudempi ytimen otsikot tarvitaan kaikissa arkkitehtuureissa.
- Pap_AN locale on poistettu. Tätä on vanhentunut pitkään. Se on korvannut pap_AW & amp; pap_CW, jotka molemmat on jo pitkään sisällytetty aiempiin julkaisuihin.
- Readdir_r- ja readdir64_r-toimintoja on hylätty. On suositeltavaa käyttää readdir ja readdir64 sijaan.
- Tyyppi "unioni odottaa" on poistettu. Se oli vanhentunut 1990-luvun alussa eikä koskaan ollut osa POSIXia. Sovelluskoodin tulisi käyttää int-tyyppiä "union wait" sijasta.
- Uusi NSS-toiminto lisätään helpottamaan suurta hajautettua järjestelmän hallintaa. MERGE-toiminto sallii etäasiakastien, kuten LDAP: n, yhdistämisen paikallisiin käyttäjävarastoihin, kuten / etc / ryhmiksi, jotta voidaan luoda helppokäyttöisiä, päivitettyjä ja hallittuja sulautettujen tunnisteiden sarjoja. Uusi toiminto voidaan käyttää konfiguroimalla se /etc/nsswitch.conf: group: files [SUCCESS = yhdistä] nis Implemented by Stephen Gallagher (Red Hat).
- Hylätty __malloc_initialize_hook-muuttuja on poistettu sovellusliittymästä.
- Pitkä käyttämättömän localedef -old-style -vaihtoehto on poistettu. Se ei ole tehnyt mitään yli 16 vuoteen. Tämän vaihtoehdon skriptit voivat turvallisesti pudottaa sen.
- Nextupl, nextup, nextupf, nextdownl, nextdown ja nextdownf lisätään libm: iin. Ne on määritelty TS 18661 ja IEEE754-2008. Seuraava toiminto palauttaa seuraavan edustavan arvon positiivisen ääretön suuntaan ja vierekkäiset toiminnot palauttavat seuraavan edustavan arvon negatiivisen ääretön suuntaan. Nämä ovat tällä hetkellä käytössä GNU-laajennuksina.
- Turvallisuuteen liittyvät muutokset:
- Tarpeellinen pino kopio _nss_dns_getnetbyname_r poistettiin. Se saattaa johtaa pinon ylivuotoon, kun getnetbyname kutsuttiin liian pitkällä nimellä. (CVE-2016-3075)
- Aiemmin getaddrinfo kopioi suuria määriä osoitetietoja pinoon, vaikka CVE-2013-4458: n korjausta on käytetty, mikä mahdollisesti johtaa pinon ylivuotoksiin. getaddrinfo käyttää nyt sen sijaan kasaan jakamista. Ilmoitti Michael Petlan. (CVE-2016-3706)
- Globaali funktio kärsi pinoon perustuvasta puskurin ylivuodosta, kun sitä kutsuttiin GLOB_ALTDIRFUNC-lipulla ja kohdannut pitkän tiedostonimen. Ilmoitti Alexander Cherepanov. (CVE-2016-1234)
- Sun RPC UDP -asiakasohjelma voisi tyhjentää kaikki käytettävissä olevat pino-tilat tulvillaan muotoilluilla ICMP- ja UDP-viesteillä. Raportoi Aldy Hernandez 'alloca plugin GCC: lle. (CVE-2016-4429)
- Libretolvissa IPv6-nimipalvelimen hallintakoodi voi johtaa muistin vuotamiseen kullekin luotavalle threadille, suorittaa epäonnistuneen nimeämistavan ja poistuu. Ajan myötä tämä voi johtaa palvelun epäämiseen muistin tyhjenemisen vuoksi. Raportoi Matthias Schiffer. (CVE-2016-5417)
- Seuraavat vikoja ratkaistaan tämän julkaisun avulla: <>[1170] localedata: ne_NP: päivitys Nepalin paikallisen määrittelytiedoston [3629] käsikirja: stpcpy description in string.texi viittaa MS-DOG: iin MS-DOS: n sijaan. [6527] malloc: [powerpc] Malloc-sovitus ei riitä PowerPC: lle [6796] matematiikka: fdim () ei aseta errnoa ylivuotolle [10354] libc: posix_spawn käyttää vfork () useampia kuin nykyisin [11213] localedata: localedata: lisätään tekijänoikeusvastuuvapauslauseke paikallisille tiedostoille [12143] localedata: chr_US: uusi Cherokee locale [12450] localedata: sgs_LT: uusi locale [12676] localedata: ln_CD: uusi locale [13237] localedata: LC_ADDRESS.nimi_nimi: päivitä kaikki paikalliset tiedot uusimmalla CLDR data [13304] matematiikka: fma, fmaf, fmal tuottavat vääriä tuloksia [14259] build: --localedir arg konfiguroida jätetään huomiotta [14499] nptl: Onko posix_spawn vedota atfork käsittelijöihin / käytä vforkia? [14734] localedata: es_CL: väärä ensimmäinen viikonpäivä chilean locale [15262] localedata: LC_MESSAGES.yesexpr / noexpr: epäjohdonmukainen romanisoinnin käyttö [15263] localedata: LC_MESSAGES.yesexpr / noexpr: epäyhtenäinen käyttö 1/0 ja +/- [15264] localedata: LC_MESSAGES.[15368] nptl: raise () ei ole async-signaaliturvallinen [15479] matematiikka: katto, lattia, pyöreä ja trunc korota epätäsmällistä poikkeusta [15578] localedata: kk_KZ: eri päivitykset [16003] localedata: pap_AN: pisteet vanha locale [16137] localedata: iw_IL: pisteet vanha locale [16190] localedata: eo: uusi esperanto locale [16374] localedata: lv_LV: vaihda valuutan tunnus LC_MONETARY euroon [16742] malloc: rotuolosuhteet: pthread_atfork () kutsutaan ennen ensimmäistä malloc () kutsutaan odottamattomaan lukituskäyttäytymiseen / umpikujaan [16975] localedata: LC_MESSAGES.yesexpr / noexpr: uudelleen pääkaupunkiseudun kaikissa kohdissa [16983] localedata: postal_fmt ei salli% l ja% n muokkaajia [17565] localedata : pt_PT: virhe (työ) viikon alku [17899] matematiikka: [powerpc] floorl palauttaa negatiivisen nollaan FE_DOWNWARD [17950] rakentaa: Build epäonnistuu -msse [18205] localedata: be_BY *: väärä ensimmäinen_viikonpäivä ja first_workday [18433] libc : posix_spawn ei palaa oikein, kun suoritusta ei ole suoritettu [18453] localedata: charmaps / IBM875: virheelliset koodit [18712] merkkijono: bittiä / merkkijono2.h yhteensopimaton -O2 -Werror = pakattu -Widget-otsikot [18896] localedata: he_IL: parannukset valuutassa [18911] localedata: ro_RO: Päivän viikonpäivän korjaaminen "tiistaina" romanialaisissa paikallistiedoissa [18960] locale: s390: _nl_locale_subfreeres käyttää larl opcodea väärin kohdistetusta symbolista [19056] libc: Deprecate readdir_r [19133] localedata: pt_ *: päivää & amp; kuukausien on oltava pieniä portugalinkielisissä kielissä [19198] localedata: nl_NL: pienet parannukset hollantilaisiin paikallisiin verkkoihin [19257] verkko: langattomien muistivuotojen __res_vinit IPv6-nimipalvelimilla (CVE-2016-5417) [19269] rakentaa: tst-audit4 ja [19400] locale: Kieli puuttuu "iso-639.def": ssä, trivial fix in description [19431] malloc: Pysähtyminen fflush, getdelim ja fork välillä [19505] libc: tst-audit10 epäonnistuminen gcc-6: Virheelliset tiedostojen kuvaajien voimassaolotarkistukset posix_spawn_file_actions_add {avoin, sulje, dup2} [19509] dynaaminen linkki: dlsym, dlvsym ei raportoi virheitä dlerror avulla RTLD_NEXT [19512] locale: Stale `#ifndef HAVE_BUILTIN_EXPECT 'in` intl / {gettextP , loadinfo}.h [19534] libc: execle, execlp voi käyttää malloc [19568] localedata: * _CH: Sveitsiläisillä paikallisilla on epäjohdonmukainen viikon alku [19573] verkko: res_nclose ja __res_maybe_init ovat eri mieltä nimipalvelimen alustuksesta, rikkoen Hesiod [19575] localedata: [19581] localedata: sr_ * date_fmt merkkijono sisältää uuden uuden rivin [19583] merkkijonon: SSSE3_Fast_Copy_Backward-lippu täytyy ottaa käyttöön AMD Excavator -ydintä varten [19592] matematiikka: [ldbl-128ibm] ceill virheellinen ei-oletuspyöristämissä tiloissa [19593 ] math: [ldbl-128ibm] truncl virheellinen ei-oletuspyöristämissä tiloissa [19594] matematiikka: [ldbl-128ibm] pyöreä virhe epäsäännöllisissä pyöristystiloissa [19595] matematiikka: [ldbl-128ibm] kaksinkertainen etäisyys [19602] matematiikka: [ldbl-128ibm] fmodl samanarvoisten argumenttien käsittely alhaisella osalla nolla väärä [19603] matematiikka: [ldbl-128ibm] jäljellä, X poistaa vanhentuneet symboliset linkit [19613] libc: s390x (64-bittinen) makro-laajennus WCOREDUMP ja muut [19633] locale: strfmon_l soveltaa globaalia locale numeronmuodostukseen [19642] verkko: Memory leak getnameinfo [19648] libc: test-skeleton.c: Älä aseta RLIMIT_DATA [19653] libc: potentiaalia NULL-osoittimen dereferenssille (CWE-476) glibc-2.22: ssa [19654] matematiikka: [x86_64] Tarvittava testikotelo BZ: lle # 19590 fix [19671] localedata: () "tst-fmon.c" & amp; [19678] matematiikka: [ldbl-128ibm] jäljellä oleva tasa testi virheellinen nolla matala osa [19678] matematiikka: [ldbl-128ibm] nextafterl , nexttowardl virheellinen merkki nollatuloksesta [19679] dynaaminen linkki: gcc-4.9.3 C ++ poikkeustoiminta rikki rikkoutumattoman pinon vuoksi [19726] locale: UCS4LE: n muuntaminen INTERNALiin iconv (): n kanssa ei päivitä virheen osoittimia ja pituuksia . [19727] locale: Muuntaminen UTF-xx: stä iconv (): lla ei aina raportoi virheitä UTF-16 korvaavien arvojen suhteen.[19755] nscd: nscd vika epäonnistui gc: ssä [19758] dynaaminen linkki: Typpa EXTRA_LD_ENVVARS: ssä x86-64 [19759] libc: mempcpy ei saa olla viivoitettu [19762] dynaaminen linkki: HAS_CPU_FEATURE / HAS_ARCH_FEATURE on helppo väärinkäyttää [ 19765] libc: s390 tarvitsee optimoidun mempcpy: n [19779] glob: glob: puskurin ylivuoto GLOB_ALTDIRFUNC: n kanssa virheellisen NAME_MAX -rajausoletuksen vuoksi (CVE-2016-1234) [19783] rakentaa: benchtests ei tue --enable-hardcoded-path -In-tests [19787] -verkko: Missään ja virheellisessä katkaisutarkistuksessa getnameinfo [19790] matematiikassa: [ldbl-128ibm] nearbyltl väärässä ei-oletuspyöristämissä tiloissa [19791] verkko: Res_query.c: n vahvistus epäonnistui, palvelimen osoitteet [19792] libc: MIPS: backtrace tuottaa ääretöntä jälkikäsittelyä makecontextilla [19822] matematiikka: libm.niin että asenna clobbers vanha versio [19825] verkko: resolv: send_vc voi palauttaa alustattomat tiedot toiselta vastaukselta getaddrinfo [19830] verkkoon: nss_dns: tarkista RDATA-pituus puskurin pituutta vastaan [19831] verkko: nss_dns: getaddrinfo palauttaa alustatun datan, A / AAAA-kirjaukset virheellisestä koosta [19837] nss: nss_db: Ei uusia töitä joissakin pitkiä linjoja suuremmalla puskurilla [19848] matematiikka: syöksy (10, n) n = -4, -5, -6, -7 [19859] stdio: Tulostaminen IBM: n pitkä kaksinkertainen desimaali tarkkuudella on joskus virheellinen [19860] rakentaa: x86_64: kääntää virheitä tst-audit10 ja tst-auditmod10b [19861] nptl: libpthread IFUNC-resolver fork voi johtaa kaatumiseen [19862] verkkoon: resolv, nss_dns: Poista odottamattomien tietuetyyppien jäljellä oleva kirjaus [19865] verkko: Assertion failure tai memory leak in _nss_dns_getcanonname_r [19868] verkko: nss_dns: netent-koodi ei jätä yli PTR- 19879] verkko: nss_dns: Stack ylivuoto getnetbyname implementa (CVE-2016-3075) [19881] merkkijono: Paranna x86-64 memset [19907] merkkijono: Virheelliset memcpy -testit [19916] dynaaminen linkki: S390: fprs / vrs ei tallennu / palauta symboleiden ratkaisemisessa [19925] libc : termios.h XCASE-nimiavaruus [19928] merkkijono: memmove-vec-unaligned-erms.S on hidas ja suuret tietomäärät [19929] libc: limits.h NL_NMAX nimiavaruus [19931] stdio: Memory leak in vfprintf [19957] libc: klooni (CLONE_VM) pääsee käsittelemättömän vanhemman muistiin [19963] localedata: en_IL: Uusi locale [19989 ] stdio: stdio.h cuserid namespace [19994] verkko: getaddrinfo ei palauta RES_USE_INET6-flagia gethostissa [19996] locale: langinfo.h nl_langinfo_l nimiavaruus [20005] stdio: fflush fmemopenilla avautuvassa tiedostossa nollaa aseman 0 [20010] verkko: getaddrinfo: Stack ylivuoto isännöimättömässä käännöksessä (CVE-2016-3706) [20012] stdio: libio: fmemopen append-tilan vika [20014] stdio: stdio.h nimiavaruus esikaarteille POSIX [20017] verkko: resolv: Käytä gmtime_r sijaan gmtime vuonna p_secstodate [20023] libc: fcntl.h timespec namespace [20024] matematiikka: [x86_64] vectorized sincos trashes stack [20031] verkko: nss_hesiod: Heap ylivuoto get_txt_recordsissa [20041] aika: sys / time.h timespec namespace [20043] libc: unistd.h puuttuu cuserid UNIX98: lle ja ennen [20044] libc: unistd .h puuttuu pthread_atfork UNIX98: lle [20051] libc: ttyslot väärässä otsikossa väärissä olosuhteissa [20054] libc: gethostname ei ole julistettu XPG4 [20055] libc: termios.h puuttuu tcgetsid for XPG4 [20072] dynaaminen linkki: x86 init_cpu_features kutsutaan kahdesti staattisessa suoritustiedostossa [20073] libc: sys / stat.h fchmod nimiavaruus [20074] libc: stdlib.h rand_r nimiavaruus [20076] libc: sys / stat .h puuttuu S_IFSOCK, S_ISSOCK XPG4: lle [20094] libc: stdlib.h ei pitäisi julistaa apurahaa, ptsname, unlockpt XPG3: lle [20111] libc: struct sockaddr_storagea ei voida kopioida [20112] verkko: sunrpc: in Sun RPC clntudp_call (CVE-2016-4429) [20115] merkkijono: ylimääräinen kohdistus memset-vec-unaligned-erms.S: ssä [20119] libc: prosessorien virheellinen maski CPUID: stä [20139] dynaaminen linkki: yläosa zmm on nollattu, jos Glibc on rakennettu AS: n kanssa, joka ei tue AVX512 [20151] matematiikkaa: [ldbl-128 / ldbl-128ibm] j0l, j1l, y0l, y1l paluu sNaN sNaN-argumentille [20153] matemaattinen: [ldbl-128ibm] sqrtl (sNaN) palauttaa sNaN [20156] matematiikan: [ldbl-128ibm] ceill, rintl jne. palauttaa sNaN sNaN-argumentille [20157] matematiikka: [powerpc] fabsl (sNaN) owerpc] katto, rint jne.palautus sNaN sNaN-syöttöön [20178] libc: posix_spawn {p} ei tule soittaa exit [20191] stdio: libio: vtables kovettaminen [20195] merkkijono: FMA4-tunnistus vaatii CPUID-suorituksen rekisterillä eax = 0x80000001 [20198] libc: quick_exit väärin tuhoaa C + + 11 kierrettä. [20205] matematiikka: [i386 / x86_64] nextafterl virheellinen negatiivisten alnormometrien lisääminen [20212] matematiikka: acos (sNaN) palauttaa sNaN [20213] matematiikka: asin (sNaN) palauttaa sNaN [20214] verkon: Linux header sync with linux / in6. h ja ipv6.h uudelleen.[20218] matematiikka: [i386] asinhl (sNaN) palauttaa sNaN [20219] matematiikan: [i386] atanhl (sNaN) palauttaa sNaN [20222] stdio: fopencookie: palauttaa sNaN [20225] matematiikka: ldexp, scalbn, scalbln paluu sNaN sNaN-syötteelle [20226] matematiikka: [i386 / x86_64] expl, exp10l, expm1l paluu sNaN sNaN-syötteelle [20227] matematiikka: [i386 / x86_64] logl (sNaN ) palauttaa sNaN [20228] matematiikan: [i386 / x86_64] log10l (sNaN) palauttaa sNaN [20229] matematiikan: [i386 / x86_64] log1pl (sNaN) palauttaa sNaN [20232] sNaN palauttaa sNaN [20234] matematiikan: [ldbl-128ibm] expm1l (sNaN) palauttaa sNaN [20234] matematiikan: [ldbl-128ibm] log1pl (sNaN) palauttaa sNaN [20235] 20238] nss: nss_db: saa * ent-segfaults ilman edeltävää asetusta [20240] matematiikka: modf (sNaN) palauttaa sNaN [20248] libc: debug / tst-longjump_chk2 kutsuu printf signaalinkäsittelijältä [20250] ) palauttaa sNaN [20252] matematiikka: atan2 (sNaN, qNaN) ei nosta "kelpaa" [20255] ma th: [i386] fdim, fdimf paluu ylimäräisellä ja tarkkuus / kaksinkertainen pyöristys [20256] matemaattinen: [i386 / x86_64] fdiml palauttaa sNaN sNaN-syötteelle [20260] merkkijonon: ../sysdeps/x86/bits/string.
h: 1092: 3: virhe: array indeksti on alle array-rajojen [-Werror = array-bounds] [20262] nis: _nss_nis_initgroups_dyn palauttaa aina NSS_STATUS_NOTFOUND [20263] nptl: vankat mutex-lukitukset, / linux) [20277] libc: $ dp ei ole alustettu oikein sysdeps / hppa / start.S: ssä [20284] malloc: malloc: Korruptoituneen arjen vältytys aiheuttaa tarpeettomia mmap varoja [20296] matemaattinen: [i386 / x86_64] scalbl palauttaa sNaN sNaN-syöte, puuttuvat "virheelliset" poikkeukset [20314] nptl: make [4]: *** [/usr/include/stdlib.h] Virhe 1 [20316] localedata: id_ID: Februari Pebruari [20327] merkkijonon sijasta: POWER8 strcasecmp antaa virheellisen tuloksen [20347] math: Häiriö: Testi: j0_downward (0xap + 0) [20348] libc: FAIL: misc / tst-preadvwritev64 [20349] libc: 64-bittinen arvo kulkee eri tavoin p {readv, writev} {64} [20350] libc: Ei ole testiä p {lukea, kirjoittaa} 64 [20357] matematiikka: virheellinen cos-tulos 1,5174239687223976 [20384] rakentaa: Älä suorita libmvec-sincos-avx * -testejä ei avx m achines
Uutta strong> versiossa 2.23:
- CVE-2015-7547: glibc getaddrinfo () stack-pohjainen puskurin ylivuoto - Kiinteä kehityksen haara glibc 2.23: n julkaisulle.
Uutta strong> versiossa 2.21:
- Seuraavat ongelmat ratkaistaan tämän julkaisun avulla: 6652, 10672, 12674, 12847, 12926, 13862, 14132, 14138, 14171, 14498, 15215, 15378, 15884, 16009, 16418, 16191, 16469, 16618, 16619, 16657, 16740, 16857, 17192, 17266, 17273, 17344, 17363, 17370, 17371, 17411, 17460, 17475, 17485, 17501, 17506, 17508, 17522, 17555, 17574, 17585, 17583, 17584, 17585, 17589, 17594, 17601, 17608, 17616, 17625, 17630, 17633, 17634, 17635, 17647, 17653, 17657, 17658, 17664, 17665, 17668, 17682, 17702, 17719, 17722, 17723, 17724, 17725, 17732, 17733, 17744, 17745, 17746, 17747, 17748, 17775, 17777, 17780, 17781, 17782, 17791, 17793, 17796, 17797, 17801, 17803, 17844, 17848, 17868, 17869, 17870, 17885, 17892.
- CVE-2015-1472 Tietyissä olosuhteissa wscanf voi kohdistaa liian vähän muistia skannattaviin argumentteihin ja liioitella osoitettua puskuria. Toteutus nyt laskentaa tarvittavan puskurin koon oikein, kun käytät mallocia.
- Kaikille koneille on otettu käyttöön uusi semaphore-algoritmi yleisessä C-koodissa. Aiempia semaforien mukautettuja kokoonpano-toteutuksia oli vaikea ymmärtää tai varmistaa, että ne olivat turvallisia. Uusi versio semaforista tukee koneita, joissa on 64-bittiset tai 32-bittiset atomioperaatiot. Uusi semafor-algoritmi on sem_init, sem_open, sem_post, sem_wait, sem_timedwait, sem_trywait ja sem_getvalue.
- Portti Altera Nios II: lle on tuottanut Mentor Graphics.
- Optimoitu strcpy, stpcpy, strncpy, stpncpy, strcmp ja strncmp toteutukset powerpc64 / powerpc64le. Toteutettu Adhemerval Zanella (IBM).
- Lisätty tuki pthread mutexen TSX-lukitukseen powerpc32: ssä, powerpc64: ssa ja powerpc64le: ssa. Tämä voi parantaa olemassa olevien ohjelmien lukituksen skaalausta HTM-yhteensopivissa järjestelmissä. Lukituskoodikoodi on käytössä vain --enable-lock-elision = kyllä. Lisäksi powerpc: n TSX lock elision toteutus antaa tapahtuman keskeytyksen jokaisessa syscall-järjestelmässä, jotta sivuvaikutukset eivät näkyisi tapahtumien ulkopuolella.
- Optimoitu strcpy, stpcpy, strchrnul ja strrchr-toteutukset AArch64: lle. Osallistu ARM Oy: stä.
- i386 memcpy-toiminnot, jotka on optimoitu SSE2: n kohdistamattomalla kuormalla / myymällä.
- CVE-2104-7817 Wordexp-funktio voisi jättää WRDE_NOCMD-lipun huomiotta tietyissä syöttöolosuhteissa, jolloin komentorivin korvaaminen suoritettiin, kun sovellus ei pyytänyt sitä. Toteutus nyt tarkistaa WRDE_NOCMD: n välittömästi ennen kuoren suorittamista ja palauttaa virheen WRDE_CMDSUB odotetulla tavalla.
- CVE-2012-3406 printf-tyyppiset toiminnot saattavat johtaa pinon ylivuotoon, kun käsitellään muotoilusäikeitä, joissa on paljon muotoiluspesifikaattoreita.
- CVE-2014-9402 getnetbyname nss_dns-toteutus voi käydä ääretönpiirissä, jos DNS-vastaus sisälsi odottamattoman muodon PTR-tietueen.
- GNU C -kirjaston tämän version version rakentamiseen käytettävä GCC-versio on GCC 4.6. GNU C -kirjastojen avulla voidaan silti käyttää vanhempia GCC-versioita ja muita kuin GNU-kääntäjiä.
- GNU C -kirjasto on nyt rakennettu -Werror oletusarvoisesti. Tämä voidaan poistaa käytöstä määrittämällä --disable-werror.
- Uudet tilat: tu_IN, bh_IN, raj_IN, ce_RU.
- Vanhentunut sigvec-toiminto on poistettu. Tämä oli alkuperäinen 4.2BSD-käyttöliittymä, joka innostaa POSIX.1-sigaction-käyttöliittymää, jota ohjelmat ovat käyttäneet sen sijaan noin 25 vuoden ajan. Tietenkin ABI-yhteensopivuus vanhoille binääreille, jotka käyttävät sigvec: ää, säilyy ennallaan.
- Yhdistetty gettext 0.19.3 intl-alihakemistoon. Tämä korjaa rakennuksen uusilla bisonin versioilla.
- Tuki MIPS o32 FPXX-, FP64A- ja FP64 ABI -laajennuksille. Alkuperäinen MIPS o32 kova float ABI vaatii FPU: n, jossa kaksinkertaiset tarkkuusrekisterit peittävät kaksi peräkkäistä yhden tarkkuuden rekisteriä. MIPS32R2 esitteli uuden FPU-tilan (FR = 1), jossa kaksinkertaiset tarkkuusrekisterit laajentavat vastaavia yhden tarkkuusrekistereitä, jotka eivät ole yhteensopivia o32-kova-float ABI: n kanssa. MIPS SIMD ASE ja MIPSR6-arkkitehtuuri edellyttävät FR = 1: n käyttöä, joten siirtyminen on välttämätöntä. Uudet o32 ABI-laajennukset mahdollistavat siirtymisen ajasta alkuperäisestä o32 ABI: stä päivitettyyn o32 FP64 ABI: hen. Tämän saavuttamiseksi dynaaminen linkkeri seuraa nyt ladatun objektin ABI: tä ja varmistaa, että uudet objektit ovat yhteensopivia. Myös tilan siirtymiä pyydetään tarvittaessa ja hylättyjä tukemattomia esineitä. ABI-tarkistukset sisältävät sekä pehmeät että kovaa float ABI: t o32: lle, n32: lle ja n64: lle.
Kommentteja ei löytynyt