LINUX.ORG.RU

Проблема со сборкой ruby

 , ,


0

1

Не собираются пакеты. Думаю, что ошибка где-то на поверхности. Не могу понять в чем дело. Лог ниже. Debian.

$ make
	CC = gcc
	LD = ld
	LDSHARED = gcc -shared
	CFLAGS = -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=implicit-function-declaration 
	XCFLAGS = -include ruby/config.h -include ruby/missing.h -fvisibility=hidden -DRUBY_EXPORT
	CPPFLAGS =   -I. -I.ext/include/i686-linux -I./include -I.
	DLDFLAGS =  
	SOLIBS = 
compiling dir.c
In file included from /usr/include/bits/errno.h:25,
                 from /usr/include/errno.h:36,
                 from dir.c:53:
/usr/include/linux/errno.h:4:23: error: asm/errno.h: No such file or directory
dir.c: In function ‘dir_initialize’:
dir.c:421: error: ‘EMFILE’ undeclared (first use in this function)
dir.c:421: error: (Each undeclared identifier is reported only once
dir.c:421: error: for each function it appears in.)
dir.c:421: error: ‘ENFILE’ undeclared (first use in this function)
dir.c: In function ‘do_stat’:
dir.c:1031: error: ‘ENOENT’ undeclared (first use in this function)
dir.c:1031: error: ‘ENOTDIR’ undeclared (first use in this function)
dir.c: In function ‘do_lstat’:
dir.c:1041: error: ‘ENOENT’ undeclared (first use in this function)
dir.c:1041: error: ‘ENOTDIR’ undeclared (first use in this function)
dir.c: In function ‘do_opendir’:
dir.c:1062: error: ‘ENOENT’ undeclared (first use in this function)
dir.c:1062: error: ‘ENOTDIR’ undeclared (first use in this function)
make: *** [dir.o] Error 1

Ответ на: комментарий от mrnobody

Т.е. несколько часов назад всё собралось. Теперь я хочу это грохнуть, соответственно сделать checkinstall и uninstall затем. А потом через rvm ставить, но на данный момент rvm так же ругается. Что-то тронул кривой рукой по ходу пьесы, не могу понять, но скорее всего что-то тривиальное...

mrnobody ()
Ответ на: комментарий от Spirit_of_Stallman

Но у меня нет в сорцах дирректории asm. Есть только asm-generic (к слову там лежит errno.h). Сейчас попробую туда симлинк сделать.

mrnobody ()
Ответ на: комментарий от mrnobody

На него тоже должен быть симлинк.
Обычно так:

ln -s /usr/src/${твоё ядро}/include/asm-i386/ /usr/include/asm
ln -s /usr/src/${твоё ядро}/include/asm-generic /usr/include/asm-generic
asm-i386, как понимаю, нету?
UPD: посмотрел, у меня то тоже нету asm-i386. что-то тут не то

Spirit_of_Stallman ★★★ ()
Последнее исправление: Spirit_of_Stallman (всего исправлений: 2)
Ответ на: комментарий от Spirit_of_Stallman

У меня asm-x86. Лежал в сорцы-common. А asm-generic в сорцы-${моё ядро}. Только после создания симлинков надо было еще ./configure сделать. Сейчас жду результат компиляции. И похоже, что прокатит ибо долго, так что радует.

mrnobody ()
Ответ на: комментарий от mrnobody

А что за версия дебиана?

У меня Wheezy и

$ ls -l /usr/include | grep asm
lrwxrwxrwx  1 root root      20 Jun 26  2012 asm -> x86_64-linux-gnu/asm
$ ls -l /usr/include/x86_64-linux-gnu/asm/errno.h 
-rw-r--r-- 1 root root 31 Dec 19 15:50 /usr/include/x86_64-linux-gnu/asm/errno.h
вроде, всё, как должно быть.

gag ★★★★★ ()
Ответ на: комментарий от mrnobody

Замечательно.
На светлое будущее - добавляйте теги, ибо я, к примеру случайно заметил тему, а на тег «ruby» сюда бы не мало более толковых людей заглянуло, по уведомлению.

Spirit_of_Stallman ★★★ ()
Ответ на: комментарий от Ginki

Сегодня эту версию поднимал на Lubuntu через rvm

Сейчас модно использовать rubyenv.

GreenBag ★★ ()
Ответ на: комментарий от mrnobody

Так вышеупомянутый баг к тестинг относится, где на мультилиб перешли, и забыли линк. А в стэйбле errno.h находится по-прежнему на своём месте, если установлен linux-libc-dev:

Файл                       Packages
/usr/include/asm/errno.h   linux-libc-dev

gag ★★★★★ ()

-O3

Ещё один ССЗБ.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.