Commit 2da0c119 authored by Ulf Möller's avatar Ulf Möller
Browse files

Support assembler for Mingw32.

parent a4709b3d
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -4,6 +4,9 @@


 Changes between 0.9.5 and 0.9.6  [XX XXX 2000]
 Changes between 0.9.5 and 0.9.6  [XX XXX 2000]


  *) Assembler module support for Mingw32.
     [Ulf Möller]

  *) Shared library support for HPUX (in shlib/).
  *) Shared library support for HPUX (in shlib/).
     [Lutz Jaenicke <Lutz.Jaenicke@aet.TU-Cottbus.DE> and Anonymous]
     [Lutz Jaenicke <Lutz.Jaenicke@aet.TU-Cottbus.DE> and Anonymous]


+12 −0
Original line number Original line Diff line number Diff line
@@ -292,6 +292,8 @@ TEST="false"
for i
for i
do
do
case "$i" in 
case "$i" in 
# shared library support (behnke@trustcenter.de)
-shared) SHARED=true;;
-d*) PREFIX="debug-";;
-d*) PREFIX="debug-";;
-t*) TEST="true";;
-t*) TEST="true";;
-h*) TEST="true"; cat <<EOF
-h*) TEST="true"; cat <<EOF
@@ -476,6 +478,16 @@ then
  options="$options -DATALLA"
  options="$options -DATALLA"
fi
fi


#get some basic shared lib support (behnke@trustcenter.de)
case "$OUT" in
   solaris-*-gcc)
	if  [ "$SHARED" = "true" ] 
	 then
	  options="$options -DPIC -fPIC"
        fi
     ;;
esac

# gcc < 2.8 does not support -mcpu=ultrasparc
# gcc < 2.8 does not support -mcpu=ultrasparc
if [ "$OUT" = solaris-sparcv9-gcc -a $GCCVER -lt 28 ]
if [ "$OUT" = solaris-sparcv9-gcc -a $GCCVER -lt 28 ]
then
then
+4 −2
Original line number Original line Diff line number Diff line
@@ -18,11 +18,13 @@ sub main'asm_init
	($type,$fn,$i386)=@_;
	($type,$fn,$i386)=@_;
	$filename=$fn;
	$filename=$fn;


	$cpp=$sol=$aout=$win32=0;
	$cpp=$sol=$aout=$win32=$gaswin=0;
	if (	($type eq "elf"))
	if (	($type eq "elf"))
		{ require "x86unix.pl"; }
		{ require "x86unix.pl"; }
	elsif (	($type eq "a.out"))
	elsif (	($type eq "a.out"))
		{ $aout=1; require "x86unix.pl"; }
		{ $aout=1; require "x86unix.pl"; }
	elsif (	($type eq "gaswin"))
		{ $gaswin=1; $aout=1; require "x86unix.pl"; }
	elsif (	($type eq "sol"))
	elsif (	($type eq "sol"))
		{ $sol=1; require "x86unix.pl"; }
		{ $sol=1; require "x86unix.pl"; }
	elsif (	($type eq "cpp"))
	elsif (	($type eq "cpp"))
@@ -50,7 +52,7 @@ EOF
&comment("Don't even think of reading this code");
&comment("Don't even think of reading this code");
&comment("It was automatically generated by $filename");
&comment("It was automatically generated by $filename");
&comment("Which is a perl program used to generate the x86 assember for");
&comment("Which is a perl program used to generate the x86 assember for");
&comment("any of elf, a.out, BSDI,Win32, or Solaris");
&comment("any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris");
&comment("eric <eay\@cryptsoft.com>");
&comment("eric <eay\@cryptsoft.com>");
&comment("");
&comment("");


