From ad17ffa034554515d7c02dc6122b19a2a01bb590 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Mon, 5 Jan 2009 14:05:29 +0000 Subject: [PATCH] split version script into multiple files * src/Makefile.am (PRIVSYMFILES): Define. (EXTRA_DIST): Append $(PRIVSYMFILES). (libvirt.syms): New rule. Reflect renaming: s/libvirt_sym.version/libvirt.syms/. (BUILT_SOURCES): Depend on libvirt.syms. * configure.in: Define ENABLE_DEBUG as an automake conditional. (AC_OUTPUT): Remove src/libvirt_sym.version. * src/.cvsignore: s/libvirt_sym.version/libvirt.syms/. * src/.gitignore: Regenerate. * src/libvirt_public.syms: Renamed from src/libvirt_sym.version.in. * src/libvirt_debug.syms: New file. * src/libvirt_private.syms: New file. Author: John Levon --- ChangeLog | 20 ++ configure.in | 2 +- src/.cvsignore | 2 +- src/.gitignore | 2 +- src/Makefile.am | 52 ++- src/libvirt_debug.syms | 19 ++ src/libvirt_private.syms | 346 ++++++++++++++++++++ src/libvirt_public.syms | 240 ++++++++++++++ src/libvirt_sym.version.in | 626 ------------------------------------- 9 files changed, 673 insertions(+), 636 deletions(-) create mode 100644 src/libvirt_debug.syms create mode 100644 src/libvirt_private.syms create mode 100644 src/libvirt_public.syms delete mode 100644 src/libvirt_sym.version.in diff --git a/ChangeLog b/ChangeLog index 14425ad795..f97e4c497e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +Mon Jan 5 2009 14:53:48 CET John Levon + + split up linker script, as described below and in + http://thread.gmane.org/gmane.comp.emulators.libvirt/10728 + + split version script into multiple files + * src/Makefile.am (PRIVSYMFILES): Define. + (EXTRA_DIST): Append $(PRIVSYMFILES). + (libvirt.syms): New rule. + Reflect renaming: s/libvirt_sym.version/libvirt.syms/. + (BUILT_SOURCES): Depend on libvirt.syms. + * configure.in: Define ENABLE_DEBUG as an automake conditional. + (AC_OUTPUT): Remove src/libvirt_sym.version. + * src/.cvsignore: s/libvirt_sym.version/libvirt.syms/. + * src/.gitignore: Regenerate. + * src/libvirt_public.syms: Renamed from src/libvirt_sym.version.in. + * src/libvirt_debug.syms: New file. + * src/libvirt_private.syms: New file. + Author: John Levon + Mon Jan 5 14:22:06 CET 2009 Jim Meyering avoid xgettext warning aboug bug-reporting address diff --git a/configure.in b/configure.in index e870004787..3358cffa5d 100644 --- a/configure.in +++ b/configure.in @@ -195,6 +195,7 @@ dnl --enable-debug=(yes|no) AC_ARG_ENABLE([debug], [AC_HELP_STRING([--enable-debug=no/yes], [enable debugging output])],[],[enable_debug=yes]) +AM_CONDITIONAL([ENABLE_DEBUG], test x"$enable_debug" = x"yes") if test x"$enable_debug" = x"yes"; then AC_DEFINE([ENABLE_DEBUG], [], [whether debugging is enabled]) fi @@ -1253,7 +1254,6 @@ AC_OUTPUT(Makefile src/Makefile include/Makefile docs/Makefile \ gnulib/lib/Makefile \ gnulib/tests/Makefile \ libvirt.pc libvirt.spec mingw32-libvirt.spec \ - src/libvirt_sym.version \ po/Makefile.in \ include/libvirt/Makefile include/libvirt/libvirt.h \ python/Makefile python/tests/Makefile \ diff --git a/src/.cvsignore b/src/.cvsignore index cef59e0215..537340f61f 100644 --- a/src/.cvsignore +++ b/src/.cvsignore @@ -15,4 +15,4 @@ libvirt_parthelper libvirt_lxc virsh-net-edit.c virsh-pool-edit.c -libvirt_sym.version +libvirt.syms diff --git a/src/.gitignore b/src/.gitignore index cef59e0215..537340f61f 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -15,4 +15,4 @@ libvirt_parthelper libvirt_lxc virsh-net-edit.c virsh-pool-edit.c -libvirt_sym.version +libvirt.syms diff --git a/src/Makefile.am b/src/Makefile.am index 6c65f91585..984c12a802 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -192,6 +192,8 @@ libvirt_driver_la_SOURCES = \ libvirt_driver_la_CFLAGS = $(XEN_CFLAGS) $(NUMACTL_CFLAGS) libvirt_driver_la_LDFLAGS = $(XEN_LIBS) $(NUMACTL_LIBS) +PRIVSYMFILES = libvirt_private.syms + if WITH_TEST if WITH_DRIVER_MODULES mod_LTLIBRARIES += libvirt_driver_test.la @@ -390,31 +392,67 @@ EXTRA_DIST += \ $(NODE_DEVICE_DRIVER_HAL_SOURCES) \ $(NODE_DEVICE_DRIVER_DEVKIT_SOURCES) +# +# Build our version script. This is composed of three parts: +# +# 1. libvirt_public.syms - public API. These functions are always +# present in the library and should never change incompatibly. +# +# 2. libvirt_private.syms - private API. These symbols are private and +# semantics may change on every release, hence the version number is +# spliced in at build time. This ensures that if libvirtd, virsh, or a +# driver module was built against one libvirt release, it will refuse to +# load with another where symbols may have same names but different +# semantics. Such symbols should never be visible in an (installed) +# public header file. +# +# 3. libvirt_*.syms - dynamic private API. Like libvirt_private.syms, +# except that build options (such as --enable-debug) can mean these +# symbols aren't present at all. +# + +if ENABLE_DEBUG +PRIVSYMFILES += libvirt_debug.syms +endif + +EXTRA_DIST += libvirt_public.syms $(PRIVSYMFILES) + +libvirt.syms: libvirt_public.syms $(PRIVSYMFILES) + rm -f $@-tmp $@ + printf '# WARNING: generated from the following:\n# $^\n\n' >$@-tmp + cat $(srcdir)/libvirt_public.syms >>$@-tmp + printf '\n\n# Private symbols\n\n' >>$@-tmp + printf 'LIBVIRT_PRIVATE_$(VERSION) {\n\n' >>$@-tmp + printf 'global:\n\n' >>$@-tmp + for file in $(PRIVSYMFILES); do \ + cat $(srcdir)/$$file >>$@-tmp; \ + done + printf '\n\nlocal:\n*;\n\n};' >>$@-tmp + chmod a-w $@-tmp + mv $@-tmp libvirt.syms # Empty source list - it merely links a bunch of convenience libs together libvirt_la_SOURCES = libvirt_la_LIBADD += \ @CYGWIN_EXTRA_LIBADD@ ../gnulib/lib/libgnu.la -libvirt_la_LDFLAGS = @VERSION_SCRIPT_FLAGS@libvirt_sym.version \ +libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)libvirt.syms \ -version-info @LIBVIRT_VERSION_INFO@ \ $(COVERAGE_CFLAGS:-f%=-Wc,-f%) \ $(LIBXML_LIBS) $(SELINUX_LIBS) \ $(XEN_LIBS) $(DRIVER_MODULE_LIBS) \ @CYGWIN_EXTRA_LDFLAGS@ @MINGW_EXTRA_LDFLAGS@ libvirt_la_CFLAGS = $(COVERAGE_CFLAGS) -DIN_LIBVIRT -libvirt_la_DEPENDENCIES = $(libvirt_la_LIBADD) libvirt_sym.version +libvirt_la_DEPENDENCIES = $(libvirt_la_LIBADD) libvirt.syms # Create an automake "convenience library" version of libvirt_la, # just for testing, since the test harness requires access to internal # bits and pieces that we don't want to make publicly accessible. noinst_LTLIBRARIES += libvirt_test.la -# Convert libvirt_sym.version -# to libvirt_test_sym.version, and -# remove -version-info X.Y.Z (not needed since this is a convenience library. +# Remove version script from convenience library test_LDFLAGS = \ $$(echo '$(libvirt_la_LDFLAGS)' \ - |sed 's!-Wl,--v.*_sym\.version!!' \ + |sed 's!@VERSION_SCRIPT_FLAGS@libvirt.syms!!' \ |sed 's!-version-info @LIBVIRT_VERSION_INFO@!!') # Just like the above, but with a slightly different set of public symbols. @@ -438,7 +476,7 @@ virsh_LDADD = \ ../gnulib/lib/libgnu.la \ $(VIRSH_LIBS) virsh_CFLAGS = $(COVERAGE_CFLAGS) $(READLINE_CFLAGS) $(NUMACTL_CFLAGS) -BUILT_SOURCES = virsh-net-edit.c virsh-pool-edit.c +BUILT_SOURCES = virsh-net-edit.c virsh-pool-edit.c libvirt.syms virsh-net-edit.c: virsh.c Makefile.am rm -f $@-tmp diff --git a/src/libvirt_debug.syms b/src/libvirt_debug.syms new file mode 100644 index 0000000000..1742a0b438 --- /dev/null +++ b/src/libvirt_debug.syms @@ -0,0 +1,19 @@ +# +# These symbols are dependent upon --enable-debug. +# + + +# libvirt_internal.h +debugFlag; + + +# logging.h +virLogMessage; +virLogSetDefaultPriority; +virLogDefineFilter; +virLogDefineOutput; +virLogParseFilters; +virLogParseOutputs; +virLogStartup; +virLogShutdown; +virLogReset; diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms new file mode 100644 index 0000000000..fb7b5f9af0 --- /dev/null +++ b/src/libvirt_private.syms @@ -0,0 +1,346 @@ +# +# General private symbols. See Makefile.am. +# + + +# bridge.h +brAddBridge; +brAddInterface; +brAddTap; +brDeleteBridge; +brInit; +brSetEnableSTP; +brSetForwardDelay; +brSetInetAddress; +brSetInetNetmask; +brSetInterfaceUp; +brShutdown; + + +# buf.h +virBufferVSprintf; +virBufferEscapeString; +virBufferAdd; +virBufferAddChar; +virBufferContentAndReset; +virBufferError; + + +# caps.h +virCapabilitiesAddGuest; +virCapabilitiesAddGuestDomain; +virCapabilitiesAddGuestFeature; +virCapabilitiesAddHostMigrateTransport; +virCapabilitiesAddHostNUMACell; +virCapabilitiesAddHostFeature; +virCapabilitiesDefaultGuestArch; +virCapabilitiesDefaultGuestEmulator; +virCapabilitiesDefaultGuestMachine; +virCapabilitiesFormatXML; +virCapabilitiesFree; +virCapabilitiesNew; +virCapabilitiesSetMacPrefix; + + +# conf.h +virConfNew; +virConfReadFile; +virConfReadMem; +virConfFree; +virConfFreeValue; +virConfGetValue; +virConfSetValue; +virConfWriteFile; +virConfWriteMem; + + +# datatypes.h +virGetDomain; +virGetNetwork; +virGetStoragePool; +virGetStorageVol; +virGetNodeDevice; +virUnrefDomain; + + +# domain_conf.h +virDiskNameToBusDeviceIndex; +virDiskNameToIndex; +virDomainAssignDef; +virDomainConfigFile; +virDomainCpuSetFormat; +virDomainCpuSetParse; +virDomainChrDefFree; +virDomainChrTypeFromString; +virDomainChrTypeToString; +virDomainDefDefaultEmulator; +virDomainDefFormat; +virDomainDefFree; +virDomainDefParseFile; +virDomainDefParseNode; +virDomainDefParseString; +virDomainDeleteConfig; +virDomainDeviceDefFree; +virDomainDeviceDefParse; +virDomainDiskBusTypeToString; +virDomainDiskDefFree; +virDomainDiskDeviceTypeToString; +virDomainDiskQSort; +virDomainFindByID; +virDomainFindByName; +virDomainFindByUUID; +virDomainGraphicsTypeFromString; +virDomainGraphicsDefFree; +virDomainInputDefFree; +virDomainLifecycleTypeFromString; +virDomainLifecycleTypeToString; +virDomainLoadAllConfigs; +virDomainNetDefFree; +virDomainObjFree; +virDomainObjListFree; +virDomainRemoveInactive; +virDomainSaveXML; +virDomainSaveConfig; +virDomainSoundDefFree; +virDomainSoundModelTypeFromString; +virDomainSoundModelTypeToString; +virDomainVirtTypeToString; +virDomainFSDefFree; +virDomainObjLock; +virDomainObjUnlock; + + +# domain_event.h +virDomainEventCallbackListAdd; +virDomainEventCallbackListFree; +virDomainEventCallbackListRemove; +virDomainEventCallbackListRemoveConn; +virDomainEventCallbackListMarkDelete; +virDomainEventCallbackListPurgeMarked; +virDomainEventQueueNew; +virDomainEventQueueFree; +virDomainEventQueuePop; +virDomainEventQueuePush; +virDomainEventNew; +virDomainEventNewFromDom; +virDomainEventNewFromObj; +virDomainEventNewFromDef; +virDomainEventFree; +virDomainEventDispatchDefaultFunc; +virDomainEventDispatch; +virDomainEventQueueDispatch; + + +# driver.h +virDriverLoadModule; + + +# event.h +virEventAddHandle; +virEventAddTimeout; +virEventRemoveHandle; +virEventRemoveTimeout; +virEventUpdateHandle; +virEventUpdateTimeout; + + +# hash.h +virHashAddEntry; +virHashCreate; +virHashForEach; +virHashFree; +virHashLookup; +virHashRemoveEntry; +virHashRemoveSet; +virHashSearch; +virHashSize; + + +# iptables.h +iptablesAddForwardAllowCross; +iptablesAddForwardAllowIn; +iptablesAddForwardAllowOut; +iptablesAddForwardAllowRelatedIn; +iptablesAddForwardMasquerade; +iptablesAddForwardRejectIn; +iptablesAddForwardRejectOut; +iptablesAddTcpInput; +iptablesAddUdpInput; +iptablesContextFree; +iptablesContextNew; +iptablesReloadRules; +iptablesRemoveForwardAllowCross; +iptablesRemoveForwardAllowIn; +iptablesRemoveForwardAllowOut; +iptablesRemoveForwardAllowRelatedIn; +iptablesRemoveForwardMasquerade; +iptablesRemoveForwardRejectIn; +iptablesRemoveForwardRejectOut; +iptablesRemoveTcpInput; +iptablesRemoveUdpInput; +iptablesSaveRules; + + +# libvirt_internal.h +virStateInitialize; +virStateCleanup; +virStateReload; +virStateActive; +virDrvSupportsFeature; +virDomainMigratePrepare; +virDomainMigratePerform; +virDomainMigrateFinish; +virDomainMigratePrepare2; +virDomainMigrateFinish2; +virRegisterDriver; +virRegisterNetworkDriver; +virRegisterStateDriver; +virRegisterStorageDriver; +virRegisterDeviceMonitor; + + +# memory.h +virAlloc; +virAllocN; +virReallocN; +virFree; + + +# network_conf.h +virNetworkAssignDef; +virNetworkDefFormat; +virNetworkDefFree; +virNetworkDefParseFile; +virNetworkDefParseNode; +virNetworkDefParseString; +virNetworkDeleteConfig; +virNetworkFindByName; +virNetworkFindByUUID; +virNetworkLoadAllConfigs; +virNetworkObjListFree; +virNetworkDefParseNode; +virNetworkRemoveInactive; +virNetworkSaveConfig; +virNetworkObjLock; +virNetworkObjUnlock; + + +# nodeinfo.h +virNodeInfoPopulate; +virCapsInitNUMA; + + +# node_device_conf.h +virNodeDeviceObjRemove; +virNodeDevCapTypeToString; +virNodeDeviceFindByName; +virNodeDeviceObjListFree; +virNodeDeviceDefFree; +virNodeDevCapsDefFree; +virNodeDeviceDefFormat; +virNodeDeviceObjLock; +virNodeDeviceObjUnlock; +virNodeDeviceAssignDef; + + +# qparams.h +qparam_get_query; +qparam_query_parse; +free_qparam_set; + + +# stats_linux.h +linuxDomainInterfaceStats; +xenLinuxDomainBlockStats; + + +# storage_backend.h +virStorageBackendForType; +virStorageBackendRunProgNul; +virStorageBackendRunProgRegex; +virStorageBackendStablePath; +virStorageBackendUpdateVolInfo; +virStorageBackendUpdateVolInfoFD; + + +# storage_conf.h +virStoragePoolDefFormat; +virStoragePoolDefFree; +virStoragePoolDefParse; +virStoragePoolLoadAllConfigs; +virStoragePoolObjAssignDef; +virStoragePoolObjClearVols; +virStoragePoolObjDeleteDef; +virStoragePoolObjFindByName; +virStoragePoolObjFindByUUID; +virStoragePoolObjListFree; +virStoragePoolObjRemove; +virStoragePoolObjSaveDef; +virStoragePoolSourceFree; +virStoragePoolSourceListFormat; +virStorageVolDefFindByKey; +virStorageVolDefFindByName; +virStorageVolDefFindByPath; +virStorageVolDefFormat; +virStorageVolDefFree; +virStorageVolDefParse; +virStoragePoolFormatDiskTypeToString; +virStoragePoolFormatFileSystemTypeToString; +virStoragePoolFormatFileSystemNetTypeToString; +virStorageVolFormatFileSystemTypeToString; +virStoragePoolTypeFromString; +virStoragePoolObjLock; +virStoragePoolObjUnlock; + + +# util.h +virFileReadAll; +virStrToLong_i; +virStrToLong_ll; +virStrToLong_ull; +virStrToLong_ui; +virFileLinkPointsTo; +saferead; +safewrite; +virMacAddrCompare; +virEnumFromString; +virEnumToString; +virEventAddHandle; +virEventRemoveHandle; +virExec; +virFormatMacAddr; +virParseMacAddr; +virFileDeletePid; +virFileExists; +virFileHasSuffix; +virFileLinkPointsTo; +virFileMakePath; +virFileOpenTty; +virFileReadLimFD; +virFilePid; +virFileReadPid; +virFileLinkPointsTo; +virParseNumber; +virAsprintf; +virRun; +virSkipSpaces; + + +# uuid.h +virUUIDFormat; +virUUIDGenerate; +virUUIDParse; + + +# virterror_internal.h +virReportErrorHelper; +virErrorMsg; +virRaiseError; + + +# xml.h +virXPathLong; +virXPathNode; +virXPathNodeSet; +virXPathString; +virXMLPropString; diff --git a/src/libvirt_public.syms b/src/libvirt_public.syms new file mode 100644 index 0000000000..be3fb4f737 --- /dev/null +++ b/src/libvirt_public.syms @@ -0,0 +1,240 @@ +# +# Officially exported symbols, for which header +# file definitions are installed in /usr/include/libvirt +# either from libvirt.h and virterror.h +# +# Versions here are *fixed* to match the libvirt version +# at which the symbol was introduced. This ensures that +# a new client app requiring symbol foo() can't accidentally +# run with old libvirt.so not providing foo() - the global +# soname version info can't enforce this since we never +# change the soname +# +LIBVIRT_0.0.3 { + global: + virConnectClose; + virConnectGetType; + virConnectGetVersion; + virConnectListDomains; + virConnectNumOfDomains; + virConnectOpen; + virConnectOpenReadOnly; + + virDomainCreateLinux; + virDomainDestroy; + virDomainFree; + virDomainGetID; + virDomainGetInfo; + virDomainGetMaxMemory; + virDomainGetName; + virDomainGetOSType; + virDomainGetXMLDesc; + virDomainLookupByID; + virDomainLookupByName; + virDomainRestore; + virDomainResume; + virDomainSave; + virDomainSetMaxMemory; + virDomainShutdown; + virDomainSuspend; + + virGetVersion; +}; + +LIBVIRT_0.0.5 { + global: + virDomainLookupByUUID; + virDomainGetUUID; +} LIBVIRT_0.0.3; + +LIBVIRT_0.1.0 { + global: + virInitialize; + virNodeGetInfo; + virDomainReboot; + + virCopyLastError; + virConnSetErrorFunc; + virResetLastError; + virResetError; + virConnGetLastError; + virGetLastError; + virSetErrorFunc; + virConnCopyLastError; + virConnResetLastError; + virDefaultErrorFunc; +} LIBVIRT_0.0.5; + +LIBVIRT_0.1.1 { + global: + virDomainLookupByUUIDString; + virDomainGetUUIDString; + virDomainSetMemory; + virDomainDefineXML; + virDomainCreate; + virDomainUndefine; + virConnectListDefinedDomains; +} LIBVIRT_0.1.0; + +LIBVIRT_0.1.4 { + global: + virDomainSetVcpus; + virDomainPinVcpu; + virDomainGetVcpus; +} LIBVIRT_0.1.1; + +LIBVIRT_0.1.5 { + global: + virConnectNumOfDefinedDomains; +} LIBVIRT_0.1.4; + +LIBVIRT_0.1.9 { + global: + virDomainCoreDump; + virDomainAttachDevice; + virDomainDetachDevice; +} LIBVIRT_0.1.5; + +LIBVIRT_0.2.0 { + global: + virConnectNumOfNetworks; + virConnectListNetworks; + virConnectNumOfDefinedNetworks; + virConnectListDefinedNetworks; + virNetworkLookupByName; + virNetworkLookupByUUID; + virNetworkLookupByUUIDString; + virNetworkCreateXML; + virNetworkDefineXML; + virNetworkUndefine; + virNetworkCreate; + virNetworkDestroy; + virNetworkFree; + virNetworkGetName; + virNetworkGetUUID; + virNetworkGetUUIDString; + virNetworkGetXMLDesc; + virNetworkGetBridgeName; +} LIBVIRT_0.1.9; + +LIBVIRT_0.2.1 { + global: + virConnectGetCapabilities; + virConnectGetMaxVcpus; + virDomainGetMaxVcpus; + virDomainGetAutostart; + virDomainSetAutostart; + virNetworkGetAutostart; + virNetworkSetAutostart; +} LIBVIRT_0.2.0; + +LIBVIRT_0.2.3 { + global: + virDomainGetSchedulerType; + virDomainGetSchedulerParameters; + virDomainSetSchedulerParameters; +} LIBVIRT_0.2.1; + +LIBVIRT_0.3.0 { + global: + virConnectGetHostname; + virConnectGetURI; + virDomainGetConnect; + virNetworkGetConnect; +} LIBVIRT_0.2.3; + +LIBVIRT_0.3.2 { + global: + virDomainMigrate; + virDomainBlockStats; + virDomainInterfaceStats; +} LIBVIRT_0.3.0; + +LIBVIRT_0.3.3 { + global: + virNodeGetCellsFreeMemory; + virNodeGetFreeMemory; +} LIBVIRT_0.3.2; + +LIBVIRT_0.4.0 { + global: + virConnectOpenAuth; + virConnectAuthPtrDefault; +} LIBVIRT_0.3.3; + +LIBVIRT_0.4.1 { + global: + virStoragePoolGetConnect; + virConnectNumOfStoragePools; + virConnectNumOfDefinedStoragePools; + virConnectListStoragePools; + virConnectListDefinedStoragePools; + virStoragePoolLookupByName; + virStoragePoolLookupByUUID; + virStoragePoolLookupByUUIDString; + virStoragePoolLookupByVolume; + virStoragePoolCreateXML; + virStoragePoolDefineXML; + virStoragePoolUndefine; + virStoragePoolCreate; + virStoragePoolBuild; + virStoragePoolDestroy; + virStoragePoolDelete; + virStoragePoolRefresh; + virStoragePoolFree; + virStoragePoolGetName; + virStoragePoolGetUUID; + virStoragePoolGetUUIDString; + virStoragePoolGetInfo; + virStoragePoolGetXMLDesc; + virStoragePoolSetAutostart; + virStoragePoolGetAutostart; + virStoragePoolNumOfVolumes; + virStoragePoolListVolumes; + + virStorageVolGetConnect; + virStorageVolLookupByName; + virStorageVolLookupByKey; + virStorageVolLookupByPath; + virStorageVolCreateXML; + virStorageVolDelete; + virStorageVolFree; + virStorageVolGetName; + virStorageVolGetKey; + virStorageVolGetInfo; + virStorageVolGetXMLDesc; + virStorageVolGetPath; +} LIBVIRT_0.4.0; + +LIBVIRT_0.4.2 { + global: + virDomainBlockPeek; + virDomainMemoryPeek; +} LIBVIRT_0.4.1; + +LIBVIRT_0.4.5 { + global: + virConnectFindStoragePoolSources; +} LIBVIRT_0.4.2; + +LIBVIRT_0.5.0 { + global: + virDomainCreateXML; + virEventRegisterImpl; + virConnectDomainEventRegister; + virConnectDomainEventDeregister; + + virNodeNumOfDevices; + virNodeListDevices; + virNodeDeviceLookupByName; + virNodeDeviceFree; + virNodeDeviceGetXMLDesc; + virNodeDeviceGetName; + virNodeDeviceGetParent; + virNodeDeviceNumOfCaps; + virNodeDeviceListCaps; + +} LIBVIRT_0.4.5; + +# no new entry point in 0.5.1 +# .... define new API here using predicted next version number .... diff --git a/src/libvirt_sym.version.in b/src/libvirt_sym.version.in deleted file mode 100644 index de919daf4f..0000000000 --- a/src/libvirt_sym.version.in +++ /dev/null @@ -1,626 +0,0 @@ -# -# WARNING: libvirt_sym.version.in is the master file -# -# WARNING: libvirt_sym.version is auto-generated by configure -# - -# -# First officially exported symbols, for which header -# file definitions are installed in /usr/include/libvirt -# either from libvirt.h and virterror.h -# -# Versions here are *fixed* to match the libvirt version -# at which the symbol was introduced. This ensures that -# a new client app requiring symbol foo() can't accidentally -# run with old libvirt.so not providing foo() - the global -# soname version info can't enforce this since we never -# change the soname -# -LIBVIRT_0.0.3 { - global: - virConnectClose; - virConnectGetType; - virConnectGetVersion; - virConnectListDomains; - virConnectNumOfDomains; - virConnectOpen; - virConnectOpenReadOnly; - - virDomainCreateLinux; - virDomainDestroy; - virDomainFree; - virDomainGetID; - virDomainGetInfo; - virDomainGetMaxMemory; - virDomainGetName; - virDomainGetOSType; - virDomainGetXMLDesc; - virDomainLookupByID; - virDomainLookupByName; - virDomainRestore; - virDomainResume; - virDomainSave; - virDomainSetMaxMemory; - virDomainShutdown; - virDomainSuspend; - - virGetVersion; -}; - -LIBVIRT_0.0.5 { - global: - virDomainLookupByUUID; - virDomainGetUUID; -} LIBVIRT_0.0.3; - -LIBVIRT_0.1.0 { - global: - virInitialize; - virNodeGetInfo; - virDomainReboot; - - virCopyLastError; - virConnSetErrorFunc; - virResetLastError; - virResetError; - virConnGetLastError; - virGetLastError; - virSetErrorFunc; - virConnCopyLastError; - virConnResetLastError; - virDefaultErrorFunc; -} LIBVIRT_0.0.5; - -LIBVIRT_0.1.1 { - global: - virDomainLookupByUUIDString; - virDomainGetUUIDString; - virDomainSetMemory; - virDomainDefineXML; - virDomainCreate; - virDomainUndefine; - virConnectListDefinedDomains; -} LIBVIRT_0.1.0; - -LIBVIRT_0.1.4 { - global: - virDomainSetVcpus; - virDomainPinVcpu; - virDomainGetVcpus; -} LIBVIRT_0.1.1; - -LIBVIRT_0.1.5 { - global: - virConnectNumOfDefinedDomains; -} LIBVIRT_0.1.4; - -LIBVIRT_0.1.9 { - global: - virDomainCoreDump; - virDomainAttachDevice; - virDomainDetachDevice; -} LIBVIRT_0.1.5; - -LIBVIRT_0.2.0 { - global: - virConnectNumOfNetworks; - virConnectListNetworks; - virConnectNumOfDefinedNetworks; - virConnectListDefinedNetworks; - virNetworkLookupByName; - virNetworkLookupByUUID; - virNetworkLookupByUUIDString; - virNetworkCreateXML; - virNetworkDefineXML; - virNetworkUndefine; - virNetworkCreate; - virNetworkDestroy; - virNetworkFree; - virNetworkGetName; - virNetworkGetUUID; - virNetworkGetUUIDString; - virNetworkGetXMLDesc; - virNetworkGetBridgeName; -} LIBVIRT_0.1.9; - -LIBVIRT_0.2.1 { - global: - virConnectGetCapabilities; - virConnectGetMaxVcpus; - virDomainGetMaxVcpus; - virDomainGetAutostart; - virDomainSetAutostart; - virNetworkGetAutostart; - virNetworkSetAutostart; -} LIBVIRT_0.2.0; - -LIBVIRT_0.2.3 { - global: - virDomainGetSchedulerType; - virDomainGetSchedulerParameters; - virDomainSetSchedulerParameters; -} LIBVIRT_0.2.1; - -LIBVIRT_0.3.0 { - global: - virConnectGetHostname; - virConnectGetURI; - virDomainGetConnect; - virNetworkGetConnect; -} LIBVIRT_0.2.3; - -LIBVIRT_0.3.2 { - global: - virDomainMigrate; - virDomainBlockStats; - virDomainInterfaceStats; -} LIBVIRT_0.3.0; - -LIBVIRT_0.3.3 { - global: - virNodeGetCellsFreeMemory; - virNodeGetFreeMemory; -} LIBVIRT_0.3.2; - -LIBVIRT_0.4.0 { - global: - virConnectOpenAuth; - virConnectAuthPtrDefault; -} LIBVIRT_0.3.3; - -LIBVIRT_0.4.1 { - global: - virStoragePoolGetConnect; - virConnectNumOfStoragePools; - virConnectNumOfDefinedStoragePools; - virConnectListStoragePools; - virConnectListDefinedStoragePools; - virStoragePoolLookupByName; - virStoragePoolLookupByUUID; - virStoragePoolLookupByUUIDString; - virStoragePoolLookupByVolume; - virStoragePoolCreateXML; - virStoragePoolDefineXML; - virStoragePoolUndefine; - virStoragePoolCreate; - virStoragePoolBuild; - virStoragePoolDestroy; - virStoragePoolDelete; - virStoragePoolRefresh; - virStoragePoolFree; - virStoragePoolGetName; - virStoragePoolGetUUID; - virStoragePoolGetUUIDString; - virStoragePoolGetInfo; - virStoragePoolGetXMLDesc; - virStoragePoolSetAutostart; - virStoragePoolGetAutostart; - virStoragePoolNumOfVolumes; - virStoragePoolListVolumes; - - virStorageVolGetConnect; - virStorageVolLookupByName; - virStorageVolLookupByKey; - virStorageVolLookupByPath; - virStorageVolCreateXML; - virStorageVolDelete; - virStorageVolFree; - virStorageVolGetName; - virStorageVolGetKey; - virStorageVolGetInfo; - virStorageVolGetXMLDesc; - virStorageVolGetPath; -} LIBVIRT_0.4.0; - -LIBVIRT_0.4.2 { - global: - virDomainBlockPeek; - virDomainMemoryPeek; -} LIBVIRT_0.4.1; - -LIBVIRT_0.4.5 { - global: - virConnectFindStoragePoolSources; -} LIBVIRT_0.4.2; - -LIBVIRT_0.5.0 { - global: - virDomainCreateXML; - virEventRegisterImpl; - virConnectDomainEventRegister; - virConnectDomainEventDeregister; - - virNodeNumOfDevices; - virNodeListDevices; - virNodeDeviceLookupByName; - virNodeDeviceFree; - virNodeDeviceGetXMLDesc; - virNodeDeviceGetName; - virNodeDeviceGetParent; - virNodeDeviceNumOfCaps; - virNodeDeviceListCaps; - -} LIBVIRT_0.4.5; - -# no new entry point in 0.5.1 -# .... define new API here using predicted next version number .... - - - - -# Finally these symbols are private and semantics may change -# on every release, hence the version number is spliced in at -# build time. This ensures that if libvirtd, virsh, or a driver -# module was built against one libvirt release, it will refuse -# to load with another where symbols may have same names but -# different semantics. -# -# No header files are provided outside the source tree. -# -# Keep this section ordered alphabetically by header file name -# -# Symbols here are only for use by virsh, libvirtd and dlopen -# driver modules -# -LIBVIRT_PRIVATE_@VERSION@ { - - global: - # bridge.h - brAddBridge; - brAddInterface; - brAddTap; - brDeleteBridge; - brInit; - brSetEnableSTP; - brSetForwardDelay; - brSetInetAddress; - brSetInetNetmask; - brSetInterfaceUp; - brShutdown; - - - # buf.h - virBufferVSprintf; - virBufferEscapeString; - virBufferAdd; - virBufferAddChar; - virBufferContentAndReset; - virBufferError; - - - # caps.h - virCapabilitiesAddGuest; - virCapabilitiesAddGuestDomain; - virCapabilitiesAddGuestFeature; - virCapabilitiesAddHostMigrateTransport; - virCapabilitiesAddHostNUMACell; - virCapabilitiesAddHostFeature; - virCapabilitiesDefaultGuestArch; - virCapabilitiesDefaultGuestEmulator; - virCapabilitiesDefaultGuestMachine; - virCapabilitiesFormatXML; - virCapabilitiesFree; - virCapabilitiesNew; - virCapabilitiesSetMacPrefix; - - - # conf.h - virConfNew; - virConfReadFile; - virConfReadMem; - virConfFree; - virConfFreeValue; - virConfGetValue; - virConfSetValue; - virConfWriteFile; - virConfWriteMem; - - - # datatypes.h - virGetDomain; - virGetNetwork; - virGetStoragePool; - virGetStorageVol; - virGetNodeDevice; - virUnrefDomain; - - - # domain_conf.h - virDiskNameToBusDeviceIndex; - virDiskNameToIndex; - virDomainAssignDef; - virDomainConfigFile; - virDomainCpuSetFormat; - virDomainCpuSetParse; - virDomainChrDefFree; - virDomainChrTypeFromString; - virDomainChrTypeToString; - virDomainDefDefaultEmulator; - virDomainDefFormat; - virDomainDefFree; - virDomainDefParseFile; - virDomainDefParseNode; - virDomainDefParseString; - virDomainDeleteConfig; - virDomainDeviceDefFree; - virDomainDeviceDefParse; - virDomainDiskBusTypeToString; - virDomainDiskDefFree; - virDomainDiskDeviceTypeToString; - virDomainDiskQSort; - virDomainFindByID; - virDomainFindByName; - virDomainFindByUUID; - virDomainGraphicsTypeFromString; - virDomainGraphicsDefFree; - virDomainInputDefFree; - virDomainLifecycleTypeFromString; - virDomainLifecycleTypeToString; - virDomainLoadAllConfigs; - virDomainNetDefFree; - virDomainObjFree; - virDomainObjListFree; - virDomainRemoveInactive; - virDomainSaveXML; - virDomainSaveConfig; - virDomainSoundDefFree; - virDomainSoundModelTypeFromString; - virDomainSoundModelTypeToString; - virDomainVirtTypeToString; - virDomainFSDefFree; - virDomainObjLock; - virDomainObjUnlock; - - - # domain_event.h - virDomainEventCallbackListAdd; - virDomainEventCallbackListFree; - virDomainEventCallbackListRemove; - virDomainEventCallbackListRemoveConn; - virDomainEventCallbackListMarkDelete; - virDomainEventCallbackListPurgeMarked; - virDomainEventQueueNew; - virDomainEventQueueFree; - virDomainEventQueuePop; - virDomainEventQueuePush; - virDomainEventNew; - virDomainEventNewFromDom; - virDomainEventNewFromObj; - virDomainEventNewFromDef; - virDomainEventFree; - virDomainEventDispatchDefaultFunc; - virDomainEventDispatch; - virDomainEventQueueDispatch; - - - - # driver.h - virDriverLoadModule; - - - # event.h - virEventAddHandle; - virEventAddTimeout; - virEventRemoveHandle; - virEventRemoveTimeout; - virEventUpdateHandle; - virEventUpdateTimeout; - - - # hash.h - virHashAddEntry; - virHashCreate; - virHashForEach; - virHashFree; - virHashLookup; - virHashRemoveEntry; - virHashRemoveSet; - virHashSearch; - virHashSize; - - - # iptables.h - iptablesAddForwardAllowCross; - iptablesAddForwardAllowIn; - iptablesAddForwardAllowOut; - iptablesAddForwardAllowRelatedIn; - iptablesAddForwardMasquerade; - iptablesAddForwardRejectIn; - iptablesAddForwardRejectOut; - iptablesAddTcpInput; - iptablesAddUdpInput; - iptablesContextFree; - iptablesContextNew; - iptablesReloadRules; - iptablesRemoveForwardAllowCross; - iptablesRemoveForwardAllowIn; - iptablesRemoveForwardAllowOut; - iptablesRemoveForwardAllowRelatedIn; - iptablesRemoveForwardMasquerade; - iptablesRemoveForwardRejectIn; - iptablesRemoveForwardRejectOut; - iptablesRemoveTcpInput; - iptablesRemoveUdpInput; - iptablesSaveRules; - - - # libvirt_internal.h - debugFlag; - virStateInitialize; - virStateCleanup; - virStateReload; - virStateActive; - virDrvSupportsFeature; - virDomainMigratePrepare; - virDomainMigratePerform; - virDomainMigrateFinish; - virDomainMigratePrepare2; - virDomainMigrateFinish2; - virRegisterDriver; - virRegisterNetworkDriver; - virRegisterStateDriver; - virRegisterStorageDriver; - virRegisterDeviceMonitor; - - /* logging.h */ - virLogSetDefaultPriority; - virLogDefineFilter; - virLogDefineOutput; - virLogParseFilters; - virLogParseOutputs; - virLogStartup; - virLogShutdown; - virLogReset; - virLogMessage; - - # memory.h - virAlloc; - virAllocN; - virReallocN; - virFree; - - - # network_conf.h - virNetworkAssignDef; - virNetworkDefFormat; - virNetworkDefFree; - virNetworkDefParseFile; - virNetworkDefParseNode; - virNetworkDefParseString; - virNetworkDeleteConfig; - virNetworkFindByName; - virNetworkFindByUUID; - virNetworkLoadAllConfigs; - virNetworkObjListFree; - virNetworkDefParseNode; - virNetworkRemoveInactive; - virNetworkSaveConfig; - virNetworkObjLock; - virNetworkObjUnlock; - - - # nodeinfo.h - virNodeInfoPopulate; - virCapsInitNUMA; - - - # node_device_conf.h - virNodeDeviceObjRemove; - virNodeDevCapTypeToString; - virNodeDeviceFindByName; - virNodeDeviceObjListFree; - virNodeDeviceDefFree; - virNodeDevCapsDefFree; - virNodeDeviceDefFormat; - virNodeDeviceObjLock; - virNodeDeviceObjUnlock; - virNodeDeviceAssignDef; - - - # qparams.h - qparam_get_query; - qparam_query_parse; - free_qparam_set; - - - # stats_linux.h - linuxDomainInterfaceStats; - xenLinuxDomainBlockStats; - - - # storage_backend.h - virStorageBackendForType; - virStorageBackendRunProgNul; - virStorageBackendRunProgRegex; - virStorageBackendStablePath; - virStorageBackendUpdateVolInfo; - virStorageBackendUpdateVolInfoFD; - - - # storage_conf.h - virStoragePoolDefFormat; - virStoragePoolDefFree; - virStoragePoolDefParse; - virStoragePoolLoadAllConfigs; - virStoragePoolObjAssignDef; - virStoragePoolObjClearVols; - virStoragePoolObjDeleteDef; - virStoragePoolObjFindByName; - virStoragePoolObjFindByUUID; - virStoragePoolObjListFree; - virStoragePoolObjRemove; - virStoragePoolObjSaveDef; - virStoragePoolSourceFree; - virStoragePoolSourceListFormat; - virStorageVolDefFindByKey; - virStorageVolDefFindByName; - virStorageVolDefFindByPath; - virStorageVolDefFormat; - virStorageVolDefFree; - virStorageVolDefParse; - virStoragePoolFormatDiskTypeToString; - virStoragePoolFormatFileSystemTypeToString; - virStoragePoolFormatFileSystemNetTypeToString; - virStorageVolFormatFileSystemTypeToString; - virStoragePoolTypeFromString; - virStoragePoolObjLock; - virStoragePoolObjUnlock; - - - # util.h - virFileReadAll; - virStrToLong_i; - virStrToLong_ll; - virStrToLong_ull; - virStrToLong_ui; - virFileLinkPointsTo; - saferead; - safewrite; - virMacAddrCompare; - virEnumFromString; - virEnumToString; - virEventAddHandle; - virEventRemoveHandle; - virExec; - virFormatMacAddr; - virParseMacAddr; - virFileDeletePid; - virFileExists; - virFileHasSuffix; - virFileLinkPointsTo; - virFileMakePath; - virFileOpenTty; - virFileReadLimFD; - virFilePid; - virFileReadPid; - virFileLinkPointsTo; - virParseNumber; - virAsprintf; - virRun; - virSkipSpaces; - - - # uuid.h - virUUIDFormat; - virUUIDGenerate; - virUUIDParse; - - - # virterror_internal.h - virReportErrorHelper; - virErrorMsg; - virRaiseError; - - - # xml.h - virXPathLong; - virXPathNode; - virXPathNodeSet; - virXPathString; - virXMLPropString; - - - # Finally everything else is totally private - local: - *; -};