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
It think what happens here is:
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