On Wed, 2017-01-11 at 13:35 -0800, Ngie Cooper wrote: > On Wed, Jan 11, 2017 at 10:47 AM, Dimitry Andric <d...@freebsd.org> > wrote: > > > > Author: dim > > Date: Wed Jan 11 18:47:00 2017 > > New Revision: 311929 > > URL: https://svnweb.freebsd.org/changeset/base/311929 > > > > Log: > > Don't include <errno.h> in reloc_elf.c, as it includes <stand.h> > > just > > after it, which has a conflicting definition of errno. This > > leads to > > the following warning with clang 4.0.0: > > > > In file included from sys/boot/common/reloc_elf32.c:6: > > In file included from sys/boot/common/reloc_elf.c:37: > > /usr/obj/usr/src/tmp/usr/include/stand.h:155:12: error: this > > function declaration is not a prototype [-Werror,-Wstrict- > > prototypes] > > extern int errno; > > ^ > > sys/sys/errno.h:46:26: note: expanded from macro 'errno' > > #define errno (* __error()) > It seems like libstand (once again) should be fixed, not the > "offending code". > -Ngie >
In this case it's not the library that's in error. Libstand is the thing that implements errno, so it's the thing that must define it. The code that includes both errno.h and libstand.h was wrong. errno.h is a standard header file used with libc, and the loader code doesn't link with libc. The thing that amazes me is the usual: how did this ever work with gcc 4.2? -- Ian _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"