diff --git a/elfgcchack.h b/elfgcchack.h
index ca392ec..2807bef 100644
--- a/elfgcchack.h
+++ b/elfgcchack.h
@@ -3282,6 +3282,12 @@
 #define xmlParserWarning xmlParserWarning__internal_alias
 
 #if defined(LIBXML_PATTERN_ENABLED)
+extern __typeof (xmlPatternFromRoot) xmlPatternFromRoot__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlPatternFromRoot) xmlPatternFromRoot __attribute((alias("xmlPatternFromRoot__internal_alias")));
+#define xmlPatternFromRoot xmlPatternFromRoot__internal_alias
+#endif
+
+#if defined(LIBXML_PATTERN_ENABLED)
 extern __typeof (xmlPatternGetStreamCtxt) xmlPatternGetStreamCtxt__internal_alias __attribute((visibility("hidden")));
 extern __typeof (xmlPatternGetStreamCtxt) xmlPatternGetStreamCtxt __attribute((alias("xmlPatternGetStreamCtxt__internal_alias")));
 #define xmlPatternGetStreamCtxt xmlPatternGetStreamCtxt__internal_alias
@@ -3294,6 +3300,18 @@
 #endif
 
 #if defined(LIBXML_PATTERN_ENABLED)
+extern __typeof (xmlPatternMaxDepth) xmlPatternMaxDepth__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlPatternMaxDepth) xmlPatternMaxDepth __attribute((alias("xmlPatternMaxDepth__internal_alias")));
+#define xmlPatternMaxDepth xmlPatternMaxDepth__internal_alias
+#endif
+
+#if defined(LIBXML_PATTERN_ENABLED)
+extern __typeof (xmlPatternStreamable) xmlPatternStreamable__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlPatternStreamable) xmlPatternStreamable __attribute((alias("xmlPatternStreamable__internal_alias")));
+#define xmlPatternStreamable xmlPatternStreamable__internal_alias
+#endif
+
+#if defined(LIBXML_PATTERN_ENABLED)
 extern __typeof (xmlPatterncompile) xmlPatterncompile__internal_alias __attribute((visibility("hidden")));
 extern __typeof (xmlPatterncompile) xmlPatterncompile __attribute((alias("xmlPatterncompile__internal_alias")));
 #define xmlPatterncompile xmlPatterncompile__internal_alias
@@ -4035,6 +4053,12 @@
 #define xmlSchemaCompareValues xmlSchemaCompareValues__internal_alias
 #endif
 
+#if defined(LIBXML_SCHEMAS_ENABLED)
+extern __typeof (xmlSchemaCompareValuesWhtsp) xmlSchemaCompareValuesWhtsp__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaCompareValuesWhtsp) xmlSchemaCompareValuesWhtsp __attribute((alias("xmlSchemaCompareValuesWhtsp__internal_alias")));
+#define xmlSchemaCompareValuesWhtsp xmlSchemaCompareValuesWhtsp__internal_alias
+#endif
+
 #if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
 extern __typeof (xmlSchemaDump) xmlSchemaDump__internal_alias __attribute((visibility("hidden")));
 extern __typeof (xmlSchemaDump) xmlSchemaDump __attribute((alias("xmlSchemaDump__internal_alias")));
@@ -4096,6 +4120,12 @@
 #endif
 
 #if defined(LIBXML_SCHEMAS_ENABLED)
+extern __typeof (xmlSchemaGetCanonValue) xmlSchemaGetCanonValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaGetCanonValue) xmlSchemaGetCanonValue __attribute((alias("xmlSchemaGetCanonValue__internal_alias")));
+#define xmlSchemaGetCanonValue xmlSchemaGetCanonValue__internal_alias
+#endif
+
+#if defined(LIBXML_SCHEMAS_ENABLED)
 extern __typeof (xmlSchemaGetFacetValueAsULong) xmlSchemaGetFacetValueAsULong__internal_alias __attribute((visibility("hidden")));
 extern __typeof (xmlSchemaGetFacetValueAsULong) xmlSchemaGetFacetValueAsULong __attribute((alias("xmlSchemaGetFacetValueAsULong__internal_alias")));
 #define xmlSchemaGetFacetValueAsULong xmlSchemaGetFacetValueAsULong__internal_alias
