Bug 131267

Summary: [GTK] [Stable] fails to build with --disable-webgl --disable-accelerated-compositing
Product: WebKit Reporter: Pacho Ramos <pachoramos1>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: alexander, berto, cgarcia, commit-queue, eric.carlson, glenn, gnome, jer.noble, philipj, sergio, v_2e, zan
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
build.log.bz2
none
Patch
none
Patch
none
build.log
none
Fix compilation with --disable-webgl none

Description Pacho Ramos 2014-04-05 06:00:39 PDT
The error is:
 -Wl,--no-demangle -o Programs/DumpRenderTree Source/WebCore/platform/gtk/Programs_DumpRenderTree-GtkVersioning.o Tools/DumpRenderTree/Programs_DumpRenderTree-DumpRenderTreeCommon.o Tools/DumpRenderTree/Programs_DumpRenderTree-AccessibilityController.o Tools/DumpRenderTree/Programs_DumpRenderTree-AccessibilityTextMarker.o Tools/DumpRenderTree/Programs_DumpRenderTree-AccessibilityUIElement.o Tools/DumpRenderTree/Programs_DumpRenderTree-CyclicRedundancyCheck.o Tools/DumpRenderTree/Programs_DumpRenderTree-GCController.o Tools/DumpRenderTree/Programs_DumpRenderTree-TestRunner.o Tools/DumpRenderTree/Programs_DumpRenderTree-PixelDumpSupport.o Tools/DumpRenderTree/Programs_DumpRenderTree-WorkQueue.o Tools/DumpRenderTree/atk/Programs_DumpRenderTree-AccessibilityCallbacksAtk.o Tools/DumpRenderTree/atk/Programs_DumpRenderTree-AccessibilityControllerAtk.o Tools/DumpRenderTree/atk/Programs_DumpRenderTree-AccessibilityUIElementAtk.o Tools/DumpRenderTree/cairo/Programs_DumpRenderTree-PixelDumpSupportCairo.o Tools/DumpRenderTree/gtk/Programs_DumpRenderTree-AccessibilityControllerGtk.o Tools/DumpRenderTree/gtk/Programs_DumpRenderTree-AccessibilityUIElementGtk.o Tools/DumpRenderTree/gtk/Programs_DumpRenderTree-DumpRenderTree.o Tools/DumpRenderTree/gtk/Programs_DumpRenderTree-EditingCallbacks.o Tools/DumpRenderTree/gtk/Programs_DumpRenderTree-EventSender.o Tools/DumpRenderTree/gtk/Programs_DumpRenderTree-GCControllerGtk.o Tools/DumpRenderTree/gtk/Programs_DumpRenderTree-TestRunnerGtk.o Tools/DumpRenderTree/gtk/Programs_DumpRenderTree-PixelDumpSupportGtk.o Tools/DumpRenderTree/gtk/Programs_DumpRenderTree-SelfScrollingWebKitWebView.o Tools/DumpRenderTree/gtk/Programs_DumpRenderTree-TextInputController.o Tools/DumpRenderTree/gtk/Programs_DumpRenderTree-WorkQueueItemGtk.o -Wl,--export-dynamic -pthread -pthread  -Wl,--as-needed ./.libs/libjavascriptcoregtk-1.0.so ./.libs/libwebkitgtk-1.0.so -L/usr/lib64 /var/tmp/notmpfs/portage/net-libs/webkit-gtk-2.2.6-r200/work/webkitgtk-2.2.6/.libs/libjavascriptcoregtk-1.0.so -lpthread -lenchant -lgeoclue -ldbus-glib-1 -ldbus-1 -lgstapp-1.0 -lgstaudio-1.0 -lgstfft-1.0 -lgstpbutils-1.0 -lgstvideo-1.0 -lgstbase-1.0 -lgstreamer-1.0 -ljpeg -lsecret-1 -lxslt -lrt -lxml2 -lGL -lEGL -ldl -lpng16 -lsqlite3 -licui18n -licuuc -licudata -lwebp -lXcomposite -lXdamage -lXfixes -lz ./.libs/libPlatform.a ./.libs/libPlatformGtk.a ./.libs/libWebCorePlatform.a ./.libs/libWebCoreModules.a ./.libs/libWebCoreInternals.a -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangoft2-1.0 -lpango-1.0 -lgmodule-2.0 -lgthread-2.0 -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lcairo -lfontconfig -lfreetype -lharfbuzz-icu -lharfbuzz -lXrender -lXt -lX11 -pthread -Wl,-rpath -Wl,/var/tmp/notmpfs/portage/net-libs/webkit-gtk-2.2.6-r200/work/webkitgtk-2.2.6/.libs
