GNU C Library

Software screenshot:
GNU C Library
Software informatie:
Versie: 2.28 Bijgewerkt
Upload datum: 16 Aug 18
Ontwikkelaar: Roland McGrath
Licentie: Gratis
Populariteit: 10

Rating: 1.0/5 (Total Votes: 1)

De GNU C-bibliotheek is een open source, gratis en krachtige bibliotheeksoftware voor elke GNU / Linux-distributie. Het is ook bekend als Glibc en vereist door elk UNIX-achtig computerbesturingssysteem. GNU C Library is verantwoordelijk voor het definiëren van de systeemaanroepen, evenals verschillende andere basisfuncties, zoals malloc, open, exit, printf, enz.


Standaard gebruikt in alle op Linux-kernel gebaseerde besturingssystemen

De GNU C-bibliotheek wordt standaard geïnstalleerd en gebruikt in alle op Linux-kernel gebaseerde besturingssystemen, vanaf de basis ontworpen om te fungeren als de hoofd-C-bibliotheek in GNU-systemen en elk ander besturingssysteem dat wordt aangedreven door de Linux-kernel.


Ontworpen om draagbaar te zijn

Glibc is een krachtige C-bibliotheek, volledig geschreven in de programmeertaal C. Het is ontworpen om draagbaar, internationaal en ontworpen te zijn om alle relevante standaarden te ondersteunen, waaronder POSIX.1-2008 en ISO C11.


Ondersteunt functies van bekende UNIX-varianten

Hoewel de GNU C-bibliotheek een volledig geïnternationaliseerde interface heeft, probeert deze de functies van bekende UNIX-varianten te ondersteunen, zoals BSD en System V, dankzij de ingebouwde compatibiliteitsmodi.

Aan de slag met GNU C-bibliotheek

Hoewel de GNU C-bibliotheek standaard is geïnstalleerd in bijna alle GNU / Linux-besturingssystemen, kunt u deze ook zelf opnieuw installeren met behulp van het bronpakket dat op zijn website is gedistribueerd of met Softoware zonder kosten. Download en sla het archief eerst op in uw homedirectory.

Pak het archief uit met een archiefbeheerhulpprogramma, open een terminalvenster, ga naar de locatie waar de archiefbestanden zijn uitgepakt, voer & lsquo; ./ configure & rsquo; uit commando om het programma te configureren (zie de & lsquo; ./ configure --help & rsquo; -opdracht voor verschillende optimalisatie-opties).

Voer vervolgens de & lsquo; make & rsquo; uit commando om de bibliotheek te compileren, die systeembreed geïnstalleerd kan worden door een van de & lsquo; make install & rsquo; of & lsquo; sudo make install & rsquo; commando's, afhankelijk van je root of een geprivilegieerde gebruiker.

Wat is nieuw in deze release:

  • https://sourceware.org/ml/libc-announce/2018/msg00000.html

Wat is nieuw in versie 2.27:

  • https://sourceware.org/ml/libc-announce/2018/msg00000.html

