Ensure SSL3_FLAGS_CCS_OK (or d1->change_cipher_spec_ok for DTLS) is reset
[oweals/openssl.git] / util / pl / VC-32.pl
index e44ad6171a64633f0d2b24c440cd3b1dcde4034d..852eb30d0aba062b9886b3057be975c14197e47d 100644 (file)
@@ -27,6 +27,8 @@ $zlib_lib="zlib1.lib";
 $l_flags =~ s/-L("\[^"]+")/\/libpath:$1/g;
 $l_flags =~ s/-L(\S+)/\/libpath:$1/g;
 
+my $ff = "";
+
 # C compiler stuff
 $cc='cl';
 if ($FLAVOR =~ /WIN64/)
@@ -43,7 +45,7 @@ if ($FLAVOR =~ /WIN64/)
     # considered safe to ignore.
     # 
     $base_cflags= " $mf_cflag";
-    my $f = $shlib?' /MD':' /MT';
+    my $f = $shlib || $fips ?' /MD':' /MT';
     $opt_cflags=$f.' /Ox';
     $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
     $lflags="/nologo /subsystem:console /opt:ref";
@@ -86,7 +88,7 @@ elsif ($FLAVOR =~ /CE/)
     $wcetgt = $ENV{'TARGETCPU'};       # just shorter name...
     SWITCH: for($wcetgt) {
        /^X86/          && do { $wcecdefs.=" -Dx86 -D_X86_ -D_i386_ -Di_386_";
-                               $wcelflag.=" /machine:IX86";    last; };
+                               $wcelflag.=" /machine:X86";     last; };
        /^ARMV4[IT]/    && do { $wcecdefs.=" -DARM -D_ARM_ -D$wcetgt";
                                $wcecdefs.=" -DTHUMB -D_THUMB_" if($wcetgt=~/T$/);
                                $wcecdefs.=" -QRarch4T -QRinterwork-return";
@@ -111,13 +113,13 @@ elsif ($FLAVOR =~ /CE/)
          $wcelflag.=" /machine:$wcetgt";                       last; };
     }
 
-    $cc='$(CC)';
+    $cc=($ENV{CC} or "cl");
     $base_cflags=' /W3 /WX /GF /Gy /nologo -DUNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -DOPENSSL_SMALL_FOOTPRINT';
     $base_cflags.=" $wcecdefs";
     $base_cflags.=' -I$(WCECOMPAT)/include'            if (defined($ENV{'WCECOMPAT'}));
     $base_cflags.=' -I$(PORTSDK_LIBPATH)/../../include'        if (defined($ENV{'PORTSDK_LIBPATH'}));
     if (`$cc 2>&1` =~ /Version ([0-9]+)\./ && $1>=14) {
-       $base_cflags.=($shlib and !$fipscanisterbuild)?' /MD':' /MT';
+       $base_cflags.=$shlib?' /MD':' /MT';
     } else {
        $base_cflags.=' /MC';
     }
@@ -128,12 +130,13 @@ elsif ($FLAVOR =~ /CE/)
 else   # Win32
     {
     $base_cflags= " $mf_cflag";
-    my $f = $shlib?' /MD':' /MT';
+    my $f = $shlib || $fips ?' /MD':' /MT';
+    $ff = "/fixed";
     $opt_cflags=$f.' /Ox /O2 /Ob2';
     $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
     $lflags="/nologo /subsystem:console /opt:ref";
     }
-$lib_cflags='/Zl' if (!$shlib);        # remove /DEFAULTLIBs from static lib
+$lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib
 $mlflags='';
 
 $out_def ="out32";     $out_def.="dll"                 if ($shlib);
@@ -166,14 +169,26 @@ $rsc="rc";
 $efile="/out:";
 $exep='.exe';
 if ($no_sock)          { $ex_libs=''; }
-elsif ($FLAVOR =~ /CE/)        { $ex_libs='winsock.lib'; }
+elsif ($FLAVOR =~ /CE/)        { $ex_libs='ws2.lib'; }
 else                   { $ex_libs='ws2_32.lib'; }
 
 if ($FLAVOR =~ /CE/)
        {
-       $ex_libs.=' $(WCECOMPAT)/lib/wcecompatex.lib'   if (defined($ENV{'WCECOMPAT'}));
+       $ex_libs.=' crypt32.lib';       # for e_capi.c
+       if (defined($ENV{WCECOMPAT}))
+               {
+               $ex_libs.= ' $(WCECOMPAT)/lib';
+               if (-f "$ENV{WCECOMPAT}/lib/$ENV{TARGETCPU}/wcecompatex.lib")
+                       {
+                       $ex_libs.='/$(TARGETCPU)/wcecompatex.lib';
+                       }
+               else
+                       {
+                       $ex_libs.='/wcecompatex.lib';
+                       }
+               }
        $ex_libs.=' $(PORTSDK_LIBPATH)/portlib.lib'     if (defined($ENV{'PORTSDK_LIBPATH'}));
-       $ex_libs.=' /nodefaultlib:oldnames.lib coredll.lib corelibc.lib' if ($ENV{'TARGETCPU'} eq "X86");
+       $ex_libs.=' /nodefaultlib coredll.lib corelibc.lib' if ($ENV{'TARGETCPU'} eq "X86");
        }
 else
        {
@@ -322,7 +337,7 @@ sub do_lib_rule
                        $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n";
                        $ret.="\tSET FIPS_TARGET=$target\n";
                        $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n";
-                       $ret.="\t\$(FIPSLINK) \$(MLFLAGS) /map $base_arg $efile$target ";
+                       $ret.="\t\$(FIPSLINK) \$(MLFLAGS) $ff /map $base_arg $efile$target ";
                        $ret.="$name @<<\n  \$(SHLIB_EX_OBJ) $objs \$(EX_LIBS) ";
                        $ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n<<\n";
                        }
@@ -359,7 +374,7 @@ sub do_link_rule
                $ret.="\tSET FIPS_TARGET=$target\n";
                $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n";
                $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n";
-               $ret.="\t\$(FIPSLINK) \$(LFLAGS) /map $efile$target @<<\n";
+               $ret.="\t\$(FIPSLINK) \$(LFLAGS) $ff /map $efile$target @<<\n";
                $ret.="\t\$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n<<\n";
                }
        else