nixp.ru v3.0

20 октября 2017,
пятница,
21:01:16 MSK

DevOps с компанией «Флант»
Аватар пользователя vovans
vovans написал 23 ноября 2004 года в 13:14 (694 просмотра) Ведет себя как мужчина; открыл 27 тем в форуме, оставил 418 комментариев на сайте.

Дистр — Слака 10.0

Проблема такая.

Пытаюсь запустить ./configure, а оно мне --

checking how to run the C preprocessor… /lib/cpp

configure: error: C preprocessor «/lib/cpp» fails sanity check

See `config.log' for more details.

В логе ничего особенного не обнаружил (кроме configure: exit 1).

CC=’gcc'

CCDEPMODE=’depmode=gcc3\′

CFLAGS=’-g -O2\′

CPP=’/lib/cpp'

CPPFLAGS=»

CXX=»

CXXCPP=»

CXXDEPMODE=»

CXXFLAGS=»

За день перед эим пересобирал GCC из исходников, прилагающихся к дистру скриптами самого дистра. После установки оного я скомпилил ещё несколько прог и всё было Ок.

Потом я поставил module-init-tools-3.1-pre6.tar.bz2 скомпилил новое ядро (2.4.28), перегрузил машину, после стало постоянно выдавать приведённую выше ошибку :(

Вернулся к ядру 2.4.26, вернул родной gcc, module-init-tools. Ничего не помогает :(

Что это может быть и куда копать?

Genie

ммм.. а в гугле://"configure: error: C preprocessor «/lib/cpp» fails sanity check» ответа не нашлось? вроде бы как море инфы выдаётся…

vovans

Да нет траффа на гугл…

На вчера у меня 10 метров было :(

А в гугле как правило вся инфа на инглише… и прочих языках… И ссылки бывают на таакие форумы, которые трафф вытягивают, как воду с крана ;) Это ж вам не на никспе :) Спасибо шурупу! ;) Уж очень лёгкий движок!

Так ничего более конкретного?

Genie

В общем случае, ответ такой: ты пытаешься компилировать программу, которая работает с ядром, компилятором отличной версии от той, которой компилировалось ядро. Проблема тут довольно-таки хитрая и сразу не понятная, но — качественная.

Допустим, что в какой-то версии компилятора (a.b.c), структура из {int8, int16, int8} занимала по умолчанию 4 смежных байта. А в одной из следующих версий (a.b.d), — она стала занимать 12 байт (оптимизация по скорости).

Да, сказем, строчка `#pragma pack(1)` вернёт всё на место. Только перелопачивать самому…. Ленива ж.

Где-то что-то у тебя старого затесалось. В смысле — не той версии.

Более точно это надо копаться в гугле, что мне дома, по gprs, делать ну никак не хочется ;)

vovans

Попробую сам себе ответить :о)

Не установлен препроцессор C, скорее всего.

Наберите gcc -v, узнаете версию Вашего компилятора, поставьте для него

соответствующий препроцессор. Наприме, если у Вас gcc 2.96, то ставить

надо пакет с именем cpp2.96.

Дело в том, что при сборке пакетов вручную выскакивало несколько ошибок. НО кто знает, как в Слаке собираются пакеты оригинальными скриптами, тот так же знает, что ошибки игнорируються…. А после того, как обнаружилась ошибка, я решил вернуть оригинальные пакеты. Только я не стал искать срр, забыв, что есть таковой… И переуустановил только пакеты ГЦЦ. Вот. Осталось подождать 320 минут, пока освободится дивидишник, тогда и проверим :о)

vovans

Ненашёл я никакого срр у себя :(

Проблема осталась…

metal
preprocessor «/lib/cpp»

Смотрю у себя: whereis cpp; cpp: /opt/gcc/bin/cpp, а почему такой странный путь /lib/cpp?

vovans

Да это всего лишь ссылка. Проблема-то не в этом. Вот в чём только?

$ whereis cpp
cpp: /usr/bin/cpp /lib/cpp /usr/man/man1/cpp.1.gz /usr/share/man/man1/cpp.1.gz