RESOLVED FIXED 112368
WebKit doesn't build with --disable-xslt: libxslt/transform.h: No such file or directory
https://bugs.webkit.org/show_bug.cgi?id=112368
Summary WebKit doesn't build with --disable-xslt: libxslt/transform.h: No such file o...
Tobias Mueller
Reported 2013-03-14 11:17:51 PDT
I tried to save compilation time by disabling as many optional things as possible. One of them being XSLT as per ./configure --help. As XSLT is optional, I didn't install it. But then WebKit doesn't build: CXX DerivedSources/WebCore/libWebCore_la-JSHTMLAllCollection.lo CXX DerivedSources/WebCore/libWebCore_la-JSHTMLAnchorElement.lo In file included from ./Source/WebCore/xml/XSLTProcessor.h:29:0, from DerivedSources/WebCore/JSXSLTProcessor.h:27, from DerivedSources/WebCore/JSDOMWindow.cpp:590: ./Source/WebCore/xml/XSLStyleSheet.h:33:31: fatal error: libxslt/transform.h: No such file or directory compilation terminated. make[1]: *** [DerivedSources/WebCore/libWebCore_la-JSDOMWindow.lo] Error 1 make[1]: *** Waiting for unfinished jobs.... CXX DerivedSources/WebCore/libWebCore_la-JSHTMLAppletElement.lo make[1]: Leaving directory `/tmp/WebKit' make: *** [all] Error 2 When XSLT is installed, but when WebKit is configured with --disable-xslt: libtool: link: g++ -fvisibility-inlines-hidden -fno-rtti -g3 -pipe -O2 -Wno-c++11-compat -Wno-c++11-extensions -O2 -Wl,--unresolved-symbols=ignore-in-object-files -Wl,-O0 -Wl,--enable-new-dtags -Wl,--sort-common -Wl,--as-needed -o Programs/.libs/WebKitPluginProcess Source/WebKit2/Platform/CoreIPC/Programs_WebKitPluginProcess-ArgumentCoders.o Source/WebKit2/Platform/CoreIPC/Programs_WebKitPluginProcess-ArgumentDecoder.o Source/WebKit2/Platform/CoreIPC/Programs_WebKitPluginProcess-ArgumentEncoder.o Source/WebKit2/Platform/CoreIPC/Programs_WebKitPluginProcess-Attachment.o Source/WebKit2/Platform/CoreIPC/Programs_WebKitPluginProcess-BinarySemaphore.o Source/WebKit2/Platform/CoreIPC/Programs_WebKitPluginProcess-Connection.o Source/WebKit2/Platform/CoreIPC/Programs_WebKitPluginProcess-DataReference.o Source/WebKit2/Platform/CoreIPC/Programs_WebKitPluginProcess-MessageDecoder.o Source/WebKit2/Platform/CoreIPC/Programs_WebKitPluginProcess-MessageEncoder.o Source/WebKit2/Platform/CoreIPC/Programs_WebKitPluginProcess-MessageReceiverMap.o Source/WebKit2/Platform/CoreIPC/Programs_WebKitPluginProcess-StringReference.o Source/WebKit2/Platform/CoreIPC/unix/Programs_WebKitPluginProcess-AttachmentUnix.o Source/WebKit2/Platform/CoreIPC/unix/Programs_WebKitPluginProcess-ConnectionUnix.o Source/WebKit2/Platform/Programs_WebKitPluginProcess-Module.o Source/WebKit2/Platform/Programs_WebKitPluginProcess-WorkQueue.o Source/WebKit2/Platform/gtk/Programs_WebKitPluginProcess-ModuleGtk.o Source/WebKit2/Platform/gtk/Programs_WebKitPluginProcess-WorkQueueGtk.o Source/WebKit2/Platform/unix/Programs_WebKitPluginProcess-SharedMemoryUnix.o Source/WebKit2/PluginProcess/Programs_WebKitPluginProcess-PluginControllerProxy.o Source/WebKit2/PluginProcess/Programs_WebKitPluginProcess-PluginCreationParameters.o Source/WebKit2/PluginProcess/Programs_WebKitPluginProcess-PluginProcess.o Source/WebKit2/PluginProcess/Programs_WebKitPluginProcess-WebProcessConnection.o Source/WebKit2/Shared/Plugins/Programs_WebKitPluginProcess-PluginProcessCreationParameters.o Source/WebKit2/PluginProcess/unix/Programs_WebKitPluginProcess-PluginControllerProxyUnix.o Source/WebKit2/PluginProcess/unix/Programs_WebKitPluginProcess-PluginProcessMainUnix.o Source/WebKit2/PluginProcess/unix/Programs_WebKitPluginProcess-PluginProcessUnix.o Source/WebKit2/Shared/Programs_WebKitPluginProcess-ChildProcess.o Source/WebKit2/Shared/Programs_WebKitPluginProcess-ChildProcessProxy.o Source/WebKit2/Shared/Programs_WebKitPluginProcess-ConnectionStack.o Source/WebKit2/Shared/Plugins/Programs_WebKitPluginProcess-NPIdentifierData.o Source/WebKit2/Shared/Plugins/Programs_WebKitPluginProcess-NPObjectMessageReceiver.o Source/WebKit2/Shared/Plugins/Programs_WebKitPluginProcess-NPObjectProxy.o Source/WebKit2/Shared/Plugins/Programs_WebKitPluginProcess-NPRemoteObjectMap.o Source/WebKit2/Shared/Plugins/Programs_WebKitPluginProcess-NPVariantData.o Source/WebKit2/Shared/Plugins/Netscape/Programs_WebKitPluginProcess-NetscapePluginModule.o Source/WebKit2/Shared/Plugins/Netscape/x11/Programs_WebKitPluginProcess-NetscapePluginModuleX11.o Source/WebKit2/Shared/Programs_WebKitPluginProcess-ShareableBitmap.o Source/WebKit2/Shared/Programs_WebKitPluginProcess-WebCoreArgumentCoders.o Source/WebKit2/Shared/Programs_WebKitPluginProcess-WebEvent.o Source/WebKit2/Shared/Programs_WebKitPluginProcess-WebKeyboardEvent.o Source/WebKit2/Shared/Programs_WebKitPluginProcess-WebKit2Initialize.o Source/WebKit2/Shared/Programs_WebKitPluginProcess-WebMouseEvent.o Source/WebKit2/Shared/Programs_WebKitPluginProcess-WebWheelEvent.o Source/WebKit2/Shared/gtk/Programs_WebKitPluginProcess-NativeWebKeyboardEventGtk.o Source/WebKit2/Shared/gtk/Programs_WebKitPluginProcess-NativeWebWheelEventGtk.o Source/WebKit2/Shared/gtk/Programs_WebKitPluginProcess-NativeWebMouseEventGtk.o Source/WebKit2/Shared/gtk/Programs_WebKitPluginProcess-ProcessExecutablePathGtk.o Source/WebKit2/Shared/gtk/Programs_WebKitPluginProcess-WebEventFactory.o Source/WebKit2/Shared/cairo/Programs_WebKitPluginProcess-ShareableBitmapCairo.o Source/WebKit2/Shared/soup/Programs_WebKitPluginProcess-WebCoreArgumentCodersSoup.o Source/WebKit2/UIProcess/Plugins/unix/Programs_WebKitPluginProcess-PluginProcessProxyUnix.o Source/WebKit2/WebProcess/Plugins/Programs_WebKitPluginProcess-Plugin.o Source/WebKit2/WebProcess/Plugins/Netscape/Programs_WebKitPluginProcess-NPRuntimeUtilities.o Source/WebKit2/WebProcess/Plugins/Netscape/Programs_WebKitPluginProcess-NetscapeBrowserFuncs.o Source/WebKit2/WebProcess/Plugins/Netscape/Programs_WebKitPluginProcess-NetscapePlugin.o Source/WebKit2/WebProcess/Plugins/Netscape/Programs_WebKitPluginProcess-NetscapePluginStream.o Source/WebKit2/WebProcess/Plugins/Netscape/x11/Programs_WebKitPluginProcess-NetscapePluginX11.o Source/WebKit2/unix/Programs_WebKitPluginProcess-PluginMainUnix.o DerivedSources/WebKit2/Programs_WebKitPluginProcess-NPObjectMessageReceiverMessageReceiver.o DerivedSources/WebKit2/Programs_WebKitPluginProcess-PluginControllerProxyMessageReceiver.o DerivedSources/WebKit2/Programs_WebKitPluginProcess-PluginProcessMessageReceiver.o DerivedSources/WebKit2/Programs_WebKitPluginProcess-WebProcessConnectionMessageReceiver.o -Wl,--export-dynamic -pthread -L/opt/gnome2/lib64 ./.libs/libjavascriptcoregtk-3.0.so -lpthread ./.libs/libWebCore.a ./.libs/libWebCorePlatform.a ./.libs/libWebCoreGtk2.a -lgmodule-2.0 -lgthread-2.0 -lgailutil -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -ljpeg -lsecret-1 -lsoup-2.4 -lgio-2.0 -lxml2 -lGL -ldl -lpangoft2-1.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0 -lpng15 -lsqlite3 -licui18n -licuuc -licudata -lwebp -lXrender -lXt -lX11 -lz -lrt -pthread -Wl,-rpath -Wl,/opt/gnome2/lib64 ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltSetCtxtSecurityPrefs' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltNextImport' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltSetSecurityPrefs' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltQuoteUserParams' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltTransformError' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltNewTransformContext' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltNewSecurityPrefs' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltSecurityForbid' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltSaveResultTo' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltFreeTransformContext' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltComputeSortResult' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltRegisterExtFunction' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltApplyStylesheetUser' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltGetNsProp' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltLoadStylesheetPI' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltSetCtxtSortFunc' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltEvalAttrValueTemplate' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltFreeSecurityPrefs' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltParseStylesheetDoc' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltFreeStylesheet' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltSetLoaderFunc' ./.libs/libwebkit2gtk-3.0.so: undefined reference to `xsltFunctionNodeSet' collect2: error: ld returned 1 exit status make[1]: *** [Programs/WebKitWebProcess] Error 1 the following objects need XSLT symbols: $ find Source/ .libs/ -name '*.o' | parallel "nm {} | (grep 'U xslt' && echo {})" U xsltGetNsProp U xsltLoadStylesheetPI U xsltParseStylesheetDoc Source/WebCore/xml/.libs/libWebCore_la-XSLStyleSheetLibxslt.o U xsltApplyStylesheetUser U xsltFreeSecurityPrefs U xsltFreeStylesheet U xsltFreeTransformContext U xsltNewSecurityPrefs U xsltNewTransformContext U xsltNextImport U xsltQuoteUserParams U xsltSaveResultTo U xsltSecurityForbid U xsltSetCtxtSecurityPrefs U xsltSetCtxtSortFunc U xsltSetLoaderFunc U xsltSetSecurityPrefs Source/WebCore/xml/.libs/libWebCore_la-XSLTProcessorLibxslt.o U xsltComputeSortResult U xsltEvalAttrValueTemplate U xsltTransformError Source/WebCore/xml/.libs/libWebCore_la-XSLTUnicodeSort.o U xsltFunctionNodeSet U xsltRegisterExtFunction Source/WebCore/xml/.libs/libWebCore_la-XSLTExtensions.o I configured like this: $ head config.log This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by WebKitGTK configure 2.1.0, which was generated by GNU Autoconf 2.68. Invocation command line was $ ./configure --disable-xslt One solution is to fix the build system to not depend on XSLT stuff, i.e. it may be possible to not include the objects mentioned in libWebCore. But I know next to nothing about it so it is way easier for me to depend on XSLT. Also, nothing ever uses ENABLE_XSLT. So I wrote the patch attached.
Attachments
Patch making XSLT mandatory (5.48 KB, patch)
2013-03-14 11:20 PDT, Tobias Mueller
no flags
Tobias Mueller
Comment 1 2013-03-14 11:20:24 PDT
Created attachment 193156 [details] Patch making XSLT mandatory
Martin Robinson
Comment 2 2013-03-14 11:25:48 PDT
Comment on attachment 193156 [details] Patch making XSLT mandatory Okay. This seems reasonable.
Martin Robinson
Comment 3 2013-03-14 15:19:14 PDT
Comment on attachment 193156 [details] Patch making XSLT mandatory I actually just realized that this does not take care of the automake flag in SetupAutomake.m4.
Tobias Mueller
Comment 4 2013-03-14 16:45:01 PDT
(In reply to comment #3) > I actually just realized that this does not take care of the automake flag in SetupAutomake.m4. Like which? $ grep -ir xslt Source/autotools/ Source/autotools/Versions.m4:m4_define([libxslt_required_version], [1.1.7]) Source/autotools/FindDependencies.m4:PKG_CHECK_MODULES([LIBXSLT],[libxslt >= libxslt_required_version]) Source/autotools/FindDependencies.m4:AC_SUBST([LIBXSLT_CFLAGS]) Source/autotools/FindDependencies.m4:AC_SUBST([LIBXSLT_LIBS]) $ The only relevant reference I can see is in Source/WTF/wtf/FeatureDefines.h but I suppose that was forgotten with the cleanup by bug 111830 , but it seems to be gracefully handled.
Martin Robinson
Comment 5 2013-03-14 16:52:52 PDT
(In reply to comment #4) > (In reply to comment #3) > > I actually just realized that this does not take care of the automake flag in SetupAutomake.m4. > > Like which? Ah! I missed https://bugs.webkit.org/show_bug.cgi?id=111830.
WebKit Review Bot
Comment 6 2013-03-14 17:12:16 PDT
Comment on attachment 193156 [details] Patch making XSLT mandatory Clearing flags on attachment: 193156 Committed r145859: <http://trac.webkit.org/changeset/145859>
WebKit Review Bot
Comment 7 2013-03-14 17:12:20 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.