Link errors with SQLITE_OMIT_VIRTUALTABLE

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Link errors with SQLITE_OMIT_VIRTUALTABLE

Yehiel Zohar
Hi all,

I have these link errors when compiling sqlite3 (amalgamation version 3.26.0) as part of my application:

    sqlite3.c:150722: undefined reference to `sqlite3VtabFinishParse'
    sqlite3.c:150725: undefined reference to `sqlite3VtabFinishParse'
    sqlite3.c:150729: undefined reference to `sqlite3VtabBeginParse'
    sqlite3.c:150733: undefined reference to `sqlite3VtabArgInit'
    sqlite3.c:150738: undefined reference to `sqlite3VtabArgExtend'

a short research discovered that the link issues are a result of inconsistent definition of macro guards.
A fix patch is attached to this mail.

Regards,
Yehiel Zohar.
This email and any files transmitted with it are confidential material. They are intended solely for the use of the designated individual or entity to whom they are addressed. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, use, distribution or copying of this communication is strictly prohibited and may be unlawful.

If you have received this email in error please immediately notify the sender and delete or destroy any copy of this message
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|

Re: Link errors with SQLITE_OMIT_VIRTUALTABLE

Simon Slavin-3
On 15 Jan 2019, at 8:06am, Yehiel Zohar <[hidden email]> wrote:

> A fix patch is attached to this mail.

Sorry, but this mailing list automatically strips attachments.  You can paste the contents of your patch file into a followup, or upload it to a server and post a link.

Simon.
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|

Re: Link errors with SQLITE_OMIT_VIRTUALTABLE

Yehiel Zohar
In reply to this post by Yehiel Zohar
It's important to mention Orgad Shaneh, a dear colleague who helped me get to this solution.

Patch contents:

From 4184b9fc3cbaeabe1892e5d68ddb886373c8ea00 Mon Sep 17 00:00:00 2001
From: Yehiel Zohar <[hidden email]>
Date: Tue, 15 Jan 2019 09:29:46 +0200
Subject: [PATCH] Fix link errors with SQLITE_OMIT_VIRTUALTABLE

sqlite3.c:150722: undefined reference to `sqlite3VtabFinishParse'
sqlite3.c:150725: undefined reference to `sqlite3VtabFinishParse'
sqlite3.c:150729: undefined reference to `sqlite3VtabBeginParse'
sqlite3.c:150733: undefined reference to `sqlite3VtabArgInit'
sqlite3.c:150738: undefined reference to `sqlite3VtabArgExtend'
---
src/sqliteInt.h | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/sqliteInt.h b/src/sqliteInt.h
index fe0bd6226..3f62080af 100644
--- a/src/sqliteInt.h
+++ b/src/sqliteInt.h
@@ -4388,6 +4388,10 @@ void sqlite3AutoLoadExtensions(sqlite3*);
#  define sqlite3VtabUnlockList(X)
#  define sqlite3VtabSavepoint(X, Y, Z) SQLITE_OK
#  define sqlite3GetVTable(X,Y)  ((VTable*)0)
+#  define sqlite3VtabBeginParse(A, B, C, D, E)
+#  define sqlite3VtabFinishParse(X, Y)
+#  define sqlite3VtabArgInit(X)
+#  define sqlite3VtabArgExtend(X, Y)
#else
    void sqlite3VtabClear(sqlite3 *db, Table*);
    void sqlite3VtabDisconnect(sqlite3 *db, Table *p);
@@ -4408,7 +4412,6 @@ void sqlite3AutoLoadExtensions(sqlite3*);
      void(*)(void*)
    );
#  define sqlite3VtabInSync(db) ((db)->nVTrans>0 && (db)->aVTrans==0)
-#endif
int sqlite3VtabEponymousTableInit(Parse*,Module*);
void sqlite3VtabEponymousTableClear(sqlite3*,Module*);
void sqlite3VtabMakeWritable(Parse*,Table*);
@@ -4421,6 +4424,7 @@ int sqlite3VtabCallConnect(Parse*, Table*);
int sqlite3VtabCallDestroy(sqlite3*, int, const char *);
int sqlite3VtabBegin(sqlite3 *, VTable *);
FuncDef *sqlite3VtabOverloadFunction(sqlite3 *,FuncDef*, int nArg, Expr*);
+#endif
sqlite3_int64 sqlite3StmtCurrentTime(sqlite3_context*);
int sqlite3VdbeParameterIndex(Vdbe*, const char*, int);
int sqlite3TransferBindings(sqlite3_stmt *, sqlite3_stmt *);
--
2.20.1.windows.1.3.g039c8793a4

This email and any files transmitted with it are confidential material. They are intended solely for the use of the designated individual or entity to whom they are addressed. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, use, distribution or copying of this communication is strictly prohibited and may be unlawful.

If you have received this email in error please immediately notify the sender and delete or destroy any copy of this message
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users