Thank you very much for this patch!
I'll be putting out a release soon to include this fix.
Thanks again!
On Tue Jan 15 13:41:07 2008, fdintino wrote:
Show quoted text> In dbdimp.c, mysql_server_init and mysql_server_end are called when
> DBD_MYSQL_EMBEDDED is not defined. For the client/server version of
> mysql these are
> dummy functions, but they aren't defined in mysql.h for mysql <=
> 3.23.58, so it produces
> linker errors.
>
> When I run it currently (perl v5.6.1, linked against mysql-3.23-sun-
> solaris2.9-sparc), I get
> the following warnings on make:
> "dbdimp.c", line 464: warning: implicit function declaration:
> parse_number
> "dbdimp.c", line 1456: warning: implicit function declaration:
> mysql_server_init
> "dbdimp.c", line 1970: warning: implicit function declaration:
> mysql_server_end
>
> and this error in make test:
>
> /00base............ok 3/5install_driver(mysql) failed: Can't load
> 'blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ld.so.1:
> perl: fatal: relocation
> error: file blib/arch/auto/DBD/mysql/mysql.so: symbol
> mysql_server_init: referenced symbol
> not found at /usr/perl5/5.6.1/lib/sun4-solaris-64int/DynaLoader.pm
> line 206.
> Compilation failed in require at (eval 1) line 3.
>
> If I comment out the lines in dbdimp.c for mysql_server_init on non-
> embedded server:
>
> #else
> mysql_server_init(-1, NULL, NULL);
>
> I get the same thing, only with mysql_server_end. Removing the lines
>
> #else
> mysql_server_end();
>
> leads to a successful test. Since these functions don't do anything in
> client/server mysql, and
> they break it for mysql-3.23.xx (including the most recent), they
> should probably be
> removed. I've attached a patch for dbdimp.c which does this.