On Mon, Dec 15, 2008 at 08:50:33PM +0000, John Levon wrote:
On Sat, Dec 13, 2008 at 06:19:52PM +0000, Daniel P. Berrange wrote:
> > I think the solution to the latter is to provide stubs that return
> > failure codes for every symbol that can be ./configured out. So we'd
> > introduce a stubs.c file that has these for everything, and compile each
> > of the stubs if the relevant WITH_ option isn't set.
>
> I think I'd be more inclined to split up the libvirt_sym.version.in
> file into pieces, one providing all the public API symbols, which
> would never change. Then for all the private symbols have them in
> a file matching the source file, eg for domain_conf.h, have a file
> domain_conf.sym. Finally have a rule to merge all the .sym files
> using the same #ifdef as we use to turn on/off various files
It's actually not clear to me why some of these are even in the version
script. For example, why is brSetEnableSTP() there?
It is used from the network_driver.c file, and that is linked to the
daemon, while brSetEnableSTP is part of the .so, so it has to be added
to the private exports section. About 70% of them are there for that
reason. Then, if we build drivers as dlopen()'able modules, even more
needed to be exported in the private section.
Daniel
--
|: Red Hat, Engineering, London -o-
http://people.redhat.com/berrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org -o-
http://ovirt.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|