Compile una nueva biblioteca boost en Linux con un kernel antiguo

Compile una nueva biblioteca boost en Linux con un kernel antiguo

Intento compilar la biblioteca boost más nueva (1.62.0) en un sistema Linux con la versión del kernel 2.6.18-92.1.13.el5 (de uname -r) y el compilador Intel C++ 2016 usando gcc 6.1.0.

El nuevo compilador Intel C++ y gcc están instalados en un subdirectorio de mi directorio de inicio. Estoy usando un glibc antiguo, probablemente tan antiguo como el kernel ( ldd --versionda ldd (GNU libc) 2.5).

Recibo el siguiente error para el módulo de hilo:

In file included from libs/log/src/event.cpp(31):
/usr/include/linux/futex.h(96): error: identifier "u32" is undefined
  long do_futex(u32 *uaddr, int op, u32 val, unsigned long timeout,
                ^

Ese es el único error en toda la compilación.

No puedo instalar un nuevo kernel en la computadora porque no tengo acceso de root.

¿Es una buena idea instalar el encabezado de Linux más nuevo? ¿Eso me permitirá instalar boost 1.62.0 sin recibir el error?

Respuesta1

Encontré lo siguiente en la primera referencia:

CentOS 5.2 viene con Boost 1.33.1

Si insistes en este enfoque hack, debes visitar elImpulsar versiones archivadasy busque la versión 1.33.1. Pero observe la fecha de lanzamiento:

Versión 1.33.1
5 de diciembre de 2006 12:00 GMT

Después de descargar la versión que se suponía que debía instalarse a través de yum, compílela en su directorio de inicio. No actualice su versión de GCC. Debido a la antigüedad de su sistema, las herramientas que intenta instalar están limitadas por la antigüedad de su cadena de herramientas arcaica.

En cualquier sistema que tenga un administrador de paquetes, el administrador de paquetes debeNUNCA SEA DESHABILITADO. Debería considerar una actualización del sistema operativo. Ver elrespuesta aceptada aquí. No debe actualizar sus archivos de encabezado hasta que actualice su kernel, y no puede actualizar el kernel hasta que yumesté restaurado.

Referencias

Especificaciones de RPM para Boost (libboost) RPM en CentOS 5.2

información relacionada