On Nov 18, 2007 3:28 PM, P Kishor <[EMAIL PROTECTED]> wrote:
> Following those pretty much to the t, I almost got everything working.
> Except, I got the following during make
>
> ../sqlite-3.5.2/ext/fts1/fts1.c:7:2: error: #error fts1 has a design
> flaw and has been deprecated.
> make: *** [fts1.lo] Error 1
>
> Fantastic. If it is has a design flaw and has been deprecated, then
> why include it?

In case someone is using it and really needs to keep using it and has
reason to believe that the design flaw doesn't impact them.

> Or, if it is included, where is the information that
> it has been deprecated that one can read *before* doing make?

That information is available on the mailing list - or wasn't that
what you meant?  :-).

There isn't an obvious place to put such information, and fts1 and 2
(and 3) are in any case considered outside the sqlite core.  It takes
less than a minute to hit the error, so it's not like you lost three
days tracking down some obscure design flaw yourself...

> Anyway, I went back into Makefile.in and commented out all references
> to fts1 and ran make again. This time I got
>
> ../sqlite-3.5.2/ext/fts2/fts2.c:7:2: error: #error fts2 has a design
> flaw and has been deprecated.
> make: *** [fts2.lo] Error 1
>
> So, I went back into the ext library and discovered that there was
> fts3.

Note that the comment just before the SQLITE_ENABLE_BROKEN_FTS1
snippet explicitely states that you should be using fts3 or higher.

> So, I went back into Makefile.in and commented out all
> references to fts2, added similar looking lines for fts3 and ran make
> again. This time it all worked. Great!
>
> Well, not so great. Now when I run the new sqlite3, I get the following
>
> dyld: lazy symbol binding failed: Symbol not found: _sqlite3Fts1Init
>   Referenced from:
> /Users/punkish/Projects/sqlite-3.5.2-build/.libs/libsqlite3.0.dylib
>   Expected in: flat namespace
>
> dyld: Symbol not found: _sqlite3Fts1Init
>   Referenced from:
> /Users/punkish/Projects/sqlite-3.5.2-build/.libs/libsqlite3.0.dylib
>   Expected in: flat namespace
>
> Trace/BPT trap

The lines I have in main.mk for fts3 stuff look like:

# Near the top after "Object files for the SQLite library".
LIBOBJ += fts3.o \
          fts3_hash.o \
          fts3_icu.o \
          fts3_porter.o \
          fts3_tokenizer.o \
          fts3_tokenizer1.o

# After TESTSRC definition.
TESTSRC += $(TOP)/ext/fts3/fts3_tokenizer.c

# After current "Rules to build the extension objects." section
fts3.o: $(TOP)/ext/fts3/fts3.c $(HDR) $(EXTHDR)
        $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3.c

fts3_hash.o:    $(TOP)/ext/fts3/fts3_hash.c $(HDR) $(EXTHDR)
        $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_hash.c

fts3_icu.o:     $(TOP)/ext/fts3/fts3_icu.c $(HDR) $(EXTHDR)
        $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_icu.c

fts3_porter.o:  $(TOP)/ext/fts3/fts3_porter.c $(HDR) $(EXTHDR)
        $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_porter.c

fts3_tokenizer.o:       $(TOP)/ext/fts3/fts3_tokenizer.c $(HDR) $(EXTHDR)
        $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_tokenizer.c

fts3_tokenizer1.o:      $(TOP)/ext/fts3/fts3_tokenizer1.c $(HDR) $(EXTHDR)
        $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_tokenizer1.c

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to