After `make clean` and `git clean -x -f -d` `git checkout v2.1.0 && configure --prefix=/home/user/prefix-qemu-2.1.0 && make` fails due to missing declarations
CC qemu-seccomp.o
qemu-seccomp.c:28:1: error: '__NR_select' undeclared here (not in a function)
qemu-seccomp.c:36:1: error: '__NR_mmap' undeclared here (not in a function)
qemu-seccomp.c:57:1: error: '__NR_getrlimit' undeclared here (not in a function)
qemu-seccomp.c:96:1: error: '__NR_time' undeclared here (not in a function)
GEN qmp-marshal.c
qemu-seccomp.c:186:1: error: '__NR_alarm' undeclared here (not in a function)
make: *** [qemu-seccomp.o] Error 1
Same errors for master 8b3030114a449e66c68450acaac4b66f26d91416. `configure`should not succeed for a failing build if the error occurs due to missing dependencies, if it's a bug it needs to be fixed. `config.log` for v2.1.0 and 8b303011... attached. The content is mostly compiler output which I think is unusual for `config.log`, but see for yourself.
I'm building on a debian 7.6 chroot on Synology DSM 5.0. `uname -a` says `Linux diskstatation 3.2.40 #4493 SMP Thu Aug 21 21:43:02 CST 2014 armv7l GNU/Linux`.
After installing some of the missing dependencies, i.e. `apt-get install liblzo2-dev libbsd-dev syslinux-common libhwloc-dev librdmacm-dev libsnappy-dev libibverbs-dev valgrind linux-headers-3.2.0-4-common` I'm getting
CC migration-rdma.o
migration-rdma.c: In function 'ram_chunk_start':
migration-rdma.c:523:12: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
migration-rdma.c: In function '__qemu_rdma_add_block':
migration-rdma.c:556:49: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
migration-rdma.c:557:49: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
migration-rdma.c: In function '__qemu_rdma_delete_block':
migration-rdma.c:664:45: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
migration-rdma.c:699:49: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
migration-rdma.c: In function 'qemu_rdma_search_ram_block':
migration-rdma.c:1113:49: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
migration-rdma.c: In function 'qemu_rdma_register_and_get_keys':
migration-rdma.c:1176:50: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
migration-rdma.c:1177:29: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
migration-rdma.c:1177:51: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
migration-rdma.c:1178:29: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
migration-rdma.c: In function 'qemu_rdma_post_send_control':
migration-rdma.c:1562:36: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
migration-rdma.c: In function 'qemu_rdma_post_recv_control':
migration-rdma.c:1616:37: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
migration-rdma.c: In function 'qemu_rdma_write_one':
migration-rdma.c:1864:16: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
migration-rdma.c:1868:53: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
migration-rdma.c:1922:52: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
migration-rdma.c:1923:50: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
migration-rdma.c:1977:49: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
migration-rdma.c:1998:49: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
migration-rdma.c:2010:58: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
migration-rdma.c: In function 'qemu_rdma_registration_handle':
migration-rdma.c:3027:21: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
migration-rdma.c:3092:41: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
cc1: all warnings being treated as errors
make: *** [migration-rdma.o] Error 1
i.e. earlier errors than before.
On 31 August 2014 13:06, Karl-Philipp Richter <email address hidden> wrote:.
> `configure`should not succeed for a failing build.
Your compile failures are definitely bugs, but it isn't expected that
configure will detect all possible kinds of build failure
in advance.
For what it's worth I always build on ARM as part of my
checks before merging things to master, so this issue isn't
"all armv7l builds are broken" but something more specific
(probably some optional bits of the build which my build
platform doesn't have the dependencies for.)
> qemu-seccomp. c:186:1: error: '__NR_alarm' undeclared here (not in a function)
> make: *** [qemu-seccomp.o] Error 1
Ccing Eduardo for the seccomp compile issues.
> + After installing some of the missing header files (-> configure should 3.2.0-4- common` rdma.c: 523:12: error: cast to pointer from integer of different size [-Werror= int-to- pointer- cast]
> + fail at the right point with a good error message), i.e. `apt-get
> + install liblzo2-dev libbsd-dev syslinux-common libhwloc-dev librdmacm-
> + dev libsnappy-dev libibverbs-dev valgrind linux-headers-
> + I'm getting
> +
> + CC migration-rdma.o
> + migration-rdma.c: In function 'ram_chunk_start':
> + migration-
This probably hasn't been tested on a 32 bit build system :-(
I suggest you work around these bugs by passing configure
--disable-rdma --disable-seccomp while we fix things...
thanks
-- PMM