GNU C Library

Software captura de pantalla:
GNU C Library
Detalles de software:
Versión: 2.28 Actualizado
Fecha de carga: 16 Aug 18
Promotor: Roland McGrath
Licencia: Libre
Popularidad: 10

Rating: 1.0/5 (Total Votes: 1)

La Biblioteca GNU C es un software libre, potente y de código abierto para cualquier distribución de GNU / Linux. También se lo conoce como Glibc y es requerido por cualquier sistema operativo de computadora similar a UNIX. La Biblioteca GNU C se encarga de definir las llamadas al sistema, así como otras funcionalidades básicas, como malloc, abrir, salir, imprimir, etc.


Utilizado por defecto en todos los sistemas operativos Linux basados ​​en kernel

La biblioteca C de GNU se instala y usa por defecto en todos los sistemas operativos Linux basados ​​en kernels, diseñados desde cero para actuar como la biblioteca principal de C en los sistemas GNU y cualquier otro sistema operativo que funcione con el núcleo Linux.


Diseñado para ser portátil

Glibc es una biblioteca C de alto rendimiento, escrita completamente en el lenguaje de programación C. Está diseñado para ser portátil, internacionalizado y diseñado para soportar todos los estándares relevantes, incluyendo POSIX.1-2008 e ISO C11.


Admite características de variantes de UNIX conocidas

Si bien la Biblioteca GNU C tiene una interfaz totalmente internacionalizada, intenta soportar características de variantes de UNIX conocidas, como BSD y System V, gracias a sus modos de compatibilidad incorporados.

Primeros pasos con GNU C Library

Si bien la Biblioteca GNU C está instalada de manera predeterminada en casi todos los sistemas operativos GNU / Linux, también puede reinstalarla usted mismo utilizando el paquete fuente distribuido en su sitio web o Softoware de forma gratuita. Para comenzar, descargue y guarde el archivo en su directorio de inicio.

Desempaquete el archivo con una utilidad de administrador de archivos, abra una ventana de terminal, vaya a la ubicación donde se extrajeron los archivos, ejecute & lsquo; ./ configure & rsquo; comando para configurar el programa (consulte el comando & lsquo; ./ configure --help & rsquo; para obtener varias opciones de optimización).

Luego ejecuta el & lsquo; make & rsquo; comando para compilar la biblioteca, que puede instalarse en todo el sistema ejecutando & lsquo; make install & rsquo; o & lsquo; sudo make install & rsquo; comandos, dependiendo de si su raíz o un usuario con privilegios.

Qué hay de nuevo en esta versión:

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

Qué hay de nuevo en la versión 2.27:

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

