ubuntu 10.04
Webkit JavaScript Engine---> SquirrelFish Extreme (SFX) ,not SquirrelFish ,not V8 ,not KJS
WebKit-r79987 Tools/Scripts/build-webkit --debug --gtk
mv .libs libs #hidden file
remove /lib/glib old version
pkg-config --modversion glib-2.0
aptitude install gnome-core-devel #gtk+-2.0 apt-get install gtk+-3.0
webkitDlibs: libcairo2-dev 较新 libicu-dev libxslt-dev --> libxslt1-dev libcurl-dev -->libcurl4-gnutls-dev libsqlite3-dev bison flex gperf libjpeg62-dev libpng12-dev libxt-dev #x11 libgeoclue-dev #geoclue
webkit有一个perl脚本用来管理这些编译。 build-webkit和webkitdirs.pm
可以从webkitdirs.pm中看到。 其中qt用的是qmake来生成makefile,*.pro和*.pri wince和efl用cmake来生成makefile,相关文件是CMakeLists.txt和CMakeLists${PORT}.txt
Tools# ./Scripts/build-webkit --efl
-DPORT=Efl
-DCMAKE_BUILD_TYPE=Release -DENABLE_*=OFF/ON
gtk用autotools来生成makefile,Source各主要目录下的GNUmakefile.am ,特别是autotools下的文件会影响生成的configure文件内容,其中webkit.m4,symbol.filter中的
compiler option:
SYMBOL_VISIBILITY="-fvisibility=hidden"
SYMBOL_VISIBILITY_INLINES="-fvisibility-inlines-hidden"
{ global:
*; local: _Z*; cti*; };这些配置会影响函数的可见性,导出或隐藏.__attribute__ ((visibility("default"))) :
GCC >= 4 __attribute__((visibility("default"))) visibility argument must be one of "default" T, "hidden" t, "protected" T or "internal"t
nm符号类型 : nm 命令使用以下符号(用同样的字符表示弱符号作为全局符号)之一来表示文件符号类型:
A Global absolute 符号。 a Local absolute 符号。 B Global bss 符号。 b Local bss 符号。 D Global data 符号。 d Local data 符号。 f 源文件名称符号。 T Global text 符号。 t Local text 符号。 U 未定义符号。
nm命令 T 才是库中导出的符号 U 指的是在上边的T对应的函数中使用了,却未定义的函数或符号
Tools/GtkLauncher/main.c start webkitGTK trip......
some webkit sites:
|