@@ -4150,12 +4180,24 @@
 #endif
 
 #if defined(LIBXML_SCHEMAS_ENABLED)
+extern __typeof (xmlSchemaNewNOTATIONValue) xmlSchemaNewNOTATIONValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaNewNOTATIONValue) xmlSchemaNewNOTATIONValue __attribute((alias("xmlSchemaNewNOTATIONValue__internal_alias")));
+#define xmlSchemaNewNOTATIONValue xmlSchemaNewNOTATIONValue__internal_alias
+#endif
+
+#if defined(LIBXML_SCHEMAS_ENABLED)
 extern __typeof (xmlSchemaNewParserCtxt) xmlSchemaNewParserCtxt__internal_alias __attribute((visibility("hidden")));
 extern __typeof (xmlSchemaNewParserCtxt) xmlSchemaNewParserCtxt __attribute((alias("xmlSchemaNewParserCtxt__internal_alias")));
 #define xmlSchemaNewParserCtxt xmlSchemaNewParserCtxt__internal_alias
 #endif
 
 #if defined(LIBXML_SCHEMAS_ENABLED)
+extern __typeof (xmlSchemaNewStringValue) xmlSchemaNewStringValue__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlSchemaNewStringValue) xmlSchemaNewStringValue __attribute((alias("xmlSchemaNewStringValue__internal_alias")));
+#define xmlSchemaNewStringValue xmlSchemaNewStringValue__internal_alias
+#endif
+
+#if defined(LIBXML_SCHEMAS_ENABLED)
 extern __typeof (xmlSchemaNewValidCtxt) xmlSchemaNewValidCtxt__internal_alias __attribute((visibility("hidden")));
 extern __typeof (xmlSchemaNewValidCtxt) xmlSchemaNewValidCtxt __attribute((alias("xmlSchemaNewValidCtxt__internal_alias")));
 #define xmlSchemaNewValidCtxt xmlSchemaNewValidCtxt__internal_alias
@@ -4493,6 +4535,12 @@
 #define xmlStreamPush xmlStreamPush__internal_alias
 #endif
 
+#if defined(LIBXML_PATTERN_ENABLED)
+extern __typeof (xmlStreamPushAttr) xmlStreamPushAttr__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlStreamPushAttr) xmlStreamPushAttr __attribute((alias("xmlStreamPushAttr__internal_alias")));
+#define xmlStreamPushAttr xmlStreamPushAttr__internal_alias
+#endif
+
 extern __typeof (xmlStringCurrentChar) xmlStringCurrentChar__internal_alias __attribute((visibility("hidden")));
 extern __typeof (xmlStringCurrentChar) xmlStringCurrentChar __attribute((alias("xmlStringCurrentChar__internal_alias")));
 #define xmlStringCurrentChar xmlStringCurrentChar__internal_alias
@@ -4582,6 +4630,12 @@
 #endif
 
 #if defined(LIBXML_READER_ENABLED)
+extern __typeof (xmlTextReaderByteConsumed) xmlTextReaderByteConsumed__internal_alias __attribute((visibility("hidden")));
+extern __typeof (xmlTextReaderByteConsumed) xmlTextReaderByteConsumed __attribute((alias("xmlTextReaderByteConsumed__internal_alias")));
+#define xmlTextReaderByteConsumed xmlTextReaderByteConsumed__internal_alias
+#endif
+
+#if defined(LIBXML_READER_ENABLED)
 extern __typeof (xmlTextReaderClose) xmlTextReaderClose__internal_alias __attribute((visibility("hidden")));
 extern __typeof (xmlTextReaderClose) xmlTextReaderClose __attribute((alias("xmlTextReaderClose__internal_alias")));
 #define xmlTextReaderClose xmlTextReaderClose__internal_alias
