LINUX.ORG.RU

Werror=unused-function при сборке

 ,


0

1

Собственно есть Centos7. Надо собрать ядро, так как нужен IMQ. Пропатчил. Начинаю сборку и почти сразу получаю

net/core/skbuff.c:155:13: error: 'skb_copy_stored_cb' defined but not used [-Werror=unused-function]
 static void skb_copy_stored_cb(struct sk_buff *new, const struct sk_buff *__old)
             ^
cc1: all warnings being treated as errors
make[2]: *** [net/core/skbuff.o] Error 1
make[1]: *** [net/core] Error 2
make: *** [net] Error 2
make: *** Waiting for unfinished jobs....

Как и где указать, чтоб игнорировались эти ошибки? Пытался добавить --disable-werror в /usr/lib/rpm/macros, ~/.rpmmacros и /usr/lib/rpm/redhat/macros

rpm --eval %configure

выдает

./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu \
        --program-prefix= \
        --disable-dependency-tracking \
        --prefix=/usr \
        --disable-werror \
        --exec-prefix=/usr \
        --bindir=/usr/bin \
        --sbindir=/usr/sbin \
        --sysconfdir=/etc \
        --datadir=/usr/share \
        --includedir=/usr/include \
        --libdir=/usr/lib64 \
        --libexecdir=/usr/libexec \
        --localstatedir=/var \
        --sharedstatedir=/var/lib \
        --mandir=/usr/share/man \
        --infodir=/usr/share/info

но все равно сборка спотыкается. Как выключить эту заразу?

★★

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

Найти какой макрос прячет использование этой функции и обволочь этим же макросом её определение. Дополнительный плюс к ЧСВ после отправки патча мейнтейнерам.

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

Так не могу найти, целый день потерял, потом решил тут спросить, может кто сталкивался. Неужели никому не приходилось с другими флагами в редхатоподобных дистрах собирать пакеты? А потом кто-то что-то говорит в сторону дебианоподобных. То что тут я пытаюсь второй день делать, на дебиане собрал за час, с учетом времени сборки.

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

То есть ты по центосовскому мануалу собираешь центосовское ядро, и оно не собирается на коде, который ты не патчил?

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

Если это единственная ошибка, то можно найти, где в патче определяется эта ненужная функция и просто удалить её. Патч состоит из hunk'ов вида:

@@ -1200,8 +1222,8 @@ static void send_word(sync_port* port)
                REG_WR(sser, port->regi_sser, rw_tr_data, tr_data);
                if (port->out_rd_ptr >= port->out_buffer + OUT_BUFFER_SIZE)
                        port->out_rd_ptr = port->out_buffer;
+               break;
        }
-       break;
        case 16:
                port->out_buf_count -= 2;
                tr_data.data = *(unsigned short *)port->out_rd_ptr;
@@ -1233,27 +1255,28 @@ static void send_word(sync_port* port)

Hunk можно удалить, от @@ до второго @@. Второй @@ - это, соответственно, начало другого hunk'а.

Если всё сложней, то осваивать diff, quilt, git... Немного муторней, но тоже несложно.

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

Ну это понятно. Этот участок я для примера привел, его я уже убрал. Но в патче куча таких мест. Тем более это не очень критичные. Я же думал, что есть способ заставить игнорировать такие ошибки.

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

Добавь в .spec ещё один патч, который убирает -Werror из Makefile.

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