The last few days I have been unable to build WebKitGTK+ from git.
The problem is that make chokes the command line with an insanely long list of file names. You need a patched version of make.
Pictured: myself debugging WebKit build issues.
Gustavo told me that WebKit has some handy jhbuild scripts that include a patched make.
Being WebKit-scale I knew the scripts did a lot more than what I wanted, so I just reused its moduleset for a quick buildone command:
$ cd WebKit/Tools/gtk/
$ jhbuild -m file://`pwd`/jhbuild.modules buildone make
And yes, it works! Thanks Gustavo.
(hm, let’s try that again)
Has the bug been filed at
http://savannah.gnu.org/bugs/?group=make
and
http://bugs.debian.org/make
?
You need a patched make to build webkit? That’s certainly a bold move…
Yeah. Pushing the limits of mankind. That’s webkit.
@Jonathan: we reported the bug a long time ago. A patch was made. In the end it was rejected to maintain compatibility with older UNIX systems.
I guess we should try to either push that again or somehow change your build system to avoid this issue. Bugs in the toolchain suck.
Is there any way to instruct jhbuild to use the patched make binary automatically?
@Stefano
The jhbuilt make will be installed in $jhbuild-prefix/bin, so it will be used automatically.
Just like anything in /usr/bin is after you just install it.
I’m assuming that it fails linking WebCore, which is a really long argument list. Can you tweak the makefile to build a response file containing the arguments (ld will accept arguments in a file using the “@argsfile” command line syntax)?
Um…is it really necessary to call make with that many arguments? This just doesn’t smell right.
When I was running into this a while ago, I found that make V=1 worked around it. Don’t ask me why.
It builds with standard make when you use –disable-silent-rules.
any links to the mentioned patch(es)? Both to the gnu make patch and to the build system (the one that got rejected)
I have the same issue and –disable-silent-rules does not help here.
make: execvp: /bin/bash: Argument list too long