[Libvir] __attribute__((constructor)) anyone?

Richard W.M. Jones rjones at redhat.com
Fri Feb 23 10:34:45 UTC 2007


Mark McLoughlin wrote:
> On Thu, 2007-02-22 at 20:00 +0000, Daniel P. Berrange wrote:
>> On Sat, Feb 17, 2007 at 01:58:04PM +0000, Richard W.M. Jones wrote:
>>> Would anyone object to a patch using __attribute__((constructor)) 
>>> throughout libvirt rather than all this if(!initialised) initialise() stuff?
>> I don't think that annotation is widely supported enough by constructors
>> for us to be able to use it - in particular I think it'd be a problem for
>> the Solaris guys using libvirt unless they switched to GCC instead of the
>> Sun compilers/linkers.
> 
> 	A better reason[1], IMHO is that it just makes code more obtuse for
> little gain - e.g. what order are they called in? And you'd have weird
> stuff where the handler set by virSetErrorFunc() would not be called if
> an error occurred in a constructor, requiring the library user to also
> use a constructor in order to call virSetErrorFunc() ...

Actually this is an argument for using constructors, because the linker 
should order them in a sensible order taking into account module 
dependencies.  Anyhow, I take the point about people using non-GCC 
compilers (and I'm a bit surprised too ...)  Does anyone know if the 
Solaris compiler supports C99 idioms?  The remote patch currently uses 
C99 idioms all over the place ...

Rich.

-- 
Emerging Technologies, Red Hat  http://et.redhat.com/~rjones/
64 Baker Street, London, W1U 7DF     Mobile: +44 7866 314 421
  "[Negative numbers] darken the very whole doctrines of the equations
  and make dark of the things which are in their nature excessively
  obvious and simple" (Francis Maseres FRS, mathematician, 1759)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3237 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20070223/e5e294f9/attachment-0001.bin>


More information about the libvir-list mailing list