--- hammerhead-2.1.3.orig/config.sub +++ hammerhead-2.1.3/config.sub @@ -1,6 +1,11 @@ #! /bin/sh -# Configuration validation subroutine script, version 1.1. -# Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc. +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011 Free Software Foundation, Inc. + +timestamp='2011-03-23' + # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. @@ -17,19 +22,26 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. + +# Please send patches to . Submit a context +# diff and a properly formatted GNU ChangeLog entry. +# # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. @@ -45,30 +57,78 @@ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. -if [ x$1 = x ] -then - echo Configuration name missing. 1>&2 - echo "Usage: $0 CPU-MFR-OPSYS" 1>&2 - echo "or $0 ALIAS" 1>&2 - echo where ALIAS is a recognized configuration type. 1>&2 - exit 1 -fi +me=`echo "$0" | sed -e 's,.*/,,'` -# First pass through any local machine types. -case $1 in - *local*) - echo $1 - exit 0 - ;; - *) - ;; +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free +Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - linux-gnu*) + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -94,15 +154,40 @@ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple) + -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; -hiux*) os=-hiuxwe2 ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco5) - os=sco3.2v5 + os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) @@ -117,10 +202,17 @@ # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -143,26 +235,113 @@ -psos*) os=-psos ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. - tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \ - | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \ - | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 | hppa2.0 \ - | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \ - | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \ - | mips64 | mipsel | mips64el | mips64orion | mips64orionel \ - | mipstx39 | mipstx39el \ - | sparc | sparclet | sparclite | sparc64 | v850) + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 \ + | ns16k | ns32k \ + | open8 \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ + | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) basic_machine=$basic_machine-unknown ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | picochip) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. - i[34567]86) + i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. @@ -171,27 +350,101 @@ exit 1 ;; # Recognize the basic CPU types with company name. - vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \ - | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \ - | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ - | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \ - | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* \ - | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \ - | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \ - | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ - | sparc64-* | mips64-* | mipsel-* \ - | mips64el-* | mips64orion-* | mips64orionel-* \ - | mipstx39-* | mipstx39el-* \ - | f301-*) + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ + | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile-* | tilegx-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; alliant | fx80) basic_machine=fx80-alliant ;; @@ -202,25 +455,39 @@ basic_machine=a29k-none os=-bsd ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) - basic_machine=m68k-cbm + basic_machine=m68k-unknown ;; amigaos | amigados) - basic_machine=m68k-cbm + basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) - basic_machine=m68k-cbm + basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; aux) basic_machine=m68k-apple os=-aux @@ -229,6 +496,35 @@ basic_machine=ns32k-sequent os=-dynix ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; convex-c1) basic_machine=c1-convex os=-bsd @@ -249,27 +545,45 @@ basic_machine=c38-convex os=-bsd ;; - cray | ymp) - basic_machine=ymp-cray - os=-unicos - ;; - cray2) - basic_machine=cray2-cray + cray | j90) + basic_machine=j90-cray os=-unicos ;; - [ctj]90-cray) - basic_machine=c90-cray - os=-unicos + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf ;; crds | unos) basic_machine=m68k-crds ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola @@ -278,6 +592,14 @@ basic_machine=m88k-motorola os=-sysv3 ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx @@ -297,6 +619,10 @@ encore | umax | mmax) basic_machine=ns32k-encore ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; fx2800) basic_machine=i860-alliant ;; @@ -307,6 +633,10 @@ basic_machine=tron-gmicro os=-sysv ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 @@ -315,6 +645,14 @@ basic_machine=h8300-hitachi os=-hms ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; harris) basic_machine=m88k-harris os=-sysv3 @@ -330,13 +668,30 @@ basic_machine=m68k-hp os=-hpux ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; - hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7) + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) @@ -345,27 +700,42 @@ hppa-next) os=-nextstep3 ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; i370-ibm* | ibm*) basic_machine=i370-ibm - os=-mvs ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? - i[34567]86v32) + i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; - i[34567]86v4*) + i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; - i[34567]86v) + i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; - i[34567]86sol2) + i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; iris | iris4d) basic_machine=mips-sgi case $os in @@ -380,6 +750,14 @@ basic_machine=m68k-isi os=-sysv ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; m88k-omron*) basic_machine=m88k-omron ;; @@ -391,16 +769,23 @@ basic_machine=ns32k-utek os=-sysv ;; + microblaze) + basic_machine=microblaze-xilinx + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; miniframe) basic_machine=m68000-convergent ;; - mipsel*-linux*) - basic_machine=mipsel-unknown - os=-linux-gnu - ;; - mips*-linux*) - basic_machine=mips-unknown - os=-linux-gnu + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` @@ -408,10 +793,37 @@ mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos @@ -424,6 +836,10 @@ basic_machine=mips-sony os=-newsos ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; next | m*-next ) basic_machine=m68k-next case $os in @@ -449,9 +865,45 @@ basic_machine=i960-intel os=-nindy ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; np1) basic_machine=np1-gould ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 @@ -460,57 +912,124 @@ basic_machine=i860-intel os=-osf ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; - pc532 | pc532-*) + pc532 | pc532-*) basic_machine=ns32k-pc532 ;; - pentium | p5 | k5 | nexen) + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; - pentiumpro | p6 | k6 | 6x86) + pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; - pentiumii | pentium2) + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) basic_machine=i786-pc ;; - pentium-* | p5-* | k5-* | nexen-*) + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - pentiumpro-* | p6-* | k6-* | 6x86-*) + pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - pentiumii-* | pentium2-*) + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; - power) basic_machine=rs6000-ibm + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown - ;; + ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; ps2) basic_machine=i386-ibm ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; sequent) basic_machine=i386-sequent ;; @@ -518,6 +1037,16 @@ basic_machine=sh-hitachi os=-hms ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; sps7) basic_machine=m68k-bull os=-sysv2 @@ -525,6 +1054,16 @@ spur) basic_machine=spur-unknown ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; sun2) basic_machine=m68000-sun ;; @@ -565,19 +1104,48 @@ sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; symmetry) basic_machine=i386-sequent os=-dynix ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + # This must be matched before tile*. + tilegx*) + basic_machine=tilegx-unknown + os=-linux-gnu + ;; + tile*) + basic_machine=tile-unknown + os=-linux-gnu + ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; tower | tower-32) basic_machine=m68k-ncr ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; udi29k) basic_machine=a29k-amd os=-udi @@ -586,6 +1154,10 @@ basic_machine=a29k-nyu os=-sym1 ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; vaxv) basic_machine=vax-dec os=-sysv @@ -595,8 +1167,8 @@ os=-vms ;; vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; + basic_machine=f301-fujitsu + ;; vxworks960) basic_machine=i960-wrs os=-vxworks @@ -609,13 +1181,36 @@ basic_machine=a29k-wrs os=-vxworks ;; - xmp) - basic_machine=xmp-cray - os=-unicos + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf ;; - xps | xps100) + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) basic_machine=xps100-honeywell ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; none) basic_machine=none-none os=-none @@ -623,32 +1218,44 @@ # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. - mips) - if [ x$os = x-linux-gnu ]; then - basic_machine=mips-unknown - else - basic_machine=mips-mips - fi + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; + mmix) + basic_machine=mmix-knuth + ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; - sparc) + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; - cydra) + cydra) basic_machine=cydra-cydrome ;; orion) @@ -657,6 +1264,15 @@ orion105) basic_machine=clipper-highlevel ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 @@ -680,9 +1296,12 @@ if [ x"$os" != x"" ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. + # First match some system type aliases + # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; @@ -703,20 +1322,57 @@ # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ + | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos*) + | -mingw32* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; @@ -726,6 +1382,15 @@ -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; -osfrose*) os=-osfrose ;; @@ -741,11 +1406,26 @@ -acis*) os=-aos ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; -ctix* | -uts*) os=-sysv ;; + -nova*) + os=-rtmk-nova + ;; -ns2 ) - os=-nextstep2 + os=-nextstep2 + ;; + -nsk*) + os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) @@ -754,6 +1434,9 @@ -sinix*) os=-sysv4 ;; + -tpf*) + os=-tpf + ;; -triton*) os=-sysv3 ;; @@ -772,9 +1455,32 @@ # This must come after -sysvr4. -sysv*) ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; -xenix) os=-xenix ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; -none) ;; *) @@ -797,13 +1503,38 @@ # system, and we'll never get to this point. case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; *-acorn) os=-riscix1.2 ;; + arm*-rebel) + os=-linux + ;; arm*-semi) os=-aout ;; - pdp11-*) + c4x-* | tic4x-*) + os=-coff + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) os=-none ;; *-dec | vax-*) @@ -821,6 +1552,21 @@ # default. # os=-sunos4 ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; @@ -830,9 +1576,24 @@ *-be) os=-beos ;; + *-haiku) + os=-haiku + ;; *-ibm) os=-aix ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; *-hp) os=-hpux ;; @@ -875,27 +1636,39 @@ *-next) os=-nextstep3 ;; - *-gould) + *-gould) os=-sysv ;; - *-highlevel) + *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; - *-sgi) + *-sgi) os=-irix ;; - *-siemens) + *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; - f301-fujitsu) + f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; *) os=-none ;; @@ -914,12 +1687,18 @@ -sunos*) vendor=sun ;; - -aix*) + -cnk*|-aix*) vendor=ibm ;; + -beos*) + vendor=be + ;; -hpux*) vendor=hp ;; + -mpeix*) + vendor=hp + ;; -hiux*) vendor=hitachi ;; @@ -935,21 +1714,47 @@ -genix*) vendor=ns ;; - -mvs*) + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; - -vxsim* | -vxworks*) + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: --- hammerhead-2.1.3.orig/configure.in +++ hammerhead-2.1.3/configure.in @@ -26,13 +26,7 @@ dnl System properties case "$target_os" in -*freebsd*) - AC_DEFINE(BSD) - AC_DEFINE(USE_BPF) - TARGET_OS=FreeBSD - AC_SUBST(TARGET_OS) - ;; -*linux*) +*linux*|*k*bsd*|*gnu*) AC_DEFINE(LINUX) AC_DEFINE(USE_IFALIAS) AC_DEFINE(USE_SOCKET) @@ -41,6 +35,18 @@ TARGET_OS=Linux AC_SUBST(TARGET_OS) ;; +*freebsd*) + AC_DEFINE(BSD) + AC_DEFINE(USE_BPF) + TARGET_OS=FreeBSD + AC_SUBST(TARGET_OS) + ;; +*freebsd*) + AC_DEFINE(BSD) + AC_DEFINE(USE_BPF) + TARGET_OS=FreeBSD + AC_SUBST(TARGET_OS) + ;; *solaris*) AC_DEFINE(SOLARIS) AC_DEFINE(USE_IFALIAS) --- hammerhead-2.1.3.orig/configure +++ hammerhead-2.1.3/configure @@ -704,19 +704,7 @@ case "$target_os" in -*freebsd*) - cat >> confdefs.h <<\EOF -#define BSD 1 -EOF - - cat >> confdefs.h <<\EOF -#define USE_BPF 1 -EOF - - TARGET_OS=FreeBSD - - ;; -*linux*) +*linux*|*k*bsd*|*gnu*) cat >> confdefs.h <<\EOF #define LINUX 1 EOF @@ -736,6 +724,18 @@ TARGET_OS=Linux ;; +*freebsd*) + cat >> confdefs.h <<\EOF +#define BSD 1 +EOF + + cat >> confdefs.h <<\EOF +#define USE_BPF 1 +EOF + + TARGET_OS=FreeBSD + + ;; *solaris*) cat >> confdefs.h <<\EOF #define SOLARIS 1 @@ -2256,6 +2256,7 @@ #line 2257 "configure" #include "confdefs.h" #include +#include main() { FILE *f=fopen("conftestval", "w"); @@ -2264,7 +2265,7 @@ exit(0); } EOF -if { (eval echo configure:2268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_char=`cat conftestval` else @@ -2284,7 +2285,7 @@ echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:2288: checking size of short" >&5 +echo "configure:2289: checking size of short" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2292,9 +2293,10 @@ ac_cv_sizeof_short=2 else cat > conftest.$ac_ext < +#include main() { FILE *f=fopen("conftestval", "w"); @@ -2303,7 +2305,7 @@ exit(0); } EOF -if { (eval echo configure:2307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_short=`cat conftestval` else @@ -2323,7 +2325,7 @@ echo $ac_n "checking size of int""... $ac_c" 1>&6 -echo "configure:2327: checking size of int" >&5 +echo "configure:2329: checking size of int" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2331,9 +2333,10 @@ ac_cv_sizeof_int=4 else cat > conftest.$ac_ext < +#include main() { FILE *f=fopen("conftestval", "w"); @@ -2342,7 +2345,7 @@ exit(0); } EOF -if { (eval echo configure:2346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2349: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_int=`cat conftestval` else @@ -2362,7 +2365,7 @@ echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:2366: checking size of long" >&5 +echo "configure:2369: checking size of long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2370,9 +2373,10 @@ ac_cv_sizeof_long=4 else cat > conftest.$ac_ext < +#include main() { FILE *f=fopen("conftestval", "w"); @@ -2381,7 +2385,7 @@ exit(0); } EOF -if { (eval echo configure:2385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2389: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long=`cat conftestval` else @@ -2401,7 +2405,7 @@ echo $ac_n "checking size of long long""... $ac_c" 1>&6 -echo "configure:2405: checking size of long long" >&5 +echo "configure:2409: checking size of long long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2409,9 +2413,10 @@ ac_cv_sizeof_long_long=8 else cat > conftest.$ac_ext < +#include main() { FILE *f=fopen("conftestval", "w"); @@ -2420,7 +2425,7 @@ exit(0); } EOF -if { (eval echo configure:2424: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long_long=`cat conftestval` else @@ -2566,12 +2571,12 @@ fi echo $ac_n "checking for sockaddr{} in sys/socket.h""... $ac_c" 1>&6 -echo "configure:2570: checking for sockaddr{} in sys/socket.h" >&5 +echo "configure:2575: checking for sockaddr{} in sys/socket.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_sockaddr_SYS_SOCKET_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -2600,12 +2605,12 @@ fi echo $ac_n "checking for in_addr{} in netinet/in.h""... $ac_c" 1>&6 -echo "configure:2604: checking for in_addr{} in netinet/in.h" >&5 +echo "configure:2609: checking for in_addr{} in netinet/in.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_in_addr_NETINET_IN_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -2634,12 +2639,12 @@ fi echo $ac_n "checking for sockaddr_in{} in netinet/in.h""... $ac_c" 1>&6 -echo "configure:2638: checking for sockaddr_in{} in netinet/in.h" >&5 +echo "configure:2643: checking for sockaddr_in{} in netinet/in.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_sockaddr_in_NETINET_IN_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -2668,12 +2673,12 @@ fi echo $ac_n "checking for arpreq{} in net/if_arp.h""... $ac_c" 1>&6 -echo "configure:2672: checking for arpreq{} in net/if_arp.h" >&5 +echo "configure:2677: checking for arpreq{} in net/if_arp.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_arpreq_NET_IF_ARP_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -2702,12 +2707,12 @@ fi echo $ac_n "checking for ether_header{} in net/ethernet.h""... $ac_c" 1>&6 -echo "configure:2706: checking for ether_header{} in net/ethernet.h" >&5 +echo "configure:2711: checking for ether_header{} in net/ethernet.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_ether_header_NET_ETHERNET_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -2736,12 +2741,12 @@ fi echo $ac_n "checking for ether_header{} in sys/ethernet.h""... $ac_c" 1>&6 -echo "configure:2740: checking for ether_header{} in sys/ethernet.h" >&5 +echo "configure:2745: checking for ether_header{} in sys/ethernet.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_ether_header_SYS_ETHERNET_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -2770,12 +2775,12 @@ fi echo $ac_n "checking for ethhdr{} in net/ethernet.h""... $ac_c" 1>&6 -echo "configure:2774: checking for ethhdr{} in net/ethernet.h" >&5 +echo "configure:2779: checking for ethhdr{} in net/ethernet.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_ethhdr_NET_ETHERNET_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -2809,12 +2814,12 @@ ;; *) echo $ac_n "checking for sockaddr_dl{} in net/if_dl.h""... $ac_c" 1>&6 -echo "configure:2813: checking for sockaddr_dl{} in net/if_dl.h" >&5 +echo "configure:2818: checking for sockaddr_dl{} in net/if_dl.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_sockaddr_dl_NET_IF_DL_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -2843,12 +2848,12 @@ fi echo $ac_n "checking for sockaddr_dl{} in net/if_dl.h""... $ac_c" 1>&6 -echo "configure:2847: checking for sockaddr_dl{} in net/if_dl.h" >&5 +echo "configure:2852: checking for sockaddr_dl{} in net/if_dl.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_sockaddr_dl_HAVE_sockaddr_dl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -2877,12 +2882,12 @@ fi echo $ac_n "checking for ether_header{} in netinet/if_ether.h""... $ac_c" 1>&6 -echo "configure:2881: checking for ether_header{} in netinet/if_ether.h" >&5 +echo "configure:2886: checking for ether_header{} in netinet/if_ether.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_ether_header_NETINET_IF_ETHER_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -2914,12 +2919,12 @@ esac echo $ac_n "checking for ETHER_ADDR_LEN in net/ethernet.h""... $ac_c" 1>&6 -echo "configure:2918: checking for ETHER_ADDR_LEN in net/ethernet.h" >&5 +echo "configure:2923: checking for ETHER_ADDR_LEN in net/ethernet.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_ETHER_ADDR_LEN_NET_ETHERNET_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -2953,12 +2958,12 @@ fi echo $ac_n "checking for ETHERADDRL in sys/ethernet.h""... $ac_c" 1>&6 -echo "configure:2957: checking for ETHERADDRL in sys/ethernet.h" >&5 +echo "configure:2962: checking for ETHERADDRL in sys/ethernet.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_ETHERADDRL_SYS_ETHERNET_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -2992,12 +2997,12 @@ fi echo $ac_n "checking for SIOCGIFCONF in sys/sockio.h""... $ac_c" 1>&6 -echo "configure:2996: checking for SIOCGIFCONF in sys/sockio.h" >&5 +echo "configure:3001: checking for SIOCGIFCONF in sys/sockio.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_SIOCGIFCONF_SYS_SOCKIO_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -3031,12 +3036,12 @@ fi echo $ac_n "checking for SIOCGIFHWADDR in sys/sockio.h""... $ac_c" 1>&6 -echo "configure:3035: checking for SIOCGIFHWADDR in sys/sockio.h" >&5 +echo "configure:3040: checking for SIOCGIFHWADDR in sys/sockio.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_SIOCGIFHWADDR_SYS_SOCKIO_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -3070,12 +3075,12 @@ fi echo $ac_n "checking for SIOCGIFHWADDR in sys/socketio.h""... $ac_c" 1>&6 -echo "configure:3074: checking for SIOCGIFHWADDR in sys/socketio.h" >&5 +echo "configure:3079: checking for SIOCGIFHWADDR in sys/socketio.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_SIOCGIFHWADDR_SYS_SOCKETIO_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -3109,12 +3114,12 @@ fi echo $ac_n "checking for SIOCGIFHWADDR in linux/sockios.h""... $ac_c" 1>&6 -echo "configure:3113: checking for SIOCGIFHWADDR in linux/sockios.h" >&5 +echo "configure:3118: checking for SIOCGIFHWADDR in linux/sockios.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_SIOCGIFHWADDR_LINUX_SOCKIOS_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -3148,12 +3153,12 @@ fi echo $ac_n "checking for SIOCGARP in sys/sockio.h""... $ac_c" 1>&6 -echo "configure:3152: checking for SIOCGARP in sys/sockio.h" >&5 +echo "configure:3157: checking for SIOCGARP in sys/sockio.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_SIOCGARP_SYS_SOCKIO_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -3187,12 +3192,12 @@ fi echo $ac_n "checking for DLIOCRAW in sys/dlpi.h""... $ac_c" 1>&6 -echo "configure:3191: checking for DLIOCRAW in sys/dlpi.h" >&5 +echo "configure:3196: checking for DLIOCRAW in sys/dlpi.h" >&5 if eval "test \"`echo '$''{'ac_cv_have_DLIOCRAW_SYS_DLPI_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -3227,12 +3232,12 @@ echo $ac_n "checking if sa_len_in_sockaddr{}""... $ac_c" 1>&6 -echo "configure:3231: checking if sa_len_in_sockaddr{}" >&5 +echo "configure:3236: checking if sa_len_in_sockaddr{}" >&5 if eval "test \"`echo '$''{'ac_cv_sockaddr_has_sa_len'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -3241,7 +3246,7 @@ unsigned int i = sizeof(((struct sockaddr *)0)->sa_len) ; return 0; } EOF -if { (eval echo configure:3245: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3250: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sockaddr_has_sa_len=yes else @@ -3270,12 +3275,12 @@ fi echo $ac_n "checking if ether_header_uses_ether_addr{}""... $ac_c" 1>&6 -echo "configure:3274: checking if ether_header_uses_ether_addr{}" >&5 +echo "configure:3279: checking if ether_header_uses_ether_addr{}" >&5 if eval "test \"`echo '$''{'ac_cv_ether_header_uses_ether_addr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -3284,7 +3289,7 @@ struct ether_addr a; struct ether_header b; a = b.ether_dhost; ; return 0; } EOF -if { (eval echo configure:3288: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3293: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_ether_header_uses_ether_addr=yes else @@ -3306,17 +3311,17 @@ ac_safe=`echo "kstat.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for kstat.h""... $ac_c" 1>&6 -echo "configure:3310: checking for kstat.h" >&5 +echo "configure:3315: checking for kstat.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3320: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3325: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- hammerhead-2.1.3.orig/Makefile.in +++ hammerhead-2.1.3/Makefile.in @@ -13,6 +13,18 @@ TARGET_OS=$(shell uname) INSTALL=install +ifneq (, $(filter GNU GNU/%, $(TARGET_OS))) + # Aliasing GNU(/Hurd) and GNU/k*BSD to Linux. + TARGET_OS=Linux +endif + + +ifneq (, $(filter GNU GNU/%, $(TARGET_OS))) + # Aliasing GNU(/Hurd) and GNU/k*BSD to Linux. + TARGET_OS=Linux +endif + + include vsn.mk include hammer.mk --- hammerhead-2.1.3.orig/config.guess +++ hammerhead-2.1.3/config.guess @@ -1,7 +1,11 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc. -# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011 Free Software Foundation, Inc. + +timestamp='2011-05-11' + # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or @@ -14,160 +18,350 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -# Written by Per Bothner . -# The master version of this file is at the FSF in /home/gd/gnu/lib. + +# Originally written by Per Bothner. Please send patches (context +# diff format) to and include a ChangeLog +# entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # -# The plan is that this can be called by configure scripts if you -# don't specify an explicit system type (host/target name). -# -# Only a few systems have been added to this list; please add others -# (but try to keep the structure clean). -# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free +Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 8/24/94.) +# (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15 - # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then + case $UNAME_RELEASE in + *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - cat <dummy.s - .globl main - .ent main -main: - .frame \$30,0,\$26,0 - .prologue 0 - .long 0x47e03d80 # implver $0 - lda \$2,259 - .long 0x47e20c21 # amask $2,$1 - srl \$1,8,\$2 - sll \$2,2,\$2 - sll \$0,3,\$0 - addl \$1,\$0,\$0 - addl \$2,\$0,\$0 - ret \$31,(\$26),1 - .end main -EOF - ${CC-cc} dummy.s -o dummy 2>/dev/null - if test "$?" = 0 ; then - ./dummy - case "$?" in - 7) - UNAME_MACHINE="alpha" - ;; - 15) - UNAME_MACHINE="alphaev5" - ;; - 14) - UNAME_MACHINE="alphaev56" - ;; - 10) - UNAME_MACHINE="alphapca56" - ;; - 16) - UNAME_MACHINE="alphaev6" - ;; - esac - fi - rm -f dummy.s dummy - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]` - exit 0 ;; + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 - exit 0 ;; + exit ;; Amiga*:UNIX_System_V:4.0:*) - echo m68k-cbm-sysv4 - exit 0;; - amiga:NetBSD:*:*) - echo m68k-cbm-netbsd${UNAME_RELEASE} - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + echo m68k-unknown-sysv4 + exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; - arc64:OpenBSD:*:*) - echo mips64el-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hkmips:OpenBSD:*:*) - echo mips-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mips-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; - arm32:NetBSD:*:*) - echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - exit 0 ;; - SR2?01:HI-UX/MPP:*:*) + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp - exit 0;; - Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*) + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi - exit 0 ;; - NILE:*:*:dcosx) + exit ;; + NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 - exit 0 ;; + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) @@ -176,12 +370,12 @@ esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; + exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; + exit ;; sun*:*:4.2BSD:*) - UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) @@ -191,55 +385,63 @@ echo sparc-sun-sunos${UNAME_RELEASE} ;; esac - exit 0 ;; + exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; - atari*:NetBSD:*:*) - echo m68k-atari-netbsd${UNAME_RELEASE} - exit 0 ;; - atari*:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3*:NetBSD:*:*) - echo m68k-sun-netbsd${UNAME_RELEASE} - exit 0 ;; - sun3*:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:NetBSD:*:*) - echo m68k-apple-netbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; - macppc:NetBSD:*:*) - echo powerpc-apple-netbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 - exit 0 ;; + exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - 2020:CLIX:*:*) + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; + exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - sed 's/^ //' << EOF >dummy.c - int main (argc, argv) int argc; char **argv; { + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); @@ -254,62 +456,83 @@ exit (-1); } EOF - ${CC-cc} dummy.c -o dummy \ - && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix - exit 0 ;; + exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 - exit 0 ;; + exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 - exit 0 ;; + exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \ - -o ${TARGET_BINARY_INTERFACE}x = x ] ; then + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then echo m88k-dg-dgux${UNAME_RELEASE} - else + else echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} fi - else echo i586-dg-dgux${UNAME_RELEASE} - fi - exit 0 ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 - exit 0 ;; + exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 - exit 0 ;; + exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd - exit 0 ;; + exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; + exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i?86:AIX:*:*) + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) echo i386-ibm-aix - exit 0 ;; + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - sed 's/^ //' << EOF >dummy.c + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c #include main() @@ -320,18 +543,21 @@ exit(0); } EOF - ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy - echo rs6000-ibm-aix3.2.5 + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi - exit 0 ;; - *:AIX:*:4) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` - if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc @@ -339,75 +565,120 @@ if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=4.${UNAME_RELEASE} + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:*:*) echo rs6000-ibm-aix - exit 0 ;; + exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 - exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 + exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx - exit 0 ;; + exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 - exit 0 ;; + exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd - exit 0 ;; + exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 - exit 0 ;; + exit ;; 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/6?? | 9000/7?? | 9000/80[24] | 9000/8?[13679] | 9000/892 ) - sed 's/^ //' << EOF >dummy.c - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } EOF - (${CC-cc} dummy.c -o dummy 2>/dev/null ) && HP_ARCH=`./dummy` - rm -f dummy.c dummy + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; esac - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; 3050*:HI-UX:*:*) - sed 's/^ //' << EOF >dummy.c + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c #include int main () @@ -432,341 +703,440 @@ exit (0); } EOF - ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 - exit 0 ;; + exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd - exit 0 ;; + exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd - exit 0 ;; + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf - exit 0 ;; + exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf - exit 0 ;; - i?86:OSF1:*:*) + exit ;; + i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi - exit 0 ;; + exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites - exit 0 ;; + exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit 0 ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit 0 ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit 0 ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit 0 ;; - CRAY*X-MP:*:*:*) - echo xmp-cray-unicos - exit 0 ;; + exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} - exit 0 ;; + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ - exit 0 ;; + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} - exit 0 ;; - CRAY-2:*:*:*) - echo cray2-cray-unicos - exit 0 ;; - F300:UNIX_System_V:*:*) - FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - F301:UNIX_System_V:*:*) - echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` - exit 0 ;; - hp3[0-9][05]:NetBSD:*:*) - echo m68k-hp-netbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - i?86:BSD/386:*:* | *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; *:FreeBSD:*:*) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; - *:NetBSD:*:*) - echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - exit 0 ;; + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) + exit ;; + *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin - exit 0 ;; + exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; *:GNU:*:*) + # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; - *:Linux:*:*) - # uname on the ARM produces all sorts of strangeness, and we need to - # filter it out. - case "$UNAME_MACHINE" in - arm* | sa110*) UNAME_MACHINE="arm" ;; - esac - - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. - ld_help_string=`ld --help 2>&1` - ld_supported_emulations=`echo $ld_help_string \ - | sed -ne '/supported emulations:/!d - s/[ ][ ]*/ /g - s/.*supported emulations: *// - s/ .*// - p'` - case "$ld_supported_emulations" in - i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;; - i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;; - sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; - armlinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; - m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; - elf32ppc) echo "powerpc-unknown-linux-gnu" ; exit 0 ;; - esac - - if test "${UNAME_MACHINE}" = "alpha" ; then - sed 's/^ //' <dummy.s - .globl main - .ent main - main: - .frame \$30,0,\$26,0 - .prologue 0 - .long 0x47e03d80 # implver $0 - lda \$2,259 - .long 0x47e20c21 # amask $2,$1 - srl \$1,8,\$2 - sll \$2,2,\$2 - sll \$0,3,\$0 - addl \$1,\$0,\$0 - addl \$2,\$0,\$0 - ret \$31,(\$26),1 - .end main -EOF - LIBC="" - ${CC-cc} dummy.s -o dummy 2>/dev/null - if test "$?" = 0 ; then - ./dummy - case "$?" in - 7) - UNAME_MACHINE="alpha" - ;; - 15) - UNAME_MACHINE="alphaev5" - ;; - 14) - UNAME_MACHINE="alphaev56" - ;; - 10) - UNAME_MACHINE="alphapca56" - ;; - 16) - UNAME_MACHINE="alphaev6" - ;; - esac - - objdump --private-headers dummy | \ - grep ld.so.1 > /dev/null - if test "$?" = 0 ; then - LIBC="libc1" - fi - fi - rm -f dummy.s dummy - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 - elif test "${UNAME_MACHINE}" = "mips" ; then - cat >dummy.c </dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu else - # Either a pre-BFD a.out linker (linux-gnuoldld) - # or one that does not give us useful --help. - # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. - # If ld does not provide *any* "supported emulations:" - # that means it is gnuoldld. - echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:" - test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 - - case "${UNAME_MACHINE}" in - i?86) - VENDOR=pc; - ;; - *) - VENDOR=unknown; - ;; - esac - # Determine whether the default compiler is a.out or elf - cat >dummy.c < -main(argc, argv) - int argc; - char *argv[]; -{ -#ifdef __ELF__ -# ifdef __GLIBC__ -# if __GLIBC__ >= 2 - printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); -# else - printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); -# endif -# else - printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); -# endif -#else - printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); -#endif - return 0; -} + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif EOF - ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy - fi ;; -# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions -# are messed up and put the nodename in both sysname and nodename. - i?86:DYNIX/ptx:4*:*) + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-tilera-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. echo i386-sequent-sysv4 - exit 0 ;; - i?86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. + # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; - i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi - exit 0 ;; - i?86:*:3.2:*) + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` - (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi - exit 0 ;; - i?86:UnixWare:*:*) - if /bin/uname -X 2>/dev/null >/dev/null ; then - (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - fi - echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION} - exit 0 ;; + exit ;; pc:*:*:*) - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit 0 ;; + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 - exit 0 ;; + exit ;; paragon:*:*:*) echo i860-intel-osf1 - exit 0 ;; + exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi - exit 0 ;; + exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 - exit 0 ;; - i?86:LynxOS:2.*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) + exit ;; + rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` @@ -774,48 +1144,184 @@ else echo ns32k-sni-sysv fi - exit 0 ;; - PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 - exit 0 ;; + exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 - exit 0 ;; + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; - news*:NEWS-OS:*:6*) + exit ;; + news*:NEWS-OS:6*:*) echo mips-sony-newsos6 - exit 0 ;; - R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000:UNIX_SV:*:*) + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv${UNAME_RELEASE} else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv${UNAME_RELEASE} fi - exit 0 ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos - exit 0 ;; + exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos - exit 0 ;; + exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos - exit 0 ;; + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 -cat >dummy.c <$dummy.c < # include @@ -831,16 +1337,16 @@ #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 - "4" + "4" #else - "" + "" #endif - ); exit (0); + ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); + printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) @@ -853,7 +1359,10 @@ #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif @@ -898,11 +1407,24 @@ #endif #if defined (vax) -#if !defined (ultrix) - printf ("vax-dec-bsd\n"); exit (0); -#else - printf ("vax-dec-ultrix\n"); exit (0); -#endif +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif #endif #if defined (alliant) && defined (i860) @@ -913,12 +1435,12 @@ } EOF -${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0 -rm -f dummy.c dummy +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) @@ -927,25 +1449,69 @@ case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd - exit 0 ;; + exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; c34*) echo c34-convex-bsd - exit 0 ;; + exit ;; c38*) echo c38-convex-bsd - exit 0 ;; + exit ;; c4*) echo c4-convex-bsd - exit 0 ;; + exit ;; esac fi -#echo '(Unable to guess system type)' 1>&2 +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: --- hammerhead-2.1.3.orig/Copying +++ hammerhead-2.1.3/Copying @@ -1,4 +1,8 @@ - GNU GENERAL PUBLIC LICENSE + +This file contains two parts, the GNU General Public License +and a special exemption for linking for OpenSSL. + +1. GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. @@ -337,3 +341,18 @@ consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. + + +2. OPENSSL SPECIAL EXEMPTION. + +In addition, as a special exception permission is granted to link the +code of this release of Hammerhead with the OpenSSL project's "OpenSSL" +library (or with modified versions of it that use the same license as +the "OpenSSL" library), and distribute the linked executables. You must +obey the GNU General Public License in all respects for all of the code +used other than "OpenSSL". If you modify this file, you may extend this +exception to your version of the file, but you are not obligated to do +so. If you do not wish to do so, delete this exception statement from +your version of this file. + + --- hammerhead-2.1.3.orig/doc/hammerhead.html +++ hammerhead-2.1.3/doc/hammerhead.html @@ -1,806 +0,0 @@ -Content-type: text/html - -Manpage of hammerhead - -

