Hi,
Attached is an updated patch for building with Borland C++Builder 5.
This turns off the same two warnings as before, defines _strnicmp,
enabling one of the test programs to build, and changes the NASM
assembly generation to generate a "class=code" directive for segments.
Without the "class=code" directive, the linker ends up putting the
assembler in the data segment, which sometime later hits
WinXPSP2/Windows Server 2003's Data Execution Prevention, since the data
segment is loaded without the execute bit set.
--
Jon Bright
Silicon Circus Ltd.
http://www.siliconcircus.com
--- crypto/perlasm/x86nasm.pl 26 Mar 2005 19:32:31 -0000 1.2.8.8
+++ crypto/perlasm/x86nasm.pl 26 Aug 2005 22:07:44 -0000
@@ -221,6 +221,6 @@
sub main'file
{
- push(@out, "segment .text use32\n");
+ push(@out, "segment .text use32 class=code\n");
}
--- util/pl/BC-32.pl 17 May 2004 04:28:30 -0000 1.11.2.5
+++ util/pl/BC-32.pl 26 Aug 2005 22:07:10 -0000
@@ -18,7 +18,7 @@
$tmp_def="tmp32";
$inc_def="inc32";
#enable max error messages, disable most common warnings
-$cflags="-DWIN32_LEAN_AND_MEAN -q -w-aus -w-par -w-inl -c -tWC -tWM
-DOPENSSL_SYSNAME_WIN32 -DL_ENDIAN -DDSO_WIN32 -D_stricmp=stricmp ";
+$cflags="-DWIN32_LEAN_AND_MEAN -q -w-ccc -w-rch -w-aus -w-par -w-inl -c -tWC
-tWM -DOPENSSL_SYSNAME_WIN32 -DL_ENDIAN -DDSO_WIN32 -D_stricmp=stricmp
-D_strnicmp=strnicmp ";
if ($debug)
{
$cflags.="-Od -y -v -vi- -D_DEBUG";