./.libs/libwebkitgtk-1.0.so: undefined reference to `_ZN3JSC21GenericTypedArrayViewINS_14Float32AdaptorEE6createEj'
./.libs/libwebkitgtk-1.0.so: undefined reference to `_ZN7WebCore19openGLFunctionTableEv'
./.libs/libwebkitgtk-1.0.so: undefined reference to `_ZN7WebCore21initializeOpenGLShimsEv'
collect2: error: ld returned 1 exit status
make[1]: *** [Programs/GtkLauncher] Error 1
make[1]: *** Waiting for unfinished jobs....
./.libs/libwebkitgtk-1.0.so: undefined reference to `_ZN3JSC21GenericTypedArrayViewINS_14Float32AdaptorEE6createEj'
./.libs/libwebkitgtk-1.0.so: undefined reference to `_ZN7WebCore19openGLFunctionTableEv'
./.libs/libwebkitgtk-1.0.so: undefined reference to `_ZN7WebCore21initializeOpenGLShimsEv'
collect2: error: ld returned 1 exit status
make[1]: *** [Programs/DumpRenderTree] Error 1
Source/WebKit/gtk/webkit/webkitversion.h:37: Warning: WebKit: symbol='WEBKITGTK_API_VERSION': Unknown namespace for symbol 'WEBKITGTK_API_VERSION'
<command-line>:0:0: warning: "_FORTIFY_SOURCE" redefined [enabled by default]
/var/tmp/notmpfs/portage/net-libs/webkit-gtk-2.2.6-r200/work/webkitgtk-2.2.6/tmp-introspect5b0QUp/WebKit-1.0.c:1:0: note: this is the location of the previous definition
/var/tmp/notmpfs/portage/net-libs/webkit-gtk-2.2.6-r200/work/webkitgtk-2.2.6/.libs/libwebkitgtk-1.0.so: undefined reference to `_ZN3JSC21GenericTypedArrayViewINS_14Float32AdaptorEE6createEj'
/var/tmp/notmpfs/portage/net-libs/webkit-gtk-2.2.6-r200/work/webkitgtk-2.2.6/.libs/libwebkitgtk-1.0.so: undefined reference to `_ZN7WebCore19openGLFunctionTableEv'
/var/tmp/notmpfs/portage/net-libs/webkit-gtk-2.2.6-r200/work/webkitgtk-2.2.6/.libs/libwebkitgtk-1.0.so: undefined reference to `_ZN7WebCore21initializeOpenGLShimsEv'
collect2: error: ld returned 1 exit status
linking of temporary binary failed: Command '['/bin/sh', './libtool', '--mode=link', '--tag=CC', '--silent', 'x86_64-pc-linux-gnu-gcc', '-o', '/var/tmp/notmpfs/portage/net-libs/webkit-gtk-2.2.6-r200/work/webkitgtk-2.2.6/tmp-introspect5b0QUp/WebKit-1.0', '-export-dynamic', '-march=native', '-pipe', '-O2', '-g', '-pthread', '-std=c99', '-D_FORTIFY_SOURCE=2', '-Wno-deprecated-declarations', '-Wl,-O1', '-Wl,--as-needed', '-Wl,--hash-style=gnu', '-Wl,--no-keep-memory', '-Wl,--reduce-memory-overheads', '-Wl,--no-demangle', '/var/tmp/notmpfs/portage/net-libs/webkit-gtk-2.2.6-r200/work/webkitgtk-2.2.6/tmp-introspect5b0QUp/WebKit-1.0.o', '-L.', '-lwebkitgtk-1.0', '-ljavascriptcoregtk-1.0', '-Wl,--export-dynamic', '-lgmodule-2.0', '-pthread', '-lgtk-x11-2.0', '-lgdk-x11-2.0', '-lpangocairo-1.0', '-latk-1.0', '-lcairo', '-lgdk_pixbuf-2.0', '-lpangoft2-1.0', '-lpango-1.0', '-lfreetype', '-lfontconfig', '-lsoup-2.4', '-lgio-2.0', '-lgobject-2.0', '-lglib-2.0']' returned non-zero exit status 1
make[1]: *** [WebKit-1.0.gir] Error 1
make[1]: Leaving directory `/var/tmp/notmpfs/portage/net-libs/webkit-gtk-2.2.6-r200/work/webkitgtk-2.2.6'
make: *** [all] Error 2
Comment 1 Pacho Ramos 2014-04-05 06:02:06 PDT
Created attachment 228670 [details]
build.log.bz2

