Grant Limberg wrote:
> On Aug 27, 2008, at 9:14 AM, Jay Pipes wrote:
> 
>> Grant Limberg wrote:
>>> I've got InnoDB 1.0.1 compiling with no warnings now.  Now I just have
>>> to make it actually work!  As of right now, drizzle is reporting the
>>> following when starting up for make test:
>>>
>>> 080826  5:43:39 [ERROR] Unknown/unsupported table type: innodb
>>> 080826  5:43:39 [ERROR] Aborting
>>>
>>> So it's obviously not quite working as expected yet.  I've attempted to
>>> ./configure the project with --with-debug but that causes a linker error
>>> in sql_derived.cc (see the bug report:
>>> https://bugs.launchpad.net/drizzle/+bug/261687).  Once I have that
>>> fixed, I do have a question.  How does one go about debugging this?
>>
>> The easiest way is to use GDB.  Run the server within a GDB session and
>> step through the code using GDB step/next/continue/break commands.
>>
>> To use GDB, this is what I typically do...
>>     
> 
> So I've been going through some debugging and stepping through the code.
> I ended up creating a blank project in Xcode to debug drizzle from.
> 
> From what I can tell the InnoDB code is either not being loaded, or not
> being recognized when trying to find the handler for the default storage
> engine.  I can't seem to quite figure out why, however.  At one step
> looking up the default table type, it looks as if it should find the
> storage engine.  There's the "name" it's looking for and a "plugin"
> variable with the same name, but things aren't quite working.  This is
> in ha_resolve_by_name() in handler.cc.
> 
> If anyone can take a look, I'd appreciate it.  branch is
> lp:~grant-glsoftware/drizzle/drizzle-innodb-plugin

I pulled your branch and got a build error (remember to build with
warnings as errors...):

row/row0sel.c: In function ‘row_search_max_autoinc’:
row/row0sel.c:4792: warning: passing argument 2 of
‘row_search_autoinc_read_column’ discards qualifiers from pointer target
type

Adding const as a qualifier to the second parameter of
row_search_autoinc_read_column() fixes the issue.

Secondly, I got a linker error after fixing the above:

.libs/ha_innodb_la-log0recv.o: In function `recv_parse_log_recs':
/tmp/grant-innodb-plugin/storage/innobase/log/log0recv.c:1910: undefined
reference to `recv_calc_lsn_on_data_add'
/tmp/grant-innodb-plugin/storage/innobase/log/log0recv.c:1939: undefined
reference to `recv_calc_lsn_on_data_add'
/tmp/grant-innodb-plugin/storage/innobase/log/log0recv.c:1781: undefined
reference to `recv_calc_lsn_on_data_add'
/usr/bin/ld: .libs/ha_innodb.so.0.0.0: hidden symbol
`recv_calc_lsn_on_data_add' isn't defined
/usr/bin/ld: final link failed: Nonrepresentable section on output

This is apparently due to using ld -shared directly, instead of via gcc
as the front-end.  To fix, I tried running ./configure with the
--with-ld-shared="gcc -shared" option, but with no luck.

Monty, could you look into this issue and possibly provide some
assistance?  Thanks!

Jay

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to