On 1/27/22 17:15, Kevin Wolf wrote:
> Am 22.01.2022 um 14:49 hat Philippe Mathieu-Daudé geschrieben:
>> When building on FreeBSD we get:
>>
>>   [816/6851] Compiling C object libblockdev.fa.p/block_export_fuse.c.o
>>   ../block/export/fuse.c:628:16: error: use of undeclared identifier 
>> 'FALLOC_FL_KEEP_SIZE'
>>       if (mode & FALLOC_FL_KEEP_SIZE) {
>>                  ^
>>   ../block/export/fuse.c:632:16: error: use of undeclared identifier 
>> 'FALLOC_FL_PUNCH_HOLE'
>>       if (mode & FALLOC_FL_PUNCH_HOLE) {
>>                  ^
>>   ../block/export/fuse.c:633:22: error: use of undeclared identifier 
>> 'FALLOC_FL_KEEP_SIZE'
>>           if (!(mode & FALLOC_FL_KEEP_SIZE)) {
>>                        ^
>>   3 errors generated.
>>   FAILED: libblockdev.fa.p/block_export_fuse.c.o
>>
>> Meson indeed reported FALLOC_FL_PUNCH_HOLE is not available:
>>
>>   C compiler for the host machine: cc (clang 10.0.1 "FreeBSD clang version 
>> 10.0.1")
>>   Checking for function "fallocate" : NO
>>   Checking for function "posix_fallocate" : YES
>>   Header <linux/falloc.h> has symbol "FALLOC_FL_PUNCH_HOLE" : NO
>>   Header <linux/falloc.h> has symbol "FALLOC_FL_ZERO_RANGE" : NO
>>   ...
>>
>> Similarly to commit 304332039 ("block/export/fuse.c: fix musl build"),
>> guard the code requiring FALLOC_FL_KEEP_SIZE / FALLOC_FL_PUNCH_HOLE
>> definitions under CONFIG_FALLOCATE_PUNCH_HOLE #ifdef'ry.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org>
>> ---
>> Fragile #ifdef'ry... Any clever idea?
> 
> I guess we could reorder things. The last case (!mode) is mutually
> exclusive with the other conditions, so checking it first doesn't make a
> difference, and then you can #ifdef things out more cleanly.

This is indeed clever, thanks! v3 soon.

Reply via email to