Message ID | FA92D092-2DE4-4599-9CD9-EF42831F345E@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 30/03/2016 18:35, Programmingkid wrote: > Remove macro that prevents event_notifier_init_fd() function from being compiled on Mac OS X. > > This patch fixes this error: > > Undefined symbols for architecture x86_64: > "_event_notifier_init_fd", referenced from: > _process_msg in ivshmem.o > ld: symbol(s) not found for architecture x86_64 > collect2: error: ld returned 1 exit status > make[1]: *** [qemu-system-ppc] Error 1 > make: *** [subdir-ppc-softmmu] Error 2 > > > Signed-off-by: John Arbuckle <programmingkidx@gmail.com> This is intentional, this feature of ivshmem.o could never work on OS X. I am not sure that failing the build is intentional. Markus, any clue? Paolo
[Wasn't delivered correctly by eggs.gnu.org, resending] Paolo Bonzini <pbonzini@redhat.com> writes: > On 30/03/2016 18:35, Programmingkid wrote: >> Remove macro that prevents event_notifier_init_fd() function from being compiled on Mac OS X. >> >> This patch fixes this error: >> >> Undefined symbols for architecture x86_64: >> "_event_notifier_init_fd", referenced from: >> _process_msg in ivshmem.o >> ld: symbol(s) not found for architecture x86_64 >> collect2: error: ld returned 1 exit status >> make[1]: *** [qemu-system-ppc] Error 1 >> make: *** [subdir-ppc-softmmu] Error 2 >> >> >> Signed-off-by: John Arbuckle <programmingkidx@gmail.com> > > This is intentional, this feature of ivshmem.o could never work on OS X. > I am not sure that failing the build is intentional. Markus, any clue? ivshmem.o should only be linked when CONFIG_EVENTFD is set. pci.mak has CONFIG_IVSHMEM=$(CONFIG_EVENTFD) The compile error shown above indicates CONFIG_EVENTFD=y for make (since ivshmem.o gets linked), but !defined(CONFIG_EVENTFD) for C (or else event_notifier_init_fd() would exist). Your build tree is messed up, or the makefiles are broken. Try starting over with a fresh build tree.
On Apr 8, 2016, at 7:25 AM, Markus Armbruster wrote: > [Wasn't delivered correctly by eggs.gnu.org, resending] > > Paolo Bonzini <pbonzini@redhat.com> writes: > >> On 30/03/2016 18:35, Programmingkid wrote: >>> Remove macro that prevents event_notifier_init_fd() function from being compiled on Mac OS X. >>> >>> This patch fixes this error: >>> >>> Undefined symbols for architecture x86_64: >>> "_event_notifier_init_fd", referenced from: >>> _process_msg in ivshmem.o >>> ld: symbol(s) not found for architecture x86_64 >>> collect2: error: ld returned 1 exit status >>> make[1]: *** [qemu-system-ppc] Error 1 >>> make: *** [subdir-ppc-softmmu] Error 2 >>> >>> >>> Signed-off-by: John Arbuckle <programmingkidx@gmail.com> >> >> This is intentional, this feature of ivshmem.o could never work on OS X. >> I am not sure that failing the build is intentional. Markus, any clue? > > ivshmem.o should only be linked when CONFIG_EVENTFD is set. pci.mak has > > CONFIG_IVSHMEM=$(CONFIG_EVENTFD) > > The compile error shown above indicates CONFIG_EVENTFD=y for make (since > ivshmem.o gets linked), but !defined(CONFIG_EVENTFD) for C (or else > event_notifier_init_fd() would exist). Your build tree is messed up, or > the makefiles are broken. Try starting over with a fresh build tree. I did a fresh clone of the QEMU repository. Then tried building QEMU. This is the error I saw: CC contrib/ivshmem-client/ivshmem-client.o CC contrib/ivshmem-client/main.o LINK ivshmem-client collect2: error: ld terminated with signal 11 [Segmentation fault] make: *** [ivshmem-client] Error 1 make: *** Deleting file `ivshmem-client' It is different from the last error, but it still involves something called ivshmem.
On 14 April 2016 at 19:24, Programmingkid <programmingkidx@gmail.com> wrote: > I did a fresh clone of the QEMU repository. Then tried building QEMU. This is > the error I saw: > > CC contrib/ivshmem-client/ivshmem-client.o > CC contrib/ivshmem-client/main.o > LINK ivshmem-client > collect2: error: ld terminated with signal 11 [Segmentation fault] > make: *** [ivshmem-client] Error 1 > make: *** Deleting file `ivshmem-client' > > It is different from the last error, but it still involves something called ivshmem. If ld is segfaulting then either: * your hardware is bad (dodgy memory is infamous for causing random segvs) * your toolchain is buggy (the linker should never segv regardless of input) thanks -- PMM
On Apr 14, 2016, at 2:39 PM, Peter Maydell wrote: > On 14 April 2016 at 19:24, Programmingkid <programmingkidx@gmail.com> wrote: >> I did a fresh clone of the QEMU repository. Then tried building QEMU. This is >> the error I saw: >> >> CC contrib/ivshmem-client/ivshmem-client.o >> CC contrib/ivshmem-client/main.o >> LINK ivshmem-client >> collect2: error: ld terminated with signal 11 [Segmentation fault] >> make: *** [ivshmem-client] Error 1 >> make: *** Deleting file `ivshmem-client' >> >> It is different from the last error, but it still involves something called ivshmem. > > If ld is segfaulting then either: > * your hardware is bad (dodgy memory is infamous for causing random segvs) > * your toolchain is buggy (the linker should never segv regardless of input) Maybe I should try to update my ld command. Are you able to build QEMU on Mac OS X using the most recent commit?
On 14 April 2016 at 19:47, Programmingkid <programmingkidx@gmail.com> wrote: > > On Apr 14, 2016, at 2:39 PM, Peter Maydell wrote: > >> On 14 April 2016 at 19:24, Programmingkid <programmingkidx@gmail.com> wrote: >>> I did a fresh clone of the QEMU repository. Then tried building QEMU. This is >>> the error I saw: >>> >>> CC contrib/ivshmem-client/ivshmem-client.o >>> CC contrib/ivshmem-client/main.o >>> LINK ivshmem-client >>> collect2: error: ld terminated with signal 11 [Segmentation fault] >>> make: *** [ivshmem-client] Error 1 >>> make: *** Deleting file `ivshmem-client' >>> >>> It is different from the last error, but it still involves something called ivshmem. >> >> If ld is segfaulting then either: >> * your hardware is bad (dodgy memory is infamous for causing random segvs) >> * your toolchain is buggy (the linker should never segv regardless of input) > Maybe I should try to update my ld command. > > Are you able to build QEMU on Mac OS X using the most recent commit? Yes. I test build every merge on OSX before pushing it to master. In my config ivshmem-client is built, links ok and I've just tested and it runs (at least enough to print out a usage message). thanks -- PMM
diff --git a/util/event_notifier-posix.c b/util/event_notifier-posix.c index e150301..11cef87 100644 --- a/util/event_notifier-posix.c +++ b/util/event_notifier-posix.c @@ -21,7 +21,6 @@ #include <sys/eventfd.h> #endif -#ifdef CONFIG_EVENTFD /* * Initialize @e with existing file descriptor @fd. * @fd must be a genuine eventfd object, emulation with pipe won't do. @@ -31,7 +30,6 @@ void event_notifier_init_fd(EventNotifier *e, int fd) e->rfd = fd; e->wfd = fd; } -#endif int event_notifier_init(EventNotifier *e, int active) {
Remove macro that prevents event_notifier_init_fd() function from being compiled on Mac OS X. This patch fixes this error: Undefined symbols for architecture x86_64: "_event_notifier_init_fd", referenced from: _process_msg in ivshmem.o ld: symbol(s) not found for architecture x86_64 collect2: error: ld returned 1 exit status make[1]: *** [qemu-system-ppc] Error 1 make: *** [subdir-ppc-softmmu] Error 2 Signed-off-by: John Arbuckle <programmingkidx@gmail.com> --- util/event_notifier-posix.c | 2 -- 1 file changed, 2 deletions(-)