(Решено) Препроцессор не проходит проверку работоспособности

Доброго времени суток. Копаясь в одном стареньком дистрибутиве столкнулся с данной проблемой при попытке собрать любую программу configure выдаёт следующую ошибку
$ ./configure
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... unsupported
checking for gcc option to enable C99 features... -std=gnu99
checking whether the compiler is clang... no
checking for compiler option needed when checking for declarations... none
checking dependency style of gcc -std=gnu99... gcc3
checking how to run the C preprocessor... /lib/cpp
configure: error: in `/home/chip/nano-5.0':
configure: error: C preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details

config.log

подобная ошибка и с другими программами например с bash

gcc g++ 4.5.2 установлены. Наверное весь гул перевернул но ответа нет
Chips
/home/chip/nano-5.0
readme.git
gcc –version> & 5
--
Chips
gcc/x86_64-slackware-linux/4.5.2
Это не только с nano 5.0 но и с nano 4х и nano 3х, а также с любой версией любой программы тем более nano 5 я собирал именно этим компилятором 4.5.2.
Chips
Это не только с nano 5.0 но и с nano 4х и nano 3х, а также с любой версией любой программы тем более nano 5 я собирал именно этим компилятором 4.5.2.
Предположу, что нет linux-headers … проверим - смотрим config.log и видим
/usr/include/bits/local_lim.h:39:26: fatal error: linux/limits.h: No such file or directory
compilation terminated.
sudo find / -name limits.h
… оставим только файлы linux/limits.h …
/usr/include/linux/limits.h
/usr/lib/modules/5.8.3-arch1-1/build/include/vdso/limits.h
/usr/lib/modules/5.8.3-arch1-1/build/include/uapi/linux/limits.h
/usr/lib/modules/5.8.3-arch1-1/build/include/linux/limits.h
и проверим каждый файл - или нет пакета или не те версии или …

pacman -Qo /usr/include/linux/limits.h
/usr/include/linux/limits.h принадлежит linux-api-headers 5.7-1
это нужно glibc - пока исключаем …

pacman -Qo /usr/lib/modules/5.8.3-arch1-1/build/include/vdso/limits.h
/usr/lib/modules/5.8.3-arch1-1/build/include/vdso/limits.h принадлежит linux-headers 5.8.3.arch1-1
pacman -Qo /usr/lib/modules/5.8.3-arch1-1/build/include/uapi/linux/limits.h
/usr/lib/modules/5.8.3-arch1-1/build/include/uapi/linux/limits.h принадлежит linux-headers 5.8.3.arch1-1
pacman -Qo /usr/lib/modules/5.8.3-arch1-1/build/include/linux/limits.h
/usr/lib/modules/5.8.3-arch1-1/build/include/linux/limits.h принадлежит linux-headers 5.8.3.arch1-1

Пакет linux-headers установлен? ... если установлен, смотри соответствие версий linux и linux-headers
Ошибки не исчезают с опытом - они просто умнеют
Chips
я собирал именно этим компилятором 4.5.2.
Та вроде на gcc вместе с glibc жалуется
Chips
Syntax error
configure:6224: /lib/cpp conftest.c
In file included from /usr/include/bits/posix1_lim.h:157:0,
from /usr/include/limits.h:145,
from /usr/lib64/gcc/x86_64-slackware-linux/4.5.2/include-fixed/limits.h:169,
from /usr/lib64/gcc/x86_64-slackware-linux/4.5.2/include-fixed/syslimits.h:7,
from /usr/lib64/gcc/x86_64-slackware-linux/4.5.2/include-fixed/limits.h:34,
from conftest.c:12:
/usr/include/bits/local_lim.h:39:26: fatal error: linux/limits.h: No such file or directory
compilation terminated.
—–
| Syntax error
configure:6165: gcc -std=gnu99 -E -traditional-cpp conftest.c
In file included from /usr/include/features.h:357:0,
from /usr/include/assert.h:38,
from conftest.c:15:
/usr/include/sys/cdefs.h:32:3: error: #error "You need a ISO C conforming compiler to use the glibc headers"
configure:6165: $? = 1
configure: failed program was

И версию headers проверить как vasek говорит
А вообще, в большинстве случаев, одной ошибкой редко отделываешься - если уж не повезло, то не повезло ...
Обычно идет многоступенчатый процесс - исправляешь ошибку за ошибкой.
Ошибки не исчезают с опытом - они просто умнеют
vasek
А вообще, в большинстве случаев, одной ошибкой редко отделываешься - если уж не повезло, то не повезло …
Обычно идет многоступенчатый процесс - исправляешь ошибку за ошибкой.

И то правда я вначале binutils забыл поставить получил ошибку отсутствия ассемблера
gcc: error trying to exec 'as': execvp Нет такого файла или каталога

теперь вот это при том условии что если ставить фулл установку всё работает а вот с минималкой вот такие танци с бубном причём не помогает вариант с установкой всех пакетом из полной версии вот список пакетов для полной и минимальной установки

sudo find / -name limits.h


/usr/include/c++/4.5.2/tr1/limits.h
/usr/include/limits.h
/usr/lib64/syslinux/com32/include/limits.h
/usr/lib64/syslinux/com32/include/bitsize/limits.h
/usr/lib64/gcc/x86_64-slackware-linux/4.5.2/include-fixed/limits.h
/usr/lib64/gcc/x86_64-slackware-linux/4.5.2/install-tools/include/limits.h
/usr/src/linux-3.12.2/arch/arm/include/asm/limits.h
/usr/src/linux-3.12.2/include/uapi/linux/limits.h
Chips
sudo find / -name limits.h

/usr/include/c++/4.5.2/tr1/limits.h
/usr/include/limits.h
/usr/lib64/syslinux/com32/include/limits.h
/usr/lib64/syslinux/com32/include/bitsize/limits.h
/usr/lib64/gcc/x86_64-slackware-linux/4.5.2/include-fixed/limits.h
/usr/lib64/gcc/x86_64-slackware-linux/4.5.2/install-tools/include/limits.h
/usr/src/linux-3.12.2/arch/arm/include/asm/limits.h
/usr/src/linux-3.12.2/include/uapi/linux/limits.h

Разбираться с чужим довольно сложно, но обычно, не считая обычных программных ошибок компиляции, не хватает или пакетов или перепутаны версии
Для удобства разбил твой вывод на 3 группы
/usr/include/c++/4.5.2/tr1/limits.h
/usr/include/limits.h

/usr/lib64/syslinux/com32/include/limits.h
/usr/lib64/syslinux/com32/include/bitsize/limits.h
/usr/lib64/gcc/x86_64-slackware-linux/4.5.2/include-fixed/limits.h
/usr/lib64/gcc/x86_64-slackware-linux/4.5.2/install-tools/include/limits.h

/usr/src/linux-3.12.2/arch/arm/include/asm/limits.h
/usr/src/linux-3.12.2/include/uapi/linux/limits.h
и привожу для сравнения свой вывод, тоже разбитый на 3 группы
/usr/include/c++/10.2.0/tr1/limits.h -------------------------------------------- принадлежит gcc 10.2.0-1
/usr/include/limits.h -------------------------------------------------------------- принадлежит glibc 2.32-2
/usr/include/linux/limits.h ------------------------------------------------------- принадлежит linux-api-headers 5.7-1

/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/install-tools/include/limits.h --- принадлежит gcc 10.2.0-1
/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include-fixed/limits.h ----------- принадлежит gcc 10.2.0-1

/usr/lib/modules/5.8.3-arch1-1/build/include/vdso/limits.h ---------------- принадлежит linux-headers 5.8.3.arch1-1
/usr/lib/modules/5.8.3-arch1-1/build/include/uapi/linux/limits.h ---------- принадлежит linux-headers 5.8.3.arch1-1
/usr/lib/modules/5.8.3-arch1-1/build/include/linux/limits.h ---------------- принадлежит linux-headers 5.8.3.arch1-1
Навскидку: настораживает отсутствие в 1-ой группе /usr/include/linux/limits.h (linux-api-headers) и большие сомнения в файлах 2-ой группы - почему у тебя только /usr/lib64/...? - а где нормальные /usr/lib/...?
Также не понятно, что за файлы в этой группе - каким пакетам принадлежат?
/usr/lib64/syslinux/com32/include/limits.h
/usr/lib64/syslinux/com32/include/bitsize/limits.h
Вообщем, посмотри внимательнее ....
Ошибки не исчезают с опытом - они просто умнеют
vasek
Спасибо ваш совет мне очень помог косяк оказался скорее всего в том что я установил ядро 3.12.2 (ну плюс может быть ещё какие не будь либы не стоило обновлять) стоило откатить его до 3.6.11 как всё начало работать.
vasek
Также не понятно, что за файлы в этой группе - каким пакетам принадлежат?
/usr/lib64/syslinux/com32/include/limits.h
/usr/lib64/syslinux/com32/include/bitsize/limits.h
это скорее всего заголовки из syslinux

что касается /usr/lib/ и /usr/lib64/ то тут всё устроенно как в fedora centos не знаю как в слаке но этот дистр основан на ней может быть там тоже так
 
Зарегистрироваться или войдите чтобы оставить сообщение.