Commit daec9a56 authored by Andy Polyakov's avatar Andy Polyakov
Browse files

aix updates from HEAD.

parent 5c77786a
Loading
Loading
Loading
Loading
+7 −106
Original line number Diff line number Diff line
@@ -6,9 +6,7 @@ eval 'exec perl -S $0 ${1+"$@"}'
##

require 5.000;
eval 'use strict;';

print STDERR "Warning: perl module strict not found.\n" if ($@);
use strict;

# see INSTALL for instructions.

@@ -404,12 +402,12 @@ my %table=(

#### IBM's AIX.
"aix3-cc",  "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::",
"aix-gcc",  "gcc:-O -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:",
"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn::::::-X64",
"aix-gcc",  "gcc:-O -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-maix64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64",
# Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE
# at build time. $OBJECT_MODE is respected at ./config stage!
"aix-cc",   "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384::-qthreaded:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-q32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-q64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
"aix-cc",   "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-q32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-q64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",

#
# Cray T90 and similar (SDSC)
@@ -564,11 +562,6 @@ my $prefix="";
my $openssldir="";
my $exe_ext="";
my $install_prefix="";
my $fipslibdir="/usr/local/ssl/lib/";
my $nofipscanistercheck=0;
my $fipsdso=0;
my $fipscanisterinternal="n";
my $baseaddr="0xFB00000";
my $no_threads=0;
my $threads=0;
my $no_shared=0; # but "no-shared" is default
@@ -591,7 +584,6 @@ my $rc2 ="crypto/rc2/rc2.h";
my $bf	="crypto/bf/bf_locl.h";
my $bn_asm	="bn_asm.o";
my $des_enc="des_enc.o fcrypt_b.o";
my $fips_des_enc="fips_des_enc.o";
my $aes_enc="aes_core.o aes_cbc.o";
my $bf_enc	="bf_enc.o";
my $cast_enc="c_enc.o";
@@ -603,7 +595,6 @@ my $rmd160_obj="";
my $processor="";
my $default_ranlib;
my $perl;
my $fips=0;


# All of the following is disabled by default (RC5 was enabled before 0.9.8):
@@ -727,36 +718,12 @@ PROCESS_ARGS:
			}
		elsif (/^386$/)
			{ $processor=386; }
		elsif (/^fips$/)
			{
			$fips=1;
		        }
		elsif (/^rsaref$/)
			{
			# No RSAref support any more since it's not needed.
			# The check for the option is there so scripts aren't
			# broken
			}
		elsif (/^nofipscanistercheck$/)
			{
			$fips = 1;
			$nofipscanistercheck = 1;
			}
		elsif (/^fipscanisterbuild$/)
			{
			$fips = 1;
			$nofipscanistercheck = 1;
			$fipslibdir="";
			$fipscanisterinternal="y";
			}
		elsif (/^fipsdso$/)
			{
			$fips = 1;
			$nofipscanistercheck = 1;
			$fipslibdir="";
			$fipscanisterinternal="y";
			$fipsdso = 1;
			}
		elsif (/^[-+]/)
			{
			if (/^-[lL](.*)$/)
@@ -955,8 +922,6 @@ my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds;

$IsMK1MF=1 if ($target eq "mingw" && $^O ne "cygwin" && !is_msys());

$no_shared = 0 if ($fipsdso && !$IsMK1MF);

$exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target eq "mingw");
$exe_ext=".pm"  if ($target =~ /vos/);
$openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
@@ -1222,27 +1187,6 @@ $bn_obj = $bn_asm unless $bn_obj ne "";
$cflags.=" -DOPENSSL_BN_ASM_PART_WORDS" if ($bn_obj =~ /bn86/);
$cflags.=" -DOPENSSL_IA32_SSE2" if (!$no_sse2 && $bn_obj =~ /bn86/);

my $fips_des_obj;
my $fips_aes_obj;
my $fips_sha1_obj;
if ($fips)
	{
	if ($des_obj =~ /\-elf\.o$/)
		{
		$fips_des_obj='asm/fips-dx86-elf.o';
		$openssl_other_defines.="#define OPENSSL_FIPS_DES_ASM\n";
		$fips_aes_obj='asm/fips-ax86-elf.o';
		$openssl_other_defines.="#define OPENSSL_FIPS_AES_ASM\n";
		}
	else	{
		$fips_des_obj=$fips_des_enc;
		$fips_aes_obj='fips_aes_core.o';
		}
	$fips_sha1_obj='asm/fips-sx86-elf.o' if ($sha1_obj =~ /\-elf\.o$/);
	$des_obj=$sha1_obj=$aes_obj="";
	$openssl_other_defines.="#define OPENSSL_FIPS\n";
	}

