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";

Reply via email to