Okay this is scary but it is just adding a configure option to disable

* HTMLtree.c SAX2.c c14n.c catalog.c configure.in debugXML.c
  encoding.c entities.c nanoftp.c nanohttp.c parser.c relaxng.c
  testAutomata.c testC14N.c testHTML.c testRegexp.c testRelax.c
  testSchemas.c testXPath.c threads.c tree.c valid.c xmlIO.c
  xmlcatalog.c xmllint.c xmlmemory.c xmlreader.c xmlschemas.c
  example/gjobread.c include/libxml/HTMLtree.h include/libxml/c14n.h
  include/libxml/catalog.h include/libxml/debugXML.h
  include/libxml/entities.h include/libxml/nanohttp.h
  include/libxml/relaxng.h include/libxml/tree.h
  include/libxml/valid.h include/libxml/xmlIO.h
  include/libxml/xmlschemas.h include/libxml/xmlversion.h.in
  include/libxml/xpathInternals.h python/libxml.c:
  Okay this is scary but it is just adding a configure option
  to disable output, this touches most of the files.
Daniel
diff --git a/valid.c b/valid.c
index b1555a8..7ebd686 100644
--- a/valid.c
+++ b/valid.c
@@ -827,6 +827,7 @@
     xmlFree(cur);
 }
 
+#ifdef LIBXML_OUTPUT_ENABLED
 /**
  * xmlDumpElementContent:
  * @buf:  An XML buffer
@@ -910,6 +911,7 @@
 	                 xmlElementContentPtr content ATTRIBUTE_UNUSED,
 			 int glob ATTRIBUTE_UNUSED) {
 }
+#endif /* LIBXML_OUTPUT_ENABLED */
 
 /**
  * xmlSnprintfElementContent:
@@ -1065,7 +1067,8 @@
  * Returns NULL if not, otherwise the entity
  */
 xmlElementPtr
-xmlAddElementDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *name,
+xmlAddElementDecl(xmlValidCtxtPtr ctxt ATTRIBUTE_UNUSED,
+                  xmlDtdPtr dtd, const xmlChar *name,
                   xmlElementTypeVal type,
 		  xmlElementContentPtr content) {
     xmlElementPtr ret;
@@ -1312,6 +1315,7 @@
 		                            (xmlHashCopier) xmlCopyElement));
 }
 
+#ifdef LIBXML_OUTPUT_ENABLED
 /**
  * xmlDumpElementDecl:
  * @buf:  the XML buffer output
@@ -1381,6 +1385,7 @@
 xmlDumpElementTable(xmlBufferPtr buf, xmlElementTablePtr table) {
     xmlHashScan(table, (xmlHashScanner) xmlDumpElementDecl, buf);
 }
+#endif /* LIBXML_OUTPUT_ENABLED */
 
 /**
  * xmlCreateEnumeration:
@@ -1447,6 +1452,7 @@
     return(ret);
 }
 
+#ifdef LIBXML_OUTPUT_ENABLED
 /**
  * xmlDumpEnumeration:
  * @buf:  the XML buffer output
@@ -1466,6 +1472,7 @@
 	xmlDumpEnumeration(buf, cur->next);
     }
 }
+#endif /* LIBXML_OUTPUT_ENABLED */
 
 /**
  * xmlCreateAttributeTable:
@@ -1605,7 +1612,8 @@
  * Returns NULL if not new, otherwise the attribute decl
  */
 xmlAttributePtr
-xmlAddAttributeDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *elem,
+xmlAddAttributeDecl(xmlValidCtxtPtr ctxt ATTRIBUTE_UNUSED,
+                    xmlDtdPtr dtd, const xmlChar *elem,
                     const xmlChar *name, const xmlChar *ns,
 		    xmlAttributeType type, xmlAttributeDefault def,
 		    const xmlChar *defaultValue, xmlEnumerationPtr tree) {
@@ -1858,6 +1866,7 @@
 				    (xmlHashCopier) xmlCopyAttribute));
 }
 
+#ifdef LIBXML_OUTPUT_ENABLED
 /**
  * xmlDumpAttributeDecl:
  * @buf:  the XML buffer output
@@ -1949,6 +1958,7 @@
 xmlDumpAttributeTable(xmlBufferPtr buf, xmlAttributeTablePtr table) {
     xmlHashScan(table, (xmlHashScanner) xmlDumpAttributeDecl, buf);
 }
+#endif /* LIBXML_OUTPUT_ENABLED */
 
 /************************************************************************
  *									*
@@ -2124,6 +2134,7 @@
 				    (xmlHashCopier) xmlCopyNotation));
 }
 
+#ifdef LIBXML_OUTPUT_ENABLED
 /**
  * xmlDumpNotationDecl:
  * @buf:  the XML buffer output
@@ -2160,6 +2171,7 @@
 xmlDumpNotationTable(xmlBufferPtr buf, xmlNotationTablePtr table) {
     xmlHashScan(table, (xmlHashScanner) xmlDumpNotationDecl, buf);
 }
+#endif /* LIBXML_OUTPUT_ENABLED */
 
 /************************************************************************
  *									*