$des_obj=$des_enc	unless ($des_obj =~ /\.o$/);
$bf_obj=$bf_enc		unless ($bf_obj =~ /\.o$/);
$cast_obj=$cast_enc	unless ($cast_obj =~ /\.o$/);
@@ -1353,8 +1297,6 @@ while (<IN>)
	s/^EXE_EXT=.*$/EXE_EXT= $exe_ext/;
	s/^CPUID_OBJ=.*$/CPUID_OBJ= $cpuid_obj/;
	s/^BN_ASM=.*$/BN_ASM= $bn_obj/;
	s/^FIPS_DES_ENC=.*$/FIPS_DES_ENC= $fips_des_obj/;
	s/^FIPS_AES_ENC=.*$/FIPS_AES_ENC= $fips_aes_obj/;
	s/^DES_ENC=.*$/DES_ENC= $des_obj/;
	s/^AES_ASM_OBJ=.*$/AES_ASM_OBJ= $aes_obj/;
	s/^BF_ENC=.*$/BF_ENC= $bf_obj/;
@@ -1363,7 +1305,6 @@ while (<IN>)
	s/^RC5_ENC=.*$/RC5_ENC= $rc5_obj/;
	s/^MD5_ASM_OBJ=.*$/MD5_ASM_OBJ= $md5_obj/;
	s/^SHA1_ASM_OBJ=.*$/SHA1_ASM_OBJ= $sha1_obj/;
	s/^FIPS_SHA1_ASM_OBJ=.*$/FIPS_SHA1_ASM_OBJ= $fips_sha1_obj/;
	s/^RMD160_ASM_OBJ=.*$/RMD160_ASM_OBJ= $rmd160_obj/;
	s/^PROCESSOR=.*/PROCESSOR= $processor/;
	s/^RANLIB=.*/RANLIB= $ranlib/;
