5.11. Compiladores y herramientas de desarrollo

grafana rebasado a la versión 6.3.6

El paquete grafana ha sido actualizado a la versión 6.3.6, que proporciona múltiples correcciones de errores y mejoras. Los cambios más destacados son:

  • Base de datos: Reescribe la consulta de las estadísticas del sistema para mejorar el rendimiento.
  • Explora:

    • Se corrige el diseño de los campos de consulta en la vista dividida para los navegadores Safari.
    • Añade la opción Live para las fuentes de datos soportadas, añade el orgId a la URL para compartirla.
    • Añade soporte para los nuevos parámetros de inicio y fin de loki para el punto final de las etiquetas.
    • Añade soporte para alternar el modo de consulta sin procesar en el Explore, lo que permite cambiar entre las métricas y los registros.
    • Muestra el contexto de las líneas de registro, no analiza los niveles de registro si se proporcionan por campo o etiqueta.
    • Soporta la nueva sintaxis de filtrado LogQL.
    • Utiliza el nuevo TimePicker de Grafana/UI.
    • Maneja las nuevas líneas en el Resaltador de Filas.
    • Arregla la navegación de vuelta al panel del tablero.
    • Se corrige el filtro por nivel de serie en el gráfico de registros.
    • Corregir problemas cuando se carga y el gráfico/tabla está colapsado.
    • Corrige la selección/copia de líneas de registro.
  • Cuadro de mando: Corrige el error de carga del init de los cuadros de mando con enlaces a paneles a los que les faltaban propiedades, y corrige la configuración de la zona horaria del cuadro de mando al exportar a los valores separados por comas (CSV) Enlaces de datos.
  • Editor: Se ha corregido un problema por el que sólo se copiaban líneas enteras.
  • LDAP: Integración de los componentes de autenticación multi ldap y ldap.
  • Perfil/UserAdmin: Corrige el parser del agente de usuario que bloquea el servidor de grafana en las versiones de 32 bits.
  • Prometeo:

    • Evita que el editor de paneles se cuelgue al cambiar a la fuente de datos de Prometheus, cambia el comportamiento de inserción de corchetes para que sea menos molesto.
    • Corrige las consultas con el label_replace y elimina la coincidencia de $1 al cargar el editor de consultas.
    • Permite de forma consistente las consultas de varias líneas en el editor, teniendo en cuenta la zona horaria para la alineación de los pasos.
    • Utiliza el rango del panel anulado para $__range en lugar del rango del tablero.
    • Añade un filtro de rango de tiempo a la consulta de las etiquetas de las series, escapa a los literales | en las variables interpoladas de PromQL.
    • Correcciones al añadir etiquetas para las métricas que contienen dos puntos en el Explore.
  • Automatización: Permite la caducidad de las claves de la API, devuelve el dispositivo, el sistema operativo y el navegador al enumerar los tokens de autenticación del usuario en la API HTTP, admite la lista y la revocación de los tokens de autenticación del usuario en la interfaz de usuario.
  • Enlaces de datos: Aplica correctamente las variables de ámbito a los enlaces de datos, sigue la zona horaria al mostrar la marca de tiempo del punto de datos en el menú contextual del gráfico, utiliza correctamente la marca de tiempo del punto de datos al interpolar las variables, corrige la interpolación incorrecta del ${__nombre_de_serie}.
  • Gráfico: Corrige el problema de la leyenda al hacer clic en el icono de la línea de la serie y el problema de la barra de desplazamiento horizontal que es visible en las ventanas, añade una nueva opción de relleno del gradiente.
  • Grafito: Evita el glob de las variables de matriz de un solo valor, corrige problemas con la función de alias que se mueve en último lugar, corrige el problema con la serieByTag
  • Series de tiempo: Asume que los valores son todos números.
  • Gauge/BarGauge: Se corrige un problema de pérdida de umbrales y un problema de carga de Gauge con la estadística avg.
  • Enlaces del panel: Se ha corregido el problema de bloqueo del indicador
  • OAuth: Corrige el fallo de inicio de sesión de OAuth en estado guardado debido a la política de cookies de SameSite, corrige el token de usuario erróneo actualizado en la actualización de OAuth en el proxy DS.
  • Auth Proxy: Incluye cabeceras adicionales como parte de la clave de la caché.
  • cli: Arreglo para reconocer cuando está en modo dev, arregla el problema de encriptar-fuente-de-datos-contraseñas fallando con el error sql.
  • Permisos: Mostrar los plugins en la navegación para los usuarios que no son administradores, pero oculta la configuración de los plugins.
  • TimePicker: Aumenta la altura máxima del desplegable de rango rápido y corrige un problema de estilo para el popover de rango personalizado.
  • Loki: Muestra los registros de cola en vivo en el orden correcto en el Explore.
  • Rango de tiempo: Se corrige un error por el que los rangos de tiempo personalizados no seguían la Hora Universal Coordinada (UTC).
  • remote_cache: Arregla el parsing de connstr de redis.
  • Alertas: Añadir etiquetas a las reglas de alerta, intentos de enviar notificaciones por correo electrónico a todas las direcciones de correo electrónico dadas, mejora de las pruebas de las reglas de alerta, soporte para configurar el campo de contenido para el notificador de alerta de Discord.
  • Gestor de alertas: Sustituye los caracteres ilegales por guiones bajos en los nombres de las etiquetas.
  • AzureMonitor: Cambia las variables integradas en Grafana que chocan o los nombres de las macros para los Azure Logs.
  • CloudWatch: Hecha la región visible para Amazon Web Services (AWS) Cloudwatch Expressions, añade las métricas de AWS DocDB.
  • GraphPanel: No ordenar las series cuando la tabla de leyenda y la columna de ordenación no son visibles.
  • InfluxDB: Permite visualizar los registros en el Explore.
  • MySQL/Postgres/MSSQL: Añade el análisis de intervalos de días, semanas y años en las macros, añade soporte para recargar periódicamente los certificados de los clientes.
  • Plugins: Reemplaza la lista de dataFormats con la bandera skipDataQuery en el archivo plugin.json.
  • Refrescar el selector: Maneja los intervalos vacíos.
  • Singlestat: Añade la configuración y min/max a los sparklines singlestat.
  • Plantillas: Muestra correctamente el __texto en la variable multivalor después de recargar la página, soporta la selección de todos los valores filtrados de una variable multivalor.
  • Frontend: Corrige el problema del componente de árbol Json que no funciona.
  • InfluxDB: Corrige los problemas de las comillas simples no escapadas en los filtros de valores de las etiquetas.
  • Config: Corrige la opción connectionstring para el remote_cache en el archivo defaults.ini.
  • Elasticsearch: Corrige la consulta vacía (a través de la variable de plantilla) debe ser enviada como comodín, corrige el máximo de solicitudes concurrentes de shard por defecto, soporta la visualización de los registros en el Explore.
  • TablePanel: Arregla la visualización de las anotaciones.
  • Grafana-CLI: Corrige la recepción de banderas a través de la línea de comandos, el wrapper para el grafana-cli dentro de los paquetes RPM/DEB y config/homepath son ahora banderas globales.
  • HTTPServer: Corrige el formato de la cabecera X-XSS-Protection, las opciones para devolver las nuevas cabeceras X-Content-Type-Options, X-XSS-Protection y Strict-Transport-Security, corrige la cabecera Strict-Transport-Security, sirve a Grafana con un prefijo de ruta URL personalizado.

