| Cost | $0.021 |
| Total elapsed time | 1m14s |
| LLM inference time | 55s |
| Command execution time | 19s |
| Commands executed | 31 |
All details >
| Attempt ID | ntv1i1pe675zq | Attempt group | run-16-09-22-05 |
| Revision | fb5c74bd2fee | AWS Instance | m8i.2xlarge |
| Start time | 2025-09-16T21:55:51.778Z | End time | 2025-09-16T21:57:06.694Z |
| Task | coreutils-old-version-alpine | Environment | alpine-3.22.1-amd64-offline |
| Model | | OpenRouter slug | x-ai/grok-code-fast-1 |
| Temperature | 1 | Explicit prompt caching | false |
| User msg after tool call | false | Max tool calls | 200 |
| Total timeout seconds | 2400 | Single command timeout | 900 |
| Cost | $0.021 | Duration | 1m14s |
| LLM inference time | 55s | Command execution time | 19s |
| Final context tokens | 24,662 | Total output tokens | 3,762 |
| Output reasoning tokens | 2,409 | Messages | 65 |
| Assistant messages | 32 | User messages | 1 |
| System messages | 1 | Commands executed | 31 |
GNU coreutils 5.0 (from 2003) is a collection of Linux utilities like ls, cp, mv, etc.
Project link: gnu.org/software/coreutils
Task:
Compile and install all coreutils utilities to a specific location.
Difficulties:
The source is very old (2003) and requires heavy patching. On Alpine Linux (with musl) the code requires even more patching.
Environment:
Alpine Linux 3.22.1 on amd64, without internet access.
You are a package-building specialist operating a Alpine Linux 3.22.1 bash shell via one tool: run_terminal_cmd.
The current working directory of every run_terminal_cmd is /home/peter.
Execution rules:
- Always pass non-interactive flags for any command that could prompt (e.g., -y, --yes).
- Don't include any newlines in the command.
- The environment is offline, assume you have all the necessary tools already installed.
If you encounter any errors or issues while doing the user's request, you must fix them and continue the task.
At the end verify you did the user request correctly.
You are given a coreutils v5.0 source code at /home/peter/coreutils.tar.gz. Please compile the coreutils package and install it to /home/peter/result. Create symlinks for all coreutils utilities so they are available under /home/peter/result/
Show reasoning
The user wants me to compile coreutils v5.0 from /home/peter/coreutils.tar.gz and install it to /home/peter/result. Then, create symlinks for all coreutils utilities so they are available under /home/peter/result/
Compiling coreutils
- The task is to compile coreutils version 5.0 from the file /home/peter/coreutils.tar.gz.
- The installation destination is /home/peter/result, where the compiled utilities will be placed.
Creating symlinks
- After compilation, symlinks need to be created for all coreutils utilities.
- Each symlink, like /home/peter/result/uptime, will point to its corresponding binary, making utilities easily accessible.
Compiling coreutils
- Extract the tar.gz file using tar -xzf coreutils.tar.gz in /home/peter to access the source code.
- Run ./configure --prefix=/home/peter/result to set the install directory, ensuring autotools prepares for compilation.
- Build the utilities with make, then install them using make install to place binaries in /home/peter/result/bin/.
- Ensure /home/peter/result exists first; use mkdir -p if needed, though configure should create it.
[empty output]
Show reasoning
The tar command ran with no output, which is normal for successful extraction.
compile-bench> ls -la total 5896
drwxr-sr-x 1 peter peter 4096 Sep 16 21:55 .
drwxr-xr-x 1 root root 4096 Sep 15 10:20 ..
drwxr-sr-x 11 peter peter 4096 Sep 16 21:55 coreutils-5.0
-rw-r--r-- 1 peter peter 6020616 Sep 16 21:55 coreutils.tar.gz
↓ 6 lines
total 5896 drwxr-sr-x 1 peter peter 4096 Sep 16 21:55 . drwxr-xr-x 1 root root 4096 Sep 15 10:20 .. drwxr-sr-x 11 peter peter 4096 Sep 16 21:55 coreutils-5.0 -rw-r--r-- 1 peter peter 6020616 Sep 16 21:55 coreutils.tar.gz
Show reasoning
Good, it's coreutils-5.0.
compile-bench> cd coreutils-5.0 && ./configure --prefix=/home/peter/result checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking for perl5.003 or newer... no
configure: WARNING:
WARNING: You don't seem to have perl5.003 or newer installed, or you lack
a usable version of the Perl File::Compare module. As a result,
you may be unable to run a few tests or to regenerate certain
files if you modify the sources from which they are derived.
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking whether gcc needs -traditional... no
checking for ranlib... ranlib
checking whether ln -s works... yes
checking for AIX... no
checking for ANSI C header files... no
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking for uname... yes
checking for chroot... yes
checking for gethostid... yes
checking for strerror in -lcposix... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for _LARGE_FILES value needed for large files... no
checking for gcc option to accept ANSI C... none needed
checking for function prototypes... yes
checking for ANSI C header files... (cached) no
checking for string.h... (cached) yes
checking whether byte ordering is bigendian... no
checking for an ANSI C-conforming const... yes
checking for working volatile... yes
checking for inline... inline
checking for working long double with more range or precision than double... no
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking float.h usability... yes
checking float.h presence... yes
[command output truncated]
checking for getspnam... yes
checking for library containing crypt... none required
checking for msgfmt... no
checking for gmsgfmt... :
checking for xgettext... no
checking for msgmerge... no
checking whether NLS is requested... yes
checking for GNU gettext in libc... no
checking for iconv... (cached) yes
checking for GNU gettext in libintl... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating lib/Makefile
config.status: creating man/Makefile
config.status: creating m4/Makefile
config.status: creating po/Makefile.in
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating tests/basename/Makefile
config.status: creating tests/chgrp/Makefile
config.status: creating tests/chmod/Makefile
config.status: creating tests/chown/Makefile
config.status: creating tests/cp/Makefile
config.status: creating tests/cut/Makefile
config.status: creating tests/date/Makefile
config.status: creating tests/dd/Makefile
config.status: creating tests/dircolors/Makefile
config.status: creating tests/du/Makefile
config.status: creating tests/expr/Makefile
config.status: creating tests/factor/Makefile
config.status: creating tests/fmt/Makefile
config.status: creating tests/head/Makefile
config.status: creating tests/install/Makefile
config.status: creating tests/join/Makefile
config.status: creating tests/ln/Makefile
config.status: creating tests/ls-2/Makefile
config.status: creating tests/ls/Makefile
config.status: creating tests/md5sum/Makefile
config.status: creating tests/misc/Makefile
config.status: creating tests/mkdir/Makefile
config.status: creating tests/mv/Makefile
config.status: creating tests/od/Makefile
config.status: creating tests/pr/Makefile
config.status: creating tests/rm/Makefile
config.status: creating tests/rmdir/Makefile
config.status: creating tests/seq/Makefile
config.status: creating tests/sha1sum/Makefile
config.status: creating tests/shred/Makefile
config.status: creating tests/sort/Makefile
config.status: creating tests/stty/Makefile
config.status: creating tests/sum/Makefile
config.status: creating tests/tac/Makefile
config.status: creating tests/tail-2/Makefile
config.status: creating tests/tail/Makefile
config.status: creating tests/test/Makefile
config.status: creating tests/touch/Makefile
config.status: creating tests/tr/Makefile
config.status: creating tests/tsort/Makefile
config.status: creating tests/unexpand/Makefile
config.status: creating tests/uniq/Makefile
config.status: creating tests/wc/Makefile
config.status: creating config.h
config.status: linking ./lib/fnmatch_.h to lib/fnmatch.h
config.status: linking ./lib/ftw_.h to lib/ftw.h
config.status: executing depfiles commands
config.status: executing default-1 commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
↓ 141 lines
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking for perl5.003 or newer... no
configure: WARNING:
WARNING: You don't seem to have perl5.003 or newer installed, or you lack
a usable version of the Perl File::Compare module. As a result,
you may be unable to run a few tests or to regenerate certain
files if you modify the sources from which they are derived.
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking whether gcc needs -traditional... no
checking for ranlib... ranlib
checking whether ln -s works... yes
checking for AIX... no
checking for ANSI C header files... no
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking for uname... yes
checking for chroot... yes
checking for gethostid... yes
checking for strerror in -lcposix... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for _LARGE_FILES value needed for large files... no
checking for gcc option to accept ANSI C... none needed
checking for function prototypes... yes
checking for ANSI C header files... (cached) no
checking for string.h... (cached) yes
checking whether byte ordering is bigendian... no
checking for an ANSI C-conforming const... yes
checking for working volatile... yes
checking for inline... inline
checking for working long double with more range or precision than double... no
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking float.h usability... yes
checking float.h presence... yes
[command output truncated]
checking for getspnam... yes
checking for library containing crypt... none required
checking for msgfmt... no
checking for gmsgfmt... :
checking for xgettext... no
checking for msgmerge... no
checking whether NLS is requested... yes
checking for GNU gettext in libc... no
checking for iconv... (cached) yes
checking for GNU gettext in libintl... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating lib/Makefile
config.status: creating man/Makefile
config.status: creating m4/Makefile
config.status: creating po/Makefile.in
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating tests/basename/Makefile
config.status: creating tests/chgrp/Makefile
config.status: creating tests/chmod/Makefile
config.status: creating tests/chown/Makefile
config.status: creating tests/cp/Makefile
config.status: creating tests/cut/Makefile
config.status: creating tests/date/Makefile
config.status: creating tests/dd/Makefile
config.status: creating tests/dircolors/Makefile
config.status: creating tests/du/Makefile
config.status: creating tests/expr/Makefile
config.status: creating tests/factor/Makefile
config.status: creating tests/fmt/Makefile
config.status: creating tests/head/Makefile
config.status: creating tests/install/Makefile
config.status: creating tests/join/Makefile
config.status: creating tests/ln/Makefile
config.status: creating tests/ls-2/Makefile
config.status: creating tests/ls/Makefile
config.status: creating tests/md5sum/Makefile
config.status: creating tests/misc/Makefile
config.status: creating tests/mkdir/Makefile
config.status: creating tests/mv/Makefile
config.status: creating tests/od/Makefile
config.status: creating tests/pr/Makefile
config.status: creating tests/rm/Makefile
config.status: creating tests/rmdir/Makefile
config.status: creating tests/seq/Makefile
config.status: creating tests/sha1sum/Makefile
config.status: creating tests/shred/Makefile
config.status: creating tests/sort/Makefile
config.status: creating tests/stty/Makefile
config.status: creating tests/sum/Makefile
config.status: creating tests/tac/Makefile
config.status: creating tests/tail-2/Makefile
config.status: creating tests/tail/Makefile
config.status: creating tests/test/Makefile
config.status: creating tests/touch/Makefile
config.status: creating tests/tr/Makefile
config.status: creating tests/tsort/Makefile
config.status: creating tests/unexpand/Makefile
config.status: creating tests/uniq/Makefile
config.status: creating tests/wc/Makefile
config.status: creating config.h
config.status: linking ./lib/fnmatch_.h to lib/fnmatch.h
config.status: linking ./lib/ftw_.h to lib/ftw.h
config.status: executing depfiles commands
config.status: executing default-1 commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
Show reasoning
Configure seems to have run successfully. It created the Makefiles.
compile-bench> cd coreutils-5.0 && make make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -g -O2 -MT acl.o -MD -MP -MF ".deps/acl.Tpo" \
-c -o acl.o `test -f 'acl.c' || echo './'`acl.c; \
then mv ".deps/acl.Tpo" ".deps/acl.Po"; \
else rm -f ".deps/acl.Tpo"; exit 1; \
fi
In file included from acl.c:22:
../config.h:1359:15: error: duplicate 'unsigned'
1359 | #define ino_t unsigned long
| ^~~~~~~~
make[3]: *** [Makefile:590: acl.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
↓ 23 lines
make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -g -O2 -MT acl.o -MD -MP -MF ".deps/acl.Tpo" \
-c -o acl.o `test -f 'acl.c' || echo './'`acl.c; \
then mv ".deps/acl.Tpo" ".deps/acl.Po"; \
else rm -f ".deps/acl.Tpo"; exit 1; \
fi
In file included from acl.c:22:
../config.h:1359:15: error: duplicate 'unsigned'
1359 | #define ino_t unsigned long
| ^~~~~~~~
make[3]: *** [Makefile:590: acl.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
Show reasoning
There's an error: "duplicate 'unsigned'" in config.h at line 1359: #define ino_t unsigned long
Identifying compilation issue
- Found a compilation error: "duplicate 'unsigned'" in config.h at line 1359, specifically with #define ino_t unsigned long.
1359:#define ino_t unsigned long
Show reasoning
It's defining ino_t as unsigned long, but probably in the system headers, ino_t is already defined differently.
Investigating ino_t definition
- Found ino_t defined as unsigned long, likely in system headers, but potentially inconsistent with other definitions.
/usr/include/bits/alltypes.h:typedef unsigned _Int64 ino_t;
Show reasoning
In musl libc, ino_t is typedef'd as unsigned _Int64.
Examining musl libc and coreutils configuration
- In musl libc, ino_t is defined as an unsigned 64-bit integer via typedef.
- Coreutils' config.h attempts to redefine ino_t as unsigned long, potentially causing a conflict due to the existing typedef.
- This conflict might arise if config.h includes headers that already define ino_t, leading to redefinition issues.
Examining musl libc and coreutils configuration
- The error "duplicate 'unsigned'" suggests coreutils' config.h redefines ino_t as unsigned long, conflicting with musl libc's typedef.
[empty output]
Show reasoning
Sed to comment out line 1359 in config.h.
compile-bench> cd coreutils-5.0 && make make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -g -O2 -MT acl.o -MD -MP -MF ".deps/acl.Tpo" \
-c -o acl.o `test -f 'acl.c' || echo './'`acl.c; \
then mv ".deps/acl.Tpo" ".deps/acl.Po"; \
else rm -f ".deps/acl.Tpo"; exit 1; \
fi
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -g -O2 -MT getdate.o -MD -MP -MF ".deps/getdate.Tpo" \
-c -o getdate.o `test -f 'getdate.c' || echo './'`getdate.c; \
then mv ".deps/getdate.Tpo" ".deps/getdate.Po"; \
else rm -f ".deps/getdate.Tpo"; exit 1; \
fi
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -g -O2 -MT posixtm.o -MD -MP -MF ".deps/posixtm.Tpo" \
-c -o posixtm.o `test -f 'posixtm.c' || echo './'`posixtm.c; \
then mv ".deps/posixtm.Tpo" ".deps/posixtm.Po"; \
else rm -f ".deps/posixtm.Tpo"; exit 1; \
fi
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -g -O2 -MT posixver.o -MD -MP -MF ".deps/posixver.Tpo" \
-c -o posixver.o `test -f 'posixver.c' || echo './'`posixver.c; \
then mv ".deps/posixver.Tpo" ".deps/posixver.Po"; \
else rm -f ".deps/posixver.Tpo"; exit 1; \
fi
In file included from /usr/include/fortify/stdlib.h:33,
from posixver.c:28:
/usr/include/fortify/unistd.h:75:1: error: 'getgroups' undeclared here (not in a function); did you mean 'setgroups'?
75 | _FORTIFY_FN(getgroups) int getgroups(int __l, gid_t * _FORTIFY_POS0 __s)
| ^~~~~~~~~~~
In file included from posixver.c:34:
/usr/include/fortify/unistd.h: In function 'getgroups':
/usr/include/fortify/unistd.h:81:16: error: called object '__orig_getgroups' is not a function or function pointer
81 | return __orig_getgroups(__l, __s);
| ^~~~~~~~~~~~~~~~
/usr/include/fortify/unistd.h:75:1: note: declared here
75 | _FORTIFY_FN(getgroups) int getgroups(int __l, gid_t * _FORTIFY_POS0 __s)
| ^~~~~~~~~~~
make[3]: *** [Makefile:590: posixver.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
↓ 47 lines
make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -g -O2 -MT acl.o -MD -MP -MF ".deps/acl.Tpo" \
-c -o acl.o `test -f 'acl.c' || echo './'`acl.c; \
then mv ".deps/acl.Tpo" ".deps/acl.Po"; \
else rm -f ".deps/acl.Tpo"; exit 1; \
fi
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -g -O2 -MT getdate.o -MD -MP -MF ".deps/getdate.Tpo" \
-c -o getdate.o `test -f 'getdate.c' || echo './'`getdate.c; \
then mv ".deps/getdate.Tpo" ".deps/getdate.Po"; \
else rm -f ".deps/getdate.Tpo"; exit 1; \
fi
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -g -O2 -MT posixtm.o -MD -MP -MF ".deps/posixtm.Tpo" \
-c -o posixtm.o `test -f 'posixtm.c' || echo './'`posixtm.c; \
then mv ".deps/posixtm.Tpo" ".deps/posixtm.Po"; \
else rm -f ".deps/posixtm.Tpo"; exit 1; \
fi
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -g -O2 -MT posixver.o -MD -MP -MF ".deps/posixver.Tpo" \
-c -o posixver.o `test -f 'posixver.c' || echo './'`posixver.c; \
then mv ".deps/posixver.Tpo" ".deps/posixver.Po"; \
else rm -f ".deps/posixver.Tpo"; exit 1; \
fi
In file included from /usr/include/fortify/stdlib.h:33,
from posixver.c:28:
/usr/include/fortify/unistd.h:75:1: error: 'getgroups' undeclared here (not in a function); did you mean 'setgroups'?
75 | _FORTIFY_FN(getgroups) int getgroups(int __l, gid_t * _FORTIFY_POS0 __s)
| ^~~~~~~~~~~
In file included from posixver.c:34:
/usr/include/fortify/unistd.h: In function 'getgroups':
/usr/include/fortify/unistd.h:81:16: error: called object '__orig_getgroups' is not a function or function pointer
81 | return __orig_getgroups(__l, __s);
| ^~~~~~~~~~~~~~~~
/usr/include/fortify/unistd.h:75:1: note: declared here
75 | _FORTIFY_FN(getgroups) int getgroups(int __l, gid_t * _FORTIFY_POS0 __s)
| ^~~~~~~~~~~
make[3]: *** [Makefile:590: posixver.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
Show reasoning
Now another error: 'getgroups' undeclared ...
Investigating compilation error
- Encountered an error: 'getgroups' is undeclared, found in /usr/include/fortify/unistd.h at line 75, within _FORTIFY_FN(getgroups).
- The issue appears linked to musl's fortify headers interfering with the compilation process.
- Noted that Alpine uses fort, which may contribute to this conflict.
compile-bench> cd coreutils-5.0 && make clean Making clean in tests
make[1]: Entering directory '/home/peter/coreutils-5.0/tests'
Making clean in wc
make[2]: Entering directory '/home/peter/coreutils-5.0/tests/wc'
test -z "a0.O a0.E a1.O a1.E a2.O a2.E a3.O a3.E a4.O a4.E a5.O a5.E a6.O a6.E a7.O a7.E a8.O a8.E a9.O a9.E b0.O b0.E b1.O b1.E c0.O c0.E c1.O c1.E c2.O c2.E" || rm -f a0.O a0.E a1.O a1.E a2.O a2.E a3.O a3.E a4.O a4.E a5.O a5.E a6.O a6.E a7.O a7.E a8.O a8.E a9.O a9.E b0.O b0.E b1.O b1.E c0.O c0.E c1.O c1.E c2.O c2.E
make[2]: Leaving directory '/home/peter/coreutils-5.0/tests/wc'
Making clean in uniq
make[2]: Entering directory '/home/peter/coreutils-5.0/tests/uniq'
test -z "1.O 1.E 2.O 2.E 3.O 3.E 4.O 4.E 5.O 5.E 6.O 6.E 7.O 7.E 8.O 8.E 9.O 9.E 10.O 10.E 11.O 11.E 12.O 12.E 13.O 13.E 20.O 20.E 21.O 21.E 22.O 22.E 23.O 23.E obs30.O obs30.E 31.O 31.E 32.O 32.E 33.O 33.E 34.O 34.E 35.O 35.E obs40.O obs40.E obs41.O obs41.E 42.O 42.E 43.O 43.E obs44.O obs44.E obs45.O obs45.E 50.O 50.E 51.O 51.E 52.O 52.E 53.O 53.E 54.O 54.E 55.O 55.E 56.O 56.E 57.O 57.E 60.O 60.E 61.O 61.E 62.O 62.E 63.O 63.E 64.O 64.E 65.O 65.E 90.O 90.E 91.O 91.E 92.O 92.E 93.O 93.E 94.O 94.E 101.O 101.E 102.O 102.E 110.O 110.E 111.O 111.E 112.O 112.E 113.O 113.E 114.O 114.E 115.O 115.E 116.O 116.E 117.O 117.E 118.O 118.E 119.O 119.E" || rm -f 1.O 1.E 2.O 2.E 3.O 3.E 4.O 4.E 5.O 5.E 6.O 6.E 7.O 7.E 8.O 8.E 9.O 9.E 10.O 10.E 11.O 11.E 12.O 12.E 13.O 13.E 20.O 20.E 21.O 21.E 22.O 22.E 23.O 23.E obs30.O obs30.E 31.O 31.E 32.O 32.E 33.O 33.E 34.O 34.E 35.O 35.E obs40.O obs40.E obs41.O obs41.E 42.O 42.E 43.O 43.E obs44.O obs44.E obs45.O obs45.E 50.O 50.E 51.O 51.E 52.O 52.E 53.O 53.E 54.O 54.E 55.O 55.E 56.O 56.E 57.O 57.E 60.O 60.E 61.O 61.E 62.O 62.E 63.O 63.E 64.O 64.E 65.O 65.E 90.O 90.E 91.O 91.E 92.O 92.E 93.O 93.E 94.O 94.E 101.O 101.E 102.O 102.E 110.O 110.E 111.O 111.E 112.O 112.E 113.O 113.E 114.O 114.E 115.O 115.E 116.O 116.E 117.O 117.E 118.O 118.E 119.O 119.E
make[2]: Leaving directory '/home/peter/coreutils-5.0/tests/uniq'
Making clean in unexpand
make[2]: Entering directory '/home/peter/coreutils-5.0/tests/unexpand'
make[2]: Nothing to be done for 'clean'.
make[2]: Leaving directory '/home/peter/coreutils-5.0/tests/unexpand'
Making clean in tsort
make[2]: Entering directory '/home/peter/coreutils-5.0/tests/tsort'
make[2]: Nothing to be done for 'clean'.
make[2]: Leaving directory '/home/peter/coreutils-5.0/tests/tsort'
Making clean in tr
make[2]: Entering directory '/home/peter/coreutils-5.0/tests/tr'
test -z "1.O 1.E 2.O 2.E 3.O 3.E 4.O 4.E 5.O 5.E 6.O 6.E 7.O 7.E 8.O 8.E 9.O 9.E a.O a.E b.O b.E c.O c.E d.O d.E e.O e.E f.O f.E g.O g.E h.O h.E i.O i.E j.O j.E k.O k.E l.O l.E m.O m.E n.O n.E o.O o.E p.O p.E q.O q.E r.O r.E s.O s.E t.O t.E u.O u.E v.O v.E w.O w.E x.O x.E y.O y.E z.O z.E range-a-a.O range-a-a.E null.O null.E upcase.O upcase.E dncase.O dncase.E rep-cclass.O rep-cclass.E rep-1.O rep-1.E rep-2.O rep-2.E rep-3.O rep-3.E o-rep-1.O o-rep-1.E o-rep-2.O o-rep-2.E esc.O esc.E ross-0
[command output truncated]
coreutils.1po coreutils.2po *.new.po
rm -fr *.o
make[1]: Leaving directory '/home/peter/coreutils-5.0/po'
Making clean in m4
make[1]: Entering directory '/home/peter/coreutils-5.0/m4'
make[1]: Nothing to be done for 'clean'.
make[1]: Leaving directory '/home/peter/coreutils-5.0/m4'
Making clean in man
make[1]: Entering directory '/home/peter/coreutils-5.0/man'
make[1]: Nothing to be done for 'clean'.
make[1]: Leaving directory '/home/peter/coreutils-5.0/man'
Making clean in doc
make[1]: Entering directory '/home/peter/coreutils-5.0/doc'
rm -f coreutils.aux coreutils.cp coreutils.cps coreutils.fl coreutils.fn \
coreutils.ky coreutils.log coreutils.op coreutils.pg \
coreutils.tmp coreutils.toc coreutils.tp coreutils.tps \
coreutils.vr coreutils.dvi coreutils.pdf coreutils.ps
rm -f vti.tmp
make[1]: Leaving directory '/home/peter/coreutils-5.0/doc'
Making clean in src
make[1]: Entering directory '/home/peter/coreutils-5.0/src'
test -z "chgrp chown chmod cp dd dircolors du ginstall link ln dir vdir ls mkdir mkfifo mknod mv readlink rm rmdir shred stat sync touch unlink cat cksum comm csplit cut expand fmt fold head join md5sum nl od paste pr ptx sha1sum sort split sum tac tail tr tsort unexpand uniq wc basename date dirname echo env expr factor false hostname id kill logname pathchk printenv printf pwd seq sleep tee test true tty whoami yes uname chroot hostid nice pinky users who " || rm -f chgrp chown chmod cp dd dircolors du ginstall link ln dir vdir ls mkdir mkfifo mknod mv readlink rm rmdir shred stat sync touch unlink cat cksum comm csplit cut expand fmt fold head join md5sum nl od paste pr ptx sha1sum sort split sum tac tail tr tsort unexpand uniq wc basename date dirname echo env expr factor false hostname id kill logname pathchk printenv printf pwd seq sleep tee test true tty whoami yes uname chroot hostid nice pinky users who > /dev/null 2>&1 || /bin/rm -f chgrp chown chmod cp dd dircolors du ginstall link ln dir vdir ls mkdir mkfifo mknod mv readlink rm rmdir shred stat sync touch unlink cat cksum comm csplit cut expand fmt fold head join md5sum nl od paste pr ptx sha1sum sort split sum tac tail tr tsort unexpand uniq wc basename date dirname echo env expr factor false hostname id kill logname pathchk printenv printf pwd seq sleep tee test true tty whoami yes uname chroot hostid nice pinky users who
test -z "groups nohup su" || rm -f groups nohup su
rm -f *.o core *.core
make[1]: Leaving directory '/home/peter/coreutils-5.0/src'
Making clean in lib
make[1]: Entering directory '/home/peter/coreutils-5.0/lib'
test -z "charset.alias ref-add.sed ref-del.sed" || rm -f charset.alias ref-add.sed ref-del.sed
test -z "libfetish.a" || rm -f libfetish.a
rm -f *.o core *.core
make[1]: Leaving directory '/home/peter/coreutils-5.0/lib'
Making clean in .
make[1]: Entering directory '/home/peter/coreutils-5.0'
make[1]: Nothing to be done for 'clean-am'.
make[1]: Leaving directory '/home/peter/coreutils-5.0'
↓ 58 lines
Making clean in tests make[1]: Entering directory '/home/peter/coreutils-5.0/tests' Making clean in wc make[2]: Entering directory '/home/peter/coreutils-5.0/tests/wc' test -z "a0.O a0.E a1.O a1.E a2.O a2.E a3.O a3.E a4.O a4.E a5.O a5.E a6.O a6.E a7.O a7.E a8.O a8.E a9.O a9.E b0.O b0.E b1.O b1.E c0.O c0.E c1.O c1.E c2.O c2.E" || rm -f a0.O a0.E a1.O a1.E a2.O a2.E a3.O a3.E a4.O a4.E a5.O a5.E a6.O a6.E a7.O a7.E a8.O a8.E a9.O a9.E b0.O b0.E b1.O b1.E c0.O c0.E c1.O c1.E c2.O c2.E make[2]: Leaving directory '/home/peter/coreutils-5.0/tests/wc' Making clean in uniq make[2]: Entering directory '/home/peter/coreutils-5.0/tests/uniq' test -z "1.O 1.E 2.O 2.E 3.O 3.E 4.O 4.E 5.O 5.E 6.O 6.E 7.O 7.E 8.O 8.E 9.O 9.E 10.O 10.E 11.O 11.E 12.O 12.E 13.O 13.E 20.O 20.E 21.O 21.E 22.O 22.E 23.O 23.E obs30.O obs30.E 31.O 31.E 32.O 32.E 33.O 33.E 34.O 34.E 35.O 35.E obs40.O obs40.E obs41.O obs41.E 42.O 42.E 43.O 43.E obs44.O obs44.E obs45.O obs45.E 50.O 50.E 51.O 51.E 52.O 52.E 53.O 53.E 54.O 54.E 55.O 55.E 56.O 56.E 57.O 57.E 60.O 60.E 61.O 61.E 62.O 62.E 63.O 63.E 64.O 64.E 65.O 65.E 90.O 90.E 91.O 91.E 92.O 92.E 93.O 93.E 94.O 94.E 101.O 101.E 102.O 102.E 110.O 110.E 111.O 111.E 112.O 112.E 113.O 113.E 114.O 114.E 115.O 115.E 116.O 116.E 117.O 117.E 118.O 118.E 119.O 119.E" || rm -f 1.O 1.E 2.O 2.E 3.O 3.E 4.O 4.E 5.O 5.E 6.O 6.E 7.O 7.E 8.O 8.E 9.O 9.E 10.O 10.E 11.O 11.E 12.O 12.E 13.O 13.E 20.O 20.E 21.O 21.E 22.O 22.E 23.O 23.E obs30.O obs30.E 31.O 31.E 32.O 32.E 33.O 33.E 34.O 34.E 35.O 35.E obs40.O obs40.E obs41.O obs41.E 42.O 42.E 43.O 43.E obs44.O obs44.E obs45.O obs45.E 50.O 50.E 51.O 51.E 52.O 52.E 53.O 53.E 54.O 54.E 55.O 55.E 56.O 56.E 57.O 57.E 60.O 60.E 61.O 61.E 62.O 62.E 63.O 63.E 64.O 64.E 65.O 65.E 90.O 90.E 91.O 91.E 92.O 92.E 93.O 93.E 94.O 94.E 101.O 101.E 102.O 102.E 110.O 110.E 111.O 111.E 112.O 112.E 113.O 113.E 114.O 114.E 115.O 115.E 116.O 116.E 117.O 117.E 118.O 118.E 119.O 119.E make[2]: Leaving directory '/home/peter/coreutils-5.0/tests/uniq' Making clean in unexpand make[2]: Entering directory '/home/peter/coreutils-5.0/tests/unexpand' make[2]: Nothing to be done for 'clean'. make[2]: Leaving directory '/home/peter/coreutils-5.0/tests/unexpand' Making clean in tsort make[2]: Entering directory '/home/peter/coreutils-5.0/tests/tsort' make[2]: Nothing to be done for 'clean'. make[2]: Leaving directory '/home/peter/coreutils-5.0/tests/tsort' Making clean in tr make[2]: Entering directory '/home/peter/coreutils-5.0/tests/tr' test -z "1.O 1.E 2.O 2.E 3.O 3.E 4.O 4.E 5.O 5.E 6.O 6.E 7.O 7.E 8.O 8.E 9.O 9.E a.O a.E b.O b.E c.O c.E d.O d.E e.O e.E f.O f.E g.O g.E h.O h.E i.O i.E j.O j.E k.O k.E l.O l.E m.O m.E n.O n.E o.O o.E p.O p.E q.O q.E r.O r.E s.O s.E t.O t.E u.O u.E v.O v.E w.O w.E x.O x.E y.O y.E z.O z.E range-a-a.O range-a-a.E null.O null.E upcase.O upcase.E dncase.O dncase.E rep-cclass.O rep-cclass.E rep-1.O rep-1.E rep-2.O rep-2.E rep-3.O rep-3.E o-rep-1.O o-rep-1.E o-rep-2.O o-rep-2.E esc.O esc.E ross-0 [command output truncated] coreutils.1po coreutils.2po *.new.po rm -fr *.o make[1]: Leaving directory '/home/peter/coreutils-5.0/po' Making clean in m4 make[1]: Entering directory '/home/peter/coreutils-5.0/m4' make[1]: Nothing to be done for 'clean'. make[1]: Leaving directory '/home/peter/coreutils-5.0/m4' Making clean in man make[1]: Entering directory '/home/peter/coreutils-5.0/man' make[1]: Nothing to be done for 'clean'. make[1]: Leaving directory '/home/peter/coreutils-5.0/man' Making clean in doc make[1]: Entering directory '/home/peter/coreutils-5.0/doc' rm -f coreutils.aux coreutils.cp coreutils.cps coreutils.fl coreutils.fn \ coreutils.ky coreutils.log coreutils.op coreutils.pg \ coreutils.tmp coreutils.toc coreutils.tp coreutils.tps \ coreutils.vr coreutils.dvi coreutils.pdf coreutils.ps rm -f vti.tmp make[1]: Leaving directory '/home/peter/coreutils-5.0/doc' Making clean in src make[1]: Entering directory '/home/peter/coreutils-5.0/src' test -z "chgrp chown chmod cp dd dircolors du ginstall link ln dir vdir ls mkdir mkfifo mknod mv readlink rm rmdir shred stat sync touch unlink cat cksum comm csplit cut expand fmt fold head join md5sum nl od paste pr ptx sha1sum sort split sum tac tail tr tsort unexpand uniq wc basename date dirname echo env expr factor false hostname id kill logname pathchk printenv printf pwd seq sleep tee test true tty whoami yes uname chroot hostid nice pinky users who " || rm -f chgrp chown chmod cp dd dircolors du ginstall link ln dir vdir ls mkdir mkfifo mknod mv readlink rm rmdir shred stat sync touch unlink cat cksum comm csplit cut expand fmt fold head join md5sum nl od paste pr ptx sha1sum sort split sum tac tail tr tsort unexpand uniq wc basename date dirname echo env expr factor false hostname id kill logname pathchk printenv printf pwd seq sleep tee test true tty whoami yes uname chroot hostid nice pinky users who > /dev/null 2>&1 || /bin/rm -f chgrp chown chmod cp dd dircolors du ginstall link ln dir vdir ls mkdir mkfifo mknod mv readlink rm rmdir shred stat sync touch unlink cat cksum comm csplit cut expand fmt fold head join md5sum nl od paste pr ptx sha1sum sort split sum tac tail tr tsort unexpand uniq wc basename date dirname echo env expr factor false hostname id kill logname pathchk printenv printf pwd seq sleep tee test true tty whoami yes uname chroot hostid nice pinky users who test -z "groups nohup su" || rm -f groups nohup su rm -f *.o core *.core make[1]: Leaving directory '/home/peter/coreutils-5.0/src' Making clean in lib make[1]: Entering directory '/home/peter/coreutils-5.0/lib' test -z "charset.alias ref-add.sed ref-del.sed" || rm -f charset.alias ref-add.sed ref-del.sed test -z "libfetish.a" || rm -f libfetish.a rm -f *.o core *.core make[1]: Leaving directory '/home/peter/coreutils-5.0/lib' Making clean in . make[1]: Entering directory '/home/peter/coreutils-5.0' make[1]: Nothing to be done for 'clean-am'. make[1]: Leaving directory '/home/peter/coreutils-5.0'
Show reasoning
Cleaned.
Now, try make with CPPFLAGS="-D_FORTIFY_SOURCE=0"
compile-bench> cd coreutils-5.0 && make CPPFLAGS="-D_FORTIFY_SOURCE=0" make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT acl.o -MD -MP -MF ".deps/acl.Tpo" \
-c -o acl.o `test -f 'acl.c' || echo './'`acl.c; \
then mv ".deps/acl.Tpo" ".deps/acl.Po"; \
else rm -f ".deps/acl.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT getdate.o -MD -MP -MF ".deps/getdate.Tpo" \
-c -o getdate.o `test -f 'getdate.c' || echo './'`getdate.c; \
then mv ".deps/getdate.Tpo" ".deps/getdate.Po"; \
else rm -f ".deps/getdate.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT posixtm.o -MD -MP -MF ".deps/posixtm.Tpo" \
-c -o posixtm.o `test -f 'posixtm.c' || echo './'`posixtm.c; \
then mv ".deps/posixtm.Tpo" ".deps/posixtm.Po"; \
else rm -f ".deps/posixtm.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT posixver.o -MD -MP -MF ".deps/posixver.Tpo" \
-c -o posixver.o `test -f 'posixver.c' || echo './'`posixver.c; \
then mv ".deps/posixver.Tpo" ".deps/posixver.Po"; \
else rm -f ".deps/posixver.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT strftime.o -MD -MP -MF ".deps/strftime.Tpo" \
-c -o strftime.o `test -f 'strftime.c' || echo './'`strftime.c; \
then mv ".deps/strftime.Tpo" ".deps/strftime.Po"; \
else rm -f ".deps/strftime.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT getopt.o -MD -MP -MF ".deps/getopt.Tpo" \
-c -o getopt.o `test -f 'getopt.c' || echo './'`getopt.c; \
then mv ".deps/getopt.Tpo" ".deps/getopt.Po"; \
else rm -f ".deps/getopt.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT getopt1.o -MD
[command output truncated]
\
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT md5.o -MD -MP -MF ".deps/md5.Tpo" \
-c -o md5.o `test -f 'md5.c' || echo './'`md5.c; \
then mv ".deps/md5.Tpo" ".deps/md5.Po"; \
else rm -f ".deps/md5.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
md5.c: In function 'md5_finish_ctx':
md5.c:129:3: error: implicit declaration of function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
129 | memcpy (&ctx->buffer[bytes], fillbuf, pad);
| ^~~~~~
md5.c:40:1: note: include '<string.h>' or provide a declaration of 'memcpy'
39 | #include "unlocked-io.h"
+++ |+#include <string.h>
40 |
md5.c:129:3: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
129 | memcpy (&ctx->buffer[bytes], fillbuf, pad);
| ^~~~~~
md5.c:129:3: note: include '<string.h>' or provide a declaration of 'memcpy'
md5.c: In function 'md5_process_bytes':
md5.c:246:7: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
246 | memcpy (&ctx->buffer[left_over], buffer, add);
| ^~~~~~
md5.c:246:7: note: include '<string.h>' or provide a declaration of 'memcpy'
md5.c:277:32: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
277 | md5_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx);
| ^~~~~~
md5.c:277:32: note: include '<string.h>' or provide a declaration of 'memcpy'
md5.c:295:7: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
295 | memcpy (&ctx->buffer[left_over], buffer, len);
| ^~~~~~
md5.c:295:7: note: include '<string.h>' or provide a declaration of 'memcpy'
make[3]: *** [Makefile:590: md5.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
↓ 94 lines
make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT acl.o -MD -MP -MF ".deps/acl.Tpo" \
-c -o acl.o `test -f 'acl.c' || echo './'`acl.c; \
then mv ".deps/acl.Tpo" ".deps/acl.Po"; \
else rm -f ".deps/acl.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT getdate.o -MD -MP -MF ".deps/getdate.Tpo" \
-c -o getdate.o `test -f 'getdate.c' || echo './'`getdate.c; \
then mv ".deps/getdate.Tpo" ".deps/getdate.Po"; \
else rm -f ".deps/getdate.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT posixtm.o -MD -MP -MF ".deps/posixtm.Tpo" \
-c -o posixtm.o `test -f 'posixtm.c' || echo './'`posixtm.c; \
then mv ".deps/posixtm.Tpo" ".deps/posixtm.Po"; \
else rm -f ".deps/posixtm.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT posixver.o -MD -MP -MF ".deps/posixver.Tpo" \
-c -o posixver.o `test -f 'posixver.c' || echo './'`posixver.c; \
then mv ".deps/posixver.Tpo" ".deps/posixver.Po"; \
else rm -f ".deps/posixver.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT strftime.o -MD -MP -MF ".deps/strftime.Tpo" \
-c -o strftime.o `test -f 'strftime.c' || echo './'`strftime.c; \
then mv ".deps/strftime.Tpo" ".deps/strftime.Po"; \
else rm -f ".deps/strftime.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT getopt.o -MD -MP -MF ".deps/getopt.Tpo" \
-c -o getopt.o `test -f 'getopt.c' || echo './'`getopt.c; \
then mv ".deps/getopt.Tpo" ".deps/getopt.Po"; \
else rm -f ".deps/getopt.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT getopt1.o -MD
[command output truncated]
\
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT md5.o -MD -MP -MF ".deps/md5.Tpo" \
-c -o md5.o `test -f 'md5.c' || echo './'`md5.c; \
then mv ".deps/md5.Tpo" ".deps/md5.Po"; \
else rm -f ".deps/md5.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
md5.c: In function 'md5_finish_ctx':
md5.c:129:3: error: implicit declaration of function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
129 | memcpy (&ctx->buffer[bytes], fillbuf, pad);
| ^~~~~~
md5.c:40:1: note: include '<string.h>' or provide a declaration of 'memcpy'
39 | #include "unlocked-io.h"
+++ |+#include <string.h>
40 |
md5.c:129:3: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
129 | memcpy (&ctx->buffer[bytes], fillbuf, pad);
| ^~~~~~
md5.c:129:3: note: include '<string.h>' or provide a declaration of 'memcpy'
md5.c: In function 'md5_process_bytes':
md5.c:246:7: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
246 | memcpy (&ctx->buffer[left_over], buffer, add);
| ^~~~~~
md5.c:246:7: note: include '<string.h>' or provide a declaration of 'memcpy'
md5.c:277:32: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
277 | md5_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx);
| ^~~~~~
md5.c:277:32: note: include '<string.h>' or provide a declaration of 'memcpy'
md5.c:295:7: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
295 | memcpy (&ctx->buffer[left_over], buffer, len);
| ^~~~~~
md5.c:295:7: note: include '<string.h>' or provide a declaration of 'memcpy'
make[3]: *** [Makefile:590: md5.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
Show reasoning
Now warnings for _FORTIFY_SOURCE redefined, but that is okay.
[empty output]
Show reasoning
Added include
compile-bench> cd coreutils-5.0 && make CPPFLAGS="-D_FORTIFY_SOURCE=0" make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT md5.o -MD -MP -MF ".deps/md5.Tpo" \
-c -o md5.o `test -f 'md5.c' || echo './'`md5.c; \
then mv ".deps/md5.Tpo" ".deps/md5.Po"; \
else rm -f ".deps/md5.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT memcasecmp.o -MD -MP -MF ".deps/memcasecmp.Tpo" \
-c -o memcasecmp.o `test -f 'memcasecmp.c' || echo './'`memcasecmp.c; \
then mv ".deps/memcasecmp.Tpo" ".deps/memcasecmp.Po"; \
else rm -f ".deps/memcasecmp.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT memcoll.o -MD -MP -MF ".deps/memcoll.Tpo" \
-c -o memcoll.o `test -f 'memcoll.c' || echo './'`memcoll.c; \
then mv ".deps/memcoll.Tpo" ".deps/memcoll.Po"; \
else rm -f ".deps/memcoll.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT modechange.o -MD -MP -MF ".deps/modechange.Tpo" \
-c -o modechange.o `test -f 'modechange.c' || echo './'`modechange.c; \
then mv ".deps/modechange.Tpo" ".deps/modechange.Po"; \
else rm -f ".deps/modechange.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
modechange.c:38:7: warning: conflicting types for built-in function 'malloc'; expected 'void *(long unsigned int)' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
38 | char *malloc ();
| ^~~~~~
modechange.c:34:1: note: 'malloc' is declared in header '<stdlib.h>'
33 | #include "xstrtol.h"
+++ |+#include <stdlib.h>
34 |
modechange.c: In function 'mode_free':
modechange.c:478:7: error: implicit declaration of function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
478 | free (changes);
| ^~~~
modechange.c:478:7: note: include '<stdlib.h>' or provide a declaration of 'free'
modechange.c:478:7: warning: incompatible implicit declaration of built-in function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
modechange.c:478:7: note: include '<stdlib.h>' or provide a declaration of 'free'
make[3]: *** [Makefile:590: modechange.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
↓ 56 lines
make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT md5.o -MD -MP -MF ".deps/md5.Tpo" \
-c -o md5.o `test -f 'md5.c' || echo './'`md5.c; \
then mv ".deps/md5.Tpo" ".deps/md5.Po"; \
else rm -f ".deps/md5.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT memcasecmp.o -MD -MP -MF ".deps/memcasecmp.Tpo" \
-c -o memcasecmp.o `test -f 'memcasecmp.c' || echo './'`memcasecmp.c; \
then mv ".deps/memcasecmp.Tpo" ".deps/memcasecmp.Po"; \
else rm -f ".deps/memcasecmp.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT memcoll.o -MD -MP -MF ".deps/memcoll.Tpo" \
-c -o memcoll.o `test -f 'memcoll.c' || echo './'`memcoll.c; \
then mv ".deps/memcoll.Tpo" ".deps/memcoll.Po"; \
else rm -f ".deps/memcoll.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT modechange.o -MD -MP -MF ".deps/modechange.Tpo" \
-c -o modechange.o `test -f 'modechange.c' || echo './'`modechange.c; \
then mv ".deps/modechange.Tpo" ".deps/modechange.Po"; \
else rm -f ".deps/modechange.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
modechange.c:38:7: warning: conflicting types for built-in function 'malloc'; expected 'void *(long unsigned int)' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
38 | char *malloc ();
| ^~~~~~
modechange.c:34:1: note: 'malloc' is declared in header '<stdlib.h>'
33 | #include "xstrtol.h"
+++ |+#include <stdlib.h>
34 |
modechange.c: In function 'mode_free':
modechange.c:478:7: error: implicit declaration of function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
478 | free (changes);
| ^~~~
modechange.c:478:7: note: include '<stdlib.h>' or provide a declaration of 'free'
modechange.c:478:7: warning: incompatible implicit declaration of built-in function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
modechange.c:478:7: note: include '<stdlib.h>' or provide a declaration of 'free'
make[3]: *** [Makefile:590: modechange.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
Show reasoning
Another implicit declaration: modechange.c: implicit 'free'
[empty output]
Show reasoning
Added.
Now, make again.
compile-bench> cd coreutils-5.0 && make CPPFLAGS="-D_FORTIFY_SOURCE=0" make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT modechange.o -MD -MP -MF ".deps/modechange.Tpo" \
-c -o modechange.o `test -f 'modechange.c' || echo './'`modechange.c; \
then mv ".deps/modechange.Tpo" ".deps/modechange.Po"; \
else rm -f ".deps/modechange.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
modechange.c:39:7: error: conflicting types for 'malloc'; have 'char *()'
39 | char *malloc ();
| ^~~~~~
In file included from /usr/include/fortify/stdlib.h:23,
from modechange.c:34:
/usr/include/stdlib.h:40:7: note: previous declaration of 'malloc' with type 'void *(long unsigned int)'
40 | void *malloc (size_t);
| ^~~~~~
make[3]: *** [Makefile:590: modechange.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
↓ 29 lines
make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT modechange.o -MD -MP -MF ".deps/modechange.Tpo" \
-c -o modechange.o `test -f 'modechange.c' || echo './'`modechange.c; \
then mv ".deps/modechange.Tpo" ".deps/modechange.Po"; \
else rm -f ".deps/modechange.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
modechange.c:39:7: error: conflicting types for 'malloc'; have 'char *()'
39 | char *malloc ();
| ^~~~~~
In file included from /usr/include/fortify/stdlib.h:23,
from modechange.c:34:
/usr/include/stdlib.h:40:7: note: previous declaration of 'malloc' with type 'void *(long unsigned int)'
40 | void *malloc (size_t);
| ^~~~~~
make[3]: *** [Makefile:590: modechange.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
Show reasoning
Now, conflicting types for 'malloc'; it has char malloc (); but stdlib.h has void malloc.
[empty output]
Show reasoning
Removed the char *malloc () line.
compile-bench> cd coreutils-5.0 && make CPPFLAGS="-D_FORTIFY_SOURCE=0" make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT modechange.o -MD -MP -MF ".deps/modechange.Tpo" \
-c -o modechange.o `test -f 'modechange.c' || echo './'`modechange.c; \
then mv ".deps/modechange.Tpo" ".deps/modechange.Po"; \
else rm -f ".deps/modechange.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT offtostr.o -MD -MP -MF ".deps/offtostr.Tpo" \
-c -o offtostr.o `test -f 'offtostr.c' || echo './'`offtostr.c; \
then mv ".deps/offtostr.Tpo" ".deps/offtostr.Po"; \
else rm -f ".deps/offtostr.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT path-concat.o -MD -MP -MF ".deps/path-concat.Tpo" \
-c -o path-concat.o `test -f 'path-concat.c' || echo './'`path-concat.c; \
then mv ".deps/path-concat.Tpo" ".deps/path-concat.Po"; \
else rm -f ".deps/path-concat.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT physmem.o -MD -MP -MF ".deps/physmem.Tpo" \
-c -o physmem.o `test -f 'physmem.c' || echo './'`physmem.c; \
then mv ".deps/physmem.Tpo" ".deps/physmem.Po"; \
else rm -f ".deps/physmem.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT quote.o -MD -MP -MF ".deps/quote.Tpo" \
-c -o quote.o `test -f 'quote.c' || echo './'`quote.c; \
then mv ".deps/quote.Tpo" ".deps/quote.Po"; \
else rm -f ".deps/quote.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT quotearg.o -MD -MP -MF ".deps/quotearg.Tpo" \
-c -o quotearg.o `test -f 'quotearg.c' || echo './'`quotearg.c; \
then mv ".deps/quotearg.Tpo" ".deps/quotearg.Po"; \
else rm -f ".deps/quotearg.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT readtokens.o -MD -MP -MF ".deps/readtokens.Tpo" \
-c -o readtokens.o `test -f 'readtokens.c' || echo './'`readtokens.c; \
then mv ".deps/readtokens.Tpo" ".deps/readtokens.Po"; \
else rm -f ".deps/readtokens.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
readtokens.c: In function 'readtoken':
readtokens.c:92:5: error: implicit declaration of function 'abort' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
92 | abort ();
| ^~~~~
readtokens.c:54:1: note: include '<stdlib.h>' or provide a declaration of 'abort'
53 | #include "xalloc.h"
+++ |+#include <stdlib.h>
54 |
readtokens.c:92:5: warning: incompatible implicit declaration of built-in function 'abort' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
92 | abort ();
| ^~~~~
readtokens.c:92:5: note: include '<stdlib.h>' or provide a declaration of 'abort'
readtokens.c: In function 'readtokens':
readtokens.c:216:3: error: implicit declaration of function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
216 | free (token->buffer);
| ^~~~
readtokens.c:216:3: note: include '<stdlib.h>' or provide a declaration of 'free'
readtokens.c:216:3: warning: incompatible implicit declaration of built-in function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
readtokens.c:216:3: note: include '<stdlib.h>' or provide a declaration of 'free'
make[3]: *** [Makefile:590: readtokens.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
↓ 82 lines
make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT modechange.o -MD -MP -MF ".deps/modechange.Tpo" \
-c -o modechange.o `test -f 'modechange.c' || echo './'`modechange.c; \
then mv ".deps/modechange.Tpo" ".deps/modechange.Po"; \
else rm -f ".deps/modechange.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT offtostr.o -MD -MP -MF ".deps/offtostr.Tpo" \
-c -o offtostr.o `test -f 'offtostr.c' || echo './'`offtostr.c; \
then mv ".deps/offtostr.Tpo" ".deps/offtostr.Po"; \
else rm -f ".deps/offtostr.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT path-concat.o -MD -MP -MF ".deps/path-concat.Tpo" \
-c -o path-concat.o `test -f 'path-concat.c' || echo './'`path-concat.c; \
then mv ".deps/path-concat.Tpo" ".deps/path-concat.Po"; \
else rm -f ".deps/path-concat.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT physmem.o -MD -MP -MF ".deps/physmem.Tpo" \
-c -o physmem.o `test -f 'physmem.c' || echo './'`physmem.c; \
then mv ".deps/physmem.Tpo" ".deps/physmem.Po"; \
else rm -f ".deps/physmem.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT quote.o -MD -MP -MF ".deps/quote.Tpo" \
-c -o quote.o `test -f 'quote.c' || echo './'`quote.c; \
then mv ".deps/quote.Tpo" ".deps/quote.Po"; \
else rm -f ".deps/quote.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT quotearg.o -MD -MP -MF ".deps/quotearg.Tpo" \
-c -o quotearg.o `test -f 'quotearg.c' || echo './'`quotearg.c; \
then mv ".deps/quotearg.Tpo" ".deps/quotearg.Po"; \
else rm -f ".deps/quotearg.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT readtokens.o -MD -MP -MF ".deps/readtokens.Tpo" \
-c -o readtokens.o `test -f 'readtokens.c' || echo './'`readtokens.c; \
then mv ".deps/readtokens.Tpo" ".deps/readtokens.Po"; \
else rm -f ".deps/readtokens.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
readtokens.c: In function 'readtoken':
readtokens.c:92:5: error: implicit declaration of function 'abort' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
92 | abort ();
| ^~~~~
readtokens.c:54:1: note: include '<stdlib.h>' or provide a declaration of 'abort'
53 | #include "xalloc.h"
+++ |+#include <stdlib.h>
54 |
readtokens.c:92:5: warning: incompatible implicit declaration of built-in function 'abort' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
92 | abort ();
| ^~~~~
readtokens.c:92:5: note: include '<stdlib.h>' or provide a declaration of 'abort'
readtokens.c: In function 'readtokens':
readtokens.c:216:3: error: implicit declaration of function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
216 | free (token->buffer);
| ^~~~
readtokens.c:216:3: note: include '<stdlib.h>' or provide a declaration of 'free'
readtokens.c:216:3: warning: incompatible implicit declaration of built-in function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
readtokens.c:216:3: note: include '<stdlib.h>' or provide a declaration of 'free'
make[3]: *** [Makefile:590: readtokens.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
Show reasoning
Again, readtokens.c needs
[empty output]
Show reasoning
Continue make. Maybe there's a pattern, many files need
compile-bench> cd coreutils-5.0 && make CPPFLAGS="-D_FORTIFY_SOURCE=0" make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT readtokens.o -MD -MP -MF ".deps/readtokens.Tpo" \
-c -o readtokens.o `test -f 'readtokens.c' || echo './'`readtokens.c; \
then mv ".deps/readtokens.Tpo" ".deps/readtokens.Po"; \
else rm -f ".deps/readtokens.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT safe-read.o -MD -MP -MF ".deps/safe-read.Tpo" \
-c -o safe-read.o `test -f 'safe-read.c' || echo './'`safe-read.c; \
then mv ".deps/safe-read.Tpo" ".deps/safe-read.Po"; \
else rm -f ".deps/safe-read.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT safe-write.o -MD -MP -MF ".deps/safe-write.Tpo" \
-c -o safe-write.o `test -f 'safe-write.c' || echo './'`safe-write.c; \
then mv ".deps/safe-write.Tpo" ".deps/safe-write.Po"; \
else rm -f ".deps/safe-write.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT same.o -MD -MP -MF ".deps/same.Tpo" \
-c -o same.o `test -f 'same.c' || echo './'`same.c; \
then mv ".deps/same.Tpo" ".deps/same.Po"; \
else rm -f ".deps/same.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT save-cwd.o -MD -MP -MF ".deps/save-cwd.Tpo" \
-c -o save-cwd.o `test -f 'save-cwd.c' || echo './'`save-cwd.c; \
then mv ".deps/save-cwd.Tpo" ".deps/save-cwd.Po"; \
else rm -f ".deps/save-cwd.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
save-cwd.c: In function 'free_cwd':
save-cwd.c:145:5: error: implicit declaration of function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
145 | free (cwd->name);
| ^~~~
save-cwd.c:52:1: note: include '<stdlib.h>' or provide a declaration of 'free'
51 | #include "xgetcwd.h"
+++ |+#include <stdlib.h>
52 |
save-cwd.c:145:5: warning: incompatible implicit declaration of built-in function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
145 | free (cwd->name);
| ^~~~
save-cwd.c:145:5: note: include '<stdlib.h>' or provide a declaration of 'free'
make[3]: *** [Makefile:590: save-cwd.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
↓ 61 lines
make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT readtokens.o -MD -MP -MF ".deps/readtokens.Tpo" \
-c -o readtokens.o `test -f 'readtokens.c' || echo './'`readtokens.c; \
then mv ".deps/readtokens.Tpo" ".deps/readtokens.Po"; \
else rm -f ".deps/readtokens.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT safe-read.o -MD -MP -MF ".deps/safe-read.Tpo" \
-c -o safe-read.o `test -f 'safe-read.c' || echo './'`safe-read.c; \
then mv ".deps/safe-read.Tpo" ".deps/safe-read.Po"; \
else rm -f ".deps/safe-read.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT safe-write.o -MD -MP -MF ".deps/safe-write.Tpo" \
-c -o safe-write.o `test -f 'safe-write.c' || echo './'`safe-write.c; \
then mv ".deps/safe-write.Tpo" ".deps/safe-write.Po"; \
else rm -f ".deps/safe-write.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT same.o -MD -MP -MF ".deps/same.Tpo" \
-c -o same.o `test -f 'same.c' || echo './'`same.c; \
then mv ".deps/same.Tpo" ".deps/same.Po"; \
else rm -f ".deps/same.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT save-cwd.o -MD -MP -MF ".deps/save-cwd.Tpo" \
-c -o save-cwd.o `test -f 'save-cwd.c' || echo './'`save-cwd.c; \
then mv ".deps/save-cwd.Tpo" ".deps/save-cwd.Po"; \
else rm -f ".deps/save-cwd.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
save-cwd.c: In function 'free_cwd':
save-cwd.c:145:5: error: implicit declaration of function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
145 | free (cwd->name);
| ^~~~
save-cwd.c:52:1: note: include '<stdlib.h>' or provide a declaration of 'free'
51 | #include "xgetcwd.h"
+++ |+#include <stdlib.h>
52 |
save-cwd.c:145:5: warning: incompatible implicit declaration of built-in function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
145 | free (cwd->name);
| ^~~~
save-cwd.c:145:5: note: include '<stdlib.h>' or provide a declaration of 'free'
make[3]: *** [Makefile:590: save-cwd.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
Show reasoning
Another one: save-cwd.c needs
[empty output]
Show reasoning
I'm seeing a pattern: many files need
compile-bench> cd coreutils-5.0 && make CPPFLAGS="-D_FORTIFY_SOURCE=0" make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT save-cwd.o -MD -MP -MF ".deps/save-cwd.Tpo" \
-c -o save-cwd.o `test -f 'save-cwd.c' || echo './'`save-cwd.c; \
then mv ".deps/save-cwd.Tpo" ".deps/save-cwd.Po"; \
else rm -f ".deps/save-cwd.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT savedir.o -MD -MP -MF ".deps/savedir.Tpo" \
-c -o savedir.o `test -f 'savedir.c' || echo './'`savedir.c; \
then mv ".deps/savedir.Tpo" ".deps/savedir.Po"; \
else rm -f ".deps/savedir.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
savedir.c: In function 'savedir':
savedir.c:99:31: error: implicit declaration of function 'strlen' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
99 | size_t entry_size = strlen (entry) + 1;
| ^~~~~~
savedir.c:65:1: note: include '<string.h>' or provide a declaration of 'strlen'
64 | #include "xalloc.h"
+++ |+#include <string.h>
65 |
savedir.c:99:31: warning: incompatible implicit declaration of built-in function 'strlen' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
99 | size_t entry_size = strlen (entry) + 1;
| ^~~~~~
savedir.c:99:31: note: include '<string.h>' or provide a declaration of 'strlen'
savedir.c:114:11: error: implicit declaration of function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
114 | memcpy (name_space + used, entry, entry_size);
| ^~~~~~
savedir.c:114:11: note: include '<string.h>' or provide a declaration of 'memcpy'
savedir.c:114:11: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
savedir.c:114:11: note: include '<string.h>' or provide a declaration of 'memcpy'
savedir.c:124:7: error: implicit declaration of function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
124 | free (name_space);
| ^~~~
savedir.c:65:1: note: include '<stdlib.h>' or provide a declaration of 'free'
64 | #include "xalloc.h"
+++ |+#include <stdlib.h>
65 |
savedir.c:124:7: warning: incompatible implicit declaration of built-in function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
124 | free (name_space);
| ^~~~
savedir.c:124:7: note: include '<stdlib.h>' or provide a declaration of 'free'
make[3]: *** [Makefile:590: savedir.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
↓ 57 lines
make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT save-cwd.o -MD -MP -MF ".deps/save-cwd.Tpo" \
-c -o save-cwd.o `test -f 'save-cwd.c' || echo './'`save-cwd.c; \
then mv ".deps/save-cwd.Tpo" ".deps/save-cwd.Po"; \
else rm -f ".deps/save-cwd.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT savedir.o -MD -MP -MF ".deps/savedir.Tpo" \
-c -o savedir.o `test -f 'savedir.c' || echo './'`savedir.c; \
then mv ".deps/savedir.Tpo" ".deps/savedir.Po"; \
else rm -f ".deps/savedir.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
savedir.c: In function 'savedir':
savedir.c:99:31: error: implicit declaration of function 'strlen' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
99 | size_t entry_size = strlen (entry) + 1;
| ^~~~~~
savedir.c:65:1: note: include '<string.h>' or provide a declaration of 'strlen'
64 | #include "xalloc.h"
+++ |+#include <string.h>
65 |
savedir.c:99:31: warning: incompatible implicit declaration of built-in function 'strlen' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
99 | size_t entry_size = strlen (entry) + 1;
| ^~~~~~
savedir.c:99:31: note: include '<string.h>' or provide a declaration of 'strlen'
savedir.c:114:11: error: implicit declaration of function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
114 | memcpy (name_space + used, entry, entry_size);
| ^~~~~~
savedir.c:114:11: note: include '<string.h>' or provide a declaration of 'memcpy'
savedir.c:114:11: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
savedir.c:114:11: note: include '<string.h>' or provide a declaration of 'memcpy'
savedir.c:124:7: error: implicit declaration of function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
124 | free (name_space);
| ^~~~
savedir.c:65:1: note: include '<stdlib.h>' or provide a declaration of 'free'
64 | #include "xalloc.h"
+++ |+#include <stdlib.h>
65 |
savedir.c:124:7: warning: incompatible implicit declaration of built-in function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
124 | free (name_space);
| ^~~~
savedir.c:124:7: note: include '<stdlib.h>' or provide a declaration of 'free'
make[3]: *** [Makefile:590: savedir.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
Show reasoning
savedir.c needs
[empty output]
Show reasoning
Continue. This is taking time.
Listing files
- Counting the number of .
compile-bench> cd coreutils-5.0 && make CPPFLAGS="-D_FORTIFY_SOURCE=0" make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT savedir.o -MD -MP -MF ".deps/savedir.Tpo" \
-c -o savedir.o `test -f 'savedir.c' || echo './'`savedir.c; \
then mv ".deps/savedir.Tpo" ".deps/savedir.Po"; \
else rm -f ".deps/savedir.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT settime.o -MD -MP -MF ".deps/settime.Tpo" \
-c -o settime.o `test -f 'settime.c' || echo './'`settime.c; \
then mv ".deps/settime.Tpo" ".deps/settime.Po"; \
else rm -f ".deps/settime.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT sha.o -MD -MP -MF ".deps/sha.Tpo" \
-c -o sha.o `test -f 'sha.c' || echo './'`sha.c; \
then mv ".deps/sha.Tpo" ".deps/sha.Po"; \
else rm -f ".deps/sha.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
sha.c: In function 'sha_finish_ctx':
sha.c:109:3: error: implicit declaration of function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
109 | memcpy (&ctx->buffer[bytes], fillbuf, pad);
| ^~~~~~
sha.c:28:1: note: include '<string.h>' or provide a declaration of 'memcpy'
27 | #include "unlocked-io.h"
+++ |+#include <string.h>
28 |
sha.c:109:3: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
109 | memcpy (&ctx->buffer[bytes], fillbuf, pad);
| ^~~~~~
sha.c:109:3: note: include '<string.h>' or provide a declaration of 'memcpy'
sha.c: In function 'sha_process_bytes':
sha.c:217:7: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
217 | memcpy (&ctx->buffer[left_over], buffer, add);
| ^~~~~~
sha.c:217:7: note: include '<string.h>' or provide a declaration of 'memcpy'
sha.c:248:32: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
248 | sha_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx);
| ^~~~~~
sha.c:248:32: note: include '<string.h>' or provide a declaration of 'memcpy'
sha.c:266:7: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
266 | memcpy (&ctx->buffer[left_over], buffer, len);
| ^~~~~~
sha.c:266:7: note: include '<string.h>' or provide a declaration of 'memcpy'
make[3]: *** [Makefile:590: sha.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
↓ 60 lines
make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT savedir.o -MD -MP -MF ".deps/savedir.Tpo" \
-c -o savedir.o `test -f 'savedir.c' || echo './'`savedir.c; \
then mv ".deps/savedir.Tpo" ".deps/savedir.Po"; \
else rm -f ".deps/savedir.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT settime.o -MD -MP -MF ".deps/settime.Tpo" \
-c -o settime.o `test -f 'settime.c' || echo './'`settime.c; \
then mv ".deps/settime.Tpo" ".deps/settime.Po"; \
else rm -f ".deps/settime.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT sha.o -MD -MP -MF ".deps/sha.Tpo" \
-c -o sha.o `test -f 'sha.c' || echo './'`sha.c; \
then mv ".deps/sha.Tpo" ".deps/sha.Po"; \
else rm -f ".deps/sha.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
sha.c: In function 'sha_finish_ctx':
sha.c:109:3: error: implicit declaration of function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
109 | memcpy (&ctx->buffer[bytes], fillbuf, pad);
| ^~~~~~
sha.c:28:1: note: include '<string.h>' or provide a declaration of 'memcpy'
27 | #include "unlocked-io.h"
+++ |+#include <string.h>
28 |
sha.c:109:3: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
109 | memcpy (&ctx->buffer[bytes], fillbuf, pad);
| ^~~~~~
sha.c:109:3: note: include '<string.h>' or provide a declaration of 'memcpy'
sha.c: In function 'sha_process_bytes':
sha.c:217:7: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
217 | memcpy (&ctx->buffer[left_over], buffer, add);
| ^~~~~~
sha.c:217:7: note: include '<string.h>' or provide a declaration of 'memcpy'
sha.c:248:32: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
248 | sha_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx);
| ^~~~~~
sha.c:248:32: note: include '<string.h>' or provide a declaration of 'memcpy'
sha.c:266:7: warning: incompatible implicit declaration of built-in function 'memcpy' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
266 | memcpy (&ctx->buffer[left_over], buffer, len);
| ^~~~~~
sha.c:266:7: note: include '<string.h>' or provide a declaration of 'memcpy'
make[3]: *** [Makefile:590: sha.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
Show reasoning
sha.c similar to md5.c, add
[empty output]
Show reasoning
Continue.
compile-bench> cd coreutils-5.0 && make CPPFLAGS="-D_FORTIFY_SOURCE=0" make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT sha.o -MD -MP -MF ".deps/sha.Tpo" \
-c -o sha.o `test -f 'sha.c' || echo './'`sha.c; \
then mv ".deps/sha.Tpo" ".deps/sha.Po"; \
else rm -f ".deps/sha.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT stripslash.o -MD -MP -MF ".deps/stripslash.Tpo" \
-c -o stripslash.o `test -f 'stripslash.c' || echo './'`stripslash.c; \
then mv ".deps/stripslash.Tpo" ".deps/stripslash.Po"; \
else rm -f ".deps/stripslash.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT umaxtostr.o -MD -MP -MF ".deps/umaxtostr.Tpo" \
-c -o umaxtostr.o `test -f 'umaxtostr.c' || echo './'`umaxtostr.c; \
then mv ".deps/umaxtostr.Tpo" ".deps/umaxtostr.Po"; \
else rm -f ".deps/umaxtostr.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT unicodeio.o -MD -MP -MF ".deps/unicodeio.Tpo" \
-c -o unicodeio.o `test -f 'unicodeio.c' || echo './'`unicodeio.c; \
then mv ".deps/unicodeio.Tpo" ".deps/unicodeio.Po"; \
else rm -f ".deps/unicodeio.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT userspec.o -MD -MP -MF ".deps/userspec.Tpo" \
-c -o userspec.o `test -f 'userspec.c' || echo './'`userspec.c; \
then mv ".deps/userspec.Tpo" ".deps/userspec.Po"; \
else rm -f ".deps/userspec.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
userspec.c: In function 'parse_user_spec':
userspec.c:332:19: error: implicit declaration of function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
332 | free (*username_arg);
| ^~~~
userspec.c:72:1: note: include '<stdlib.h>' or provide a declaration of 'free'
71 | #include "gettext.h"
+++ |+#include <stdlib.h>
72 | #define _(msgid) gettext (msgid)
userspec.c:332:19: warning: incompatible implicit declaration of built-in function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
332 | free (*username_arg);
| ^~~~
userspec.c:332:19: note: include '<stdlib.h>' or provide a declaration of 'free'
make[3]: *** [Makefile:590: userspec.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
↓ 61 lines
make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT sha.o -MD -MP -MF ".deps/sha.Tpo" \
-c -o sha.o `test -f 'sha.c' || echo './'`sha.c; \
then mv ".deps/sha.Tpo" ".deps/sha.Po"; \
else rm -f ".deps/sha.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT stripslash.o -MD -MP -MF ".deps/stripslash.Tpo" \
-c -o stripslash.o `test -f 'stripslash.c' || echo './'`stripslash.c; \
then mv ".deps/stripslash.Tpo" ".deps/stripslash.Po"; \
else rm -f ".deps/stripslash.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT umaxtostr.o -MD -MP -MF ".deps/umaxtostr.Tpo" \
-c -o umaxtostr.o `test -f 'umaxtostr.c' || echo './'`umaxtostr.c; \
then mv ".deps/umaxtostr.Tpo" ".deps/umaxtostr.Po"; \
else rm -f ".deps/umaxtostr.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT unicodeio.o -MD -MP -MF ".deps/unicodeio.Tpo" \
-c -o unicodeio.o `test -f 'unicodeio.c' || echo './'`unicodeio.c; \
then mv ".deps/unicodeio.Tpo" ".deps/unicodeio.Po"; \
else rm -f ".deps/unicodeio.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT userspec.o -MD -MP -MF ".deps/userspec.Tpo" \
-c -o userspec.o `test -f 'userspec.c' || echo './'`userspec.c; \
then mv ".deps/userspec.Tpo" ".deps/userspec.Po"; \
else rm -f ".deps/userspec.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
userspec.c: In function 'parse_user_spec':
userspec.c:332:19: error: implicit declaration of function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
332 | free (*username_arg);
| ^~~~
userspec.c:72:1: note: include '<stdlib.h>' or provide a declaration of 'free'
71 | #include "gettext.h"
+++ |+#include <stdlib.h>
72 | #define _(msgid) gettext (msgid)
userspec.c:332:19: warning: incompatible implicit declaration of built-in function 'free' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
332 | free (*username_arg);
| ^~~~
userspec.c:332:19: note: include '<stdlib.h>' or provide a declaration of 'free'
make[3]: *** [Makefile:590: userspec.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
Show reasoning
userspec.c add
[empty output]
Show reasoning
Continue. I hope it will finish the lib soon and move to src.
compile-bench> cd coreutils-5.0 && make CPPFLAGS="-D_FORTIFY_SOURCE=0" make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT userspec.o -MD -MP -MF ".deps/userspec.Tpo" \
-c -o userspec.o `test -f 'userspec.c' || echo './'`userspec.c; \
then mv ".deps/userspec.Tpo" ".deps/userspec.Po"; \
else rm -f ".deps/userspec.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT version-etc.o -MD -MP -MF ".deps/version-etc.Tpo" \
-c -o version-etc.o `test -f 'version-etc.c' || echo './'`version-etc.c; \
then mv ".deps/version-etc.Tpo" ".deps/version-etc.Po"; \
else rm -f ".deps/version-etc.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xgetcwd.o -MD -MP -MF ".deps/xgetcwd.Tpo" \
-c -o xgetcwd.o `test -f 'xgetcwd.c' || echo './'`xgetcwd.c; \
then mv ".deps/xgetcwd.Tpo" ".deps/xgetcwd.Po"; \
else rm -f ".deps/xgetcwd.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xgethostname.o -MD -MP -MF ".deps/xgethostname.Tpo" \
-c -o xgethostname.o `test -f 'xgethostname.c' || echo './'`xgethostname.c; \
then mv ".deps/xgethostname.Tpo" ".deps/xgethostname.Po"; \
else rm -f ".deps/xgethostname.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xmalloc.o -MD -MP -MF ".deps/xmalloc.Tpo" \
-c -o xmalloc.o `test -f 'xmalloc.c' || echo './'`xmalloc.c; \
then mv ".deps/xmalloc.Tpo" ".deps/xmalloc.Po"; \
else rm -f ".deps/xmalloc.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
xmalloc.c: In function 'xalloc_die':
xmalloc.c:74:3: error: implicit declaration of function 'exit' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
74 | exit (EXIT_FAILURE);
| ^~~~
xmalloc.c:39:1: note: include '<stdlib.h>' or provide a declaration of 'exit'
38 | #include "xalloc.h"
+++ |+#include <stdlib.h>
39 |
xmalloc.c:74:3: warning: incompatible implicit declaration of built-in function 'exit' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
74 | exit (EXIT_FAILURE);
| ^~~~
xmalloc.c:74:3: note: include '<stdlib.h>' or provide a declaration of 'exit'
make[3]: *** [Makefile:590: xmalloc.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
↓ 61 lines
make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT userspec.o -MD -MP -MF ".deps/userspec.Tpo" \
-c -o userspec.o `test -f 'userspec.c' || echo './'`userspec.c; \
then mv ".deps/userspec.Tpo" ".deps/userspec.Po"; \
else rm -f ".deps/userspec.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT version-etc.o -MD -MP -MF ".deps/version-etc.Tpo" \
-c -o version-etc.o `test -f 'version-etc.c' || echo './'`version-etc.c; \
then mv ".deps/version-etc.Tpo" ".deps/version-etc.Po"; \
else rm -f ".deps/version-etc.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xgetcwd.o -MD -MP -MF ".deps/xgetcwd.Tpo" \
-c -o xgetcwd.o `test -f 'xgetcwd.c' || echo './'`xgetcwd.c; \
then mv ".deps/xgetcwd.Tpo" ".deps/xgetcwd.Po"; \
else rm -f ".deps/xgetcwd.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xgethostname.o -MD -MP -MF ".deps/xgethostname.Tpo" \
-c -o xgethostname.o `test -f 'xgethostname.c' || echo './'`xgethostname.c; \
then mv ".deps/xgethostname.Tpo" ".deps/xgethostname.Po"; \
else rm -f ".deps/xgethostname.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xmalloc.o -MD -MP -MF ".deps/xmalloc.Tpo" \
-c -o xmalloc.o `test -f 'xmalloc.c' || echo './'`xmalloc.c; \
then mv ".deps/xmalloc.Tpo" ".deps/xmalloc.Po"; \
else rm -f ".deps/xmalloc.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
xmalloc.c: In function 'xalloc_die':
xmalloc.c:74:3: error: implicit declaration of function 'exit' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
74 | exit (EXIT_FAILURE);
| ^~~~
xmalloc.c:39:1: note: include '<stdlib.h>' or provide a declaration of 'exit'
38 | #include "xalloc.h"
+++ |+#include <stdlib.h>
39 |
xmalloc.c:74:3: warning: incompatible implicit declaration of built-in function 'exit' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wbuiltin-declaration-mismatch-Wbuiltin-declaration-mismatch]8;;]
74 | exit (EXIT_FAILURE);
| ^~~~
xmalloc.c:74:3: note: include '<stdlib.h>' or provide a declaration of 'exit'
make[3]: *** [Makefile:590: xmalloc.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
Show reasoning
xmalloc.c add
[empty output]
Show reasoning
Continue.
compile-bench> cd coreutils-5.0 && make CPPFLAGS="-D_FORTIFY_SOURCE=0" make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xmalloc.o -MD -MP -MF ".deps/xmalloc.Tpo" \
-c -o xmalloc.o `test -f 'xmalloc.c' || echo './'`xmalloc.c; \
then mv ".deps/xmalloc.Tpo" ".deps/xmalloc.Po"; \
else rm -f ".deps/xmalloc.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xmemcoll.o -MD -MP -MF ".deps/xmemcoll.Tpo" \
-c -o xmemcoll.o `test -f 'xmemcoll.c' || echo './'`xmemcoll.c; \
then mv ".deps/xmemcoll.Tpo" ".deps/xmemcoll.Po"; \
else rm -f ".deps/xmemcoll.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xnanosleep.o -MD -MP -MF ".deps/xnanosleep.Tpo" \
-c -o xnanosleep.o `test -f 'xnanosleep.c' || echo './'`xnanosleep.c; \
then mv ".deps/xnanosleep.Tpo" ".deps/xnanosleep.Po"; \
else rm -f ".deps/xnanosleep.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xreadlink.o -MD -MP -MF ".deps/xreadlink.Tpo" \
-c -o xreadlink.o `test -f 'xreadlink.c' || echo './'`xreadlink.c; \
then mv ".deps/xreadlink.Tpo" ".deps/xreadlink.Po"; \
else rm -f ".deps/xreadlink.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xstrdup.o -MD -MP -MF ".deps/xstrdup.Tpo" \
-c -o xstrdup.o `test -f 'xstrdup.c' || echo './'`xstrdup.c; \
then mv ".deps/xstrdup.Tpo" ".deps/xstrdup.Po"; \
else rm -f ".deps/xstrdup.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xstrtod.o -MD -MP -MF ".deps/xstrtod.Tpo" \
-c -o xstrtod.o `test -f 'xstrtod.c' || echo './'`xstrtod.c; \
then mv ".deps/xstrtod.Tpo" ".deps/xstrtod.Po"; \
else rm -f ".deps/xstrtod.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xstrtol.o -MD -MP -MF ".deps/xstrtol.Tpo" \
-c -o xstrtol.o `test -f 'xstrtol.c' || echo './'`xstrtol.c; \
then mv ".deps/xstrtol.Tpo" ".deps/xstrtol.Po"; \
else rm -f ".deps/xstrtol.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
xstrtol.c: In function 'xstrtol':
xstrtol.c:25:19: error: implicit declaration of function 'strtol'; did you mean 'xstrtol'? [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
25 | # define __strtol strtol
| ^~~~~~
xstrtol.c:141:9: note: in expansion of macro '__strtol'
141 | tmp = __strtol (s, p, strtol_base);
| ^~~~~~~~
make[3]: *** [Makefile:590: xstrtol.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
↓ 70 lines
make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xmalloc.o -MD -MP -MF ".deps/xmalloc.Tpo" \
-c -o xmalloc.o `test -f 'xmalloc.c' || echo './'`xmalloc.c; \
then mv ".deps/xmalloc.Tpo" ".deps/xmalloc.Po"; \
else rm -f ".deps/xmalloc.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xmemcoll.o -MD -MP -MF ".deps/xmemcoll.Tpo" \
-c -o xmemcoll.o `test -f 'xmemcoll.c' || echo './'`xmemcoll.c; \
then mv ".deps/xmemcoll.Tpo" ".deps/xmemcoll.Po"; \
else rm -f ".deps/xmemcoll.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xnanosleep.o -MD -MP -MF ".deps/xnanosleep.Tpo" \
-c -o xnanosleep.o `test -f 'xnanosleep.c' || echo './'`xnanosleep.c; \
then mv ".deps/xnanosleep.Tpo" ".deps/xnanosleep.Po"; \
else rm -f ".deps/xnanosleep.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xreadlink.o -MD -MP -MF ".deps/xreadlink.Tpo" \
-c -o xreadlink.o `test -f 'xreadlink.c' || echo './'`xreadlink.c; \
then mv ".deps/xreadlink.Tpo" ".deps/xreadlink.Po"; \
else rm -f ".deps/xreadlink.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xstrdup.o -MD -MP -MF ".deps/xstrdup.Tpo" \
-c -o xstrdup.o `test -f 'xstrdup.c' || echo './'`xstrdup.c; \
then mv ".deps/xstrdup.Tpo" ".deps/xstrdup.Po"; \
else rm -f ".deps/xstrdup.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xstrtod.o -MD -MP -MF ".deps/xstrtod.Tpo" \
-c -o xstrtod.o `test -f 'xstrtod.c' || echo './'`xstrtod.c; \
then mv ".deps/xstrtod.Tpo" ".deps/xstrtod.Po"; \
else rm -f ".deps/xstrtod.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xstrtol.o -MD -MP -MF ".deps/xstrtol.Tpo" \
-c -o xstrtol.o `test -f 'xstrtol.c' || echo './'`xstrtol.c; \
then mv ".deps/xstrtol.Tpo" ".deps/xstrtol.Po"; \
else rm -f ".deps/xstrtol.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
xstrtol.c: In function 'xstrtol':
xstrtol.c:25:19: error: implicit declaration of function 'strtol'; did you mean 'xstrtol'? [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
25 | # define __strtol strtol
| ^~~~~~
xstrtol.c:141:9: note: in expansion of macro '__strtol'
141 | tmp = __strtol (s, p, strtol_base);
| ^~~~~~~~
make[3]: *** [Makefile:590: xstrtol.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
Show reasoning
This is getting tedious, but let's continue.
Examining xstrtol.c file
- The xstrtol.c file uses strtol and strtoul functions but lacks the necessary
- Adding #include
compile-bench> cd coreutils-5.0/lib && head -20 xstrtol.c /* A more useful interface to strtol.
Copyright (C) 1995, 1996, 1998-2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Jim Meyering. */
#if HAVE_CONFIG_H
↓ 21 lines
/* A more useful interface to strtol. Copyright (C) 1995, 1996, 1998-2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Jim Meyering. */ #if HAVE_CONFIG_H
Show reasoning
After the copyright, insert the include.
[empty output]
Show reasoning
Make again.
compile-bench> cd coreutils-5.0 && make CPPFLAGS="-D_FORTIFY_SOURCE=0" make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xstrtol.o -MD -MP -MF ".deps/xstrtol.Tpo" \
-c -o xstrtol.o `test -f 'xstrtol.c' || echo './'`xstrtol.c; \
then mv ".deps/xstrtol.Tpo" ".deps/xstrtol.Po"; \
else rm -f ".deps/xstrtol.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xstrtoul.o -MD -MP -MF ".deps/xstrtoul.Tpo" \
-c -o xstrtoul.o `test -f 'xstrtoul.c' || echo './'`xstrtoul.c; \
then mv ".deps/xstrtoul.Tpo" ".deps/xstrtoul.Po"; \
else rm -f ".deps/xstrtoul.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xstrtoimax.o -MD -MP -MF ".deps/xstrtoimax.Tpo" \
-c -o xstrtoimax.o `test -f 'xstrtoimax.c' || echo './'`xstrtoimax.c; \
then mv ".deps/xstrtoimax.Tpo" ".deps/xstrtoimax.Po"; \
else rm -f ".deps/xstrtoimax.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xstrtoumax.o -MD -MP -MF ".deps/xstrtoumax.Tpo" \
-c -o xstrtoumax.o `test -f 'xstrtoumax.c' || echo './'`xstrtoumax.c; \
then mv ".deps/xstrtoumax.Tpo" ".deps/xstrtoumax.Po"; \
else rm -f ".deps/xstrtoumax.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT yesno.o -MD -MP -MF ".deps/yesno.Tpo" \
-c -o yesno.o `test -f 'yesno.c' || echo './'`yesno.c; \
then mv ".deps/yesno.Tpo" ".deps/yesno.Po"; \
else rm -f ".deps/yesno.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT mkdir.o -MD -MP -MF ".deps/mkdir.Tpo" \
-c -o mkdir.o `test -f 'mkdir.c' || echo './'`mkdir.c; \
then mv ".deps/mkdir.Tpo" ".deps/mkdir.Po"; \
else rm -f ".deps/mkdir.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT fnmatch.o -MD -MP -MF ".deps/fnmatch.Tpo" \
-c -o fnmatch.o `test -f 'fnmatch.c' || echo './'`fnmatch.c; \
then mv ".deps/fnmatch.Tpo" ".deps/fnmatch.Po"; \
else rm -f ".deps/fnmatch.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
In file included from fnmatch.c:229:
fnmatch_loop.c: In function 'ext_match':
fnmatch_loop.c:1060:23: error: implicit declaration of function 'offsetof' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
1060 | alloca (offsetof (struct patternlist, str) \
| ^~~~~~~~
fnmatch_loop.c:1066:13: note: in expansion of macro 'NEW_PATTERN'
1066 | NEW_PATTERN;
| ^~~~~~~~~~~
fnmatch_loop.c:1:1: note: 'offsetof' is defined in header '<stddef.h>'; this is probably fixable by adding '#include <stddef.h>'
+++ |+#include <stddef.h>
1 | /* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2000, 2001,
fnmatch_loop.c:1060:33: error: expected expression before 'struct'
1060 | alloca (offsetof (struct patternlist, str) \
| ^~~~~~
fnmatch_loop.c:1066:13: note: in expansion of macro 'NEW_PATTERN'
1066 | NEW_PATTERN;
| ^~~~~~~~~~~
fnmatch_loop.c:1060:33: error: expected expression before 'struct'
1060 | alloca (offsetof (struct patternlist, str) \
| ^~~~~~
fnmatch_loop.c:1073:13: note: in expansion of macro 'NEW_PATTERN'
1073 | NEW_PATTERN;
| ^~~~~~~~~~~
In file included from fnmatch.c:326:
fnmatch_loop.c: In function 'ext_wmatch':
fnmatch_loop.c:1060:33: error: expected expression before 'struct'
1060 | alloca (offsetof (struct patternlist, str) \
| ^~~~~~
fnmatch_loop.c:1066:13: note: in expansion of macro 'NEW_PATTERN'
1066 | NEW_PATTERN;
| ^~~~~~~~~~~
fnmatch_loop.c:1060:33: error: expected expression before 'struct'
1060 | alloca (offsetof (struct patternlist, str) \
| ^~~~~~
fnmatch_loop.c:1073:13: note: in expansion of macro 'NEW_PATTERN'
1073 | NEW_PATTERN;
| ^~~~~~~~~~~
make[3]: *** [Makefile:590: fnmatch.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
↓ 100 lines
make all-recursive
make[1]: Entering directory '/home/peter/coreutils-5.0'
Making all in lib
make[2]: Entering directory '/home/peter/coreutils-5.0/lib'
make all-am
make[3]: Entering directory '/home/peter/coreutils-5.0/lib'
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xstrtol.o -MD -MP -MF ".deps/xstrtol.Tpo" \
-c -o xstrtol.o `test -f 'xstrtol.c' || echo './'`xstrtol.c; \
then mv ".deps/xstrtol.Tpo" ".deps/xstrtol.Po"; \
else rm -f ".deps/xstrtol.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xstrtoul.o -MD -MP -MF ".deps/xstrtoul.Tpo" \
-c -o xstrtoul.o `test -f 'xstrtoul.c' || echo './'`xstrtoul.c; \
then mv ".deps/xstrtoul.Tpo" ".deps/xstrtoul.Po"; \
else rm -f ".deps/xstrtoul.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xstrtoimax.o -MD -MP -MF ".deps/xstrtoimax.Tpo" \
-c -o xstrtoimax.o `test -f 'xstrtoimax.c' || echo './'`xstrtoimax.c; \
then mv ".deps/xstrtoimax.Tpo" ".deps/xstrtoimax.Po"; \
else rm -f ".deps/xstrtoimax.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT xstrtoumax.o -MD -MP -MF ".deps/xstrtoumax.Tpo" \
-c -o xstrtoumax.o `test -f 'xstrtoumax.c' || echo './'`xstrtoumax.c; \
then mv ".deps/xstrtoumax.Tpo" ".deps/xstrtoumax.Po"; \
else rm -f ".deps/xstrtoumax.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT yesno.o -MD -MP -MF ".deps/yesno.Tpo" \
-c -o yesno.o `test -f 'yesno.c' || echo './'`yesno.c; \
then mv ".deps/yesno.Tpo" ".deps/yesno.Po"; \
else rm -f ".deps/yesno.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT mkdir.o -MD -MP -MF ".deps/mkdir.Tpo" \
-c -o mkdir.o `test -f 'mkdir.c' || echo './'`mkdir.c; \
then mv ".deps/mkdir.Tpo" ".deps/mkdir.Po"; \
else rm -f ".deps/mkdir.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
if gcc -DLIBDIR=\"/home/peter/result/lib\" -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -D_FORTIFY_SOURCE=0 -g -O2 -MT fnmatch.o -MD -MP -MF ".deps/fnmatch.Tpo" \
-c -o fnmatch.o `test -f 'fnmatch.c' || echo './'`fnmatch.c; \
then mv ".deps/fnmatch.Tpo" ".deps/fnmatch.Po"; \
else rm -f ".deps/fnmatch.Tpo"; exit 1; \
fi
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
In file included from fnmatch.c:229:
fnmatch_loop.c: In function 'ext_match':
fnmatch_loop.c:1060:23: error: implicit declaration of function 'offsetof' [ttps://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration]8;;]
1060 | alloca (offsetof (struct patternlist, str) \
| ^~~~~~~~
fnmatch_loop.c:1066:13: note: in expansion of macro 'NEW_PATTERN'
1066 | NEW_PATTERN;
| ^~~~~~~~~~~
fnmatch_loop.c:1:1: note: 'offsetof' is defined in header '<stddef.h>'; this is probably fixable by adding '#include <stddef.h>'
+++ |+#include <stddef.h>
1 | /* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2000, 2001,
fnmatch_loop.c:1060:33: error: expected expression before 'struct'
1060 | alloca (offsetof (struct patternlist, str) \
| ^~~~~~
fnmatch_loop.c:1066:13: note: in expansion of macro 'NEW_PATTERN'
1066 | NEW_PATTERN;
| ^~~~~~~~~~~
fnmatch_loop.c:1060:33: error: expected expression before 'struct'
1060 | alloca (offsetof (struct patternlist, str) \
| ^~~~~~
fnmatch_loop.c:1073:13: note: in expansion of macro 'NEW_PATTERN'
1073 | NEW_PATTERN;
| ^~~~~~~~~~~
In file included from fnmatch.c:326:
fnmatch_loop.c: In function 'ext_wmatch':
fnmatch_loop.c:1060:33: error: expected expression before 'struct'
1060 | alloca (offsetof (struct patternlist, str) \
| ^~~~~~
fnmatch_loop.c:1066:13: note: in expansion of macro 'NEW_PATTERN'
1066 | NEW_PATTERN;
| ^~~~~~~~~~~
fnmatch_loop.c:1060:33: error: expected expression before 'struct'
1060 | alloca (offsetof (struct patternlist, str) \
| ^~~~~~
fnmatch_loop.c:1073:13: note: in expansion of macro 'NEW_PATTERN'
1073 | NEW_PATTERN;
| ^~~~~~~~~~~
make[3]: *** [Makefile:590: fnmatch.o] Error 1
make[3]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[2]: *** [Makefile:414: all] Error 2
make[2]: Leaving directory '/home/peter/coreutils-5.0/lib'
make[1]: *** [Makefile:244: all-recursive] Error 1
make[1]: Leaving directory '/home/peter/coreutils-5.0'
make: *** [Makefile:199: all] Error 2
Show reasoning
Now in fnmatch.c, it includes fnmatch_loop.c, and that has implicit declaration of 'offsetof'
Examining fnmatch.c
- Found that fnmatch.c includes fnmatch_loop.c, which has an implicit declaration of 'offsetof'.
- Suggests adding #include
task failed: sha1sum binary does not exist