On Sun, May 08, 2022 at 09:30:29PM +0200, Fabrice Fontaine wrote: > musl undefines MAP_SYNC on some architectures such as mips64 since > version 1.1.20 and > https://github.com/ifduyue/musl/commit/9b57db3f958d9adc3b1c7371b5c6723aaee448b7 > resulting in the following build failure: > > mmap.c: In function 'mmap_f': > mmap.c:196:33: error: 'MAP_SYNC' undeclared (first use in this function); did you mean 'MS_SYNC'? > 196 | flags = MAP_SYNC | MAP_SHARED_VALIDATE; > | ^~~~~~~~ > | MS_SYNC > > This build failure is raised because header includes have been tangled > up: > > input.h -> libfrog/projects.h -> xfs.h -> linux.h. > > As a result, linux.h will be included before sys/mman.h and the > following piece of code from linux.h will be "overriden" on platforms > without MAP_SYNC: > > #ifndef HAVE_MAP_SYNC > #define MAP_SYNC 0 > #define MAP_SHARED_VALIDATE 0 > #else > #include <asm-generic/mman.h> > #include <asm-generic/mman-common.h> > #endif /* HAVE_MAP_SYNC */ > > To fix this build failure, include <sys/mman.h> before the other > includes. > > A more long-term solution would be to untangle the headers. > > Fixes: > - http://autobuild.buildroot.org/results/3296194907baf7d3fe039f59bcbf595aa8107a28 > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@xxxxxxxxx> LGTM, Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> --D > --- > Changes v1 -> v2 (after review of Dave Chinner): > - Update commit message > > io/mmap.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/io/mmap.c b/io/mmap.c > index 8c048a0a..b8609295 100644 > --- a/io/mmap.c > +++ b/io/mmap.c > @@ -4,9 +4,9 @@ > * All Rights Reserved. > */ > > +#include <sys/mman.h> > #include "command.h" > #include "input.h" > -#include <sys/mman.h> > #include <signal.h> > #include "init.h" > #include "io.h" > -- > 2.35.1 >