Не собирается klibc-1.5.15-r1[РЕШЕНО]

Пересобираю систему после перехода на gcc-4.5.1-r1.

Уперся в klibc. Помогите разобраться, чего ему не хватает.

Кусок вывода:

KLIBCCC usr/klibc/asprintf.o
In file included from usr/klibc/../include/sys/types.h:15:0,
                 from usr/klibc/../include/unistd.h:11,
                 from usr/klibc/../include/stdio.h:11,
                 from usr/klibc/vsnprintf.c:13:
linux/include/linux/posix_types.h:47:29: фатальная ошибка: asm/posix_types.h: Нет такого файла или каталогаIn file included from usr/klibc/../include/sys/types.h:15:0,
                 from usr/klibc/../include/unistd.h:11,
                 from usr/klibc/../include/stdio.h:11,
                 from usr/klibc/vsprintf.c:5:
linux/include/linux/posix_types.h:47:29: фатальная ошибка: asm/posix_types.h: Нет такого файла или каталога
Компиляция прервана.

Понятно, что не может найти asm/posix_types.h и что его нет там, где он должен быть. В /var/tmp/portage/dev-libs/klibc-1.5.15-r1/work/klibc-1.5.15/linux/include/ присутствует только asm-generic/posix_types.h

emerge --info

UPD

# eix -I linux-headers
[D] sys-kernel/linux-headers
...
Installed versions:  2.6.36!b!s{tbz2}(20:20:46 22.11.2010)

# eix -I sources
[D] sys-kernel/tuxonice-sources
...
Installed versions:  2.6.34-r6(2.6.34-r6)!b!s(07:15:13 24.10.2010)(symlink -build -deblob) 2.6.35-r5(2.6.35-r5)!b!s(19:35:56 23.10.2010)(symlink -build -deblob) 2.6.35-r6(2.6.35-r6)!b!s(19:10:20 25.10.2010)(symlink -build -deblob) 2.6.36(2.6.36)!b!s(22:40:52 27.10.2010)(symlink -build) 2.6.36-r1(2.6.36-r1)!b!s(18:32:55 18.11.2010)(symlink -build)

# eselect kernel list
Available kernel symlink targets:
  [1]   linux-2.6.34-tuxonice-r6
  [2]   linux-2.6.35-tuxonice-r5
  [3]   linux-2.6.35-tuxonice-r6
  [4]   linux-2.6.36-tuxonice
  [5]   linux-2.6.36-tuxonice-r1 *

UPD2
Проблема решена установкой klibc из git. Свежая версия нормально собралась с новым ядром.

Названный вами файл

Названный вами файл принадлежит пакету sys-kernel/linux-headers-2.6.36, попробуйте переустановить.

Я Gentoo & Funtoo

Я знаю об этом. И наличие

Я знаю об этом. И наличие нужного файла проверял. На всякий случай переустановил - результат тот же.

