Bug 37761 - WebKit won't build with --disable-database
Summary: WebKit won't build with --disable-database
Status: RESOLVED INVALID
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Linux
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-04-17 20:46 PDT by Michael Forney
Modified: 2014-04-08 18:36 PDT (History)
3 users (show)

See Also:


Attachments
Patch fixing this issue (908 bytes, patch)
2010-04-17 20:46 PDT, Michael Forney
no flags Details | Formatted Diff | Diff
Partially fix build with --disable-database. (1.58 KB, patch)
2010-04-18 16:49 PDT, Michael Forney
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Forney 2010-04-17 20:46:43 PDT
Created attachment 53622 [details]
Patch fixing this issue

JSDOMWindowCustom.cpp tries to include the generated file "JSDatabase.h" even when --disable-database is specified.

Build log:
<snip>
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCSSStyleDeclarationCustom.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCSSValueCustom.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCallbackData.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCanvasRenderingContextCustom.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCanvasRenderingContext2DCustom.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSClipboardCustom.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSConsoleCustom.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCoordinatesCustom.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCustomPositionCallback.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCustomPositionErrorCallback.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCustomVoidCallback.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSCustomXPathNSResolver.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSDOMBinding.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSDOMFormDataCustom.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSDOMGlobalObject.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSDOMWindowBase.lo
  CXX    WebCore/bindings/js/libwebkit_1_0_la-JSDOMWindowCustom.lo
WebCore/bindings/js/JSDOMWindowCustom.cpp:39:24: error: JSDatabase.h: No such file or directory
make[1]: *** [WebCore/bindings/js/libwebkit_1_0_la-JSDOMWindowCustom.lo] Error 1
make[1]: Leaving directory `/home/michael/tmp/webkit-gtk'
make: *** [all] Error 2

This is fixed by the attached patch.
Comment 1 Michael Forney 2010-04-17 22:32:46 PDT
It looks like this is not the only issue preventing webkit from being built with --disable-database.

./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteTransaction::SQLiteTransaction(WebCore::SQLiteDatabase&, bool)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::getColumnDouble(int)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLResultOk'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::bindInt64(int, long)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::executeCommand()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteDatabase::executeCommand(WebCore::String const&)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::~SQLiteStatement()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteDatabase::~SQLiteDatabase()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteDatabase::SQLiteDatabase()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::SQLiteStatement(WebCore::SQLiteDatabase&, WebCore::String const&)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::getColumnValue(int)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::bindDouble(int, double)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::bindNull(int)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLResultRow'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteDatabase::open(WebCore::String const&)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteTransaction::commit()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::step()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::prepare()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteFileSystem::appendDatabaseFileNameToPath(WebCore::String const&, WebCore::String const&)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteTransaction::~SQLiteTransaction()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::getColumnInt64(int)'
collect2: ld returned 1 exit status
make[1]: *** [Programs/unittests/testhttpbackend] Error 1
make[1]: *** Waiting for unfinished jobs....
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteTransaction::SQLiteTransaction(WebCore::SQLiteDatabase&, bool)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::getColumnDouble(int)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLResultOk'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::bindInt64(int, long)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::executeCommand()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteDatabase::executeCommand(WebCore::String const&)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::~SQLiteStatement()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteDatabase::~SQLiteDatabase()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteDatabase::SQLiteDatabase()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::SQLiteStatement(WebCore::SQLiteDatabase&, WebCore::String const&)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::getColumnValue(int)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::bindDouble(int, double)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::bindNull(int)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLResultRow'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteDatabase::open(WebCore::String const&)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteTransaction::commit()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::step()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::prepare()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteFileSystem::appendDatabaseFileNameToPath(WebCore::String const&, WebCore::String const&)'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteTransaction::~SQLiteTransaction()'
./.libs/libwebkit-1.0.so: undefined reference to `WebCore::SQLiteStatement::getColumnInt64(int)'
collect2: ld returned 1 exit status
make[1]: *** [Programs/GtkLauncher] Error 1

I think this is because offline-web-applications is dependent on database, but I'm not quite sure how to fix this one.
Comment 2 Michael Forney 2010-04-18 16:49:01 PDT
Created attachment 53645 [details]
Partially fix build with --disable-database.

Update patch for style requirements.
Comment 3 Adam Barth 2010-04-22 13:03:00 PDT
Comment on attachment 53645 [details]
Partially fix build with --disable-database.

Thanks!
Comment 4 WebKit Commit Bot 2010-04-22 21:20:10 PDT
Comment on attachment 53645 [details]
Partially fix build with --disable-database.

Clearing flags on attachment: 53645

Committed r58145: <http://trac.webkit.org/changeset/58145>
Comment 5 WebKit Commit Bot 2010-04-22 21:20:14 PDT
All reviewed patches have been landed.  Closing bug.
Comment 6 Michael Forney 2010-04-23 21:49:22 PDT
This bug is not yet fixed because of the second issue I mentioned regarding  linking failures.
Comment 7 Steven Siloti 2010-09-13 21:53:10 PDT
The link errors are due to GeolocationPositionCache depending on SQLite platform support. To fix this we could either include the SQLite platform sources if ENABLE(GEOLOCATION) or make GeolocationPositionCache support conditional on ENABLE(DATABASE). I'm not sure which would be more appropriate.
Comment 8 Martin Robinson 2014-04-08 18:36:25 PDT
Patch is probably quite out of date. Let's reopen if this is still an issue and post a new fix.