Bug #2471 4.0.17 won't build using VC++ 6.0 or VS .NET 2003
Submitted: 21 Jan 2004 12:32 Modified: 21 Jan 2004 14:10
Reporter: Noel Gifford Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: Compiling Severity:S2 (Serious)
Version:4.0.17 OS:Microsoft Windows (Windows XP)
Assigned to: CPU Architecture:Any

[21 Jan 2004 12:32] Noel Gifford
Description:
4.0.17 -- mysql-4.0.17-win-src.zip

Tried to build using Visual C++ 6.0 Enterprise Edition w/ SP5
     ML.EXE (Assembler) is not found.

4.0.17 -- mysql-4.0.17-win-src.zip

Tried to build using Visual Studio .NET 2003

Errors from build:

Strings\strxmov.asm
Strings\strings.asm

Modify commandline of custom build step for All configurations for .asm files:
From: ml /Cx /nologo /DDOS386 /DM_I386 /Zm /coff /c /Fo "$(Outdir)"\"$(InputName)".obj "$(InputPath)"
To:   ml /Cx /nologo /DDOS386 /DM_I386 /Zm /coff /c /Fo "$(Outdir)\$(InputName)".obj "$(InputPath)"

IOSTREAM.H has been renamed to IOSTREAM in VS.NET 2003

        build_win32\db_config.h

             217:   #if defined(__cplusplus)
             218:       #include <iostream>         // Changed from iostream.h
             219:   #endif

        File E:\mySQL\VSNET2003\mysql-4.0.17\bdb\examples_cxx\AccessExample.cpp:
        15         #include <iostream.h>
        File E:\mySQL\VSNET2003\mysql-4.0.17\bdb\examples_cxx\BtRecExample.cpp:
        15         #include <iostream.h>
        File E:\mySQL\VSNET2003\mysql-4.0.17\bdb\examples_cxx\EnvExample.cpp:
        16         #include <iostream.h>
        File E:\mySQL\VSNET2003\mysql-4.0.17\bdb\examples_cxx\LockExample.cpp:
        16         #include <iostream.h>
        File E:\mySQL\VSNET2003\mysql-4.0.17\bdb\examples_cxx\MpoolExample.cpp:
        17         #include <iostream.h>
        File E:\mySQL\VSNET2003\mysql-4.0.17\bdb\examples_cxx\TpcbExample.cpp:
        37         #include <iostream.h>
        File E:\mySQL\VSNET2003\mysql-4.0.17\bdb\include\db_cxx.h:
        53         #include <iostream.h>
        File E:\mySQL\VSNET2003\mysql-4.0.17\winmysqladmin\main.cpp:
        25         #include <iostream.h>

Libmysql.def: DESCRIPTION is ignored (says its not supported)

Libmysqld
     sql_parse.cpp (line 1991 - 1993) - should == be = in line 1993 ?
         1991:  /* Fix lock for first table */
         1992:  if (tables->lock_type == TL_WRITE_DELAYED)
         1993:      tables->lock_type == TL_WRITE;

Version 5.0.0 looks like it will have the same problems.

How to repeat:
Open with VS.NET 2003
Convert VC6 Workspace and Projects to VS.NET 2003
Select from menu: Build / Batch Build
Batch Build dialog: Press Select All button, Press Rebuild button
[21 Jan 2004 12:39] MySQL Verification Team
I am able for to compile with VC++ 6.0.
Please read the Manual's item:

http://www.mysql.com/doc/en/Windows_VC++_Build.html
[21 Jan 2004 13:47] Noel Gifford
I did read the manual.
Where is your build picking up ML.EXE from for VC++ 6.0 ?

The Visual C++ 6.0 Enterprise Edition doesn't install ML.EXE.

Also, the rest of the issue pertains to using VS .NET 2003 and has nothing to do with building under VC++ 6.0

Noel
[21 Jan 2004 14:10] MySQL Verification Team
> Where is your build picking up ML.EXE from for VC++ 6.0 ?

You can download from Microsoft the SP 5 and Processor package
and install them. The ml.exe is contained into the Processor
Package. Like you can see below on my machine:

Microsoft (R) Macro Assembler Version 6.15.8803
Copyright (C) Microsoft Corp 1981-2000.  All rights reserved.

usage: ML [ options ] filelist [ /link linkoptions]
Run "ML /help" or "ML /?" for more info

> The Visual C++ 6.0 Enterprise Edition doesn't install ML.EXE.

please see above.

> Also, the rest of the issue pertains to using VS .NET 2003 and has nothing to do with building under VC++ 6.0.

I am able also for to build on VS .NET however my version is 2002 Professional
Edition and the ML makes part of the install stuff:

Setting environment for using Microsoft Visual Studio .NET tools.
(If you also have Visual C++ 6.0 installed and wish to use its tools
from the command line, run vcvars32.bat for Visual C++ 6.0.)

C:\Documents and Settings\miguel solorzano>ml
Microsoft (R) Macro Assembler Version 7.00.9466
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: ML [ options ] filelist [ /link linkoptions]
Run "ML /help" or "ML /?" for more info
[21 Jan 2004 14:10] Mark Matthews
These appear to be two separate issues, so I'm splitting them. The VC6 issue is now tracked in Bug#2472.
[21 Jan 2004 14:15] Mark Matthews
You can now track the VC6 portion of this bug at http://bugs.mysql.com/bug.php?id=2472

If you add a comment, then you will get postings about the bug in your e-mail.