
On 09/27/2013 01:01 PM, Jason Helfman wrote:
On Fri, Sep 27, 2013 at 4:57 AM, Eric Blake <eblake@redhat.com> wrote:
On 09/27/2013 01:35 AM, Michal Privoznik wrote:
make[3]: Entering directory `/home/zippy/work/tmp/a/libvirt-1.1.2/gnulib/lib' CC allocator.lo In file included from allocator.c:4:0: ./stdlib.h:76:8: error: redefinition of 'struct random_data' struct random_data ^ In file included from ./stdlib.h:36:0, from allocator.c:4: /usr/include/stdlib.h:349:8: note: originally defined here struct random_data ^
Can you show me the config.log output related to detecting whether 'struct random_data' exists? Is this a case of circular header inclusion on FreeBSD (that is, does <sys/types.h> try to recursively include <stdlib.h> to pick up the struct?)
Should be available here: http://people.freebsd.org/~jgh/files/libvirt_83amd64.tar.xz
Thanks; looking through that, I see: configure:31404: checking for struct random_data configure:31404: cc -std=gnu99 -c -O2 -pipe -fno-strict-aliasing -D_THREAD_SAFE -D_THREAD_SAFE conftest.c >&5 conftest.c: In function 'main': conftest.c:346: error: invalid application of 'sizeof' to incomplete type 'struct random_data' ... | #include <stdlib.h> | #if HAVE_RANDOM_H | # include <random.h> | #endif | | | int | main () | { | if (sizeof (struct random_data)) So, what has to be included prior to <stdlib.h> for the forward declaration of struct random_data in that header to no longer be an incomplete type? Can you grep your system headers and find what all mentions struct random_data? -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org