RESOLVED FIXED Bug 88407
WebKit-GTK 1.8.1 does not build on OS X 10.7
https://bugs.webkit.org/show_bug.cgi?id=88407
Summary WebKit-GTK 1.8.1 does not build on OS X 10.7
Timo Dörr
Reported 2012-06-06 03:25:39 PDT
Latest WebKit-GTK 1.8.1 (maybe earlier versions, too) does not build on OS X 10.7 Lion. The error message I get is: + make -j2 GEN DerivedSources/WebCore/idl_supplemental_dependencies GEN DerivedSources/webkit/webkitdom.h GEN DerivedSources/webkit/webkitdomdefines.h GEN stamp-webkitmarshal.cpp GEN stamp-webkitmarshal.h i686-apple-darwin11-llvm-gcc-4.2: warning: '-x c++' after last input file has no effect i686-apple-darwin11-llvm-gcc-4.2: no input files Can't call method "fileName" without a package or object reference at Source/WebCore/bindings/scripts/IDLParser.pm line 112. make: *** [DerivedSources/WebCore/idl_supplemental_dependencies] Error 1 I've found via google that someone else already had the same error and posted it at the webkit-help mailinglist, but without responses: http://lists.webkit.org/pipermail/webkit-help/2012-March/003025.html Here are the parameters I used with the configure script: ./configure --prefix="/Users/td/banshee-dev/bockbuild/profiles/banshee/build-root/_install" --disable-video --disable-geolocation --disable-xslt --with-target=quartz --with-gtk=2.0 --disable-gtk-doc and the configure report: WebKit was configured with the following options: Build configuration: Enable debugging (slow) : no Compile with debug symbols (slow) : no Enable debug features (slow) : no Enable GCC build optimization : yes Code coverage support : no Unicode backend : icu Font backend : freetype Optimized memory allocator : yes Accelerated Compositing : no Features: WebGL : no Blob support : yes DOM mutation observer support : no DeviceOrientation support : no Directory upload : no Fast Mobile Scrolling : no JIT compilation : autodetect Filters support : yes Geolocation support : no JavaScript debugger/profiler support : yes Gamepad support : no MathML support : yes Media source : no Media statistics : no MHTML support : no HTML5 channel messaging support : yes HTML5 meter element support : yes HTML5 microdata support : no Page Visibility API support : no HTML5 progress element support : yes HTML5 client-side session and persistent storage support : yes SQL client-side database storage support : yes HTML5 datagrid support : no HTML5 data transfer items support : no HTML5 FileSystem API support : no Quota API support : no HTML5 sandboxed iframe support : yes HTML5 video element support : no HTML5 track element support : no Fullscreen API support : yes Media stream support : no Icon database support : yes Image resizer support : no Link prefetch support : no Opcode stats : no Shadow DOM support : yes SharedWorkers support : yes Color input support : no Speech input support : no SVG support : yes SVG fonts support : yes Web Audio support : no Web Sockets support : yes Web Timing support : no Web Workers support : yes XSLT support : no Spellcheck support : yes Animation API : no RequestAnimationFrame support : yes Touch Icon Loading support : no Register Protocol Handler support : no WebKit2 support : no WebKit2 plugin process : no GTK+ configuration: GTK+ version : 2.0 GDK target : quartz Hildon UI extensions : no GStreamer version : 0.10 Introspection support : no Generate documentation : no I have also tried to use clang as a compiler, which gives a very similar error: $ make GEN DerivedSources/WebCore/idl_supplemental_dependencies clang: error: no input files Can't call method "fileName" without a package or object reference at Source/WebCore/bindings/scripts/IDLParser.pm line 112. make: *** [DerivedSources/WebCore/idl_supplemental_dependencies] Error 1
Attachments
Patch (1.86 KB, patch)
2014-01-03 08:11 PST, Alberto Garcia
cgarcia: review+
Jeremy Huddleston Sequoia
Comment 1 2012-08-17 22:09:12 PDT
I've been hitting this as well in trying to update MacPorts' webkit-gtk. We've been stuck at 1.6.3 because of this issue...
Jeremy Huddleston Sequoia
Comment 2 2012-08-17 23:34:59 PDT
Here's the actual command that is used to generate idl_supplemental_dependencies, with an extra --verbose: ~/src/macports/dports/www/webkit-gtk/work/webkit-1.8.2 $ /opt/local/bin/perl -I./Source/WebCore/bindings/scripts ./Source/WebCore/bindings/scripts/resolve-supplemental.pl --defines "LANGUAGE_JAVASCRIPT=1 ENABLE_CHANNEL_MESSAGING=1 ENABLE_METER_TAG=1 ENABLE_PROGRESS_TAG=1 ENABLE_JAVASCRIPT_DEBUGGER=1 ENABLE_SQL_DATABASE=1 ENABLE_DATALIST=1 ENABLE_VIDEO=1 ENABLE_FULLSCREEN_API=1 ENABLE_XSLT=1 ENABLE_WORKERS=1 ENABLE_SHADOW_DOM=1 ENABLE_SHARED_WORKERS=1 ENABLE_FILTERS=1 ENABLE_GEOLOCATION=1 ENABLE_CLIENT_BASED_GEOLOCATION=1 ENABLE_MATHML=1 ENABLE_SVG=1 ENABLE_SVG_FONTS=1 ENABLE_WEB_SOCKETS=1 ENABLE_BLOB=1 ENABLE_REQUEST_ANIMATION_FRAME=1 ENABLE_WEBGL=1 " --idlFilesList ./DerivedSources/WebCore/idl_files_list --supplementalDependencyFile DerivedSources/WebCore/idl_supplemental_dependencies --verbose Resolving [Supplemental=XXX] dependencies in all IDL files. | *** Starting to parse -n... | i686-apple-darwin11-llvm-gcc-4.2: warning: '-x c++' after last input file has no effect i686-apple-darwin11-llvm-gcc-4.2: no input files | *** Finished parsing! Can't call method "fileName" without a package or object reference at Source/WebCore/bindings/scripts/IDLParser.pm line 112. --- That "Starting to parse" line comes from: print " | *** Starting to parse $fileName...\n |\n" unless $beQuiet; which shows that $fileName is being set to "-n" for some reason... --- And here's why: $ head ./DerivedSources/WebCore/idl_files_list -n ./Source/WebCore/css/CSSCharsetRule.idl ./Source/WebCore/css/CSSFontFaceRule.idl ./Source/WebCore/css/CSSImportRule.idl ./Source/WebCore/css/CSSMediaRule.idl ./Source/WebCore/css/CSSPageRule.idl ./Source/WebCore/css/CSSPrimitiveValue.idl ./Source/WebCore/css/CSSRule.idl ./Source/WebCore/css/CSSRuleList.idl ./Source/WebCore/css/CSSStyleDeclaration.idl
Jeremy Huddleston Sequoia
Comment 3 2012-08-17 23:41:47 PDT
Which comes from: webkit-1.8.2 $ sudo make V=1 echo -n > ./DerivedSources/WebCore/idl_files_list ... Workaround is to use /bin/echo rather than the shell's builtin. If /bin/sh is the shell being used by make, then "echo -n" will simply echo "-n" ... sed -i 's:echo -n:/bin/echo -n:g' GNUmakefile{.in,}
Jeremy Huddleston Sequoia
Comment 4 2012-08-17 23:47:27 PDT
And it looks like the ultimate source of the issue is with Source/WebCore/GNUmakefile.am
Philippe Normand
Comment 5 2012-09-17 07:33:35 PDT
The first echo -n: $(AM_V_at)echo -n > $(idl_files_list) can be replaced by: >$(idl_files_list) And for: $(AM_V_at)($(foreach idl, $(dom_binding_idls), echo $(idl) &&) echo -n) >> $(idl_files_list) Hum, not sure. My shell programming skills are rusty :) Is that echo -n call really needed?
Alberto Garcia
Comment 6 2014-01-03 08:11:37 PST
Created attachment 220304 [details] Patch (In reply to comment #5) > $(AM_V_at)($(foreach idl, $(dom_binding_idls), echo $(idl) &&) echo -n) >> $(idl_files_list) > Hum, not sure. My shell programming skills are rusty :) Is that echo > -n call really needed? That's because you need a final command after the last &&. I think we can replace 'echo -n' with 'true' or ':'.
Alberto Garcia
Comment 7 2014-01-03 10:37:48 PST
Note You need to log in before you can comment on or make changes to this bug.