summaryrefslogtreecommitdiffstats
path: root/source/a/floppy
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2009-08-26 10:00:38 -0500
committer Eric Hameleers <alien@slackware.com>2018-05-31 22:41:17 +0200
commit5a12e7c134274dba706667107d10d231517d3e05 (patch)
tree55718d5acb710fde798d9f38d0bbaf594ed4b296 /source/a/floppy
downloadcurrent-5a12e7c134274dba706667107d10d231517d3e05.tar.gz
current-5a12e7c134274dba706667107d10d231517d3e05.tar.xz
Slackware 13.0slackware-13.0
Wed Aug 26 10:00:38 CDT 2009 Slackware 13.0 x86_64 is released as stable! Thanks to everyone who helped make this release possible -- see the RELEASE_NOTES for the credits. The ISOs are off to the replicator. This time it will be a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. We're taking pre-orders now at store.slackware.com. Please consider picking up a copy to help support the project. Once again, thanks to the entire Slackware community for all the help testing and fixing things and offering suggestions during this development cycle. As always, have fun and enjoy! -P.
Diffstat (limited to 'source/a/floppy')
-rw-r--r--source/a/floppy/fdutils-5.4-20020222.diff2991
-rw-r--r--source/a/floppy/fdutils.mediaprm.diff8
-rwxr-xr-xsource/a/floppy/floppy.SlackBuild100
-rw-r--r--source/a/floppy/mediaprm786
-rw-r--r--source/a/floppy/mtools.conf64
-rw-r--r--source/a/floppy/slack-desc19
6 files changed, 3968 insertions, 0 deletions
diff --git a/source/a/floppy/fdutils-5.4-20020222.diff b/source/a/floppy/fdutils-5.4-20020222.diff
new file mode 100644
index 000000000..28a7b0405
--- /dev/null
+++ b/source/a/floppy/fdutils-5.4-20020222.diff
@@ -0,0 +1,2991 @@
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/Changelog fdutils/Changelog
+--- fdutils-5.4/Changelog Sat Jun 3 16:29:33 2000
++++ fdutils/Changelog Sun Feb 3 23:51:42 2002
+@@ -1,3 +1,9 @@
++020203 Fix fdmount and superformat bugs
++020203 Create /dev/fd0 before testing for existence of /dev/fd0
++011002 Fix floppycontrol.c printf conditional on FD_DISK_CHANGED, so that
++ it works with gcc3 which apparently considers printf as a macro...
++000612 Explicitly include sysmacros.h, apparently this is needed in
++ certain environments
+ 000603 Released 5.4
+ 000527 Fixed a couple of buffer overrun exploits and other cleanup. Made
+ fdutils compilable with Linux 2.3/2.4 kernels. Documentation fixes
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/INSTALL fdutils/INSTALL
+--- fdutils-5.4/INSTALL Thu Jul 1 19:48:19 1999
++++ fdutils/INSTALL Mon May 21 00:24:21 2001
+@@ -8,14 +8,17 @@
+ 3. Compile the utilities:
+ make
+
+- 3. Run the MAKEFLOPPIES script to create the device files:
++ 4. Install:
++ make install
++
++ 5. Run the MAKEFLOPPIES script to create the device files:
+ cd /dev
+ MAKEFLOPPIES
+
+- 4. Enjoy!
++ 6. Enjoy!
+ I you have any questions, feel free to ask!
+
+- 5. You might also want to get a recent version of mtools (later than
++ 7. You might also want to get a recent version of mtools (later than
+ 3.0)
+
+ A. Knaff
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/config.guess fdutils/config.guess
+--- fdutils-5.4/config.guess Tue Jun 17 22:37:13 1997
++++ fdutils/config.guess Mon May 21 00:24:45 2001
+@@ -1,7 +1,10 @@
+ #! /bin/sh
+ # Attempt to guess a canonical system name.
+-# Copyright (C) 1992, 93, 94, 95, 1996 Free Software Foundation, Inc.
+-#
++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
++# Free Software Foundation, Inc.
++
++timestamp='2001-04-20'
++
+ # 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
+@@ -22,18 +25,92 @@
+ # the same distribution terms that you use for the rest of that program.
+
+ # Written by Per Bothner <bothner@cygnus.com>.
+-# The master version of this file is at the FSF in /home/gd/gnu/lib.
++# Please send patches to <config-patches@gnu.org>.
+ #
+ # 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).
+-#
++# don't specify an explicit build system type.
++
++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 <config-patches@gnu.org>."
++
++version="\
++GNU config.guess ($timestamp)
++
++Originally written by Per Bothner.
++Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000
++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 0 ;;
++ --version | -v )
++ echo "$version" ; exit 0 ;;
++ --help | --h* | -h )
++ echo "$usage"; exit 0 ;;
++ -- ) # 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
++
++
++dummy=dummy-$$
++trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
++
++# CC_FOR_BUILD -- compiler used by this script.
++# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
++# use `HOST_CC' if defined, but it is deprecated.
++
++case $CC_FOR_BUILD,$HOST_CC,$CC in
++ ,,) echo "int dummy(){}" > $dummy.c
++ for c in cc gcc c89 ; do
++ ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1
++ if test $? = 0 ; then
++ CC_FOR_BUILD="$c"; break
++ fi
++ done
++ rm -f $dummy.c $dummy.o $dummy.rel
++ 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 8/24/94.)
+@@ -43,37 +120,162 @@
+
+ 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.
++ # 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 it has switched
++ # to ELF recently, or will in the future.
++ case "${UNAME_MACHINE}" in
++ i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
++ 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
++ ;;
++ esac
++ # The OS release
++ 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 ;;
+ alpha:OSF1:*:*)
++ if test $UNAME_RELEASE = "V4.0"; then
++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
++ 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 alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'`
++ cat <<EOF >$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?
++ # Should we change UNAME_MACHINE based on the output of uname instead
++ # of the specific Alpha model?
++ echo alpha-pc-interix
+ exit 0 ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit 0 ;;
+ Amiga*:UNIX_System_V:4.0:*)
+- echo m68k-cbm-sysv4
++ echo m68k-unknown-sysv4
+ exit 0;;
+- amiga:NetBSD:*:*)
+- echo m68k-cbm-netbsd${UNAME_RELEASE}
+- exit 0 ;;
+ amiga:OpenBSD:*:*)
+- echo m68k-cbm-openbsd${UNAME_RELEASE}
+- exit 0 ;;
++ echo m68k-unknown-openbsd${UNAME_RELEASE}
++ exit 0 ;;
++ *:[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 ;;
++ *:OS/390:*:*)
++ echo i370-ibm-openedition
++ exit 0 ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit 0;;
+- Pyramid*:OSx*:*:*|MIS*:OSx*:*:*)
++ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
++ echo hppa1.1-hitachi-hiuxmpp
++ exit 0;;
++ 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
+@@ -81,9 +283,12 @@
+ echo pyramid-pyramid-bsd
+ fi
+ exit 0 ;;
+- NILE:*:*:dcosx)
++ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit 0 ;;
++ sun4H:SunOS:5.*:*)
++ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit 0 ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+@@ -108,26 +313,61 @@
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit 0 ;;
++ sun*:*:4.2BSD:*)
++ 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)
++ echo m68k-sun-sunos${UNAME_RELEASE}
++ ;;
++ sun4)
++ echo sparc-sun-sunos${UNAME_RELEASE}
++ ;;
++ esac
++ exit 0 ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit 0 ;;
+- atari*:NetBSD:*:*)
+- echo m68k-atari-netbsd${UNAME_RELEASE}
+- exit 0 ;;
+ atari*:OpenBSD:*:*)
+- echo m68k-atari-openbsd${UNAME_RELEASE}
++ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+- sun3*:NetBSD:*:*)
+- echo m68k-sun-netbsd${UNAME_RELEASE}
++ # 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 0 ;;
+- sun3*:OpenBSD:*:*)
+- echo m68k-sun-openbsd${UNAME_RELEASE}
++ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
++ echo m68k-atari-mint${UNAME_RELEASE}
++ exit 0 ;;
++ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
++ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+- mac68k:NetBSD:*:*)
+- echo m68k-apple-netbsd${UNAME_RELEASE}
++ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
++ echo m68k-milan-mint${UNAME_RELEASE}
++ exit 0 ;;
++ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
++ echo m68k-hades-mint${UNAME_RELEASE}
++ exit 0 ;;
++ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
++ echo m68k-unknown-mint${UNAME_RELEASE}
++ exit 0 ;;
++ sun3*:OpenBSD:*:*)
++ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mac68k:OpenBSD:*:*)
+- echo m68k-apple-openbsd${UNAME_RELEASE}
++ 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}
+@@ -141,9 +381,17 @@
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
++ 2020:CLIX:*:* | 2430:CLIX:*:*)
++ echo clipper-intergraph-clix${UNAME_RELEASE}
++ exit 0 ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+- sed 's/^ //' << EOF >dummy.c
+- int main (argc, argv) int argc; char **argv; {
++ sed 's/^ //' << EOF >$dummy.c
++#ifdef __cplusplus
++#include <stdio.h> /* 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);
+@@ -158,12 +406,15 @@
+ 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 $dummy.c -o $dummy \
++ && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
++ && rm -f $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 ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit 0 ;;
+@@ -179,15 +430,18 @@
+ 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
++ 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 ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+@@ -208,12 +462,20 @@
+ ????????: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
+- sed 's/^ //' << EOF >dummy.c
++ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+@@ -224,8 +486,8 @@
+ exit(0);
+ }
+ EOF
+- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
+- rm -f dummy.c dummy
++ $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $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
+@@ -233,8 +495,9 @@
+ echo rs6000-ibm-aix3.2
+ fi
+ exit 0 ;;
+- *:AIX:*:4)
+- if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then
++ *:AIX:*:[45])
++ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | 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
+@@ -242,7 +505,7 @@
+ 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 ;;
+@@ -252,7 +515,7 @@
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit 0 ;;
+- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and
++ 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
+ *:BOSX:*:*)
+@@ -267,18 +530,75 @@
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit 0 ;;
+- 9000/[3478]??:HP-UX:*:*)
++ 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/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;;
+- 9000/8?? ) HP_ARCH=hppa1.0 ;;
++ 9000/[678][0-9][0-9])
++ case "${HPUX_REV}" in
++ 11.[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" ;;
++ esac ;;
++ esac
++ fi ;;
++ esac
++ if [ "${HP_ARCH}" = "" ]; then
++ sed 's/^ //' << EOF >$dummy.c
++
++ #define _HPUX_SOURCE
++ #include <stdlib.h>
++ #include <unistd.h>
++
++ 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
++ (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
++ if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
++ rm -f $dummy.c $dummy
++ fi ;;
+ esac
+- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ 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}
++ exit 0 ;;
+ 3050*:HI-UX:*:*)
+- sed 's/^ //' << EOF >dummy.c
++ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+@@ -303,8 +623,8 @@
+ exit (0);
+ }
+ EOF
+- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
+- rm -f dummy.c dummy
++ $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $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:*:* )
+@@ -313,13 +633,16 @@
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit 0 ;;
++ *9??*:MPE/iX:*:*)
++ echo hppa1.0-hp-mpeix
++ exit 0 ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit 0 ;;
+ 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
+@@ -329,6 +652,9 @@
+ 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 ;;
+@@ -359,104 +685,297 @@
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
+ exit 0 ;;
+ CRAY*TS:*:*:*)
+- echo t90-cray-unicos${UNAME_RELEASE}
++ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit 0 ;;
++ CRAY*T3D:*:*:*)
++ echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit 0 ;;
++ CRAY*T3E:*:*:*)
++ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit 0 ;;
++ CRAY*SV1:*:*:*)
++ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ 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/\///'`
++ 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 "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
++ echo "${FUJITSU_PROC}-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}
++ hp300:OpenBSD:*:*)
++ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+- hp3[0-9][05]:OpenBSD:*:*)
+- echo m68k-hp-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- i?86:BSD/386:*:* | *:BSD/OS:*:*)
++ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit 0 ;;
++ sparc*:BSD/OS:*:*)
++ echo sparc-unknown-bsdi${UNAME_RELEASE}
++ exit 0 ;;
++ *:BSD/OS:*:*)
++ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
++ exit 0 ;;
+ *: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 ;;
+ i*:CYGWIN*:*)
+- echo i386-pc-cygwin32
++ echo ${UNAME_MACHINE}-pc-cygwin
++ exit 0 ;;
++ i*:MINGW*:*)
++ echo ${UNAME_MACHINE}-pc-mingw32
++ exit 0 ;;
++ i*:PW*:*)
++ echo ${UNAME_MACHINE}-pc-pw32
++ 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 i386-pc-interix
++ exit 0 ;;
++ i*:UWIN*:*)
++ echo ${UNAME_MACHINE}-pc-uwin
+ exit 0 ;;
+ p*:CYGWIN*:*)
+- echo powerpcle-unknown-cygwin32
++ echo powerpcle-unknown-cygwin
+ exit 0 ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ *:GNU:*:*)
+- echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit 0 ;;
+- *:Linux:*:*)
+- # 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`
+- if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i.86"; then
+- echo "${UNAME_MACHINE}-pc-linux" ; exit 0
+- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86linux"; then
+- echo "${UNAME_MACHINE}-pc-linux-aout" ; exit 0
+- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86coff"; then
+- echo "${UNAME_MACHINE}-pc-linux-coff" ; exit 0
+- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then
+- echo "${UNAME_MACHINE}-unknown-linux" ; exit 0
+- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then
+- echo "${UNAME_MACHINE}-unknown-linux-aout" ; exit 0
+- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf32ppc"; then
+- echo "powerpc-unknown-linux" ; exit 0
+- elif test "${UNAME_MACHINE}" = "alpha" ; then
+- echo alpha-unknown-linux ; exit 0
+- elif test "${UNAME_MACHINE}" = "sparc" ; then
+- echo sparc-unknown-linux ; exit 0
+- else
+- # Either a pre-BFD a.out linker (linux-oldld) or one that does not give us
+- # useful --help. Gcc wants to distinguish between linux-oldld and linux-aout.
+- test ! -d /usr/lib/ldscripts/. \
+- && echo "${UNAME_MACHINE}-pc-linux-oldld" && exit 0
+- # Determine whether the default compiler is a.out or elf
+- cat >dummy.c <<EOF
++ i*86:Minix:*:*)
++ echo ${UNAME_MACHINE}-pc-minix
++ exit 0 ;;
++ arm*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit 0 ;;
++ ia64:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux
++ exit 0 ;;
++ m68*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit 0 ;;
++ mips:Linux:*:*)
++ cat >$dummy.c <<EOF
++#ifdef __cplusplus
++#include <stdio.h> /* 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
++ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
++ rm -f $dummy.c $dummy
++ ;;
++ ppc:Linux:*:*)
++ # Determine Lib Version
++ cat >$dummy.c <<EOF
++#include <features.h>
++#if defined(__GLIBC__)
++extern char __libc_version[];
++extern char __libc_release[];
++#endif
+ main(argc, argv)
+-int argc;
+-char *argv[];
++ int argc;
++ char *argv[];
+ {
++#if defined(__GLIBC__)
++ printf("%s %s\n", __libc_version, __libc_release);
++#else
++ printf("unknown\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 ;;
++ alpha:Linux:*:*)
++ cat <<EOF >$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 ;;
++ 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 ;;
++ 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:*:*)
++ # 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.
++ ld_supported_emulations=`cd /; ld --help 2>&1 \
++ | 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
++ ;;
++ elf_i*86)
++ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
++ ;;
++ i*86coff)
++ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
++ exit 0
++ ;;
++ esac
++ # 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.
++ test -z "$ld_supported_emulations" && 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 <<EOF
++#include <features.h>
++#ifdef __cplusplus
++#include <stdio.h> /* for printf() prototype */
++ int main (int argc, char *argv[]) {
++#else
++ int main (argc, argv) int argc; char *argv[]; {
++#endif
+ #ifdef __ELF__
+- printf ("%s-pc-linux\n", argv[1]);
++# 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-pc-linux-aout\n", argv[1]);
++ printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
+ #endif
+ return 0;
+ }
+ 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 ;;
++ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
++ rm -f $dummy.c $dummy
++ test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
++ ;;
+ # 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*:*)
++ i*86:DYNIX/ptx:4*:*)
+ echo i386-sequent-sysv4
+ exit 0 ;;
+- i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
++ 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.
++ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
++ exit 0 ;;
++ 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:*)
++ 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:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+@@ -465,11 +984,24 @@
+ (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
++ (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
++ && UNAME_MACHINE=i686
++ (/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
++ # the processor, so we play safe by assuming i386.
++ echo i386-pc-msdosdjgpp
++ exit 0 ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit 0 ;;
+@@ -489,7 +1021,7 @@
+ 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)
++ 3[34]??:*:4.0:3.0 | 3[34]??A:*: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`
+@@ -500,24 +1032,30 @@
+ 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:2.*:* | m68*:LynxOS:3.0*:*)
+ 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:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+- rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
++ rs6000: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 ;;
++ RM*:ReliantUNIX-*:*:*)
++ echo mips-sni-sysv4
++ exit 0 ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+@@ -529,6 +1067,10 @@
+ echo ns32k-sni-sysv
+ fi
+ exit 0 ;;
++ PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
++ # says <Richard.M.Bartel@ccMail.Census.GOV>
++ echo i586-unisys-sysv4
++ exit 0 ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+@@ -541,23 +1083,101 @@
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit 0 ;;
+- R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)
++ news*:NEWS-OS:6*:*)
++ echo mips-sony-newsos6
++ exit 0 ;;
++ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+- PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+- # says <Richard.M.Bartel@ccMail.Census.GOV>
+- echo i586-unisys-sysv4
+- exit 0 ;;
++ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
++ echo powerpc-be-beos
++ exit 0 ;;
++ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
++ echo powerpc-apple-beos
++ exit 0 ;;
++ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
++ echo i586-pc-beos
++ exit 0 ;;
++ SX-4:SUPER-UX:*:*)
++ echo sx4-nec-superux${UNAME_RELEASE}
++ exit 0 ;;
++ SX-5:SUPER-UX:*:*)
++ echo sx5-nec-superux${UNAME_RELEASE}
++ exit 0 ;;
++ Power*:Rhapsody:*:*)
++ echo powerpc-apple-rhapsody${UNAME_RELEASE}
++ exit 0 ;;
++ *:Rhapsody:*:*)
++ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
++ exit 0 ;;
++ *:Darwin:*:*)
++ echo `uname -p`-apple-darwin${UNAME_RELEASE}
++ exit 0 ;;
++ *:procnto*:*:* | *:QNX:[0123456789]*:*)
++ if test "${UNAME_MACHINE}" = "x86pc"; then
++ UNAME_MACHINE=pc
++ fi
++ echo `uname -p`-${UNAME_MACHINE}-nto-qnx
++ exit 0 ;;
++ *:QNX:*:4*)
++ echo i386-pc-qnx
++ exit 0 ;;
++ 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 ;;
++ DS/*:UNIX_System_V:*:*)
++ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
++ exit 0 ;;
++ *: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 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 ;;
++ *: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 ;;
+ 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 <<EOF
++cat >$dummy.c <<EOF
+ #ifdef _SEQUENT_
+ # include <sys/types.h>
+ # include <sys/utsname.h>
+@@ -595,7 +1215,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
+
+@@ -640,11 +1263,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 <sys/param.h>
++# 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)
+@@ -655,8 +1291,8 @@
+ }
+ 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 $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
++rm -f $dummy.c $dummy
+
+ # Apollos put the system type in the environment.
+
+@@ -688,6 +1324,48 @@
+ esac
+ fi
+
+-#echo '(Unable to guess system type)' 1>&2
++cat >&2 <<EOF
++$0: unable to guess system type
++
++This script, last modified $timestamp, has failed to recognize
++the operating system you are using. It is advised that you
++download the most up to date version of the config scripts from
++
++ ftp://ftp.gnu.org/pub/gnu/config/
++
++If the version you run ($0) is already up to date, please
++send the following data and any information you think might be
++pertinent to <config-patches@gnu.org> 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:
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/config.h.in fdutils/config.h.in
+--- fdutils-5.4/config.h.in Fri Jul 2 23:37:12 1999
++++ fdutils/config.h.in Mon May 21 00:24:53 2001
+@@ -14,3 +14,6 @@
+
+ /* Define if you have the <linux/xia_fs.h> header file. */
+ #undef HAVE_LINUX_XIA_FS_H
++
++/* Define if you have the <sys/sysmacros.h> header file. */
++#undef HAVE_SYS_SYSMACROS_H
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/config.sub fdutils/config.sub
+--- fdutils-5.4/config.sub Sun Mar 2 18:43:27 1997
++++ fdutils/config.sub Mon May 21 00:24:43 2001
+@@ -1,6 +1,10 @@
+ #! /bin/sh
+-# Configuration validation subroutine script, version 1.1.
+-# Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
++# Configuration validation subroutine script.
++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
++# Free Software Foundation, Inc.
++
++timestamp='2001-05-11'
++
+ # 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.
+@@ -25,6 +29,8 @@
+ # 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 <config-patches@gnu.org>.
++#
+ # 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.
+@@ -45,30 +51,73 @@
+ # 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 <config-patches@gnu.org>."
++
++version="\
++GNU config.sub ($timestamp)
++
++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."
++
++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 )
++ echo "$version" ; exit 0 ;;
++ --help | --h* | -h )
++ echo "$usage"; exit 0 ;;
++ -- ) # 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 0;;
++
++ * )
++ 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* | storm-chaos* | os2-emx*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+@@ -94,15 +143,25 @@
+ -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)
+ os=
+ basic_machine=$1
+ ;;
++ -sim | -cisco | -oki | -wec | -winbond)
++ os=
++ basic_machine=$1
++ ;;
++ -scout)
++ ;;
++ -wrs)
++ os=-vxworks
++ basic_machine=$1
++ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco5)
+- os=sco3.2v5
++ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+@@ -121,6 +180,9 @@
+ 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,25 +205,50 @@
+ -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 | m68k | m68000 | m88k | ns32k | arm \
+- | arme[lb] | pyramid \
+- | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \
+- | alpha | we32k | ns16k | clipper | i370 | sh \
+- | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \
+- | pdp11 | mips64el | mips64orion | mips64orionel \
+- | sparc | sparclet | sparclite | sparc64)
++ tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \
++ | arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \
++ | pyramid | mn10200 | mn10300 | tron | a29k \
++ | 580 | i960 | h8300 \
++ | x86 | ppcbe | mipsbe | mipsle | shbe | shle \
++ | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
++ | hppa64 \
++ | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
++ | alphaev6[78] \
++ | we32k | ns16k | clipper | i370 | sh | sh[34] \
++ | powerpc | powerpcle \
++ | 1750a | dsp16xx | pdp10 | pdp11 \
++ | mips16 | mips64 | mipsel | mips64el \
++ | mips64orion | mips64orionel | mipstx39 | mipstx39el \
++ | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
++ | mips64vr5000 | miprs64vr5000el | mcore | s390 | s390x \
++ | sparc | sparclet | sparclite | sparc64 | sparcv9 | sparcv9b \
++ | v850 | c4x \
++ | thumb | d10v | d30v | fr30 | avr | openrisc | tic80 \
++ | pj | pjl | h8500 | z8k)
+ basic_machine=$basic_machine-unknown
+ ;;
++ m6811 | m68hc11 | m6812 | m68hc12)
++ # Motorola 68HC11/12.
++ basic_machine=$basic_machine-unknown
++ os=-none
++ ;;
++ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | w65 | z8k)
++ ;;
++
+ # 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[3456]86)
++ i*86 | x86_64)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+@@ -170,23 +257,52 @@
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+- vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \
+- | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
+- | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
+- | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
+- | hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
+- | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \
+- | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \
+- | mips64el-* | mips64orion-* | mips64orionel-* | f301-*)
++ # FIXME: clean up the formatting here.
++ vax-* | tahoe-* | i*86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
++ | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \
++ | arm-* | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \
++ | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
++ | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
++ | xmp-* | ymp-* \
++ | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \
++ | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
++ | hppa2.0n-* | hppa64-* \
++ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
++ | alphaev6[78]-* \
++ | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
++ | clipper-* | orion-* \
++ | sparclite-* | pdp10-* | pdp11-* | sh-* | sh[34]-* | sh[34]eb-* \
++ | powerpc-* | powerpcle-* | sparc64-* | sparcv9-* | sparcv9b-* | sparc86x-* \
++ | mips16-* | mips64-* | mipsel-* \
++ | mips64el-* | mips64orion-* | mips64orionel-* \
++ | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
++ | mipstx39-* | mipstx39el-* | mcore-* \
++ | f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \
++ | [cjt]90-* \
++ | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
++ | thumb-* | v850-* | d30v-* | tic30-* | tic80-* | c30-* | fr30-* \
++ | bs2000-* | tic54x-* | c54x-* | x86_64-* | pj-* | pjl-*)
+ ;;
+ # 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
++ ;;
++ adobe68k)
++ basic_machine=m68010-adobe
++ os=-scout
++ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+@@ -202,20 +318,24 @@
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+- basic_machine=m68k-cbm
++ basic_machine=m68k-unknown
+ ;;
+- amigados)
+- basic_machine=m68k-cbm
+- os=-amigados
++ amigaos | amigados)
++ 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
++ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+@@ -252,13 +372,16 @@
+ basic_machine=cray2-cray
+ os=-unicos
+ ;;
+- [ctj]90-cray)
+- basic_machine=c90-cray
++ [cjt]90)
++ basic_machine=${basic_machine}-cray
+ os=-unicos
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
++ cris | cris-* | etrax*)
++ basic_machine=cris-axis
++ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+@@ -292,6 +415,10 @@
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
++ es1800 | OSE68k | ose68k | ose | OSE)
++ basic_machine=m68k-ericsson
++ os=-ose
++ ;;
+ fx2800)
+ basic_machine=i860-alliant
+ ;;
+@@ -302,6 +429,10 @@
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
++ go32)
++ basic_machine=i386-pc
++ os=-go32
++ ;;
+ h3050r* | hiux*)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+@@ -310,6 +441,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
+@@ -325,13 +464,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])
+@@ -340,27 +496,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[3456]86v32)
++ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+ ;;
+- i[3456]86v4*)
++ i*86v4*)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
+ ;;
+- i[3456]86v)
++ i*86v)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
+ ;;
+- i[3456]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
+@@ -386,19 +557,59 @@
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
++ mingw32)
++ basic_machine=i386-pc
++ os=-mingw32
++ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
++ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
++ basic_machine=m68k-atari
++ os=-mint
++ ;;
++ mipsel*-linux*)
++ basic_machine=mipsel-unknown
++ os=-linux-gnu
++ ;;
++ mips*-linux*)
++ basic_machine=mips-unknown
++ os=-linux-gnu
++ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
++ mmix*)
++ basic_machine=mmix-knuth
++ os=-mmixware
++ ;;
++ monitor)
++ basic_machine=m68k-rom68k
++ os=-coff
++ ;;
++ msdos)
++ basic_machine=i386-pc
++ os=-msdos
++ ;;
++ 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
+@@ -411,6 +622,10 @@
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
++ necv70)
++ basic_machine=v70-nec
++ os=-sysv
++ ;;
+ next | m*-next )
+ basic_machine=m68k-next
+ case $os in
+@@ -436,9 +651,32 @@
+ 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
+ ;;
++ nsr-tandem)
++ basic_machine=nsr-tandem
++ ;;
++ op50n-* | op60c-*)
++ basic_machine=hppa1.1-oki
++ os=-proelf
++ ;;
++ OSE68000 | ose68000)
++ basic_machine=m68000-ericsson
++ os=-ose
++ ;;
++ os68k)
++ basic_machine=m68k-none
++ os=-os68k
++ ;;
+ pa-hitachi)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+@@ -456,30 +694,28 @@
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
+- pentium | p5)
+- basic_machine=i586-intel
++ pentium | p5 | k5 | k6 | nexgen)
++ basic_machine=i586-pc
++ ;;
++ pentiumpro | p6 | 6x86 | athlon)
++ basic_machine=i686-pc
+ ;;
+- pentiumpro | p6)
+- basic_machine=i686-intel
++ pentiumii | pentium2)
++ basic_machine=i686-pc
+ ;;
+- pentium-* | p5-*)
++ pentium-* | p5-* | k5-* | k6-* | nexgen-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+- pentiumpro-* | p6-*)
++ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+- k5)
+- # We don't have specific support for AMD's K5 yet, so just call it a Pentium
+- basic_machine=i586-amd
+- ;;
+- nexen)
+- # We don't have specific support for Nexgen yet, so just call it a Pentium
+- basic_machine=i586-nexgen
++ pentiumii-* | pentium2-*)
++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+- power) basic_machine=rs6000-ibm
++ power) basic_machine=power-ibm
+ ;;
+ ppc) basic_machine=powerpc-unknown
+ ;;
+@@ -494,12 +730,24 @@
+ ps2)
+ basic_machine=i386-ibm
+ ;;
++ pw32)
++ basic_machine=i586-unknown
++ os=-pw32
++ ;;
++ rom68k)
++ basic_machine=m68k-rom68k
++ os=-coff
++ ;;
+ rm[46]00)
+ basic_machine=mips-siemens
+ ;;
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
+ ;;
++ sa29200)
++ basic_machine=a29k-amd
++ os=-udi
++ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+@@ -507,6 +755,10 @@
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
++ sparclite-wrs)
++ basic_machine=sparclite-wrs
++ os=-vxworks
++ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
+@@ -514,6 +766,13 @@
+ spur)
+ basic_machine=spur-unknown
+ ;;
++ st2000)
++ basic_machine=m68k-tandem
++ ;;
++ stratus)
++ basic_machine=i860-stratus
++ os=-sysv4
++ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+@@ -554,10 +813,28 @@
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ ;;
++ sv1)
++ basic_machine=sv1-cray
++ os=-unicos
++ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
++ t3e)
++ basic_machine=t3e-cray
++ os=-unicos
++ ;;
++ tic54x | c54x*)
++ basic_machine=tic54x-unknown
++ os=-coff
++ ;;
++ tx39)
++ basic_machine=mipstx39-unknown
++ ;;
++ tx39el)
++ basic_machine=mipstx39el-unknown
++ ;;
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+@@ -569,6 +846,10 @@
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
++ v810 | necv810)
++ basic_machine=v810-nec
++ os=-none
++ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+@@ -577,7 +858,7 @@
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+- vpp*|vx|vx-*)
++ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
+ ;;
+ vxworks960)
+@@ -592,6 +873,14 @@
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
++ w65*)
++ basic_machine=w65-wdc
++ os=-none
++ ;;
++ w89k-*)
++ basic_machine=hppa1.1-winbond
++ os=-proelf
++ ;;
+ xmp)
+ basic_machine=xmp-cray
+ os=-unicos
+@@ -599,6 +888,10 @@
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
++ z8k-*-coff)
++ basic_machine=z8k-unknown
++ os=-sim
++ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+@@ -606,8 +899,21 @@
+
+ # 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.
++ w89k)
++ basic_machine=hppa1.1-winbond
++ ;;
++ op50n)
++ basic_machine=hppa1.1-oki
++ ;;
++ op60c)
++ basic_machine=hppa1.1-oki
++ ;;
+ mips)
+- basic_machine=mips-mips
++ if [ x$os = x-linux-gnu ]; then
++ basic_machine=mips-unknown
++ else
++ basic_machine=mips-mips
++ fi
+ ;;
+ romp)
+ basic_machine=romp-ibm
+@@ -618,13 +924,20 @@
+ 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)
++ sh3 | sh4)
++ basic_machine=sh-unknown
++ ;;
++ sparc | sparcv9 | sparcv9b)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+@@ -636,6 +949,19 @@
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
++ mac | mpw | mac-mpw)
++ basic_machine=m68k-apple
++ ;;
++ pmac | pmac-mpw)
++ basic_machine=powerpc-apple
++ ;;
++ c4x*)
++ basic_machine=c4x-none
++ os=-coff
++ ;;
++ *-unknown)
++ # Make sure to match an already-canonicalized machine name.
++ ;;
+ *)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+@@ -668,9 +994,12 @@
+ -solaris)
+ os=-solaris2
+ ;;
+- -unixware* | svr4*)
++ -svr4*)
+ os=-sysv4
+ ;;
++ -unixware*)
++ os=-sysv4.2uw
++ ;;
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+@@ -681,19 +1010,42 @@
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+- | -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \
++ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
++ | -aos* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
+- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
++ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+- | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+- | -linux-gnu* | -uxpv*)
++ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
++ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
++ | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
++ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
++ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
++ -qnx*)
++ case $basic_machine in
++ x86-* | i*86-*)
++ ;;
++ *)
++ os=-nto$os
++ ;;
++ esac
++ ;;
++ -nto*)
++ os=-nto-qnx
++ ;;
++ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
++ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
++ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
++ ;;
++ -mac*)
++ os=`echo $os | sed -e 's|mac|macos|'`
++ ;;
+ -linux*)
+- os=`echo $os | sed -e 's|linux|linux|'`
++ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
+@@ -701,6 +1053,12 @@
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ ;;
++ -opened*)
++ os=-openedition
++ ;;
++ -wince*)
++ os=-wince
++ ;;
+ -osfrose*)
+ os=-osfrose
+ ;;
+@@ -716,12 +1074,18 @@
+ -acis*)
+ os=-aos
+ ;;
++ -386bsd)
++ os=-bsd
++ ;;
+ -ctix* | -uts*)
+ os=-sysv
+ ;;
+ -ns2 )
+ os=-nextstep2
+ ;;
++ -nsk*)
++ os=-nsk
++ ;;
+ # Preserve the version number of sinix5.
+ -sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+@@ -747,9 +1111,18 @@
+ # 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
++ ;;
+ -none)
+ ;;
+ *)
+@@ -775,9 +1148,15 @@
+ *-acorn)
+ os=-riscix1.2
+ ;;
++ arm*-rebel)
++ os=-linux
++ ;;
+ arm*-semi)
+ os=-aout
+ ;;
++ pdp10-*)
++ os=-tops20
++ ;;
+ pdp11-*)
+ os=-none
+ ;;
+@@ -796,15 +1175,36 @@
+ # default.
+ # os=-sunos4
+ ;;
++ m68*-cisco)
++ os=-aout
++ ;;
++ mips*-cisco)
++ os=-elf
++ ;;
++ mips*-*)
++ os=-elf
++ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=-sysv3
+ ;;
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
++ *-be)
++ os=-beos
++ ;;
+ *-ibm)
+ os=-aix
+ ;;
++ *-wec)
++ os=-proelf
++ ;;
++ *-winbond)
++ os=-proelf
++ ;;
++ *-oki)
++ os=-proelf
++ ;;
+ *-hp)
+ os=-hpux
+ ;;
+@@ -815,7 +1215,7 @@
+ os=-sysv
+ ;;
+ *-cbm)
+- os=-amigados
++ os=-amigaos
+ ;;
+ *-dg)
+ os=-dgux
+@@ -865,9 +1265,21 @@
+ *-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
+ ;;
+@@ -889,9 +1301,15 @@
+ -aix*)
+ vendor=ibm
+ ;;
++ -beos*)
++ vendor=be
++ ;;
+ -hpux*)
+ vendor=hp
+ ;;
++ -mpeix*)
++ vendor=hp
++ ;;
+ -hiux*)
+ vendor=hitachi
+ ;;
+@@ -907,7 +1325,7 @@
+ -genix*)
+ vendor=ns
+ ;;
+- -mvs*)
++ -mvs* | -opened*)
+ vendor=ibm
+ ;;
+ -ptx*)
+@@ -919,9 +1337,26 @@
+ -aux*)
+ vendor=apple
+ ;;
++ -hms*)
++ vendor=hitachi
++ ;;
++ -mpw* | -macos*)
++ vendor=apple
++ ;;
++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
++ vendor=atari
++ ;;
+ esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+ esac
+
+ echo $basic_machine$os
++exit 0
++
++# Local variables:
++# eval: (add-hook 'write-file-hooks 'time-stamp)
++# time-stamp-start: "timestamp='"
++# time-stamp-format: "%:y-%02m-%02d"
++# time-stamp-end: "'"
++# End:
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/configure fdutils/configure
+--- fdutils-5.4/configure Fri Jul 2 23:37:09 1999
++++ fdutils/configure Mon May 21 00:24:49 2001
+@@ -1250,7 +1250,7 @@
+ esac
+
+
+-for ac_hdr in linux/ext_fs.h linux/xia_fs.h
++for ac_hdr in linux/ext_fs.h linux/xia_fs.h sys/sysmacros.h
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/configure.in fdutils/configure.in
+--- fdutils-5.4/configure.in Thu Jul 1 19:22:51 1999
++++ fdutils/configure.in Mon May 21 00:24:21 2001
+@@ -18,7 +18,7 @@
+ AC_C_CONST
+ AC_C_INLINE
+
+-AC_CHECK_HEADERS(linux/ext_fs.h linux/xia_fs.h)
++AC_CHECK_HEADERS(linux/ext_fs.h linux/xia_fs.h sys/sysmacros.h)
+
+ dnl Make fdmount accessible by the floppy group only
+ undefine([fdmount-floppy-only])dnl
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/README fdutils/doc/README
+--- fdutils-5.4/doc/README Thu Jul 1 19:43:45 1999
++++ fdutils/doc/README Mon Jun 11 22:26:36 2001
+@@ -171,7 +171,7 @@
+ disks and also Commodore 1581 disks. Please get Michael Haardt's
+ documentation on floppy drives for a detailed description of those
+ formats. This can be ftp'ed from
+-ftp://cantor.informatik.rwth-aachen.de/pub/linux/floppy.ps
++http://www.moria.de/~michael/floppy/floppy.ps
+
+ Commodore 1581 disks are not yet described in this documentation.
+ Use 'setfdprm /dev/fd0 1600 10 2 80 2 0x2A 0x02 0xDF 0x2E' to use
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/acronyms.texi fdutils/doc/acronyms.texi
+--- fdutils-5.4/doc/acronyms.texi Sat May 27 18:37:00 2000
++++ fdutils/doc/acronyms.texi Mon Jun 11 22:23:31 2001
+@@ -100,7 +100,7 @@
+ disks, i.e. virtually all disks that are available today. The PC
+ hardware can only read MFM and FM disks. The doc at:
+ @example
+-ftp://cantor.informatik.rwth-aachen.de/pub/linux/floppy.ps
++http://www.moria.de/~michael/floppy/floppy.ps
+ @end example
+ contains more detailed information about FM and MFM encoding.
+
+@@ -108,7 +108,7 @@
+ FM is a low level encoding of disk data. It was used for SD disks, and
+ is now considered to be obsolete. The doc at:
+ @example
+-ftp://cantor.informatik.rwth-aachen.de/pub/linux/floppy.ps
++http://www.moria.de/~michael/floppy/floppy.ps
+ @end example
+ contains more detailed information about FM and MFM encoding.
+
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/diskd.1 fdutils/doc/diskd.1
+--- fdutils-5.4/doc/diskd.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/diskd.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH diskd 1 "02jun00" fdutils-5.4
++.TH diskd 1 "11Jun01" fdutils-5.4
+ .SH Name
+ diskd - disk daemon; wait for disk to be inserted
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/diskseekd.1 fdutils/doc/diskseekd.1
+--- fdutils-5.4/doc/diskseekd.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/diskseekd.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH diskseekd 1 "02jun00" fdutils-5.4
++.TH diskseekd 1 "11Jun01" fdutils-5.4
+ .SH Name
+ diskseek, diskseekd - disk seek daemon; simulates Messy Dos' drive cleaning effect
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/fd.4 fdutils/doc/fd.4
+--- fdutils-5.4/doc/fd.4 Fri Jul 2 23:44:15 1999
++++ fdutils/doc/fd.4 Mon Jun 11 22:23:59 2001
+@@ -1,7 +1,7 @@
+ '\" t
+ .\"{{{}}}
+ .\"{{{ Notes
+-.\" Copyright (c) 1993 Michael Haardt (michael@cantor.informatik.rwth-aachen.de)
++.\" Copyright (c) 1993 Michael Haardt (michael@moria.de)
+ .\" and 1994,1995, 1997 Alain Knaff (alain@linux.lu)
+ .\"
+ .\" This is free documentation; you can redistribute it and/or
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/fdmount.1 fdutils/doc/fdmount.1
+--- fdutils-5.4/doc/fdmount.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/fdmount.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH fdmount 1 "02jun00" fdutils-5.4
++.TH fdmount 1 "11Jun01" fdutils-5.4
+ .SH Name
+ fdmount - Floppy disk mount utility
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/fdrawcmd.1 fdutils/doc/fdrawcmd.1
+--- fdutils-5.4/doc/fdrawcmd.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/fdrawcmd.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH fdrawcmd 1 "02jun00" fdutils-5.4
++.TH fdrawcmd 1 "11Jun01" fdutils-5.4
+ .SH Name
+ fdrawcmd - send raw commands to the floppy disk controller
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/floppycontrol.1 fdutils/doc/floppycontrol.1
+--- fdutils-5.4/doc/floppycontrol.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/floppycontrol.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH floppycontrol 1 "02jun00" fdutils-5.4
++.TH floppycontrol 1 "11Jun01" fdutils-5.4
+ .SH Name
+ floppycontrol - floppy driver configuration utility
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/floppymeter.1 fdutils/doc/floppymeter.1
+--- fdutils-5.4/doc/floppymeter.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/floppymeter.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH floppymeter 1 "02jun00" fdutils-5.4
++.TH floppymeter 1 "11Jun01" fdutils-5.4
+ .SH Name
+ floppymeter - measure raw capacity and exact rotation speed of floppy drive
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/format2.texi fdutils/doc/format2.texi
+--- fdutils-5.4/doc/format2.texi Fri Sep 19 21:01:19 1997
++++ fdutils/doc/format2.texi Mon Jun 11 21:59:18 2001
+@@ -157,7 +157,7 @@
+ on floppy drives for a detailed description of those formats. This can
+ be ftp'ed from the following location:
+ @example
+-ftp://cantor.informatik.rwth-aachen.de/pub/linux/floppy.ps
++http://www.moria.de/~michael/floppy/
+ @end example
+
+ Commodore 1581 disks are not yet described in this documentation. Use
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/getfdprm.1 fdutils/doc/getfdprm.1
+--- fdutils-5.4/doc/getfdprm.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/getfdprm.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH getfdprm 1 "02jun00" fdutils-5.4
++.TH getfdprm 1 "11Jun01" fdutils-5.4
+ .SH Name
+ getfdprm - print the current format information
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/makefloppies.1 fdutils/doc/makefloppies.1
+--- fdutils-5.4/doc/makefloppies.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/makefloppies.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH makefloppies 1 "02jun00" fdutils-5.4
++.TH makefloppies 1 "11Jun01" fdutils-5.4
+ .SH Name
+ MAKEFLOPPIES - Creates the default floppy device nodes.
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/setfdprm.1 fdutils/doc/setfdprm.1
+--- fdutils-5.4/doc/setfdprm.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/setfdprm.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH setfdprm 1 "02jun00" fdutils-5.4
++.TH setfdprm 1 "11Jun01" fdutils-5.4
+ .SH Name
+ setfdprm - sets user-provided floppy disk parameters
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/superformat.1 fdutils/doc/superformat.1
+--- fdutils-5.4/doc/superformat.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/superformat.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH superformat 1 "02jun00" fdutils-5.4
++.TH superformat 1 "11Jun01" fdutils-5.4
+ .SH Name
+ superformat - format floppies
+ '\" t
+@@ -258,14 +258,19 @@
+ spins, and on how much time is needed to change the head or the track.
+ .TP
+ \&\fR\&\f(CW--absolute_skew\ \fIabsolute-skew\fR\&\f(CW\fR\
+-Set the absolute skew. (The skew value used for the first formatted
+-track)
++.IP
++Set the absolute skew. This skew value is used for the first formatted
++track. It is expressed in raw bytes.
+ .TP
+ \&\fR\&\f(CW--head_skew\ \fIhead-skew\fR\&\f(CW\fR\
+-Set the head skew. (The skew added for passing from head 0 to head 1)
++.IP
++Set the head skew. This is the skew added for passing from head 0 to
++head 1. It is expressed in raw bytes.
+ .TP
+ \&\fR\&\f(CW--track_skew\ \fItrack-skew\fR\&\f(CW\fR\
+-Set the track skew. (The skew added for seeking to the next track)
++.IP
++Set the track skew. This is the skew added for seeking to the next
++track. It is expressed in raw bytes.
+ .PP
+ Example: (absolute skew=3, head skew=1, track skew=2)
+ .PP
+@@ -287,6 +292,10 @@
+ .lp
+
+ \&\fR
++.PP
++N.B. For simplicitie's sake, this example expresses skews in units of
++sectors. In reality, superformat expects the skews to be expressed in
++raw bytes.
+ .PP
+ .SH Examples
+ In all the examples of this section, we assume that drive 0 is a 3 1/2
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/superformat.texi fdutils/doc/superformat.texi
+--- fdutils-5.4/doc/superformat.texi Sat May 27 18:36:51 2000
++++ fdutils/doc/superformat.texi Mon May 21 00:24:21 2001
+@@ -187,14 +187,20 @@
+
+ @table @code
+ @item --absolute_skew @var{absolute-skew}
+-Set the absolute skew. (The skew value used for the first formatted
+-track)
++
++Set the absolute skew. This skew value is used for the first formatted
++track. It is expressed in raw bytes.
+
+ @item --head_skew @var{head-skew}
+-Set the head skew. (The skew added for passing from head 0 to head 1)
++
++Set the head skew. This is the skew added for passing from head 0 to
++head 1. It is expressed in raw bytes.
+
+ @item --track_skew @var{track-skew}
+-Set the track skew. (The skew added for seeking to the next track)
++
++Set the track skew. This is the skew added for seeking to the next
++track. It is expressed in raw bytes.
++
+ @end table
+
+ Example: (absolute skew=3, head skew=1, track skew=2)
+@@ -209,6 +215,10 @@
+ track 2 head 0: 4,5,6,1,2,3 (skew=3)
+ track 2 head 1: 3,4,5,6,1,2 (skew=4)
+ @end example
++
++N.B. For simplicitie's sake, this example expresses skews in units of
++sectors. In reality, superformat expects the skews to be expressed in
++raw bytes.
+
+ @node Examples, Troubleshooting, Sector skewing options, superformat
+ @subsection Examples
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/xdfcopy.1 fdutils/doc/xdfcopy.1
+--- fdutils-5.4/doc/xdfcopy.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/xdfcopy.1 Mon Jun 11 22:22:47 2001
+@@ -1,4 +1,4 @@
+-.TH xdfcopy 1 "02jun00" fdutils-5.4
++.TH xdfcopy 1 "11Jun01" fdutils-5.4
+ .SH Name
+ xdfcopy - Program to copy and format Xdf disks in Linux
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/MAKEFLOPPIES fdutils/src/MAKEFLOPPIES
+--- fdutils-5.4/src/MAKEFLOPPIES Wed Aug 21 16:51:25 1996
++++ fdutils/src/MAKEFLOPPIES Sun Feb 3 20:13:39 2002
+@@ -12,6 +12,9 @@
+ set -u
+ MAJOR=2
+ TMPDEVICE=/dev/tmpfloppy$$
++if [ ! -b /dev/fd0 ] ; then
++ mknod /dev/fd0 b $MAJOR 0
++fi
+ if floppycontrol 2>/dev/null; then
+ FLOPPYCONTROL=yes
+ else
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/diskseekd.c fdutils/src/diskseekd.c
+--- fdutils-5.4/src/diskseekd.c Sat May 27 18:50:05 2000
++++ fdutils/src/diskseekd.c Mon May 21 00:24:21 2001
+@@ -1,4 +1,7 @@
+ #include <sys/types.h>
++#ifdef HAVE_SYS_SYSMACROS_H
++# include <sys/sysmacros.h>
++#endif
+ #include <sys/time.h>
+ #include <unistd.h>
+ #include <stdio.h>
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/driveprm.c fdutils/src/driveprm.c
+--- fdutils-5.4/src/driveprm.c Sat May 27 18:49:58 2000
++++ fdutils/src/driveprm.c Mon May 21 00:24:21 2001
+@@ -1,3 +1,7 @@
++#include <sys/types.h>
++#ifdef HAVE_SYS_SYSMACROS_H
++# include <sys/sysmacros.h>
++#endif
+ #include <stdlib.h>
+ #include <string.h>
+ #include <stdio.h>
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/fdmount.c fdutils/src/fdmount.c
+--- fdutils-5.4/src/fdmount.c Sat May 27 18:50:14 2000
++++ fdutils/src/fdmount.c Sun Feb 3 23:50:06 2002
+@@ -826,14 +826,9 @@
+
+ mnt=get_mounted(devname);
+ if (!mnt) {
+- if (!force) {
+- errmsg("not mounted");
+- save_unlock_mtab();
+- return -1;
+- }
+- else {
+- msg("not in /etc/mtab, trying to unmount anyway!");
+- }
++ errmsg("not mounted");
++ save_unlock_mtab();
++ return -1;
+ }
+ else {
+ mountpoint=mnt->ms.mnt_dir;
+@@ -860,7 +855,7 @@
+ }
+ #endif
+
+- e=umount(devname);
++ e=umount(mountpoint);
+ if (e) {
+ errmsg("failed to unmount: %s\n",strerror(errno));
+ goto err;
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/floppycontrol.c fdutils/src/floppycontrol.c
+--- fdutils-5.4/src/floppycontrol.c Sun Apr 2 10:18:15 2000
++++ fdutils/src/floppycontrol.c Sat Oct 27 13:47:28 2001
+@@ -16,6 +16,11 @@
+ #include <getopt.h>
+ #include "enh_options.h"
+
++#ifndef FD_DISK_CHANGED
++#define FD_DISK_CHANGED 0
++#endif
++
++
+ int eioctl(int fd, int command,void * param, char *emsg)
+ {
+ int r;
+@@ -381,14 +386,17 @@
+ eioctl( fd, FDPOLLDRVSTAT, &drivstat,"get drive state");
+ else
+ eioctl( fd, FDGETDRVSTAT , &drivstat,"get drive state");
+- printf("%s %s %s %s %s\n",
++
++#ifndef FD_DCL_SEEN
++# define FD_DCL_SEEN 0x40
++#endif
++ printf("%s %s %s %s %s %s\n",
+ drivstat.flags & FD_VERIFY ? "verify" : "",
+ drivstat.flags & FD_DISK_NEWCHANGE ? "newchange" : "",
+ drivstat.flags & FD_NEED_TWADDLE ? "need_twaddle" : "",
+-#ifdef FD_DISK_CHANGED
+ drivstat.flags & FD_DISK_CHANGED ? "disk_changed" : "",
+-#endif
+- drivstat.flags & FD_DISK_WRITABLE ?"disk_writable" : "");
++ drivstat.flags & FD_DISK_WRITABLE ?"disk_writable" : "",
++ drivstat.flags & FD_DCL_SEEN ?"dcl_seen" : "");
+ printf("spinup= %ld\n", drivstat.spinup_date);
+ printf("select= %ld\n", drivstat.select_date);
+ printf("first_read= %ld\n", drivstat.first_read_date);
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/floppymeter.c fdutils/src/floppymeter.c
+--- fdutils-5.4/src/floppymeter.c Sat May 27 18:49:58 2000
++++ fdutils/src/floppymeter.c Mon May 21 00:24:21 2001
+@@ -1,3 +1,7 @@
++#include <sys/types.h>
++#ifdef HAVE_SYS_SYSMACROS_H
++# include <sys/sysmacros.h>
++#endif
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <string.h>
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/measure.c fdutils/src/measure.c
+--- fdutils-5.4/src/measure.c Sat May 27 18:49:57 2000
++++ fdutils/src/measure.c Sun Feb 3 22:15:54 2002
+@@ -138,6 +138,23 @@
+ perror("format");
+ exit(1);
+ }
++
++ if((raw_cmd.reply[1] & ~0x20) |
++ (raw_cmd.reply[2] & ~0x20)) {
++ int i;
++
++ if ( raw_cmd.reply[1] & ST1_WP ){
++ fprintf(stderr,"The disk is write protected\n");
++ exit(1);
++ }
++
++ fprintf(stderr,
++ "\nFatal error while measuring raw capacity\n");
++ for(i=0; i < raw_cmd.reply_count; i++) {
++ fprintf(stderr, "%d: %02x\n", i, raw_cmd.reply[i]);
++ }
++ exit(1);
++ }
+ }
+
+
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/mediaprm.c fdutils/src/mediaprm.c
+--- fdutils-5.4/src/mediaprm.c Wed Mar 22 22:16:53 2000
++++ fdutils/src/mediaprm.c Mon May 21 00:24:21 2001
+@@ -20,6 +20,7 @@
+ FE_TPI,
+ FE_STRETCH,
+ FE_SWAPSIDES,
++ FE_ZEROBASED,
+
+ FE_GAP,
+
+@@ -35,7 +36,8 @@
+ FE_DENSITY,
+ } field_t;
+
+-static int SIZE, SECT, VSECT, HEAD, CYL, TPI, STRETCH, SWAPSIDES, GAP, FM;
++static int SIZE, SECT, VSECT, HEAD, CYL, TPI, STRETCH, SWAPSIDES, ZEROBASED;
++static int GAP, FM;
+ static int PERP, SSIZE, _2M, DTR, SPEC1, FMT_GAP, DENSITY;
+ static int ssize;
+
+@@ -48,6 +50,7 @@
+ #define F_TPI FE_TPI,&TPI
+ #define F_STRETCH FE_STRETCH,&STRETCH
+ #define F_SWAPSIDES FE_SWAPSIDES,&SWAPSIDES
++#define F_ZEROBASED FE_ZEROBASED,&ZEROBASED
+
+ #define F_GAP FE_GAP,&GAP
+
+@@ -77,6 +80,7 @@
+ { "stretch", F_STRETCH, 0 },
+
+ { "swapsides", F_SWAPSIDES, 1},
++ { "zerobased", F_ZEROBASED, 1},
+
+ { "gap", F_GAP, 0},
+
+@@ -234,7 +238,7 @@
+ medprm->sect = VSECT / 512;
+ medprm->head = HEAD;
+ medprm->track = CYL;
+- medprm->stretch = STRETCH | (SWAPSIDES << 1);
++ medprm->stretch = STRETCH | (SWAPSIDES << 1) | (ZEROBASED << 2);
+ medprm->gap = GAP;
+ medprm->rate = (FM<<7) | (PERP<<6) | (ssize<<3) | (_2M<<2) | DTR;
+ medprm->spec1 = SPEC1;
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/printfdprm.c fdutils/src/printfdprm.c
+--- fdutils-5.4/src/printfdprm.c Mon Jun 9 22:58:15 1997
++++ fdutils/src/printfdprm.c Mon May 21 00:24:21 2001
+@@ -141,6 +141,12 @@
+ print("swapsides",0);
+ #endif
+
++#ifdef FD_ZEROBASED
++ if(ft->stretch & FD_ZEROBASED)
++ print("zerobased",0);
++#endif
++
++
+ if(ft->rate & FD_2M)
+ print("2M",0);
+
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/superformat.c fdutils/src/superformat.c
+--- fdutils-5.4/src/superformat.c Sat May 27 18:49:57 2000
++++ fdutils/src/superformat.c Fri Feb 22 11:55:23 2002
+@@ -26,7 +26,10 @@
+ cylinders as happen to work (as in 2m). Currently, if too many cylinders
+ are attempted it won't fail until the very end
+ */
+-
++#include <sys/types.h>
++#ifdef HAVE_SYS_SYSMACROS_H
++# include <sys/sysmacros.h>
++#endif
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -68,6 +71,7 @@
+ char floppy_buffer[24 * 512];
+ int verbosity = 3;
+ static char noverify = 0;
++static char noformat = 0;
+ static char dosverify = 0;
+ static char verify_later = 0;
+ short stretch;
+@@ -323,7 +327,8 @@
+ raw_cmd.length = nssect * sizeof(format_map_t);
+ raw_cmd.cmd_count = 6;
+ raw_cmd.cmd[0] = FD_FORMAT & ~fm_mode;
+- raw_cmd.cmd[1] = head << 2 | ( fd->drive & 3);
++ raw_cmd.cmd[1] = (head << 2 | ( fd->drive & 3)) ^
++ (fd->swapSides ? 4 : 0);
+ raw_cmd.cmd[2] = fd->sizecode;
+ raw_cmd.cmd[3] = nssect;
+ raw_cmd.cmd[4] = fd->fmt_gap;
+@@ -355,7 +360,8 @@
+ raw_cmd.data = floppy_buffer;
+ raw_cmd.cmd_count = 9;
+ raw_cmd.cmd[0] = FD_WRITE & ~fm_mode & ~0x80;
+- raw_cmd.cmd[1] = head << 2 | ( fd->drive & 3);
++ raw_cmd.cmd[1] = (head << 2 | ( fd->drive & 3)) ^
++ (fd->swapSides ? 4 : 0);
+ raw_cmd.cmd[2] = cylinder;
+ raw_cmd.cmd[3] = head;
+ raw_cmd.cmd[4] = cur_sector;
+@@ -490,6 +496,7 @@
+
+ short retries;
+ short zeroBased=0;
++ short swapSides=0;
+ int n,rsize;
+ char *verify_buffer = NULL;
+ char dosdrive;
+@@ -510,6 +517,11 @@
+ (void *) &noverify,
+ "skip verification" },
+
++ { '\0', "print-drive-deviation", 0, EO_TYPE_BYTE, 1, 0,
++ (void *) &noformat,
++ "print deviation, do not format " },
++
++
+ { 'B', "dosverify", 0, EO_TYPE_BYTE, 1, 0,
+ (void *) &dosverify,
+ "verify disk using mbadblocks" },
+@@ -662,11 +674,6 @@
+ exit(1);
+ }
+
+- fd[0].zeroBased = zeroBased;
+- if(zeroBased)
+- noverify = 1;
+-
+-
+ /* sanity checking */
+ if (sizecode < 0 || sizecode >= MAX_SIZECODE) {
+ fprintf(stderr,"Bad sizecode %d\n", sizecode);
+@@ -779,7 +786,16 @@
+ break;
+ }
+ stretch = geometry.stretch & 1;
+-
++#ifdef FD_ZEROBASED
++ if(geometry.stretch & FD_ZEROBASED) {
++ zeroBased = 1;
++ }
++#endif
++#ifdef FD_SWAPSIDES
++ if(geometry.stretch & FD_SWAPSIDES) {
++ swapSides = 1;
++ }
++#endif
+ mask |= SET_SECTORS | SET_CYLINDERS |
+ SET_SIZECODE | SET_2M | SET_RATE;
+ } else {
+@@ -831,6 +847,15 @@
+ stretch = 0;
+ }
+ }
++
++ fd[0].zeroBased = zeroBased;
++#ifndef FD_ZEROBASED
++ if(zeroBased) {
++ noverify = 1;
++ }
++#endif
++
++ fd[0].swapSides = swapSides;
+
+ if (cylinders > fd[0].drvprm.tracks) {
+ fprintf(stderr,"too many cylinder for this drive\n");
+@@ -900,8 +925,9 @@
+ fprintf(stderr,
+ "In order to avoid this time consuming "
+ "measurement in the future,\n"
+- "add the following line to " DRIVEPRMFILE
+- ":\ndrive%d: deviation=%d\n",
++ "add the following line to " DRIVEPRMFILE ":\n");
++ fprintf(stdout,
++ "drive%d: deviation=%d\n",
+ fd[0].drive,
+ (fd[0].raw_capacity-old_capacity)*1000000/
+ old_capacity);
+@@ -914,6 +940,9 @@
+ }
+ }
+
++ if(noformat)
++ return 0;
++
+ /* FIXME. Why is this needed? */
+ fd[0].raw_capacity -= 30;
+
+@@ -971,7 +1000,11 @@
+ parameters.head = heads;
+ parameters.track = cylinders;
+ parameters.size = cylinders * heads * sectors;
+- parameters.stretch = stretch;
++ parameters.stretch = stretch
++#ifdef FD_ZEROBASED
++ | (zeroBased ? 4 : 0)
++#endif
++ | (swapSides ? 2 : 0);
+ parameters.gap = fd[0].gap;
+ if ( !use_2m)
+ fd0.rate = fd[0].rate;
+@@ -1054,7 +1087,7 @@
+ ioctl(fd[0].fd, FDFLUSH );
+ close(fd[0].fd);
+
+- if (! (mask & SET_DOSDRIVE ) && fd[0].drive < 2)
++ if (! (mask & SET_DOSDRIVE ) && fd[0].drive < 2 && !zeroBased)
+ dosdrive = fd[0].drive+'a';
+
+ if (dosdrive) {
+@@ -1085,8 +1118,9 @@
+ dosverify = 0;
+ }
+ } else {
+- fprintf(stderr,
+- "\nwarning: mformat not called because DOS drive unknown\n");
++ if(!zeroBased)
++ fprintf(stderr,
++ "\nwarning: mformat not called because DOS drive unknown\n");
+ /*exit(1);*/
+ dosverify = 0;
+ }
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/superformat.h fdutils/src/superformat.h
+--- fdutils-5.4/src/superformat.h Sun Apr 2 10:09:28 2000
++++ fdutils/src/superformat.h Mon May 21 00:24:21 2001
+@@ -84,6 +84,7 @@
+ int rotations; /* how many time do we have to go over 0 to read
+ * the track */
+ int zeroBased; /* 1 if sector numbering starts at zero */
++ int swapSides; /* if logical side 0 is on physical 1 and vice-versa */
+ };
+
+
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/xdfcopy.c fdutils/src/xdfcopy.c
+--- fdutils-5.4/src/xdfcopy.c Sat May 27 18:49:57 2000
++++ fdutils/src/xdfcopy.c Mon May 21 00:24:21 2001
+@@ -2,6 +2,10 @@
+ * Software patents declared unconstitutional, worldwide
+ */
+
++#include <sys/types.h>
++#ifdef HAVE_SYS_SYSMACROS_H
++# include <sys/sysmacros.h>
++#endif
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <string.h>
diff --git a/source/a/floppy/fdutils.mediaprm.diff b/source/a/floppy/fdutils.mediaprm.diff
new file mode 100644
index 000000000..cf9a0a6d7
--- /dev/null
+++ b/source/a/floppy/fdutils.mediaprm.diff
@@ -0,0 +1,8 @@
+--- ./src/mediaprm.orig Sat Feb 3 21:01:37 2001
++++ ./src/mediaprm Sat Feb 3 21:01:48 2001
+@@ -1,4 +1,4 @@
+-# /etc/fdprm - floppy disk parameter table
++# /etc/mediaprm - floppy disk parameter table
+
+ ########################################################################
+ # Standard linux disk formats. Names are of the form
diff --git a/source/a/floppy/floppy.SlackBuild b/source/a/floppy/floppy.SlackBuild
new file mode 100755
index 000000000..38a5cc86f
--- /dev/null
+++ b/source/a/floppy/floppy.SlackBuild
@@ -0,0 +1,100 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=5.4
+MTOOLS=3.9.8
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-3}
+
+if [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O"
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-floppy
+
+rm -rf $PKG $TMP/fdutils-$VERSION $TMP/mtools-$MTOOLS
+mkdir -p $TMP $PKG/{etc,usr/{bin,info,man/man{1,4,5}}}
+
+cd $TMP
+tar xzvf $CWD/fdutils-$VERSION.tar.gz
+cd fdutils-$VERSION
+zcat $CWD/fdutils-5.4-20020222.diff.gz | patch -p1 --verbose --backup --suffix=.orig
+zcat $CWD/fdutils.mediaprm.diff.gz | patch -p1 --verbose --backup --suffix=.orig
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ $ARCH-slackware-linux
+make install prefix=$PKG/usr
+mkdir -p $PKG/usr/doc/fdutils-$VERSION
+cp -a COPYING CREDITS Changelog INSTALL doc/FAQ.html doc/README \
+ $PKG/usr/doc/fdutils-$VERSION
+chown root:root $PKG/usr/doc/fdutils-$VERSION/*
+chmod 644 $PKG/usr/doc/fdutils-$VERSION/*
+cd $TMP
+tar xzvf $CWD/mtools-$MTOOLS.tar.gz
+cd mtools-$MTOOLS
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ $ARCH-slackware-linux
+#make all floppyd floppyd_installtest
+make all
+make install prefix=$PKG/usr sysconfdir=$PKG/etc bindir=$PKG/usr/bin \
+ MAN1DIR=$PKG/usr/man/man1 MAN5DIR=$PKG/usr/man/man5
+cat $CWD/mtools.conf > $PKG/etc/mtools.conf
+cat $CWD/mediaprm > $PKG/etc/mediaprm
+mkdir -p $PKG/usr/doc/mtools-$MTOOLS
+cp -a COPYING Changelog INSTALL README Release.notes TODO \
+ $PKG/usr/doc/mtools-$MTOOLS
+chown root:root $PKG/usr/doc/mtools-$MTOOLS/*
+chmod 644 $PKG/usr/doc/mtools-$MTOOLS/*
+( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.*
+ )
+ done
+)
+( cd $PKG/usr/info ; rm -f dir ; gzip -9 * )
+
+# These are obsolete and/or cruft:
+rm -f $PKG/usr/bin/MAKEFLOPPIES $PKG/usr/bin/lz $PKG/usr/bin/mcheck \
+ $PKG/usr/bin/mcomp $PKG/usr/bin/mxtar $PKG/usr/bin/tgz \
+ $PKG/usr/bin/uz $PKG/usr/man/man1/makefloppies.1
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cd $PKG
+makepkg -l y -c n $TMP/floppy-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/floppy/mediaprm b/source/a/floppy/mediaprm
new file mode 100644
index 000000000..03c82e3b7
--- /dev/null
+++ b/source/a/floppy/mediaprm
@@ -0,0 +1,786 @@
+# /etc/mediaprm - floppy disk parameter table
+
+########################################################################
+# Standard linux disk formats. Names are of the form
+# actual media capacity/maximum drive capacity
+# (Note: although 5.25" HD drives can format disks at 1.44M, they're listed
+# as 1200 because that's the common maximum size.)
+
+# size sec/t hds trk stre gap rate spec1 fmt_gap
+
+"360/360":
+ DS DD sect=9
+
+"1200/1200":
+ DS HD sect=15
+
+"360/720":
+ SS DD sect=9
+
+"720/720":
+ DS DD sect=9
+
+"360/1200":
+ DS DD sect=9
+
+"720/1200":
+ DS QD sect=9
+
+"1440/1440":
+ DS HD sect=18
+
+"2880/2880":
+ DS ED sect=36
+
+"2880/2880":
+ DS ED sect=36
+
+"2880/2880":
+ DS ED sect=36
+
+"1440/1200":
+ DS HD sect=18
+
+"1680/1440":
+ DS HD sect=21
+
+"410/1200":
+ DS DD sect=10 cyl=41
+
+"820/1440":
+ DS DD sect=10 cyl=82
+
+"1476/1200":
+ DS HD sect=18 cyl=82
+
+"1722/1440":
+ DS HD sect=21 cyl=82
+
+"420/1200":
+ DS DD sect=10 cyl=42
+
+"830/1440":
+ DS DD sect=10 cyl=83
+
+"1494/1200":
+ DS HD sect=18 cyl=83
+
+"1743/1440":
+ DS HD sect=21 cyl=83
+
+"1743/1440":
+ DS HD sect=21 cyl=83
+
+"880/1200":
+ DS QD tracksize=11b ssize=1KB
+
+"1040/720":
+ DS QD sect=13
+
+"1120/720":
+ DS QD tracksize=7KB mss
+
+"1600/1200":
+ DS HD tracksize=10KB mss
+
+"1760/1440":
+ DS HD sect=11 ssize=1KB
+
+"1920/1440":
+ DS HD tracksize=12KB mss
+
+"3200/2880":
+ DS ED sect=5 ssize=4KB
+
+"3520/2880":
+ DS ED tracksize=22KB ssize=4KB
+
+"3840/2880":
+ DS ED sect=3 ssize=8KB
+
+"3840/2880":
+ DS ED sect=3 ssize=8KB
+
+"1840/1440":
+ DS HD tracksize=23b ssize=2KB
+
+"800/720":
+ DS DD sect=10
+
+"1600/1440":
+ DS HD sect=20
+
+########################################################################
+# CP/M formats
+#
+# the name is constructed as CODsize, where COD identifies the
+# brand of the computer having formatted the disk
+
+# Generic CP/M - SSSD 8"
+
+"GEN250":
+ SS DD sect=24 dtr=0 fm=1 cyl=77 ssize=128
+
+# ABC-80 - SSDD 48 tpi 5.25"
+
+"ABC160":
+ SS DD sect=16 ssize=256
+
+# Actrix (Access Matrix) - SSDD 48 tpi 5.25"
+
+"ACT180":
+ SS DD sect=9
+
+# Adler Textriter - SSDD 48 tpi 5.25"
+
+"ADL160":
+ SS DD sect=16 ssize=256
+
+# Advanced Digital Super 6 - SSDD 48 tpi 5.25"
+
+"ADV160":
+ SS DD sect=4 ssize=1KB
+
+# Advanced Digital Super 6 - DSDD 96 tpi 5.25"
+
+"ADV640":
+ DS QD sect=4 ssize=1KB
+
+# Altos Series 5 - DSDD 96 tpi 5.25"
+
+"ALT720":
+ DS QD sect=9
+
+# Amigo - SSDD 48 tpi 5.25"
+
+"AMI200":
+ SS DD sect=10
+
+# Ampro - SSDD 48 tpi 5.25"
+
+"AMP200":
+ SS DD sect=10
+
+# Ampro - SSDD 96 tpi 5.25"
+
+"AMP400":
+ SS QD sect=5 ssize=1KB
+
+# Amstrad PCW8256 - DSDD 96 tpi 5.25"
+
+"AMS720":
+ DS QD sect=9
+
+# Archive I - SSDD 96 tpi 5.25"
+
+"ARC400":
+ SS QD sect=5 ssize=1KB
+
+# Archive II & III - DSDD 96 tpi 5.25"
+
+"ARC800":
+ DS QD sect=5 ssize=1KB
+
+# Arisia - SSDD 48 tpi 5.25"
+
+"ARI180":
+ SS DD sect=18 ssize=256
+
+# ATR-8000 - SSDD 48 tpi 5.25"
+
+"ATR200":
+ SS DD sect=5 ssize=1KB
+
+# Beehive - DSDD 48 tpi 5.25"
+
+"BEE400":
+ DS DD sect=10
+
+# Bitelex - SSDD 48 tpi 5.25"
+
+"BIT160":
+ SS DD sect=16 ssize=256
+
+# BMC IF800 Model 20 - DSDD 48 tpi 5.25"
+
+"BMC400":
+ DS DD sect=10
+
+# Burr-Brown - DSDD 48 tpi 5.25"
+
+"BUR360":
+ DS DD sect=18 ssize=256
+
+# Cal-PC - DSDD 48 tpi 5.25"
+
+"CAL400":
+ DS DD sect=5 ssize=1KB
+
+# Cashcom 100 - DSDD 96 tpi 5.25"
+
+"CAS640":
+ DS QD sect=4 ssize=1KB
+
+# CDI-5000 - DSDD 48 tpi 5.25"
+
+"CDI400":
+ DS DD sect=5 ssize=1KB
+
+# CMC Supersystem 2 - DSDD 96 tpi 5.25"
+
+"CMC800":
+ DS QD sect=5 ssize=1KB
+
+# Coleco ADAM, 40 track - SSDD 48 tpi 5.25"
+
+"COL160":
+ SS DD sect=8
+
+# Compugraphic MCS-5 - SSDD 48 tpi 5.25"
+
+"COM160":
+ SS DD sect=16 ssize=256
+
+# Compupro (Viasyn) (1024 bytes/sector) - DSDD 96 tpi 5.25"
+
+"COM800":
+ DS QD sect=5 ssize=1KB
+
+# Cromemco CDOS - SSSD 48 tpi 5.25"
+
+"CRO80":
+ SS SD sect=16 dtr=1 fm=1 ssize=128
+
+# Cromemco CDOS - SSDD 48 tpi 5.25"
+
+"CRO200":
+ SS DD sect=10
+
+# Cromemco CP/M - SSDD 48 tpi 5.25"
+
+"CRO200":
+ SS DD sect=10
+
+# C/WP Cortex - SSDD 48 tpi 5.25"
+
+"CWP200":
+ SS DD sect=10
+
+# Cykey - DSDD 48 tpi 5.25"
+
+"CYK320":
+ DS DD sect=16 ssize=256
+
+# DEC DECMate II - SSDD 96 tpi 5.25"
+
+"DEC400":
+ SS QD sect=10
+
+# DEC Rainbow - SSDD 96 tpi 5.25"
+
+"DEC180":
+ SS DD sect=9
+
+# DEC VT-180 - SSDD 48 tpi 5.25"
+
+"DEC180":
+ SS DD sect=9
+
+# Direct 1025 - DSDD 48 tpi 5.25"
+
+"DIR320":
+ DS DD sect=16 ssize=256
+
+# Discovery - DSDD 96 tpi 5.25"
+
+"DIS640":
+ DS QD sect=8
+
+# Eagle II - SSDD 96 tpi 5.25"
+
+"EAG400":
+ SS QD sect=5 ssize=1KB
+
+# Epson QX-10 - DSDD 48 tpi 5.25"
+
+"EPS400":
+ DS DD sect=10
+
+# Epson QX-10 (256 bytes/sector) - DSDD 48 tpi 5.25"
+
+"EPS320":
+ DS DD sect=16 ssize=256
+
+# Epson PX-8 - DSDD 3.5"
+
+"EPS320":
+ DS DD sect=8
+
+# Ericsson DTC - SSDD 96 tpi 5.25"
+
+"ERI320":
+ SS QD sect=16 ssize=256
+
+# Ericsson Step One - DSDD 96 tpi 5.25"
+
+"ERI720":
+ DS QD sect=9
+
+# Florida Graphics - DSDD 96 tpi 5.25"
+
+"FLO640":
+ DS QD sect=16 ssize=256
+
+# Formula 1 - DSDD 48 tpi 5.25"
+
+"FOR360":
+ DS DD sect=18 ssize=256
+
+# Fujitsu Micro 16 - DSDD 48 tpi 5.25"
+
+"FUJ320":
+ DS DD sect=16 ssize=256
+
+# Fujitsu Micro 8 - DSDD 48 tpi 5.25"
+
+"FUJ320":
+ DS DD sect=16 ssize=256
+
+# HCL System 2 - DSDD 96 tpi 5.25"
+
+"HCL800":
+ DS QD sect=5 ssize=1KB
+
+# Heath H89, Magnolia CP/M - SSDD 48 tpi 5.25"
+
+"HEA180":
+ SS DD sect=9
+
+# Heurikon MLZ-91A - DSDD 96 tpi 5.25"
+
+"HEU640":
+ DS QD sect=16 ssize=256
+
+# IBM PC, CP/M-86 - SSDD 48 tpi 5.25"
+
+"IBM160":
+ SS DD sect=8
+
+# IMS 5000 - SSDD 48 tpi 5.25"
+
+"IMS160":
+ SS DD sect=16 ssize=256
+
+# IMS 5000 TurboDOS - DSDD 96 tpi 5.25"
+
+"IMS800":
+ DS QD sect=5 ssize=1KB
+
+# Intel iPDS 100 - DSDD 96 tpi 5.25"
+
+"INT640":
+ DS QD sect=16 ssize=256
+
+# Insight Enterprises - DSDD 48 tpi 5.25"
+
+"INS320":
+ DS DD sect=16 ssize=256
+
+# Ithaca Intersystems - SSDD 96 tpi 5.25"
+
+"ITH360":
+ SS QD sect=18 ssize=256
+
+# Jet-80 - DSDD 48 tpi 5.25"
+
+"JET400":
+ DS DD sect=5 ssize=1KB
+
+# Lexoriter - SSDD 48 tpi 5.25"
+
+"LEX160":
+ SS DD sect=16 ssize=256
+
+# LNW 2 - SSDD 48 tpi 5.25"
+
+"LNW180":
+ SS DD sect=18 ssize=256
+
+# Macsym 150 - SSDD 96 tpi 5.25"
+
+"MAC320":
+ SS QD sect=8
+
+# Magic - DSDD 48 tpi 5.25"
+
+"MAG400":
+ DS DD sect=10
+
+# MAI Basic Four - DSDD 96 tpi 5.25"
+
+"MAI640":
+ DS QD sect=16 ssize=256
+
+# Micron Quark - DSDD 48 tpi 5.25"
+
+"MIC320":
+ DS DD sect=4 ssize=1KB
+
+# Monroe 8800 Series - SSDD 96 tpi 5.25"
+
+"MON320":
+ SS QD sect=16 ssize=256
+
+# Morrow MD2 - SSDD 48 tpi 5.25"
+
+"MOR200":
+ SS DD sect=5 ssize=1KB
+
+# Morrow MD3, 5, 11, 16, 34 - DSDD 48 tpi 5.25"
+
+"MOR400":
+ DS DD sect=5 ssize=1KB
+
+# Morrow TurboDOS - DSDD 48 tpi 5.25"
+
+"MOR320":
+ DS DD sect=4 ssize=1KB
+
+# NCR FirstStep - DSDD 96 tpi 5.25"
+
+"NCR640":
+ DS QD sect=16 ssize=256
+
+# NEC PC-8001A - SSDD 48 tpi 5.25"
+
+"NEC160":
+ SS DD sect=16 ssize=256
+
+# NEC PC 8801A/8831A - DSDD 48 tpi 5.25"
+
+"NEC320":
+ DS DD sect=8
+
+# NEC PC 8500/8431A, Starlet - DSDD 3.5"
+
+"NEC320":
+ SS QD sect=16 ssize=256
+
+# Nixdorf 8810/30 - DSDD 96 tpi 5.25"
+
+"NIX800":
+ DS QD sect=10
+
+# OKI IF800 Model 20 - DSDD 48 tpi 5.25"
+
+"OKI400":
+ DS DD sect=10
+
+# Olivetti ETV300 - SSDD 48 tpi 5.25"
+
+"OLI180":
+ SS DD sect=18 ssize=256
+
+# Olivetti M20 - DSDD 48 tpi 5.25"
+
+"OLI320":
+ DS DD sect=16 ssize=256
+
+# Olivetti 250 - SSDD 3.5"
+
+"OLI320":
+ SS QD sect=16 ssize=256
+
+# Olympia EX-100 - DSDD 48 tpi 5.25"
+
+"OLY360":
+ DS DD sect=9
+
+# Olympia ETX II - SSDD 48 tpi 5.25"
+
+"OLY180":
+ SS DD sect=9
+
+# Osborne 1 - SSSD 48 tpi 5.25"
+
+"OSB100":
+ SS SD sect=10 dtr=1 fm=1 ssize=256
+
+# Osborne 1 - SSDD 48 tpi 5.25"
+
+"OSB200":
+ SS DD sect=5 ssize=1KB
+
+# Osborne Executive - SSDD 48 tpi 5.25"
+
+"OSB200":
+ SS DD sect=5 ssize=1KB
+
+# Osborne 1 + Osmosis - DSDD 96 tpi 5.25"
+
+"OSB400":
+ DS DD sect=10
+
+# Osborne Vixen - DSDD 48 tpi 5.25"
+
+"OSB400":
+ DS DD sect=5 ssize=1KB
+
+# Osborne Executive w/Z3 - DSDD 96 tpi 5.25"
+
+"OSB800":
+ DS QD sect=5 ssize=1KB
+
+# OSM Zeus 4 - DSDD 96 tpi 5.25"
+
+"OSM640":
+ DS QD sect=8
+
+# Panasonic KX-E828 - DSDD 48 tpi 5.25"
+
+"PAN320":
+ DS DD sect=16 ssize=256
+
+# Pegasus Data Logger - DSDD 48 tpi 5.25"
+
+"PEG360":
+ DS DD sect=9
+
+# Philips PC-2010 - SSDD 48 tpi 5.25"
+
+"PHI160":
+ SS DD sect=16 ssize=256
+
+# Philips PC-3000 - 3004 - SSDD 96 tpi 5.25"
+
+"PHI320":
+ SS QD sect=16 ssize=256
+
+# Pied Piper - DSDD 96 tpi 5.25"
+
+"PIE800":
+ DS QD sect=10
+
+# PMC Micromate - DSDD 48 tpi 5.25"
+
+"PMC400":
+ DS DD sect=5 ssize=1KB
+
+# Proglas 770KB - DSDD 96 tpi 5.25"
+
+"PRO800":
+ DS QD sect=10
+
+# Royal Alphatronic - DSDD 48 tpi 5.25"
+
+"ROY320":
+ DS DD sect=16 ssize=256
+
+# Sage IV - DSDD 96 tpi 5.25"
+
+"SAG640":
+ DS QD sect=8
+
+# Sanyo MBC-1000, MBC-1150 - DSDD 48 tpi 5.25"
+
+"SAN320":
+ DS DD sect=16 ssize=256
+
+# Sanyo MBC-1250 - DSDD 96 tpi 5.25"
+
+"SAN640":
+ DS QD sect=16 ssize=256
+
+# Seequa Chameleon - SSDD 48 tpi 5.25"
+
+"SEE160":
+ SS DD sect=8
+
+# Seiko - DSDD 96 tpi 5.25"
+
+"SEI640":
+ DS QD sect=16 ssize=256
+
+# Siemens PG-685 - DSDD 96 tpi 5.25"
+
+"SIE720":
+ DS QD sect=9
+
+# Siemens PG-675 DSDD 48 tpi 5.25"
+
+"SIE360":
+ DS DD sect=9
+
+# Siemens PG-635 DSDD 3.5"
+
+"SIE720":
+ DS QD sect=9
+
+# Sorbus TurboDOS - 5.25" DSHD (or 8" DSDD)
+
+"SOR1232":
+ DS HD sect=8 cyl=77 ssize=1KB
+
+# Sperry UTS 30, UTS 5000 - DSDD 96 tpi 5.25"
+
+"SPE720":
+ DS QD sect=9
+
+# Superbrain JR - SSDD 48 tpi 5.25"
+
+"SUP175":
+ SS DD sect=10 cyl=35
+
+# Superbrain 40 track - SSDD 48 tpi 5.25"
+
+"SUP200":
+ SS DD sect=10
+
+# Systel 2 - SSDD 48 tpi 5.25"
+
+"SYS180":
+ SS DD sect=9
+
+# Systel 3 - DSDD 48 tpi 5.25"
+
+"SYS360":
+ DS DD sect=9
+
+# Televideo 801, 806 - DSDD 48 tpi 5.25"
+
+"TEL360":
+ DS DD sect=18 ssize=256
+
+# Televideo 1603 - DSDD 96 tpi 5.25"
+
+"TEL720":
+ DS QD sect=9
+
+# TI Professional, CP/M-86 - SSDD 48 tpi 5.25"
+
+"TI1160":
+ SS DD sect=8
+
+# Toshiba T100, T200 - DSDD 48 tpi 5.25"
+
+"TOS320":
+ DS DD sect=16 ssize=256
+
+# TRS-80 Model 1, Omikron CP/M - SSSD 48 tpi 5.25"
+
+"TRS0":
+ SS SD sect=16 dtr=1 fm=1 cyl=0 ssize=128
+
+# TRS-80 Model 1, Color Power II - SSDD 48 tpi 5.25"
+
+"TRS180":
+ SS DD sect=18 ssize=256
+
+# TRS-80, MM CP/M - SSDD 48 tpi 5.25"
+
+"TRS200":
+ SS DD sect=10
+
+# TRS-80 Model 4, MT CP/M - SSDD 48 tpi 5.25"
+
+"TRS180":
+ SS DD sect=18 ssize=256
+
+# TRS-80 Model 4, MT CP/M - DSDD 48 tpi 5.25"
+
+"TRS360":
+ DS DD sect=18 ssize=256
+
+# TRS-80 Model 4 - SSDD 48 tpi 5.25"
+
+"TRS160":
+ SS DD sect=8
+
+# Visual 1050 - SSDD 96 tpi 5.25"
+
+"VIS400":
+ SS QD sect=10
+
+# Wangwriter - DSDD 48 tpi 5.25"
+
+"WAN320":
+ DS DD sect=16 ssize=256
+
+# Wave Mate Bullet - SSDD 48 tpi 5.25"
+
+"WAV200":
+ SS DD sect=5 ssize=1KB
+
+# Xerox 820 - SSSD 48 tpi 5.25"
+
+"XER80":
+ SS SD sect=16 dtr=1 fm=1 ssize=128
+
+# Xerox 820 II - SSDD 48 tpi 5.25"
+
+"XER160":
+ SS DD sect=16 ssize=256
+
+# Zenith Z-37 Disk - SSSD 48 tpi 5.25"
+
+"ZEN100":
+ SS SD sect=10 dtr=1 fm=1 ssize=256
+
+# Zenith Z-37 Disk - DSDD 96 tpi 5.25"
+
+"ZEN640":
+ DS QD sect=16 ssize=256
+
+# Zenith Z89, Heath H89 - DSDD 48 tpi 5.25"
+
+"ZEN320":
+ DS DD sect=16 ssize=256
+
+# Zenith Z89, Heath H89 - DSDD 96 tpi 5.25"
+
+"ZEN640":
+ DS QD sect=16 ssize=256
+
+# Zenith Z90 - SSDD 48 tpi 5.25"
+
+"ZEN160":
+ SS DD sect=16 ssize=256
+
+# Zenith Z90 - DSDD 48 tpi 5.25"
+
+"ZEN320":
+ DS DD sect=16 ssize=256
+
+# Zenith Z-100 - SSDD 48 tpi 5.25"
+
+"ZEN160":
+ SS DD sect=8
+
+# Zenith Z-100 - DSDD 48 tpi 5.25"
+
+"ZEN320":
+ DS DD sect=8
+
+
+
+########################################################################
+# Other interesting formats, please contribute ;-)
+#
+
+# Commodore 1581 (the 3 1/2 drive of the Commodore 128)
+"CBM1581":
+ DS DD sect=10 swapsides
+
+# Color computer, sides 1 and 2
+"COCO1":
+ SS DD sect=18 cyl=35 ssize=256
+
+"COCO2":
+ SS DD sect=18 cyl=35 ssize=256
+
+# TO7 (Thomson), sides 1 and 2
+"TO7-1"
+ SS DD sect=16 ssize=256
+
+"TO7-2"
+ SS DD sect=16 ssize=256 swapsides
diff --git a/source/a/floppy/mtools.conf b/source/a/floppy/mtools.conf
new file mode 100644
index 000000000..b528c01d6
--- /dev/null
+++ b/source/a/floppy/mtools.conf
@@ -0,0 +1,64 @@
+# Example mtools.conf files. Uncomment the lines which correspond to
+# your architecture and comment out the "SAMPLE FILE" line below
+#SAMPLE FILE
+
+# # Linux floppy drives
+drive a: file="/dev/fd0" exclusive
+drive b: file="/dev/fd1" exclusive
+
+# # First SCSI hard disk partition
+# drive c: file="/dev/sda1"
+
+# # First IDE hard disk partition
+# drive c: file="/dev/hda1"
+
+# # dosemu floppy image
+# drive m: file="/var/lib/dosemu/diskimage"
+
+# # dosemu hdimage
+# drive n: file="/var/lib/dosemu/diskimage" offset=3840
+
+# # Atari ramdisk image
+# drive o: file="/tmp/atari_rd" offset=136
+
+# # ZIP disk for Solaris:
+# Drive X is ZIP-100 at target 5
+# drive X: file="/dev/rdsk/c0t5d0s2" partition=4 scsi=1 nodelay
+
+# # ZIP disk for SunOS:
+# # Zip drive is at target 5, which default kernel calls tape st1 !!
+# drive Y: file="/dev/rsd5c" partition=4 scsi=1 nodelay
+
+# # autoselect zip drive/floppy on HP-UX 9/10
+# drive a: file="/dev/rdsk/c201d5" exclusive partition=4
+# drive a: file="/dev/rdsk/c201d5s0" exclusive partition=4
+# drive a: file="/dev/rfloppy/c201d0s0" exclusive
+
+# A/UX target 5 on 1st scsi bus jaz or zip
+# drive X: file="/dev/rdsk/c105d0s31" partition=4
+
+
+# Some examples for BeOS.
+# floppy drive. hardcoded in devices.c, so no real need to define it here
+#drive a: file="/dev/floppy_disk" exclusive
+# ZIP drive on SCSI ID 6
+#drive z: file="/dev/scsi_disk_060" offset=16384 fat_bits=16
+
+# SCO Unix 3.2v4
+# # Floppy disk drives
+#
+# drive a: file="/dev/install" exclusive
+# drive b: file="/dev/install1" exclusive
+#
+# # SCSI hard disk partitions
+#
+# drive c: file="/dev/dsk/0sC"
+# drive d: file="/dev/dsk/0sD"
+# drive e: file="/dev/dsk/0sE"
+# drive f: file="/dev/dsk/0sF"
+# drive g: file="/dev/dsk/0sG"
+# drive h: file="/dev/dsk/0sH"
+
+# # uncomment the following line to display all file names in lower
+# # case by default
+# mtools_lower_case=1
diff --git a/source/a/floppy/slack-desc b/source/a/floppy/slack-desc
new file mode 100644
index 000000000..bb9169420
--- /dev/null
+++ b/source/a/floppy/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+floppy: floppy (floppy disk utilities)
+floppy:
+floppy: Contains fdutils-5.4, tools to test and format floppy disks; and
+floppy: mtools-3.9.8, a collection of utilities for using DOS/Windows floppy
+floppy: disks with Linux.
+floppy:
+floppy:
+floppy:
+floppy:
+floppy:
+floppy: