Bug 575 - webkit: Buildroot Libtool Patch Fails
Summary: webkit: Buildroot Libtool Patch Fails
Status: RESOLVED FIXED
Alias: None
Product: buildroot
Classification: Unclassified
Component: Other (show other bugs)
Version: unspecified
Hardware: PC Linux
: P5 enhancement
Target Milestone: 2010.05
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-08-19 16:25 UTC by Dan Dart
Modified: 2010-07-28 14:07 UTC (History)
1 user (show)

See Also:
Host: i686-pc-linux-gnu
Target: i386-pc-linux-uclibc
Build: i386-pc-linux-gnu


Attachments
gperf package with host gperf support (1.87 KB, text/plain)
2009-08-20 07:39 UTC, Daniele Salvatore Albano
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dan Dart 2009-08-19 16:25:04 UTC
Don't know what I'm supposed to do.

Errors:

configure.ac:30: installing `autotools/missing'                                     
GNUmakefile.am: installing `autotools/depcomp'                                      
WebKit configure 1.1.8                                                              
generated by GNU Autoconf 2.63                                                      

Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
touch /home/dan/xenon/buildroot/build_i386/webkit-r44552/.stamp_hook_post_extract
>>> webkit r44552 Patching libtool

Applying buildroot-libtool.patch using plaintext:
patching file ltmain.sh
Hunk #1 FAILED at 273.
Hunk #2 succeeded at 5416 (offset 3008 lines).
Hunk #3 FAILED at 5560.
Hunk #4 FAILED at 5904.
Hunk #5 succeeded at 8075 with fuzz 1 (offset 2452 lines).
Hunk #6 FAILED at 8400.
4 out of 6 hunks FAILED -- saving rejects to file ltmain.sh.rej
Patch failed!  Please fix buildroot-libtool.patch!
make: *** [/home/dan/xenon/buildroot/build_i386/webkit-r44552/.stamp_libtool_patch] Error 1
Comment 1 Thomas Petazzoni 2009-08-19 21:21:50 UTC
Webkit uses libtool 2.x, while Buildroot patch for libtool only applies to 1.5.x versions of libtool. Therefore, Webkit Makefile should set WEBKIT_LIBTOOL_PATCH=NO. However, even with this fix, I have libtool issues while compiling Webkit, which is why I haven't submitted the fix yet.

But since you're compiling for a x86 target on a x86 host, setting WEBKIT_LIBTOOL_PATCH = NO might be enough for you.
Comment 2 Dan Dart 2009-08-19 21:58:17 UTC
Yes it did go past, bear in mind the host needs gperf to compile it. Maybe that should be added to host tools

However I now get:
make[2]: *** [JavaScriptCore/libJavaScriptCore_la-AllInOneFile.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from ./WebCore/platform/graphics/transforms/TransformationMatrix.h:36,
                 from ./WebCore/rendering/style/RenderStyle.h:28,
                 from ./WebCore/rendering/RenderObject.h:33,
                 from WebCore/accessibility/AXObjectCache.cpp:46:
/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/cairo/cairo.h:1550:5: warning: "CAIRO_HAS_PNG_FUNCTIONS" is not defined
/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/cairo/cairo.h:1682:5: warning: "CAIRO_HAS_PNG_FUNCTIONS" is not defined
mv -f WebCore/accessibility/.deps/libWebCore_la-AXObjectCache.Tpo WebCore/accessibility/.deps/libWebCore_la-AXObjectCache.Plo
make[2]: Leaving directory `/home/dan/xenon/buildroot/build_i386/webkit-r44552'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/dan/xenon/buildroot/build_i386/webkit-r44552'
make: *** [/home/dan/xenon/buildroot/build_i386/webkit-r44552/.stamp_built] Error 2
Comment 3 Daniele Salvatore Albano 2009-08-20 07:39:28 UTC
Created attachment 605 [details]
gperf package with host gperf support
Comment 4 Will Newton 2009-08-20 08:53:21 UTC
(In reply to comment #2)
> Yes it did go past, bear in mind the host needs gperf to compile it. Maybe that
> should be added to host tools
> 
> However I now get:
> make[2]: *** [JavaScriptCore/libJavaScriptCore_la-AllInOneFile.lo] Error 1
> make[2]: *** Waiting for unfinished jobs....
> In file included from
> ./WebCore/platform/graphics/transforms/TransformationMatrix.h:36,
>                  from ./WebCore/rendering/style/RenderStyle.h:28,
>                  from ./WebCore/rendering/RenderObject.h:33,
>                  from WebCore/accessibility/AXObjectCache.cpp:46:
> /home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/cairo/cairo.h:1550:5:
> warning: "CAIRO_HAS_PNG_FUNCTIONS" is not defined
> /home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/cairo/cairo.h:1682:5:
> warning: "CAIRO_HAS_PNG_FUNCTIONS" is not defined
> mv -f WebCore/accessibility/.deps/libWebCore_la-AXObjectCache.Tpo
> WebCore/accessibility/.deps/libWebCore_la-AXObjectCache.Plo
> make[2]: Leaving directory `/home/dan/xenon/buildroot/build_i386/webkit-r44552'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory `/home/dan/xenon/buildroot/build_i386/webkit-r44552'
> make: *** [/home/dan/xenon/buildroot/build_i386/webkit-r44552/.stamp_built]
> Error 2
> 

WebKit requires cairo to be built with png support. That can be enabled from the menuconfig to get things building.

I need to investigate under which circumstances WebKit uses cairo and it's PNG support.
Comment 5 Dan Dart 2009-08-20 16:11:22 UTC
Then it should select it. Done now and now getting JS compilation errors.

In file included from JavaScriptCore/AllInOneFile.cpp:47:                           
JavaScriptCore/runtime/Collector.cpp: In function ‘void* JSC::currentThreadStackBase()’:                                                                                
JavaScriptCore/runtime/Collector.cpp:451: error: ‘pthread_getattr_np’ was not declared in this scope                                                                    
mv -f WebCore/accessibility/.deps/libWebCore_la-AccessibilityList.Tpo WebCore/accessibility/.deps/libWebCore_la-AccessibilityList.Plo                                   
./doltlibtool --tag=CXX   --mode=compile /home/dan/xenon/buildroot/build_i386/staging_dir/usr/bin/i386-linux-uclibc-g++ -Os -pipe -Os  -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include -I/home/dan/xenon/buildroot/build_i386/staging_dir/include --sysroot=/home/dan/xenon/buildroot/build_i386/staging_dir/ -isysroot /home/dan/xenon/buildroot/build_i386/staging_dir -mtune=i386 -march=i386 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -I.  -DBUILDING_CAIRO__=1 -DBUILDING_GTK__=1 -DWTF_CHANGES -DWTF_USE_ICU_UNICODE=1   -DNDEBUG  -I./WebCore -I./WebCore/accessibility -I./WebCore/bindings/js -I./WebCore/bridge -I./WebCore/bridge/c -I./WebCore/css -I./WebCore/dom -I./WebCore/editing -I./WebCore/history -I./WebCore/html -I./WebCore/inspector -I./WebCore/loader -I./WebCore/loader/appcache -I./WebCore/loader/archive -I./WebCore/loader/icon -I./WebCore/page -I./WebCore/page/animation -I./WebCore/platform -I./WebCore/platform/animation -I./WebCore/platform/graphics -I./WebCore/platform/graphics/filters -I./WebCore/platform/graphics/transforms -I./WebCore/platform/image-decoders -I./WebCore/platform/image-decoders/bmp -I./WebCore/platform/image-decoders/gif -I./WebCore/platform/image-decoders/ico -I./WebCore/platform/image-decoders/jpeg -I./WebCore/platform/image-decoders/png -I./WebCore/platform/image-decoders/xbm -I./WebCore/platform/network -I./WebCore/platform/text -I./WebCore/plugins -I./WebCore/rendering -I./WebCore/rendering/style -I./WebCore/workers -I./WebCore/xml -I./WebCore/bindings/js -DDATA_DIR=\"/usr/share\" -DENABLE_JAVASCRIPT_DEBUGGER=1 -DENABLE_OFFLINE_WEB_APPLICATIONS=1 -DENABLE_DASHBOARD_SUPPORT=1 -DENABLE_DATABASE=1 -I./WebCore/platform/sql -I./WebCore/storage  -DENABLE_DOM_STORAGE=1 -I./WebCore/storage -DENABLE_ICONDATABASE=1    -DENABLE_XPATH=1 -DENABLE_XSLT=1 -DENABLE_WORKERS=1    -DENABLE_SVG=1 -I./WebCore/svg -I./WebCore/svg/animation -I./WebCore/svg/graphics -I./WebCore/svg/graphics/filters -DENABLE_SVG_USE=1 -DENABLE_SVG_FOREIGN_OBJECT=1 -DENABLE_SVG_FONTS=1 -DENABLE_SVG_AS_IMAGE=1 -DENABLE_SVG_ANIMATION=1  -DWTF_USE_SOUP=1 -DENABLE_PLUGIN_PACKAGE_SIMPLE_HASH=1 -I./WebCore/accessibility/gtk -I./WebCore/loader/gtk -I./WebCore/page/gtk -I./WebCore/platform/graphics/cairo -I./WebCore/platform/graphics/gtk -I./WebCore/platform/gtk -I./WebCore/platform/network/soup -DUSE_FREETYPE=1  -I./JavaScriptCore/ForwardingHeaders -I./JavaScriptCore/parser -I./JavaScriptCore/wtf -I./DerivedSources -I./JavaScriptCore -I./JavaScriptCore/API -I./JavaScriptCore/ForwardingHeaders -I./JavaScriptCore/interpreter -I./JavaScriptCore/bytecode -I./JavaScriptCore/bytecompiler -I./JavaScriptCore/debugger -I./JavaScriptCore/jit -I./JavaScriptCore/pcre -I./JavaScriptCore/profiler -I./JavaScriptCore/runtime -I./JavaScriptCore/wrec -I./JavaScriptCore/jit -I./JavaScriptCore/assembler -I./JavaScriptCore/wtf/unicode -I./JavaScriptCore/yarr -I./JavaScriptCore/pcre -I./JavaScriptCore/parser -I./JavaScriptCore/runtime   -Wall -W -Wcast-align -Wchar-subscripts -Wreturn-type -Wformat -Wformat-security -Wno-format-y2k -Wundef -Wmissing-format-attribute -Wpointer-arith -Wwrite-strings -Wno-unused-parameter -Wno-parentheses -fno-exceptions -fvisibility=hidden -fvisibility-inlines-hidden -fno-rtti -fno-strict-aliasing  -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/enchant -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/glib-2.0 -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/lib/glib-2.0/include    -pthread -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/glib-2.0 -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/lib/glib-2.0/include     -D_REENTRANT -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/gtk-2.0 -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/lib/gtk-2.0/include -I/home/dan/xenon/buildroot/build_i386/staging_dir/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/cairo -I/home/dan/xenon/buildroot/build_i386/staging_dir/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/directfb -I/home/dan/xenon/buildroot/build_i386/staging_dir/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/freetype2 -I/home/dan/xenon/buildroot/build_i386/staging_dir/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/pixman-1 -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/atk-1.0 -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/cairo -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/pango-1.0 -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/glib-2.0 -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/lib/glib-2.0/include -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/freetype2 -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/directfb -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/pixman-1    -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/libsoup-2.4 -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/libxml2 -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/glib-2.0 -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/lib/glib-2.0/include   -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/libxml2   -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include/libxml2    -D_REENTRANT -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include  -Os -pipe -Os  -I/home/dan/xenon/buildroot/build_i386/staging_dir/usr/include -I/home/dan/xenon/buildroot/build_i386/staging_dir/include --sysroot=/home/dan/xenon/buildroot/build_i386/staging_dir/ -isysroot /home/dan/xenon/buildroot/build_i386/staging_dir -mtune=i386 -march=i386 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -MT WebCore/accessibility/libWebCore_la-AccessibilityListBox.lo -MD -MP -MF WebCore/accessibility/.deps/libWebCore_la-AccessibilityListBox.Tpo -c -o WebCore/accessibility/libWebCore_la-AccessibilityListBox.lo `test -f 'WebCore/accessibility/AccessibilityListBox.cpp' || echo './'`WebCore/accessibility/AccessibilityListBox.cpp
make[2]: *** [JavaScriptCore/libJavaScriptCore_la-AllInOneFile.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
mv -f WebCore/accessibility/.deps/libWebCore_la-AccessibilityListBox.Tpo WebCore/accessibility/.deps/libWebCore_la-AccessibilityListBox.Plo
make[2]: Leaving directory `/home/dan/xenon/buildroot/build_i386/webkit-r44552'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/dan/xenon/buildroot/build_i386/webkit-r44552'
make: *** [/home/dan/xenon/buildroot/build_i386/webkit-r44552/.stamp_built] Error 2
Comment 6 Will Newton 2009-08-24 10:14:58 UTC
The error you are seeing is because uClibc linuxthreads.old does not have support for some newer features of pthreads that WebKit uses.

There is a patch that has been proposed for uClibc to fix this, but I am not sure how correct it is and I don't know if there are plans to merge it:

http://www.mail-archive.com/uclibc@uclibc.org/msg02399.html

You could try building with this patch in toolchain/uClibc or try using the new linuxthreads library and see if that is more successful.
Comment 7 Thomas Petazzoni 2010-02-21 22:33:02 UTC
Move milestone to 2010.05 since enhancements will not be handled before the release of 2010.02.
Comment 8 Thomas Petazzoni 2010-07-28 14:07:12 UTC
All issues mentionned in this bug have been fixed :

 * The libtool patch is no longer applied to webkit

 * The dependency from webkit to Cairo PNG has been added

 * The patch to fix the Webkit build failure due to missing pthread calls in uClibc has been added

I'm therefore closing this bug.