Qué hay de nuevo en la versión:

  • La versión mínima del kernel de Linux con la que se puede usar esta versión de la Biblioteca GNU C es 3.2, excepto en i [4567] 86 y x86_64, donde es suficiente la versión 2.6.32 del kernel de Linux (en arquitecturas que ya requerían kernel) versiones más recientes que 3.2, esos requisitos se mantienen sin cambios). Se requieren encabezados Linux kernel 3.2 o posteriores en todas las arquitecturas.
  • La configuración regional pap_AN ha sido eliminada. Esto ha estado en desuso por un largo tiempo. Ha sido reemplazado por pap_AW & amp; pap_CW, ambos incluidos desde hace tiempo en versiones anteriores.
  • Las funciones readdir_r y readdir64_r han quedado en desuso. Se recomienda usar readdir y readdir64 en su lugar.
  • Se ha eliminado el tipo "espera de unión". Fue desaprobado a principios de la década de 1990 y nunca formó parte de POSIX. El código de la aplicación debería usar el tipo int en lugar de "union wait".
  • Se agrega una nueva acción NSS para facilitar la administración de gran sistema distribuido. La acción, MERGE, permite que tiendas de usuarios remotos como LDAP se fusionen en tiendas de usuarios locales como / etc / groups para proporcionar conjuntos de credenciales combinadas fáciles de usar, actualizados y administrados. La nueva acción se puede usar configurándola en /etc/nsswitch.conf: group: files [SUCCESS = merge] nis Implementado por Stephen Gallagher (Red Hat).
  • La variable obsoleta __malloc_initialize_hook se ha eliminado de la API.
  • Se ha eliminado la opción localedef --old-style larga sin usar. No ha hecho nada en más de 16 años. Los scripts que usan esta opción pueden soltarlo con seguridad.
  • nextupl, nextup, nextupf, nextdownl, nextdown y nextdownf se agregan a libm. Están definidos por TS 18661 e IEEE754-2008. Las funciones nextup devuelven el siguiente valor representable en la dirección de infinito positivo y las funciones nextdown devuelven el siguiente valor representable en la dirección de infinito negativo. Actualmente están habilitados como extensiones de GNU.
  • Cambios relacionados con la seguridad:
  • Se eliminó una copia de pila innecesaria en _nss_dns_getnetbyname_r. Podría provocar un desbordamiento de la pila cuando se llama a getnetbyname con un nombre excesivamente largo. (CVE-2016-3075)
  • Anteriormente, getaddrinfo copiaba grandes cantidades de datos de direcciones a la pila, incluso después de que se aplicara la corrección para CVE-2013-4458, lo que podría ocasionar un desbordamiento de la pila. getaddrinfo ahora usa una asignación de montón en su lugar. Reportado por Michael Petlan. (CVE-2016-3706)
  • La función glob sufría de un desbordamiento del búfer basado en pila cuando se llamaba con el indicador GLOB_ALTDIRFUNC y encontró un nombre de archivo largo. Reportado por Alexander Cherepanov. (CVE-2016-1234)
  • El cliente Sun RPC UDP podría agotar todo el espacio de pila disponible cuando se inunde con mensajes ICMP y UDP diseñados. Reportado por el complemento alloca de Aldy Hernandez para GCC. (CVE-2016-4429)
  • El código de administración del servidor de nombres IPv6 en libresolv podría generar una pérdida de memoria para cada subproceso que se crea, realiza una búsqueda de nomenclatura anómala y se cierra. Con el tiempo, esto podría resultar en una denegación de servicio debido al agotamiento de la memoria. Reportado por Matthias Schiffer. (CVE-2016-5417)
  • Los siguientes errores se resuelven con esta versión:
  • [1170] localedata: ne_NP: update Archivo de definición de locale nepali [3629] manual: stpcpy description en string.texi se refiere a MS-DOG en lugar de MS-DOS. [6527] malloc: [powerpc] Malloc alineación insuficiente para PowerPC [6796] math: fdim () no establece errno en overflow [10354] libc: posix_spawn debe usar vfork () en más casos que en la actualidad [11213] localedata: localedata: agregar aviso legal sobre derechos de autor a los archivos locale [12143] localedata: chr_US: nueva configuración regional de Cherokee [12450] localedata: sgs_LT: nueva configuración regional [12676] localedata: ln_CD: nueva configuración regional [13237] localedata: LC_ADDRESS.country_name: actualizar todos los locales w / latest CLDR datos [13304] math: fma, fmaf, fmal producen resultados erróneos [14259] build: --localedir arg to configure se ignora [14499] nptl: ¿posix_spawn invoca a los manejadores de atfork / usa vfork? [14750] libc: condición de carrera en posix_spawn uso de vfork frente a manejadores de señal [14934] localedata: es_CL: localidad regional de chileno incorrecta [15262] localedata: LC_MESSAGES.yesexpr / noexpr: uso incoherente de romanización [15263] localedata: LC_MESSAGES.yesexpr / noexpr: uso inconsistente de localedata 1/0 y +/- [15264]: LC_MESSAGES.yesstr / nostr: falta en muchos entornos locales [15368] nptl: raise () no es async-signal-safe [15479] math: ceil, floor, round y trunc aumentan la excepción inexacta [15578] localedata: kk_KZ: varias actualizaciones [16003] localedata: pap_AN: punt antigua localidad [16137] localedata: iw_IL: punt antigua localidad [16190] localedata: eo: nueva localidad de esperanto [16374] localedata: lv_LV: cambiar el símbolo de moneda en LC_MONETARY a euro [16742] malloc: condición de carrera: pthread_atfork () llamado antes del primer malloc () da como resultado un comportamiento de bloqueo inesperado / deadlocks [16975] localedata: LC_MESSAGES.yesexpr / noexpr: revisita las mayúsculas en todas las configuraciones regionales [16983] localedata: postal_fmt no permite los modificadores% ly% [17565] localedata : pt_PT: inicio de semana incorrecto (trabajo-) [17899] matemáticas: [poderpc] floorl devuelve cero negativo con FE_DOWNWARD [17950] compilación: Compilación falla con -msse [18205] localedata: be_BY *: primer_necesario y primer_trabajo incorrecto [18433] libc : posix_spawn no regresa correctamente al no ejecutar [18453] localedata: charmaps / IBM875: códigos incorrectos [18712] cadena: bits / cadena2.h incompatible con -O2 -Werror = packed -Wsystem-headers [18896] localedata: he_IL: mejoras para la moneda [18911] localedata: ro_RO: corregir el nombre del día de la semana para "martes" en los datos de la configuración regional rumana [18960] configuración regional: s390: _nl_locale_subfreeres utiliza código de operación larl en símbolo desalineado [19056] libc: Deprecate readdir_r [19133] localedata: pt_ *: días & amp; los meses deben estar en minúsculas en idioma portugués [19198] localedata: nl_NL: pequeñas mejoras para la red local en holandés [19257]: pérdida de memoria por subproceso en __res_vinit con servidores de nombres IPv6 (CVE-2016-5417) [19269] compilación: tst-audit4 y tst-audit10 fallas con gcc-6 en máquina no avx [19400] configuración regional: idioma falta en "iso-639.def", corrección trivial en la descripción [19431] malloc: punto muerto entre fflush, getdelim y fork [19505] libc: Comprobaciones de validez de descriptor de archivo incorrectas en posix_spawn_file_actions_add {open, close, dup2} [19509] dynamic-link: dlsym, dlvsym no informan errores a través de dlerror cuando se usa RTLD_NEXT [19512] locale: Stale `#ifndef HAVE_BUILTIN_EXPECT 'en` intl / {gettextP , loadinfo}.h '[19534] libc: execle, execlp puede usar malloc [19568] localedata: * _CH: las configuraciones nacionales suizas tienen inicio inconsistente de la semana [19573] red: res_nclose y __res_maybe_init no están de acuerdo con la inicialización del servidor de nombres, rompiendo Hesiod [19575] localedata: Estado de las tablas GB18030 [19581] localedata: sr_ * date_fmt cadena contiene cadena adicional de nueva línea [19583]: SSSE3_Fast_Copy_Backward flag debe estar habilitado para AMD Excavator core [19592] math: [ldbl-128ibm] ceill incorrecto en modos de redondeo no predeterminados [19593 ] math: [ldbl-128ibm] truncl incorrecto en modos de redondeo no predeterminados [19594] math: [ldbl-128ibm] roundl incorrecto en modos de redondeo no predeterminados [19595] math: [ldbl-128ibm] fmodl incorrecto para resultados en subnormal doble rango [19602] matemáticas: [ldbl-128ibm] fmodl manejo de argumentos iguales con baja parte cero incorrecta [19603] matemáticas: [ldbl-128ibm] remainderl, remquol manejo incorrecto de signos en pruebas de igualdad [19610] dynamic-link: ldconfig - X elimina enlaces simbólicos obsoletos [19613] libc: s390x (64 bits) macro expansión WCOREDUMP y otros [19633] entorno local: strfmon_l aplica configuración regional global al formato de número [19642] red: pérdida de memoria en getnameinfo [19648] libc: test-skeleton.c: No configurar RLIMIT_DATA [19653] libc: Posibilidad de desreferencia de puntero NULL (CWE-476) en glibc-2.22 [19654] matemática: [x86_64] Necesitar testcase para corrección de BZ # 19590 [19671] localedata: Falta comprobación de integridad para malloc () en 'tst-fmon.c' & amp; 'tst-numeric.c' [19674] math: [ldbl-128ibm] powl manejo incorrecto de overflow [19677] math: [ldbl-128ibm] remainderl prueba de igualdad incorrecta para zero low part [19678] math: [ldbl-128ibm] nextafterl , nexttowardl signo incorrecto de resultado cero [19679] dynamic-link: gcc-4.9.3 Tratamiento de excepciones C ++ roto debido a la pila desalineada [19726] configuración regional: Convertir UCS4LE a INTERNAL con iconv () no actualiza punteros y longitudes en error-case . [19727] entorno local: la conversión de / a UTF-xx con iconv () no siempre informa errores en UTF-16 sustitutos de valores.[19755] nscd: fallo de la aseveración nscd en gc [19758] dynamic-link: Typo en EXTRA_LD_ENVVARS para x86-64 [19759] libc: mempcpy no debe estar en línea [19762] dynamic-link: HAS_CPU_FEATURE / HAS_ARCH_FEATURE es fácil de usar [ 19765] libc: s390 necesita un mempcpy optimizado [19779] glob: glob: desbordamiento de buffer con GLOB_ALTDIRFUNC debido a una suposición de límite de NAME_MAX incorrecta (CVE-2016-1234) [19783] build: los benchtest no son compatibles --enable-hardcoded-path -in-tests [19787] red: Comprobaciones de truncamiento faltantes e incorrectas en getnameinfo [19790] math: [ldbl-128ibm] nearbyintl incorrectas en modos de redondeo no predeterminados [19791] red: Fallo de aserción en res_query.c con nombre no conectable direcciones del servidor [19792] libc: MIPS: backtrace produce un backtrace infinito con makecontext [19822] math: libm.así que instale la antigua versión de clobbers [19825] red: resolv: send_vc puede devolver datos no inicializados en segunda respuesta a la red getaddrinfo [19830]: nss_dns: debe verificar la longitud RDATA contra la longitud del búfer [19831] network: nss_dns: getaddrinfo devuelve datos no inicializados A / AAAA registros de tamaño no válido [19837] nss: nss_db: No hay intentos para algunas líneas largas con un búfer más grande [19848] matemáticas: powl (10, n) para n = -4, -5, -6, -7 es apagado por más de 1 ULP [19853] stdio: Imprimir IBM largo doble en decimal con alta precisión es a veces incorrecto [19860] construir: x86_64: errores de compilación para tst-audit10 y tst-auditmod10b [19861] nptl: libpthread IFUNC resolver para fork puede llevar a colisión [19862] red: resolv, nss_dns: eliminar el registro restante de tipos de registros inesperados [19865] red: error de aserción o pérdida de memoria en _nss_dns_getcanonname_r [19868] red: nss_dns: el código necesario no pasa por alto los registros que no son PTR [ 19879] network: nss_dns: Desbordamiento de pila en la implementación getnetbyname ción (CVE-2016-3075) [19881] cadena: Mejorar cadena memset x86-64 [19907]: Pruebas memcpy incorrectas [19916] dynamic-link: S390: fprs / vrs no se guardan / restauran mientras se resuelven símbolos [19925] libc : termios.h Espacio de nombres XCASE [19928] cadena: memmove-vec-unaligned-erms.S es lento con gran tamaño de datos [19929] libc: limits.h NL_NMAX namespace [19931] stdio: pérdida de memoria en vfprintf [19957] libc: clone (CLONE_VM) accede a la memoria principal no válida [19963] localedata: en_IL: Nueva configuración regional [19989 ] stdio: stdio.h espacio de nombres cuserid [19994] red: getaddrinfo no restaura el indicador RES_USE_INET6 en gethosts [19996] entorno local: langinfo.h nl_langinfo_l espacio de nombres [20005] stdio: fflush en un archivo abierto con la posición de restablecimientos fmemopen a 0 [20010] network: getaddrinfo: Desbordamiento de pila en la traducción de hostent (CVE-2016-3706) [20012] stdio: libio: fmemopen error en el modo de adición [20014] stdio: stdio.h namespace para pre-hilos POSIX [20017] network: resolv: use gmtime_r en lugar de gmtime en p_secstodate [20023] libc: fcntl.h espacio de nombres timespec [20024] math: [x86_64] sincos vectorizados destruye la pila [20031] network: nss_hesiod: Desbordamiento de pila en get_txt_records [20041] time: sys / time.h timespec namespace [20043] libc: unistd.h que faltaba cuserid para UNIX98 y antes [20044] libc: unistd .h falta pthread_atfork para UNIX98 [20051] libc: ttyslot en el encabezado incorrecto en condiciones incorrectas [20054] libc: gethostname no declarado para XPG4 [20055] libc: termios.h missing tcgetsid para XPG4 [20072] dynamic-link: x86 init_cpu_features se llama dos veces en ejecutable estático [20073] libc: sys / stat.h fchmod namespace [20074] libc: stdlib.h rand_r namespace [20076] libc: sys / stat .h missing S_IFSOCK, S_ISSOCK para XPG4 [20094] libc: stdlib.h no debe declarar grantpt, ptsname, unlockpt para XPG3 [20111] libc: struct sockaddr_storage no puede ser copiado en conjunto [20112] network: sunrpc: stack (frame) overflow en Sun RPC clntudp_call (CVE-2016-4429) [20115] cadena: alineación adicional en memset-vec-unaligned-erms.S [20119] libc: máscara incorrecta para tipos de nivel de procesadores desde CPUID [20139] dynamic-link: Upper part de zmm se pone a cero si Glibc está construido con AS no compatible con AVX512 [20151] matemática: [ldbl-128 / ldbl-128ibm] j0l, j1l, y0l, y1l devuelve sNaN para argumento sNaN [20153] matemática: [ldbl-128ibm] sqrtl (sNaN) devuelve sNaN [20156] math: [ldbl-128ibm] ceill, rintl etc. return sNaN para sNaN argumento [20157] math: [powerpc] fabsl (sNaN) plantea erróneamente "no válido" [20160] math: [p owerpc] ceil, rint etc.return sNaN para sNaN Entrada [20178] libc: posix_spawn {p} no debe llamar a exit [20191] stdio: libio: vtables hardening [20195] cadena: detección FMA4 requiere ejecución de CPUID con register eax = 0x80000001 [20198] libc: quick_exit destruye incorrectamente C ++ 11 objetos de hilo. [20205] math: [i386 / x86_64] nextafterl incorrecto incrementando subnormales negativos [20212] math: acos (sNaN) devuelve sNaN [20213] math: asin (sNaN) devuelve sNaN [20214] network: sincronización de encabezado de Linux con linux / in6. h e ipv6.h de nuevo.[20218] math: [i386] asinhl (sNaN) devuelve sNaN [20219] math: [i386] atanhl (sNaN) devuelve sNaN [20222] stdio: fopencookie: Punteros de la función Mangle [20224] math: [i386] cbrtl (sNaN) devuelve sNaN [20225] math: ldexp, scalbn, scalbln return sNaN para sNaN input [20226] math: [i386 / x86_64] expl, exp10l, expm1l return sNaN para sNaN Input [20227] math: [i386 / x86_64] logl (sNaN ) devuelve sNaN [20228] math: [i386 / x86_64] log10l (sNaN) devuelve sNaN [20229] math: [i386 / x86_64] log1pl (sNaN) devuelve sNaN [20232] math: [ldbl-128] expm1l (sNaN) regresa sNaN [20233] math: [ldbl-128ibm] expm1l (sNaN) devuelve sNaN [20234] math: [ldbl-128ibm] log1pl (sNaN) devuelve sNaN [20235] math: [i386 / x86_64] log2l (sNaN) devuelve sNaN [ 20237] nss: nss_db: get * ent segfaults sin el conjunto anterior * ent [20240] math: modf (sNaN) devuelve sNaN [20248] libc: debug / tst-longjump_chk2 llamadas printf desde un controlador de señal [20250] math: frexp (sNaN ) devuelve sNaN [20252] math: atan2 (sNaN, qNaN) no puede generar "no válido" [20255] ma th: [i386] fdim, fdimf return con exceso de rango y precisión / doble redondeo [20256] math: [i386 / x86_64] fdiml devuelve sNaN para sNaN input [20260] string: ../sysdeps/x86/bits/string.

    h: 1092: 3: error: el subíndice de la matriz está por debajo de los límites de la matriz [-Werror = límites de la matriz] [20262] nis: _nss_nis_initgroups_dyn siempre devuelve NSS_STATUS_NOTFOUND [20263] nptl: bloqueos de la exclusión mutua robustos si otras peticiones de subprocesos / linux) [20277] libc: $ dp no se inicializa correctamente en sysdeps / hppa / start.S [20284] malloc: malloc: la evitación de arena corrupta causa innecesarios recuperaciones de mmap [20296] math: [i386 / x86_64] scalbl devuelve sNaN para Entrada de sNaN, excepciones "inválidas" faltantes [20314] nptl: make [4]: ​​*** [/usr/include/stdlib.h] Error 1 [20316] localedata: Id_ID: Februari en lugar de Pebruari [20327] cadena: POWER8 strcasecmp devuelve un resultado incorrecto [20347] math: Error: Prueba: j0_downward (0xap + 0) [20348] libc: FAIL: misc / tst-preadvwritev64 [20349] libc: el valor de 64 bits se pasa de manera diferente en p {readv, writev} {64} [20350] libc: no hay pruebas para p {leer, escribir} 64 [20357] matemáticas: resultado cos incorrecto para 1.5174239687223976 [20384] compilación: no ejecutar pruebas libmvec-sincos-avx * en no avx m achines