Судя по ebuild`у, klibc не использует заголовки sys-kernel/linux-headers. Отдельно распаковываются исходники ядра и заголовочные файлы берутся оттуда. И, ясно-понятно, нужного файла там нет. Отсюда и ошибка.

Так как же тогда заставить компилятор искать их в правильном месте?

Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!

Ядро не пробовали обновить до

Ядро не пробовали обновить до 2.6.36 ?

Ядро и так стоит 2.6.36 (но

Ядро и так стоит 2.6.36 (но загружено 2.6.34. это может быть причиной?), /usr/src/linux указывает в правильное место.

Да... вот еще что упомянуть забыл. С некоторых пор klibc перестал собираться, т. к. в ebuild намертво вшита связь с ядром 2.6.26 - явно устаревшим. И собираться с такой вот "зависимостью" он отказывался.

KV_MAJOR="2" KV_MINOR="6" KV_SUB="26"
PKV_EXTRA=""
if [ -n "${PKV_EXTRA}" ]; then
    PKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_SUB}+1))-${PKV_EXTRA}"
    PATCH_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}/patch-${PKV}.bz2"
fi
OKV="${KV_MAJOR}.${KV_MINOR}.${KV_SUB}"
KERNEL_URI="
    mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}/linux-${OKV}.tar.bz2
    mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}/testing/linux-${OKV}.tar.bz2"
...

Немного поразмыслив, решил это "недоразумение" поправить. Тогда стояло еще 2.6.34 ядро. Чуть изменил ebuild. И все нормально собралось с 34-м ядром.

Теперь обновил gcc и все. Не хочет собираться ни с 34, ни с 36.

Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!

Youshi написал(а): Да... вот

Youshi написал(а):
Да... вот еще что упомянуть забыл. С некоторых пор klibc перестал собираться, т. к. в ebuild намертво вшита связь с ядром 2.6.26 - явно устаревшим. И собираться с такой вот "зависимостью" он отказывался.

ыыы ))) klibc установлен... попробовал пересобрать...

>>> Emerging (1 of 1) dev-libs/klibc-1.5.15-r1
 * klibc-1.5.15.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                                                                                                                      [ ok ]
 * linux-2.6.26.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                                                                                                                      [ ok ]
 * Package:    dev-libs/klibc-1.5.15-r1
 * Repository: gentoo
 * Maintainer: 
 * USE:  amd64 elibc_glibc kernel_linux multilib userland_GNU video_cards_nvidia
>>> Unpacking source...
>>> Unpacking linux-2.6.26.tar.bz2 to /var/tmp/portage/dev-libs/klibc-1.5.15-r1/work
>>> Unpacking klibc-1.5.15.tar.bz2 to /var/tmp/portage/dev-libs/klibc-1.5.15-r1/work
 * Applying klibc-1.4.11-interp-flags.patch ...                                                                                                                              [ ok ]
 * Applying klibc-1.5-sigaction.patch ...                                                                                                                                    [ ok ]
 * Applying klibc-1.5.11-klibcasmarch.patch ...                                                                                                                              [ ok ]
 * Applying klibc-1.5.7-strip-fix-dash-s.patch ...                                                                                                                           [ ok ]
 * Applying klibc-1.5.11-x86_64-io.h-return.diff ...                                                                                                                         [ ok ]
>>> Source unpacked in /var/tmp/portage/dev-libs/klibc-1.5.15-r1/work
>>> Compiling source in /var/tmp/portage/dev-libs/klibc-1.5.15-r1/work/klibc-1.5.15 ...
make -j2 defconfig CC=gcc HOSTCC=x86_64-pc-linux-gnu-gcc 
Makefile:434: *** смешаны неявные и обычные правила.  Останов.
emake failed
 * ERROR: dev-libs/klibc-1.5.15-r1 failed:
 *   No defconfig
 * 
 * Call stack:
 *     ebuild.sh, line  56:  Called src_compile
 *   environment, line 2417:  Called die
 * The specific snippet of code:
 *       emake ${defconfig} CC="${CC}" HOSTCC="${HOSTCC}" || die "No defconfig";
 * 
 * If you need support, post the output of 'emerge --info =dev-libs/klibc-1.5.15-r1',
 * the complete build log and the output of 'emerge -pqv =dev-libs/klibc-1.5.15-r1'.
 * The complete build log is located at '/var/log/portage/dev-libs:klibc-1.5.15-r1:20101123-074834.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-libs/klibc-1.5.15-r1/temp/environment'.
 * S: '/var/tmp/portage/dev-libs/klibc-1.5.15-r1/work/klibc-1.5.15'

>>> Failed to emerge dev-libs/klibc-1.5.15-r1, Log file:

>>>  '/var/log/portage/dev-libs:klibc-1.5.15-r1:20101123-074834.log'
# equery d klibc
 * These packages depend on klibc:
media-gfx/splashutils-1.5.4.3-r3 (>=dev-libs/klibc-1.5)

может просто пока отказаться от splashutils? ))

Да, да, да... такая же ошибка

Да, да, да... такая же ошибка была до того, как поправил ебилд под 2.6.34. :)
Потом оно успешно собралось...

У меня уже тоже возникала мысль отказаться. Страшного в общем-то ничего не произойдет :)
Удалю, пожалуй до поры, до времени. :)

Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!

Youshi написал(а): Да, да,

Youshi написал(а):
Да, да, да... такая же ошибка была до того, как поправил ебилд под 2.6.34. :)
Потом оно успешно собралось...

У меня уже тоже возникала мысль отказаться. Страшного в общем-то ничего не произойдет :)
Удалю, пожалуй до поры, до времени. :)

не, погодь... если уж собралось с исправленным ебилдом, то кидай его в оверлей и попробуй как работает splashutils ;) если все работает, то поправь ебилд на использование исходников текущего ядра (того, что по ссылке /usr/src/linux) и выкладывай на bugs.gentoo.org !!! пусть разработчики голову ломают ;)

^_^

Раз уж вы не страшитеся "чуть изменять ebuild" и использовать gcc-4.5.1, то пройдёмте до конца -
набросайте нужных файлов в нужные директории, и попробуйте ещё раз!
(если потребуется, воспользуйтесь http://www.gentoo.org/doc/ru/handbook/handbook-x86.xml?part=3&chap=6)
и наведите порядок с eix, а то эти [D] раздражают

а эта строка - это просто подпись

n0nado написал(а): Раз уж вы

n0nado написал(а):
Раз уж вы не страшитеся "чуть изменять ebuild" и использовать gcc-4.5.1, то пройдёмте до конца -
набросайте нужных файлов в нужные директории, и попробуйте ещё раз!
(если потребуется, воспользуйтесь http://www.gentoo.org/doc/ru/handbook/handbook-x86.xml?part=3&chap=6)
и наведите порядок с eix, а то эти [D] раздражают

n0nado, ССЗБ :)

Знаете, не страшусь :) EIX

Знаете, не страшусь :)

EIX вроде поправил. Всегда полагал, что для его корректной работы достаточно eix-remote update.

Набросал, как Вы и советовали, файлов. И получил новую ошибку. И если до этого мне была более-менее понятна причина, то тут явно просматривается несовместимость версии ядра и klibc.

Что посоветуете?

Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!

попробуйте так

http://groups.google.com/group/linux.kernel/browse_thread/thread/6de65a3145007ae5?pli=1

а эта строка - это просто подпись

Если я правильно понял

Если я правильно понял написанное, <sys/socket.h> должен быть подключен раньше, чем заголовки ядра.
Однако:

# cat usr/include/netinet/in.h | grep include
#include <klibc/extern.h>
#include <stdint.h>
#include <endian.h>             /* Must be included *before* <linux/in.h> */
#include <sys/socket.h>         /* Must be included *before* <linux/in.h> */
#include <linux/in.h>

Вроде бы все верно?

Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!

а ты посмотри в

а ты посмотри в usr/klibc/inet/inet_addr.c

А что я должен там

А что я должен там увидеть?
#include <arpa/inet.h>

arpa/inet.h:

#include <klibc/extern.h>
#include <stdint.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <netinet/in6.h>

netinet/in.h:

#include <klibc/extern.h>
#include <stdint.h>
#include <endian.h>     /* Must be included *before* <linux/in.h> */
#include <sys/socket.h>     /* Must be included *before* <linux/in.h> */
#include <linux/in.h>

sys/socket.h:

#include <klibc/extern.h>
#include <klibc/compiler.h>
#include <klibc/sysconfig.h>
#include <linux/socket.h>
#if _KLIBC_HAS_ARCHSOCKET_H
#include <klibc/archsocket.h>

linux/socket.h:
typedef unsigned short sa_family_t;

а только потом следует #include <linux/in.h>. Вроде бы тип sa_family_t определен... Чего ему надо?

Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!

а ты уверен, что #include

а ты уверен, что

#include <sys/socket.h>

включает не

/usr/include/sys/socket.h

?

Нет. Не уверен. Но как это

Нет. Не уверен.
Но как это проверить?

Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!

.

ммм...

а эта строка - это просто подпись

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".