Bug 52219 - WebKit2 GTK Fails to Build #include nested too deeply
Summary: WebKit2 GTK Fails to Build #include nested too deeply
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit2 (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Linux
: P2 Major
Assignee: Nobody
URL:
Keywords: Gtk
Depends on:
Blocks: 52805
  Show dependency treegraph
 
Reported: 2011-01-11 09:24 PST by Andrew
Modified: 2011-02-08 23:18 PST (History)
7 users (show)

See Also:


Attachments
Proposed patch (4.44 KB, patch)
2011-01-27 11:04 PST, Alejandro G. Castro
no flags Details | Formatted Diff | Diff
Proposed patch (4.51 KB, patch)
2011-02-01 04:29 PST, Alejandro G. Castro
mrobinson: review+
Details | Formatted Diff | Diff
Updated patch to latest Upstream 77239 (3.45 KB, patch)
2011-02-01 04:38 PST, Oleg Romashin (:romaxa)
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew 2011-01-11 09:24:10 PST
Attempting to build WebKit2 on Linux for GTK results in a "#include nested too deeply error"  Output is attached below:

/bin/mkdir -p ./.deps/DerivedSources
  CXX    Source/WebCore/platform/gtk/libwebkit2gtk_1_0_la-WidgetRenderingContext.lo
  CXX    WebKit2/Platform/CoreIPC/libWebKit2_la-ArgumentDecoder.lo
In file included from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./../../WebKit2/WebKit2Prefix.h:28,
                 from <command-line>:0:
./DerivedSources/WebKit2/include/WebCore/config.h:1: error: #include nested too deeply
make[1]: *** [WebKit2/Platform/CoreIPC/libWebKit2_la-ArgumentDecoder.lo] Error 1
make[1]: Leaving directory `/home/username/webkit002/WebKit/WebKitBuild/Debug'
make: *** [all] Error 2

Failed to build WebKit using 'make'!
Comment 1 Andrew 2011-01-13 08:12:47 PST
The "nested too deeply" error can be worked around by disabling the config.h file from being generated created properly in DerivedSources/WebKit2/include/WebCore/config.h by modifying code in WebKit2/Scripts/generate-forwarding-headers.pl

Additional changes are needed in the WebKit2/WebKit2Prefix.h to add building support for gtk to allow the following environment variables to be set:

#if defined(BUILDING_GTK__)
#define WTF_USE_JSC 1
#define WTF_USE_V8 0

#define JS_EXPORTDATA
#define JS_EXPORTCLASS
#endif

However, the next error that pops up may need some GTK specific coding of the DrawingContext system: 

  CXX    WebKit2/Shared/libWebKit2_la-SessionState.lo
In file included from ../../WebKit2/UIProcess/WebPageProxy.h:31,
                 from ../../WebKit2/UIProcess/WebBackForwardList.h:32,
                 from ../../WebKit2/Shared/SessionState.h:29,
                 from ../../WebKit2/Shared/SessionState.cpp:26:
../../WebKit2/UIProcess/DrawingAreaProxy.h:65: error: ‘PlatformDrawingContext’ has not been declared
make[1]: *** [WebKit2/Shared/libWebKit2_la-SessionState.lo] Error 1
Comment 2 Koan-Sin Tan 2011-01-13 16:39:51 PST
(In reply to comment #1)
> The "nested too deeply" error can be worked around by disabling the config.h file from being generated created properly in DerivedSources/WebKit2/include/WebCore/config.h by modifying code in WebKit2/Scripts/generate-forwarding-headers.pl
> 

disabling config.h sounds weird.  DerivedSources/WebKit2/include/WebCore/config.h meant to include Source/WebCore/config.h, I think.


> However, the next error that pops up may need some GTK specific coding of the DrawingContext system: 
> 
>   CXX    WebKit2/Shared/libWebKit2_la-SessionState.lo
> In file included from ../../WebKit2/UIProcess/WebPageProxy.h:31,
>                  from ../../WebKit2/UIProcess/WebBackForwardList.h:32,
>                  from ../../WebKit2/Shared/SessionState.h:29,
>                  from ../../WebKit2/Shared/SessionState.cpp:26:
> ../../WebKit2/UIProcess/DrawingAreaProxy.h:65: error: ‘PlatformDrawingContext’ has not been declared
> make[1]: *** [WebKit2/Shared/libWebKit2_la-SessionState.lo] Error 1

because there is no Gtk specific PlatformDrawingContext implemented yet?
Comment 3 Alejandro G. Castro 2011-01-27 11:04:02 PST
Created attachment 80349 [details]
Proposed patch

This works for me, and fixes other issues I found in the autotools when compiling all the patches. This way we do the things more like the other ports. Anyway, the forwarding headers script is creating files that are not required and probably we will have to check that in the future. I hope this helps.

I hope it helps, I'll try to help pushing the other patches to have a running browser with webkit2.
Comment 4 Alejandro G. Castro 2011-01-27 11:08:00 PST
Comment on attachment 80349 [details]
Proposed patch

View in context: https://bugs.webkit.org/attachment.cgi?id=80349&action=review

> Source/WebKit2/WebKit2Prefix.h:53
> -#if defined(BUILDING_QT__)
> +#if defined(BUILDING_QT__) || defined(BUILDING_GTK__)

This is not part of the patch, it is a compilation fix, I'll upload this fix before this patch. Sorry.
Comment 5 Alejandro G. Castro 2011-01-27 11:10:23 PST
(In reply to comment #4)
> (From update of attachment 80349 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=80349&action=review
> 
> > Source/WebKit2/WebKit2Prefix.h:53
> > -#if defined(BUILDING_QT__)
> > +#if defined(BUILDING_QT__) || defined(BUILDING_GTK__)
> 
> This is not part of the patch, it is a compilation fix, I'll upload this fix before this patch. Sorry.

Oops, this is actually correct :), the compilation nitpick did not get mixed with the patch, sorry for the noise.
Comment 6 Martin Robinson 2011-01-27 13:36:43 PST
Comment on attachment 80349 [details]
Proposed patch

View in context: https://bugs.webkit.org/attachment.cgi?id=80349&action=review

Looks good with the removal of the no-longer-valid comment in configure.ac.

> configure.ac:-929
>      # In WebKit, this define is ensured by doing it before including config.h in any source file.
>      # In WebKit2, WebKit2Prefix.h is included as first header file, so we need to define this
>      # macro before actually WebKit2Prefix.h is included in any file.
> -    AC_DEFINE([__STDC_FORMAT_MACROS],[1],[Turn on the __STDC_FORMAT_MACROS used in inttypes.h])

We probably need to remove the comment here as well.
Comment 7 Alejandro G. Castro 2011-02-01 01:51:24 PST
Comment on attachment 80349 [details]
Proposed patch

After the last changes to use the config.h in webkit2 this patch makes no sense anymore I'll update it if we still  have this issue.
Comment 8 Oleg Romashin (:romaxa) 2011-02-01 04:01:47 PST
testing on 77239, and still see this problem
Comment 9 Alejandro G. Castro 2011-02-01 04:29:03 PST
Created attachment 80737 [details]
Proposed patch

New patch with the new config.h solution used now in WebKit2 compilation. I'm going to review all the other patches considering this new config.h solution and fix some of the other issues I found to allow us to compile and run the WebKit2GTK minibrowser.
Comment 10 Oleg Romashin (:romaxa) 2011-02-01 04:38:54 PST
Created attachment 80739 [details]
Updated patch to latest Upstream 77239

Fixed patch apply to latest upstream
Comment 11 Oleg Romashin (:romaxa) 2011-02-01 06:34:45 PST
Comment on attachment 80739 [details]
Updated patch to latest Upstream 77239

Missing configure part, and haven't noticed previous attached patch
Comment 12 marinalan 2011-02-06 00:30:34 PST
I too, have after several hours of compilation:

  CXX    Source/WebKit2/Platform/CoreIPC/libWebKit2_la-ArgumentDecoder.lo
In file included from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
                 from ./DerivedSources/WebKit2/include/WebCore/config.h:1,
...........................
                 from Source/WebKit2/Platform/CoreIPC/ArgumentDecoder.cpp:26:
./DerivedSources/WebKit2/include/WebCore/config.h:1:20: error: #include nested too deeply
make[1]: *** [Source/WebKit2/Platform/CoreIPC/libWebKit2_la-ArgumentDecoder.lo] Error 1

svn info
Path: .
URL: http://svn.webkit.org/repository/webkit/trunk
Repository Root: http://svn.webkit.org/repository/webkit
Repository UUID: 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Revision: 77747
Node Kind: directory
Schedule: normal
Last Changed Author: mrobinson@webkit.org
Last Changed Rev: 77747
Last Changed Date: 2011-02-05 10:26:30 -0800 (Sat, 05 Feb 2011)

Steps to reproduce:
-------------------------------------------------------------------
svn update
./autogen.sh --enable-web-sockets --enable-geolocation --enable-3D-transforms --enable-filters --enable-webkit2
make
--------------------------------------
I am on Fedora 13
Comment 13 Alejandro G. Castro 2011-02-08 23:18:22 PST
Landed http://trac.webkit.org/changeset/78020