LINUX.ORG.RU
ФорумAdmin

latest iproute2: не собирается tc


0

0

Беру исходники отсюда http://developer.osdl.org/dev/iproute2/download/

iproute2-2.6.11-050330.tar.gz собирается как положено.

iproute2-2.6.14, -2.6.15, -2.6.16 собираются без утилиты tc. Судя по выводу, оно даже пытается скомпиллировать tc, но бинарника в результате нету.

А почему, кто в курсе?

Slackware 10.0.0, Slackware 10.2.0

★★★★★

Попробуй вот этот патч:

=== BEGIN iproute-config.patch ===
diff -ruN iproute2-2.6.14-051107.org/tc/emp_ematch.y iproute2-2.6.14-051107/tc/emp_ematch.y
--- iproute2-2.6.14-051107.org/tc/emp_ematch.y  2005-12-05 19:09:56.000000000 +1000
+++ iproute2-2.6.14-051107/tc/emp_ematch.y      2005-12-05 19:10:15.000000000 +1000
@@ -8,7 +8,6 @@

 %locations
 %token-table
-%error-verbose
 %name-prefix="ematch_"

 %union {

=== END iproute-config.patch ===

Потенциально на слаке проблемы могут также возникнуть на этапе сборки arpd
при линкове с библиотекой db. Поскольку в слаке можно поставить db
разных версий -  и 3, и 4 - приходиться также патчить Makefile и
misc/Makefile под свой конкретный случай. У себя я делаю это так:

=== BEGIN iproute-config.patch ===
diff -ruN iproute2-2.6.14-051107.org/Makefile iproute2-2.6.14-051107/Makefile
--- iproute2-2.6.14-051107.org/Makefile 2005-12-05 19:09:56.000000000 +1000
+++ iproute2-2.6.14-051107/Makefile     2005-12-05 19:10:15.000000000 +1000
@@ -1,11 +1,11 @@
 DESTDIR=
-SBINDIR=/usr/sbin
+SBINDIR=/sbin
 CONFDIR=/etc/iproute2
-DOCDIR=/usr/share/doc/iproute2
-MANDIR=/usr/share/man
+DOCDIR=/usr/doc/iproute2-2.6.14-051107
+MANDIR=/usr/man

 # Path to db_185.h include
-DBM_INCLUDE:=/usr/include
+DBM_INCLUDE:=/usr/include/db4

 DEFINES= -DRESOLVE_HOSTNAMES

diff -ruN iproute2-2.6.14-051107.org/misc/Makefile iproute2-2.6.14-051107/misc/Makefile
--- iproute2-2.6.14-051107.org/misc/Makefile    2005-12-05 19:09:56.000000000 +1000
+++ iproute2-2.6.14-051107/misc/Makefile        2005-12-05 19:11:02.000000000 +1000
@@ -19,7 +19,7 @@
        $(CC) $(CFLAGS) $(LDFLAGS) -o rtacct rtacct.c $(LIBNETLINK) -lm

 arpd: arpd.c
-       $(CC) $(CFLAGS) -I$(DBM_INCLUDE) $(LDFLAGS) -o arpd arpd.c $(LIBNETLINK) -ldb -lpthread
+       $(CC) $(CFLAGS) -I$(DBM_INCLUDE) $(LDFLAGS) -o arpd arpd.c $(LIBNETLINK) -ldb4 -lpthread

 ssfilter.c: ssfilter.y
        bison ssfilter.y -o ssfilter.c
diff -ruN iproute2-2.6.14-051107.org/tc/emp_ematch.y iproute2-2.6.14-051107/tc/emp_ematch.y
--- iproute2-2.6.14-051107.org/tc/emp_ematch.y  2005-12-05 19:09:56.000000000 +1000
+++ iproute2-2.6.14-051107/tc/emp_ematch.y      2005-12-05 19:10:15.000000000 +1000
@@ -8,7 +8,6 @@

 %locations
 %token-table
-%error-verbose
 %name-prefix="ematch_"

 %union {

=== END iproute-config.patch ===


Обрати внимание на две вещи:
1. я правлю пути для размещения бинарей в системе на привычные мне
2. предыдущий патч сюда также входит

Сейчас выкачал свежий iproute2, попытался собрал с этим
патчем - собрался без вопросов. Если в системе используется db3 вместо
db4 - поправь DBM_INCLUDE и опции компиляции arpd.c

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