Red Hat Training

A Red Hat training course is available for RHEL 8

16.5. Cambios que rompen la compatibilidad en los compiladores y herramientas de desarrollo

librtkaio eliminado

Con esta actualización, se ha eliminado la biblioteca librtkaio. Esta biblioteca proporcionaba un acceso de E/S asíncrono de alto rendimiento en tiempo real para algunos archivos, que se basaba en el soporte de E/S asíncrona del núcleo de Linux (KAIO).

Como resultado de la eliminación:

  • Las aplicaciones que utilizan el método LD_PRELOAD para cargar librtkaio muestran una advertencia sobre una biblioteca que falta, cargan la biblioteca librt en su lugar y se ejecutan correctamente.
  • Las aplicaciones que utilizan el método LD_LIBRARY_PATH para cargar librtkaio cargan la biblioteca librt en su lugar y se ejecutan correctamente, sin ninguna advertencia.
  • Las aplicaciones que utilizan la llamada al sistema dlopen() para acceder a librtkaio cargan directamente la biblioteca librt.

Los usuarios de librtkaio tienen las siguientes opciones:

  • Utilizar el mecanismo de reserva descrito anteriormente, sin ningún cambio en sus aplicaciones.
  • Cambiar el código de sus aplicaciones para utilizar la biblioteca librt, que ofrece una API compatible con POSIX.
  • Cambiar el código de sus aplicaciones para utilizar la biblioteca libaio, que ofrece una API compatible.

Tanto librt como libaio pueden ofrecer características y prestaciones comparables en condiciones específicas.

Tenga en cuenta que el paquete libaio tiene un nivel de compatibilidad de Red Hat de 2, mientras que librtk y el eliminado librtkaio tienen un nivel 1.

Para más detalles, consulte https://fedoraproject.org/wiki/Changes/GLIBC223_librtkaio_removal

Eliminación de las interfaces RPC y NIS de Sun glibc

La biblioteca glibc ya no proporciona las interfaces Sun RPC y NIS para las nuevas aplicaciones. Estas interfaces están ahora disponibles sólo para ejecutar aplicaciones heredadas. Los desarrolladores deben cambiar sus aplicaciones para utilizar la biblioteca libtirpc en lugar de Sun RPC y libnsl2 en lugar de NIS. Las aplicaciones pueden beneficiarse del soporte de IPv6 en las bibliotecas de reemplazo.

Se han eliminado las bibliotecas nosegneg para Xen de 32 bits

Anteriormente, los paquetes glibc i686 contenían una compilación alternativa glibc, que evitaba el uso del registro del segmento descriptor de hilos con desplazamientos negativos (nosegneg). Esta compilación alternativa sólo se utilizaba en la versión de 32 bits del hipervisor del proyecto Xen sin soporte de virtualización por hardware, como una optimización para reducir el coste de la paravirtualización completa. Estas construcciones alternativas ya no se utilizan y han sido eliminadas.

make nuevo operador != provoca una interpretación diferente de cierta sintaxis de makefile existente

El operador de asignación del shell != se ha añadido a GNU make como alternativa a la función $(shell …​) para aumentar la compatibilidad con los makefiles de BSD. Como consecuencia, las variables con nombres que terminan en signo de exclamación e inmediatamente seguidas de una asignación, como variable!=value, se interpretan ahora como una asignación del shell. Para restaurar el comportamiento anterior, añada un espacio después del signo de exclamación, como variable! =value.

Para más detalles y diferencias entre el operador y la función, consulte el manual de GNU make.

Se ha eliminado el soporte de la biblioteca Valgrind para la depuración de MPI

Se ha eliminado la biblioteca envolvente libmpiwrap.so para Valgrind proporcionada por el paquete valgrind-openmpi. Esta biblioteca permitía a Valgrind depurar programas que utilizaban la interfaz de paso de mensajes (MPI). Esta biblioteca era específica de la versión de implementación de Open MPI en versiones anteriores de Red Hat Enterprise Linux.

Se anima a los usuarios de libmpiwrap.so a que construyan su propia versión a partir de fuentes upstream específicas para su implementación y versión de MPI. Suministre estas bibliotecas personalizadas a Valgrind utilizando la técnica LD_PRELOAD.

Se han eliminado las cabeceras de desarrollo y las bibliotecas estáticas de valgrind-devel

Anteriormente, el subpaquete valgrind-devel solía incluir archivos de desarrollo para desarrollar herramientas valgrind personalizadas. Esta actualización elimina estos archivos porque no tienen una API garantizada, tienen que ser enlazados estáticamente y no están soportados. El paquete valgrind-devel aún contiene los archivos de desarrollo para programas compatibles con valgrind y archivos de cabecera como valgrind.h, callgrind.h, drd.h, helgrind.h, y memcheck.h, que son estables y están bien soportados.