diff -ur misc/libxslt-1.1.29/libxslt/libxslt.syms misc/build/libxslt-1.1.29/libxslt/libxslt.syms
--- misc/libxslt-1.1.29/libxslt/libxslt.syms	2016-05-23 18:57:36.000000000 -0700
+++ misc/build/libxslt-1.1.29/libxslt/libxslt.syms	2016-08-11 12:05:20.834928000 -0700
@@ -107,7 +107,7 @@
   xsltFreeCompMatchList;
   xsltFreeTemplateHashes;
   xsltGetTemplate;
-  xsltMatchPattern;
+#NOT_IMPLEMENTED  xsltMatchPattern;
   xsltTestCompMatchList;
 
 # preproc
@@ -407,7 +407,7 @@
     global:
 
 # xsltInternals
-  xsltConstNamespaceNameXSLT; # variable
+#XSLT_REFACTORED_XSLT_NSCOMP  xsltConstNamespaceNameXSLT; # variable
   xsltExtensionInstructionResultFinalize;
   xsltExtensionInstructionResultRegister;
   xsltInitCtxtKey;
@@ -416,24 +416,24 @@
   xsltInit;
 
 # xsltInternals
-  xsltParseAnyXSLTElem;
-  xsltParseSequenceConstructor;
-  xsltPointerListAddSize;
-  xsltPointerListClear;
-  xsltPointerListCreate;
-  xsltPointerListFree;
+#XSLT_REFACTORED  xsltParseAnyXSLTElem;
+#XSLT_REFACTORED  xsltParseSequenceConstructor;
+#XSLT_REFACTORED  xsltPointerListAddSize;
+#XSLT_REFACTORED  xsltPointerListClear;
+#XSLT_REFACTORED  xsltPointerListCreate;
+#XSLT_REFACTORED  xsltPointerListFree;
   xsltRegisterLocalRVT;
   xsltReleaseRVT;
-  xsltRestoreDocumentNamespaces;
+#XSLT_REFACTORED_XSLT_NSCOMP  xsltRestoreDocumentNamespaces;
 
 # extensions
-  xsltStyleStylesheetLevelGetExtData;
+#XSLT_REFACTORED  xsltStyleStylesheetLevelGetExtData;
 
 # xsltInternals
 # xsltTransStorageAdd; removed in 1.1.28
 # xsltTransStorageRemove; removed in 1.1.28
   xsltUninit;
-  xsltXSLTAttrMarker; # variable
+#XSLT_REFACTORED  xsltXSLTAttrMarker; # variable
 } LIBXML2_1.1.9;
 
 LIBXML2_1.1.20 {
@@ -476,6 +476,10 @@
 
 # transform
   xsltProcessOneNode;
+
+# Solaris ld needs explicit auto-reduction (or, alternatively, "-B local")
+    local:
+  *;
 } LIBXML2_1.1.25;
 
 LIBXML2_1.1.27 {
