From bdf5e1831780c3744b8280b5c148640f2fdb85c9 Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Sun, 2 Jan 2000 20:46:58 +0000 Subject: [PATCH] Enhanced support for Alpha Linux. See CHANGES for details. --- CHANGES | 8 ++++++++ Configure | 6 ++++++ config | 34 ++++++++++++++++++++++++++++++---- 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index 7362056e04..073e7f92f5 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,14 @@ Changes between 0.9.4 and 0.9.5 [xx XXX 1999] + *) Enhanced support for Alpha Linux is added. Now ./config checks if + the host supports BWX extension and if Compaq C is present on the + $PATH. Just exploiting of the BWX extention results in 20-30% + performance kick for some algorithms, e.g. DES and RC4 to mention + a couple. Compaq C in turn generates ~20% faster code for MD5 and + SHA1. + [Andy Polyakov] + *) Add support for MS "fast SGC". This is arguably a violation of the SSL3/TLS protocol. Netscape SGC does two handshakes: the first with weak crypto and after checking the certificate is SGC a second one diff --git a/Configure b/Configure index fb5a194e24..6fad77b016 100755 --- a/Configure +++ b/Configure @@ -203,6 +203,12 @@ my %table=( "alpha164-cc", "cc:-std1 -tune host -fast -readonly_strings::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK:asm/alpha.o::", "FreeBSD-alpha","gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC2:::", +#### Alpha Linux with GNU C and Compaq C setups +"linux-alpha-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:asm/alpha.o::", +"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:asm/alpha.o::", +"linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:asm/alpha.o::", +"linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:asm/alpha.o::", + # assembler versions -- currently defunct: ##"OpenBSD-alpha","gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown):SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2:asm/alpha.o::", diff --git a/config b/config index cbc2f87f11..32ec4a2584 100755 --- a/config +++ b/config @@ -311,7 +311,7 @@ else fi if [ "$SYSTEM" = "SunOS" ]; then - # assume output is "blah-blah C x.x" + # check for WorkShop C, expected output is "cc: blah-blah C x.x" CCVER=`(cc -V 2>&1) 2>/dev/null | \ egrep -e '^cc: .* C [0-9]\.[0-9]' | \ sed 's/.* C \([0-9]\)\.\([0-9]\).*/\1\2/'` @@ -328,6 +328,19 @@ if [ "$SYSTEM" = "SunOS" ]; then fi fi +if [ "${SYSTEM}-${MACHINE}" = "Linux-alpha" ]; then + # check for Compaq C, expected output is "blah-blah C Vx.x" + CCCVER=`(ccc -V 2>&1) 2>/dev/null | \ + egrep -e '.* C V[0-9]\.[0-9]' | \ + sed 's/.* C V\([0-9]\)\.\([0-9]\).*/\1\2/'` + CCCVER=${CCCVER:-0} + if [ $CCCVER -gt 60 ]; then + CC=ccc # overrides gcc!!! well, ccc outperforms inoticeably + # only on hash routines and des, otherwise gcc (2.95) + # keeps along rather tight... + fi +fi + GCCVER=${GCCVER:-0} CCVER=${CCVER:-0} @@ -340,9 +353,6 @@ echo Operating system: $GUESSOS # script above so we end up with values in vars but that would take # more time that I want to waste at the moment case "$GUESSOS" in - alpha-*-linux2) OUT="alpha-gcc" ;; - ppc-*-linux2) OUT="linux-ppc" ;; - mips-*-linux?) OUT="linux-mips" ;; mips2-sgi-irix) CPU=`(hinv -t cpu) 2>/dev/null | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'` CPU=${CPU:-0} @@ -369,6 +379,22 @@ case "$GUESSOS" in options="$options -mips4" OUT="irix-mips3-$CC" ;; + alpha-*-linux2) + ISA=`awk '/cpu model/{print$4}' /proc/cpuinfo` + case ${ISA:-generic} in + *[67]) OUT="linux-alpha+bwx-$CC" ;; + *) OUT="linux-alpha-$CC" ;; + esac + if [ "$CC" = "gcc" ]; then + case ${ISA:-generic} in + EV5|EV45) options="$options -mcpu=ev5";; + EV56|PCA56) options="$options -mcpu=ev56";; + EV6|EV67|PCA57) options="$options -mcpu=ev6";; + esac + fi + ;; + mips-*-linux?) OUT="linux-mips" ;; + ppc-*-linux2) OUT="linux-ppc" ;; sparc64-*-linux2) #Before we can uncomment following lines we have to wait at least #till 64-bit glibc for SPARC is operational:-( -- 2.25.1