LINUX.ORG.RU

Сборка утилиты из исходников под Linux 3.11

 , ,


0

1

Не программист. Пытаюсь это собрать из под Linux ubuntu 3.11.0-15-generic. Мэйкаю, выпадает:

reddyard@ubuntu:~/canethgw$ make
make -C /lib/modules/3.11.0-15-generic/build M=/home/reddyard/canethgw modules
make[1]: Entering directory `/usr/src/linux-headers-3.11.0-15-generic'
  CC [M]  /home/reddyard/canethgw/src/ce_gw_main.o
/home/reddyard/canethgw/src/ce_gw_main.c: In function ‘ce_gw_remove_route’:
/home/reddyard/canethgw/src/ce_gw_main.c:988:61: error: macro "hlist_for_each_entry_safe" passed 5 arguments, but takes just 4
/home/reddyard/canethgw/src/ce_gw_main.c:988:2: error: ‘hlist_for_each_entry_safe’ undeclared (first use in this function)
/home/reddyard/canethgw/src/ce_gw_main.c:988:2: note: each undeclared identifier is reported only once for each function it appears in
/home/reddyard/canethgw/src/ce_gw_main.c:989:2: error: expected ‘;’ before ‘{’ token
/home/reddyard/canethgw/src/ce_gw_main.c:986:25: warning: unused variable ‘nx’ [-Wunused-variable]
/home/reddyard/canethgw/src/ce_gw_main.c:986:21: warning: unused variable ‘n’ [-Wunused-variable]
/home/reddyard/canethgw/src/ce_gw_main.c:985:20: warning: unused variable ‘gwj’ [-Wunused-variable]
/home/reddyard/canethgw/src/ce_gw_main.c: In function ‘list_jobs’:
/home/reddyard/canethgw/src/ce_gw_main.c:1077:61: error: macro "hlist_for_each_entry_safe" passed 5 arguments, but takes just 4
/home/reddyard/canethgw/src/ce_gw_main.c:1077:2: error: ‘hlist_for_each_entry_safe’ undeclared (first use in this function)
/home/reddyard/canethgw/src/ce_gw_main.c:1078:2: error: expected ‘;’ before ‘{’ token
/home/reddyard/canethgw/src/ce_gw_main.c:1073:25: warning: unused variable ‘nx’ [-Wunused-variable]
/home/reddyard/canethgw/src/ce_gw_main.c:1073:21: warning: unused variable ‘n’ [-Wunused-variable]
/home/reddyard/canethgw/src/ce_gw_main.c:1072:20: warning: unused variable ‘gwj’ [-Wunused-variable]
/home/reddyard/canethgw/src/ce_gw_main.c: In function ‘test_hash_list’:
/home/reddyard/canethgw/src/ce_gw_main.c:1140:52: error: macro "hlist_for_each_entry" passed 4 arguments, but takes just 3
/home/reddyard/canethgw/src/ce_gw_main.c:1140:2: error: ‘hlist_for_each_entry’ undeclared (first use in this function)
/home/reddyard/canethgw/src/ce_gw_main.c:1141:2: error: expected ‘;’ before ‘{’ token
/home/reddyard/canethgw/src/ce_gw_main.c:1138:25: warning: unused variable ‘nx’ [-Wunused-variable]
/home/reddyard/canethgw/src/ce_gw_main.c:1138:21: warning: unused variable ‘n’ [-Wunused-variable]
/home/reddyard/canethgw/src/ce_gw_main.c:1137:20: warning: unused variable ‘gwj’ [-Wunused-variable]
/home/reddyard/canethgw/src/ce_gw_main.c: In function ‘ce_gw_remove_route’:
/home/reddyard/canethgw/src/ce_gw_main.c:1008:1: warning: control reaches end of non-void function [-Wreturn-type]
make[2]: *** [/home/reddyard/canethgw/src/ce_gw_main.o] Error 1
make[1]: *** [_module_/home/reddyard/canethgw] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.11.0-15-generic'
make: *** [modules] Error 2

Пакет с хедерами для ядра поставил. На уровне предположения: hlist_for_each_*** должны подтянуться вместе с заголовочниками, прав я или не прав?

Requirements:

 * gcc (>=4.7)
 * Kernel (>=3.6) for the necessary LinuxCan code.
 * Kernel == 3.8. Due to tree function changes this version of can-eth-gw will only compile at this Kernel version. But it should be modifiable for other verions.

https://github.com/can-eth-gw/can_eth_gw/blob/master/INSTALL.md

Написано, что эта версия соберётся только на linux-3.8.

anonymous
()

Принято. Я вообще-то просто считал, что ДО 3.8 можно. На 4.4 уже пытался собирать, мейк на другое ругался.

reddyard
() автор топика

Попытка собрать на ubuntu 12.04:

reddyard@reddyard:~/can_eth_gw-master$ make
make -C /lib/modules/3.8.0-19-generic/build M=/home/reddyard/can_eth_gw-master modules
make[1]: Entering directory `/usr/src/linux-headers-3.8.0-19-generic'
  CC [M]  /home/reddyard/can_eth_gw-master/src/ce_gw_main.o
/home/reddyard/can_eth_gw-master/src/ce_gw_main.c: In function ‘test_hash_list’:
/home/reddyard/can_eth_gw-master/src/ce_gw_main.c:1136:25: warning: unused variable ‘nx’ [-Wunused-variable]
  CC [M]  /home/reddyard/can_eth_gw-master/src/ce_gw_dev.o
  CC [M]  /home/reddyard/can_eth_gw-master/src/ce_gw_netlink.o
  LD [M]  /home/reddyard/can_eth_gw-master/out/ce_gw.o
ld: cannot open output file /home/reddyard/can_eth_gw-master/out/ce_gw.o: No such file or directory
make[2]: *** [/home/reddyard/can_eth_gw-master/out/ce_gw.o] Error 1
make[1]: *** [_module_/home/reddyard/can_eth_gw-master] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.8.0-19-generic'
make: *** [modules] Error 2
Что такое очевидное я упускаю? Ну не бесконечной переборкой дистрибутивов это ведь решается, ну

***ОФФТОП***

А [кат][/кат] у меня одного не работает?

reddyard
() автор топика
Ответ на: комментарий от reddyard
ld: cannot open output file /home/reddyard/can_eth_gw-master/out/ce_gw.o: No such file or directory

Белым же по чёрному написано: не могу записать выходной файл. В каких случаях это происходит? Когда нет каталога или нет прав на запись в него. Скорее всего нужно просто создать /home/reddyard/can_eth_gw-master/out. А вообще я бы на твоём месте к говну которое требует для сборки определённой версии ядра даже близко бы не подходил.

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

Лол что? Любой драйвер требует для сборки определённых версий ядра, тк апи ядра нестабильно.

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

Но при этом нормально спроектированные драйвера собираются без модификаций на ядрах 3.х - 4.х

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

нормально спроектированные драйвера

Это означает «тащат за собой солидный слой совместимости с разными версиями API» и «реализуют копии базовые библиотечные функции сами».

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