building php4 cvs for win32, debug runs ok, release crashes with access violation
| From: | Jeroen Janssen | Date: | Fri, 01 Oct 1999 07:40:07 +0000 |
| Subject: | building php4 cvs for win32, debug runs ok, release crashes with access violation | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-5052@lists.php.net to get a copy of this message | ||
Hello,
I'm currently busy with building & testing php4 cvs with MSVC++ 6 SP3 on
WinNT4SP5 with Apache 1.3.9 (using php4 as a module). I did the
following things to be able to get php.exe,php4nts.dll and
php_mysql.dll:
-------BEGIN-------
install cygnus full distribution
md c:\tmp (fix for bison: bad address ???)
md c:\projects
use cvs at phpnet to checkout
php4 c:\projects\php4
bindlib_w32 c:\projects\bindlib_w32
use cvs at zend to checkout
zend c:\projects\zend
TSRM c:\projects\tsrm
get number.tar.gz from phpnet and extract it to c:\projects\php4 (with
subdirs)
set tools\options\directories\include in msvc++ to include:
c:\projects\php4
c:\projects\bindlib_w32
c:\projects\zend
c:\projects\tsrm
open php4 workspace in c:\projects\php4
add bindlib project to workspace php4
remove libzend.lib & resolv.lib from link options in php4dll
add dependency for bindlib in php4dll
added sapi\cgi\cgi_main.c in php4 project and removed cgi_main.c since
it doesn't exist at c:\projects\php4\cgi_main.c
add mysql project to workspace php4
removed php4nts.lib from link options in mysql project
add dependency for php4dll in mysql
copy lib & include subdirs of mysql to c:\projects\mysql
add c:\projects\mysql\lib\debug in the tools\options\directories\library
options in msvc++
removed -S "C:\Program Files...." from all custom build steps for
parsers (since the cygnus bison already knows where to get it from?)
added custom build step for php4dll parsedate.y in release mode (only
present in debug mode yet)
compile debug and release
-------END-------
I think I have put it all together here, maybe I forget something since
I started all over (with a clean cvs etc) a couple of times but I think
it's all here.
The DEBUG version of php4 runs ok(after I put msvcrtd.dll from my
development system on the server), but the RELEASE version gives a
access violation error and I can't seem to find any information it the
drwtsn32 logfile related to wich function crashes... I've got to find
out how to get drwatson output functions names of releasebuild
executables in the logfile (btw php4 crashes only when trying to access
a webpage from the server (i.e. only calling phpinfo), when running from
a commandprompt it's ok).
warnings I get:
zend-scanner.c(5343) : warning C4273: 'isatty' : inconsistent dll
linkage. dllexport assumed.
C:\projects\bindlib_w32\res_send.c(920) : warning C4715: 'res_send' :
not all control paths return a value
configuration-scanner.c(712) : warning C4102: 'find_rule' : unreferenced
label
configuration-scanner.c(1475) : warning C4273: 'isatty' : inconsistent
dll linkage. dllexport assumed.
..\bindlib_w32\arpa/inet.h(74) : warning C4005: 'FD_SETSIZE' : macro
redefinition
D:\Program Files\Microsoft Visual
Studio\VC98\INCLUDE\winsock.h(46) : see previous definition of
'FD_SETSIZE'
parsedate.y(151) : warning C4273: 'localtime' : inconsistent dll
linkage. dllexport assumed.
C:\projects\php4\ext\pcre\pcrelib\pcre.c(127) : warning C4273:
'pcre_malloc' : inconsistent dll linkage. dllexport assumed.
C:\projects\php4\ext\pcre\pcrelib\pcre.c(128) : warning C4273:
'pcre_free' : inconsistent dll linkage. dllexport assumed.
--------------------Configuration: php4dll - Win32
Release--------------------
Linking...
Creating library Release/php4nts.lib and object Release/php4nts.exp
LINK : warning LNK4049: locally defined symbol "_pcre_free" imported
LINK : warning LNK4049: locally defined symbol "_pcre_malloc" imported
--------------------Configuration: mysql - Win32
Release--------------------
That's it for now.
Best regards,
Jeroen Janssen