Компиляция новой библиотеки boost на linux с древним ядром

Я пытаюсь скомпилировать новейшую библиотеку boost (1.62.0) на системе Linux с ядром версии 2.6.18-92.1.13.el5 (из uname -r) и компилятором intel c++ 2016 года с использованием gcc 6.1.0.

Новый компилятор intel c++ и gcc установлены в подкаталоге моего домашнего каталога. Я использую старый glibc, возможно, такой же древний, как и ядро (ldd --version выдает ldd (GNU libc) 2.5).

Я получаю следующую ошибку для модуля потоков:

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,
                ^

Это единственная ошибка во всей компиляции.

Я не могу установить новое ядро на компьютер, потому что у меня нет root-доступа.

Является ли хорошей идеей установить новейший заголовок Linux? Позволит ли это мне установить boost 1.62.0 без возникновения ошибки?

-2
29.09.2016, 21:55
1 ответ

В первой ссылке я обнаружил следующее:

CentOS 5.2 поставляется с Boost 1.33.1

Если вы настаиваете на таком хакерском подходе, вам нужно посетить Boost Archived Versions и найти версию 1.33.1. Но обратите внимание на дату выпуска:

Версия 1.33.1
5 декабря 2006 г. 12:00 GMT

После загрузки версии, которая должна была быть установлена ​​через yum, соберите ее у себя дома. каталог. Не обновляйте версию GCC . Из-за возраста вашей системы инструменты, которые вы пытаетесь установить, ограничены возрастом вашей архаичной инструментальной цепочки.

В любой системе, имеющей диспетчер пакетов, диспетчер пакетов НЕ должен НИКОГДА БЫТЬ ОТКЛЮЧЕН . Вам следует подумать об обновлении ОС. См. принятый ответ здесь . Вы не должны обновлять файлы заголовков, пока не обновите ядро, и вы не можете обновить ядро ​​до восстановления yum .

Ссылки

Спецификация RPM для Boost (libboost) RPM в CentOS 5.2

0
28.01.2020, 05:18

Теги

Похожие вопросы