blob: c87e6366636b880a76404f6979f4c99c755e1b8e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
macOS builds of target arm-softmmu broken
Description of problem:
Attempting to build for target `arm-softmmu` on macOS fails with errors:
```
[919/2786] Compiling C object libblock.a.p/block_file-posix.c.o
FAILED: libblock.a.p/block_file-posix.c.o
clang -Ilibblock.a.p -I. -I.. -Iqapi -Itrace -Iui -Iui/shader -Iblock -I/nix/store/vb7baj6dq2mvynfh6zmwxz57w83h7w0q-zlib-1.3.1-dev/include -I/nix/store/k1yzx1ykpwmhqvyr0j5fxvs9px7k92m7-glib-2.80.4-dev/include/glib-2.0 -I/nix/store/fm2kb8jvvc9s9nhi2gpr3jp6xxjxcvkq-glib-2.80.4/lib/glib-2.0/include -I/nix/store/k1yzx1ykpwmhqvyr0j5fxvs9px7k92m7-glib-2.80.4-dev/include -fcolor-diagnostics -Wall -Winvalid-pch -std=gnu11 -O2 -g -fstack-protector-strong -Wempty-body -Wendif-labels -Wexpansion-to-defined -Wformat-security -Wformat-y2k -Wignored-qualifiers -Winit-self -Wmissing-format-attribute -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wredundant-decls -Wstrict-prototypes -Wtype-limits -Wundef -Wvla -Wwrite-strings -Wno-gnu-variable-sized-type-not-at-end -Wno-initializer-overrides -Wno-missing-include-dirs -Wno-psabi -Wno-shift-negative-value -Wno-string-plus-int -Wno-tautological-type-limit-compare -Wno-typedef-redefinition -iquote . -iquote /Users/josh/workspace/qemu -iquote /Users/josh/workspace/qemu/include -iquote /Users/josh/workspace/qemu/host/include/aarch64 -iquote /Users/josh/workspace/qemu/host/include/generic -iquote /Users/josh/workspace/qemu/tcg/aarch64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fno-common -fwrapv -fno-pie -ftrivial-auto-var-init=zero -fzero-call-used-regs=used-gpr -MD -MQ libblock.a.p/block_file-posix.c.o -MF libblock.a.p/block_file-posix.c.o.d -o libblock.a.p/block_file-posix.c.o -c ../block/file-posix.c
../block/file-posix.c:1501:19: error: variable has incomplete type 'struct statfs'
struct statfs buf;
^
../block/file-posix.c:1501:12: note: forward declaration of 'struct statfs'
struct statfs buf;
^
../block/file-posix.c:1503:10: error: call to undeclared function 'fstatfs'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
if (!fstatfs(s->fd, &buf)) {
^
2 errors generated.
```
Steps to reproduce:
1. nix-shell -p python3 ninja pkg-config glib
2. ./configure --target-list=arm-softmmu
3. make
Additional information:
The following patch fixes the issue (although I'm not sure whether this is the most appropriate fix):
```
diff --git a/block/file-posix.c b/block/file-posix.c
index ff928b5e85..6c78db3b0b 100644
--- a/block/file-posix.c
+++ b/block/file-posix.c
@@ -44,10 +44,10 @@
#if defined(__APPLE__) && (__MACH__)
#include <sys/ioctl.h>
-#if defined(HAVE_HOST_BLOCK_DEVICE)
-#include <paths.h>
#include <sys/param.h>
#include <sys/mount.h>
+#if defined(HAVE_HOST_BLOCK_DEVICE)
+#include <paths.h>
#include <IOKit/IOKitLib.h>
#include <IOKit/IOBSD.h>
#include <IOKit/storage/IOMediaBSDClient.h>
```
|