Wat is nieuw in versie:

  • De minimale Linux-kernelversie waarmee deze versie van de GNU C-bibliotheek kan worden gebruikt, is 3.2, behalve op i [4567] 86 en x86_64, waar Linux-kernelversie 2.6.32 of later volstaat (op architecturen die al kernel nodig hadden versies recenter dan 3.2, deze vereisten blijven ongewijzigd). Linux 3.2 of later kernelheaders zijn vereist op alle architecturen.
  • De landinstelling pap_AN is verwijderd. Dit is al lang niet meer bruikbaar. Het is vervangen door pap_AW & amp; pap_CW, die beide lang zijn opgenomen in eerdere releases.
  • De functies readdir_r en readdir64_r zijn verouderd. In plaats daarvan wordt aangeraden readdir en readdir64 te gebruiken.
  • Het type "union wait" is verwijderd. Het werd gedeprecieerd in het begin van de jaren negentig en maakt nooit deel uit van POSIX. De toepassingscode moet het int-type gebruiken in plaats van "union wait".
  • Een nieuwe NSS-actie wordt toegevoegd om groot gedistribueerd systeembeheer mogelijk te maken. Met de actie MERGE kunnen externe gebruikerswinkels zoals LDAP worden samengevoegd in lokale gebruikerswinkels zoals / etc / groups om eenvoudig te gebruiken, bijgewerkte en beheerde sets samengevoegde inloggegevens te bieden. De nieuwe actie kan worden gebruikt door het te configureren in /etc/nsswitch.conf: group: files [SUCCESS = merge] nis Geïmplementeerd door Stephen Gallagher (Red Hat).
  • De verouderde variabele __malloc_initialize_hook is verwijderd uit de API.
  • De lange ongebruikte localedef - gold-style optie is verwijderd. Het heeft in meer dan 16 jaar niets gedaan. Scripts die deze optie gebruiken, kunnen deze veilig laten vallen.
  • nextupl, nextup, nextupf, nextdownl, nextdown en nextdownf zijn toegevoegd aan libm. Ze worden gedefinieerd door TS 18661 en IEEE754-2008. De volgende functies retourneren de volgende representeerbare waarde in de richting van de positieve oneindigheid en de volgende functie retourneert de volgende representeerbare waarde in de richting van de negatieve oneindigheid. Deze zijn momenteel ingeschakeld als GNU-extensies.
  • Beveiligingsgerelateerde wijzigingen:
  • Een onnodige kopie van een stapel in _nss_dns_getnetbyname_r is verwijderd. Het kan resulteren in een stackoverloop wanneer getnetbyname werd aangeroepen met een te lange naam. (CVE-2016-3075)
  • Voorheen kopieerde getaddrinfo grote hoeveelheden adresgegevens naar de stapel, zelfs nadat de fix voor CVE-2013-4458 is toegepast, wat mogelijk resulteert in een stackoverloop. getaddrinfo gebruikt nu een heap-toewijzing. Gerapporteerd door Michael Petlan. (CVE-2016-3706)
  • De glob-functie had last van een stack-gebaseerde bufferoverloop toen deze werd aangeroepen met de GLOB_ALTDIRFUNC-vlag en een lange bestandsnaam tegenkwam. Gerapporteerd door Alexander Cherepanov. (CVE-2016-1234)
  • De Sun RPC UDP-client kan alle beschikbare stapelruimte uitputten wanneer deze overstroomd wordt met vervaardigde ICMP- en UDP-berichten. Gerapporteerd door de alloca plugin van Aldy Hernandez voor GCC. (CVE-2016-4429)
  • De IPv6-naamserverbeheercode in libresolv kan leiden tot een geheugenlek voor elke thread die wordt gemaakt, voert een mislukte naamgeving uit en wordt afgesloten. In de loop van de tijd kan dit leiden tot een denial of service vanwege geheugenuitputting. Gerapporteerd door Matthias Schiffer. (CVE-2016-5417)
  • De volgende bugs zijn opgelost met deze release:
  • <>[1170] localedata: ne_NP: update Nepali locale definitiebestand [3629] handleiding: stpcpy beschrijving in string.texi verwijst naar MS-DOG in plaats van MS-DOS. [6527] malloc: [powerpc] Malloc-uitlijning onvoldoende voor PowerPC [6796] math: fdim () stelt errno niet in op overloop [10354] libc: posix_spawn moet vfork () in meer gevallen dan momenteel gebruiken [11213] localedata: localedata: voeg auteursrechtelijke disclaimer toe aan locale bestanden [12143] localedata: chr_US: nieuwe Cherokee locale [12450] localedata: sgs_LT: nieuwe locale [12676] localedata: ln_CD: nieuwe locale [13237] localedata: LC_ADDRESS.country_name: update alle locales met de nieuwste CLDR data [13304] math: fma, fmaf, fmal produceren verkeerde resultaten [14259] build: --localedir arg to configure wordt genegeerd [14499] nptl: roept posix_spawn atfork handlers aan / gebruikt u vfork? [14750] libc: raceconditie in posix_spawn vfork gebruik versus signaalhandlers [14934] localedata: es_CL: verkeerde eerste weekdag chilean locale [15262] localedata: LC_MESSAGES.yesexpr / noexpr: inconsistent gebruik van romanisatie [15263] localedata: LC_MESSAGES.yesexpr / noexpr: inconsistent gebruik van 1/0 en +/- [15264] localedata: LC_MESSAGES.yesstr / nostr: ontbreekt in veel locales [15368] nptl: raise () is niet async-signaalveilig [15479] math: ceil, floor, round en trunc raise inexact exception [15578] localedata: kk_KZ: diverse updates [16003] localedata: pap_AN: punt oude locale [16137] localedata: iw_IL: punt oude locale [16190] localedata: eo: nieuwe esperanto locale [16374] localedata: lv_LV: valutasymbool wijzigen in LC_MONETARY naar euro [16742] malloc: raceconditie: pthread_atfork () genoemd voordat eerste malloc () resulteert in onverwacht vergrendelingsgedrag / deadlocks [16975] localedata: LC_MESSAGES.yesexpr / noexpr: opnieuw hoofdlettergebruik in alle locales [16983] localedata: postal_fmt staat% l en% n modifiers [17565] localedata niet toe : pt_PT: verkeerde start (werk-) week [17899] math: [powerpc] floorl retourneert negatieve nul met FE_DOWNWARD [17950] build: build mislukt met -msse [18205] localedata: be_BY *: wrong first_weekday and first_workday [18433] libc : posix_spawn wordt niet correct geretourneerd bij het niet uitvoeren van [18453] localedata: charmaps / IBM875: incorrecte codes [18712] string: bits / string2.h incompatibel met -O2 -Werror = packed -Wsystem-headers [18896] localedata: he_IL: verbeteringen voor valuta [18911] localedata: ro_RO: naam van de weekdag corrigeren voor "dinsdag" in Roemeense locale gegevens [18960] locale: s390: _nl_locale_subfreeres gebruikt larl-opcode op niet-uitgelijnd symbool [19056] libc: Deprecate readdir_r [19133] localedata: pt_ *: days & amp; maanden moeten kleine letters zijn in de Portugese taal [19198] localedata: nl_NL: kleine verbeteringen voor Nederlandse locaties [19257] netwerk: Per-thread geheugenlek in __res_vinit met IPv6-naamservers (CVE-2016-5417) [19269] build: tst-audit4 and tst-audit10 mislukkingen met gcc-6 op non-avx machine [19400] locale: taal ontbreekt in "iso-639.def", triviale fix in de beschrijving [19431] malloc: impasse tussen fflush, getdelim en fork [19505] libc: Onjuiste bestandsdescriptor validiteitscontroles in posix_spawn_file_actions_add {open, close, dup2} [19509] dynamic-link: dlsym, dlvsym rapporteer geen fouten door dlerror bij gebruik van RTLD_NEXT [19512] locale: Stale `#ifndef HAVE_BUILTIN_EXPECT 'in` intl / {gettextP , loadinfo}.h '[19534] libc: execle, execlp kan malloc [19568] localedata gebruiken: * _CH: Zwitserse locales hebben een inconsistent begin van de week [19573] netwerk: res_nclose en __res_maybe_init zijn het niet eens over initialisatie van naamserver, waardoor Hesiod wordt verbroken [19575] localedata: Status van GB18030-tabellen [19581] localedata: sr_ * date_fmt-reeks bevat extra nieuwe regel [19583] reeks: SSSE3_Fast_Copy_Backward-vlag moet worden ingeschakeld voor AMD Excavator-kern [19592] wiskunde: [ldbl-128ibm] fout onjuist in niet-standaard afrondingsmodi [19593 ] math: [ldbl-128ibm] truncl incorrect in niet-standaard afrondingsmodi [19594] math: [ldbl-128ibm] roundl incorrect in niet-standaard afrondingsmodi [19595] math: [ldbl-128ibm] fmodl incorrect voor resultaten in subnormaal dubbel bereik [19602] wiskunde: [ldbl-128ibm] fmodl afhandeling van gelijke argumenten met laag deel nul onjuist [19603] wiskunde: [ldbl-128ibm] restl, remquol onjuiste tekenverwerking in gelijkheidstests [19610] dynamische link: ldconfig - X verwijdert oude symbolische koppelingen [19613] libc: s390x (64 bit) macro-uitbreiding WCOREDUMP en andere [19633] locale: strfmon_l past global locale to number formatting [19642] netwerk toe: Geheugenlek in getnameinfo [19648] libc: testskelet.c: Stel RLIMIT_DATA [19653] libc: Potential for NULL pointer dereference (CWE-476) in glibc-2.22 [19654] math: [x86_64] Need testcase for BZ # 19590 fix [19671] niet in localedata: Missing Sanity Check for malloc () in 'tst-fmon.c' & amp; 'tst-numeriek.c' [19674] wiskunde: [ldbl-128ibm] powl onjuiste overloopafhandeling [19677] wiskunde: [ldbl-128ibm] restgelijkheidstest niet correct voor nul laag deel [19678] wiskunde: [ldbl-128ibm] nextafterl , volgende fout onjuist teken van nulresultaat [19679] dynamische link: gcc-4.9.3 Behandeling van C ++ -uitzonderingen verbroken vanwege niet-uitgelijnde stack [19726] locale: het converteren van UCS4LE naar INTERNAL met iconv () werkt geen pointers en lengtes bij in foutgevallen . [19727] locale: Het converteren van / naar UTF-xx met iconv () rapporteert niet altijd fouten op UTF-16-surrogatenwaarden.[19755] nscd: nscd assertion failure in gc [19758] dynamic-link: Typo in EXTRA_LD_ENVVARS voor x86-64 [19759] libc: mempcpy should not inline [19762] dynamic-link: HAS_CPU_FEATURE / HAS_ARCH_FEATURE zijn gemakkelijk te misbruiken [ 19765] libc: s390 heeft een geoptimaliseerde mempcpy [19779] glob: glob: bufferoverloop met GLOB_ALTDIRFUNC nodig vanwege onjuiste NAME_MAX limietovername (CVE-2016-1234) [19783] build: benchtests ondersteunen geen --enable-hardcoded-pad -in-tests [19787] netwerk: ontbrekende en onjuiste afkappingcontroles in getnameinfo [19790] wiskunde: [ldbl-128ibm] nearbyintl incorrect in niet-standaard afrondingsmodi [19791] netwerk: beweringstoring in res_query.c met niet-verbindbare naam server addressen [19792] libc: MIPS: backtrace levert oneindige backtrace op met makecontext [19822] math: libm.dus installeer clobbers oude versie [19825] netwerk: resolv: send_vc kan niet-geïnitialiseerde gegevens retourneren in tweede antwoord op getaddrinfo [19830] netwerk: nss_dns: moet RDATA-lengte tegen bufferlengte controleren [19831] netwerk: nss_dns: getaddrinfo retourneert niet-geïnitialiseerde gegevens wanneer geconfronteerd met A / AAAA-records met ongeldige grootte [19837] nss: nss_db: geen nieuwe regels voor sommige lange regels met een grotere buffer [19848] wiskunde: powl (10, n) voor n = -4, -5, -6, -7 is uit met meer dan 1 ULP [19853] stdio: IBM lang dubbel in decimaal afdrukken met hoge precisie is soms incorrect [19860] build: x86_64: compileer fouten voor tst-audit10 en tst-auditmod10b [19861] nptl: libpthread IFUNC resolver voor vork kan leiden tot crash [19862] -netwerk: resolv, nss_dns: overblijvende logboekregistratie van onverwachte recordtypen verwijderen [19865] netwerk: beweringfout of geheugenlek in _nss_dns_getcanonname_r [19868] netwerk: nss_dns: netentcode slaat geen niet-PTR-records over [ 19879] netwerk: nss_dns: Stapel overloop in getnetbyname implementa (CVE-2016-3075) [19881] string: Improve x86-64 memset [19907] string: Onjuiste memcpy-tests [19916] dynamic-link: S390: fprs / vrs worden niet opgeslagen / hersteld tijdens het oplossen van symbolen [19925] libc : termios.h XCASE namespace [19928] string: memmove-vec-unaligned-erms.S is traag met grote gegevensgrootte [19929] libc: limits.h NL_NMAX namespace [19931] stdio: Geheugenlek in vfprintf [19957] libc: clone (CLONE_VM) toegang ongeldig bovenliggend geheugen [19963] localedata: en_IL: New locale [19989 ] stdio: stdio.h cuserid namespace [19994] netwerk: getaddrinfo herstelt RES_USE_INET6 vlag niet in gethosts [19996] locale: langinfo.h nl_langinfo_l namespace [20005] stdio: fflush op een bestand geopend met fmemopen reset positie naar 0 [20010] network: getaddrinfo: Stack overflow in hostent translation (CVE-2016-3706) [20012] stdio: libio: fmemopen mislukte toevoegingsmodus [20014] stdio: stdio.h naamruimte voor pre-threads POSIX [20017] netwerk: resolv: gebruik gmtime_r in plaats van gmtime in p_secstodate [20023] libc: fcntl.h timespec namespace [20024] math: [x86_64] vectorized sincos trashes the stack [20031] netwerk: nss_hesiod: Heap overflow in get_txt_records [20041] tijd: sys / time.h timespec namespace [20043] libc: unistd.h missing cuserid voor UNIX98 en voor [20044] libc: unistd .h vermist pthread_atfork voor UNIX98 [20051] libc: ttyslot in verkeerde header onder verkeerde omstandigheden [20054] libc: gethostname niet gedeclareerd voor XPG4 [20055] libc: termios.h missing tcgetsid voor XPG4 [20072] dynamic-link: x86 init_cpu_features wordt tweemaal aangeroepen in statisch uitvoerbaar bestand [20073] libc: sys / stat.h fchmod namespace [20074] libc: stdlib.h rand_r namespace [20076] libc: sys / stat .h ontbrekende S_IFSOCK, S_ISSOCK voor XPG4 [20094] libc: stdlib.h moet grantpt, ptsname, unlockpt voor XPG3 [20111] niet verklaren libc: struct sockaddr_storage kan geen geaggregeerd gekopieerd [20112] netwerk zijn: sunrpc: stack (frame) overflow in Sun RPC clntudp_call (CVE-2016-4429) [20115] string: Extra uitlijning in memset-vec-unaligned-erms.S [20119] libc: Verkeerd masker voor processors level type vanaf CPUID [20139] dynamic-link: bovendeel of zmm is op nul gesteld als Glibc is gebouwd met AS die geen AVX512 [20151] -rekenkunde ondersteunt: [ldbl-128 / ldbl-128ibm] j0l, j1l, y0l, y1l retourneer sNaN voor sNaN-argument [20153] wiskunde: [ldbl-128ibm] sqrtl (sNaN) geeft sNaN [20156] math terug: [ldbl-128ibm] ceill, rintl etc. return sNaN voor sNaN argument [20157] math: [powerpc] fabsl (sNaN) verhoogt "invalid" ten onrechte [20160] math: [p owerpc] ceil, rint etc.return sNaN voor sNaN invoer [20178] libc: posix_spawn {p} zou exit niet moeten roepen [20191] stdio: libio: vtables hardening [20195] string: FMA4 detectie vereist CPUID uitvoering met register eax = 0x80000001 [20198] libc: quick_exit vernietigt ten onrechte C ++ 11 thread-objecten. [20205] wiskunde: [i386 / x86_64] nextafterl incorrect incrementing negative subnormals [20212] math: acos (sNaN) geeft sNaN [20213] math terug: asin (sNaN) retourneert sNaN [20214] netwerk: Linux header-synchronisatie met linux / in6. h en ipv6.h opnieuw.[20218] math: [i386] asinhl (sNaN) retourneert sNaN [20219] math: [i386] atanhl (sNaN) geeft sNaN terug [20222] stdio: fopencookie: Mangle functie-aanwijzers [20224] math: [i386] cbrtl (sNaN) retourneert sNaN [20225] math: ldexp, scalbn, scalbln return sNaN voor sNaN input [20226] math: [i386 / x86_64] expl, exp10l, expm1l return sNaN voor sNaN input [20227] math: [i386 / x86_64] logl (sNaN ) retourneert sNaN [20228] wiskunde: [i386 / x86_64] log10l (sNaN) retourneert sNaN [20229] wiskunde: [i386 / x86_64] log1pl (sNaN) retourneert sNaN [20232] wiskunde: [ldbl-128] expm1l (sNaN) retourneert sNaN [20233] math: [ldbl-128ibm] expm1l (sNaN) geeft sNaN [20234] math terug: [ldbl-128ibm] log1pl (sNaN) geeft sNaN [20235] math terug: [i386 / x86_64] log2l (sNaN) geeft sNaN [ 20237] nss: nss_db: krijg * ent segfaults zonder voorgaande set * ent [20240] math: modf (sNaN) geeft sNaN terug [20248] libc: debug / tst-longjump_chk2 roept printf op van een signaalhandler [20250] math: frexp (sNaN ) geeft sNaN [20252] math terug: atan2 (sNaN, qNaN) slaagt er niet in om "ongeldig" te verhogen [20255] th: [i386] fdim, fdimf return met overtollig bereik en precisie / dubbele afronding [20256] math: [i386 / x86_64] fdiml retourneert sNaN voor sNaN input [20260] string: ../sysdeps/x86/bits/string.

    h: 1092: 3: fout: array subscript bevindt zich onder array bounds [-Werror = array-bounds] [20262] nis: _nss_nis_initgroups_dyn keert altijd terug NSS_STATUS_NOTFOUND [20263] nptl: robuuste mutex-deadlocks als andere thread timedlock aanvraagt ​​(Alleen arm / linux) [20277] libc: $ dp is niet correct geïnitialiseerd in sysdeps / hppa / start.S [20284] malloc: malloc: corrupte arena-vermijding veroorzaakt onnodige mmap-fallbacks [20296] math: [i386 / x86_64] scalbl retourneert sNaN voor sNaN invoer, missende "ongeldige" uitzonderingen [20314] nptl: make [4]: ​​*** [/usr/include/stdlib.h] Fout 1 [20316] localedata: id_ID: februari in plaats van Pebruari [20327] string: POWER8 strcasecmp retourneert onjuist resultaat [20347] math: Fout: Test: j0_downward (0xap + 0) [20348] libc: FAIL: misc / tst-preadvwritev64 [20349] libc: 64-bits waarde wordt anders doorgegeven in p {readv, writev} {64} [20350] libc: Er is geen test voor p {read, write} 64 [20357] math: Incorrect cos-resultaat voor 1.5174239687223976 [20384] build: Geen libmvec-sincos-avx * -tests uitvoeren op non avx m achines

