Eu sempre construí o kernel Linux com -Wall -Werror
para garantir que eu não perca nenhum aviso que eu apresentar durante o desenvolvimento. No entanto, parece que, a partir de 4.18, a compilação ARM padrão não será concluída com -Werror
devido a um syscall não implementado. Se eu remover -Werror
, a compilação será concluída com êxito.
É razoável esperar que o kernel construa com -Werror
habilitado? Isso deve ser relatado como um bug?
Etapas para reproduzir:
# Set PATH and CROSS_COMPILE to appropriate toolchain
# export CROSS_COMPILE=arm-linux-gnueabihf-
# export PATH=${TOOLCHAINDIR}/bin:${PATH}
ARCH=arm KCFLAGS="-Werror" make defconfig KBUILD_DEFCONFIG=ti_sdk_am3x_release_defconfig
ARCH=arm KCFLAGS="-Werror" make zImage
Erro encontrado:
$ ARCH=arm KCFLAGS="-Werror" make zImage
scripts/kconfig/conf --syncconfig Kconfig
/bin/sh: 1: Syntax error: "|" unexpected
CC kernel/bounds.s
CC arch/arm/kernel/asm-offsets.s
CALL scripts/checksyscalls.sh
<stdin>:1332:2: error: #warning syscall io_pgetevents not implemented [-Werror=cpp]
Eu encontrei outros relatórios dessa mesma falha ( assim ), mas nenhuma solução clara.