@@ -1373,24 +1314,9 @@ while (<IN>)
	s/^LIBKRB5=.*/LIBKRB5=$withargs{"krb5-lib"}/;
	s/^LIBZLIB=.*/LIBZLIB=$withargs{"zlib-lib"}/;
	s/^ZLIB_INCLUDE=.*/ZLIB_INCLUDE=$withargs{"zlib-include"}/;
	s/^FIPSLIBDIR=.*/FIPSLIBDIR=$fipslibdir/;
	if ($fipsdso)
		{
		s/^FIPSCANLIB=.*/FIPSCANLIB=libfips/;
		s/^SHARED_FIPS=.*/SHARED_FIPS=libfips\$(SHLIB_EXT)/;
		s/^SHLIBDIRS=.*/SHLIBDIRS= crypto ssl fips/;
		}
	else
		{
		s/^FIPSCANLIB=.*/FIPSCANLIB=libcrypto/ if $fips;
		s/^SHARED_FIPS=.*/SHARED_FIPS=/;
		s/^SHLIBDIRS=.*/SHLIBDIRS= crypto ssl/;
		}
	s/^FIPSCANISTERINTERNAL=.*/FIPSCANISTERINTERNAL=$fipscanisterinternal/;
	s/^BASEADDR=.*/BASEADDR=$baseaddr/;
	s/^SHLIB_TARGET=.*/SHLIB_TARGET=$shared_target/;
	s/^SHLIB_MARK=.*/SHLIB_MARK=$shared_mark/;
	s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL) \$(SHARED_FIPS)/ if (!$no_shared);
	s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL)/ if (!$no_shared);
	if ($shared_extension ne "" && $shared_extension =~ /^\.s([ol])\.[^\.]*$/)
		{
		my $sotmp = $1;
@@ -1685,16 +1611,9 @@ BEGIN
    BEGIN
	BLOCK "040904b0"
	BEGIN
#if defined(FIPS)
	    VALUE "Comments", "WARNING: TEST VERSION ONLY ***NOT*** FIPS 140-2 VALIDATED.\\0"
#endif
	    // Required:	    
	    VALUE "CompanyName", "The OpenSSL Project, http://www.openssl.org/\\0"
#if defined(FIPS)
	    VALUE "FileDescription", "TEST UNVALIDATED FIPS140-2 DLL\\0"
#else
	    VALUE "FileDescription", "OpenSSL Shared Library\\0"
#endif
	    VALUE "FileVersion", "$version\\0"
#if defined(CRYPTO)
	    VALUE "InternalName", "libeay32\\0"
@@ -1702,15 +1621,12 @@ BEGIN
#elif defined(SSL)
	    VALUE "InternalName", "ssleay32\\0"
	    VALUE "OriginalFilename", "ssleay32.dll\\0"
#elif defined(FIPS)
	    VALUE "InternalName", "libosslfips\\0"
	    VALUE "OriginalFilename", "libosslfips.dll\\0"
#endif
	    VALUE "ProductName", "The OpenSSL Toolkit\\0"
	    VALUE "ProductVersion", "$version\\0"
	    // Optional:
	    //VALUE "Comments", "\\0"
	    VALUE "LegalCopyright", "Copyright  1998-2007 The OpenSSL Project. Copyright  1995-1998 Eric A. Young, Tim J. Hudson. All rights reserved.\\0"
	    VALUE "LegalCopyright", "Copyright  1998-2005 The OpenSSL Project. Copyright  1995-1998 Eric A. Young, Tim J. Hudson. All rights reserved.\\0"
	    //VALUE "LegalTrademarks", "\\0"
	    //VALUE "PrivateBuild", "\\0"
	    //VALUE "SpecialBuild", "\\0"
@@ -1747,21 +1663,6 @@ libraries on this platform, they will at least look at it and try their best
(but please first make sure you have tried with a current version of OpenSSL).
EOF

print <<\EOF if ($fipscanisterinternal eq "y");

WARNING: OpenSSL has been configured using unsupported option(s) to internally
generate a fipscanister.o object module for TESTING PURPOSES ONLY; that
compiled module is NOT FIPS 140-2 validated and CANNOT be used to replace the
OpenSSL FIPS Object Module as identified by the CMVP
(http://csrc.nist.gov/cryptval/) in any application requiring the use of FIPS
140-2 validated software. 

This is an OpenSSL 0.9.8-fips test version.

See the file README.FIPS for details of how to build a test library.

EOF

exit(0);

sub usage
+7 −9
Original line number Diff line number Diff line
@@ -144,9 +144,7 @@ LINK_SO_A_UNPACKED= \
  SHOBJECTS=$$UNPACKDIR/*.o; \
  $(LINK_SO) && rm -rf $$UNPACKDIR

# NB: force pass-through in case we are calling through fipsld.

DETECT_GNU_LD=(FIPSLD_NPT="" FIPSLD_LIBFIPS="" ${CC} -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null
DETECT_GNU_LD=(${CC} -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null

DO_GNU_SO=$(CALC_VERSIONS); \
	SHLIB=lib$(LIBNAME).so; \
@@ -487,26 +485,26 @@ link_app.hpux:

link_o.aix:
	@ $(CALC_VERSIONS); \
	OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]\([0-9]*\)'`; \
	OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]*\(64\)'` || :; \
	OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
	SHLIB=lib$(LIBNAME).so; \
	SHLIB_SUFFIX=; \
	ALLSYMSFLAGS=''; \
	NOALLSYMSFLAGS=''; \
	SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -G -bexpall -bnolibpath -bM:SRE'; \
	$(LINK_SO_O); rm -rf lib$(LIBNAME).exp
	SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-G,-bexpall,-bnolibpath,-bM:SRE'; \
	$(LINK_SO_O);
link_a.aix:
	@ $(CALC_VERSIONS); \
	OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]\([0-9]*\)'`; \
	OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]*\(64\)'` || : ; \
	OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
	SHLIB=lib$(LIBNAME).so; \
	SHLIB_SUFFIX=; \
	ALLSYMSFLAGS='-bnogc'; \
	NOALLSYMSFLAGS=''; \
	SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -G -bexpall -bnolibpath -bM:SRE'; \
	SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-G,-bexpall,-bnolibpath,-bM:SRE'; \
	$(LINK_SO_A_VIA_O)
link_app.aix:
	LDFLAGS="$(CFLAGS) -brtl -blibpath:$(LIBRPATH):$${LIBPATH:-/usr/lib:/lib}"; \
	LDFLAGS="$(CFLAGS) -Wl,-brtl,-blibpath:$(LIBRPATH):$${LIBPATH:-/usr/lib:/lib}"; \
	$(LINK_APP)

link_o.reliantunix:
+8 −8
Original line number Diff line number Diff line
@@ -677,7 +677,7 @@ $arflags =

*** aix-cc
$cc           = cc
$cflags       = -q32 -O -DB_ENDIAN -qmaxmem=16384
$cflags       = -q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst
$unistd       = 
$thread_cflag = -qthreaded
$sys_id       = AIX
@@ -722,12 +722,12 @@ $rc4_obj =
$rmd160_obj   = 
$rc5_obj      = 
$dso_scheme   = dlfcn
$shared_target= 
$shared_target= aix-shared
$shared_cflag = 
$shared_ldflag = 
$shared_extension = 
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib       = 
$arflags      = 
$arflags      = -X 32

*** aix3-cc
$cc           = cc
@@ -758,7 +758,7 @@ $arflags =

*** aix64-cc
$cc           = cc
$cflags       = -q64 -O -DB_ENDIAN -qmaxmem=16384
$cflags       = -q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst
$unistd       = 
$thread_cflag = -qthreaded
$sys_id       = AIX
@@ -803,10 +803,10 @@ $rc4_obj =
$rmd160_obj   = 
$rc5_obj      = 
$dso_scheme   = dlfcn
$shared_target= 
$shared_target= aix-shared
$shared_cflag = 
$shared_ldflag = 
$shared_extension = 
$shared_ldflag = -maix64
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib       = 
$arflags      = -X64