Full build.log
Comment 2 Pacho Ramos 2014-06-03 23:48:09 PDT
2.4.3 is still affected by this
Comment 3 Alberto Garcia 2014-06-12 05:00:34 PDT
Updating title since this also affects the master branch.
Comment 4 Alberto Garcia 2014-06-12 05:02:13 PDT
Created attachment 232946 [details]
Patch

Here's the patch.

Thanks for the report and sorry for having taken so long to fix it!
Comment 5 Alberto Garcia 2014-06-12 05:34:05 PDT
Created attachment 232947 [details]
Patch

That patch was incomplete, here's a new one.
Comment 6 Alberto Garcia 2014-06-12 06:14:48 PDT
Note for Carlos: for the 2.4 branch we can use my first patch, since the <runtime/JSCInlines.h> header does not exist there and is not necessary (I've just checked it).
Comment 7 WebKit Commit Bot 2014-06-12 07:08:10 PDT
Comment on attachment 232947 [details]
Patch

Clearing flags on attachment: 232947

Committed r169896: <http://trac.webkit.org/changeset/169896>
Comment 8 WebKit Commit Bot 2014-06-12 07:08:16 PDT
All reviewed patches have been landed.  Closing bug.
Comment 9 Pacho Ramos 2014-07-18 02:24:14 PDT
Created attachment 235118 [details]
build.log

Looks to still affect our users with a similar error and 2.4.4 (that supposedly should fix this :/)
Comment 10 Pacho Ramos 2014-07-18 02:24:33 PDT
.
Comment 11 Alexander Tsoy 2014-10-14 02:23:02 PDT
Created attachment 239788 [details]
Fix compilation with --disable-webgl

(In reply to comment #4)
> Created an attachment (id=232946) [details]
> Patch
> 
> Here's the patch.
> 
> Thanks for the report and sorry for having taken so long to fix it!

Thanks! But your patch fixes only the first error:

./.libs/libwebkitgtk-1.0.so: undefined reference to `_ZN3JSC21GenericTypedArrayViewINS_14Float32AdaptorEE6createEj'


The attached patch fixes the other two:

./.libs/libwebkitgtk-1.0.so: undefined reference to `_ZN7WebCore19openGLFunctionTableEv'
./.libs/libwebkitgtk-1.0.so: undefined reference to `_ZN7WebCore21initializeOpenGLShimsEv'


Note that in my patch USE(3D_GRAPHICS) may be redundant, the following should also work, but I didn't test it:

-#if USE(3D_GRAPHICS) || defined(QT_OPENGL_SHIMS)
+#if USE(EGL) || USE(GLX) || defined(QT_OPENGL_SHIMS)
Comment 12 Alberto Garcia 2014-12-08 02:08:02 PST
I can build 2.4.7 with --disable-webgl --disable-accelerated-compositing using the patch included in bug 137640, so I'll close this one.
Comment 13 Alexander Tsoy 2014-12-08 09:32:09 PST
Hmm.. How about "--enable-egl --disable-webgl" or "--enable-glx --disable-webgl"?
Comment 14 Alberto Garcia 2014-12-09 10:44:57 PST
(In reply to comment #13)
> Hmm.. How about "--enable-egl --disable-webgl" or "--enable-glx
> --disable-webgl"?

That one fails here. In practice there are probably several
combination of flags that fail to build since we cannot test them all,
but if you tell us the use case and the exact configuration that you
are trying to build we can try to see how to solve it.