[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 05/39] fdsets: use weak aliases instead of qe
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH v2 05/39] fdsets: use weak aliases instead of qemu-tool.c/qemu-user.c |
Date: |
Fri, 16 Nov 2012 17:52:34 +0000 |
On 16 November 2012 09:35, Paolo Bonzini <address@hidden> wrote:
> Ok, I reproduced the original binutils bug, and found a typo in the
> weakrefs implementation. Does this work for you?
>
> diff --git a/compiler.h b/compiler.h
> index 55d7d74..d552757 100644
> --- a/compiler.h
> +++ b/compiler.h
> @@ -50,11 +50,12 @@
> # define __printf__ __gnu_printf__
> # endif
> # endif
> -# if defined(__APPLE__)
> +# if defined(__APPLE__) || defined(_WIN32)
> # define QEMU_WEAK_ALIAS(newname, oldname) \
> - static typeof(oldname) weak_##newname __attribute__((unused,
> weakref(#oldname)))
> + static typeof(oldname) weak_##newname __attribute__((unused,
> weakref(#newname)))
> # define QEMU_WEAK_REF(newname, oldname) (weak_##newname ? weak_##newname :
> oldname)
> # else
> +#error
> # define QEMU_WEAK_ALIAS(newname, oldname) \
> typeof(oldname) newname __attribute__((weak, alias (#oldname)))
> # define QEMU_WEAK_REF(newname, oldname) newname
This change makes compilation fail with clang:
LINK qemu-ga
Undefined symbols for architecture x86_64:
"_monitor_fdset_dup_fd_add", referenced from:
_qemu_open in osdep.o
"_monitor_fdset_dup_fd_remove", referenced from:
_qemu_close in osdep.o
"_monitor_fdset_get_fd", referenced from:
_qemu_open in osdep.o
"_monitor_get_fd", referenced from:
_socket_connect in qemu-sockets.o
_socket_listen in qemu-sockets.o
"_qemu_set_fd_handler2", referenced from:
_inet_connect_addr in qemu-sockets.o
_unix_connect_opts in qemu-sockets.o
_wait_for_connect in qemu-sockets.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
(clang builds OK with current git master.)
-- PMM