Bug #71 mySQL 4.1 won't compile on windows
Submitted: 14 Feb 2003 1:40 Modified: 22 Feb 2003 10:57
Reporter: Edin Kadribasic Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S2 (Serious)
Version:4.1 alpha OS:Windows (Windows 2000)
Assigned to: Bugs System CPU Architecture:Any

[14 Feb 2003 1:40] Edin Kadribasic
Description:
Trying to compile PHP module for mySQL 4.1 I stumbled upon a problem with getting client library compiled on Windows. The VC++ project files seem to be outdated. For example they refer to files in wrong folders, or to non-existing files alltogether. Any plans on updating those soon?

How to repeat:
[15 Feb 2003 23:34] Michael Widenius
The VC++ files are updated in the 4.1 tree but you need to have the right 
layout for the source files to get MySQL to compile with VC++. 
 
This is handled in the MySQL windows source release. 
 
(We will in the near future ensure that the layout of files in VC++ more 
closely maps to the bk tree version)
[16 Feb 2003 12:23] Edin Kadribasic
Does this include .def files that list symbols exported in the client library .dll (i needed to add new functions there manually to get php's extension to compile)?

Also is there any documentation on how to get the right soruce layout (like rename all .cc files to .cpp, copy vc++ files to the root of the source tree, etc)?
[16 Feb 2003 13:48] Venu Anuganti
Hi !! 
 
I am in process of writing the VC++ Files/WIN-INSTALL file 
to compile MySQL on windows from bk source by building it 
from scratch. Stay tuned to this bug report for more 
information. 
 
Thanks
[20 Feb 2003 20:37] Venu Anuganti
Hi !!

As you might have seen the commits from 4.1 related to Windows stuff, the 4.1 bk tree now has the new script 'make_win_src_distribution.sh' from scripts sub directory, to create the source snapshot package(.tar.gz or .zip, and is controlled through the argument) to be compatible to build on windows using the VC++ workspace files.

Now, it all works fine with some minor restrictions (described below), that I will fix later today or tomorrow with the help of Mark and Miguel. I tested by building all workspace files and also pushed the changes needed to Windows workspace files according to the source package that this script generates.

What you need to do is, execute the above script to create the Windows source distribution. Currently only .tar.gz works, though the script supports .zip one by default, but its not yet compatible to load the workspace files from Windows due to LF->LF+CR issues. I will fix this later tomorrow.

Here is the simple usage:

[venu@myvenu dev-4.1]$ cd scripts/

[venu@myvenu scripts]$ ./make_win_src_distribution
ERROR : You must run this script from the MySQL top-level directory

[venu@myvenu scripts]$ cd ..

[venu@myvenu dev-4.1]$ scripts/make_win_src_distribution
ERROR: The default .zip doesn't yet work on Windows, as it can't load the workspace files due to LF->CR+LF issues, instead use --tar to create a .tar.gz package

MySQL utility script to create a Windows src package, and it takes the following arguments:

  --debug   Debug, without creating the package
  --tmp     Specify the temporary location
  --silent  Do not list verbosely files processed
  --tar     Create a tar.gz package instead of .zip
  --help    Show this help message

[venu@myvenu dev-4.1]$ scripts/make_win_src_distribution --debug --tar
Please check the distribution files from /tmp/mysql-4.1.0-alpha-win-src
Exiting (without creating the package)..

[venu@myvenu dev-4.1]$ scripts/make_win_src_distribution --silent --tar
...
Removing temporary directory..
mysql-4.1.0-alpha-win-src.tar.gz created successfully !!

RESTRICTIONS:
-------------
1. The script doesn't yet takes care or includes the 'Data' directory needed to run the server. 

2. Making the .zip to work. Need to see why -l flag is not working while creating the zip archive to change the CR->CR+LF.

3. You may get only one compiler error from mysqld.cpp as
'pthread_attr_getstacksize' as undefined, and this is due to the fact that (I believe) the 3.23->4.0->4.1 merge is not yet fully complete to include this change from 'pthread' stuff. 

So, just comment the line 2361@mysqld.cpp and assign stack_size=0 so that the comparison in line 2362 takes care of the default stack size. 

This is temporary until we get the next merge done.

Thanks
[22 Feb 2003 10:57] Venu Anuganti
Thank you for your bug report. This issue has been fixed in the latest
development tree for that product. You can find more information about
accessing our development trees at 
    http://www.mysql.com/doc/en/Installing_source_tree.html