From 683b54a9be9ec755a957e14cb0fe05a6822b407b Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Tue, 10 May 2005 01:14:30 +0000 Subject: [PATCH] Clean up unnecessary divergences from upstream to reduce the size of the diff and make auditing easier. --- config.guess | 1058 ++++++++---------- src/WINNT/install/Win9x/ReadMe.rtf | 174 +-- src/WINNT/pthread/test/native.cpp | 1600 +++++++--------------------- src/afs/SUNOS/osi_inode.h | 2 +- src/auth/Makefile.in | 4 +- src/comerr/Makefile.in | 1 - src/des/conf-ppc-linux.h | 13 +- src/kauth/Makefile.in | 2 - src/libafs/MakefileProto.LINUX.in | 1 - src/libafs/make_kbuild_makefile.pl | 12 - src/lwp/Makefile.in | 3 - src/ptserver/Makefile.in | 5 +- src/rx/Makefile.in | 3 +- src/rx/SUNOS/rx_knet.c | 2 +- src/rxkad/Makefile.in | 2 - src/sys/Makefile.in | 1 - src/ubik/Makefile.in | 8 +- src/util/Makefile.in | 2 +- 18 files changed, 947 insertions(+), 1946 deletions(-) diff --git a/config.guess b/config.guess index 51fab4770..a8f68a046 100755 --- a/config.guess +++ b/config.guess @@ -1,9 +1,9 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 +# Free Software Foundation, Inc. -timestamp='2004-03-12' +version='2004-08-19' # 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 @@ -24,50 +24,38 @@ timestamp='2004-03-12' # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. +# Written by Per Bothner . +# Please send patches to . # # 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 build system type. +# 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). +# me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] -Output the configuration name of the system \`$me' is run on. +Output the configuration name of this system. 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 -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." + -h, --help print this help, then exit + -V, --version print version number, then exit" 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 0 ;; - --version | -v ) + case "$1" in + --version | --vers* | -V ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; @@ -76,7 +64,9 @@ while test $# -gt 0 ; do - ) # Use stdin as input. break ;; -* ) - echo "$me: invalid option $1$help" >&2 + exec >&2 + echo "$me: invalid option $1" + echo "$help" exit 1 ;; * ) break ;; @@ -88,227 +78,132 @@ if test $# != 0; then 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. +# Use $HOST_CC if defined. $CC may point to a cross-compiler +if test x"$CC_FOR_BUILD" = x; then + if test x"$HOST_CC" != x; then + CC_FOR_BUILD="$HOST_CC" + else + if test x"$CC" != x; then + CC_FOR_BUILD="$CC" + else + CC_FOR_BUILD=cc + fi + fi +fi -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 -q "$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 ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) +# (ghazi@noc.rutgers.edu 8/24/94.) 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 +dummy=dummy-$$ +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 + # 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 ;; - *) 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 __ELF__ >/dev/null - 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 - ;; + # Determine the machine/vendor (is the vendor relevant). + case "${UNAME_MACHINE}" in + amiga) machine=m68k-unknown ;; + arm32) machine=arm-unknown ;; + atari*) machine=m68k-atari ;; + sun3*) machine=m68k-sun ;; + mac68k) machine=m68k-apple ;; + macppc) machine=powerpc-apple ;; + hp3[0-9][05]) machine=m68k-hp ;; + ibmrt|romp-ibm) machine=romp-ibm ;; + *) machine=${UNAME_MACHINE}-unknown ;; esac + # The Operating System including object format. + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi # 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 + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` # 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 0 ;; - amd64:OpenBSD:*:*) - echo x86_64-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - cats:OpenBSD:*:*) - echo arm-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-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 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pegasos:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit 0 ;; - macppc:MirBSD:*:*) - echo powerppc-unknown-mirbsd${UNAME_RELEASE} - exit 0 ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit 0 ;; alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) + if test $UNAME_RELEASE = "V4.0"; then UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *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. + fi # 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. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha*:OpenVMS:*:*) - echo alpha-hp-vms + cat <$dummy.s + .data +\$Lformat: + .byte 37,100,45,37,120,10,0 # "%d-%x\n" + + .text + .globl main + .align 4 + .ent main +main: + .frame \$30,16,\$26,0 + ldgp \$29,0(\$27) + .prologue 1 + .long 0x47e03d80 # implver \$0 + lda \$2,-1 + .long 0x47e20c21 # amask \$2,\$1 + lda \$16,\$Lformat + mov \$0,\$17 + not \$1,\$18 + jsr \$26,printf + ldgp \$29,0(\$26) + mov 0,\$16 + jsr \$26,exit + .end main +EOF + $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null + if test "$?" = 0 ; then + case `./$dummy` in + 0-0) + UNAME_MACHINE="alpha" + ;; + 1-0) + UNAME_MACHINE="alphaev5" + ;; + 1-1) + UNAME_MACHINE="alphaev56" + ;; + 1-101) + UNAME_MACHINE="alphapca56" + ;; + 2-303) + UNAME_MACHINE="alphaev6" + ;; + 2-307) + UNAME_MACHINE="alphaev67" + ;; + esac + fi + rm -f $dummy.s $dummy + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? @@ -322,22 +217,37 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit 0;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit 0 ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos + 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 ;; *:OS/390:*:*) echo i370-ibm-openedition exit 0 ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + SR2?01:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) @@ -351,13 +261,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7 && exit 0 ;; - esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; @@ -386,7 +289,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) @@ -400,9 +303,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit 0 ;; + atari*:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; # 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 + # "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 @@ -426,8 +332,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} + sun3*:OpenBSD:*:*) + echo m68k-unknown-openbsd${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 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} @@ -445,7 +360,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo clipper-intergraph-clix${UNAME_RELEASE} exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ @@ -467,20 +381,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && exit 0 + $CC_FOR_BUILD $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 echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit 0 ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit 0 ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit 0 ;; @@ -496,7 +402,7 @@ EOF AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] @@ -528,20 +434,11 @@ EOF ????????: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:*:*) + i?86:AIX:*:*) echo i386-ibm-aix exit 0 ;; - 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 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include @@ -553,7 +450,8 @@ EOF exit(0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 @@ -562,16 +460,16 @@ EOF fi exit 0 ;; *:AIX:*:[45]) - 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_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` + if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep -i PowerPC >/dev/null 2>&1; then IBM_ARCH=powerpc - fi + else + IBM_ARCH=rs6000 + fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV=4.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit 0 ;; @@ -597,28 +495,11 @@ EOF echo m68k-hp-bsd4.4 exit 0 ;; 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/[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 + sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include @@ -651,29 +532,13 @@ EOF exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; + (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` + rm -f $dummy.c $dummy esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - # avoid double evaluation of $set_cc_for_build - test -n "$CC_FOR_BUILD" || eval $set_cc_for_build - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; - ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} + echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int @@ -699,7 +564,8 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) @@ -708,7 +574,7 @@ EOF 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit 0 ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + *9??*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit 0 ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) @@ -717,7 +583,7 @@ EOF hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit 0 ;; - i*86:OSF1:*:*) + i?86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else @@ -727,6 +593,9 @@ EOF parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit 0 ;; + hppa*:OpenBSD:*:*) + echo hppa-unknown-openbsd + exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit 0 ;; @@ -745,39 +614,41 @@ EOF C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit 0 ;; + CRAY*X-MP:*:*:*) + echo xmp-cray-unicos + exit 0 ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo ymp-cray-unicos${UNAME_RELEASE} exit 0 ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ exit 0 ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - *:UNICOS/mp:*:*) - echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + CRAY-2:*:*:*) + echo cray2-cray-unicos + exit 0 ;; + F300:UNIX_System_V:*:*) 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}" + echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; - 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}" + F301:UNIX_System_V:*:*) + echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + i?86:BSD/386:*:* | i?86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; sparc*:BSD/OS:*:*) @@ -787,21 +658,10 @@ EOF echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - # GNU/KFreeBSD systems have a "k" prefix to indicate we are using - # FreeBSD's kernel, but not the complete OS. - case ${LIBC} in gnu) kernel_only='k' ;; esac - echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin @@ -812,17 +672,11 @@ EOF i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit 0 ;; - x86:Interix*:[34]*) - echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' - exit 0 ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit 0 ;; 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 + echo i386-pc-interix exit 0 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin @@ -834,178 +688,232 @@ EOF echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) - # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; - *: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 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit 0 ;; - arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit 0 ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 - ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit 0 ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit 0 ;; - 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 ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; - 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 0 ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit 0 ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit 0 ;; - i*86:Linux:*:*) + *:Linux:*:*) + # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d + ld_help_string=`cd /; ld --help 2>&1` + ld_supported_emulations=`echo $ld_help_string \ + | sed -ne '/supported emulations:/!d s/[ ][ ]*/ /g - s/.*supported targets: *// + s/.*supported emulations: *// s/ .*// p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + case "$ld_supported_emulations" in + *ia64) + echo "${UNAME_MACHINE}-unknown-linux" + exit 0 ;; - a.out-i386-linux) + i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; - coff-i386) + exit 0 + ;; + elf_i?86) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; + exit 0 + ;; + sparclinux) + echo "${UNAME_MACHINE}-unknown-linux-gnuaout" + exit 0 + ;; + armlinux) + echo "${UNAME_MACHINE}-unknown-linux-gnuaout" + exit 0 + ;; + elf32arm*) + echo "${UNAME_MACHINE}-unknown-linux-gnuoldld" + exit 0 + ;; + armelf_linux*) + echo "${UNAME_MACHINE}-unknown-linux-gnu" + exit 0 + ;; + m68klinux) + echo "${UNAME_MACHINE}-unknown-linux-gnuaout" + exit 0 + ;; + elf32ppc | elf32ppclinux) + # Determine Lib Version + cat >$dummy.c < +#if defined(__GLIBC__) +extern char __libc_version[]; +extern char __libc_release[]; +#endif +main(argc, argv) + int argc; + char *argv[]; +{ +#if defined(__GLIBC__) + printf("%s %s\n", __libc_version, __libc_release); +#else + printf("unkown\n"); +#endif + return 0; +} +EOF + LIBC="" + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null + if test "$?" = 0 ; then + ./$dummy | grep 1\.99 > /dev/null + if test "$?" = 0 ; then + LIBC="libc1" + fi + fi + rm -f $dummy.c $dummy + echo powerpc-unknown-linux-gnu${LIBC} + exit 0 + ;; + shelf_linux) + echo "${UNAME_MACHINE}-unknown-linux-gnu" + exit 0 + ;; esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #ifdef __INTEL_COMPILER - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif + + if test "${UNAME_MACHINE}" = "alpha" ; then + cat <$dummy.s + .data + \$Lformat: + .byte 37,100,45,37,120,10,0 # "%d-%x\n" + + .text + .globl main + .align 4 + .ent main + main: + .frame \$30,16,\$26,0 + ldgp \$29,0(\$27) + .prologue 1 + .long 0x47e03d80 # implver \$0 + lda \$2,-1 + .long 0x47e20c21 # amask \$2,\$1 + lda \$16,\$Lformat + mov \$0,\$17 + not \$1,\$18 + jsr \$26,printf + ldgp \$29,0(\$26) + mov 0,\$16 + jsr \$26,exit + .end main +EOF + LIBC="" + $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null + if test "$?" = 0 ; then + case `./$dummy` in + 0-0) + UNAME_MACHINE="alpha" + ;; + 1-0) + UNAME_MACHINE="alphaev5" + ;; + 1-1) + UNAME_MACHINE="alphaev56" + ;; + 1-101) + UNAME_MACHINE="alphapca56" + ;; + 2-303) + UNAME_MACHINE="alphaev6" + ;; + 2-307) + UNAME_MACHINE="alphaev67" + ;; + 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 < /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif +#ifdef __MIPSEB__ + printf ("%s-unknown-linux-gnu\n", argv[1]); +#endif +#ifdef __MIPSEL__ + printf ("%sel-unknown-linux-gnu\n", argv[1]); +#endif + return 0; +} EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 - ;; - 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. + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + elif test "${UNAME_MACHINE}" = "s390x"; then + echo s390x-ibm-linux && exit 0 + elif test "${UNAME_MACHINE}" = "s390"; then + echo s390-ibm-linux && exit 0 + elif test "${UNAME_MACHINE}" = "x86_64"; then + echo x86_64-unknown-linux-gnu && exit 0 + 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 < +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif +#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; +} +EOF + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + 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*:*) echo i386-sequent-sysv4 exit 0 ;; - i*86:UNIX_SV:4.2MP:2.*) + 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, @@ -1013,27 +921,7 @@ EOF # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit 0 ;; - 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 0 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + 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_REL} @@ -1041,32 +929,36 @@ EOF echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit 0 ;; - i*86:*:5:[78]*) - 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} + i?86:*:5:7*) + # Fixed at (any) Pentium or better + UNAME_MACHINE=i586 + if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then + echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} + fi exit 0 ;; - i*86:*:3.2:*) + 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|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + 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_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + (/bin/uname -X|egrep '^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:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit 0 ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about @@ -1090,15 +982,9 @@ EOF # "miniframe" echo m68010-convergent-sysv exit 0 ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit 0 ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit 0 ;; M68*:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 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) + 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` @@ -1109,21 +995,21 @@ EOF 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.*:* | m68*:LynxOS:3.0*:*) + m68*:LynxOS:2.*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit 0 ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit 0 ;; + i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; - rs6000:LynxOS:2.*:*) + rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit 0 ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit 0 ;; @@ -1141,8 +1027,8 @@ EOF echo ns32k-sni-sysv fi exit 0 ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says + PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says echo i586-unisys-sysv4 exit 0 ;; *:UNIX_System_V:4*:FTX*) @@ -1154,10 +1040,6 @@ EOF # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit 0 ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit 0 ;; @@ -1186,9 +1068,6 @@ EOF SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit 0 ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit 0 ;; @@ -1196,29 +1075,20 @@ EOF echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) - case `uname -p` in - *86) UNAME_PROCESSOR=i686 ;; - powerpc) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + echo `uname -p`-apple-darwin${UNAME_RELEASE} exit 0 ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 + if test "${UNAME_MACHINE}" = "x86pc"; then UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + echo `uname -p`-${UNAME_MACHINE}-nto-qnx exit 0 ;; *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; - NSR-?:NONSTOP_KERNEL:*:*) + NSR-[KW]:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit 0 ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit 0 ;; @@ -1236,36 +1106,13 @@ EOF fi echo ${UNAME_MACHINE}-unknown-plan9 exit 0 ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit 0 ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit 0 ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit 0 ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit 0 ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit 0 ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit 0 ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit 0 ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; + *:OS/2:*:*) + echo ${UNAME_MACHINE}-pc-os2_emx esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 -eval $set_cc_for_build cat >$dummy.c < @@ -1352,24 +1199,11 @@ main () #endif #if defined (vax) -# 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 +#if !defined (ultrix) + printf ("vax-dec-bsd\n"); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif #endif #if defined (alliant) && defined (i860) @@ -1380,7 +1214,8 @@ main () } EOF -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 +$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0 +rm -f $dummy.c $dummy # Apollos put the system type in the environment. @@ -1415,9 +1250,8 @@ fi cat >&2 < in order to provide the needed information to handle your system. -config.guess timestamp = $timestamp +config.guess version = $version uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` @@ -1453,7 +1287,7 @@ exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" +# time-stamp-start: "version='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: diff --git a/src/WINNT/install/Win9x/ReadMe.rtf b/src/WINNT/install/Win9x/ReadMe.rtf index 975a6a819..019adb802 100644 --- a/src/WINNT/install/Win9x/ReadMe.rtf +++ b/src/WINNT/install/Win9x/ReadMe.rtf @@ -1,88 +1,88 @@ -{\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\froman Times New Roman;}{\f3\froman Times New Roman;}} -{\colortbl\red0\green0\blue0;\red0\green0\blue255;} -\deflang1033\pard\qc\plain\f2\fs28\b AFS Client for Windows 95/98 (\plain\f2\fs20\b Version 2.0.0.0 - 04/20/01 12:18 PM\plain\f2\fs28\b ) -\par \pard\plain\f2\fs28 -\par \plain\f2\fs20 Welcome to the Open AFS Client for Windows 95/98. -\par -\par This client will allow you to access files on sites stored all over the Internet as though the files were residing on your local machine. You can store your own files on the Internet to share with others, and can limit access to your files to specific users or groups of users. You can browse through the different AFS sites (known as \plain\f2\fs20\i cells\plain\f2\fs20 ) from a single file tree and use standard Windows programs such as Explorer to copy and manipulate files. You can open files stored on the Internet directly from Windows applications. -\par -\par One drive letter will be created on your machine by default - Z:. The Z: drive will be the root of the AFS tree, allowing you to browse all sites that have AFS servers available. -\par -\par This is a native Windows 9x client; a gateway machine is not required. -\par -\par \plain\f2\fs24\b System Requirements -\par -\par \plain\f2\fs20 IBM compatible PC running Windows 95 (see below) or 98 -\par 16 MB RAM -\par 20 MB free disk space -\par Client for Microsoft Networks must be installed -\par TCP/IP protocol stack must be installed -\par -\par \plain\f2\fs24\b Getting Started -\par \plain\f2\fs20 -\par To use the client, you will need to perform the following tasks after installation and reboot: -\par -\par 1) Boot up your machine and log in to Windows. (Note: if you bypass the login by hitting "Cancel" at the login screen, Windows networking will not work and you will not be able to mount your drives.) -\par 2) Connect to the Internet or your company's intranet. (Note: If you are using the client in a firewalled intranet environment with private AFS cells, you will probably need a CellServDB file specific to your -\par company's environment. Ask your system administrator.) -\par 3) Check your system time, timezone, and date settings and make sure they are synchronized with the AFS server. -\par 4) Start the AFS Client by double-clicking on the icon on the desktop or Start Menu. -\par 5) A box will appear asking for your userid and password. Type them in and press "Connect". This will -\par authenticate you to the AFS cell you specified at installation. (Note: You cannot use the GUI interface to authenticate to other cells at present. This will be added later. You can still authenticate to other cells using the "klog" command; see "Command Line Tools" below.) Use the "Save Password" checkbox to enable the AFS Client to save your password in the registry for use next time you run the AFS Client. (The password will be saved encrypted in the registry if you are running Windows 98 or have installed Internet Explorer version 4.0 or later. Otherwise, it will be saved in clear text. We recommend you do not use the save password feature if encryption is not available on your system.) -\par 6) Now a Windows Explorer will start to allow you to browse your new Z: drive. Z: will be the root of the AFS tree. -\par 7) By checking "Advanced Options", you can add and change your drive letter assignments. There is one share assigned by default, "all". (Note: the "all" share cannot be removed.) New shares must be assigned a unique share name and an AFS path. You can mount and unmount your AFS drives by checking or unchecking the box next to each drive letter. You can also set whether a drive will be automatically mounted at startup by highlighting the drive and clicking "Change". -\par 8) You can kill or minimize the AFS client dialog window. Double click the icon in the system tray to restore it. -\par 9) When you are ready to shut down the AFS client, bring up the AFS client dialog and click the "Disconnect" button. This will terminate the AFS daemon. Then click "Exit" to quit. -\par -\par Complete documentation for the AFS client is available at: -\par http://www.openafs.org/dl/openafs/1.0.2/afs-3.6-doc.tar.gz -\par -\par \plain\f2\fs24\b Explorer Shell Extension -\par -\par \plain\f2\fs20 You can right click on items within an AFS tree to bring up an "AFS" menu item. Under this menu are various operations you can execute on a file or directory. The most useful item is "Access Control Lists" which allows you to view and edit the permissions of a particular directory. -\par -\par -\par \plain\f2\fs24\b Command Line Tools -\par -\par \plain\f2\fs20 The following command line tools are available in the install directory. See the full documentation at the above URL for complete information on these commands: -\par -\par klog.exe: \tab Authenticate a user to a cell, e.g. "klog joeuser@mycell.com" \tab -\par unlog.exe: \tab Unauthenticate to a cell\tab -\par tokens.exe\tab List which tokens you have (cells you have authenticated to) and their expiration times\tab -\par kpasswd.exe\tab Change your password for the specified cell\tab -\par symlink.exe: \tab Create a symbolic link , e.g. "symlink make dest src" makes a link called "dest" pointing to file "src"\tab -\par fs.exe: \tab This command is used for a number of file server functions. Type "fs help" for a list, and then "fs help function" to get detailed help for that function. See the documentation for more info.\tab -\par fs help\tab list functions\tab -\par fs listacl \tab show directory access control list\tab -\par fs setacl \tab set directory access control list\tab -\par fs listquota \tab show directory disk quota\tab -\par fs flushvolume \tab flush cached data from volume\tab -\par pts.exe\tab This command is used for user administration functions. See the documentation for more info. (Note: this command currently does not work in Windows 95.)\tab -\par -\par \plain\f2\fs24\b Known Issues -\par -\par \pard\li720\fi-360\plain\f2\fs20 1) The Microsoft Visual Studio linker "link.exe" fails when writing to a file stored in AFS. It freezes the system for a minute or so and then times out. This problem may exist in other programs as well. -\par 2) Occasionally the U: and Z: drive letters are not mapped automatically when the client is started. If this happens, you can map them manually by entering the commands: -\par \pard\li1440\fi-360\tx1440\plain\f2\fs20 0net use u: \\\\mymachine-afs\\home -\par 1net use z: \\\\mymachine-afs\\all -\par 2where "mymachine" is the Windows networking name of your machine. -\par \pard\li720\fi-360\plain\f2\fs20 3) The Windows file system does not understand symbolic links, so links to directories just look like normal directories. This can lead to problems when trying to recursively copy a directory, since following cyclical links can lead to infinite regress. -\par 4) The Office 2000 install program seems to take a very long time to install Office 2000 to AFS. -\par 5) You must log in to Windows for Windows networking to work correctly. If you bypass the login, AFS will time out trying to start the AFS client console, with the error "Connect can't continue: Network error adding Z:all." -\par 6) Under certain configurations the AFS Client Console will report a cache error. This will prevent the AFS Client from initializing. -\par 7) Infrequently Windows will incorrectly notify the AFS Control Panel that there are open files. If this prevents AFS from disconnecting, it will require you to reboot. -\par \pard\plain\f2\fs20 -\par -\par \plain\f2\fs24\b Legalities -\par -\par \pard\li720\ri810\plain\f2\fs24\i Copyright 2000, International Business Machines Corporation and others. All Rights Reserved. This software has been released under the terms of the IBM Public License. For details, see the LICENSE file in the top-level source directory or online at \plain\f2\fs24\cf1\i\ul http://www.openafs.org/dl/license10.html\plain\f2\fs24\b -\par \pard\plain\f2\fs24\b -\par \plain\f2\fs20 This program was compiled using the DJGPP compiler and includes object code copyrighted by DJ Delorie. The compiler and libraries are available at http://www.delorie.com. -\par -\par This program includes software developed by the University of California, Berkeley, and its contributors. -\par -\par This program has been distributed with, and uses the services of, the sock.vxd and mmap.vxd drivers written for the Coda project at http://www.coda.cs.cmu.edu and licensed under the GNU General Public License. Source code for these drivers is available at the above web site. -\par -\par -\par } +{\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\froman Times New Roman;}{\f3\froman Times New Roman;}} +{\colortbl\red0\green0\blue0;\red0\green0\blue255;} +\deflang1033\pard\qc\plain\f2\fs28\b AFS Client for Windows 95/98 (\plain\f2\fs20\b Version 2.0.0.0 - 04/20/01 12:18 PM\plain\f2\fs28\b ) +\par \pard\plain\f2\fs28 +\par \plain\f2\fs20 Welcome to the Open AFS Client for Windows 95/98. +\par +\par This client will allow you to access files on sites stored all over the Internet as though the files were residing on your local machine. You can store your own files on the Internet to share with others, and can limit access to your files to specific users or groups of users. You can browse through the different AFS sites (known as \plain\f2\fs20\i cells\plain\f2\fs20 ) from a single file tree and use standard Windows programs such as Explorer to copy and manipulate files. You can open files stored on the Internet directly from Windows applications. +\par +\par One drive letter will be created on your machine by default - Z:. The Z: drive will be the root of the AFS tree, allowing you to browse all sites that have AFS servers available. +\par +\par This is a native Windows 9x client; a gateway machine is not required. +\par +\par \plain\f2\fs24\b System Requirements +\par +\par \plain\f2\fs20 IBM compatible PC running Windows 95 (see below) or 98 +\par 16 MB RAM +\par 20 MB free disk space +\par Client for Microsoft Networks must be installed +\par TCP/IP protocol stack must be installed +\par +\par \plain\f2\fs24\b Getting Started +\par \plain\f2\fs20 +\par To use the client, you will need to perform the following tasks after installation and reboot: +\par +\par 1) Boot up your machine and log in to Windows. (Note: if you bypass the login by hitting "Cancel" at the login screen, Windows networking will not work and you will not be able to mount your drives.) +\par 2) Connect to the Internet or your company's intranet. (Note: If you are using the client in a firewalled intranet environment with private AFS cells, you will probably need a CellServDB file specific to your +\par company's environment. Ask your system administrator.) +\par 3) Check your system time, timezone, and date settings and make sure they are synchronized with the AFS server. +\par 4) Start the AFS Client by double-clicking on the icon on the desktop or Start Menu. +\par 5) A box will appear asking for your userid and password. Type them in and press "Connect". This will +\par authenticate you to the AFS cell you specified at installation. (Note: You cannot use the GUI interface to authenticate to other cells at present. This will be added later. You can still authenticate to other cells using the "klog" command; see "Command Line Tools" below.) Use the "Save Password" checkbox to enable the AFS Client to save your password in the registry for use next time you run the AFS Client. (The password will be saved encrypted in the registry if you are running Windows 98 or have installed Internet Explorer version 4.0 or later. Otherwise, it will be saved in clear text. We recommend you do not use the save password feature if encryption is not available on your system.) +\par 6) Now a Windows Explorer will start to allow you to browse your new Z: drive. Z: will be the root of the AFS tree. +\par 7) By checking "Advanced Options", you can add and change your drive letter assignments. There is one share assigned by default, "all". (Note: the "all" share cannot be removed.) New shares must be assigned a unique share name and an AFS path. You can mount and unmount your AFS drives by checking or unchecking the box next to each drive letter. You can also set whether a drive will be automatically mounted at startup by highlighting the drive and clicking "Change". +\par 8) You can kill or minimize the AFS client dialog window. Double click the icon in the system tray to restore it. +\par 9) When you are ready to shut down the AFS client, bring up the AFS client dialog and click the "Disconnect" button. This will terminate the AFS daemon. Then click "Exit" to quit. +\par +\par Complete documentation for the AFS client is available at: +\par http://www.openafs.org/dl/openafs/1.0.2/afs-3.6-doc.tar.gz +\par +\par \plain\f2\fs24\b Explorer Shell Extension +\par +\par \plain\f2\fs20 You can right click on items within an AFS tree to bring up an "AFS" menu item. Under this menu are various operations you can execute on a file or directory. The most useful item is "Access Control Lists" which allows you to view and edit the permissions of a particular directory. +\par +\par +\par \plain\f2\fs24\b Command Line Tools +\par +\par \plain\f2\fs20 The following command line tools are available in the install directory. See the full documentation at the above URL for complete information on these commands: +\par +\par klog.exe: \tab Authenticate a user to a cell, e.g. "klog joeuser@mycell.com" \tab +\par unlog.exe: \tab Unauthenticate to a cell\tab +\par tokens.exe\tab List which tokens you have (cells you have authenticated to) and their expiration times\tab +\par kpasswd.exe\tab Change your password for the specified cell\tab +\par symlink.exe: \tab Create a symbolic link , e.g. "symlink make dest src" makes a link called "dest" pointing to file "src"\tab +\par fs.exe: \tab This command is used for a number of file server functions. Type "fs help" for a list, and then "fs help function" to get detailed help for that function. See the documentation for more info.\tab +\par fs help\tab list functions\tab +\par fs listacl \tab show directory access control list\tab +\par fs setacl \tab set directory access control list\tab +\par fs listquota \tab show directory disk quota\tab +\par fs flushvolume \tab flush cached data from volume\tab +\par pts.exe\tab This command is used for user administration functions. See the documentation for more info. (Note: this command currently does not work in Windows 95.)\tab +\par +\par \plain\f2\fs24\b Known Issues +\par +\par \pard\li720\fi-360\plain\f2\fs20 1) The Microsoft Visual Studio linker "link.exe" fails when writing to a file stored in AFS. It freezes the system for a minute or so and then times out. This problem may exist in other programs as well. +\par 2) Occasionally the U: and Z: drive letters are not mapped automatically when the client is started. If this happens, you can map them manually by entering the commands: +\par \pard\li1440\fi-360\tx1440\plain\f2\fs20 0net use u: \\\\mymachine-afs\\home +\par 1net use z: \\\\mymachine-afs\\all +\par 2where "mymachine" is the Windows networking name of your machine. +\par \pard\li720\fi-360\plain\f2\fs20 3) The Windows file system does not understand symbolic links, so links to directories just look like normal directories. This can lead to problems when trying to recursively copy a directory, since following cyclical links can lead to infinite regress. +\par 4) The Office 2000 install program seems to take a very long time to install Office 2000 to AFS. +\par 5) You must log in to Windows for Windows networking to work correctly. If you bypass the login, AFS will time out trying to start the AFS client console, with the error "Connect can't continue: Network error adding Z:all." +\par 6) Under certain configurations the AFS Client Console will report a cache error. This will prevent the AFS Client from initializing. +\par 7) Infrequently Windows will incorrectly notify the AFS Control Panel that there are open files. If this prevents AFS from disconnecting, it will require you to reboot. +\par \pard\plain\f2\fs20 +\par +\par \plain\f2\fs24\b Legalities +\par +\par \pard\li720\ri810\plain\f2\fs24\i Copyright 2000, International Business Machines Corporation and others. All Rights Reserved. This software has been released under the terms of the IBM Public License. For details, see the LICENSE file in the top-level source directory or online at \plain\f2\fs24\cf1\i\ul http://www.openafs.org/dl/license10.html\plain\f2\fs24\b +\par \pard\plain\f2\fs24\b +\par \plain\f2\fs20 This program was compiled using the DJGPP compiler and includes object code copyrighted by DJ Delorie. The compiler and libraries are available at http://www.delorie.com. +\par +\par This program includes software developed by the University of California, Berkeley, and its contributors. +\par +\par This program has been distributed with, and uses the services of, the sock.vxd and mmap.vxd drivers written for the Coda project at http://www.coda.cs.cmu.edu and licensed under the GNU General Public License. Source code for these drivers is available at the above web site. +\par +\par +\par } \ No newline at end of file diff --git a/src/WINNT/pthread/test/native.cpp b/src/WINNT/pthread/test/native.cpp index 3ab1526a8..cdea2a137 100644 --- a/src/WINNT/pthread/test/native.cpp +++ b/src/WINNT/pthread/test/native.cpp @@ -1,1200 +1,400 @@ -/* - - - * Copyright 2000, International Business Machines Corporation and others. - - - * All Rights Reserved. - - - * - - - * This software has been released under the terms of the IBM Public - - - * License. For details, see the LICENSE file in the top-level source - - - * directory or online at http://www.openafs.org/dl/license10.html - - - */ - - - - - -/* - - - * Test pthread interaction with native Win32 threads - - - * - - - */ - - - - - - - - -#include - - -#include - - - - - -#include - - -#include - - -#include - - - - - -extern "C" { - - -#include - - -#include - - -#include - - -} - - - - - - - - -#define nTESTS 3 - - -#define nPASSES_MAX 256 - - - - - - - - -/* - - - * Test1 - Tests the main thread calling pthread_self() - - - * - - - */ - - - - - -BOOL Test1 (void) - - -{ - - - BOOL rc = TRUE; - - - printf ("Begin Test1:\n"); - - - - - - PVOID hSelf; - - - if ((hSelf = pthread_self()) == NULL) - - - rc = FALSE; - - - - - - printf (" 1: pthread_self() on main thread returned 0x%08lX\n", hSelf); - - - - - - printf ("--> Test1 %s\n", (rc) ? TEXT("succeeded") : TEXT("FAILED")); - - - return rc; - - -} - - - - - - - - -/* - - - * Test2 - Tests a Win32 thread's ability to join onto a pthread - - - * - - - */ - - -#define TEST2_RETURNVALUE 'Test' - - - - - -DWORD WINAPI Test2_Thread1 (LPVOID lp) - - -{ - - - printf (" 1-1: waiting for thread 2 to begin\n"); - - - - - - while (!*(volatile DWORD*)lp) - - - ; - - - - - - printf (" 1-1: calling pthread_join (0x%08lX)\n", *(DWORD*)lp); - - - - - - DWORD status; - - - int rc; - - - if ((rc = pthread_join ((pthread_t)(*(DWORD*)lp), (void**)&status)) != 0) - - - { - - - printf (" 1-1: pthread_join failed; rc=%lu\n", rc); - - - return 0; - - - } - - - - - - if (status != TEST2_RETURNVALUE) - - - { - - - printf (" 1-1: pthread_join succeeded with wrong status (rc=%lu)\n", status); - - - return 0; - - - } - - - - - - printf (" 1-1: pthread_join succeeded; terminating\n"); - - - return 1; - - -} - - - - - -extern "C" void *Test2_Thread2 (void *pdwCommonParam) - - -{ - - - printf (" 1-2: signalling that thread 2 began\n"); - - - *(volatile DWORD*)pdwCommonParam = (DWORD)pthread_self(); - - - Sleep (1500); - - - - - - printf (" 1-2: terminating\n"); - - - return (void*)TEST2_RETURNVALUE; - - -} - - - - - -BOOL Test2 (void) - - -{ - - - BOOL rc = TRUE; - - - printf ("Begin Test2:\n"); - - - - - - DWORD dwCommonParam = 0; - - - DWORD idThread; - - - - - - printf (" 1: creating win32 thread\n"); - - - HANDLE hThread1 = CreateThread (0, 0, Test2_Thread1, (LPVOID)&dwCommonParam, 0, &idThread); - - - Sleep(500); - - - - - - printf (" 1: creating pthread thread\n"); - - - pthread_t hThread2; - - - pthread_create (&hThread2, NULL, Test2_Thread2, (void *)&dwCommonParam); - - - Sleep(500); - - - - - - printf (" 1: blocking until win32 thread (thread1) terminates...\n"); - - - - - - WaitForSingleObject (hThread1, INFINITE); - - - GetExitCodeThread (hThread1, (ULONG*)&rc); - - - - - - printf (" 1: detected thread1 termination\n"); - - - - - - printf ("--> Test2 %s\n", (rc) ? TEXT("succeeded") : TEXT("FAILED")); - - - return rc; - - -} - - - - - - - - -/* - - - * Test3 - Makes sure the pthread library recognizes when native threads die - - - * - - - */ - - - - - -DWORD WINAPI Test3_Thread1 (LPVOID lp) - - -{ - - - LONG *pdw = (LONG*)lp; - - - - - - // We're awake. Do something pthready. - - - // - - - pthread_t pMe; - - - if ((pMe = pthread_self()) == NULL) - - - printf (" 3-1: could not get a pthread_self!\n"); - - - else - - - printf (" 3-1: ready\n"); - - - - - - InterlockedIncrement (pdw); - - - - - - // Now wait until we see the signal to die. - - - // - - - while (*(volatile LONG*)pdw != 5) - - - ; - - - - - - printf (" 3-1: terminating\n"); - - - InterlockedIncrement (pdw); - - - return 1; - - -} - - - - - - - - -DWORD WINAPI Test3_Thread2 (LPVOID lp) - - -{ - - - LONG *pdw = (LONG*)lp; - - - - - - // We're awake. Do something pthready. - - - // - - - pthread_t pMe; - - - if ((pMe = pthread_self()) == NULL) - - - printf (" 3-2: could not get a pthread_self!\n"); - - - else - - - printf (" 3-2: ready\n"); - - - - - - InterlockedIncrement (pdw); - - - - - - // Now wait until we see the signal to die. - - - // - - - while (*(volatile LONG*)pdw != 7) - - - ; - - - - - - printf (" 3-2: terminating\n"); - - - InterlockedIncrement (pdw); - - - return 1; - - -} - - - - - - - - -extern "C" void *Test3_Thread3 (void *pdwParam) - - -{ - - - LONG *pdw = (LONG*)pdwParam; - - - - - - // We're awake. - - - // - - - printf (" 3-3: ready\n"); - - - InterlockedIncrement (pdw); - - - - - - // Now wait until we see the signal to die. - - - // - - - while (*(volatile LONG*)pdw != 9) - - - ; - - - - - - printf (" 3-3: terminating\n"); - - - InterlockedIncrement (pdw); - - - return (void*)1; - - -} - - - - - - - - -extern "C" void *Test3_Thread4 (void *pdwParam) - - -{ - - - LONG *pdw = (LONG*)pdwParam; - - - - - - // We're awake. - - - // - - - printf (" 3-4: ready\n"); - - - InterlockedIncrement (pdw); - - - - - - // Now wait until we see the signal to die. - - - // - - - while (*(volatile LONG*)pdw != 11) - - - ; - - - - - - printf (" 3-4: terminating\n"); - - - InterlockedIncrement (pdw); - - - return (void*)1; - - -} - - - - - - - - -extern "C" void *Test3_ThreadCount (void *pdwParam) - - -{ - - - volatile LONG *pdw = (LONG*)pdwParam; - - - - - - pthread_t pMe; - - - if ((pMe = pthread_self()) == NULL) - - - return (void*)0; - - - - - - try { - - - struct rx_queue *pNow = (rx_queue*)pMe; - - - - - - for (struct rx_queue *pWalk = pNow->next; pWalk != pNow; pWalk = pWalk->next) - - - ++(*pdw); - - - - - - } catch(...) { - - - *pdw = 0; - - - } - - - - - - return (void*)*pdw; - - -} - - - - - -size_t Test3_CountActiveQueue (void) - - -{ - - - DWORD dwArg = 0; - - - pthread_t pThread; - - - pthread_create (&pThread, NULL, Test3_ThreadCount, (void *)&dwArg); - - - - - - DWORD status; - - - int rc; - - - if ((rc = pthread_join (pThread, (void**)&status)) != 0) - - - { - - - printf (" 3: counter: pthread_join failed; rc=%lu\n", rc); - - - return 0; - - - } - - - - - - return dwArg; - - -} - - - - - -BOOL Test3 (void) - - -{ - - - BOOL rc = TRUE; - - - printf ("Begin Test3:\n"); - - - - - - // Find the size of the active queue - - - // - - - size_t cInitialQueueSize; - - - if ((cInitialQueueSize = Test3_CountActiveQueue()) == 0) - - - { - - - printf (" 3: unable to determine active queue size\n"); - - - rc = FALSE; - - - } - - - else - - - { - - - // Start two Win32 threads and two pthreads. We'll use a single, common - - - // parameter for each thread: dwSignal. Each thread will increment the - - - // signal param when it's ready for us to go; once that's done, a - - - // thread will kill itself and inc the signal *again* each die we - - - // increment the signal: - - - // - - - // starts at 0 - - - // thread 1 wakes up and incs signal to 1 - - - // thread 2 wakes up and incs signal to 2 - - - // thread 3 wakes up and incs signal to 3 - - - // thread 4 wakes up and incs signal to 4 - - - // we notice signal is 4, and we increment signal to 5 - - - // thread 1 notices signal is 5, incs to 6 and dies - - - // we notice signal is 6, and we increment signal to 7 - - - // thread 1 notices signal is 7, incs to 8 and dies - - - // we notice signal is 8, and we increment signal to 9 - - - // thread 1 notices signal is 9, incs to 10 and dies - - - // we notice signal is 10, and we increment signal to 11 - - - // thread 1 notices signal is 11, incs to 12 and dies - - - // we notice signal is 12 and finish our tests - - - // - - - volatile LONG dwSignal = 0; - - - printf (" 3: creating test threads\n"); - - - - - - DWORD idThread; - - - CreateThread (0, 0, Test3_Thread1, (LPVOID)&dwSignal, 0, &idThread); - - - Sleep (500); - - - - - - CreateThread (0, 0, Test3_Thread2, (LPVOID)&dwSignal, 0, &idThread); - - - Sleep (500); - - - - - - pthread_attr_t attr; - - - attr.is_joinable = PTHREAD_CREATE_DETACHED; - - - - - - pthread_t hThread; - - - pthread_create (&hThread, &attr, Test3_Thread3, (void *)&dwSignal); - - - Sleep (500); - - - - - - pthread_create (&hThread, &attr, Test3_Thread4, (void *)&dwSignal); - - - Sleep (500); - - - - - - // Count the active queue again as soon as we're sure all the threads - - - // are ready for us to do so. - - - // - - - while (dwSignal != 4) - - - ; - - - - - - size_t cQueueSize; - - - if ((cQueueSize = Test3_CountActiveQueue()) == 0) - - - { - - - printf (" 3: unable to determine active queue size\n"); - - - rc = FALSE; - - - } - - - else if (cQueueSize != cInitialQueueSize+4) - - - { - - - printf (" 3: error: active queue wasn't increased by 4\n"); - - - rc = FALSE; - - - } - - - else while (rc && (dwSignal < 12)) - - - { - - - LONG dwTarget = dwSignal +2; - - - InterlockedIncrement ((LONG*)&dwSignal); - - - - - - // wait for a thread to notice the change and kill itself - - - while (dwSignal != dwTarget) - - - ; - - - Sleep (500); // give a little time for cleanup after thread incremented - - - - - - if ((cQueueSize = Test3_CountActiveQueue()) == 0) - - - { - - - printf (" 3: unable to determine active queue size (dwSignal=%ld)\n", dwSignal); - - - rc = FALSE; - - - } - - - else if (cQueueSize != (cInitialQueueSize + 4 - ((dwTarget -4) /2))) - - - { - - - printf (" 3: active queue size did not diminish (dwSignal=%ld)\n", dwSignal); - - - rc = FALSE; - - - } - - - } - - - } - - - - - - printf ("--> Test3 %s\n", (rc) ? TEXT("succeeded") : TEXT("FAILED")); - - - return rc; - - -} - - - - - - - - -/* - - - * main - Runs all tests (unless the command-line says otherwise) - - - * - - - */ - - -int main(int argc, char **argv) - - -{ - - - DWORD iRunTest[nPASSES_MAX]; - - - for (size_t ii = 0; ii < nPASSES_MAX; ++ii) - - - iRunTest[ii] = (ii < nTESTS) ? (ii+1) : 0; - - - - - - ii = 0; - - - for (--argc,++argv; argc; --argc,++argv) - - - { - - - DWORD iTest; - - - if ( ((iTest = (size_t)atol (*argv)) > 0) && (iTest <= nTESTS) ) - - - { - - - if (ii == 0) - - - memset (iRunTest, 0x00, sizeof(iRunTest)); - - - if (ii < nPASSES_MAX) - - - iRunTest[ ii++ ] = iTest; - - - } - - - } - - - - - - BOOL rc = TRUE; - - - - - - for (ii = 0; ii < nPASSES_MAX; ++ii) - - - { - - - if (iRunTest[ ii ] == 0) - - - break; - - - else switch (iRunTest[ ii ]) - - - { - - - case 1: if (!Test1()) rc = FALSE; break; - - - case 2: if (!Test2()) rc = FALSE; break; - - - case 3: if (!Test3()) rc = FALSE; break; - - - } - - - } - - - - - - return rc; - - -} - - - - - +/* + * Copyright 2000, International Business Machines Corporation and others. + * All Rights Reserved. + * + * This software has been released under the terms of the IBM Public + * License. For details, see the LICENSE file in the top-level source + * directory or online at http://www.openafs.org/dl/license10.html + */ + +/* + * Test pthread interaction with native Win32 threads + * + */ + + +#include +#include + +#include +#include +#include + +extern "C" { +#include +#include +#include +} + + +#define nTESTS 3 +#define nPASSES_MAX 256 + + +/* + * Test1 - Tests the main thread calling pthread_self() + * + */ + +BOOL Test1 (void) +{ + BOOL rc = TRUE; + printf ("Begin Test1:\n"); + + PVOID hSelf; + if ((hSelf = pthread_self()) == NULL) + rc = FALSE; + + printf (" 1: pthread_self() on main thread returned 0x%08lX\n", hSelf); + + printf ("--> Test1 %s\n", (rc) ? TEXT("succeeded") : TEXT("FAILED")); + return rc; +} + + +/* + * Test2 - Tests a Win32 thread's ability to join onto a pthread + * + */ +#define TEST2_RETURNVALUE 'Test' + +DWORD WINAPI Test2_Thread1 (LPVOID lp) +{ + printf (" 1-1: waiting for thread 2 to begin\n"); + + while (!*(volatile DWORD*)lp) + ; + + printf (" 1-1: calling pthread_join (0x%08lX)\n", *(DWORD*)lp); + + DWORD status; + int rc; + if ((rc = pthread_join ((pthread_t)(*(DWORD*)lp), (void**)&status)) != 0) + { + printf (" 1-1: pthread_join failed; rc=%lu\n", rc); + return 0; + } + + if (status != TEST2_RETURNVALUE) + { + printf (" 1-1: pthread_join succeeded with wrong status (rc=%lu)\n", status); + return 0; + } + + printf (" 1-1: pthread_join succeeded; terminating\n"); + return 1; +} + +extern "C" void *Test2_Thread2 (void *pdwCommonParam) +{ + printf (" 1-2: signalling that thread 2 began\n"); + *(volatile DWORD*)pdwCommonParam = (DWORD)pthread_self(); + Sleep (1500); + + printf (" 1-2: terminating\n"); + return (void*)TEST2_RETURNVALUE; +} + +BOOL Test2 (void) +{ + BOOL rc = TRUE; + printf ("Begin Test2:\n"); + + DWORD dwCommonParam = 0; + DWORD idThread; + + printf (" 1: creating win32 thread\n"); + HANDLE hThread1 = CreateThread (0, 0, Test2_Thread1, (LPVOID)&dwCommonParam, 0, &idThread); + Sleep(500); + + printf (" 1: creating pthread thread\n"); + pthread_t hThread2; + pthread_create (&hThread2, NULL, Test2_Thread2, (void *)&dwCommonParam); + Sleep(500); + + printf (" 1: blocking until win32 thread (thread1) terminates...\n"); + + WaitForSingleObject (hThread1, INFINITE); + GetExitCodeThread (hThread1, (ULONG*)&rc); + + printf (" 1: detected thread1 termination\n"); + + printf ("--> Test2 %s\n", (rc) ? TEXT("succeeded") : TEXT("FAILED")); + return rc; +} + + +/* + * Test3 - Makes sure the pthread library recognizes when native threads die + * + */ + +DWORD WINAPI Test3_Thread1 (LPVOID lp) +{ + LONG *pdw = (LONG*)lp; + + // We're awake. Do something pthready. + // + pthread_t pMe; + if ((pMe = pthread_self()) == NULL) + printf (" 3-1: could not get a pthread_self!\n"); + else + printf (" 3-1: ready\n"); + + InterlockedIncrement (pdw); + + // Now wait until we see the signal to die. + // + while (*(volatile LONG*)pdw != 5) + ; + + printf (" 3-1: terminating\n"); + InterlockedIncrement (pdw); + return 1; +} + + +DWORD WINAPI Test3_Thread2 (LPVOID lp) +{ + LONG *pdw = (LONG*)lp; + + // We're awake. Do something pthready. + // + pthread_t pMe; + if ((pMe = pthread_self()) == NULL) + printf (" 3-2: could not get a pthread_self!\n"); + else + printf (" 3-2: ready\n"); + + InterlockedIncrement (pdw); + + // Now wait until we see the signal to die. + // + while (*(volatile LONG*)pdw != 7) + ; + + printf (" 3-2: terminating\n"); + InterlockedIncrement (pdw); + return 1; +} + + +extern "C" void *Test3_Thread3 (void *pdwParam) +{ + LONG *pdw = (LONG*)pdwParam; + + // We're awake. + // + printf (" 3-3: ready\n"); + InterlockedIncrement (pdw); + + // Now wait until we see the signal to die. + // + while (*(volatile LONG*)pdw != 9) + ; + + printf (" 3-3: terminating\n"); + InterlockedIncrement (pdw); + return (void*)1; +} + + +extern "C" void *Test3_Thread4 (void *pdwParam) +{ + LONG *pdw = (LONG*)pdwParam; + + // We're awake. + // + printf (" 3-4: ready\n"); + InterlockedIncrement (pdw); + + // Now wait until we see the signal to die. + // + while (*(volatile LONG*)pdw != 11) + ; + + printf (" 3-4: terminating\n"); + InterlockedIncrement (pdw); + return (void*)1; +} + + +extern "C" void *Test3_ThreadCount (void *pdwParam) +{ + volatile LONG *pdw = (LONG*)pdwParam; + + pthread_t pMe; + if ((pMe = pthread_self()) == NULL) + return (void*)0; + + try { + struct rx_queue *pNow = (rx_queue*)pMe; + + for (struct rx_queue *pWalk = pNow->next; pWalk != pNow; pWalk = pWalk->next) + ++(*pdw); + + } catch(...) { + *pdw = 0; + } + + return (void*)*pdw; +} + +size_t Test3_CountActiveQueue (void) +{ + DWORD dwArg = 0; + pthread_t pThread; + pthread_create (&pThread, NULL, Test3_ThreadCount, (void *)&dwArg); + + DWORD status; + int rc; + if ((rc = pthread_join (pThread, (void**)&status)) != 0) + { + printf (" 3: counter: pthread_join failed; rc=%lu\n", rc); + return 0; + } + + return dwArg; +} + +BOOL Test3 (void) +{ + BOOL rc = TRUE; + printf ("Begin Test3:\n"); + + // Find the size of the active queue + // + size_t cInitialQueueSize; + if ((cInitialQueueSize = Test3_CountActiveQueue()) == 0) + { + printf (" 3: unable to determine active queue size\n"); + rc = FALSE; + } + else + { + // Start two Win32 threads and two pthreads. We'll use a single, common + // parameter for each thread: dwSignal. Each thread will increment the + // signal param when it's ready for us to go; once that's done, a + // thread will kill itself and inc the signal *again* each die we + // increment the signal: + // + // starts at 0 + // thread 1 wakes up and incs signal to 1 + // thread 2 wakes up and incs signal to 2 + // thread 3 wakes up and incs signal to 3 + // thread 4 wakes up and incs signal to 4 + // we notice signal is 4, and we increment signal to 5 + // thread 1 notices signal is 5, incs to 6 and dies + // we notice signal is 6, and we increment signal to 7 + // thread 1 notices signal is 7, incs to 8 and dies + // we notice signal is 8, and we increment signal to 9 + // thread 1 notices signal is 9, incs to 10 and dies + // we notice signal is 10, and we increment signal to 11 + // thread 1 notices signal is 11, incs to 12 and dies + // we notice signal is 12 and finish our tests + // + volatile LONG dwSignal = 0; + printf (" 3: creating test threads\n"); + + DWORD idThread; + CreateThread (0, 0, Test3_Thread1, (LPVOID)&dwSignal, 0, &idThread); + Sleep (500); + + CreateThread (0, 0, Test3_Thread2, (LPVOID)&dwSignal, 0, &idThread); + Sleep (500); + + pthread_attr_t attr; + attr.is_joinable = PTHREAD_CREATE_DETACHED; + + pthread_t hThread; + pthread_create (&hThread, &attr, Test3_Thread3, (void *)&dwSignal); + Sleep (500); + + pthread_create (&hThread, &attr, Test3_Thread4, (void *)&dwSignal); + Sleep (500); + + // Count the active queue again as soon as we're sure all the threads + // are ready for us to do so. + // + while (dwSignal != 4) + ; + + size_t cQueueSize; + if ((cQueueSize = Test3_CountActiveQueue()) == 0) + { + printf (" 3: unable to determine active queue size\n"); + rc = FALSE; + } + else if (cQueueSize != cInitialQueueSize+4) + { + printf (" 3: error: active queue wasn't increased by 4\n"); + rc = FALSE; + } + else while (rc && (dwSignal < 12)) + { + LONG dwTarget = dwSignal +2; + InterlockedIncrement ((LONG*)&dwSignal); + + // wait for a thread to notice the change and kill itself + while (dwSignal != dwTarget) + ; + Sleep (500); // give a little time for cleanup after thread incremented + + if ((cQueueSize = Test3_CountActiveQueue()) == 0) + { + printf (" 3: unable to determine active queue size (dwSignal=%ld)\n", dwSignal); + rc = FALSE; + } + else if (cQueueSize != (cInitialQueueSize + 4 - ((dwTarget -4) /2))) + { + printf (" 3: active queue size did not diminish (dwSignal=%ld)\n", dwSignal); + rc = FALSE; + } + } + } + + printf ("--> Test3 %s\n", (rc) ? TEXT("succeeded") : TEXT("FAILED")); + return rc; +} + + +/* + * main - Runs all tests (unless the command-line says otherwise) + * + */ +int main(int argc, char **argv) +{ + DWORD iRunTest[nPASSES_MAX]; + for (size_t ii = 0; ii < nPASSES_MAX; ++ii) + iRunTest[ii] = (ii < nTESTS) ? (ii+1) : 0; + + ii = 0; + for (--argc,++argv; argc; --argc,++argv) + { + DWORD iTest; + if ( ((iTest = (size_t)atol (*argv)) > 0) && (iTest <= nTESTS) ) + { + if (ii == 0) + memset (iRunTest, 0x00, sizeof(iRunTest)); + if (ii < nPASSES_MAX) + iRunTest[ ii++ ] = iTest; + } + } + + BOOL rc = TRUE; + + for (ii = 0; ii < nPASSES_MAX; ++ii) + { + if (iRunTest[ ii ] == 0) + break; + else switch (iRunTest[ ii ]) + { + case 1: if (!Test1()) rc = FALSE; break; + case 2: if (!Test2()) rc = FALSE; break; + case 3: if (!Test3()) rc = FALSE; break; + } + } + + return rc; +} + diff --git a/src/afs/SUNOS/osi_inode.h b/src/afs/SUNOS/osi_inode.h index a55f44dba..89b35272a 100644 --- a/src/afs/SUNOS/osi_inode.h +++ b/src/afs/SUNOS/osi_inode.h @@ -1 +1 @@ -#error kernel code not supported on SunOS 4 +#error kernel code not supported on SunOS 4 diff --git a/src/auth/Makefile.in b/src/auth/Makefile.in index 4855613df..0d60b4aad 100644 --- a/src/auth/Makefile.in +++ b/src/auth/Makefile.in @@ -26,10 +26,12 @@ PICTARGET =../pic/auth PICOBJS = $(patsubst %.o,$(PICTARGET)/%.o,$(OBJS)) $(PICTARGET)/%.o: %.c $(PICTARGET) $(CC) -c $(PAM_CFLAGS) $(CFLAGS) $< -o $@ -all: ${TOP_LIBDIR}/libauth.a ${TOP_LIBDIR}/libauth.krb.a depinstall copyauth setkey $(PICOBJS) + +all: ${TOP_LIBDIR}/libauth.a ${TOP_LIBDIR}/libauth.krb.a depinstall copyauth setkey $(PICOBJS) $(PICTARGET): mkdir -p $(PICTARGET) + depinstall: ${TOP_INCDIR}/afs/keys.h ${TOP_INCDIR}/afs/cellconfig.h ${TOP_INCDIR}/afs/auth.h cellconfig.o: cellconfig.c ${INCLS} diff --git a/src/comerr/Makefile.in b/src/comerr/Makefile.in index 208e97792..6336b73e7 100644 --- a/src/comerr/Makefile.in +++ b/src/comerr/Makefile.in @@ -31,7 +31,6 @@ $(PICTARGET)/%.o: %.c $(PICTARGET) $(PICTARGET): mkdir -p $(PICTARGET) - libcom_err.a: error_msg.o et_name.o com_err.o AFS_component_version_number.o $(PICOBJS) $(RM) -f $@ $(AR) crv $@ error_msg.o et_name.o com_err.o AFS_component_version_number.o diff --git a/src/des/conf-ppc-linux.h b/src/des/conf-ppc-linux.h index e2f3b23d5..3d2937292 100644 --- a/src/des/conf-ppc-linux.h +++ b/src/des/conf-ppc-linux.h @@ -1,15 +1,4 @@ -/* - * Copyright 1988 by the Massachusetts Institute of Technology. - * - * For copying and distribution information, please see the file - * . - * - * Machine-type definitions: Linux on PPC - */ - -#include - #define BITS32 #define BIG #define MSBFIRST -#define MUSTALLIGN +#define MUSTALIGN diff --git a/src/kauth/Makefile.in b/src/kauth/Makefile.in index 9fe631745..d9f5fe6d2 100644 --- a/src/kauth/Makefile.in +++ b/src/kauth/Makefile.in @@ -71,8 +71,6 @@ $(PICTARGET)/%.o: %.c $(PICTARGET) $(PICTARGET): mkdir -p $(PICTARGET) - - test tests: all cd test; $(MAKE) diff --git a/src/libafs/MakefileProto.LINUX.in b/src/libafs/MakefileProto.LINUX.in index 131a06d69..e5f0b8cdd 100644 --- a/src/libafs/MakefileProto.LINUX.in +++ b/src/libafs/MakefileProto.LINUX.in @@ -252,7 +252,6 @@ openafs.ko: .FORCE env EXTRA_CFLAGS="${EXTRA_CFLAGS}" $(MAKE) -C ${LINUX_KERNEL_PATH} M=@TOP_OBJDIR@/src/libafs/${KDIR} modules - ${LIBAFS}: $(AFSAOBJS) $(AFSNONFSOBJS) $(RM) -f $@ $(LD) -r -o $@ $(AFSAOBJS) $(AFSNONFSOBJS) diff --git a/src/libafs/make_kbuild_makefile.pl b/src/libafs/make_kbuild_makefile.pl index eeb782b56..ce046e172 100755 --- a/src/libafs/make_kbuild_makefile.pl +++ b/src/libafs/make_kbuild_makefile.pl @@ -10,18 +10,6 @@ # Appropriate source files for each object will be symlinked into ${KDIR} # EXTRA_CFLAGS will be set to ${CFLAGS} ${COMMON_INCLUDE} -#!/usr/bin/perl -# make_kbuild_makefile.pl -# Generate a Makefile for use with the Linux 2.6+ kernel build system -# -# Usage: make_kbuild_makefile.pl ${KDIR} ${TARG} Makefiles... -# -# The specified makefiles will be scanned for variable values -# The module ${TARG} will be built in ${TOP_SRCDIR}/src/libafs/${KDIR}. -# It will include objects listed in ${AFSAOBJS} and ${AFSNONFSOBJS} -# Appropriate source files for each object will be symlinked into ${KDIR} -# EXTRA_CFLAGS will be set to ${CFLAGS} ${COMMON_INCLUDE} - # Produces ${KDIR}/Makefile, suitable for use with kbuild use IO::File; diff --git a/src/lwp/Makefile.in b/src/lwp/Makefile.in index e0e8841d9..ebbb8fc05 100644 --- a/src/lwp/Makefile.in +++ b/src/lwp/Makefile.in @@ -20,16 +20,13 @@ PICOBJS = $(patsubst %.o,$(PICTARGET)/%.o,$(LIBOBJS)) $(PICTARGET)/%.o: %.c $(PICTARGET) $(CC) -c $(PAM_CFLAGS) $(CFLAGS) $< -o $@ - all: ${TOP_LIBDIR}/liblwp.a ${TOP_INCDIR}/lock.h ${TOP_INCDIR}/lwp.h ${TOP_INCDIR}/preempt.h ${TOP_INCDIR}/timer.h $(PICOBJS) - $(PICTARGET): mkdir -p $(PICTARGET) depinstall: ${TOP_INCDIR}/lock.h ${TOP_INCDIR}/lwp.h ${TOP_INCDIR}/preempt.h ${TOP_INCDIR}/timer.h - # # Build rules # diff --git a/src/ptserver/Makefile.in b/src/ptserver/Makefile.in index 4e38e987d..cdaee203e 100644 --- a/src/ptserver/Makefile.in +++ b/src/ptserver/Makefile.in @@ -48,11 +48,9 @@ $(PICTARGET)/%.o: %.c $(PICTARGET) all: ptserver pts pt_util db_verify ${TOP_LIBDIR}/libprot.a \ depinstall readgroup readpwd testpt $(PICOBJS) - $(PICTARGET): mkdir -p $(PICTARGET) - depinstall: \ ptint.cs.c ptint.xdr.c \ ${TOP_INCDIR}/afs/prclient.h \ @@ -65,7 +63,6 @@ depinstall: \ ${TOP_INCDIR}/afs/ptint.h \ ${TOP_INCDIR}/afs/ptserver.h - # # Build targets # @@ -129,7 +126,7 @@ pterror.h pterror.c: pterror.et $(RM) -f pterror.h pterror.c ${COMPILE_ET} -p ${srcdir} pterror -libprot.a: ptuser.o pterror.o ptint.cs.o ptint.xdr.o AFS_component_version_number.o +libprot.a: ptuser.o pterror.o ptint.cs.o ptint.xdr.o AFS_component_version_number.o $(RM) -f $@ $(AR) crv $@ ptuser.o pterror.o ptint.cs.o ptint.xdr.o AFS_component_version_number.o $(RANLIB) $@ diff --git a/src/rx/Makefile.in b/src/rx/Makefile.in index e7b0668cf..3b6620f7a 100644 --- a/src/rx/Makefile.in +++ b/src/rx/Makefile.in @@ -96,7 +96,7 @@ xdr_refernce.o: xdr_refernce.c xdr.h xdr_prototypes.h rxperf: rxperf.o librx.a ${CC} -o $@ rxperf.o ${LIBS} -librx.a: ${LIBOBJS} RX_component_version_number.o +librx.a: ${LIBOBJS} RX_component_version_number.o -$(RM) -f $@ $(AR) crv $@ ${LIBOBJS} RX_component_version_number.o $(RANLIB) $@ @@ -200,7 +200,6 @@ install: \ ${DESTDIR}${includedir}/rx/xdr.h \ ${DESTDIR}${includedir}/rx/xdr_prototypes.h - ${DESTDIR}${libdir}/librx.a: librx.a ${INSTALL} $? $@ diff --git a/src/rx/SUNOS/rx_knet.c b/src/rx/SUNOS/rx_knet.c index a55f44dba..89b35272a 100644 --- a/src/rx/SUNOS/rx_knet.c +++ b/src/rx/SUNOS/rx_knet.c @@ -1 +1 @@ -#error kernel code not supported on SunOS 4 +#error kernel code not supported on SunOS 4 diff --git a/src/rxkad/Makefile.in b/src/rxkad/Makefile.in index c082725f6..dbe391254 100644 --- a/src/rxkad/Makefile.in +++ b/src/rxkad/Makefile.in @@ -19,7 +19,6 @@ OBJS=rxkad_client.o rxkad_server.o rxkad_common.o rxkad_errs.o \ fcrypt.o crypt_conn.o ticket.o ticket5.o crc.o \ md4.o md5.o - PICTARGET =../pic/rxkad PICOBJS = $(patsubst %.o,$(PICTARGET)/%.o,$(OBJS)) $(PICTARGET)/%.o: %.c $(PICTARGET) @@ -28,7 +27,6 @@ $(PICTARGET)/%.o: %.c $(PICTARGET) $(PICTARGET)/%.o: domestic/%.c $(PICTARGET) $(CC) -c $(PAM_CFLAGS) $(CFLAGS) $< -o $@ - $(PICTARGET): mkdir -p $(PICTARGET) diff --git a/src/sys/Makefile.in b/src/sys/Makefile.in index d22b1fef1..83a5a678f 100644 --- a/src/sys/Makefile.in +++ b/src/sys/Makefile.in @@ -80,7 +80,6 @@ afssyscalls.o: afssyscalls.c afssyscalls.h rmtsysnet.o rmtsysc.o rmtsyss.o rmtsysd.o: rmtsys.h $(PICTARGET)/rmtsysnet.o $(PICTARGET)/rmtsysc.o: rmtsys.h - rmtsysd: AFS_component_version_number.o afs.exp afsl.exp rmtsys.cs.c: rmtsys.xg diff --git a/src/ubik/Makefile.in b/src/ubik/Makefile.in index 84918bd33..bc056d4d0 100644 --- a/src/ubik/Makefile.in +++ b/src/ubik/Makefile.in @@ -34,8 +34,6 @@ depinstall: \ $(PICTARGET): mkdir -p $(PICTARGET) - - utst_server: utst_server.o utst_int.ss.o utst_int.xdr.o libubik.a ${CC} ${CFLAGS} -o utst_server utst_server.o utst_int.ss.o utst_int.xdr.o libubik.a $(LIBS) @@ -102,7 +100,7 @@ uerrors.c ubik.h: uerrors.et ubik.p.h $(RM) -f ubik.h uerrors.c ${COMPILE_ET} -p ${srcdir} uerrors -h ubik -libubik.a: ${LIBOBJS} AFS_component_version_number.o +libubik.a: ${LIBOBJS} AFS_component_version_number.o -$(RM) -f $@ $(AR) crc $@ ${LIBOBJS} AFS_component_version_number.o $(RANLIB) $@ @@ -176,6 +174,10 @@ ${DESTDIR}${includedir}/ubik_int.h: ubik_int.h ${TOP_INCDIR}/ubik_int.h: ubik_int.h ${INSTALL} $? $@ + +${DESTDIR}${bindir}/udebug: udebug + ${INSTALL} $? $@ + ${DESTDIR}${afssrvbindir}/udebug: udebug ${INSTALL} $? $@ diff --git a/src/util/Makefile.in b/src/util/Makefile.in index 1c3bef108..e4db86a51 100644 --- a/src/util/Makefile.in +++ b/src/util/Makefile.in @@ -65,7 +65,7 @@ dirpath.h: ${srcdir}/dirpath.hin Makefile ${srcdir}/dirpath.hin >dirpath.h.tmp && \ mv dirpath.h.tmp dirpath.h ) -util.a: ${objects} AFS_component_version_number.o +util.a: ${objects} AFS_component_version_number.o $(RM) -f util.a $(AR) crv util.a ${objects} AFS_component_version_number.o $(RANLIB) util.a -- 2.39.5