(BZ#1725278)

pcp rebasado a la versión 5.0.2

El paquete pcp ha sido actualizado a la versión 5.0.2, que proporciona múltiples correcciones de errores y mejoras. Los cambios más destacados son:

  • Los paquetes pcp-webapp-* son ahora reemplazados por el paquete grafana-pcp y pmproxy.
  • La herramienta pcp-collectl se sustituye ahora por las configuraciones pmrep.
  • Nuevos y mejorados agentes del dominio de la métrica del rendimiento (PMDA):

    • pmdamssql: Nueva implementación de PMDA para Microsoft SQL Server.
    • pmdanetcheck: Nuevo PMDA para realizar comprobaciones de red.
    • pmdaopenmetrics: Cambia el nombre del agente prometheus por el de openmetrics.
    • pmdanfsclient: Añade las métricas de error rpc por operación y por montaje.
    • pmdalmsensors: Mejoras en el parsing de nombres y en el manejo de errores.
    • pmdaperfevent: Soporta eventos de nido hv_24x7 en el sistema multinodal.
    • pmdalinux:

      • Maneja correctamente los nodos numa dispersos o discontinuos.
      • Utiliza el nombre de la cpu y no el instid para las estadísticas numa por cpu.
      • Añade una losa activa y total al análisis sintáctico de slabinfo v2
      • Corrige varios socket unix, icmp6 métricas, hugepage valor de la métrica. cálculos, segfault en el código de interrupciones con grandes cuentas de la CPU
      • Obtiene más métricas de red en el espacio de nombres --container.
    • pmdabcc: Corrige el módulo tracepoints para las versiones bcc 0.10.0 y superiores
    • pmdabpftrace: Nuevo PMDA para las métricas de los scripts bpftrace
    • pmdaproc:

      • Corrige la pérdida de memoria en el refresco de la lista de pedidos.
      • Evita el exceso de llamadas a las estadísticas en cgroups_scan.
      • Conserva las rutas de los cgroups y sólo desescape los nombres de las instancias.
    • pmdaroot: Mejora el manejo del comportamiento del cgroup en caché o inactivo y refresca el indom del contenedor en el cambio de fs del cgroup también.
  • Correcciones en las herramientas del colector (servidor):

    • pmproxy: Soporte de Openmetrics a través del endpoint /metrics, consolida la API REST de pmseries/grafana, y añade una nueva implementación de la API REST asíncrona PMWEBAPI(3).
    • selinux: Numerosas actualizaciones de la política de pcp.
    • python pmdas: Habilita el soporte de autenticación, nuevo método set_comm_flags para establecer las banderas de comunicación.
    • api de python: Exporta el pmdaGetContext() y añade una envoltura de depuración.
    • perl api: Asegura la configuración del contexto para el almacén PMDA como con el wrapper de python.
    • systemd: Añade un tiempo de espera de 120s en todos los servicios y corrige el fallo al iniciar el servicio pmlogger.
  • Correcciones en las herramientas de análisis (cliente):

    • pmchart: Corrige el autoescalado del gráfico en condiciones de error de obtención.
    • pmrep: Corrige la fórmula wait. para collectl-dm-sD y collectl-sD.
    • pmseries: Proporciona soporte para la palabra clave delta y mejores marcas de tiempo.
    • pcp-atop: Corrige el modo de escritura(-w) para manejar las métricas proc vs hotproc.
    • pcp-atopsar: Corrige el mal manejo de algunos argumentos de la línea de comandos.
    • pcp-dstat: Corrige las cabeceras desalineadas en la salida CSV y el manejo de la opción de línea de comandos --bits.
    • libpcp: Corrige el segv de cockpit-pcp con el contexto local y el manejo de errores de repetición de archivos múltiples para los archivos corruptos.

(BZ#1723598)

grafana-pcp ya está disponible en RHEL 8.2

El paquete grafana-pcp proporciona nuevas fuentes de datos de grafana y plugins de aplicación que conectan PCP con grafana. Con el paquete grafana-pcp, puede analizar las métricas históricas de PCP y las métricas de PCP en tiempo real utilizando el lenguaje de consulta pmseries y los servicios en vivo pmwebapi respectivamente. Para obtener más información, consulte Performance Co-Pilot Grafana Plugin.

(BZ#1685315)

Actualización del conjunto de herramientas GCC 9

GCC Toolset 9 es un conjunto de herramientas de compilación que proporciona versiones recientes de herramientas de desarrollo. Está disponible como un flujo de aplicaciones en forma de colección de software en el repositorio AppStream.

Entre los cambios notables introducidos con RHEL 8.2 se incluyen:

  • El compilador GCC ha sido actualizado a la versión 9.2.1, que proporciona muchas correcciones de errores y mejoras que están disponibles en GCC upstream.
  • Los componentes de GCC Toolset 9 ya están disponibles en las dos imágenes de contenedores:

    • rhel8/gcc-toolset-9-toolchain, que incluye el compilador GCC, el depurador GDB y la herramienta de automatización make.
    • rhel8/gcc-toolset-9-perftools, que incluye las herramientas de supervisión del rendimiento, como SystemTap y Valgrind.

      Para extraer una imagen de contenedor, ejecute el siguiente comando como root:

      # podman pull registry.redhat.io/<image_name>

Las siguientes herramientas y versiones son proporcionadas por GCC Toolset 9:

HerramientaVersión

GCC

9.2.1

GDB

8.3

Valgrind

3.15.0

SystemTap

4.1

Dyninst

10.1.0

binutils

2.32

elfutils

0.176

dwz

0.12

hacer

4.2.1

strace

5.1

ltrace

0.7.91

annobin

9.08

Para instalar GCC Toolset 9, ejecute el siguiente comando como root:

# yum install gcc-toolset-9

Para ejecutar una herramienta de GCC Toolset 9:

$ scl enable gcc-toolset-9 tool

Para ejecutar una sesión de shell en la que las versiones de las herramientas de GCC Toolset 9 tienen prioridad sobre las versiones del sistema de estas herramientas:

$ scl enable gcc-toolset-9 bash

Para obtener más información, consulte Uso del conjunto de herramientas GCC.

(BZ#1789401)

GCC Toolset 9 ahora soporta la descarga de objetivos NVIDIA PTX

El compilador GCC en GCC Toolset 9 ahora soporta la descarga de objetivos OpenMP para NVIDIA PTX.

(BZ#1698607)

El compilador GCC actualizado ya está disponible para RHEL 8.2

El compilador GCC del sistema, versión 8.3.1, se ha actualizado para incluir numerosas correcciones de errores y mejoras disponibles en el GCC upstream.

La colección de compiladores de GNU (GCC) proporciona herramientas para desarrollar aplicaciones con los lenguajes de programación C, C , y Fortran.

Para obtener información de uso, consulte Desarrollo de aplicaciones C y C en RHEL 8.

(BZ#1747157)

Un nuevo sintonizador para cambiar el tamaño máximo de fastbin en glibc

La función malloc utiliza una serie de fastbins que contienen trozos de memoria reutilizables hasta un tamaño determinado. El tamaño máximo de los trozos por defecto es de 80 bytes en sistemas de 32 bits y de 160 bytes en sistemas de 64 bits. Esta mejora introduce un nuevo ajuste glibc.malloc.mxfast en glibc que permite cambiar el tamaño máximo de los fastbins.

(BZ#1764218)

La biblioteca matemática vectorial está ahora habilitada para GNU Fortran en GCC Toolset 9

Con esta mejora, GNU Fortran de GCC Toolset puede ahora utilizar rutinas de la biblioteca matemática vectorizada libmvec. Anteriormente, el compilador de Fortran en GCC Toolset necesitaba un archivo de cabecera de Fortran antes de poder utilizar las rutinas de libmvec proporcionadas por la biblioteca de C de GNU glibc.

(BZ#1764238)

Se ha mejorado el ajuste de glibc.malloc.tcache

La variable de ajuste glibc.malloc. tcache_count permite establecer el número máximo de trozos de memoria de cada tamaño que se pueden almacenar en la caché por hilo (tcache). Con esta actualización, el límite superior de la sintonizable glibc.malloc .tcache_count se ha incrementado de 127 a 65535.

(BZ#1746933)

El cargador dinámico de glibc se ha mejorado para proporcionar un mecanismo de precarga de bibliotecas no heredado

Con esta mejora, ahora se puede invocar el cargador para cargar un programa de usuario con una opción --preload seguida de una lista de bibliotecas a precargar separada por dos puntos. Esta característica permite a los usuarios invocar sus programas directamente a través del cargador con una lista de precarga de bibliotecas no heredada.

Anteriormente, los usuarios tenían que utilizar la variable de entorno LD_PRELOAD que era heredada por todos los procesos hijos a través de su entorno.

(BZ#1747453)

GDB ahora soporta la extensión ARCH(13) en la arquitectura IBM Z

Con esta mejora, el depurador de GNU (GDB) soporta ahora las nuevas instrucciones implementadas por la extensión ARCH(13) en la arquitectura IBM Z.

(BZ#1768593)

elfutils rebasado a la versión 0.178

El paquete elfutils ha sido actualizado a la versión 0.178, que proporciona múltiples correcciones de errores y mejoras. Los cambios más destacados son:

  • elfclassify: una nueva herramienta para analizar objetos ELF.
  • debuginfod: un nuevo servidor, herramienta cliente y biblioteca para indexar y obtener automáticamente ELF, DWARF y fuentes de archivos y archivos RPM a través de HTTP.
  • libebl se compila ahora directamente en libdw.so.
  • eu-readelf tiene múltiples banderas nuevas para las notas, la numeración de secciones y las tablas de símbolos.
  • libdw ha mejorado el soporte multihilo.
  • libdw soporta extensiones GNU DWARF adicionales.

(BZ#1744992)

SystemTap rebasado a la versión 4.2

La herramienta de instrumentación SystemTap ha sido actualizada a la versión 4.2. Las mejoras más destacadas son:

  • Ahora, el seguimiento puede incluir los nombres de los archivos de origen y los números de línea.
  • Ya están disponibles numerosas extensiones del back-end del Berkeley Packet Filter (BPF), por ejemplo, para los procesos de bucle, temporización y otros.
  • Está disponible un nuevo servicio para gestionar los scripts de SystemTap. Este servicio envía métricas a un sistema de supervisión compatible con Prometheus.
  • SystemTap ha heredado la funcionalidad de un nuevo servidor de archivos HTTP para elfutils llamado debuginfod. Este servidor envía automáticamente recursos de depuración a SystemTap.

(BZ#1744989)

Mejoras en los contadores de rendimiento de la serie Z de IBM

Las máquinas IBM serie Z tipo 0x8561, 0x8562 y 0x3907 (z14 ZR1) son ahora reconocidas por libpfm. Ahora están disponibles los eventos de rendimiento para supervisar las operaciones de criptografía de curva elíptica (ECC) en la serie Z de IBM. Esto permite la monitorización de subsistemas adicionales en máquinas de la serie Z de IBM.

(BZ#1731019)

Conjunto de herramientas de Rust rebasado a la versión 1.41

Rust Toolset ha sido actualizado a la versión 1.41. Los cambios más destacados son:

  • La implementación de nuevos rasgos es ahora más fácil porque la regla de orfandad es menos estricta.
  • Ahora puede adjuntar el atributo #[non_exhaustive] a una estructura, un enum o variantes de enum.
  • El uso de Box<T> en el Foreign Function Interface (FFI) tiene ahora más garantías. Box<T> tendrá el mismo Application Binary Interface (ABI) que un puntero T* en el FFI.
  • Se supone que Rust detecta errores de seguridad de memoria en tiempo de compilación, pero el anterior verificador de préstamos tenía limitaciones y permitía comportamientos indefinidos y falta de seguridad de memoria. El nuevo verificador de préstamos de vidas no léxicas (NLL) puede reportar problemas de inseguridad de memoria como errores duros. Ahora se aplica a las ediciones de Rust 2015 y Rust 2018. Anteriormente, en Rust 2015 el verificador de préstamos NLL sólo lanzaba advertencias sobre estos problemas.

Para instalar el módulo rust-toolset, ejecute el siguiente comando como root:

# yum module install rust-toolset

Para obtener información sobre su uso, consulte Uso del conjunto de herramientas de Rust.

(BZ#1776847)

El conjunto de herramientas LLVM se ha actualizado a la versión 9.0.1

El conjunto de herramientas LLVM ha sido actualizado a la versión 9.0.1. Con esta actualización, ahora se soportan las sentencias asm goto. Este cambio permite compilar el kernel de Linux en las arquitecturas AMD64 e Intel 64.

Para instalar el módulo llvm-toolset, ejecute el siguiente comando como root:

# yum module install llvm-toolset

Para más información, consulte Uso del conjunto de herramientas LLVM.

(BZ#1747139)

Go Toolset rebasado a la versión 1.13

Go Toolset ha sido actualizado a la versión 1.13. Las mejoras más destacadas son:

  • Ahora Go puede utilizar un módulo criptográfico certificado por FIPS cuando el sistema RHEL se inicia en el modo FIPS. Los usuarios pueden habilitar este modo manualmente utilizando la variable de entorno GOLANG_FIPS=1.
  • El depurador Delve, versión 1.3.2, ya está disponible para Go. Es un depurador a nivel de código fuente para el lenguaje de programación Go(golang).

Para instalar el módulo go-toolset, ejecute el siguiente comando como root:

# yum module install go-toolset

Para instalar el depurador Delve, ejecute el siguiente comando como root:

# yum install delve

Para depurar un programa helloworld. go utilizando Delve, ejecute el siguiente comando:

$ dlv debug helloworld.go

Para obtener más información sobre Go Toolset, consulte Uso de Go Toolset.

Para más información sobre Delve, consulte la documentación de Delve.

(BZ#1747150)

OpenJDK ahora también soporta secp256k1

Anteriormente, Open Java Development Kit (OpenJDK) sólo podía utilizar curvas de la biblioteca NSS. En consecuencia, OpenJDK sólo proporcionaba las curvas secp256r1, secp384r1 y secp521r1 para la criptografía de curva elíptica (ECC). Con esta actualización, OpenJDK utiliza la implementación interna de ECC y soporta también la curva secp256k1.

(BZ#1746875, BZ#1746879)