Qué hay de nuevo en la versión 2.23:

  • CVE-2015-7547: glibc getaddrinfo () desbordamiento de búfer basado en la pila - Solucionado en la rama de desarrollo para la versión glibc 2.23.

Qué hay de nuevo en la versión 2.21:

  • Los siguientes errores se resuelven con esta versión: 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 Bajo ciertas condiciones, wscanf puede asignar muy poca memoria para los argumentos a escanear y desbordar el búfer asignado. La implementación ahora calcula correctamente el tamaño de búfer requerido cuando se usa malloc.
  • Se ha implementado un nuevo algoritmo de semáforo en código C genérico para todas las máquinas. Las implementaciones previas de ensamblaje personalizado de semáforos eran difíciles de razonar o garantizar que fueran seguras. La nueva versión de semáforo admite máquinas con operaciones atómicas de 64 o 32 bits. El nuevo algoritmo de semáforo es utilizado por sem_init, sem_open, sem_post, sem_wait, sem_timedwait, sem_trywait y sem_getvalue.
  • Port a Altera Nios II ha sido contribuido por Mentor Graphics.
  • Implementaciones optimizadas de strcpy, stpcpy, strncpy, stpncpy, strcmp y strncmp para powerpc64 / powerpc64le. Implementado por Adhemerval Zanella (IBM).
  • Se agregó soporte para TSX lock elision de pthread mutexes en powerpc32, powerpc64 y powerpc64le. Esto puede mejorar la escala de bloqueo de programas existentes en sistemas con capacidad HTM. El código de elisión de bloqueo solo está habilitado con --enable-lock-elision = yes. Además, la implementación TSX lock elision para powerpc emitirá un aborto de transacción en cada syscall para evitar que los efectos secundarios sean visibles fuera de las transacciones.
  • Implementaciones optimizadas de strcpy, stpcpy, strchrnul y strrchr para AArch64. Contribuido por ARM Ltd.
  • Funciones memcpy i386 optimizadas con carga / almacenamiento desalineado SSE2.
  • CVE-2104-7817 La función wordexp podría ignorar el indicador WRDE_NOCMD bajo ciertas condiciones de entrada, lo que da como resultado la ejecución de un shell para la sustitución del comando cuando la aplicación no lo solicitó. La implementación ahora verifica WRDE_NOCMD inmediatamente antes de ejecutar el shell y devuelve el error WRDE_CMDSUB como se esperaba.
  • Las funciones de estilo de impresión CVE-2012-3406 podrían ejecutar un desbordamiento de pila al procesar cadenas de formato con una gran cantidad de especificadores de formato.
  • CVE-2014-9402 La implementación nss_dns de getnetbyname podría ejecutarse en un bucle infinito si la respuesta DNS contenía un registro PTR de formato inesperado.
  • La versión mínima de GCC que se puede usar para compilar esta versión de la Biblioteca GNU C es GCC 4.6. Las versiones anteriores de GCC y los compiladores que no son de GNU aún se pueden usar para compilar programas utilizando la Biblioteca C de GNU.
  • La biblioteca C de GNU ahora está construida con -Werror de forma predeterminada. Esto se puede deshabilitar configurando con --disable-werror.
  • Nuevas configuraciones regionales: tu_IN, bh_IN, raj_IN, ce_RU.
  • La función obsoleta sigvec ha sido eliminada. Esta fue la interfaz original de 4.2BSD que inspiró la interfaz sigaction POSIX.1, que los programas han estado utilizando en su lugar durante unos 25 años. Por supuesto, la compatibilidad ABI para los binarios antiguos que usan sigvec permanece intacta.
  • Fusionó gettext 0.19.3 en el subdirectorio intl. Esto soluciona el problema con las versiones más nuevas de bisontes.
  • Soporte para MIPS o32 FPXX, FP64A y FP64 ABI Extensions. El ABI original de MIPS o32 hard-float requiere una FPU donde los registros de doble precisión superponen dos registros consecutivos de precisión simple. MIPS32R2 introdujo un nuevo modo FPU (FR = 1) donde los registros de doble precisión extienden los registros de precisión simple correspondientes que son incompatibles con el ABI de flotación fuerte o32. El MIPS SIMD ASE y la arquitectura MIPSR6 requieren el uso de FR = 1 haciendo necesaria una transición. Las nuevas extensiones ABI o32 permiten a los usuarios migrar a lo largo del tiempo desde el ABI o32 original hasta el ABI o32 FP64 actualizado. Para lograr esto, el enlazador dinámico ahora rastrea el ABI de cualquier objeto cargado y verifica que los objetos nuevos sean compatibles. Las transiciones de modo también se solicitarán según sea necesario y los objetos imposibles de admitir serán rechazados. Los controles de ABI incluyen tanto ABI de flotación blanda como dura para o32, n32 y n64.

Comentarios a la GNU C Library

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!