[libxml2] Add symbol versioning to libxml2 shared libs



commit 8ed1072c2d4dac0bc72a8d0ebff7ccc1b338f035
Author: Daniel Veillard <veillard redhat com>
Date:   Thu Aug 20 19:17:36 2009 +0200

    Add symbol versioning to libxml2 shared libs
    
    * libxml2.syms: the symbols with history, going back to 2.4.30
    * Makefile.am configure.in: linking flags detection and use
    * parser.c tree.c valid.c xpointer.c: various cleanup of functions
      which could be made static or simply discarded, not that many

 Makefile.am  |   13 +-
 configure.in |   12 +
 libxml2.syms | 2168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 parser.c     |   18 +-
 tree.c       |    5 +-
 valid.c      |   49 --
 xpointer.c   |   21 +-
 7 files changed, 2216 insertions(+), 70 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 236c26b..fc4601b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -18,7 +18,16 @@ bin_SCRIPTS=xml2-config
 lib_LTLIBRARIES = libxml2.la
 libxml2_la_LIBADD = @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) @M_LIBS@ @WIN32_EXTRA_LIBADD@
 
-libxml2_la_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@ @WIN32_EXTRA_LDFLAGS@ -version-info @LIBXML_VERSION_INFO@ @MODULE_PLATFORM_LIBS@
+if USE_VERSION_SCRIPT
+LIBXML2_VERSION_SCRIPT = $(VERSION_SCRIPT_FLAGS)$(srcdir)/libxml2.syms
+else
+LIBXML2_VERSION_SCRIPT =
+endif
+
+libxml2_la_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@ @WIN32_EXTRA_LDFLAGS@ \
+                     $(LIBXML2_VERSION_SCRIPT) \
+		     -version-info @LIBXML_VERSION_INFO@ \
+		     @MODULE_PLATFORM_LIBS@
 
 if WITH_TRIO_SOURCES
 libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c  \
@@ -1187,7 +1196,7 @@ EXTRA_DIST = xml2-config.in xml2Conf.sh.in libxml.spec.in libxml2.spec \
 	     triop.h triodef.h libxml.h elfgcchack.h \
 	     testThreadsWin32.c genUnicode.py TODO_SCHEMAS \
 	     dbgen.pl dbgenattr.pl regressions.py regressions.xml \
-	     README.tests Makefile.tests \
+	     README.tests Makefile.tests libxml2.syms \
 	     $(CVS_EXTRA_DIST)
 
 
diff --git a/configure.in b/configure.in
index 6c0e139..7c46893 100644
--- a/configure.in
+++ b/configure.in
@@ -68,6 +68,18 @@ AC_LIBTOOL_WIN32_DLL
 AM_PROG_LIBTOOL
 
 dnl
+dnl if the system support linker version scripts for symbol versioning
+dnl then add it
+dnl
+VERSION_SCRIPT_FLAGS=
+$(/usr/bin/ld --help 2>&1 | grep -- --version-script >/dev/null) && \
+    VERSION_SCRIPT_FLAGS=-Wl,--version-script=
+test "`uname`" == "SunOS" && \
+    VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,"
+AC_SUBST(VERSION_SCRIPT_FLAGS)
+AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -n "$VERSION_SCRIPT_FLAGS"])
+
+dnl
 dnl We process the AC_ARG_WITH first so that later we can modify
 dnl some of them to try to prevent impossible combinations.  This
 dnl also allows up so alphabetize the choices
