On Mon, Mar 19, 2007 at 02:46:05PM +0100, Jim Meyering wrote:
Hello,
I compiled the latest-from-cvs libvirt and was surprised to
see link failures. It was because I used -fno-common:
.libs/libvirt_la-hash.o:(.bss+0x0): multiple definition of `virDomainFlags'
.libs/libvirt_la-libvirt.o:(.bss+0x0): first defined here
libvirt_qemud-buf.o:(.bss+0x0): multiple definition of `qemud_packet_type'
libvirt_qemud-qemud.o:(.bss+0x0): first defined here
libvirt_qemud-buf.o:(.bss+0x4): multiple definition of `qemud_domain_runstate'
libvirt_qemud-qemud.o:(.bss+0x4): first defined here
Those happen when more than one compilation unit contains a non-extern
declaration of the same global variable.
In each of the three cases, the name in question appears only
at the point of declaration, so one could conceivably simply
remove the name, leaving the anonymous "enum". But then there
would be no way to declare a variable to be of that type, so
I chose to reuse the name, making it the name of the enum.
If name space pollution is an issue, and applications that use
those headers won't need those types, then it'd be better to
remove the names altogether.
Yes, makes sense, applied and commited,
thanks a lot !
Daniel
--
Red Hat Virtualization group
http://redhat.com/virtualization/
Daniel Veillard | virtualization library
http://libvirt.org/
veillard(a)redhat.com | libxml GNOME XML XSLT toolkit
http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine
http://rpmfind.net/