Hello, I have been trying to build sqlite 3.8.4.1 using the ICU extension and have seem to have hit an apparent bug in the sqlite code. After much debugging, it looks like the header <unicode/utf8.h> is missing, which causes warnings like the following to appear:
sqlite3.c: In function 'icuLikeCompare': sqlite3.c:145704:5: warning: implicit declaration of function 'U8_NEXT_UNSAFE' [-Wimplicit-function-declaration] U8_NEXT_UNSAFE(zPattern, iPattern, uPattern); ^ sqlite3.c:145725:11: warning: implicit declaration of function 'U8_FWD_1_UNSAFE' [-Wimplicit-function-declaration] U8_FWD_1_UNSAFE(zString, iString); ^ sqlite3.c: In function 'icuLikeFunc': sqlite3.c:145804:5: warning: implicit declaration of function 'U8_NEXT' [-Wimplicit-function-declaration] U8_NEXT(zE, i, nE, uEsc); ^ This, in turn, manifests as undefined symbol errors in the linker: ./.libs/libsqlite3.a(sqlite3.o): In function `icuLikeCompare': /home/alex/src/vulcan/build/workdir/sqlite-autoconf-3080401/sqlite3.c:145704: undefined reference to `U8_NEXT_UNSAFE' /home/alex/src/vulcan/build/workdir/sqlite-autoconf-3080401/sqlite3.c:145743: undefined reference to `U8_FWD_1_UNSAFE' /home/alex/src/vulcan/build/workdir/sqlite-autoconf-3080401/sqlite3.c:145752: undefined reference to `U8_NEXT_UNSAFE' /home/alex/src/vulcan/build/workdir/sqlite-autoconf-3080401/sqlite3.c:145725: undefined reference to `U8_FWD_1_UNSAFE' /home/alex/src/vulcan/build/workdir/sqlite-autoconf-3080401/sqlite3.c:145736: undefined reference to `U8_FWD_1_UNSAFE' ./.libs/libsqlite3.a(sqlite3.o): In function `icuOpen': /home/alex/src/vulcan/build/workdir/sqlite-autoconf-3080401/sqlite3.c:146257: undefined reference to `U8_NEXT' ./.libs/libsqlite3.a(sqlite3.o): In function `icuLikeFunc': /home/alex/src/vulcan/build/workdir/sqlite-autoconf-3080401/sqlite3.c:145804: undefined reference to `U8_NEXT' collect2: error: ld returned 1 exit status make[1]: *** [sqlite3] Error 1 make: *** [sqlite] Error 2 I have verified that adding the said include fixes the issue (1-line patch): diff --git sqlite3.c sqlite3.c index 7c6d3e2..a9399e4 100644 --- sqlite3.c +++ sqlite3.c @@ -145656,6 +145656,7 @@ SQLITE_API int sqlite3_rtree_init( #include <unicode/uregex.h> #include <unicode/ustring.h> #include <unicode/ucol.h> +#include <unicode/utf8.h> /* #include <assert.h> */ Hope this helps others that run into this issue. -- Alex Loukissas www.maginatics.com _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users