Hi,
I am new to qemu and have a few questions.
Build Env Configuration:
mac os x machine running 10.9.2 (latest Mavericks update)
all the relevant and appropriate port/brew package installs
Xcode 5.1.1 (latest released Xcode update) toolchain
qemu off of tag 1.7.1 stable
Build Results:
Functional qemu executable (qemu-system-arm) that can load a linux kernel and rootfs
Question 1- Machine configuration:
a- Which file controls the configuration of hw devices for a machine? For example, if I wanted to exclude bluetooth, would I do that in config-devices.mak, or in qemu/config-all-devices.mak, or qemu/default-configs/<cpu>-softmmu.mak ?
b- What is arm-linux-user?
Question 2- how come the binary completes in spite of following errors:
===> I am positive that a project in XCode IDE will fail to build the source base as it currently exists and with the same existing set of compiler options and defined macros. Any pointers would be greatly appreciated! <===
a- config.log contains many compiler errors about undefined macros (__linux__, __OpenBSD__, _WIN32, __sun__, __HAIKU__)
EX :
cc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -c -o /var/folders/_m/ryp3cxws15gb_yqrpvzf7jnw0000gn/T//qemu-conf-32637-32735-18090.o /var/folders/_m/ryp3cxws15gb_yqrpvzf7jnw0000gn/T//qemu-conf-22590-32735-21226.c
/var/folders/_m/ryp3cxws15gb_yqrpvzf7jnw0000gn/T//qemu-conf-22590-32735-21226.c:2:2: error: __linux__ not defined
#error __linux__ not defined
b- There are many file-not-found fatal errors ( <xenctrl.h>, <rdma/rdma_cma.h>, <gnutls/gnutls.h>, <jpeglib.h>, <png.h>, <xfs/xfs.h>, <libvdeplug.h>, <cap-ng.h>, <brlapi.h>, <bluetooth/bluetooth.h>, <sys/capability.h>, <rbd/librbd.h>, <libaio.h>, and many others)
EX:
cc -m64 -DOS_OBJECT_USE_OBJC=0 -arch x86_64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -Wno-string-plus-int -Wno-initializer-overrides -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-definition -Wtype-limits -fstack-protector-all -o /var/folders/_m/ryp3cxws15gb_yqrpvzf7jnw0000gn/T//qemu-conf-29177-32735-28850.exe /var/folders/_m/ryp3cxws15gb_yqrpvzf7jnw0000gn/T//qemu-conf-22590-32735-21226.c -m64 -framework CoreFoundation -framework IOKit -arch x86_64 -g -lxenstore -lxenctrl -lxenguest
/var/folders/_m/ryp3cxws15gb_yqrpvzf7jnw0000gn/T//qemu-conf-22590-32735-21226.c:1:10: fatal error: 'xenctrl.h' file not found
#include <xenctrl.h>
c- There are errors about function calls that mismatch prototypes.
EX:
cc -m64 -DOS_OBJECT_USE_OBJC=0 -arch x86_64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -Wno-string-plus-int -Wno-initializer-overrides -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-definition -Wtype-limits -fstack-protector-all -o /var/folders/_m/ryp3cxws15gb_yqrpvzf7jnw0000gn/T//qemu-conf-29177-32735-28850.exe /var/folders/_m/ryp3cxws15gb_yqrpvzf7jnw0000gn/T//qemu-conf-22590-32735-21226.c -m64 -framework CoreFoundation -framework IOKit -arch x86_64 -g
/var/folders/_m/ryp3cxws15gb_yqrpvzf7jnw0000gn/T//qemu-conf-22590-32735-21226.c:8:46: error: too few arguments to function call, expected 6, have 4
int main(void) { getxattr(NULL, NULL, NULL, 0); setxattr(NULL, NULL, NULL, 0, 0); return 0; }
~~~~~~~~ ^
/usr/include/sys/xattr.h:61:1: note: 'getxattr' declared here
ssize_t getxattr(const char *path, const char *name, void *value, size_t size, u_int32_t position, int options);
^
/var/folders/_m/ryp3cxws15gb_yqrpvzf7jnw0000gn/T//qemu-conf-22590-32735-21226.c:8:80: error: too few arguments to function call, expected 6, have 5
int main(void) { getxattr(NULL, NULL, NULL, 0); setxattr(NULL, NULL, NULL, 0, 0); return 0; }
~~~~~~~~ ^
/usr/include/sys/xattr.h:65:1: note: 'setxattr' declared here
int setxattr(const char *path, const char *name, const void *value, size_t size, u_int32_t position, int options);
^
2 errors generated.
d- Linker failures due to undefined symbols!!
EX:
1 warning generated.
Undefined symbols for architecture x86_64:
"_preadv", referenced from:
_main in qemu-conf-22590-32735-21226-627f16.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
e- Use of undeclared identifiers (many of them)!!
EX:
cc -m64 -DOS_OBJECT_USE_OBJC=0 -arch x86_64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -Wno-string-plus-int -Wno-initializer-overrides -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-definition -Wtype-limits -fstack-protector-all -o /var/folders/_m/ryp3cxws15gb_yqrpvzf7jnw0000gn/T//qemu-conf-29177-32735-28850.exe /var/folders/_m/ryp3cxws15gb_yqrpvzf7jnw0000gn/T//qemu-conf-22590-32735-21226.c -m64 -framework CoreFoundation -framework IOKit -arch x86_64 -g
/var/folders/_m/ryp3cxws15gb_yqrpvzf7jnw0000gn/T//qemu-conf-22590-32735-21226.c:6:5: warning: implicit declaration of function 'accept4' is invalid in C99 [-Wimplicit-function-declaration]
accept4(0, NULL, NULL, SOCK_CLOEXEC);
^
/var/folders/_m/ryp3cxws15gb_yqrpvzf7jnw0000gn/T//qemu-conf-22590-32735-21226.c:6:28: error: use of undeclared identifier 'SOCK_CLOEXEC'
accept4(0, NULL, NULL, SOCK_CLOEXEC);
f- Linker failure due to the use of unknown option
EX:
cc -m64 -DOS_OBJECT_USE_OBJC=0 -arch x86_64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -Wno-string-plus-int -Wno-initializer-overrides -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-definition -Wtype-limits -fstack-protector-all -o /var/folders/_m/ryp3cxws15gb_yqrpvzf7jnw0000gn/T//qemu-conf-29177-32735-28850.exe /var/folders/_m/ryp3cxws15gb_yqrpvzf7jnw0000gn/T//qemu-conf-22590-32735-21226.c -m64 -framework CoreFoundation -framework IOKit -arch x86_64 -g -Wl,-Ttext-segment=0x60000000
ld: unknown option: -Ttext-segment=0x60000000
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Thanks!