Fix bug in x86unix.pl introduced in latest update.
[openssl.git] / crypto / perlasm / x86asm.pl
index bbbc1cb91a298f48e25f6f1c36248407ddbc0b74..8438824a23e7b5c0468db79fdccaeb36538031f2 100644 (file)
@@ -18,36 +18,47 @@ sub main'asm_init
        ($type,$fn,$i386)=@_;
        $filename=$fn;
 
-       $cpp=$sol=$aout=$win32=0;
+       $elf=$cpp=$coff=$aout=$win32=$netware=$mwerks=0;
        if (    ($type eq "elf"))
-               { require "x86unix.pl"; }
+               { $elf=1; require "x86unix.pl"; }
        elsif ( ($type eq "a.out"))
                { $aout=1; require "x86unix.pl"; }
-       elsif ( ($type eq "sol"))
-               { $sol=1; require "x86unix.pl"; }
+       elsif ( ($type eq "coff" or $type eq "gaswin"))
+               { $coff=1; require "x86unix.pl"; }
        elsif ( ($type eq "cpp"))
                { $cpp=1; require "x86unix.pl"; }
        elsif ( ($type eq "win32"))
                { $win32=1; require "x86ms.pl"; }
+       elsif ( ($type eq "win32n"))
+               { $win32=1; require "x86nasm.pl"; }
+       elsif ( ($type eq "nw-nasm"))
+               { $netware=1; require "x86nasm.pl"; }
+       elsif ( ($type eq "nw-mwasm"))
+               { $netware=1; $mwerks=1; require "x86nasm.pl"; }
        else
                {
                print STDERR <<"EOF";
 Pick one target type from
-       elf     - linux, FreeBSD etc
-       a.out   - old linux
-       sol     - x86 solaris
-       cpp     - format so x86unix.cpp can be used
+       elf     - Linux, FreeBSD, Solaris x86, etc.
+       a.out   - OpenBSD, DJGPP, etc.
+       coff    - GAS/COFF such as Win32 targets
        win32   - Windows 95/Windows NT
+       win32n  - Windows 95/Windows NT NASM format
+       nw-nasm - NetWare NASM format
+       nw-mwasm- NetWare Metrowerks Assembler
 EOF
                exit(1);
                }
 
+       $pic=0;
+       for (@ARGV) {   $pic=1 if (/\-[fK]PIC/i);       }
+
        &asm_init_output();
 
 &comment("Don't even think of reading this code");
 &comment("It was automatically generated by $filename");
 &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, COFF, Win32, ...");
 &comment("eric <eay\@cryptsoft.com>");
 &comment("");
 
@@ -82,6 +93,12 @@ $tmp
 #ifdef OUT
 #define OK     1
 #define ALIGN  4
+#if defined(__CYGWIN__) || defined(__DJGPP__) || defined(__MINGW32__)
+#undef SIZE
+#undef TYPE
+#define SIZE(a,b)
+#define TYPE(a,b)      .def a; .scl 2; .type 32; .endef
+#endif /* __CYGWIN || __DJGPP */
 #endif
 
 #if defined(BSDI) && !defined(ELF)