Bug #704 Windows link error and missing source file
Submitted: 24 Jun 2003 0:15 Modified: 10 Jul 2003 13:47
Reporter: Michael Ryan Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S2 (Serious)
Version:4.1.0 OS:Microsoft Windows (Windows 2000)
Assigned to: Bugs System CPU Architecture:Any

[24 Jun 2003 0:15] Michael Ryan
Description:
There are 2 problems I have encountered :-

1. I get link errors when I link with the mysqlclient.lib file that is released as part of the 4.1.0 alpha binary package. The messages I get back are unresolved external symbol __ftol2 and __aulldvrm. I have previously been linking this code with a 4.0.12 version without a problem and no code changes have been made in order to link with 4.1.0 .

In an attempt to see if recompiling on my system would fix this I downloaded the 4.1.0 source package to compile using VC++6 on Windows 2000. When I attempt to build any of the configurations I get the following :

2. Cannot find file strings\ctype-latin1-de.c . I looked in the strings directory and that file has not been included in the source code release package.

I removed this file from the file list for the mysqlclient configuration and it then compiled and linked successfully. I copied the new mysqlclient.lib file into the binary release directory and then retried the build of my program and it now links without error and the program runs without error. There is also a 30K difference in the size of the .lib file generated on my machine and the binary release version from MySQL AB.

How to repeat:
For problem 1) I download the binary and attempt to link with it and I get the same error each time.
For problem 2) I download the source and attempt to build and I get the error about the missing file every time.

Suggested fix:
A) include source file strings\ctype-latin1-de.c
B) Determine why VC++6 on MySQL AB build machine generates .lib files with external dependancies __ftol2 and __aulldvrm.
[24 Jun 2003 5:35] Miguel Solorzano
Thanks you for the bug report.
I am assign to our Production Engineer for to test the
mysqlclient lib issue for the next release. About the
file ctype-latin1-de.c it doesn't make part of the 4.1
stuff so the action you did, removing from the project
is correct.
[24 Jun 2003 5:39] Miguel Solorzano
Updating the assign to for Greg.
[7 Jul 2003 10:58] Miguel Solorzano
Thank you for the bug report.

The problem is that the libraries were compiled with
the VC++ 7.0 compiler.
[10 Jul 2003 2:12] Michael Ryan
So the solution is ????? Your manuals still state that for the Windows Source version you need VC6 with SP4 or 5 which leads one to believe that the binary will also be compatible with VC6. I don't think it is a great situation for every company still using VC6 to have to recompile the binaries for the Windows version themselves every time there is an upgrade. It appears that MySQL 4.0.13 is also now being compiled using VC7 so it appears to be only a fairly recent change that you have switched to VC7. Perhaps releasing a VC6 and VC7 version is a good idea to avert these problems.
[10 Jul 2003 13:47] Miguel Solorzano
Sorry the use of VC++ 7.0 was a mistake.
We continuing using the VC++ 6.0 and when the VC++ 7.0
will be the release compiler will be documented in
the release announce.
[10 Jul 2003 18:44] Michael Ryan
Will you (or have you already) be recompiling the binary release of MySQL 4.0.13 for Windows using VC++6 ?