Re: git: 4ba3797c9993 - main - graphics/png: fix build with clang 15
- In reply to: Jan Beich : "Re: git: 4ba3797c9993 - main - graphics/png: fix build with clang 15"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 31 Jul 2022 22:04:44 UTC
On 31 Jul 2022, at 20:39, Jan Beich <jbeich@FreeBSD.org> wrote: > > Dimitry Andric <dim@FreeBSD.org> writes: > >> The branch main has been updated by dim (src committer): >> >> URL: https://cgit.FreeBSD.org/ports/commit/?id=4ba3797c9993a25a082ed767d4f44234b1f7dc04 >> >> commit 4ba3797c9993a25a082ed767d4f44234b1f7dc04 >> Author: Dimitry Andric <dim@FreeBSD.org> >> AuthorDate: 2022-07-30 16:37:48 +0000 >> Commit: Dimitry Andric <dim@FreeBSD.org> >> CommitDate: 2022-07-31 17:12:11 +0000 >> >> graphics/png: fix build with clang 15 >> >> Building png with clang 15 results in an error: >> >> contrib/libtests/pngvalid.c:11662:4: error: call to undeclared function 'feenableexcept'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] >> feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW); >> ^ >> >> This is because clang 15 introduced this new warning, and fenv.h only >> declares feenableexcept() when compiling for C standards before C11. > > -Wimplicit-function-declaration is ancient, so Clang 15 made it fatal > for C99 or later. feenableexcept() is under __BSD_VISIBLE, so hidden in > _POSIX_SOURCE mode as used by libpng. Linux cheats via _GNU_SOURCE > which is ignored on FreeBSD, so you get the above warning. > > Where did C11 come from? > > See also https://github.com/llvm/llvm-project/commit/7d644e1215b3 Indeed, this is a pretty big change, which has the potential to cause lots of breakage; I have added some notes and a request for feedback here: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=265425#c13 -Dimitry