+8 −0
Original line number Original line Diff line number Diff line
@@ -292,6 +292,8 @@ EOF
	push(@out,$tmp);
	push(@out,$tmp);
	if ($main'cpp)
	if ($main'cpp)
		{ $tmp=push(@out,"\tTYPE($func,\@function)\n"); }
		{ $tmp=push(@out,"\tTYPE($func,\@function)\n"); }
	elsif ($main'gaswin)
		{ $tmp=push(@out,"\t.def\t$func;\t.scl\t2;\t.type\t32;\t.endef\n"); }
	else	{ $tmp=push(@out,"\t.type\t$func,\@function\n"); }
	else	{ $tmp=push(@out,"\t.type\t$func,\@function\n"); }
	push(@out,"$func:\n");
	push(@out,"$func:\n");
	$tmp=<<"EOF";
	$tmp=<<"EOF";
@@ -320,6 +322,8 @@ EOF
	push(@out,$tmp);
	push(@out,$tmp);
	if ($main'cpp)
	if ($main'cpp)
		{ push(@out,"\tTYPE($func,\@function)\n"); }
		{ push(@out,"\tTYPE($func,\@function)\n"); }
	elsif ($main'gaswin)
		{ $tmp=push(@out,"\t.def\t$func;\t.scl\t2;\t.type\t32;\t.endef\n"); }
	else	{ push(@out,"\t.type	$func,\@function\n"); }
	else	{ push(@out,"\t.type	$func,\@function\n"); }
	push(@out,"$func:\n");
	push(@out,"$func:\n");
	$stack=4;
	$stack=4;
@@ -342,6 +346,8 @@ EOF
	push(@out,$tmp);
	push(@out,$tmp);
	if ($main'cpp)
	if ($main'cpp)
		{ push(@out,"\tSIZE($func,.${func}_end-$func)\n"); }
		{ push(@out,"\tSIZE($func,.${func}_end-$func)\n"); }
	elsif ($main'gaswin)
                { $tmp=push(@out,"\t.align 4\n"); }
	else	{ push(@out,"\t.size\t$func,.${func}_end-$func\n"); }
	else	{ push(@out,"\t.size\t$func,.${func}_end-$func\n"); }
	push(@out,".ident	\"$func\"\n");
	push(@out,".ident	\"$func\"\n");
	$stack=0;
	$stack=0;
@@ -371,6 +377,8 @@ sub main'function_end_B
	push(@out,".L_${func}_end:\n");
	push(@out,".L_${func}_end:\n");
	if ($main'cpp)
	if ($main'cpp)
		{ push(@out,"\tSIZE($func,.L_${func}_end-$func)\n"); }
		{ push(@out,"\tSIZE($func,.L_${func}_end-$func)\n"); }
        elsif ($main'gaswin)
                { push(@out,"\t.align 4\n"); }
	else	{ push(@out,"\t.size\t$func,.L_${func}_end-$func\n"); }
	else	{ push(@out,"\t.size\t$func,.L_${func}_end-$func\n"); }
	push(@out,".ident	\"desasm.pl\"\n");
	push(@out,".ident	\"desasm.pl\"\n");
	$stack=0;
	$stack=0;

ms/mingw32.bat

0 → 100644
+86 −0
Original line number Original line Diff line number Diff line
@rem OpenSSL with Mingw32+GNU as
@rem ---------------------------

perl Configure Mingw32 %1 %2 %3 %4 %5 %6 %7 %8

@echo off
echo Generating x86 for GNU assember

echo Bignum
cd crypto\bn\asm
perl x86.pl gaswin > bn-win32.s
cd ..\..\..

echo DES
cd crypto\des\asm
perl des-586.pl gaswin > d-win32.s
cd ..\..\..

echo crypt
cd crypto\des\asm
perl crypt586.pl gaswin > y-win32.s
cd ..\..\..

echo Blowfish
cd crypto\bf\asm
perl bf-586.pl gaswin > b-win32.s
cd ..\..\..

echo CAST5
cd crypto\cast\asm
perl cast-586.pl gaswin > c-win32.s
cd ..\..\..

echo RC4
cd crypto\rc4\asm
perl rc4-586.pl gaswin > r4-win32.s
cd ..\..\..

echo MD5
cd crypto\md5\asm
perl md5-586.pl gaswin > m5-win32.s
cd ..\..\..

echo SHA1
cd crypto\sha\asm
perl sha1-586.pl gaswin > s1-win32.s
cd ..\..\..

echo RIPEMD160
cd crypto\ripemd\asm
perl rmd-586.pl gaswin > rm-win32.s
cd ..\..\..

echo RC5\32
cd crypto\rc5\asm
perl rc5-586.pl gaswin > r5-win32.s
cd ..\..\..

@rem Makefile
perl util\mkfiles.pl >MINFO
perl util\mk1mf.pl gaswin Mingw32 >ms\mingw32a.mak
perl util\mk1mf.pl gaswin Mingw32-files >ms\mingw32f.mak
@rem DLL definition files
perl util\mkdef.pl 32 libeay >ms\libeay32.def
if errorlevel 1 goto end
perl util\mkdef.pl 32 ssleay >ms\ssleay32.def
if errorlevel 1 goto end

@rem Create files -- this can be skipped if using the GNU file utilities
make -f ms/mingw32f.mak
echo You can ignore the error messages above

@rem Build the libraries
make -f ms/mingw32a.mak
if errorlevel 1 goto end

@rem Generate the DLLs and input libraries
dllwrap --dllname libeay32.dll --output-lib out/libeay32.a --def ms/libeay32.def out/libcrypto.a -lwsock32 -lgdi32
if errorlevel 1 goto end
dllwrap --dllname libssl32.dll --output-lib out/libssl32.a --def ms/ssleay32.def out/libssl.a out/libeay32.a
if errorlevel 1 goto end

echo Done compiling OpenSSL

:end
Loading