You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2002/09/21 01:05:17 UTC

DO NOT REPLY [Bug 12885] New: - windows 2000 build information: mod_ssl, bison, etc.

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12885>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12885

windows 2000 build information: mod_ssl, bison, etc.

           Summary: windows 2000 build information: mod_ssl, bison, etc.
           Product: Apache httpd-2.0
           Version: 2.0.40
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Enhancement
          Priority: Other
         Component: Build
        AssignedTo: bugs@httpd.apache.org
        ReportedBy: alan@coldsmoke.com


I was able to build apache2.0.40 with mod_ssl today, but only with some 
effort.  I'd like to submit a bug to have the compile page:

http://httpd.apache.org/docs-2.0/platform/win_compiling.html

modified to reflect the experience.  Here are the things I learned:

1)  if compiling mod_ssl, you will need (in addition to awk) bison, flex, and 
sed.  I think this is vital to mention -- I didn't download the SDK, so maybe 
that's why I was missing bison.  I understood the sentence

The Platform SDK files distributed with Visual C++ 6.0 and later are 
sufficient, so users of later version may skip this requirement.

to mean "you don't need to install anything if you're using VC++ 6.0", so I may 
have been mistaken.


2)  there is a common version of bison compiled natively for windows floating 
around that will give you the error:

/usr/local/share/bison.simple: No such file or directory.

*this is not an apache bug*, but rather a bug in the bison you've downloaded.  
My guess is that this is some cygwin deal.  If you grab this guy's bison:

http://www.monmouth.com/~wstreett/lex-yacc/lex-yacc.html

you'll still need bison.simple, but at least it's a non-qualified path, so you 
can place it into the modules\ssl directory and it will compile

3)  However, if you use this bison it has at least two more problems:

a)  it produces output files named y_tab.h and y_tab.c instead of y.tab.h and 
y.tab.c (that is, with a leading underscore rather than a dot).  I directly 
hacked mod_ssl.mak to use the underscore names and it was fine.
b)  after you fix this, you'll get the cryptic error:

ssl_expr_scan.c
lex.ssl_expr_yy.c(1753) : error C2143: syntax error : missing ')' before 'consta
nt'

This is caused by (I assume) bison doing a 

#define str 1

in the file ssl_expr_scan.c and then later (lines 1750 - 1760 passim) trying to 
use "str" as a paramater to the yy_scan_str function.  I changed the "str" in 
the function and parameter to good old "s" and things worked fine.

Once I did these tweaks, I could successfully compile the whole thing.  So my 
process was:

step 1) compile in visual C++ using the InstallBin target until it dies on ssl
step 2) manually hack the files as described above
step 3) run nmake from the command line:

C:\build\httpd-2.0.40\modules\ssl>nmake -f mod_ssl.mak CFG="mod_ssl - Win32 Debu
g" RECURSE=0 .\Debug\mod_ssl.so

to get mod_ssl.so to compile

step 4) go back to VC++ and chose "build apache.exe" (not, obviously, "rebuild" 
since it would wipe out my mods in step 3) and everything worked great.



It would have saved me a few hours if the page had some war stories on it, 
though in general this was a pretty easy install :)

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org