LINUX.ORG.RU

В свежее ядро 4.14.13 не приняли патч, который устраняет проблемы сборки в tools/lib/subcmd/pager.c

 


0

1

Сабж. Время идёт, а патч в ветку 4.14.x так и не принимают.

Проблема в 2-х словах:

pager.c:36:12: error: passing argument 2 to restrict-qualified
               parameter aliases with argument 4 [-Werror=restrict]
  select(1, &in, NULL, &in, NULL);
            ^~~        ~~~

Патч для устранения этой проблемы написал Sergey Senozhatsky (Seoul, Korea; Samsung Electronics Co., Ltd.) ещё 1-го января: https://patchwork.kernel.org/patch/10138399/ .

А ядро по умолчанию с -Werror=restrict собирается? Так то никакой ошибки в коде нет: содержимое in после select() не важно и нигде не используется.

Да, варнинг так или иначе надо убрать, но делать это в LTS, да ещё и в коде, который не относится непосредственно к ядру - явно не приоритетная задача.

mironov_ivan ★★★★★ ()
Последнее исправление: mironov_ivan (всего исправлений: 1)

Патч для устранения этой проблемы написал Sergey Senozhatsky (Seoul, Korea; Samsung Electronics Co., Ltd.) ещё 1-го января

Ибо нехер патчи с похмелья слать.

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

А ядро по умолчанию с -Werror=restrict собирается?

Явно эта опция в исходниках ядра не прописана. Вероятно, юзеры GCC до 8-й версии ничего и не заметили. А для GCC 8 это уже серьёзная ошибка.

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

Без ошибок. Заглянул в tools/lib/subcmd/Makefile и присмотрелся к содержимому. Там есть это:

CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
При этом, опции "-Wall" уже достаточно для предупреждения на этом коде. Но, бинарник собирается.

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

ну, по идее если в функции принимаются два разных указателя, то это два именно разных указателя. иначе на фейхоа? именно об этом и предупреждает компилятор. при оптимизации и распараллеливании выполнения при обращении к таким алиасам может возникнуть банальное UB.

Iron_Bug ★★ ()
Последнее исправление: Iron_Bug (всего исправлений: 1)