diff --git a/CHANGES b/CHANGES index 68ba5471dc838a20076f3d1e2bad18fb67302d8d..a418fd8d77dad2138415cf97c9dee0e394083a59 100644 --- a/CHANGES +++ b/CHANGES @@ -5,6 +5,12 @@ Changes between 0.9.2b and 0.9.3 + *) Accept any -xxx and +xxx compiler options in Configure. + [Ulf Möller] + + *) Update HPUX configuration. + [Anonymous] + *) Add missing sk__unshift() function to safestack.h [Ralf S. Engelschall] diff --git a/Configure b/Configure index b02026e5245a5f68e1b3177554de71ae0e4c22fb..834e837cff9b5632a63d5563dff8c6ea25683428 100755 --- a/Configure +++ b/Configure @@ -30,7 +30,7 @@ my $usage="Usage: Configure [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [rsaref] [no # no-asm do not use assembler # 386 generate 80386 code # no- build without specified algorithm (rsa, idea, rc5, ...) -# -D, -L, -l, -f, -K: compiler options are passed through +# - + compiler options are passed through # # DES_PTR use pointer lookup vs arrays in the DES in crypto/des/des_locl.h # DES_RISC1 use different DES_ENCRYPT macro that helps reduce register @@ -136,14 +136,17 @@ my %table=( # This is the n64 mode build. "irix-n64-cc", "cc:-64 -O2 -use_readonly_const -DTERMIOS:(unknown)::DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT:::", -# HPUX config. I've been building on HPUX 9, so the options may be -# different on version 10. -"hpux-cc", "cc:-DB_ENDIAN -D_HPUX_SOURCE -Aa -Ae +ESlit +O4 -Wl,-a,archive:(unknown)::DES_PTR DES_UNROLL DES_RISC1:::", -##"hpux-kr-cc", "cc:-DB_ENDIAN -DNOCONST -DNOPROTO -D_HPUX_SOURCE:(unknown)::DES_PTR DES_UNROLL:::", -"hpux-gcc", "gcc:-DB_ENDIAN -O3:(unknown)::BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::", -# HPUX from www.globus.org -"hpux11-32bit-cc","cc:+DA2.0 -DB_ENDIAN -D_HPUX_SOURCE -Aa -Ae +ESlit:(unknown)::DES_PTR DES_UNROLL DES_RISC1:::", -"hpux11-64bit-cc","cc:+DA2.0W -g -D_HPUX_SOURCE -Aa -Ae +ESlit:(unknown)::SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT :::", +# HPUX 9.X config. +# Don't use the bundled cc. It is broken. Use HP ANSI C if possible, or gcc. +"hpux-cc", "cc:-DB_ENDIAN -DBN_DIV2W -Ae +ESlit +O4 -z:(unknown)::BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::", +"hpux-gcc", "gcc:-DB_ENDIAN -DBN_DIV2W -O3:(unknown)::BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::", +# HPUX 10.X config. Supports threads. +"hpux10-cc", "cc:-DB_ENDIAN -DBN_DIV2W -Ae +ESlit +O4 -z:-D_REENTRANT::BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::", +"hpux10-gcc", "gcc:-DB_ENDIAN -DBN_DIV2W -O3:-D_REENTRANT::BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::", +# HPUX 11.X from www.globus.org. +# Only works on PA-RISC 2.0 cpus, and not optimized. Why? +"hpux11-32bit-cc","cc:+DA2.0 -DB_ENDIAN -D_HPUX_SOURCE -Aa -Ae +ESlit:-D_REENTRANT::DES_PTR DES_UNROLL DES_RISC1:::", +"hpux11-64bit-cc","cc:+DA2.0W -g -D_HPUX_SOURCE -Aa -Ae +ESlit:-D_REENTRANT::SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT :::", # Dec Alpha, OSF/1 - the alpha164-cc is the flags for a 21164A with # the new compiler @@ -319,7 +322,7 @@ foreach (@ARGV) { $libs.=$_." "; } - elsif (/^-[DfK](.*)$/) + elsif (/^-[^-]/ or /^\+/) { $flags.=$_." "; } diff --git a/config b/config index 5f3446b05128dcf449919542a6fa47b3c1274cf5..eec90a34567b649bd47711d978789453b7b894c3 100755 --- a/config +++ b/config @@ -82,8 +82,11 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in HP-UX:*) HPUXVER=`echo ${RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "$HPUXVER" in + 11.*) + echo "${MACHINE}-hp-hpux11"; exit 0 + ;; 10.*) - echo "${MACHINE}-hp-hpux10."; exit 0 + echo "${MACHINE}-hp-hpux10"; exit 0 ;; *) echo "${MACHINE}-hp-hpux"; exit 0 @@ -310,8 +313,8 @@ case "$GUESSOS" in *-*-osf) OUT="alpha-cc" ;; *-*-unixware*) OUT="unixware-2.0" ;; *-sni-sysv4) OUT="SINIX" ;; - *-hpux*) OUT="hpux-$CC" ;; # these are all covered by the catchall below + # *-hpux*) OUT="hpux-$CC" ;; # *-aix) OUT="aix-$CC" ;; # *-dgux) OUT="dgux" ;; *) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;; diff --git a/crypto/asn1/a_gentm.c b/crypto/asn1/a_gentm.c index c5d378fb1ad284f5dd4b809a91d08be75604742e..be8570c30251c8174710476606f8235f2ca7dc7d 100644 --- a/crypto/asn1/a_gentm.c +++ b/crypto/asn1/a_gentm.c @@ -183,9 +183,10 @@ ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, return(NULL); #if defined(THREADS) && !defined(WIN32) - ts=(struct tm *)gmtime_r(&t,&data); + gmtime_r(&t,&data); + ts=&data; #else - ts=(struct tm *)gmtime(&t); + ts=gmtime(&t); #endif p=(char *)s->data; if ((p == NULL) || (s->length < 16)) diff --git a/crypto/asn1/a_time.c b/crypto/asn1/a_time.c index 19bfdda7c432811f3cb14d83b963ff89b48e40f1..848688b7dbd6aa6df969bbd7e12beaf89fa6a5a2 100644 --- a/crypto/asn1/a_time.c +++ b/crypto/asn1/a_time.c @@ -97,9 +97,10 @@ ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t) #endif #if defined(THREADS) && !defined(WIN32) - ts=(struct tm *)gmtime_r(&t,&data); + gmtime_r(&t,&data); + ts=&data; #else - ts=(struct tm *)gmtime(&t); + ts=gmtime(&t); #endif if((ts->tm_year >= 1950) && (ts->tm_year < 2050)) return ASN1_UTCTIME_set(s, t); diff --git a/crypto/asn1/a_utctm.c b/crypto/asn1/a_utctm.c index 0fa8ae2ba7a844349833716d76aa8f36860ea6c0..ebc6e384c1c3eeb7849c9e34fcd55692e476351f 100644 --- a/crypto/asn1/a_utctm.c +++ b/crypto/asn1/a_utctm.c @@ -177,9 +177,10 @@ ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t) return(NULL); #if defined(THREADS) && !defined(WIN32) - ts=(struct tm *)gmtime_r(&t,&data); + gmtime_r(&t,&data); + ts=&data; #else - ts=(struct tm *)gmtime(&t); + ts=gmtime(&t); #endif p=(char *)s->data; if ((p == NULL) || (s->length < 14))