On Sun, Nov 21, 2021 at 09:20:09AM +1100, Dave Chinner wrote: > On Sat, Nov 20, 2021 at 09:15:48AM -0800, Darrick J. Wong wrote: > > On Sat, Nov 20, 2021 at 08:32:40AM +0100, Helmut Grohne wrote: > > > Hi Dave, > > > > > > On Sat, Nov 20, 2021 at 10:11:05AM +1100, Dave Chinner wrote: > > > > I don't get it. The crcselftest does not use liburcu in > > > > any way, nor does it try to link against liburcu, so it should not > > > > fail because other parts of xfsprogs use liburcu. > > > > > > > > What's the build error that occurs? > > > > > > As the build log shows, that's not technically accurate. You can find > > > logs of test builds for various architecture combinations at > > > http://crossqa.debian.net/src/xfsprogs. This is also available as a link > > > called "cross" in https://tracker.debian.org/xfsprogs. > > > > > > The relevant part is: > > > | [TEST] CRC32 > > > | In file included from crc32.c:35: > > > | ../include/platform_defs.h:27:10: fatal error: urcu.h: No such file or directory > > > | 27 | #include <urcu.h> > > > | | ^~~~~~~~ > > > | compilation terminated. > > > > > > I failed to figure a good way of dropping either include directive. > > > > > > > We need to fix the generic cross-build problem in the xfsprogs code, > > > > not slap a distro-specific build band-aid over it. > > > > > > I fully agree with this in principle. However, when I fail to find that > > > upstreamable solution, I try to at least provide a Debian-specific > > > solution to iterate from. > > > > > > Can you propose a way to drop either #include? > > > > Frankly I don't really see the value in crc32selftest when cross > > compiling -- sure, the crc32c code works correctly on the build host, > > but that proves nothing about the (cross-)built binaries that end up in > > the package. > > Yup, that's pretty much what I was getting at. Though this is pretty simple and should just work, too: --- a/libfrog/crc32.c +++ b/libfrog/crc32.c @@ -29,10 +29,11 @@ * match the hardware acceleration available on Intel CPUs. */ +#include <stdio.h> +#include <sys/types.h> #include <inttypes.h> #include <asm/types.h> #include <sys/time.h> -#include "platform_defs.h" /* For endian conversion routines */ #include "xfs_arch.h" #include "crc32defs.h" Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx