Bug 140176

Summary: [GTK] Cannot compile 2.7.3 on i686
Product: WebKit Reporter: Tomas Popela <tpopela>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED WONTFIX    
Severity: Normal CC: berto, bugs-noreply, cgarcia, clopez, gustavo, mcatanzaro, zan
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   

Description Tomas Popela 2015-01-07 04:24:49 PST
The compilation of the 2.7.3 fails on i686. It fails while generating the documentation (if turned on) or the instrospection files (if documentation is turned off). It looks like there is something wrong with the libwebkit2gtk shared library:

The most interesting lines from the logs below are:
./webkitdomgtk-scan: error while loading shared libraries: libwebkit2gtk-4.0.so.37: cannot open shared object file: No such file or directory

/builddir/build/BUILD/webkitgtk-2.7.3/i686-redhat-linux-gnu/Source/WebKit2/tmp-introspectwRec8z/WebKit2-4.0: error while loading shared libraries: libwebkit2gtk-4.0.so.37: cannot open shared object file: No such file or directory

[root@seppuku-t430s webkitdomgtk]# ldd ../../lib/libwebkit2gtk-4.0.so.37.4.0
lddlibc4: cannot open `../../lib/libwebkit2gtk-4.0.so.37.4.0': Value too large for defined data type

Error when the documenation is enabled:

Running gtkdoc-scangobj
./webkitdomgtk-scan: error while loading shared libraries: libwebkit2gtk-4.0.so.37: cannot open shared object file: No such file or directory
Scan failed:
Traceback (most recent call last):
  File "/builddir/build/BUILD/webkitgtk-2.7.3/Tools/gtk/generate-gtkdoc", line 201, in <module>
    generate_documentation_for_config(common.build_path('gtkdoc-webkitdom.cfg'))
  File "/builddir/build/BUILD/webkitgtk-2.7.3/Tools/gtk/generate-gtkdoc", line 152, in generate_documentation_for_config
    return generate_doc(generator, arguments.skip_html)
  File "/builddir/build/BUILD/webkitgtk-2.7.3/Tools/gtk/generate-gtkdoc", line 133, in generate_doc
    generator.generate(not skip_html)
  File "/builddir/build/BUILD/webkitgtk-2.7.3/Tools/gtk/gtkdoc.py", line 143, in generate
    self._run_gtkdoc_scangobj()
  File "/builddir/build/BUILD/webkitgtk-2.7.3/Tools/gtk/gtkdoc.py", line 339, in _run_gtkdoc_scangobj
    env=env, cwd=self.output_dir)
  File "/builddir/build/BUILD/webkitgtk-2.7.3/Tools/gtk/gtkdoc.py", line 210, in _run_command
    % (args[0], process.returncode))
Exception: gtkdoc-scangobj produced a non-zero return code 127

When the documentation is disabled (fails during the introspection files creation)

[100%] Built target WebKitPluginProcess2
/builddir/build/BUILD/webkitgtk-2.7.3/i686-redhat-linux-gnu/Source/WebKit2/tmp-introspectwRec8z/WebKit2-4.0: error while loading shared libraries: libwebkit2gtk-4.0.so.37: cannot open shared object file: No such file or directory
Command '['/builddir/build/BUILD/webkitgtk-2.7.3/i686-redhat-linux-gnu/Source/WebKit2/tmp-introspectwRec8z/WebKit2-4.0', '--introspect-dump=/builddir/build/BUILD/webkitgtk-2.7.3/i686-redhat-linux-gnu/Source/WebKit2/tmp-introspectwRec8z/functions.txt,/builddir/build/BUILD/webkitgtk-2.7.3/i686-redhat-linux-gnu/Source/WebKit2/tmp-introspectwRec8z/dump.xml']' returned non-zero exit status 127
/builddir/build/BUILD/webkitgtk-2.7.3/i686-redhat-linux-gnu/Source/WebKit2/tmp-introspectaCbRSP/WebKit2-4.0: error while loading shared libraries: libwebkit2gtk-4.0.so.37: cannot open shared object file: No such file or directory
Command '['/builddir/build/BUILD/webkitgtk-2.7.3/i686-redhat-linux-gnu/Source/WebKit2/tmp-introspectaCbRSP/WebKit2-4.0', '--introspect-dump=/builddir/build/BUILD/webkitgtk-2.7.3/i686-redhat-linux-gnu/Source/WebKit2/tmp-introspectaCbRSP/functions.txt,/builddir/build/BUILD/webkitgtk-2.7.3/i686-redhat-linux-gnu/Source/WebKit2/tmp-introspectaCbRSP/dump.xml']' returned non-zero exit status 127
Source/WebKit2/CMakeFiles/WebKit2-4-gir.dir/build.make:60: recipe for target 'WebKit2-4.0.gir' failed
make[2]: *** [WebKit2-4.0.gir] Error 1
make[2]: Leaving directory '/builddir/build/BUILD/webkitgtk-2.7.3/i686-redhat-linux-gnu'
CMakeFiles/Makefile2:923: recipe for target 'Source/WebKit2/CMakeFiles/WebKit2-4-gir.dir/all' failed
make[1]: *** [Source/WebKit2/CMakeFiles/WebKit2-4-gir.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Source/WebKit2/CMakeFiles/WebKit2WebExtension-4-gir.dir/build.make:66: recipe for target 'WebKit2-4.0.gir' failed
make[2]: *** [WebKit2-4.0.gir] Error 1
make[2]: Leaving directory '/builddir/build/BUILD/webkitgtk-2.7.3/i686-redhat-linux-gnu'
CMakeFiles/Makefile2:1020: recipe for target 'Source/WebKit2/CMakeFiles/WebKit2WebExtension-4-gir.dir/all' failed
make[1]: *** [Source/WebKit2/CMakeFiles/WebKit2WebExtension-4-gir.dir/all] Error 2
make[1]: Leaving directory '/builddir/build/BUILD/webkitgtk-2.7.3/i686-redhat-linux-gnu'
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

--------------------------------------------------------------------------------------------------------------------

[root@seppuku-t430s webkitdomgtk]# ldd webkitdomgtk-scan | grep not
        libwebkit2gtk-4.0.so.37 => not found
        libjavascriptcoregtk-4.0.so.18 => not found
[root@seppuku-t430s lib]# ls -l -a /builddir/build/BUILD/webkitgtk-2.7.3/i686-redhat-linux-gnu/lib
total 2681384
drwxr-xr-x. 2 mockbuild mockbuild       4096 Jan  7 12:34 .
drwxr-xr-x. 7 mockbuild mockbuild       4096 Jan  7 10:44 ..
-rw-r--r--. 1 mockbuild mockbuild     135462 Jan  7 10:45 libANGLESupport.a
-rw-r--r--. 1 mockbuild mockbuild     151538 Jan  7 12:18 libGObjectDOMBindings.a
lrwxrwxrwx. 1 mockbuild mockbuild         30 Jan  7 10:58 libjavascriptcoregtk-4.0.so -> libjavascriptcoregtk-4.0.so.18
lrwxrwxrwx. 1 mockbuild mockbuild         34 Jan  7 10:58 libjavascriptcoregtk-4.0.so.18 -> libjavascriptcoregtk-4.0.so.18.1.2
-rwxrwxr-x. 1 mockbuild mockbuild  493364988 Jan  7 10:58 libjavascriptcoregtk-4.0.so.18.1.2
-rw-r--r--. 1 mockbuild mockbuild    8505380 Jan  7 12:13 libWebCoreGTK.a
-rw-r--r--. 1 mockbuild mockbuild      50158 Jan  7 12:14 libWebCorePlatformGTK2.a
-rw-r--r--. 1 mockbuild mockbuild      56600 Jan  7 12:14 libWebCorePlatformGTK.a
-rw-r--r--. 1 mockbuild mockbuild      92038 Jan  7 12:14 libWebCoreTestSupport.a
lrwxrwxrwx. 1 mockbuild mockbuild         23 Jan  7 12:34 libwebkit2gtk-4.0.so -> libwebkit2gtk-4.0.so.37
lrwxrwxrwx. 1 mockbuild mockbuild         27 Jan  7 12:34 libwebkit2gtk-4.0.so.37 -> libwebkit2gtk-4.0.so.37.4.0
-rwxrwxr-x. 1 mockbuild mockbuild 2243191424 Jan  7 12:34 libwebkit2gtk-4.0.so.37.4.0
-rwxrwxr-x. 1 mockbuild mockbuild     102188 Jan  7 12:18 libwebkit2gtkinjectedbundle.so
-rw-r--r--. 1 mockbuild mockbuild      52846 Jan  7 10:44 libWTFGTK.a
[root@seppuku-t430s webkitdomgtk]# export LD_LIBRARY_PATH="/builddir/build/BUILD/webkitgtk-2.7.3/i686-redhat-linux-gnu/lib"
[root@seppuku-t430s webkitdomgtk]# ldd webkitdomgtk-scan | grep not
        libwebkit2gtk-4.0.so.37 => not found
[root@seppuku-t430s webkitdomgtk]# ldd ../../lib/libwebkit2gtk-4.0.so.37.4.0
lddlibc4: cannot open `../../lib/libwebkit2gtk-4.0.so.37.4.0': Value too large for defined data type