hammerhead

-Section: User Commands (1)
Updated: 03 Jul 2002
Index -Return to Main Contents
- -  -

NAME

- -hammerhead - perform load testing on a given machine/port with a set of http requests -  -

SYNOPSIS

- -hammerhead - -[ -options - -] -[ -resultsFile - -] -  -

DESCRIPTION

- - - -Hammerhead - -is a web site coverage and stress testing -tool. It's also useful for benchmarking your web servers. It's been designed -to emulate multiple users from multiple IP addresses and designed for -maximum speed unlike it's interpreted counterparts. It's highly -configurable and supports scenario based requests. -The -hammerhead - -command is sends HTTP requests to a nominated machine/port (as -specified in the -configFile) - -to simulate load on that port. It can be used to test the behaviour of -the port under load, or the ability of the port to service a set of -requests. -

- -The behaviour of -hammerhead - -is defined (almost) entirely by the -configfile. - -See the description of this file below for an explanation of all of -the configuration options. -

- -hammerhead - -loads a set of requests from a number of files, each of which may -contain a number of scenarios (one request per scenario). Scenarios -may be linked into sequences, in order to simulate real users -actions. -

- -Once the scenarios are loaded, -hammerhead - -starts up a number of threads and sends requests to the port. The -expected result of a request may be specified in a scenario, and any -result from the port which does not match with the expected result -will be reported as an error. If no expected results are specified, -then any result from the port will be accepted as valid. Specifying an -expected result for any scenario has the effect of specifying the -same result for -all - -scenarios which have the same request. -