Wat is nieuw in versie 2.23:

  • CVE-2015-7547: glibc getaddrinfo () stack-gebaseerde buffer overflow - Gerepareerd op ontwikkelingstak voor release glibc 2.23.

Wat is nieuw in versie 2.21:

  • De volgende fouten worden opgelost met deze versie: 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, 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, 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 Onder bepaalde omstandigheden kan wscanf te weinig geheugen toewijzen voor de te scannen argumenten en de toegewezen buffer overlopen. De implementatie berekent nu correct de vereiste buffergrootte bij gebruik van malloc.
  • Een nieuw semafooralgoritme is geïmplementeerd in generieke C-code voor alle machines. Eerdere aangepaste assembly-implementaties van semafoor waren moeilijk te redeneren of ervoor te zorgen dat ze veilig waren. De nieuwe versie van semafoor ondersteunt machines met 64-bits of 32-bits atomaire bewerkingen. Het nieuwe semafooralgoritme wordt gebruikt door sem_init, sem_open, sem_post, sem_wait, sem_timedwait, sem_trywait en sem_getvalue.
  • Port naar Altera Nios II is bijgedragen door Mentor Graphics.
  • Geoptimaliseerde strcpy, stpcpy, strncpy, stpncpy, strcmp en strncmp implementaties voor powerpc64 / powerpc64le. Geïmplementeerd door Adhemerval Zanella (IBM).
  • Ondersteuning toegevoegd voor TSX lock elision van pthread mutexes op powerpc32, powerpc64 en powerpc64le. Dit kan de vergrendeling van bestaande programma's op HTM-compatibele systemen verbeteren. De lock elision code is alleen ingeschakeld met --enable-lock-elision = yes. Ook zal de TSX lock elision-implementatie voor powerpc een transactie afbreken bij elke syscall om te voorkomen dat bijwerkingen buiten transacties zichtbaar zijn.
  • Geoptimaliseerde strcpy-, stpcpy-, strchrnul- en strrchr-implementaties voor AArch64. Bijgedragen door ARM Ltd.
  • i386 memcpy-functies geoptimaliseerd met SSE2 niet-uitgelijnde load / store.
  • CVE-2104-7817 De wordexp-functie kan de WRDE_NOCMD-vlag negeren onder bepaalde invoeromstandigheden, wat resulteert in de uitvoering van een shell voor opdrachtsubstitutie wanneer de aanvraag niet is aangevraagd. De implementatie controleert nu WRDE_NOCMD onmiddellijk vóór het uitvoeren van de shell en retourneert de fout WRDE_CMDSUB zoals verwacht.
  • CVE-2012-3406 functies in printf-stijl kunnen tegen een stackoverloop lopen bij het verwerken van indelingsstrings met een groot aantal indelingsspecificaties.
  • CVE-2014-9402 De implementatie van nsn_dns van getnetbyname zou een oneindige lus kunnen tegenkomen als de DNS-reactie een PTR-record bevat met een onverwacht formaat.
  • De minimale GCC-versie die kan worden gebruikt om deze versie van de GNU C-bibliotheek te bouwen, is GCC 4.6. Oudere GCC-versies en niet-GNU-compilers kunnen nog steeds worden gebruikt om programma's te compileren met behulp van de GNU C-bibliotheek.
  • De GNU C-bibliotheek is nu standaard gebouwd met -Werror. Dit kan worden uitgeschakeld door het configureren met --disable-werror.
  • Nieuwe talen: tu_IN, bh_IN, raj_IN, ce_RU.
  • De verouderde sigvec-functie is verwijderd. Dit was de oorspronkelijke 4.2BSD-interface die de POSIX.1-sigaction-interface inspireerde, die al 25 jaar in plaats daarvan wordt gebruikt. Uiteraard blijft de ABI-compatibiliteit voor oude binaire bestanden met behulp van sigvec intact.
  • Samenvoeging van gettext 0.19.3 in de intl-submap. Dit lost het gebouw op met nieuwere versies van bison.
  • Ondersteuning voor MIPS o32 FPXX, FP64A en FP64 ABI-uitbreidingen. De oorspronkelijke MIPS o32 hard-float ABI vereist een FPU waarbij registers met dubbele precisie twee over elkaar liggende registers met enkele precisie overlappen. MIPS32R2 introduceerde een nieuwe FPU-modus (FR = 1), waarbij registers met dubbele precisie de corresponderende registers met enkele precisie uitbreiden die niet compatibel zijn met de o32 hard-float ABI. De MIPS SIMD ASE en de MIPSR6-architectuur vereisen beide het gebruik van FR = 1 waardoor een overgang noodzakelijk is. Met nieuwe o32 ABI-extensies kunnen gebruikers in de loop van de tijd migreren van de oorspronkelijke o32 ABI tot en met de bijgewerkte o32 FP64 ABI. Om dit te bereiken volgt de dynamische linker nu de ABI van elk geladen object en controleert of nieuwe objecten compatibel zijn. Modusovergangen worden ook naar behoefte aangevraagd en niet-ondersteunde objecten worden geweigerd. De ABI-controles bevatten zowel zachte als moeilijk zwevende ABI's voor o32, n32 en n64.

Reacties op GNU C Library

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!