After I strip the library the ldd shows the expected output.
Comment 1 Zan Dobersek 2015-01-07 05:11:00 PST
It seems something is being packed into a not-large-enough storage.

I guess ldd error message cannot get more descriptive.

Did 2.7.2 compile fine?
Comment 2 Tomas Popela 2015-01-07 05:19:49 PST
(In reply to comment #1)
> Did 2.7.2 compile fine?

Yes, it compiled fine.
Comment 3 Zan Dobersek 2015-01-07 05:43:39 PST
To correct myself, the shared library is now probably large enough to cause problems for utilities that don't support large files.

https://www.gnu.org/software/coreutils/faq/coreutils-faq.html#Value-too-large-for-defined-data-type
Comment 4 Carlos Alberto Lopez Perez 2015-01-08 17:49:22 PST
Did you tried building with the gold linker instead of GNU ld?
Comment 5 Tomas Popela 2015-01-08 22:13:58 PST
(In reply to comment #4)
> Did you tried building with the gold linker instead of GNU ld?

We are already doing that. Also building it temporary with -g1 instead of -g fixes the issue, but that's not the solution.
Comment 6 Michael Catanzaro 2017-06-23 06:53:43 PDT
I think we actually add -g1 upstream now, so I guess this can be closed? There's not really anything we can do about system utilities lacking large file support.