diff --git a/libxml2.syms b/libxml2.syms
new file mode 100644
index 0000000..ec626fc
--- /dev/null
+++ b/libxml2.syms
@@ -0,0 +1,2168 @@
+#
+# Officially exported symbols, for which header
+# file definitions are installed in /usr/include/libxml2
+#
+# Versions here are *fixed* to match the libxml2 version
+# at which the symbol was introduced. This ensures that
+# a new client app requiring symbol foo() can't accidentally
+# run with old libxml2.so not providing foo() - the global
+# soname version info can't enforce this since we never
+# change the soname
+#
+
+LIBXML2_2.4.30 {
+    global:
+
+# debugXML
+  xmlBoolToText;
+  xmlDebugDumpAttr;
+  xmlDebugDumpAttrList;
+  xmlDebugDumpDTD;
+  xmlDebugDumpDocument;
+  xmlDebugDumpDocumentHead;
+  xmlDebugDumpEntities;
+  xmlDebugDumpNode;
+  xmlDebugDumpNodeList;
+  xmlDebugDumpOneNode;
+  xmlDebugDumpString;
+  xmlLsCountNode;
+  xmlLsOneNode;
+  xmlShell;
+  xmlShellBase;
+  xmlShellCat;
+  xmlShellDir;
+  xmlShellDu;
+  xmlShellList;
+  xmlShellLoad;
+  xmlShellPrintNode;
+  xmlShellPrintXPathError;
+  xmlShellPrintXPathResult;
+  xmlShellPwd;
+  xmlShellSave;
+  xmlShellValidate;
+  xmlShellWrite;
+
+# xpointer
+  xmlXPtrBuildNodeList;
+  xmlXPtrEval;
+  xmlXPtrEvalRangePredicate;
+  xmlXPtrFreeLocationSet;
+  xmlXPtrLocationSetAdd;
+  xmlXPtrLocationSetCreate;
+  xmlXPtrLocationSetDel;
+  xmlXPtrLocationSetMerge;
+  xmlXPtrLocationSetRemove;
+  xmlXPtrNewCollapsedRange;
+  xmlXPtrNewContext;
+  xmlXPtrNewLocationSetNodeSet;
+  xmlXPtrNewLocationSetNodes;
+  xmlXPtrNewRange;
+  xmlXPtrNewRangeNodeObject;
+  xmlXPtrNewRangeNodePoint;
+  xmlXPtrNewRangeNodes;
+  xmlXPtrNewRangePointNode;
+  xmlXPtrNewRangePoints;
+  xmlXPtrRangeToFunction;
+  xmlXPtrWrapLocationSet;
+
+# SAX
+  attribute;
+  attributeDecl;
+  cdataBlock;
+  characters;
+  checkNamespace;
+  comment;
+  docbDefaultSAXHandlerInit;
+  elementDecl;
+  endDocument;
+  endElement;
+  entityDecl;
+  externalSubset;
+  getColumnNumber;
+  getEntity;
+  getLineNumber;
+  getNamespace;
+  getParameterEntity;
+  getPublicId;
+  getSystemId;
+  globalNamespace;
+  hasExternalSubset;
+  hasInternalSubset;
+  htmlDefaultSAXHandlerInit;
+  ignorableWhitespace;
+  initdocbDefaultSAXHandler;
+  inithtmlDefaultSAXHandler;
+  initxmlDefaultSAXHandler;
+  internalSubset;
+  isStandalone;
+  namespaceDecl;
+  notationDecl;
+  processingInstruction;
+  reference;
+  resolveEntity;
+  setDocumentLocator;
+  setNamespace;
+  startDocument;
+  startElement;
+  unparsedEntityDecl;
+  xmlDefaultSAXHandlerInit;
+
+# parserInternals
+  htmlCreateFileParserCtxt;
+  htmlInitAutoClose;
+  inputPop;
+  inputPush;
+  namePop;
+  namePush;
+  nodePop;
+  nodePush;
+  xmlCheckLanguageID;
+  xmlCopyChar;
+  xmlCopyCharMultiByte;
+  xmlCreateEntityParserCtxt;
+  xmlCreateFileParserCtxt;
+  xmlCreateMemoryParserCtxt;
+  xmlCurrentChar;
+  xmlDecodeEntities;
+  xmlFreeInputStream;
+  xmlHandleEntity;
+  xmlIsBaseChar;
+  xmlIsBlank;
+  xmlIsChar;
+  xmlIsCombining;
+  xmlIsDigit;
+  xmlIsExtender;
+  xmlIsIdeographic;
+  xmlIsLetter;
+  xmlIsPubidChar;
+  xmlNamespaceParseNCName;
+  xmlNamespaceParseNSDef;
+  xmlNamespaceParseQName;
+  xmlNewEntityInputStream;
+  xmlNewInputFromFile;
+  xmlNewInputStream;
+  xmlNewParserCtxt;
+  xmlNewStringInputStream;
+  xmlNextChar;
+  xmlParseAttValue;
+  xmlParseAttribute;
+  xmlParseAttributeListDecl;
+  xmlParseAttributeType;
+  xmlParseCDSect;
+  xmlParseCharData;
+  xmlParseCharRef;
+  xmlParseComment;
+  xmlParseContent;
+  xmlParseDefaultDecl;
+  xmlParseDocTypeDecl;
+  xmlParseElement;
+  xmlParseElementChildrenContentDecl;
+  xmlParseElementContentDecl;
+  xmlParseElementDecl;
+  xmlParseElementMixedContentDecl;
+  xmlParseEncName;
+  xmlParseEncodingDecl;
+  xmlParseEndTag;
+  xmlParseEntityDecl;
+  xmlParseEntityRef;
+  xmlParseEntityValue;
+  xmlParseEnumeratedType;
+  xmlParseEnumerationType;
+  xmlParseExternalID;
+  xmlParseExternalSubset;
+  xmlParseMarkupDecl;
+  xmlParseMisc;
+  xmlParseName;
+  xmlParseNamespace;
+  xmlParseNmtoken;
+  xmlParseNotationDecl;
+  xmlParseNotationType;
+  xmlParsePEReference;
+  xmlParsePI;
+  xmlParsePITarget;
+  xmlParsePubidLiteral;
+  xmlParseQuotedString;
+  xmlParseReference;
+  xmlParseSDDecl;
+  xmlParseStartTag;
+  xmlParseSystemLiteral;
+  xmlParseTextDecl;
+  xmlParseVersionInfo;
+  xmlParseVersionNum;
+  xmlParseXMLDecl;
+  xmlParserHandlePEReference;
+  xmlParserHandleReference;
+  xmlParserInputShrink;
+  xmlPopInput;
+  xmlPushInput;
+  xmlScanName;
+  xmlSetEntityReferenceFunc;
+  xmlSkipBlankChars;
+  xmlSplitQName;
+  xmlStringComment; # variable
+  xmlStringCurrentChar;
+  xmlStringDecodeEntities;
+  xmlStringText; # variable
+  xmlStringTextNoenc; # variable
+  xmlSwitchEncoding;
+  xmlSwitchToEncoding;
+
+# c14n
+  xmlC14NDocDumpMemory;
+  xmlC14NDocSave;
+  xmlC14NDocSaveTo;
+  xmlC14NExecute;
+
+# catalog
+  xmlACatalogAdd;
+  xmlACatalogDump;
+  xmlACatalogRemove;
+  xmlACatalogResolve;
+  xmlACatalogResolvePublic;
+  xmlACatalogResolveSystem;
+  xmlACatalogResolveURI;
+  xmlCatalogAdd;
+  xmlCatalogAddLocal;
+  xmlCatalogCleanup;
+  xmlCatalogConvert;
+  xmlCatalogDump;
+  xmlCatalogFreeLocal;
+  xmlCatalogGetDefaults;
+  xmlCatalogGetPublic;
+  xmlCatalogGetSystem;
+  xmlCatalogIsEmpty;
+  xmlCatalogLocalResolve;
+  xmlCatalogLocalResolveURI;
+  xmlCatalogRemove;
+  xmlCatalogResolve;
+  xmlCatalogResolvePublic;
+  xmlCatalogResolveSystem;
+  xmlCatalogResolveURI;
+  xmlCatalogSetDebug;
+  xmlCatalogSetDefaultPrefer;
+  xmlCatalogSetDefaults;
+  xmlConvertSGMLCatalog;
+  xmlFreeCatalog;
+  xmlInitializeCatalog;
+  xmlLoadACatalog;
+  xmlLoadCatalog;
+  xmlLoadCatalogs;
+  xmlLoadSGMLSuperCatalog;
+  xmlNewCatalog;
+  xmlParseCatalogFile;
+
+# xpathInternals
+  valuePop;
+  valuePush;
+  xmlXPathAddValues;
+  xmlXPathBooleanFunction;
+  xmlXPathCeilingFunction;
+  xmlXPathCompareValues;
+  xmlXPathConcatFunction;
+  xmlXPathContainsFunction;
+  xmlXPathCountFunction;
+  xmlXPathDebugDumpCompExpr;
+  xmlXPathDebugDumpObject;
+  xmlXPathDifference;
+  xmlXPathDistinct;
+  xmlXPathDistinctSorted;
+  xmlXPathDivValues;
+  xmlXPathEqualValues;
+  xmlXPathEvalExpr;
+  xmlXPathEvaluatePredicateResult;
+  xmlXPathFalseFunction;
+  xmlXPathFloorFunction;
+  xmlXPathFreeParserContext;
+  xmlXPathFunctionLookup;
+  xmlXPathFunctionLookupNS;
+  xmlXPathHasSameNodes;
+  xmlXPathIdFunction;
+  xmlXPathIntersection;
+  xmlXPathIsNodeType;
+  xmlXPathLangFunction;
+  xmlXPathLastFunction;
+  xmlXPathLeading;
+  xmlXPathLeadingSorted;
+  xmlXPathLocalNameFunction;
+  xmlXPathModValues;
+  xmlXPathMultValues;
+  xmlXPathNamespaceURIFunction;
+  xmlXPathNewBoolean;
+  xmlXPathNewCString;
+  xmlXPathNewFloat;
+  xmlXPathNewNodeSet;
+  xmlXPathNewNodeSetList;
+  xmlXPathNewParserContext;
+  xmlXPathNewString;
+  xmlXPathNewValueTree;
+  xmlXPathNextAncestor;
+  xmlXPathNextAncestorOrSelf;
+  xmlXPathNextAttribute;
+  xmlXPathNextChild;
+  xmlXPathNextDescendant;
+  xmlXPathNextDescendantOrSelf;
+  xmlXPathNextFollowing;
+  xmlXPathNextFollowingSibling;
+  xmlXPathNextNamespace;
+  xmlXPathNextParent;
+  xmlXPathNextPreceding;
+  xmlXPathNextPrecedingSibling;
+  xmlXPathNextSelf;
+  xmlXPathNodeLeading;
+  xmlXPathNodeLeadingSorted;
+  xmlXPathNodeSetAdd;
+  xmlXPathNodeSetAddNs;
+  xmlXPathNodeSetAddUnique;
+  xmlXPathNodeSetContains;
+  xmlXPathNodeSetDel;
+  xmlXPathNodeSetFreeNs;
+  xmlXPathNodeSetMerge;
+  xmlXPathNodeSetRemove;
+  xmlXPathNodeSetSort;
+  xmlXPathNodeTrailing;
+  xmlXPathNodeTrailingSorted;
+  xmlXPathNormalizeFunction;
+  xmlXPathNotEqualValues;
+  xmlXPathNotFunction;
+  xmlXPathNsLookup;
+  xmlXPathNumberFunction;
+  xmlXPathParseNCName;
+  xmlXPathParseName;
+  xmlXPathPopBoolean;
+  xmlXPathPopExternal;
+  xmlXPathPopNodeSet;
+  xmlXPathPopNumber;
+  xmlXPathPopString;
+  xmlXPathPositionFunction;
+  xmlXPathRegisterAllFunctions;
+  xmlXPathRegisterFunc;
+  xmlXPathRegisterFuncLookup;
+  xmlXPathRegisterFuncNS;
+  xmlXPathRegisterNs;
+  xmlXPathRegisterVariable;
+  xmlXPathRegisterVariableLookup;
+  xmlXPathRegisterVariableNS;
+  xmlXPathRegisteredFuncsCleanup;
+  xmlXPathRegisteredNsCleanup;
+  xmlXPathRegisteredVariablesCleanup;
+  xmlXPathRoot;
+  xmlXPathRoundFunction;
+  xmlXPathStartsWithFunction;
+  xmlXPathStringEvalNumber;
+  xmlXPathStringFunction;
+  xmlXPathStringLengthFunction;
+  xmlXPathSubValues;
+  xmlXPathSubstringAfterFunction;
+  xmlXPathSubstringBeforeFunction;
+  xmlXPathSubstringFunction;
+  xmlXPathSumFunction;
+  xmlXPathTrailing;
+  xmlXPathTrailingSorted;
+  xmlXPathTranslateFunction;
+  xmlXPathTrueFunction;
+  xmlXPathValueFlipSign;
+  xmlXPathVariableLookup;
+  xmlXPathVariableLookupNS;
+  xmlXPathWrapCString;
+  xmlXPathWrapExternal;
+  xmlXPathWrapNodeSet;
+  xmlXPathWrapString;
+  xmlXPatherror;
+
+# xmlautomata
+  xmlAutomataCompile;
+  xmlAutomataGetInitState;
+  xmlAutomataIsDeterminist;
+  xmlAutomataNewAllTrans;
+  xmlAutomataNewCountTrans;
+  xmlAutomataNewCountedTrans;
+  xmlAutomataNewCounter;
+  xmlAutomataNewCounterTrans;
+  xmlAutomataNewEpsilon;
+  xmlAutomataNewOnceTrans;
+  xmlAutomataNewState;
+  xmlAutomataNewTransition;
+  xmlAutomataSetFinalState;
+  xmlFreeAutomata;
+  xmlNewAutomata;
+
+# HTMLtree
+  htmlDocContentDumpFormatOutput;
+  htmlDocContentDumpOutput;
+  htmlDocDump;
+  htmlDocDumpMemory;
+  htmlGetMetaEncoding;
+  htmlIsBooleanAttr;
+  htmlNewDoc;
+  htmlNewDocNoDtD;
+  htmlNodeDump;
+  htmlNodeDumpFile;
+  htmlNodeDumpFileFormat;
+  htmlNodeDumpFormatOutput;
+  htmlNodeDumpOutput;
+  htmlSaveFile;
+  htmlSaveFileEnc;
+  htmlSaveFileFormat;
+  htmlSetMetaEncoding;
+
+# nanoftp
+  xmlNanoFTPCheckResponse;
+  xmlNanoFTPCleanup;
+  xmlNanoFTPClose;
+  xmlNanoFTPCloseConnection;
+  xmlNanoFTPConnect;
+  xmlNanoFTPConnectTo;
+  xmlNanoFTPCwd;
+  xmlNanoFTPFreeCtxt;
+  xmlNanoFTPGet;
+  xmlNanoFTPGetConnection;
+  xmlNanoFTPGetResponse;
+  xmlNanoFTPGetSocket;
+  xmlNanoFTPInit;
+  xmlNanoFTPList;
+  xmlNanoFTPNewCtxt;
+  xmlNanoFTPOpen;
+  xmlNanoFTPProxy;
+  xmlNanoFTPQuit;
+  xmlNanoFTPRead;
+  xmlNanoFTPScanProxy;
+  xmlNanoFTPUpdateURL;
+
+# DOCBparser
+  docbCreateFileParserCtxt;
+  docbCreatePushParserCtxt;
+  docbEncodeEntities;
+  docbFreeParserCtxt;
+  docbParseChunk;
+  docbParseDoc;
+  docbParseDocument;
+  docbParseFile;
+  docbSAXParseDoc;
+  docbSAXParseFile;
+
+# xpath
+  xmlXPathCastBooleanToNumber;
+  xmlXPathCastBooleanToString;
+  xmlXPathCastNodeSetToBoolean;
+  xmlXPathCastNodeSetToNumber;
+  xmlXPathCastNodeSetToString;
+  xmlXPathCastNodeToNumber;
+  xmlXPathCastNodeToString;
+  xmlXPathCastNumberToBoolean;
+  xmlXPathCastNumberToString;
+  xmlXPathCastStringToBoolean;
+  xmlXPathCastStringToNumber;
+  xmlXPathCastToBoolean;
+  xmlXPathCastToNumber;
+  xmlXPathCastToString;
+  xmlXPathCmpNodes;
+  xmlXPathCompile;
+  xmlXPathCompiledEval;
+  xmlXPathConvertBoolean;
+  xmlXPathConvertNumber;
+  xmlXPathConvertString;
+  xmlXPathEval;
+  xmlXPathEvalExpression;
+  xmlXPathEvalPredicate;
+  xmlXPathFreeCompExpr;
+  xmlXPathFreeContext;
+  xmlXPathFreeNodeSet;
+  xmlXPathFreeNodeSetList;
+  xmlXPathFreeObject;
+  xmlXPathInit;
+  xmlXPathIsInf;
+  xmlXPathIsNaN;
+  xmlXPathNAN; # variable
+  xmlXPathNINF; # variable
+  xmlXPathNewContext;
+  xmlXPathNodeSetCreate;
+  xmlXPathObjectCopy;
+  xmlXPathPINF; # variable
+
+# xlink
+  xlinkGetDefaultDetect;
+  xlinkGetDefaultHandler;
+  xlinkIsLink;
+  xlinkSetDefaultDetect;
+  xlinkSetDefaultHandler;
+
+# entities
+  xmlAddDocEntity;
+  xmlAddDtdEntity;
+  xmlCleanupPredefinedEntities;
+  xmlCopyEntitiesTable;
+  xmlCreateEntitiesTable;
+  xmlDumpEntitiesTable;
+  xmlDumpEntityDecl;
+  xmlEncodeEntities;
+  xmlEncodeEntitiesReentrant;
+  xmlEncodeSpecialChars;
+  xmlFreeEntitiesTable;
+  xmlGetDocEntity;
+  xmlGetDtdEntity;
+  xmlGetParameterEntity;
+  xmlGetPredefinedEntity;
+  xmlInitializePredefinedEntities;
+
+# xinclude
+  xmlXIncludeProcess;
+
+# list
+  xmlLinkGetData;
+  xmlListAppend;
+  xmlListClear;
+  xmlListCopy;
+  xmlListCreate;
+  xmlListDelete;
+  xmlListDup;
+  xmlListEmpty;
+  xmlListEnd;
+  xmlListFront;
+  xmlListInsert;
+  xmlListMerge;
+  xmlListPopBack;
+  xmlListPopFront;
+  xmlListPushBack;
+  xmlListPushFront;
+  xmlListRemoveAll;
+  xmlListRemoveFirst;
+  xmlListRemoveLast;
+  xmlListReverse;
+  xmlListReverseSearch;
+  xmlListReverseWalk;
+  xmlListSearch;
+  xmlListSize;
+  xmlListSort;
+  xmlListWalk;
+
+# xmlmemory
+  xmlInitMemory;
+  xmlMallocLoc;
+  xmlMemDisplay;
+  xmlMemFree;
+  xmlMemGet;
+  xmlMemMalloc;
+  xmlMemRealloc;
+  xmlMemSetup;
+  xmlMemShow;
+  xmlMemStrdupLoc;
+  xmlMemUsed;
+  xmlMemoryDump;
+  xmlMemoryStrdup;
+  xmlReallocLoc;
+
+# xmlIO
+  xmlAllocOutputBuffer;
+  xmlAllocParserInputBuffer;
+  xmlCheckFilename;
+  xmlCleanupInputCallbacks;
+  xmlCleanupOutputCallbacks;
+  xmlFileClose;
+  xmlFileMatch;
+  xmlFileOpen;
+  xmlFileRead;
+  xmlFreeParserInputBuffer;
+  xmlIOFTPClose;
+  xmlIOFTPMatch;
+  xmlIOFTPOpen;
+  xmlIOFTPRead;
+  xmlIOHTTPClose;
+  xmlIOHTTPMatch;
+  xmlIOHTTPOpen;
+  xmlIOHTTPOpenW;
+  xmlIOHTTPRead;
+  xmlNoNetExternalEntityLoader;
+  xmlNormalizeWindowsPath;
+  xmlOutputBufferClose;
+  xmlOutputBufferCreateFd;
+  xmlOutputBufferCreateFile;
+  xmlOutputBufferCreateFilename;
+  xmlOutputBufferCreateIO;
+  xmlOutputBufferFlush;
+  xmlOutputBufferWrite;
+  xmlOutputBufferWriteString;
+  xmlParserGetDirectory;
+  xmlParserInputBufferCreateFd;
+  xmlParserInputBufferCreateFile;
+  xmlParserInputBufferCreateFilename;
+  xmlParserInputBufferCreateIO;
+  xmlParserInputBufferCreateMem;
+  xmlParserInputBufferGrow;
+  xmlParserInputBufferPush;
+  xmlParserInputBufferRead;
+  xmlRegisterDefaultInputCallbacks;
+  xmlRegisterDefaultOutputCallbacks;
+  xmlRegisterHTTPPostCallbacks;
+  xmlRegisterInputCallbacks;
+  xmlRegisterOutputCallbacks;
+
+# xmlversion
+  xmlCheckVersion;
+
+# valid
+  xmlAddAttributeDecl;
+  xmlAddElementDecl;
+  xmlAddID;
+  xmlAddNotationDecl;
+  xmlAddRef;
+  xmlCopyAttributeTable;
+  xmlCopyElementContent;
+  xmlCopyElementTable;
+  xmlCopyEnumeration;
+  xmlCopyNotationTable;
+  xmlCreateEnumeration;
+  xmlDumpAttributeDecl;
+  xmlDumpAttributeTable;
+  xmlDumpElementDecl;
+  xmlDumpElementTable;
+  xmlDumpNotationDecl;
+  xmlDumpNotationTable;
+  xmlFreeAttributeTable;
+  xmlFreeElementContent;
+  xmlFreeElementTable;
+  xmlFreeEnumeration;
+  xmlFreeIDTable;
+  xmlFreeNotationTable;
+  xmlFreeRefTable;
+  xmlGetDtdAttrDesc;
+  xmlGetDtdElementDesc;
+  xmlGetDtdNotationDesc;
+  xmlGetDtdQAttrDesc;
+  xmlGetDtdQElementDesc;
+  xmlGetID;
+  xmlGetRefs;
+  xmlIsID;
+  xmlIsMixedElement;
+  xmlIsRef;
+  xmlNewElementContent;
+  xmlRemoveID;
+  xmlRemoveRef;
+  xmlSnprintfElementContent;
+  xmlSplitQName2;
+  xmlSprintfElementContent;
+  xmlValidBuildContentModel;
+  xmlValidCtxtNormalizeAttributeValue;
+  xmlValidGetPotentialChildren;
+  xmlValidGetValidElements;
+  xmlValidNormalizeAttributeValue;
+  xmlValidateAttributeDecl;
+  xmlValidateAttributeValue;
+  xmlValidateDocument;
+  xmlValidateDocumentFinal;
+  xmlValidateDtd;
+  xmlValidateDtdFinal;
+  xmlValidateElement;
+  xmlValidateElementDecl;
+  xmlValidateNameValue;
+  xmlValidateNamesValue;
+  xmlValidateNmtokenValue;
+  xmlValidateNmtokensValue;
+  xmlValidateNotationDecl;
+  xmlValidateNotationUse;
+  xmlValidateOneAttribute;
+  xmlValidateOneElement;
+  xmlValidateOneNamespace;
+  xmlValidateRoot;
+
+# HTMLparser
+  UTF8ToHtml;
+  htmlAutoCloseTag;
+  htmlCreatePushParserCtxt;
+  htmlEncodeEntities;
+  htmlEntityLookup;
+  htmlEntityValueLookup;
+  htmlFreeParserCtxt;
+  htmlHandleOmittedElem;
+  htmlIsAutoClosed;
+  htmlIsScriptAttribute;
+  htmlParseCharRef;
+  htmlParseChunk;
+  htmlParseDoc;
+  htmlParseDocument;
+  htmlParseElement;
+  htmlParseEntityRef;
+  htmlParseFile;
+  htmlSAXParseDoc;
+  htmlSAXParseFile;
+  htmlTagLookup;
+
+# parser
+  xmlCharStrdup;
+  xmlCharStrndup;
+  xmlCleanupParser;
+  xmlClearNodeInfoSeq;
+  xmlClearParserCtxt;
+  xmlCreateDocParserCtxt;
+  xmlCreateIOParserCtxt;
+  xmlCreatePushParserCtxt;
+  xmlFreeParserCtxt;
+  xmlGetExternalEntityLoader;
+  xmlGetFeature;
+  xmlGetFeaturesList;
+  xmlGetWarningsDefaultValue; # variable
+  xmlIOParseDTD;
+  xmlInitNodeInfoSeq;
+  xmlInitParser;
+  xmlInitParserCtxt;
+  xmlKeepBlanksDefault;
+  xmlLineNumbersDefault;
+  xmlLoadExternalEntity;
+  xmlNewIOInputStream;
+  xmlParseBalancedChunkMemory;
+  xmlParseBalancedChunkMemoryRecover;
+  xmlParseChunk;
+  xmlParseCtxtExternalEntity;
+  xmlParseDTD;
+  xmlParseDoc;
+  xmlParseDocument;
+  xmlParseEntity;
+  xmlParseExtParsedEnt;
+  xmlParseExternalEntity;
+  xmlParseFile;
+  xmlParseMemory;
+  xmlParserAddNodeInfo;
+  xmlParserFindNodeInfo;
+  xmlParserFindNodeInfoIndex;
+  xmlParserInputGrow;
+  xmlParserInputRead;
+  xmlPedanticParserDefault;
+  xmlRecoverDoc;
+  xmlRecoverFile;
+  xmlRecoverMemory;
+  xmlSAXParseDTD;
+  xmlSAXParseDoc;
+  xmlSAXParseEntity;
+  xmlSAXParseFile;
+  xmlSAXParseFileWithData;
+  xmlSAXParseMemory;
+  xmlSAXParseMemoryWithData;
+  xmlSAXUserParseFile;
+  xmlSAXUserParseMemory;
+  xmlSetExternalEntityLoader;
+  xmlSetFeature;
+  xmlSetupParserForBuffer;
+  xmlStopParser;
+  xmlStrEqual;
+  xmlStrcasecmp;
+  xmlStrcasestr;
+  xmlStrcat;
+  xmlStrchr;
+  xmlStrcmp;
+  xmlStrdup;
+  xmlStrlen;
+  xmlStrncasecmp;
+  xmlStrncat;
+  xmlStrncmp;
+  xmlStrndup;
+  xmlStrstr;
+  xmlStrsub;
+  xmlSubstituteEntitiesDefault;
+
+# xmlreader
+  xmlFreeTextReader;
+  xmlNewTextReader;
+  xmlNewTextReaderFilename;
+  xmlTextReaderAttributeCount;
+  xmlTextReaderBaseUri;
+  xmlTextReaderDepth;
+  xmlTextReaderHasAttributes;
+  xmlTextReaderHasValue;
+  xmlTextReaderIsDefault;
+  xmlTextReaderIsEmptyElement;
+  xmlTextReaderLocalName;
+  xmlTextReaderName;
+  xmlTextReaderNamespaceUri;
+  xmlTextReaderNodeType;
+  xmlTextReaderPrefix;
+  xmlTextReaderQuoteChar;
+  xmlTextReaderRead;
+  xmlTextReaderValue;
+  xmlTextReaderXmlLang;
+
+# globals
+  docbDefaultSAXHandler; # variable
+  htmlDefaultSAXHandler; # variable
+  xmlDefaultSAXHandler; # variable
+  xmlDefaultSAXLocator; # variable
+  xmlDoValidityCheckingDefaultValue; # variable
+  xmlFree; # variable
+  xmlGenericError; # variable
+  xmlGenericErrorContext; # variable
+  xmlInitializeGlobalState;
+  xmlKeepBlanksDefaultValue; # variable
+  xmlLineNumbersDefaultValue; # variable
+  xmlLoadExtDtdDefaultValue; # variable
+  xmlMalloc; # variable
+  xmlMemStrdup; # variable
+  xmlParserDebugEntities; # variable
+  xmlParserVersion; # variable
+  xmlPedanticParserDefaultValue; # variable
+  xmlRealloc; # variable
+  xmlSaveNoEmptyTags; # variable
+  xmlSubstituteEntitiesDefaultValue; # variable
+  xmlTreeIndentString; # variable
+
+# threads
+  xmlCleanupThreads;
+  xmlFreeMutex;
+  xmlFreeRMutex;
+  xmlGetGlobalState;
+  xmlGetThreadId;
+  xmlInitThreads;
+  xmlIsMainThread;
+  xmlLockLibrary;
+  xmlMutexLock;
+  xmlMutexUnlock;
+  xmlNewMutex;
+  xmlNewRMutex;
+  xmlRMutexLock;
+  xmlRMutexUnlock;
+  xmlUnlockLibrary;
+
+# hash
+  xmlHashAddEntry;
+  xmlHashAddEntry2;
+  xmlHashAddEntry3;
+  xmlHashCopy;
+  xmlHashCreate;
+  xmlHashFree;
+  xmlHashLookup;
+  xmlHashLookup2;
+  xmlHashLookup3;
+  xmlHashRemoveEntry;
+  xmlHashRemoveEntry2;
+  xmlHashRemoveEntry3;
+  xmlHashScan;
+  xmlHashScan3;
+  xmlHashScanFull;
+  xmlHashScanFull3;
+  xmlHashSize;
+  xmlHashUpdateEntry;
+  xmlHashUpdateEntry2;
+  xmlHashUpdateEntry3;
+
+# xmlerror
+  initGenericErrorDefaultFunc;
+  xmlParserError;
+  xmlParserPrintFileContext;
+  xmlParserPrintFileInfo;
+  xmlParserValidityError;
+  xmlParserValidityWarning;
+  xmlParserWarning;
+  xmlSetGenericErrorFunc;
+
+# tree
+  oldXMLWDcompatibility; # variable
+  xmlAddChild;
+  xmlAddChildList;
+  xmlAddNextSibling;
+  xmlAddPrevSibling;
+  xmlAddSibling;
+  xmlBufferAdd;
+  xmlBufferAddHead;
+  xmlBufferAllocScheme; # variable
+  xmlBufferCCat;
+  xmlBufferCat;
+  xmlBufferContent;
+  xmlBufferCreate;
+  xmlBufferCreateSize;
+  xmlBufferDump;
+  xmlBufferEmpty;
+  xmlBufferFree;
+  xmlBufferGrow;
+  xmlBufferLength;
+  xmlBufferResize;
+  xmlBufferSetAllocationScheme;
+  xmlBufferShrink;
+  xmlBufferWriteCHAR;
+  xmlBufferWriteChar;
+  xmlBufferWriteQuotedString;
+  xmlCopyDoc;
+  xmlCopyDtd;
+  xmlCopyNamespace;
+  xmlCopyNamespaceList;
+  xmlCopyNode;
+  xmlCopyNodeList;
+  xmlCopyProp;
+  xmlCopyPropList;
+  xmlCreateIntSubset;
+  xmlDefaultBufferSize; # variable
+  xmlDocCopyNode;
+  xmlDocDump;
+  xmlDocDumpFormatMemory;
+  xmlDocDumpFormatMemoryEnc;
+  xmlDocDumpMemory;
+  xmlDocDumpMemoryEnc;
+  xmlDocFormatDump;
+  xmlDocGetRootElement;
+  xmlDocSetRootElement;
+  xmlElemDump;
+  xmlFreeDoc;
+  xmlFreeDtd;
+  xmlFreeNode;
+  xmlFreeNodeList;
+  xmlFreeNs;
+  xmlFreeNsList;
+  xmlFreeProp;
+  xmlFreePropList;
+  xmlGetBufferAllocationScheme;
+  xmlGetCompressMode;
+  xmlGetDocCompressMode;
+  xmlGetIntSubset;
+  xmlGetLastChild;
+  xmlGetLineNo;
+  xmlGetNodePath;
+  xmlGetNsList;
+  xmlGetNsProp;
+  xmlGetProp;
+  xmlHasNsProp;
+  xmlHasProp;
+  xmlIndentTreeOutput; # variable
+  xmlIsBlankNode;
+  xmlIsXHTML;
+  xmlNewCDataBlock;
+  xmlNewCharRef;
+  xmlNewChild;
+  xmlNewComment;
+  xmlNewDoc;
+  xmlNewDocComment;
+  xmlNewDocFragment;
+  xmlNewDocNode;
+  xmlNewDocNodeEatName;
+  xmlNewDocProp;
+  xmlNewDocRawNode;
+  xmlNewDocText;
+  xmlNewDocTextLen;
+  xmlNewDtd;
+  xmlNewGlobalNs;
+  xmlNewNode;
+  xmlNewNodeEatName;
+  xmlNewNs;
+  xmlNewNsProp;
+  xmlNewNsPropEatName;
+  xmlNewPI;
+  xmlNewProp;
+  xmlNewReference;
+  xmlNewText;
+  xmlNewTextChild;
+  xmlNewTextLen;
+  xmlNodeAddContent;
+  xmlNodeAddContentLen;
+  xmlNodeDump;
+  xmlNodeDumpOutput;
+  xmlNodeGetBase;
+  xmlNodeGetContent;
+  xmlNodeGetLang;
+  xmlNodeGetSpacePreserve;
+  xmlNodeIsText;
+  xmlNodeListGetRawString;
+  xmlNodeListGetString;
+  xmlNodeSetBase;
+  xmlNodeSetContent;
+  xmlNodeSetContentLen;
+  xmlNodeSetLang;
+  xmlNodeSetName;
+  xmlNodeSetSpacePreserve;
+  xmlReconciliateNs;
+  xmlRemoveProp;
+  xmlReplaceNode;
+  xmlSaveFile;
+  xmlSaveFileEnc;
+  xmlSaveFileTo;
+  xmlSaveFormatFile;
+  xmlSaveFormatFileEnc;
+  xmlSaveFormatFileTo;
+  xmlSearchNs;
+  xmlSearchNsByHref;
+  xmlSetBufferAllocationScheme;
+  xmlSetCompressMode;
+  xmlSetDocCompressMode;
+  xmlSetListDoc;
+  xmlSetNs;
+  xmlSetNsProp;
+  xmlSetProp;
+  xmlSetTreeDoc;
+  xmlStringGetNodeList;
+  xmlStringLenGetNodeList;
+  xmlTextConcat;
+  xmlTextMerge;
+  xmlUnlinkNode;
+  xmlUnsetNsProp;
+  xmlUnsetProp;
+
+# xmlregexp
+  xmlRegExecPushString;
+  xmlRegFreeExecCtxt;
+  xmlRegFreeRegexp;
+  xmlRegNewExecCtxt;
+  xmlRegexpCompile;
+  xmlRegexpExec;
+  xmlRegexpIsDeterminist;
+  xmlRegexpPrint;
+
+# nanohttp
+  xmlNanoHTTPAuthHeader;
+  xmlNanoHTTPCleanup;
+  xmlNanoHTTPClose;
+  xmlNanoHTTPFetch;
+  xmlNanoHTTPInit;
+  xmlNanoHTTPMethod;
+  xmlNanoHTTPMethodRedir;
+  xmlNanoHTTPOpen;
+  xmlNanoHTTPOpenRedir;
+  xmlNanoHTTPRead;
+  xmlNanoHTTPReturnCode;
+  xmlNanoHTTPSave;
+  xmlNanoHTTPScanProxy;
+
+# xmlunicode
+  xmlUCSIsAlphabeticPresentationForms;
+  xmlUCSIsArabic;
+  xmlUCSIsArabicPresentationFormsA;
+  xmlUCSIsArabicPresentationFormsB;
+  xmlUCSIsArmenian;
+  xmlUCSIsArrows;
+  xmlUCSIsBasicLatin;
+  xmlUCSIsBengali;
+  xmlUCSIsBlock;
+  xmlUCSIsBlockElements;
+  xmlUCSIsBopomofo;
+  xmlUCSIsBopomofoExtended;
+  xmlUCSIsBoxDrawing;
+  xmlUCSIsBraillePatterns;
+  xmlUCSIsByzantineMusicalSymbols;
+  xmlUCSIsCJKCompatibility;
+  xmlUCSIsCJKCompatibilityForms;
+  xmlUCSIsCJKCompatibilityIdeographs;
+  xmlUCSIsCJKCompatibilityIdeographsSupplement;
+  xmlUCSIsCJKRadicalsSupplement;
+  xmlUCSIsCJKSymbolsandPunctuation;
+  xmlUCSIsCJKUnifiedIdeographs;
+  xmlUCSIsCJKUnifiedIdeographsExtensionA;
+  xmlUCSIsCJKUnifiedIdeographsExtensionB;
+  xmlUCSIsCat;
+  xmlUCSIsCatC;
+  xmlUCSIsCatCc;
+  xmlUCSIsCatCf;
+  xmlUCSIsCatCo;
+  xmlUCSIsCatCs;
+  xmlUCSIsCatL;
+  xmlUCSIsCatLl;
+  xmlUCSIsCatLm;
+  xmlUCSIsCatLo;
+  xmlUCSIsCatLt;
+  xmlUCSIsCatLu;
+  xmlUCSIsCatM;
+  xmlUCSIsCatMc;
+  xmlUCSIsCatMe;
+  xmlUCSIsCatMn;
+  xmlUCSIsCatN;
+  xmlUCSIsCatNd;
+  xmlUCSIsCatNl;
+  xmlUCSIsCatNo;
+  xmlUCSIsCatP;
+  xmlUCSIsCatPc;
+  xmlUCSIsCatPd;
+  xmlUCSIsCatPe;
+  xmlUCSIsCatPf;
+  xmlUCSIsCatPi;
+  xmlUCSIsCatPo;
+  xmlUCSIsCatPs;
+  xmlUCSIsCatS;
+  xmlUCSIsCatSc;
+  xmlUCSIsCatSk;
+  xmlUCSIsCatSm;
+  xmlUCSIsCatSo;
+  xmlUCSIsCatZ;
+  xmlUCSIsCatZl;
+  xmlUCSIsCatZp;
+  xmlUCSIsCatZs;
+  xmlUCSIsCherokee;
+  xmlUCSIsCombiningDiacriticalMarks;
+  xmlUCSIsCombiningHalfMarks;
+  xmlUCSIsCombiningMarksforSymbols;
+  xmlUCSIsControlPictures;
+  xmlUCSIsCurrencySymbols;
+  xmlUCSIsCyrillic;
+  xmlUCSIsDeseret;
+  xmlUCSIsDevanagari;
+  xmlUCSIsDingbats;
+  xmlUCSIsEnclosedAlphanumerics;
+  xmlUCSIsEnclosedCJKLettersandMonths;
+  xmlUCSIsEthiopic;
+  xmlUCSIsGeneralPunctuation;
+  xmlUCSIsGeometricShapes;
+  xmlUCSIsGeorgian;
+  xmlUCSIsGothic;
+  xmlUCSIsGreek;
+  xmlUCSIsGreekExtended;
+  xmlUCSIsGujarati;
+  xmlUCSIsGurmukhi;
+  xmlUCSIsHalfwidthandFullwidthForms;
+  xmlUCSIsHangulCompatibilityJamo;
+  xmlUCSIsHangulJamo;
+  xmlUCSIsHangulSyllables;
+  xmlUCSIsHebrew;
+  xmlUCSIsHighPrivateUseSurrogates;
+  xmlUCSIsHighSurrogates;
+  xmlUCSIsHiragana;
+  xmlUCSIsIPAExtensions;
+  xmlUCSIsIdeographicDescriptionCharacters;
+  xmlUCSIsKanbun;
+  xmlUCSIsKangxiRadicals;
+  xmlUCSIsKannada;
+  xmlUCSIsKatakana;
+  xmlUCSIsKhmer;
+  xmlUCSIsLao;
+  xmlUCSIsLatin1Supplement;
+  xmlUCSIsLatinExtendedA;
+  xmlUCSIsLatinExtendedAdditional;
+  xmlUCSIsLatinExtendedB;
+  xmlUCSIsLetterlikeSymbols;
+  xmlUCSIsLowSurrogates;
+  xmlUCSIsMalayalam;
+  xmlUCSIsMathematicalAlphanumericSymbols;
+  xmlUCSIsMathematicalOperators;
+  xmlUCSIsMiscellaneousSymbols;
+  xmlUCSIsMiscellaneousTechnical;
+  xmlUCSIsMongolian;
+  xmlUCSIsMusicalSymbols;
+  xmlUCSIsMyanmar;
+  xmlUCSIsNumberForms;
+  xmlUCSIsOgham;
+  xmlUCSIsOldItalic;
+  xmlUCSIsOpticalCharacterRecognition;
+  xmlUCSIsOriya;
+  xmlUCSIsPrivateUse;
+  xmlUCSIsRunic;
+  xmlUCSIsSinhala;
+  xmlUCSIsSmallFormVariants;
+  xmlUCSIsSpacingModifierLetters;
+  xmlUCSIsSpecials;
+  xmlUCSIsSuperscriptsandSubscripts;
+  xmlUCSIsSyriac;
+  xmlUCSIsTags;
+  xmlUCSIsTamil;
+  xmlUCSIsTelugu;
+  xmlUCSIsThaana;
+  xmlUCSIsThai;
+  xmlUCSIsTibetan;
+  xmlUCSIsUnifiedCanadianAboriginalSyllabics;
+  xmlUCSIsYiRadicals;
+  xmlUCSIsYiSyllables;
+
+# uri
+  xmlBuildURI;
+  xmlCreateURI;
+  xmlFreeURI;
+  xmlNormalizeURIPath;
+  xmlParseURI;
+  xmlParseURIReference;
+  xmlPrintURI;
+  xmlSaveUri;
+  xmlURIEscape;
+  xmlURIEscapeStr;
+  xmlURIUnescapeString;
+
+# encoding
+  UTF8Toisolat1;
+  isolat1ToUTF8;
+  xmlAddEncodingAlias;
+  xmlCharEncCloseFunc;
+  xmlCharEncFirstLine;
+  xmlCharEncInFunc;
+  xmlCharEncOutFunc;
+  xmlCheckUTF8;
+  xmlCleanupCharEncodingHandlers;
+  xmlCleanupEncodingAliases;
+  xmlDelEncodingAlias;
+  xmlDetectCharEncoding;
+  xmlFindCharEncodingHandler;
+  xmlGetCharEncodingHandler;
+  xmlGetCharEncodingName;
+  xmlGetEncodingAlias;
+  xmlGetUTF8Char;
+  xmlInitCharEncodingHandlers;
+  xmlNewCharEncodingHandler;
+  xmlParseCharEncoding;
+  xmlRegisterCharEncodingHandler;
+  xmlUTF8Strlen;
+  xmlUTF8Strloc;
+  xmlUTF8Strndup;
+  xmlUTF8Strpos;
+  xmlUTF8Strsize;
+  xmlUTF8Strsub;
+
+};
+
+#
+# from 2.6.30 we can precisely keep track of API additions
+#
+
+LIBXML2_2.5.0 {
+    global:
+# globals
+  xmlDeregisterNodeDefault;
+  xmlDeregisterNodeDefaultValue; # variable
+  xmlRegisterNodeDefault;
+  xmlRegisterNodeDefaultValue; # variable
+
+# xmlreader
+  xmlTextReaderClose;
+  xmlTextReaderCurrentDoc;
+  xmlTextReaderCurrentNode;
+  xmlTextReaderGetAttributeNo;
+  xmlTextReaderGetAttributeNs;
+  xmlTextReaderGetAttribute;
+  xmlTextReaderGetParserProp;
+  xmlTextReaderGetRemainder;
+  xmlTextReaderLookupNamespace;
+  xmlTextReaderMoveToAttributeNo;
+  xmlTextReaderMoveToAttributeNs;
+  xmlTextReaderMoveToAttribute;
+  xmlTextReaderMoveToElement;
+  xmlTextReaderMoveToFirstAttribute;
+  xmlTextReaderMoveToNextAttribute;
+  xmlTextReaderNormalization;
+  xmlTextReaderReadAttributeValue;
+  xmlTextReaderReadInnerXml;
+  xmlTextReaderReadOuterXml;
+  xmlTextReaderReadState;
+  xmlTextReaderReadString;
+  xmlTextReaderSetParserProp;
+
+# valid
+  xmlValidatePopElement;
+  xmlValidatePushCData;
+  xmlValidatePushElement;
+} LIBXML2_2.4.30;
+
+LIBXML2_2.5.2 {
+    global:
+
+# tree
+  xmlGetNoNsProp;
+
+# HTMLparser
+  htmlAttrAllowed;
+  htmlElementAllowedHere;
+  htmlElementStatusHere;
+  htmlNodeStatus;
+
+# relaxng
+  xmlRelaxNGCleanupTypes;
+  xmlRelaxNGDump;
+  xmlRelaxNGFreeParserCtxt;
+  xmlRelaxNGFree;
+  xmlRelaxNGFreeValidCtxt;
+  xmlRelaxNGNewMemParserCtxt;
+  xmlRelaxNGNewParserCtxt;
+  xmlRelaxNGNewValidCtxt;
+  xmlRelaxNGParse;
+  xmlRelaxNGSetParserErrors;
+  xmlRelaxNGSetValidErrors;
+  xmlRelaxNGValidateDoc;
+#  xmlRelaxNGValidateStream; removed in 2.5.5
+
+# xmlreader
+  xmlTextReaderGetErrorHandler;
+  xmlTextReaderLocatorBaseURI;
+  xmlTextReaderLocatorLineNumber;
+  xmlTextReaderSetErrorHandler;
+
+} LIBXML2_2.5.0;
+
+LIBXML2_2.5.4 {
+    global:
+
+# uri
+  xmlCanonicPath;
+
+# relaxng
+  xmlRelaxNGDumpTree;
+
+# tree
+  xmlValidateName;
+  xmlValidateNCName;
+  xmlValidateNMToken;
+  xmlValidateQName;
+
+} LIBXML2_2.5.2;
+
+LIBXML2_2.5.5 {
+    global:
+# nanoftp
+  xmlNanoFTPDele;
+} LIBXML2_2.5.4;
+
+LIBXML2_2.5.6 {
+    global:
+# xpath
+  xmlXPathOrderDocElems;
+} LIBXML2_2.5.5;
+
+LIBXML2_2.5.7 {
+    global:
+
+# HTMLparser
+  htmlCreateMemoryParserCtxt;
+
+# xmlautomata
+  xmlAutomataNewTransition2;
+
+# tree
+  xmlBuildQName;
+
+# xmlmemory
+  xmlGcMemGet;
+  xmlGcMemSetup;
+
+# globals
+  xmlMallocAtomic; # variable
+
+# xmlregexp
+  xmlRegExecPushString2;
+
+# relaxng
+  xmlRelaxNGNewDocParserCtxt;
+  xmlRelaxNGValidateFullElement;
+  xmlRelaxNGValidatePopElement;
+  xmlRelaxNGValidatePushCData;
+  xmlRelaxNGValidatePushElement;
+
+# xmlreader
+  xmlTextReaderExpand;
+  xmlTextReaderIsValid;
+  xmlTextReaderNext;
+  xmlTextReaderRelaxNGSetSchema;
+  xmlTextReaderRelaxNGValidate;
+
+} LIBXML2_2.5.6;
+
+LIBXML2_2.5.8 {
+    global:
+
+# globals
+  xmlCleanupGlobals;
+  xmlInitGlobals;
+
+# valid
+  xmlFreeValidCtxt;
+  xmlNewValidCtxt;
+
+# schemasInternals
+  xmlSchemaFreeType;
+
+# xmlschemas
+  xmlSchemaDump;
+  xmlSchemaFreeParserCtxt;
+  xmlSchemaFreeValidCtxt;
+  xmlSchemaFree;
+  xmlSchemaNewMemParserCtxt;
+  xmlSchemaNewParserCtxt;
+  xmlSchemaNewValidCtxt;
+  xmlSchemaParse;
+  xmlSchemaSetParserErrors;
+  xmlSchemaSetValidErrors;
+  xmlSchemaValidateDoc;
+  xmlSchemaValidateStream;
+
+# xmlschemastypes
+  xmlSchemaCheckFacet;
+  xmlSchemaCleanupTypes;
+  xmlSchemaCompareValues;
+  xmlSchemaFreeFacet;
+  xmlSchemaFreeValue;
+  xmlSchemaGetPredefinedType;
+  xmlSchemaInitTypes;
+  xmlSchemaNewFacet;
+  xmlSchemaValidateFacet;
+  xmlSchemaValidatePredefinedType;
+  xmlSchemaValPredefTypeNode;
+
+# globals
+  xmlThrDefBufferAllocScheme;
+  xmlThrDefDefaultBufferSize;
+  xmlThrDefDeregisterNodeDefault;
+  xmlThrDefDoValidityCheckingDefaultValue;
+  xmlThrDefGetWarningsDefaultValue;
+  xmlThrDefIndentTreeOutput;
+  xmlThrDefKeepBlanksDefaultValue;
+  xmlThrDefLineNumbersDefaultValue;
+  xmlThrDefLoadExtDtdDefaultValue;
+  xmlThrDefParserDebugEntities;
+  xmlThrDefPedanticParserDefaultValue;
+  xmlThrDefRegisterNodeDefault;
+  xmlThrDefSaveNoEmptyTags;
+  xmlThrDefSetGenericErrorFunc;
+  xmlThrDefSubstituteEntitiesDefaultValue;
+  xmlThrDefTreeIndentString;
+
+} LIBXML2_2.5.7;
+
+LIBXML2_2.5.9 {
+    global:
+
+# xmlmemory
+  xmlMallocAtomicLoc;
+
+# relaxng
+  xmlRelaxNGGetParserErrors;
+  xmlRelaxNGGetValidErrors;
+
+# tree
+  xmlSplitQName3;
+
+# encoding
+  xmlUTF8Charcmp;
+  xmlUTF8Size;
+
+# xinclude
+  xmlXIncludeProcessTree;
+
+} LIBXML2_2.5.8;
+
+LIBXML2_2.6.0 {
+    global:
+
+# SAX2
+  xmlSAX2AttributeDecl;
+  xmlSAX2CDataBlock;
+  xmlSAX2Characters;
+#  xmlSAX2CheckNamespace; suppressed in 2.6.10
+  xmlSAX2Comment;
+  xmlSAX2ElementDecl;
+  xmlSAX2EndDocument;
+  xmlSAX2EndElementNs;
+  xmlSAX2EndElement;
+  xmlSAX2EntityDecl;
+  xmlSAX2ExternalSubset;
+  xmlSAX2GetColumnNumber;
+  xmlSAX2GetEntity;
+  xmlSAX2GetLineNumber;
+#  xmlSAX2GetNamespace; suppressed in 2.6.10
+  xmlSAX2GetParameterEntity;
+  xmlSAX2GetPublicId;
+  xmlSAX2GetSystemId;
+#  xmlSAX2GlobalNamespace; suppressed in 2.6.10
+  xmlSAX2HasExternalSubset;
+  xmlSAX2HasInternalSubset;
+  xmlSAX2IgnorableWhitespace;
+  xmlSAX2InitDefaultSAXHandler;
+  xmlSAX2InitDocbDefaultSAXHandler;
+  xmlSAX2InitHtmlDefaultSAXHandler;
+  xmlSAX2InternalSubset;
+  xmlSAX2IsStandalone;
+#  xmlSAX2NamespaceDecl; suppressed in 2.6.10
+  xmlSAX2NotationDecl;
+  xmlSAX2ProcessingInstruction;
+  xmlSAX2Reference;
+  xmlSAX2ResolveEntity;
+  xmlSAX2SetDocumentLocator;
+#  xmlSAX2SetNamespace; suppressed in 2.6.10
+  xmlSAX2StartDocument;
+  xmlSAX2StartElementNs;
+  xmlSAX2StartElement;
+  xmlSAX2UnparsedEntityDecl;
+  xmlSAXDefaultVersion;
+  xmlSAXVersion;
+
+# HTMLparser
+  htmlCtxtReadDoc;
+  htmlCtxtReadFd;
+  htmlCtxtReadFile;
+  htmlCtxtReadIO;
+  htmlCtxtReadMemory;
+  htmlCtxtReset;
+  htmlCtxtUseOptions;
+  htmlReadDoc;
+  htmlReadFd;
+  htmlReadFile;
+  htmlReadIO;
+  htmlReadMemory;
+
+# tree
+  xmlBufferCreateStatic;
+
+# chvalid
+  xmlCharInRange;
+
+# xmlIO
+  xmlCheckHTTPInput;
+
+# xmlerror
+  xmlCopyError;
+  xmlCtxtGetLastError;
+  xmlGetLastError;
+  xmlResetError;
+  xmlResetLastError;
+  xmlSetStructuredErrorFunc;
+
+# parser
+  xmlCtxtReadDoc;
+  xmlCtxtReadFd;
+  xmlCtxtReadFile;
+  xmlCtxtReadIO;
+  xmlCtxtReadMemory;
+  xmlCtxtResetLastError;
+  xmlCtxtReset;
+  xmlCtxtUseOptions;
+  xmlReadDoc;
+  xmlReadFd;
+  xmlReadFile;
+  xmlReadIO;
+  xmlReadMemory;
+  xmlStrPrintf;
+  xmlStrQEqual;
+
+# dict
+  xmlDictCreate;
+  xmlDictFree;
+  xmlDictLookup;
+  xmlDictOwns;
+  xmlDictQLookup;
+  xmlDictReference;
+  xmlDictSize;
+
+# parserInternals
+  xmlErrMemory;
+  xmlParserMaxDepth; # variable
+  xmlStringLenDecodeEntities;
+  xmlSwitchInputEncoding;
+
+# xmlwriter
+  xmlFreeTextWriter;
+  xmlNewTextWriterFilename;
+  xmlNewTextWriterMemory;
+  xmlNewTextWriter;
+  xmlTextWriterEndAttribute;
+  xmlTextWriterEndCDATA;
+  xmlTextWriterEndDocument;
+  xmlTextWriterEndDTD;
+  xmlTextWriterEndElement;
+  xmlTextWriterEndPI;
+  xmlTextWriterFlush;
+  xmlTextWriterFullEndElement;
+  xmlTextWriterStartAttributeNS;
+  xmlTextWriterStartAttribute;
+  xmlTextWriterStartCDATA;
+  xmlTextWriterStartDocument;
+  xmlTextWriterStartDTDAttlist;
+  xmlTextWriterStartDTDElement;
+  xmlTextWriterStartDTDEntity;
+  xmlTextWriterStartDTD;
+  xmlTextWriterStartElementNS;
+  xmlTextWriterStartElement;
+  xmlTextWriterStartPI;
+  xmlTextWriterWriteAttributeNS;
+  xmlTextWriterWriteAttribute;
+  xmlTextWriterWriteBase64;
+  xmlTextWriterWriteBinHex;
+  xmlTextWriterWriteCDATA;
+  xmlTextWriterWriteComment;
+  xmlTextWriterWriteDTDAttlist;
+  xmlTextWriterWriteDTDElement;
+  xmlTextWriterWriteDTDEntity;
+  xmlTextWriterWriteDTDExternalEntity;
+  xmlTextWriterWriteDTDInternalEntity;
+  xmlTextWriterWriteDTDNotation;
+  xmlTextWriterWriteDTD;
+  xmlTextWriterWriteElementNS;
+  xmlTextWriterWriteElement;
+  xmlTextWriterWriteFormatAttributeNS;
+  xmlTextWriterWriteFormatAttribute;
+  xmlTextWriterWriteFormatCDATA;
+  xmlTextWriterWriteFormatComment;
+  xmlTextWriterWriteFormatDTDAttlist;
+  xmlTextWriterWriteFormatDTDElement;
+  xmlTextWriterWriteFormatDTDInternalEntity;
+  xmlTextWriterWriteFormatDTD;
+  xmlTextWriterWriteFormatElementNS;
+  xmlTextWriterWriteFormatElement;
+  xmlTextWriterWriteFormatPI;
+  xmlTextWriterWriteFormatRaw;
+  xmlTextWriterWriteFormatString;
+  xmlTextWriterWritePI;
+  xmlTextWriterWriteRawLen;
+  xmlTextWriterWriteRaw;
+  xmlTextWriterWriteString;
+  xmlTextWriterWriteVFormatAttributeNS;
+  xmlTextWriterWriteVFormatAttribute;
+  xmlTextWriterWriteVFormatCDATA;
+  xmlTextWriterWriteVFormatComment;
+  xmlTextWriterWriteVFormatDTDAttlist;
+  xmlTextWriterWriteVFormatDTDElement;
+  xmlTextWriterWriteVFormatDTDInternalEntity;
+  xmlTextWriterWriteVFormatDTD;
+  xmlTextWriterWriteVFormatElementNS;
+  xmlTextWriterWriteVFormatElement;
+  xmlTextWriterWriteVFormatPI;
+  xmlTextWriterWriteVFormatRaw;
+  xmlTextWriterWriteVFormatString;
+
+
+# hash
+  xmlHashQLookup2;
+  xmlHashQLookup3;
+  xmlHashQLookup;
+
+# chvalid
+  xmlIsBaseCharGroup; # variable
+  xmlIsCharGroup; # variable
+  xmlIsCombiningGroup; # variable
+  xmlIsDigitGroup; # variable
+  xmlIsExtenderGroup; # variable
+  xmlIsIdeographicGroup; # variable
+  xmlIsPubidChar_tab; # variable
+
+# globals
+  xmlLastError; # variable
+
+# nanohttp
+  xmlNanoHTTPEncoding;
+  xmlNanoHTTPMimeType;
+  xmlNanoHTTPRedir;
+
+# tree
+  xmlNodeBufGetContent;
+
+# xmlIO
+  xmlParserInputBufferCreateStatic;
+
+# xmlreader
+  xmlReaderForDoc;
+  xmlReaderForFd;
+  xmlReaderForFile;
+  xmlReaderForIO;
+  xmlReaderForMemory;
+  xmlReaderNewDoc;
+  xmlReaderNewFd;
+  xmlReaderNewFile;
+  xmlReaderNewIO;
+  xmlReaderNewMemory;
+  xmlReaderNewWalker;
+  xmlReaderWalker;
+  xmlTextReaderConstBaseUri;
+  xmlTextReaderConstLocalName;
+  xmlTextReaderConstNamespaceUri;
+  xmlTextReaderConstName;
+  xmlTextReaderConstPrefix;
+  xmlTextReaderConstString;
+  xmlTextReaderConstValue;
+  xmlTextReaderConstXmlLang;
+  xmlTextReaderNextSibling;
+  xmlTextReaderPreserve;
+
+# globals
+  xmlStructuredError; # variable
+  xmlThrDefSetStructuredErrorFunc;
+
+# xpathInternals
+  xmlXPathErr;
+
+} LIBXML2_2.5.9;
+
+LIBXML2_2.6.1 {
+    global:
+
+# parser
+  xmlCtxtResetPush;
+} LIBXML2_2.6.0;
+
+LIBXML2_2.6.2 {
+    global:
+
+# parserInternals
+  xmlCreateURLParserCtxt;
+
+# xmlschemas
+  xmlSchemaNewDocParserCtxt;
+
+# parser
+  xmlStrVPrintf;
+
+# xinclude
+  xmlXIncludeFreeContext;
+  xmlXIncludeNewContext;
+  xmlXIncludeProcessNode;
+
+} LIBXML2_2.6.1;
+
+LIBXML2_2.6.3 {
+    global:
+
+# pattern
+  xmlFreePatternList;
+  xmlFreePattern;
+  xmlPatterncompile;
+  xmlPatternMatch;
+
+# xmlwriter
+  xmlNewTextWriterDoc;
+  xmlNewTextWriterPushParser;
+  xmlNewTextWriterTree;
+
+# xmlreader
+  xmlTextReaderPreservePattern;
+
+# xmlunicode
+  xmlUCSIsAegeanNumbers;
+  xmlUCSIsBuhid;
+  xmlUCSIsCombiningDiacriticalMarksforSymbols;
+  xmlUCSIsCypriotSyllabary;
+  xmlUCSIsCyrillicSupplement;
+  xmlUCSIsGreekandCoptic;
+  xmlUCSIsHanunoo;
+  xmlUCSIsKatakanaPhoneticExtensions;
+  xmlUCSIsKhmerSymbols;
+  xmlUCSIsLimbu;
+  xmlUCSIsLinearBIdeograms;
+  xmlUCSIsLinearBSyllabary;
+  xmlUCSIsMiscellaneousMathematicalSymbolsA;
+  xmlUCSIsMiscellaneousMathematicalSymbolsB;
+  xmlUCSIsMiscellaneousSymbolsandArrows;
+  xmlUCSIsOsmanya;
+  xmlUCSIsPhoneticExtensions;
+  xmlUCSIsPrivateUseArea;
+  xmlUCSIsShavian;
+  xmlUCSIsSupplementalArrowsA;
+  xmlUCSIsSupplementalArrowsB;
+  xmlUCSIsSupplementalMathematicalOperators;
+  xmlUCSIsSupplementaryPrivateUseAreaA;
+  xmlUCSIsSupplementaryPrivateUseAreaB;
+  xmlUCSIsTagalog;
+  xmlUCSIsTagbanwa;
+  xmlUCSIsTaiLe;
+  xmlUCSIsTaiXuanJingSymbols;
+  xmlUCSIsUgaritic;
+  xmlUCSIsVariationSelectorsSupplement;
+  xmlUCSIsVariationSelectors;
+  xmlUCSIsYijingHexagramSymbols;
+
+# xinclude
+  xmlXIncludeProcessFlags;
+  xmlXIncludeProcessTreeFlags;
+  xmlXIncludeSetFlags;
+
+} LIBXML2_2.6.2;
+
+LIBXML2_2.6.5 {
+    global:
+
+# xmlmemory
+  xmlCleanupMemory;
+
+# dict
+  xmlDictCreateSub;
+
+# relaxng
+  xmlRelaxParserSetFlag;
+
+# xmlstring
+  xmlStrncatNew;
+
+# xmlwriter
+  xmlTextWriterSetIndentString;
+  xmlTextWriterSetIndent;
+
+# xpath
+  xmlXPathCtxtCompile;
+
+} LIBXML2_2.6.3;
+
+LIBXML2_2.6.6 {
+    global:
+
+# tree
+  xmlAttrSerializeTxtContent;
+
+# parser
+  xmlByteConsumed;
+
+# xmlreader
+  xmlTextReaderSetStructuredErrorHandler;
+
+} LIBXML2_2.6.5;
+
+LIBXML2_2.6.7 {
+    global:
+
+# xmlwriter
+  xmlTextWriterEndComment;
+  xmlTextWriterStartComment;
+
+} LIBXML2_2.6.6;
+
+LIBXML2_2.6.8 {
+    global:
+
+# xmlsave
+  xmlSaveClose;
+  xmlSaveDoc;
+  xmlSaveFlush;
+#  xmlSaveToBuffer; suppressed in 2.6.11, readded in 2.6.23
+  xmlSaveToFd;
+  xmlSaveToFilename;
+  xmlSaveToIO;
+  xmlSaveTree;
+
+# xmlwriter
+  xmlTextWriterEndDTDAttlist;
+  xmlTextWriterEndDTDElement;
+  xmlTextWriterEndDTDEntity;
+  xmlTextWriterWriteDTDExternalEntityContents;
+} LIBXML2_2.6.7;
+
+LIBXML2_2.6.10 {
+    global:
+# xmlIO
+  xmlOutputBufferWriteEscape;
+# xmlIO
+  xmlPopInputCallbacks;
+# xmlsave
+  xmlSaveSetAttrEscape;
+# xmlsave
+  xmlSaveSetEscape;
+} LIBXML2_2.6.8;
+
+LIBXML2_2.6.11 {
+    global:
+
+# uri
+  xmlBuildRelativeURI;
+
+# globals
+  xmlOutputBufferCreateFilenameDefault;
+  xmlOutputBufferCreateFilenameValue; # variable
+  xmlParserInputBufferCreateFilenameDefault;
+  xmlParserInputBufferCreateFilenameValue; # variable
+  xmlThrDefOutputBufferCreateFilenameDefault;
+  xmlThrDefParserInputBufferCreateFilenameDefault;
+
+# schemasInternals
+  xmlSchemaFreeWildcard;
+
+# xmlschemastypes
+  xmlSchemaCollapseString;
+  xmlSchemaGetBuiltInListSimpleTypeItemType;
+  xmlSchemaGetBuiltInType;
+  xmlSchemaIsBuiltInTypeFacet;
+  xmlSchemaValidateListSimpleTypeFacet;
+
+} LIBXML2_2.6.10;
+
+LIBXML2_2.6.12 {
+    global:
+
+# parser
+  xmlParseInNodeContext;
+
+# xmlschemastypes
+  xmlSchemaGetFacetValueAsULong;
+  xmlSchemaValidateLengthFacet;
+  xmlSchemaValPredefTypeNodeNoNorm;
+
+# xmlschemas
+  xmlSchemaGetParserErrors;
+  xmlSchemaGetValidErrors;
+
+} LIBXML2_2.6.11;
+
+LIBXML2_2.6.14 {
+    global:
+
+# xmlautomata
+  xmlAutomataNewCountTrans2;
+  xmlAutomataNewOnceTrans2;
+
+# nanohttp
+  xmlNanoHTTPContentLength;
+
+# xmlschemas
+  xmlSchemaSetValidOptions;
+  xmlSchemaValidateOneElement;
+  xmlSchemaValidCtxtGetOptions;
+
+} LIBXML2_2.6.12;
+
+LIBXML2_2.6.15 {
+    global:
+
+# debugXML
+  xmlDebugCheckDocument;
+
+# tree
+  xmlDocCopyNodeList;
+  xmlNewDocPI;
+
+# xmlreader
+  xmlTextReaderConstEncoding;
+  xmlTextReaderConstXmlVersion;
+  xmlTextReaderIsNamespaceDecl;
+  xmlTextReaderStandalone;
+
+} LIBXML2_2.6.14;
+
+LIBXML2_2.6.16 {
+    global:
+
+# xmlmemory
+  xmlMemBlocks;
+
+# relaxng
+  xmlRelaxNGInitTypes;
+
+} LIBXML2_2.6.15;
+
+LIBXML2_2.6.17 {
+    global:
+
+# dict
+  xmlDictExists;
+
+# xmlmodule
+  xmlModuleClose;
+  xmlModuleFree;
+  xmlModuleOpen;
+  xmlModuleSymbol;
+
+# xmlregexp
+  xmlRegExecErrInfo;
+  xmlRegExecNextValues;
+
+# xmlschemastypes
+  xmlSchemaWhiteSpaceReplace;
+
+# xmlreader
+  xmlTextReaderGetParserColumnNumber;
+  xmlTextReaderGetParserLineNumber;
+
+} LIBXML2_2.6.16;
+
+LIBXML2_2.6.18 {
+    global:
+
+# valid
+  xmlCopyDocElementContent;
+  xmlFreeDocElementContent;
+  xmlNewDocElementContent;
+
+# dict
+  xmlDictCleanup;
+
+# hash
+  xmlHashCreateDict;
+
+# pattern
+  xmlFreeStreamCtxt;
+  xmlPatternFromRoot;
+  xmlPatternGetStreamCtxt;
+  xmlPatternMaxDepth;
+  xmlPatternStreamable;
+  xmlStreamPop;
+  xmlStreamPushAttr;
+  xmlStreamPush;
+
+# xmlschemastypes
+  xmlSchemaCompareValuesWhtsp;
+  xmlSchemaCopyValue;
+  xmlSchemaGetCanonValue;
+  xmlSchemaNewNOTATIONValue;
+  xmlSchemaNewStringValue;
+
+# xmlreader
+  xmlTextReaderByteConsumed;
+} LIBXML2_2.6.17;
+
+LIBXML2_2.6.19 {
+    global:
+
+# xmlschemastypes
+  xmlSchemaGetValType;
+  xmlSchemaValidateFacetWhtsp;
+  xmlSchemaValidateLengthFacetWhtsp;
+} LIBXML2_2.6.18;
+
+LIBXML2_2.6.20 {
+    global:
+
+# tree
+  xmlDOMWrapAdoptNode;
+  xmlDOMWrapFreeCtxt;
+  xmlDOMWrapNewCtxt;
+  xmlDOMWrapReconcileNamespaces;
+  xmlDOMWrapRemoveNode;
+
+# xmlschemastypes
+  xmlSchemaGetCanonValueWhtsp;
+  xmlSchemaNewQNameValue;
+  xmlSchemaValueAppend;
+  xmlSchemaValueGetAsBoolean;
+  xmlSchemaValueGetAsString;
+  xmlSchemaValueGetNext;
+
+# xmlschemas
+  xmlSchemaIsValid;
+  xmlSchemaSAXPlug;
+  xmlSchemaSAXUnplug;
+  xmlSchemaValidateFile;
+
+# xmlreader
+  xmlTextReaderSchemaValidate;
+  xmlTextReaderSetSchema;
+} LIBXML2_2.6.19;
+
+LIBXML2_2.6.21 {
+    global:
+
+# xmlautomata
+  xmlAutomataNewNegTrans;
+
+# xmlregexp
+  emptyExp; # variable
+  forbiddenExp; # variable
+  xmlExpCtxtNbCons;
+  xmlExpCtxtNbNodes;
+  xmlExpDump;
+  xmlExpExpDerive;
+  xmlExpFreeCtxt;
+  xmlExpFree;
+  xmlExpGetLanguage;
+  xmlExpGetStart;
+  xmlExpIsNillable;
+  xmlExpMaxToken;
+  xmlExpNewAtom;
+  xmlExpNewCtxt;
+  xmlExpNewOr;
+  xmlExpNewRange;
+  xmlExpNewSeq;
+  xmlExpParse;
+  xmlExpRef;
+  xmlExpStringDerive;
+  xmlExpSubsume;
+
+# parser
+  xmlHasFeature;
+
+# uri
+  xmlParseURIRaw;
+
+# pattern
+  xmlPatternMinDepth;
+
+# relaxng
+  xmlRelaxNGSetValidStructuredErrors;
+
+# xmlschemas
+  xmlSchemaSetValidStructuredErrors;
+
+# schematron
+  xmlSchematronFreeParserCtxt;
+  xmlSchematronFree;
+  xmlSchematronFreeValidCtxt;
+  xmlSchematronNewDocParserCtxt;
+  xmlSchematronNewMemParserCtxt;
+  xmlSchematronNewParserCtxt;
+  xmlSchematronNewValidCtxt;
+  xmlSchematronParse;
+  xmlSchematronValidateDoc;
+} LIBXML2_2.6.20;
+
+LIBXML2_2.6.23 {
+    global:
+
+# HTMLtree
+  htmlDocDumpMemoryFormat;
+
+# xmlIO
+  xmlOutputBufferCreateBuffer;
+
+# xmlsave
+  xmlSaveToBuffer;
+
+# xmlschemas
+  xmlSchemaSetParserStructuredErrors;
+
+# pattern
+  xmlStreamPushNode;
+  xmlStreamWantsAnyNode;
+
+# xmlreader
+  xmlTextReaderSchemaValidateCtxt;
+} LIBXML2_2.6.21;
+
+LIBXML2_2.6.24 {
+    global:
+# tree
+  xmlDOMWrapCloneNode;
+# relaxng
+  xmlRelaxNGSetParserStructuredErrors;
+} LIBXML2_2.6.23;
+
+LIBXML2_2.6.25 {
+    global:
+
+# xpath
+  xmlXPathContextSetCache;
+} LIBXML2_2.6.24;
+
+LIBXML2_2.6.27 {
+    global:
+
+# HTMLparser
+  htmlNewParserCtxt;
+
+# uri
+  xmlPathToURI;
+
+# xinclude
+  xmlXIncludeProcessFlagsData;
+
+# xpath
+  xmlXPathCompiledEvalToBoolean;
+} LIBXML2_2.6.25;
+
+LIBXML2_2.6.28 {
+    global:
+
+# xmlreader
+  xmlTextReaderSetup;
+} LIBXML2_2.6.27;
+
+LIBXML2_2.6.29 {
+    global:
+
+# threads
+  xmlDllMain;
+} LIBXML2_2.6.28;
+
+LIBXML2_2.6.32 {
+    global:
+
+# schematron
+  xmlSchematronSetValidStructuredErrors;
+} LIBXML2_2.6.29;
+
+LIBXML2_2.7.0 {
+    global:
+
+# xmlmemory
+  xmlMemDisplayLast;
+
+# entities
+  xmlNewEntity;
+
+# xmlschemas
+  xmlSchemaValidCtxtGetParserCtxt;
+} LIBXML2_2.6.32;
+
+LIBXML2_2.7.3 {
+    global:
+
+# tree
+  xmlChildElementCount;
+  xmlFirstElementChild;
+  xmlLastElementChild;
+  xmlNextElementSibling;
+  xmlPreviousElementSibling;
+} LIBXML2_2.7.0;
diff --git a/parser.c b/parser.c
index 47fbfa5..0808837 100644
--- a/parser.c
+++ b/parser.c
@@ -202,8 +202,8 @@ static const char *xmlW3CPIs[] = {
 
 
 /* DEPR void xmlParserHandleReference(xmlParserCtxtPtr ctxt); */
-xmlEntityPtr xmlParseStringPEReference(xmlParserCtxtPtr ctxt,
-                                       const xmlChar **str);
+static xmlEntityPtr xmlParseStringPEReference(xmlParserCtxtPtr ctxt,
+                                              const xmlChar **str);
 
 static xmlParserErrors
 xmlParseExternalEntityPrivate(xmlDocPtr doc, xmlParserCtxtPtr oldctxt,
@@ -1344,8 +1344,8 @@ xmlCheckLanguageID(const xmlChar * lang)
  *									*
  ************************************************************************/
 
-xmlEntityPtr xmlParseStringEntityRef(xmlParserCtxtPtr ctxt,
-                                     const xmlChar ** str);
+static xmlEntityPtr xmlParseStringEntityRef(xmlParserCtxtPtr ctxt,
+                                            const xmlChar ** str);
 
 #ifdef SAX2
 /**
@@ -3995,7 +3995,7 @@ xmlParsePubidLiteral(xmlParserCtxtPtr ctxt) {
     return(buf);
 }
 
-void xmlParseCharDataComplex(xmlParserCtxtPtr ctxt, int cdata);
+static void xmlParseCharDataComplex(xmlParserCtxtPtr ctxt, int cdata);
 
 /*
  * used for the test in the inner loop of the char data testing
@@ -4200,7 +4200,7 @@ get_more:
  * of xmlParseCharData() when the parsing requires handling
  * of non-ASCII characters.
  */
-void
+static void
 xmlParseCharDataComplex(xmlParserCtxtPtr ctxt, int cdata) {
     xmlChar buf[XML_PARSER_BIG_BUFFER_SIZE + 5];
     int nbchar = 0;
@@ -7274,7 +7274,7 @@ xmlParseEntityRef(xmlParserCtxtPtr ctxt) {
  * Returns the xmlEntityPtr if found, or NULL otherwise. The str pointer
  * is updated to the current location in the string.
  */
-xmlEntityPtr
+static xmlEntityPtr
 xmlParseStringEntityRef(xmlParserCtxtPtr ctxt, const xmlChar ** str) {
     xmlChar *name;
     const xmlChar *ptr;
@@ -7683,7 +7683,7 @@ xmlLoadEntityContent(xmlParserCtxtPtr ctxt, xmlEntityPtr entity) {
  * Returns the string of the entity content.
  *         str is updated to the current value of the index
  */
-xmlEntityPtr
+static xmlEntityPtr
 xmlParseStringPEReference(xmlParserCtxtPtr ctxt, const xmlChar **str) {
     const xmlChar *ptr;
     xmlChar cur;
@@ -12106,8 +12106,6 @@ xmlParseCtxtExternalEntity(xmlParserCtxtPtr ctx, const xmlChar *URL,
     int ret = 0;
     xmlChar start[4];
     xmlCharEncoding enc;
-    xmlParserInputPtr inputStream;
-    char *directory = NULL;
 
     if (ctx == NULL) return(-1);
 
diff --git a/tree.c b/tree.c
index 96a27d8..21670da 100644
--- a/tree.c
+++ b/tree.c
@@ -49,7 +49,8 @@ int __xmlRegisterCallbacks = 0;
  *									*
  ************************************************************************/
 
-xmlNsPtr xmlNewReconciliedNs(xmlDocPtr doc, xmlNodePtr tree, xmlNsPtr ns);
+static xmlNsPtr
+xmlNewReconciliedNs(xmlDocPtr doc, xmlNodePtr tree, xmlNsPtr ns);
 
 static xmlChar* xmlGetPropNodeValueInternal(xmlAttrPtr prop);
 
@@ -6056,7 +6057,7 @@ xmlSearchNsByHref(xmlDocPtr doc, xmlNodePtr node, const xmlChar * href)
  * @tree or on one of its ancestors then a new prefix is generated.
  * Returns the (new) namespace definition or NULL in case of error
  */
-xmlNsPtr
+static xmlNsPtr
 xmlNewReconciliedNs(xmlDocPtr doc, xmlNodePtr tree, xmlNsPtr ns) {
     xmlNsPtr def;
     xmlChar prefix[50];
diff --git a/valid.c b/valid.c
index 289a96a..81e2fea 100644
--- a/valid.c
+++ b/valid.c
@@ -637,8 +637,6 @@ xmlValidStateDebug(xmlValidCtxtPtr ctxt) {
    else if ((doc->intSubset == NULL) &&				\
 	    (doc->extSubset == NULL)) return(0)
 
-xmlAttributePtr xmlScanAttributeDecl(xmlDtdPtr dtd, const xmlChar *elem);
-
 #ifdef LIBXML_REGEXP_ENABLED
 
 /************************************************************************
@@ -1833,53 +1831,6 @@ xmlDumpEnumeration(xmlBufferPtr buf, xmlEnumerationPtr cur) {
 
 #ifdef LIBXML_VALID_ENABLED
 /**
- * xmlScanAttributeDeclCallback:
- * @attr:  the attribute decl
- * @list:  the list to update
- *
- * Callback called by xmlScanAttributeDecl when a new attribute
- * has to be entered in the list.
- */
-static void
-xmlScanAttributeDeclCallback(xmlAttributePtr attr, xmlAttributePtr *list,
-	                     const xmlChar* name ATTRIBUTE_UNUSED) {
-    attr->nexth = *list;
-    *list = attr;
-}
-
-/**
- * xmlScanAttributeDecl:
- * @dtd:  pointer to the DTD
- * @elem:  the element name
- *
- * When inserting a new element scan the DtD for existing attributes
- * for that element and initialize the Attribute chain
- *
- * Returns the pointer to the first attribute decl in the chain,
- *         possibly NULL.
- */
-xmlAttributePtr
-xmlScanAttributeDecl(xmlDtdPtr dtd, const xmlChar *elem) {
-    xmlAttributePtr ret = NULL;
-    xmlAttributeTablePtr table;
-
-    if (dtd == NULL) {
-	return(NULL);
-    }
-    if (elem == NULL) {
-	return(NULL);
-    }
-    table = (xmlAttributeTablePtr) dtd->attributes;
-    if (table == NULL) 
-        return(NULL);
-
-    /* WRONG !!! */
-    xmlHashScan3(table, NULL, NULL, elem,
-	        (xmlHashScanner) xmlScanAttributeDeclCallback, &ret);
-    return(ret);
-}
-
-/**
  * xmlScanIDAttributeDecl:
  * @ctxt:  the validation context
  * @elem:  the element name
diff --git a/xpointer.c b/xpointer.c
index eea7070..2a62abc 100644
--- a/xpointer.c
+++ b/xpointer.c
@@ -1301,12 +1301,19 @@ xmlXPtrEvalXPointer(xmlXPathParserContextPtr ctxt) {
  *									*
  ************************************************************************/
 
+static
 void xmlXPtrStringRangeFunction(xmlXPathParserContextPtr ctxt, int nargs);
+static
 void xmlXPtrStartPointFunction(xmlXPathParserContextPtr ctxt, int nargs);
+static
 void xmlXPtrEndPointFunction(xmlXPathParserContextPtr ctxt, int nargs);
+static
 void xmlXPtrHereFunction(xmlXPathParserContextPtr ctxt, int nargs);
+static
 void xmlXPtrOriginFunction(xmlXPathParserContextPtr ctxt, int nargs);
+static
 void xmlXPtrRangeInsideFunction(xmlXPathParserContextPtr ctxt, int nargs);
+static
 void xmlXPtrRangeFunction(xmlXPathParserContextPtr ctxt, int nargs);
 
 /**
@@ -1734,7 +1741,7 @@ xmlXPtrNbLocChildren(xmlNodePtr node) {
  * Function implementing here() operation 
  * as described in 5.4.3
  */
-void
+static void
 xmlXPtrHereFunction(xmlXPathParserContextPtr ctxt, int nargs) {
     CHECK_ARITY(0);
 
@@ -1752,7 +1759,7 @@ xmlXPtrHereFunction(xmlXPathParserContextPtr ctxt, int nargs) {
  * Function implementing origin() operation 
  * as described in 5.4.3
  */
-void
+static void
 xmlXPtrOriginFunction(xmlXPathParserContextPtr ctxt, int nargs) {
     CHECK_ARITY(0);
 
@@ -1785,7 +1792,7 @@ xmlXPtrOriginFunction(xmlXPathParserContextPtr ctxt, int nargs) {
  * ----------------
  *
  */
-void
+static void
 xmlXPtrStartPointFunction(xmlXPathParserContextPtr ctxt, int nargs) {
     xmlXPathObjectPtr tmp, obj, point;
     xmlLocationSetPtr newset = NULL;
@@ -1879,7 +1886,7 @@ xmlXPtrStartPointFunction(xmlXPathParserContextPtr ctxt, int nargs) {
  *   syntax error.
  * ----------------------------
  */
-void
+static void
 xmlXPtrEndPointFunction(xmlXPathParserContextPtr ctxt, int nargs) {
     xmlXPathObjectPtr tmp, obj, point;
     xmlLocationSetPtr newset = NULL;
@@ -2024,7 +2031,7 @@ xmlXPtrCoveringRange(xmlXPathParserContextPtr ctxt, xmlXPathObjectPtr loc) {
  *  location-set, a range location representing the covering range of
  *  x is added to the result location-set.
  */
-void
+static void
 xmlXPtrRangeFunction(xmlXPathParserContextPtr ctxt, int nargs) {
     int i;
     xmlXPathObjectPtr set;
@@ -2170,7 +2177,7 @@ xmlXPtrInsideRange(xmlXPathParserContextPtr ctxt, xmlXPathObjectPtr loc) {
  *  location children of x.
  *
  */
-void
+static void
 xmlXPtrRangeInsideFunction(xmlXPathParserContextPtr ctxt, int nargs) {
     int i;
     xmlXPathObjectPtr set;
@@ -2759,7 +2766,7 @@ xmlXPtrGetEndPoint(xmlXPathObjectPtr obj, xmlNodePtr *node, int *indx) {
  * all be character points.
  * ------------------------------
  */
-void
+static void
 xmlXPtrStringRangeFunction(xmlXPathParserContextPtr ctxt, int nargs) {
     int i, startindex, endindex = 0, fendindex;
     xmlNodePtr start, end = 0, fend;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]