Error compiling coreutils - error: function might be candidate for attribute 'const' [-Werror=suggest-attribute=const]

Error compiling coreutils - error: function might be candidate for attribute 'const' [-Werror=suggest-attribute=const]

我尝试在 Ubuntu 18.4 上编译 coreutils。这是我到目前为止所做的:

sudo apt install bison gperf make textinfo

git clone git://git.sv.gnu.org/coreutils

cd coreutils

./bootstrap

./configure

make

这以错误结束:

lib/acl-internal.c: In function 'free_permission_context':
lib/acl-internal.c:479:1: error: function might be candidate for attribute 'const' [-Werror=suggest-attribute=const]
 free_permission_context (struct permission_context *ctx)
 ^~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
Makefile:9808: recipe for target 'lib/acl-internal.o' failed
make[2]: *** [lib/acl-internal.o] Error 1
make[2]: Leaving directory '/path/to/coreutils'
Makefile:12445: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/path/to/coreutils'
Makefile:6556: recipe for target 'all' failed
make: *** [all] Error 2

它认为这里发生的是:

  1. 编译器(配置)警告潜在的(性能)问题。
  2. 构建 (make) 将所有警告作为错误处理。

见: https://bug-coreutils.gnu.narkive.com/q14Ima4F/bug-32762-bug-at-coreutils-compile


可能的解决方法

1.抑制 configure

处的警告
./configure --disable-gcc-warnings

2。不要将 make

处的某些警告视为错误
make CFLAGS='-Wno-error=suggest-attribute=const'

This post 列出了一些附加选项:

I suggest using:

 -Wno-error=suggest-attribute=pure
 -Wno-error=suggest-attribute=const
 -Wno-error=suggest-attribute=noreturn
 -Wno-error=suggest-attribute=format
 -Wno-error=suggest-attribute=cold
 -Wno-error=suggest-attribute=malloc