alpine-mips-patches b0c083a319 main/xfsprogs: fix build on mips* and ppc64le
musl-1.1.20 implements support (or lack thereof) for the MAP_SYNC flag by #define'ing
it uncoditionally in generic <sys/mman.h> then #undef'ining optionally in arch-specific
<bits/mman.h> (e.g. for mips* and powerpc*). So io/mmap.c fails to compile since it
includes <sys/mman.h> (which undefines MAP_SYNC on mips* and powerpc*) after "linux.h"
(which either defines fallback MAP_SYNC values or pulls <asm-generic/mman{-common.h}>).

The proposes patch also fixes the flawed MAP_SYNC detection logic in the configure script
because io/mmap.c always uses the MAP_SYNC definition (either real one or zero fallback).
Otherwise xfsprogs wrongly detects the MAP_SYNC presence on mips* and ppc64le and the code
does not define MAP_SYNC fallback so io/mmap.c still fails to compile.

Note the last (2018-07-11) successful xfsprogs build for ppc64le was against musl-1.1.19
(without any support for MAP_SYNC).

The problem with MAP_SYNC detection is as follows. The configure script checks only
<asm-generic/mman{-common}.h> headers for the MAP_SYNC definition instead of using
the arch-specific <asm/mman.h>. But some architectures (mips, powerpc, parisc) do not
support the MAP_SYNC feature at all, do not use the <asm-generic/mman{-common.h}> files
and do not define the flag in the corresponding <asm/mman.h> header.
2019-01-04 10:23:08 +00:00
..