-

- -Any failure to get a connection to the port, or any failure to receive -a reply to a request will also be reported. -  -

OPTIONS

- -The following options are supported: -
-
-s or --seconds - -
-Seconds to run tests for -
-o or --outfile - -
-Output result file -
-t or --test - -
-Test the scenarios in the conf file. -
-C or --checkconf - -
-Check config file -
-c or --conffile - -
-Config file path -
-h or --help - -
-Display help information -
-v or --version - -
-Output version -
-  -

OPERANDS

- -The following operand is supported: -
-
resultsFile: - -
-Create an optimized scenario file to make -hammerhead - -load faster. -
-  -

CONFIGURATION FILE

- -The configuration file is a plain text file, containing a set of -attribute/value pairs. Attribute names are matched without regard to case. -

- -Any line in the file beginning with a hash (#) is treated as a -comment, and ignored. -

- -The attributes which may be defined in this file are: -  -

Scenario_directory

- -The directory in which to find the Scenario file(s). All scenario -files in this directory will be loaded. A scenario file is any file -with the extension -.scn - -(case sensitive). There may be more than one - -directive on a configuration file. Each directory shall be -examined for scenario files. -

- -default value: /var/tmp/scenarios/ -  -

Scenario_file

- -A specific file from which to read scenarios. There may be more than one - -directive on a configuration file. -  -

Log_filename

- -The file in which all log messages will be written. If this file -cannot be created, -hammerhead - -will default to using standard error. -

- -default value: /var/tmp/hammerhead/hh.log -  -

Load_images

- -A flag indicating whether to automatically load images which are -referenced in the result of a request. -

- -posible values: on, off -

- -default value: off -  -

Sessions

- -The number of threads to start up. -

- -default value: 1000 -  -

Seed

- -The random number seed used for the random selection of -requests. Setting this number to any non-zero value will give -deterministic behaviour (i.e. the same sequence of requests will be -selected) -

- -default value: 0 -  -

Sequence_probability

- -The percentage of the time that -hammerhead - -will follow the sequence that the current request is in. Setting this -to 100 will force hammerhead to follow any sequence it encounters to -its completion. -

- -default value: 75 -  -

Sleep_time

- -The amount of time (in milliseconds) to sleep between requests. In -fact, this is the average sleep time, and -hammerhead - -will sleep for a randomly selected period, between 0 milliseconds, and -twice this value. -

- -default value: 0 -  -

Run_time

- -The number of seconds to run each thread. If this value is 0, the -threads run for-ever. This can be used to set up tests which run for a -particular length of time. -

- -default value: 0 -  -

Machine_IP

- -The IP number (and possibly port) of the machine/port to hammer. The -format is <machine_number>[:<port_number>], where <machine_number> is -as described in -man inet_addr - -and <port_number> is optional. -

- -This is the -only - -attribute that must be defined in a configuration file - -default value: no default for <machine_number>, 8080 for <port_number> -  -

Ip_Alias

- -The outgoing IP numbers; allows Hammerhead to simulate multiple -machines (upto 1 machine / session). May be any of the following forms: -10.0.0.1, 10.0.0.*, 10.0.*.*, 10.0.1-5.*, 10.0.0.1-5. - -default value: the hammering machines normal IP address -  -

Premature_Close

- -The percentage of requests that will be improperly terminated before -sending/receiving is completed properly (to test problems -such as FIN_WAIT1). - -default value: 0 -  -

Bad_Request

- -The percentage of requests the will be scrambled requests -(outside the properly defined scenarios). - -default value: 0 -  -

Report_Time

- -The time interval upon which to written report summaries to the report -log. - -default value: 0 (report only once at test end.) -  -

Report_Log

- -The log file which is to contain the report summaries. - -default value: /var/tmp/report.log -  -

Robot_ID

- -The robot id to be passed to the servers being hammered. - -Currently not implemented. -  -

Send_Cookie

- -Turn on to allow the sending of cookies with requests. Incoming -cookies are buffered with each session when a Set-Cookie -header is found. They're sent back with further requests -to that session. Cookies are capped at 4K. - -default value: off -  -

Premature_Close

- -The percentage of connections which will close permaturely before the -request reply has been fully read back from the server. - -default value: 0 -  -

Log_Level

- -Log levels defined to work with the - -crawl -functionality - somewhat mystical and not confirmed to be working. - -default value: 0 -  -

Bandwidth_Limit

- -Turn on bandwidth limiting. - -Not implemented yet. -  -

Crawl

- -Crawl though the URLs contained in the reply to a request. Scope is -somewhat unclear. Use with caution. - -default value: off -  -

SelectOn

- -When choosing a new sequence to commence, select from all the scenarios [ -scenario - -] or select from those scenarios which are at the beginning of a sequence -of scenarios [ -sequence - -]. - -default value: scenario -  -

Start_Lag

- -Start lag is a delay at thread startup before the first request is issued. The delay can be used to control the size of any startup spikes during the commencement of the test. The threads (processes) pause for a time between 0 and (Start_Lag * Sessions) milliseconds before issuing their first request. - -default value: 1 millisecond -  -

DNS_Server

- -Allow the specification of an alternate DNS server to use to resolve the machinenames. This resolution is completed once server DNS_TTL seconds. - -default value: use the server nominated in -/etc/resolv.conf - -  -

DNS_TTL

- -The Time To Live for the self cached DNS queries. - -default value: 120 seconds -  -

Machine_Name

- -The name of the machine/s to hammer. Names are resolved to addresses using -the DNS resolver. -  -

Use_SSL

- -Should SSL be used during each request? - -default value: no -  -

HTTP_Request_Type

- -Specify the HTTP request version, the default value is recommended as -Hammerhead maybe not handle all 1.1 return packets correctly. - -default value: HTTP/1.0 -  -

BottleNeck

- -Use connection bottlenecking to extend connecton holding time - -Not implemented yet. -  -

Max_Failures

- -The maximum number of request failures to be tolerated before we abandon the -test. The value 0 means that hammerhead will never stop because of an excessive -number of request failures. - -default value: 0 -  -

SCENARIO FILE

- -A scenario file is a plain text file, containing a set of tagged value -lines. The first character of each line is the tag, and the rest of the -line is the value. Tags are matched case-sensitively. -

- -Any line in the file beginning with a hash (#) is treated as a -comment, and ignored. -

- -The tag types which are legal in this file are: -  -

N

- -The name of the scenario. A free-format string -

- -default value: the name of the scenario file -  -

D

- -Any dependencies to be met. -

- -Unused at present. -  -

R

- -The request to make. A valid HTTP request. -

- -No default value. Scenarios without a Request are discarded. -  -

H

- -A header (beyond the basic GET request). -

- -No default value. -  -

B

- -The body of a POST request -

- -No default value. -  -

E

- -Expected results. Note that -hammerhead - -will strip off all HTTP header lines from the response (i.e. all lines -up to the first blank line in the response). -

- -No default value. -  -

L

- -Expected Log result. -

- -Not implemented yet. -  -

S

- -Name of the next scenario in a sequence -

- -No default value. A scenario without a -S - -scenario specified is assumed to be the last in a sequence. -  -

T

- -This option has 3 possible types of value: -A number is the "think" (or wait) time in milliseconds. -If a '+' proceeds the number then this specifies a fixed time from -when Hammerhead begin to wait until (in milliseconds). -If the 3rd special value '_exit' is given, -then the thread running this scenario witll terminate after completing it. -

- -default value: 0 -  -

X

- -The number of times this scenario may be cross-referenced by other -scenarios (i.e. may be used in a sequence). A value of -1 is used to -represent unlimited use, while 0 and positive numbers have the obvious -meaning. -

- -default value: -1 -  -

O

- -A number of options relating to a scenario are available. -For example, -
-
-
-SSL - -= -[ -on|off - -] -
-

- -This option turns SSL on or off for this request, overriding the -use of SSL in the configuration file. -

-
-PORT - -= -[ -port - -] -
-

- -This option allows for an alternative port number to be specificed for -this scenario, overriding the port specified in the configuration file. -

- -  -

.

- -End of scenario definition. -

-  -

RESULTS FILE

- -

-

- -The results file contains a log of all requests. Each log line -contains a time stamp, the process id of the session, the name of the -scenario used, three times, the size of the response, the return code -from the server and the server description. -

- -The three recorded times are an offset from the initial start time, the -time it took to get the first response from the server and the -total time it took to get the complete response and process it. -Typically these two times are similar, although network issues can -cause the total time to be somewhat greater than the response time. -Each time value is recorded in milliseconds. -

- -

-  -

EXAMPLES

- -  -

Configuration File

- -# example configuration file - test.conf -

- -# find all scenarios in this directory -

-Scenario_directory /u01/hammerhead/test1 -

- -# put all log messages in this file -

-Log_filename /u01/hammerhead/test1/test1.log -

- -# Load all embedded images in each page returned by the port -

-Load_images on -

- -# Simulate 50 users -

-Sessions 50 -

- -# Force all sequences to be completed -

-Sequence_probability 100 -

- -# Sleep 100ms between each request -

-Sleep_time 100 -

- -# Run the test for 10 minutes -

-Run_time 600 -

- -# Hammer goanna, on port 8080 -

-10.456.789.012:8080 -
-
-
-
-
-
-
-
-  -

Scenario File

- -
 # Example Scenario file - test.scn -

- -
 # Get the main page, then think for one second, then go to -

-
 # the next scenario -
-
 NTest Scenario 1 -
-
 RGET / HTTP/1.0 -
-
 STest Scenario 2 -
-
 T1000000 -
-
 E<html> -
-
 E<head> -
-
 E<title>Hammerhead - exploring Hammerland</title> -
-
 E<link rev=made href="mailto:feedback@hammerhead.sourceforge.net"> -
-
 E</head> -
-
 . -
-
 # Get some random page, don't think, and go nowhere else -
-
 # NOTE: . at end of scenario not required at end of file -
-
 NTest Scenario 2 -
-
 RGET /coma HTTP/1.0 -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  -

Usage

- -

- -The following example: -

-example% hammerhead -c test.conf results.log - -
- -

- -hammers the machine/port specified in the -test.conf - -configuration file. -  -

EXIT STATUS

- -The following exit values are returned: - -
-
0 - -
-

-hammerhead - -ran successfully to completion. -

>0 - -
-An error occurred. - -
-  -

SEE ALSO

- -inet_addr(3N) - -  -

NOTES

- -The scenario file created by -hammerhead - -when using the -resultsFile - -operand is optimised to make it quicker for - -to load. All scenario names will be lost. Since -hammerhead - -only ever reports errors in terms of the request being made, this is -no great loss. -

- -The results generated when using the -resultsFile - -operand may contain non-printing characters which may corrupt terminal -settings. -

- -


- 

Index

-
-
NAME
-
SYNOPSIS
-
DESCRIPTION
-
OPTIONS
-
OPERANDS
-
CONFIGURATION FILE
-
-
Scenario_directory
-
Scenario_file
-
Log_filename
-
Load_images
-
Sessions
-
Seed
-
Sequence_probability
-
Sleep_time
-
Run_time
-
Machine_IP
-
Ip_Alias
-
Premature_Close
-
Bad_Request
-
Report_Time
-
Report_Log
-
Robot_ID
-
Send_Cookie
-
Premature_Close
-
Log_Level
-
Bandwidth_Limit
-
Crawl
-
SelectOn
-
Start_Lag
-
DNS_Server
-
DNS_TTL
-
Machine_Name
-
Use_SSL
-
HTTP_Request_Type
-
BottleNeck
-
Max_Failures
-
-
SCENARIO FILE
-
-
N
-
D
-
R
-
H
-
B
-
E
-
L
-
S
-
T
-
X
-
O
-
.
-
-
RESULTS FILE
-
EXAMPLES
-
-
Configuration File
-
Scenario File
-
Usage
-
-
EXIT STATUS
-
SEE ALSO
-
NOTES
-
-
-This document was created by -man2html, -using the manual pages.
-Time: 02:59:23 GMT, November 13, 2002 - - --- hammerhead-2.1.3.orig/doc/hammerhead.1 +++ hammerhead-2.1.3/doc/hammerhead.1 @@ -100,14 +100,14 @@ with the extension .B .scn (case sensitive). There may be more than one -.b Scenario_directory +.B Scenario_directory directive on a configuration file. Each directory shall be examined for scenario files. .PP default value: /var/tmp/scenarios/ .SS Scenario_file A specific file from which to read scenarios. There may be more than one -.b Scenario_file +.B Scenario_file directive on a configuration file. .SS Log_filename The file in which all log messages will be written. If this file @@ -212,7 +212,7 @@ default value: 0 .SS Log_Level Log levels defined to work with the -.b +.B crawl functionality - somewhat mystical and not confirmed to be working. .P @@ -476,7 +476,7 @@ when using the .B resultsFile operand is optimised to make it quicker for -. hammerhead +.B hammerhead to load. All scenario names will be lost. Since .B hammerhead only ever reports errors in terms of the request being made, this is --- hammerhead-2.1.3.orig/doc/hammerhead.txt +++ hammerhead-2.1.3/doc/hammerhead.txt @@ -1,49 +1,46 @@ -hammerhead(1) hammerhead(1) +hammerhead(1) hammerhead(1) NNAAMMEE - hammerhead - perform load testing on a given machine/port - with a set of http requests + hammerhead - perform load testing on a given machine/port with a set of + http requests SSYYNNOOPPSSIISS hhaammmmeerrhheeaadd [ _o_p_t_i_o_n_s ] [ _r_e_s_u_l_t_s_F_i_l_e ] DDEESSCCRRIIPPTTIIOONN - HHaammmmeerrhheeaadd is a web site coverage and stress testing tool. - It's also useful for benchmarking your web servers. It's - been designed to emulate multiple users from multiple IP - addresses and designed for maximum speed unlike it's - interpreted counterparts. It's highly configurable and - supports scenario based requests. The hhaammmmeerrhheeaadd command - is sends HTTP requests to a nominated machine/port (as - specified in the ccoonnffiiggFFiillee)) to simulate load on that - port. It can be used to test the behaviour of the port - under load, or the ability of the port to service a set of - requests. - - The behaviour of hhaammmmeerrhheeaadd is defined (almost) entirely - by the ccoonnffiiggffiillee.. See the description of this file below - for an explanation of all of the configuration options. - - hhaammmmeerrhheeaadd loads a set of requests from a number of files, - each of which may contain a number of scenarios (one - request per scenario). Scenarios may be linked into - sequences, in order to simulate real users actions. - - Once the scenarios are loaded, hhaammmmeerrhheeaadd starts up a num- - ber of threads and sends requests to the port. The - expected result of a request may be specified in a sce- - nario, and any result from the port which does not match - with the expected result will be reported as an error. If - no expected results are specified, then any result from - the port will be accepted as valid. Specifying an expected - result for any scenario has the effect of specifying the - same result for aallll scenarios which have the same request. + HHaammmmeerrhheeaadd is a web site coverage and stress testing tool. It's also + useful for benchmarking your web servers. It's been designed to emulate + multiple users from multiple IP addresses and designed for maximum + speed unlike it's interpreted counterparts. It's highly configurable + and supports scenario based requests. The hhaammmmeerrhheeaadd command is sends + HTTP requests to a nominated machine/port (as specified in the ccoonnffiigg-- + FFiillee)) to simulate load on that port. It can be used to test the behav- + iour of the port under load, or the ability of the port to service a + set of requests. + + The behaviour of hhaammmmeerrhheeaadd is defined (almost) entirely by the ccoonnffiigg-- + ffiillee.. See the description of this file below for an explanation of all + of the configuration options. + + hhaammmmeerrhheeaadd loads a set of requests from a number of files, each of + which may contain a number of scenarios (one request per scenario). + Scenarios may be linked into sequences, in order to simulate real users + actions. + + Once the scenarios are loaded, hhaammmmeerrhheeaadd starts up a number of threads + and sends requests to the port. The expected result of a request may + be specified in a scenario, and any result from the port which does not + match with the expected result will be reported as an error. If no + expected results are specified, then any result from the port will be + accepted as valid. Specifying an expected result for any scenario has + the effect of specifying the same result for aallll scenarios which have + the same request. - Any failure to get a connection to the port, or any fail- - ure to receive a reply to a request will also be reported. + Any failure to get a connection to the port, or any failure to receive + a reply to a request will also be reported. OOPPTTIIOONNSS The following options are supported: @@ -73,43 +70,40 @@ The following operand is supported: _r_e_s_u_l_t_s_F_i_l_e_: - Create an optimized scenario file to make hhaammmmeerrhheeaadd load - faster. + Create an optimized scenario file to make hhaammmmeerrhheeaadd load faster. CCOONNFFIIGGUURRAATTIIOONN FFIILLEE - The configuration file is a plain text file, containing a - set of attribute/value pairs. Attribute names are matched - without regard to case. + The configuration file is a plain text file, containing a set of + attribute/value pairs. Attribute names are matched without regard to + case. - Any line in the file beginning with a hash (#) is treated - as a comment, and ignored. + Any line in the file beginning with a hash (#) is treated as a comment, + and ignored. The attributes which may be defined in this file are: SScceennaarriioo__ddiirreeccttoorryy - The directory in which to find the Scenario file(s). All - scenario files in this directory will be loaded. A sce- - nario file is any file with the extension ..ssccnn (case sen- - sitive). There may be more than one directive on a config- - uration file. Each directory shall be examined for sce- - nario files. + The directory in which to find the Scenario file(s). All scenario files + in this directory will be loaded. A scenario file is any file with the + extension ..ssccnn (case sensitive). There may be more than one SSccee-- + nnaarriioo__ddiirreeccttoorryy directive on a configuration file. Each directory shall + be examined for scenario files. default value: /var/tmp/scenarios/ SScceennaarriioo__ffiillee - A specific file from which to read scenarios. There may be - more than one directive on a configuration file. + A specific file from which to read scenarios. There may be more than + one SScceennaarriioo__ffiillee directive on a configuration file. LLoogg__ffiilleennaammee - The file in which all log messages will be written. If - this file cannot be created, hhaammmmeerrhheeaadd will default to - using standard error. + The file in which all log messages will be written. If this file cannot + be created, hhaammmmeerrhheeaadd will default to using standard error. default value: /var/tmp/hammerhead/hh.log LLooaadd__iimmaaggeess - A flag indicating whether to automatically load images - which are referenced in the result of a request. + A flag indicating whether to automatically load images which are refer- + enced in the result of a request. posible values: on, off @@ -121,72 +115,65 @@ default value: 1000 SSeeeedd - The random number seed used for the random selection of - requests. Setting this number to any non-zero value will - give deterministic behaviour (i.e. the same sequence of - requests will be selected) + The random number seed used for the random selection of requests. Set- + ting this number to any non-zero value will give deterministic behav- + iour (i.e. the same sequence of requests will be selected) default value: 0 SSeeqquueennccee__pprroobbaabbiilliittyy - The percentage of the time that hhaammmmeerrhheeaadd will follow the - sequence that the current request is in. Setting this to - 100 will force hammerhead to follow any sequence it - encounters to its completion. + The percentage of the time that hhaammmmeerrhheeaadd will follow the sequence + that the current request is in. Setting this to 100 will force hammer- + head to follow any sequence it encounters to its completion. default value: 75 SSlleeeepp__ttiimmee - The amount of time (in milliseconds) to sleep between - requests. In fact, this is the average sleep time, and - hhaammmmeerrhheeaadd will sleep for a randomly selected period, - between 0 milliseconds, and twice this value. + The amount of time (in milliseconds) to sleep between requests. In + fact, this is the average sleep time, and hhaammmmeerrhheeaadd will sleep for a + randomly selected period, between 0 milliseconds, and twice this value. default value: 0 RRuunn__ttiimmee - The number of seconds to run each thread. If this value is - 0, the threads run for-ever. This can be used to set up - tests which run for a particular length of time. + The number of seconds to run each thread. If this value is 0, the + threads run for-ever. This can be used to set up tests which run for a + particular length of time. default value: 0 MMaacchhiinnee__IIPP - The IP number (and possibly port) of the machine/port to - hammer. The format is [:], - where is as described in mmaann iinneett__aaddddrr - and is optional. + The IP number (and possibly port) of the machine/port to hammer. The + format is [:], where is + as described in mmaann iinneett__aaddddrr and is optional. - This is the oonnllyy attribute that must be defined in a con- - figuration file + This is the oonnllyy attribute that must be defined in a configuration file - default value: no default for , 8080 for - + default value: no default for , 8080 for IIpp__AAlliiaass - The outgoing IP numbers; allows Hammerhead to simulate - multiple machines (upto 1 machine / session). May be any - of the following forms: 10.0.0.1, 10.0.0.*, 10.0.*.*, - 10.0.1-5.*, 10.0.0.1-5. + The outgoing IP numbers; allows Hammerhead to simulate multiple + machines (upto 1 machine / session). May be any of the following + forms: 10.0.0.1, 10.0.0.*, 10.0.*.*, 10.0.1-5.*, 10.0.0.1-5. default value: the hammering machines normal IP address PPrreemmaattuurree__CClloossee - The percentage of requests that will be improperly termi- - nated before sending/receiving is completed properly (to - test problems such as FIN_WAIT1). + The percentage of requests that will be improperly terminated before + sending/receiving is completed properly (to test problems such as + FIN_WAIT1). default value: 0 BBaadd__RReeqquueesstt - The percentage of requests the will be scrambled requests - (outside the properly defined scenarios). + The percentage of requests the will be scrambled requests (outside the + properly defined scenarios). default value: 0 RReeppoorrtt__TTiimmee - The time interval upon which to written report summaries - to the report log. + The time interval upon which to written report summaries to the report + log. default value: 0 (report only once at test end.) @@ -201,23 +188,22 @@ Currently not implemented. SSeenndd__CCooookkiiee - Turn on to allow the sending of cookies with requests. - Incoming cookies are buffered with each session when a - Set-Cookie header is found. They're sent back with further - requests to that session. Cookies are capped at 4K. + Turn on to allow the sending of cookies with requests. Incoming cookies + are buffered with each session when a Set-Cookie header is found. + They're sent back with further requests to that session. Cookies are + capped at 4K. default value: off PPrreemmaattuurree__CClloossee - The percentage of connections which will close permaturely - before the request reply has been fully read back from the - server. + The percentage of connections which will close permaturely before the + request reply has been fully read back from the server. default value: 0 LLoogg__LLeevveell - Log levels defined to work with the crawl functionality - - somewhat mystical and not confirmed to be working. + Log levels defined to work with the ccrraawwll functionality - somewhat mys- + tical and not confirmed to be working. default value: 0 @@ -227,36 +213,33 @@ Not implemented yet. CCrraawwll - Crawl though the URLs contained in the reply to a request. - Scope is somewhat unclear. Use with caution. + Crawl though the URLs contained in the reply to a request. Scope is + somewhat unclear. Use with caution. default value: off SSeelleeccttOOnn - When choosing a new sequence to commence, select from all - the scenarios [ _s_c_e_n_a_r_i_o ] or select from those scenarios - which are at the beginning of a sequence of scenarios [ - _s_e_q_u_e_n_c_e ]. + When choosing a new sequence to commence, select from all the scenarios + [ _s_c_e_n_a_r_i_o ] or select from those scenarios which are at the beginning + of a sequence of scenarios [ _s_e_q_u_e_n_c_e ]. default value: scenario SSttaarrtt__LLaagg - Start lag is a delay at thread startup before the first - request is issued. The delay can be used to control the - size of any startup spikes during the commencement of the - test. The threads (processes) pause for a time between 0 - and (Start_Lag * Sessions) milliseconds before issuing + Start lag is a delay at thread startup before the first request is + issued. The delay can be used to control the size of any startup spikes + during the commencement of the test. The threads (processes) pause for + a time between 0 and (Start_Lag * Sessions) milliseconds before issuing their first request. default value: 1 millisecond DDNNSS__SSeerrvveerr - Allow the specification of an alternate DNS server to use - to resolve the machinenames. This resolution is completed - once server DNS_TTL seconds. + Allow the specification of an alternate DNS server to use to resolve + the machinenames. This resolution is completed once server DNS_TTL sec- + onds. - default value: use the server nominated in - _/_e_t_c_/_r_e_s_o_l_v_._c_o_n_f + default value: use the server nominated in _/_e_t_c_/_r_e_s_o_l_v_._c_o_n_f DDNNSS__TTTTLL The Time To Live for the self cached DNS queries. @@ -264,8 +247,8 @@ default value: 120 seconds MMaacchhiinnee__NNaammee - The name of the machine/s to hammer. Names are resolved to - addresses using the DNS resolver. + The name of the machine/s to hammer. Names are resolved to addresses + using the DNS resolver. UUssee__SSSSLL Should SSL be used during each request? @@ -273,34 +256,30 @@ default value: no HHTTTTPP__RReeqquueesstt__TTyyppee - Specify the HTTP request version, the default value is - recommended as Hammerhead maybe not handle all 1.1 return - packets correctly. + Specify the HTTP request version, the default value is recommended as + Hammerhead maybe not handle all 1.1 return packets correctly. default value: HTTP/1.0 BBoottttlleeNNeecckk - Use connection bottlenecking to extend connecton holding - time + Use connection bottlenecking to extend connecton holding time Not implemented yet. MMaaxx__FFaaiilluurreess - The maximum number of request failures to be tolerated - before we abandon the test. The value 0 means that hammer- - head will never stop because of an excessive number of - request failures. + The maximum number of request failures to be tolerated before we aban- + don the test. The value 0 means that hammerhead will never stop because + of an excessive number of request failures. default value: 0 SSCCEENNAARRIIOO FFIILLEE - A scenario file is a plain text file, containing a set of - tagged value lines. The first character of each line is - the tag, and the rest of the line is the value. Tags are - matched case-sensitively. + A scenario file is a plain text file, containing a set of tagged value + lines. The first character of each line is the tag, and the rest of the + line is the value. Tags are matched case-sensitively. - Any line in the file beginning with a hash (#) is treated - as a comment, and ignored. + Any line in the file beginning with a hash (#) is treated as a comment, + and ignored. The tag types which are legal in this file are: @@ -317,8 +296,7 @@ RR The request to make. A valid HTTP request. - No default value. Scenarios without a Request are dis- - carded. + No default value. Scenarios without a Request are discarded. HH A header (beyond the basic GET request). @@ -331,9 +309,9 @@ No default value. EE - Expected results. Note that hhaammmmeerrhheeaadd will strip off all - HTTP header lines from the response (i.e. all lines up to - the first blank line in the response). + Expected results. Note that hhaammmmeerrhheeaadd will strip off all HTTP header + lines from the response (i.e. all lines up to the first blank line in + the response). No default value. @@ -345,63 +323,56 @@ SS Name of the next scenario in a sequence - No default value. A scenario without a SS scenario speci- - fied is assumed to be the last in a sequence. + No default value. A scenario without a SS scenario specified is assumed + to be the last in a sequence. TT - This option has 3 possible types of value: A number is the - "think" (or wait) time in milliseconds. If a '+' proceeds - the number then this specifies a fixed time from when Ham- - merhead begin to wait until (in milliseconds). If the 3rd - special value '_exit' is given, then the thread running - this scenario witll terminate after completing it. + This option has 3 possible types of value: A number is the "think" (or + wait) time in milliseconds. If a '+' proceeds the number then this + specifies a fixed time from when Hammerhead begin to wait until (in + milliseconds). If the 3rd special value '_exit' is given, then the + thread running this scenario witll terminate after completing it. default value: 0 XX - The number of times this scenario may be cross-referenced - by other scenarios (i.e. may be used in a sequence). A - value of -1 is used to represent unlimited use, while 0 - and positive numbers have the obvious meaning. + The number of times this scenario may be cross-referenced by other sce- + narios (i.e. may be used in a sequence). A value of -1 is used to rep- + resent unlimited use, while 0 and positive numbers have the obvious + meaning. default value: -1 OO - A number of options relating to a scenario are available. - For example, + A number of options relating to a scenario are available. For example, SSSSLL = [ _o_n|_o_f_f ] - This option turns SSL on or off for this request, - overriding the use of SSL in the configuration - file. + This option turns SSL on or off for this request, overriding the + use of SSL in the configuration file. PPOORRTT = [ _p_o_r_t ] - This option allows for an alternative port number - to be specificed for this scenario, overriding the - port specified in the configuration file. + This option allows for an alternative port number to be speci- + ficed for this scenario, overriding the port specified in the + configuration file. .. End of scenario definition. RREESSUULLTTSS FFIILLEE - The results file contains a log of all requests. Each log - line contains a time stamp, the process id of the session, - the name of the scenario used, three times, the size of - the response, the return code from the server and the - server description. - - The three recorded times are an offset from the initial - start time, the time it took to get the first response - from the server and the total time it took to get the com- - plete response and process it. Typically these two times - are similar, although network issues can cause the total - time to be somewhat greater than the response time. Each - time value is recorded in milliseconds. - - + The results file contains a log of all requests. Each log line contains + a time stamp, the process id of the session, the name of the scenario + used, three times, the size of the response, the return code from the + server and the server description. + + The three recorded times are an offset from the initial start time, the + time it took to get the first response from the server and the total + time it took to get the complete response and process it. Typically + these two times are similar, although network issues can cause the + total time to be somewhat greater than the response time. Each time + value is recorded in milliseconds. EEXXAAMMPPLLEESS CCoonnffiigguurraattiioonn FFiillee @@ -413,8 +384,7 @@ # put all log messages in this file Log_filename /u01/hammerhead/test1/test1.log - # Load all embedded images in each page returned by the - port + # Load all embedded images in each page returned by the port Load_images on # Simulate 50 users @@ -435,8 +405,7 @@ SScceennaarriioo FFiillee # Example Scenario file - test.scn - # Get the main page, then think for one second, then go - to + # Get the main page, then think for one second, then go to # the next scenario NTest Scenario 1 RGET / HTTP/1.0 @@ -445,8 +414,7 @@ E E EHammerhead - exploring Hammerland - E + E E . # Get some random page, don't think, and go nowhere else @@ -458,28 +426,27 @@ The following example: eexxaammppllee%% hhaammmmeerrhheeaadd --cc tteesstt..ccoonnff rreessuullttss..lloogg - hammers the machine/port specified in the tteesstt..ccoonnff con- - figuration file. + hammers the machine/port specified in the tteesstt..ccoonnff configuration file. EEXXIITT SSTTAATTUUSS The following exit values are returned: - 00 hhaammmmeerrhheeaadd ran successfully to completion. + 00 + + hhaammmmeerrhheeaadd ran successfully to completion. >>00 An error occurred. SSEEEE AALLSSOO iinneett__aaddddrr(3N) NNOOTTEESS - The scenario file created by hhaammmmeerrhheeaadd when using the - rreessuullttssFFiillee operand is optimised to make it quicker for to - load. All scenario names will be lost. Since hhaammmmeerrhheeaadd - only ever reports errors in terms of the request being - made, this is no great loss. + The scenario file created by hhaammmmeerrhheeaadd when using the rreessuullttssFFiillee op- + erand is optimised to make it quicker for to load. All scenario names + will be lost. Since hhaammmmeerrhheeaadd only ever reports errors in terms of the + request being made, this is no great loss. - The results generated when using the rreessuullttssFFiillee operand - may contain non-printing characters which may corrupt ter- - minal settings. + The results generated when using the rreessuullttssFFiillee operand may contain + non-printing characters which may corrupt terminal settings. - 03 Jul 2002 hammerhead(1) + 03 Jul 2002 hammerhead(1) --- hammerhead-2.1.3.orig/src/Makefile +++ hammerhead-2.1.3/src/Makefile @@ -32,6 +32,12 @@ # OS=$(shell uname) + +ifneq (, $(filter GNU GNU/%, $(OS))) + # Aliasing GNU(/Hurd) and GNU/k*BSD to Linux. + OS=Linux +endif + OBJPATH=obj/$(OS)/ DEFS=-D_REENTRANT -D$(OS) --- hammerhead-2.1.3.orig/src/connection.cc +++ hammerhead-2.1.3/src/connection.cc @@ -301,7 +301,7 @@ SSLeay_add_ssl_algorithms(); /* construct the context for secure connections */ - method = SSLv2_client_method(); + method = SSLv3_client_method(); context = SSL_CTX_new(method); ssl = SSL_new(context); } --- hammerhead-2.1.3.orig/src/str.cc +++ hammerhead-2.1.3/src/str.cc @@ -16,7 +16,7 @@ #include #include #include - +#include #include "str.h" #define MAXTMP 256 @@ -257,7 +257,7 @@ string lowercase(const string& instr) { string InStr = instr; - transform(InStr.begin(), InStr.end(), InStr.begin(), tolower); + transform(InStr.begin(), InStr.end(), InStr.begin(), (int(*)(int)) tolower); return InStr; } --- hammerhead-2.1.3.orig/src/if.cc +++ hammerhead-2.1.3/src/if.cc @@ -11,7 +11,7 @@ // #include "if.h" - +#include If::If() { --- hammerhead-2.1.3.orig/src/config.cc +++ hammerhead-2.1.3/src/config.cc @@ -57,7 +57,7 @@ int LogTimeFormat = TF_STRING; -char *SO_Names[] = { +const char *SO_Names[] = { "", "scenario", "sequence" @@ -83,15 +83,16 @@ int LogLevel = 0; -int ParseIPNumber(const char *a, int *al, int *ah) +int ParseIPNumber(const char *aconst, int *al, int *ah) { char *dash; + char *a = const_cast(string(aconst).c_str()); if (!a || !al || !ah) return -1; if (a[0] == '*') { *al = 1, *ah = 254; - } else if ( (dash = strchr(a, '-' )) != NULL) { + } else if ( (dash = strchr(a, '-' )) != NULL ) { *dash = '\0'; *al = atoi(a); *ah = atoi(dash+1); --- hammerhead-2.1.3.orig/src/config.h +++ hammerhead-2.1.3/src/config.h @@ -46,7 +46,7 @@ #endif #endif -extern char *SO_Names[]; +extern const char *SO_Names[]; extern int DNSTTLExpired; extern int DNSTimeToLive; --- hammerhead-2.1.3.orig/src/cmdline.cc +++ hammerhead-2.1.3/src/cmdline.cc @@ -13,6 +13,7 @@ // #include +#include #include #ifdef Linux #include --- hammerhead-2.1.3.orig/src/connection.h +++ hammerhead-2.1.3/src/connection.h @@ -25,7 +25,7 @@ String *name; Session *sess; - int Connection::fdConnect(void); + int fdConnect(void); public: virtual int connect(void) = 0; @@ -42,7 +42,7 @@ class SSL_Connection : public Connection { - SSL_METHOD *method; + const SSL_METHOD *method; X509 *server_certificate; SSL_CTX *context; SSL *ssl; --- hammerhead-2.1.3.orig/src/obj/Linux/.sdepend +++ hammerhead-2.1.3/src/obj/Linux/.sdepend @@ -1,25 +1,25 @@ obj/Linux/config.o: config.cc str.h String.h reader.h config.h distribution.h \ - target.h hrtime.h + target.h hrtime.h obj/Linux/hammerhead.o: hammerhead.cc dictionary.h str.h String.h scenario.h \ - result.h session.h hrtime.h if.h config.h distribution.h target.h \ - connection.h ../config.h statistics.h cmdline.h + result.h session.h hrtime.h if.h config.h distribution.h target.h \ + connection.h ../config.h statistics.h cmdline.h obj/Linux/if.o: if.cc if.h config.h String.h distribution.h target.h hrtime.h obj/Linux/scenario.o: scenario.cc result.h String.h str.h scenario.h session.h \ - hrtime.h if.h config.h distribution.h target.h dictionary.h \ - connection.h ../config.h statistics.h + hrtime.h if.h config.h distribution.h target.h dictionary.h connection.h \ + ../config.h statistics.h obj/Linux/str.o: str.cc str.h String.h obj/Linux/thread.o: thread.cc session.h hrtime.h String.h result.h if.h config.h \ - distribution.h target.h scenario.h dictionary.h connection.h \ - ../config.h statistics.h str.h + distribution.h target.h scenario.h dictionary.h connection.h ../config.h \ + statistics.h str.h obj/Linux/session.o: session.cc str.h String.h session.h hrtime.h result.h if.h \ - config.h distribution.h target.h scenario.h dictionary.h connection.h \ - ../config.h + config.h distribution.h target.h scenario.h dictionary.h connection.h \ + ../config.h obj/Linux/statistics.o: statistics.cc statistics.h config.h String.h distribution.h \ - target.h hrtime.h spinlock.h + target.h hrtime.h spinlock.h obj/Linux/hrtime.o: hrtime.cc hrtime.h obj/Linux/spinlock.o: spinlock.cc spinlock.h obj/Linux/connection.o: connection.cc str.h String.h config.h distribution.h \ - target.h hrtime.h scenario.h result.h session.h if.h dictionary.h \ - connection.h ../config.h + target.h hrtime.h scenario.h result.h session.h if.h dictionary.h \ + connection.h ../config.h obj/Linux/reader.o: reader.cc reader.h String.h obj/Linux/cmdline.o: cmdline.cc cmdline.h String.h --- hammerhead-2.1.3.orig/debian/dirs +++ hammerhead-2.1.3/debian/dirs @@ -0,0 +1,4 @@ +etc/hammerhead +usr/bin +usr/share/man/man1 +usr/share/doc/hammerhead --- hammerhead-2.1.3.orig/debian/docs +++ hammerhead-2.1.3/debian/docs @@ -0,0 +1,4 @@ +doc/hammerhead.html +doc/hammerhead.txt +doc/test.conf +doc/crawl.conf --- hammerhead-2.1.3.orig/debian/rules +++ hammerhead-2.1.3/debian/rules @@ -0,0 +1,110 @@ +#!/usr/bin/make -f +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 to 1999 by Joey Hess. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# These are used for cross-compiling and for saving the configure script +# from having to guess our platform (since we know it already) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + + +ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) + CFLAGS += -g +endif +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + INSTALL_PROGRAM += -s +endif + +config.status: configure + dh_testdir + # Add here commands to configure the package. + ./configure --host=$(DEB_HOST_GNU_TYPE) \ + --sysconfdir=/etc \ + --build=$(DEB_BUILD_GNU_TYPE) \ + --prefix=/usr \ + --mandir=\$${prefix}/share/man \ + --infodir=\$${prefix}/share/info + +build: build-arch build-indep +build-arch: build-stamp +build-indep: build-stamp + +build-stamp: config.status + dh_testdir + + # Add here commands to compile the package. + $(MAKE) + #/usr/bin/docbook-to-man debian/hammerhead.sgml > hammerhead.1 + + touch build-stamp + +clean: + dh_testdir + dh_testroot + rm -f build-stamp + + # Add here commands to clean up after the build process. + [ ! -f Makefile ] || $(MAKE) veryclean + -test -r /usr/share/misc/config.sub && \ + cp -f /usr/share/misc/config.sub config.sub + -test -r /usr/share/misc/config.guess && \ + cp -f /usr/share/misc/config.guess config.guess + + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_prep + dh_installdirs + + # Add here commands to install the package into debian/hammerhead. + # the bin + $(MAKE) install prefix=$(CURDIR)/debian/hammerhead/usr + # the manpage + install -m 0644 doc/hammerhead.1 $(CURDIR)/debian/hammerhead/usr/share/man/man1/hammerhead.1 + # the example configfiles + install -m 0644 doc/test.conf $(CURDIR)/debian/hammerhead/etc/hammerhead/hh.conf + install -m 0644 doc/root.scn $(CURDIR)/debian/hammerhead/etc/hammerhead/root.scn + install -m 0644 doc/post.scn $(CURDIR)/debian/hammerhead/etc/hammerhead/post.scn + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot +# dh_installdebconf + dh_installdocs + dh_installexamples + dh_installmenu +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_installinit + dh_installcron + dh_installman + dh_installinfo +# dh_undocumented + dh_installchangelogs CHANGELOG + dh_link + dh_strip + dh_compress + dh_fixperms +# dh_makeshlibs + dh_installdeb +# dh_perl + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install --- hammerhead-2.1.3.orig/debian/compat +++ hammerhead-2.1.3/debian/compat @@ -0,0 +1 @@ +8 --- hammerhead-2.1.3.orig/debian/changelog +++ hammerhead-2.1.3/debian/changelog @@ -0,0 +1,101 @@ +hammerhead (2.1.3-9.2) unstable; urgency=low + + * Non-maintainer upload. + * Fix FTBFS with latest libssl. Thanks to Ilya Barygin + for the patch from Ubuntu. Closes: #622076. + * Misc cleanups prompted by lintian: + + Add ${misc:Depends} + + Update to debhelper compat level 8 + + Add initial build-arch and build-indep rules + + Update Standards-Version + + Clarify licensing (explicitly GPL v2) in copyright file. + + Fix man bugs in hammerhead.1 + + Replace dh_clean -k with dh_prep + + -- Steve McIntyre Fri, 23 Dec 2011 15:26:35 +0000 + +hammerhead (2.1.3-9.1) unstable; urgency=low + + * Non-maintainer upload. + * Fix "FTBFS with GCC 3.4: missing #include"; applied patch in BTS (Closes: + #505076) + * Fix "FTBFS: config.cc:94: error: invalid conversion from 'const + char*' to 'char*'"; made a copy of a string where necessary (Closes: + #560445) + + -- Jimmy Kaplowitz Fri, 29 Jan 2010 22:51:21 -0500 + +hammerhead (2.1.3-9) unstable; urgency=low + + * acknowledge NMU (closes: #455361) + * debian/control Standards-Version + * debian/control added Homepage field + * fixing lintian warnings + - debian-rules-ignores-make-clean-error + - copyright-without-copyright-notice + + -- Noèl Köthe Sun, 23 Mar 2008 20:41:37 +0100 + +hammerhead (2.1.3-8.1) unstable; urgency=medium + + * Non-maintainer upload. + * Fix FTBFS with GCC 4.3 (Closes: #455361). + + -- Luk Claes Sat, 22 Mar 2008 10:23:36 +0000 + +hammerhead (2.1.3-8) unstable; urgency=low + + * updated Standards-Version + * added missing GNU/kFreeBSD OS detection + (closes: Bug#414618) + + -- Noèl Köthe Mon, 18 Jun 2007 21:08:05 +0200 + +hammerhead (2.1.3-7) unstable; urgency=low + + * apply the missing patch (closes: Bug#356579) + + -- Noèl Köthe Wed, 22 Mar 2006 00:08:00 +0100 + +hammerhead (2.1.3-6) unstable; urgency=low + + * fixing gcc 4.1 compile failure. Thanks Martin + (closes: Bug#356579) + + -- Noèl Köthe Sun, 12 Mar 2006 22:56:59 +0100 + +hammerhead (2.1.3-5) unstable; urgency=low + + * rebuild with libssl 0.9.8 + + -- Noèl Köthe Fri, 07 Oct 2005 09:36:21 +0200 + +hammerhead (2.1.3-4) unstable; urgency=low + + * updated Standards-Version + * recompile with gcc4 + + -- Noèl Köthe Wed, 13 Jul 2005 22:55:16 +0200 + +hammerhead (2.1.3-3) unstable; urgency=low + + * updated Standards-Version + * using utf-8 in changelog and control + + -- Noèl Köthe Wed, 10 Sep 2003 21:30:00 +0200 + +hammerhead (2.1.3-2) unstable; urgency=low + + * added missing build depency + + -- Noel Koethe Thu, 20 Mar 2003 13:47:00 +0100 + +hammerhead (2.1.3-1) unstable; urgency=low + + * Initial Release. + (closes: Bug#172514) + * added the ssl exception (see cvs: + http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/hammerhead/hammerhead/Copying?rev=HEAD&content-type=text/plain + + -- Noel Koethe Tue, 10 Dec 2002 13:38:51 +0100 + --- hammerhead-2.1.3.orig/debian/copyright +++ hammerhead-2.1.3/debian/copyright @@ -0,0 +1,28 @@ +This package was debianized by +Noel Koethe on Tue, 10 Dec 2002 13:38:51 +0100. + +It was downloaded from https://sf.net/projects/hammerhead/ + +Upstream Author: Geoff Wong + Mick Dwyer + Jon Gifford + +Copyright: (C) 2003 Geoff Wong + +Released under the terms of the GPLv2; see +/usr/share/common-licenses/GPL-2. + +with an additional ssl exception: + +2. OPENSSL SPECIAL EXEMPTION. + +In addition, as a special exception permission is granted to link the +code of this release of Hammerhead with the OpenSSL project's "OpenSSL" +library (or with modified versions of it that use the same license as +the "OpenSSL" library), and distribute the linked executables. You must +obey the GNU General Public License in all respects for all of the code +used other than "OpenSSL". If you modify this file, you may extend this +exception to your version of the file, but you are not obligated to do +so. If you do not wish to do so, delete this exception statement from +your version of this file. + --- hammerhead-2.1.3.orig/debian/control +++ hammerhead-2.1.3/debian/control @@ -0,0 +1,22 @@ +Source: hammerhead +Section: net +Priority: optional +Maintainer: Noèl Köthe +Build-Depends: debhelper (>> 8.0.0), net-tools, libssl-dev +Standards-Version: 3.9.2 +Homepage: http://hammerhead.sourceforge.net/ + +Package: hammerhead +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: stress testing tool for web server and web site + A stress testing tool designed to test out + your web server and web site. It can initiate multiple + connections from IP aliases and simulated numerous (256+) + users at any given time. The rate at which Hammerhead + attempts to pound your site is fully configurable, + there are numerous other options for trying to create + problems with a web site (so you can fix them). + . + http://hammerhead.sourceforge.net/ + https://sf.net/projects/hammerhead/