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

Viewed 691

I try to compile coreutils on Ubuntu 18.4. Here is what I did so far:

sudo apt install bison gperf make textinfo

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

cd coreutils

./bootstrap

./configure

make

This ends in an error saying:

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 Answers

It think what happens here is:

  1. The compiler (configure) warns about potential (performance) issues.
  2. The build (make) handles all warnings as errors.

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


Possible workarounds

1. Suppress warnings at configure

./configure --disable-gcc-warnings

2. Do not treat certain warnings as error at make

make CFLAGS='-Wno-error=suggest-attribute=const'

This post lists some additional options:

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
Related