Bug#589372: ext3grep NMU
Excerpts from peter green's message of Thu Jun 07 17:06:54 -0400 2012:
> I did some local tests and it ext3grep seemed to work. Everything that
> was restored was restored correctly though it did not restore everything
> I deleted from the test image (but then it can't nessacerally be
> expected to, some stuff may dissapear from the journal before ext3grep
> can see it).
>
> I suspect that the reason we have been unable to find any regular users
> is this is the sort of tool most people use exactly once. IMO having a
> tool like this available even though only minimally tested is better
> than not having it at all (from reading the docs it seems it doesn't do
> any live modifications, only data extraction so the risk of a bug
> corrupting the filesystem being recovered seems minimal). As such I have
> uploaded a NMU to delayed/5
>
> Please tell me if you disagree with this course of action.
This is great that you have done this work. A few comments on
the patch inline.
> A debdiff for the NMU is attatched (note: it's a bit noisy because the
> package updated config.sub and config.guess).
> diff -u ext3grep-0.10.1/debian/control ext3grep-0.10.1/debian/control
> --- ext3grep-0.10.1/debian/control
> +++ ext3grep-0.10.1/debian/control
> @@ -10,7 +10,7 @@
> Vcs-Git: git://git.debian.net/git/debian-forensics/ext3grep.git
>
> Package: ext3grep
> -Architecture: alpha amd64 arm armel armhf i386 ia64 mipsel
> +Architecture: alpha amd64 arm armel armhf i386 ia64 mipsel sh4
> Depends: ${shlibs:Depends}, ${misc:Depends}
> Description: Tool to help recover deleted files on ext3 filesystems
> ext3grep is a simple tool intended to aid anyone who accidentally deletes a
> diff -u ext3grep-0.10.1/debian/changelog ext3grep-0.10.1/debian/changelog
> --- ext3grep-0.10.1/debian/changelog
> +++ ext3grep-0.10.1/debian/changelog
> @@ -1,3 +1,16 @@
> +ext3grep (0.10.1-3.2) unstable; urgency=low
> +
> + * Fix FTBFS (Closes: #634412)
> + + some versions of the ext2 headers call a field s_frags_per_group and some
> + call it s_clusters_per_group, define one to the other so the code works
> + with both
> + + i_reseved2 has been split into two fields in recent versions of the
> + headers, use the "hurd" side of the union to continue to access it in
> + one peice
spelling: it should be "one piece" not "one peice"
> + * Add sh4 to arch list. (Closes: #617447)
> +
> + -- Peter Michael Green <plugwash at debian.org> Thu, 07 Jun 2012 20:02:02 +0000
> +
> ext3grep (0.10.1-3.1) unstable; urgency=low
>
> * NMU, added armhf to arch list. (Closes: #604656)
> only in patch2:
> unchanged:
> --- ext3grep-0.10.1.orig/config.sub
> +++ ext3grep-0.10.1/config.sub
> @@ -1,10 +1,10 @@
> #! /bin/sh
> # Configuration validation subroutine script.
> # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
> -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
> -# Free Software Foundation, Inc.
> +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
> +# 2011 Free Software Foundation, Inc.
>
> -timestamp='2008-01-16'
> +timestamp='2011-03-23'
>
> # This file is (in principle) common to ALL GNU software.
> # The presence of a machine in this file suggests that SOME GNU software
> @@ -32,13 +32,16 @@
>
>
> # Please send patches to <config-patches at gnu.org>. Submit a context
> -# diff and a properly formatted ChangeLog entry.
> +# diff and a properly formatted GNU ChangeLog entry.
> #
> # Configuration subroutine to validate and canonicalize a configuration type.
> # Supply the specified configuration type as an argument.
> # If it is invalid, we print an error message on stderr and exit with code 1.
> # Otherwise, we print the canonical config type on stdout and succeed.
>
> +# You can get the latest version of this script from:
> +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
> +
> # This file is supposed to be the same for all GNU packages
> # and recognize all the CPU types, system types and aliases
> # that are meaningful with *any* GNU software.
> @@ -72,8 +75,9 @@
> version="\
> GNU config.sub ($timestamp)
>
> -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
> -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
> +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
> +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
> +Software Foundation, Inc.
>
> This is free software; see the source for copying conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
> @@ -120,8 +124,10 @@
> # Here we must recognize all the valid KERNEL-OS combinations.
> maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
> case $maybe_os in
> - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
> - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
> + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
> + linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
> + knetbsd*-gnu* | netbsd*-gnu* | \
> + kopensolaris*-gnu* | \
> storm-chaos* | os2-emx* | rtmk-nova*)
> os=-$maybe_os
> basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
> @@ -148,10 +154,13 @@
> -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
> -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
> -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
> - -apple | -axis | -knuth | -cray)
> + -apple | -axis | -knuth | -cray | -microblaze)
> os=
> basic_machine=$1
> ;;
> + -bluegene*)
> + os=-cnk
> + ;;
> -sim | -cisco | -oki | -wec | -winbond)
> os=
> basic_machine=$1
> @@ -166,10 +175,10 @@
> os=-chorusos
> basic_machine=$1
> ;;
> - -chorusrdb)
> - os=-chorusrdb
> + -chorusrdb)
> + os=-chorusrdb
> basic_machine=$1
> - ;;
> + ;;
> -hiux*)
> os=-hiuxwe2
> ;;
> @@ -249,13 +258,16 @@
> | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
> | i370 | i860 | i960 | ia64 \
> | ip2k | iq2000 \
> + | lm32 \
> | m32c | m32r | m32rle | m68000 | m68k | m88k \
> - | maxq | mb | microblaze | mcore | mep \
> + | maxq | mb | microblaze | mcore | mep | metag \
> | mips | mipsbe | mipseb | mipsel | mipsle \
> | mips16 \
> | mips64 | mips64el \
> - | mips64vr | mips64vrel \
> + | mips64octeon | mips64octeonel \
> | mips64orion | mips64orionel \
> + | mips64r5900 | mips64r5900el \
> + | mips64vr | mips64vrel \
> | mips64vr4100 | mips64vr4100el \
> | mips64vr4300 | mips64vr4300el \
> | mips64vr5000 | mips64vr5000el \
> @@ -268,28 +280,42 @@
> | mipsisa64sr71k | mipsisa64sr71kel \
> | mipstx39 | mipstx39el \
> | mn10200 | mn10300 \
> + | moxie \
> | mt \
> | msp430 \
> + | nds32 | nds32le | nds32be \
> | nios | nios2 \
> | ns16k | ns32k \
> + | open8 \
> | or32 \
> | pdp10 | pdp11 | pj | pjl \
> - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
> + | powerpc | powerpc64 | powerpc64le | powerpcle \
> | pyramid \
> + | rx \
> | score \
> - | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
> + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
> | sh64 | sh64le \
> | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
> | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
> - | spu | strongarm \
> - | tahoe | thumb | tic4x | tic80 | tron \
> + | spu \
> + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
> + | ubicom32 \
> | v850 | v850e \
> | we32k \
> - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
> - | z8k)
> + | x86 | xc16x | xstormy16 | xtensa \
> + | z8k | z80)
> basic_machine=$basic_machine-unknown
> ;;
> - m6811 | m68hc11 | m6812 | m68hc12)
> + c54x)
> + basic_machine=tic54x-unknown
> + ;;
> + c55x)
> + basic_machine=tic55x-unknown
> + ;;
> + c6x)
> + basic_machine=tic6x-unknown
> + ;;
> + m6811 | m68hc11 | m6812 | m68hc12 | picochip)
> # Motorola 68HC11/12.
> basic_machine=$basic_machine-unknown
> os=-none
> @@ -300,6 +326,18 @@
> basic_machine=mt-unknown
> ;;
>
> + strongarm | thumb | xscale)
> + basic_machine=arm-unknown
> + ;;
> +
> + xscaleeb)
> + basic_machine=armeb-unknown
> + ;;
> +
> + xscaleel)
> + basic_machine=armel-unknown
> + ;;
> +
> # We use `pc' rather than `unknown'
> # because (1) that's what they normally are, and
> # (2) the word "unknown" tends to confuse beginning users.
> @@ -320,7 +358,7 @@
> | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
> | avr-* | avr32-* \
> | bfin-* | bs2000-* \
> - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
> + | c[123]* | c30-* | [cjt]90-* | c4x-* \
> | clipper-* | craynv-* | cydra-* \
> | d10v-* | d30v-* | dlx-* \
> | elxsi-* \
> @@ -329,14 +367,17 @@
> | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
> | i*86-* | i860-* | i960-* | ia64-* \
> | ip2k-* | iq2000-* \
> + | lm32-* \
> | m32c-* | m32r-* | m32rle-* \
> | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
> - | m88110-* | m88k-* | maxq-* | mcore-* \
> + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
> | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
> | mips16-* \
> | mips64-* | mips64el-* \
> - | mips64vr-* | mips64vrel-* \
> + | mips64octeon-* | mips64octeonel-* \
> | mips64orion-* | mips64orionel-* \
> + | mips64r5900-* | mips64r5900el-* \
> + | mips64vr-* | mips64vrel-* \
> | mips64vr4100-* | mips64vr4100el-* \
> | mips64vr4300-* | mips64vr4300el-* \
> | mips64vr5000-* | mips64vr5000el-* \
> @@ -351,27 +392,31 @@
> | mmix-* \
> | mt-* \
> | msp430-* \
> + | nds32-* | nds32le-* | nds32be-* \
> | nios-* | nios2-* \
> | none-* | np1-* | ns16k-* | ns32k-* \
> + | open8-* \
> | orion-* \
> | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
> - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
> + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
> | pyramid-* \
> - | romp-* | rs6000-* \
> - | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
> + | romp-* | rs6000-* | rx-* \
> + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
> | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
> | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
> | sparclite-* \
> - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
> - | tahoe-* | thumb-* \
> + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
> + | tahoe-* \
> | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
> + | tile-* | tilegx-* \
> | tron-* \
> + | ubicom32-* \
> | v850-* | v850e-* | vax-* \
> | we32k-* \
> - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
> + | x86-* | x86_64-* | xc16x-* | xps100-* \
> | xstormy16-* | xtensa*-* \
> | ymp-* \
> - | z8k-*)
> + | z8k-* | z80-*)
> ;;
> # Recognize the basic CPU types without company name, with glob match.
> xtensa*)
> @@ -393,7 +438,7 @@
> basic_machine=a29k-amd
> os=-udi
> ;;
> - abacus)
> + abacus)
> basic_machine=abacus-unknown
> ;;
> adobe68k)
> @@ -439,6 +484,10 @@
> basic_machine=m68k-apollo
> os=-bsd
> ;;
> + aros)
> + basic_machine=i386-pc
> + os=-aros
> + ;;
> aux)
> basic_machine=m68k-apple
> os=-aux
> @@ -455,10 +504,27 @@
> basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
> os=-linux
> ;;
> + bluegene*)
> + basic_machine=powerpc-ibm
> + os=-cnk
> + ;;
> + c54x-*)
> + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
> + ;;
> + c55x-*)
> + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
> + ;;
> + c6x-*)
> + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
> + ;;
> c90)
> basic_machine=c90-cray
> os=-unicos
> ;;
> + cegcc)
> + basic_machine=arm-unknown
> + os=-cegcc
> + ;;
> convex-c1)
> basic_machine=c1-convex
> os=-bsd
> @@ -487,7 +553,7 @@
> basic_machine=craynv-cray
> os=-unicosmp
> ;;
> - cr16)
> + cr16 | cr16-*)
> basic_machine=cr16-unknown
> os=-elf
> ;;
> @@ -526,6 +592,10 @@
> basic_machine=m88k-motorola
> os=-sysv3
> ;;
> + dicos)
> + basic_machine=i686-pc
> + os=-dicos
> + ;;
> djgpp)
> basic_machine=i586-pc
> os=-msdosdjgpp
> @@ -699,6 +769,9 @@
> basic_machine=ns32k-utek
> os=-sysv
> ;;
> + microblaze)
> + basic_machine=microblaze-xilinx
> + ;;
> mingw32)
> basic_machine=i386-pc
> os=-mingw32
> @@ -803,6 +876,12 @@
> np1)
> basic_machine=np1-gould
> ;;
> + neo-tandem)
> + basic_machine=neo-tandem
> + ;;
> + nse-tandem)
> + basic_machine=nse-tandem
> + ;;
> nsr-tandem)
> basic_machine=nsr-tandem
> ;;
> @@ -885,9 +964,10 @@
> ;;
> power) basic_machine=power-ibm
> ;;
> - ppc) basic_machine=powerpc-unknown
> + ppc | ppcbe) basic_machine=powerpc-unknown
> ;;
> - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
> + ppc-* | ppcbe-*)
> + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
> ;;
> ppcle | powerpclittle | ppc-le | powerpc-little)
> basic_machine=powerpcle-unknown
> @@ -981,6 +1061,9 @@
> basic_machine=i860-stratus
> os=-sysv4
> ;;
> + strongarm-* | thumb-*)
> + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
> + ;;
> sun2)
> basic_machine=m68000-sun
> ;;
> @@ -1037,17 +1120,10 @@
> basic_machine=t90-cray
> os=-unicos
> ;;
> - tic54x | c54x*)
> - basic_machine=tic54x-unknown
> - os=-coff
> - ;;
> - tic55x | c55x*)
> - basic_machine=tic55x-unknown
> - os=-coff
> - ;;
> - tic6x | c6x*)
> - basic_machine=tic6x-unknown
> - os=-coff
> + # This must be matched before tile*.
> + tilegx*)
> + basic_machine=tilegx-unknown
> + os=-linux-gnu
> ;;
> tile*)
> basic_machine=tile-unknown
> @@ -1120,6 +1196,9 @@
> xps | xps100)
> basic_machine=xps100-honeywell
> ;;
> + xscale-* | xscalee[bl]-*)
> + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
> + ;;
> ymp)
> basic_machine=ymp-cray
> os=-unicos
> @@ -1128,6 +1207,10 @@
> basic_machine=z8k-unknown
> os=-sim
> ;;
> + z80-*-coff)
> + basic_machine=z80-unknown
> + os=-sim
> + ;;
> none)
> basic_machine=none-none
> os=-none
> @@ -1166,7 +1249,7 @@
> we32k)
> basic_machine=we32k-att
> ;;
> - sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
> + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
> basic_machine=sh-unknown
> ;;
> sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
> @@ -1213,9 +1296,12 @@
> if [ x"$os" != x"" ]
> then
> case $os in
> - # First match some system type aliases
> - # that might get confused with valid system types.
> + # First match some system type aliases
> + # that might get confused with valid system types.
> # -solaris* is a basic system type, with this one exception.
> + -auroraux)
> + os=-auroraux
> + ;;
> -solaris1 | -solaris1.*)
> os=`echo $os | sed -e 's|solaris1|sunos4|'`
> ;;
> @@ -1236,10 +1322,11 @@
> # Each alternative MUST END IN A *, to match a version number.
> # -sysv* is not here because it comes later, after sysvr4.
> -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
> - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
> - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
> + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
> + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
> + | -sym* | -kopensolaris* \
> | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
> - | -aos* \
> + | -aos* | -aros* \
> | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
> | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
> | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
> @@ -1248,9 +1335,10 @@
> | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
> | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
> | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
> - | -chorusos* | -chorusrdb* \
> + | -chorusos* | -chorusrdb* | -cegcc* \
> | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
> - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
> + | -mingw32* | -linux-gnu* | -linux-android* \
> + | -linux-newlib* | -linux-uclibc* \
> | -uxpv* | -beos* | -mpeix* | -udk* \
> | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
> | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
> @@ -1258,7 +1346,7 @@
> | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
> | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
> | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
> - | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
> + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
> # Remember, each alternative MUST END IN *, to match a version number.
> ;;
> -qnx*)
> @@ -1297,7 +1385,7 @@
> -opened*)
> os=-openedition
> ;;
> - -os400*)
> + -os400*)
> os=-os400
> ;;
> -wince*)
> @@ -1346,7 +1434,7 @@
> -sinix*)
> os=-sysv4
> ;;
> - -tpf*)
> + -tpf*)
> os=-tpf
> ;;
> -triton*)
> @@ -1388,6 +1476,11 @@
> -zvmoe)
> os=-zvmoe
> ;;
> + -dicos*)
> + os=-dicos
> + ;;
> + -nacl*)
> + ;;
> -none)
> ;;
> *)
> @@ -1410,10 +1503,10 @@
> # system, and we'll never get to this point.
>
> case $basic_machine in
> - score-*)
> + score-*)
> os=-elf
> ;;
> - spu-*)
> + spu-*)
> os=-elf
> ;;
> *-acorn)
> @@ -1425,8 +1518,17 @@
> arm*-semi)
> os=-aout
> ;;
> - c4x-* | tic4x-*)
> - os=-coff
> + c4x-* | tic4x-*)
> + os=-coff
> + ;;
> + tic54x-*)
> + os=-coff
> + ;;
> + tic55x-*)
> + os=-coff
> + ;;
> + tic6x-*)
> + os=-coff
> ;;
> # This must come before the *-dec entry.
> pdp10-*)
> @@ -1453,7 +1555,7 @@
> m68*-cisco)
> os=-aout
> ;;
> - mep-*)
> + mep-*)
> os=-elf
> ;;
> mips*-cisco)
> @@ -1480,7 +1582,7 @@
> *-ibm)
> os=-aix
> ;;
> - *-knuth)
> + *-knuth)
> os=-mmixware
> ;;
> *-wec)
> @@ -1585,7 +1687,7 @@
> -sunos*)
> vendor=sun
> ;;
> - -aix*)
> + -cnk*|-aix*)
> vendor=ibm
> ;;
> -beos*)
> only in patch2:
> unchanged:
> --- ext3grep-0.10.1.orig/config.guess
> +++ ext3grep-0.10.1/config.guess
> @@ -1,10 +1,10 @@
> #! /bin/sh
> # Attempt to guess a canonical system name.
> # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
> -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
> -# Free Software Foundation, Inc.
> +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
> +# 2011 Free Software Foundation, Inc.
>
> -timestamp='2008-01-23'
> +timestamp='2011-05-11'
>
> # This file is free software; you can redistribute it and/or modify it
> # under the terms of the GNU General Public License as published by
> @@ -27,16 +27,16 @@
> # the same distribution terms that you use for the rest of that program.
>
>
> -# Originally written by Per Bothner <per at bothner.com>.
> -# Please send patches to <config-patches at gnu.org>. Submit a context
> -# diff and a properly formatted ChangeLog entry.
> +# Originally written by Per Bothner. Please send patches (context
> +# diff format) to <config-patches at gnu.org> and include a ChangeLog
> +# entry.
> #
> # This script attempts to guess a canonical system name similar to
> # config.sub. If it succeeds, it prints the system name on stdout, and
> # exits with 0. Otherwise, it exits with 1.
> #
> -# The plan is that this can be called by configure scripts if you
> -# don't specify an explicit build system type.
> +# You can get the latest version of this script from:
> +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
>
> me=`echo "$0" | sed -e 's,.*/,,'`
>
> @@ -56,8 +56,9 @@
> GNU config.guess ($timestamp)
>
> Originally written by Per Bothner.
> -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
> -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
> +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
> +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
> +Software Foundation, Inc.
>
> This is free software; see the source for copying conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
> @@ -170,7 +171,7 @@
> arm*|i386|m68k|ns32k|sh3*|sparc|vax)
> eval $set_cc_for_build
> if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
> - | grep __ELF__ >/dev/null
> + | grep -q __ELF__
> then
> # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
> # Return netbsd for either. FIX?
> @@ -180,7 +181,7 @@
> fi
> ;;
> *)
> - os=netbsd
> + os=netbsd
> ;;
> esac
> # The OS release
> @@ -223,7 +224,7 @@
> UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
> ;;
> *5.*)
> - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
> + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
> ;;
> esac
> # According to Compaq, /usr/sbin/psrinfo has been available on
> @@ -269,7 +270,10 @@
> # A Xn.n version is an unreleased experimental baselevel.
> # 1.2 uses "1.2" for uname -r.
> echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
> - exit ;;
> + # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
> + exitcode=$?
> + trap '' 0
> + exit $exitcode ;;
> Alpha\ *:Windows_NT*:*)
> # How do we know it's Interix rather than the generic POSIX subsystem?
> # Should we change UNAME_MACHINE based on the output of uname instead
> @@ -295,7 +299,7 @@
> echo s390-ibm-zvmoe
> exit ;;
> *:OS400:*:*)
> - echo powerpc-ibm-os400
> + echo powerpc-ibm-os400
> exit ;;
> arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
> echo arm-acorn-riscix${UNAME_RELEASE}
> @@ -324,14 +328,33 @@
> case `/usr/bin/uname -p` in
> sparc) echo sparc-icl-nx7; exit ;;
> esac ;;
> + s390x:SunOS:*:*)
> + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
> + exit ;;
> sun4H:SunOS:5.*:*)
> echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
> exit ;;
> sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
> echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
> exit ;;
> + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
> + echo i386-pc-auroraux${UNAME_RELEASE}
> + exit ;;
> i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
> - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
> + eval $set_cc_for_build
> + SUN_ARCH="i386"
> + # If there is a compiler, see if it is configured for 64-bit objects.
> + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
> + # This test works for both compilers.
> + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
> + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
> + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
> + grep IS_64BIT_ARCH >/dev/null
> + then
> + SUN_ARCH="x86_64"
> + fi
> + fi
> + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
> exit ;;
> sun4*:SunOS:6*:*)
> # According to config.sub, this is the proper way to canonicalize
> @@ -375,23 +398,23 @@
> # 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}
> + echo m68k-atari-mint${UNAME_RELEASE}
> exit ;;
> atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
> echo m68k-atari-mint${UNAME_RELEASE}
> - exit ;;
> + exit ;;
> *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
> - echo m68k-atari-mint${UNAME_RELEASE}
> + echo m68k-atari-mint${UNAME_RELEASE}
> exit ;;
> milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
> - echo m68k-milan-mint${UNAME_RELEASE}
> - exit ;;
> + echo m68k-milan-mint${UNAME_RELEASE}
> + exit ;;
> hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
> - echo m68k-hades-mint${UNAME_RELEASE}
> - exit ;;
> + echo m68k-hades-mint${UNAME_RELEASE}
> + exit ;;
> *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
> - echo m68k-unknown-mint${UNAME_RELEASE}
> - exit ;;
> + echo m68k-unknown-mint${UNAME_RELEASE}
> + exit ;;
> m68k:machten:*:*)
> echo m68k-apple-machten${UNAME_RELEASE}
> exit ;;
> @@ -461,8 +484,8 @@
> echo m88k-motorola-sysv3
> exit ;;
> AViiON:dgux:*:*)
> - # DG/UX returns AViiON for all architectures
> - UNAME_PROCESSOR=`/usr/bin/uname -p`
> + # DG/UX returns AViiON for all architectures
> + UNAME_PROCESSOR=`/usr/bin/uname -p`
> if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
> then
> if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
> @@ -475,7 +498,7 @@
> else
> echo i586-dg-dgux${UNAME_RELEASE}
> fi
> - exit ;;
> + exit ;;
> M88*:DolphinOS:*:*) # DolphinOS (SVR3)
> echo m88k-dolphin-sysv3
> exit ;;
> @@ -532,7 +555,7 @@
> echo rs6000-ibm-aix3.2
> fi
> exit ;;
> - *:AIX:*:[456])
> + *:AIX:*:[4567])
> IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
> if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
> IBM_ARCH=rs6000
> @@ -575,52 +598,52 @@
> 9000/[678][0-9][0-9])
> if [ -x /usr/bin/getconf ]; then
> sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
> - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
> - case "${sc_cpu_version}" in
> - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
> - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
> - 532) # CPU_PA_RISC2_0
> - case "${sc_kernel_bits}" in
> - 32) HP_ARCH="hppa2.0n" ;;
> - 64) HP_ARCH="hppa2.0w" ;;
> + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
> + case "${sc_cpu_version}" in
> + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
> + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
> + 532) # CPU_PA_RISC2_0
> + case "${sc_kernel_bits}" in
> + 32) HP_ARCH="hppa2.0n" ;;
> + 64) HP_ARCH="hppa2.0w" ;;
> '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
> - esac ;;
> - esac
> + esac ;;
> + esac
> fi
> if [ "${HP_ARCH}" = "" ]; then
> eval $set_cc_for_build
> - sed 's/^ //' << EOF >$dummy.c
> + sed 's/^ //' << EOF >$dummy.c
> +
> + #define _HPUX_SOURCE
> + #include <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);
>
> - #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);
> - }
> + 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 -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
> test -z "$HP_ARCH" && HP_ARCH=hppa
> @@ -640,7 +663,7 @@
> # => hppa64-hp-hpux11.23
>
> if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
> - grep __LP64__ >/dev/null
> + grep -q __LP64__
> then
> HP_ARCH="hppa2.0w"
> else
> @@ -711,22 +734,22 @@
> exit ;;
> C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
> echo c1-convex-bsd
> - exit ;;
> + exit ;;
> C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
> if getsysinfo -f scalar_acc
> then echo c32-convex-bsd
> else echo c2-convex-bsd
> fi
> - exit ;;
> + exit ;;
> C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
> echo c34-convex-bsd
> - exit ;;
> + exit ;;
> C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
> echo c38-convex-bsd
> - exit ;;
> + exit ;;
> C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
> echo c4-convex-bsd
> - exit ;;
> + exit ;;
> CRAY*Y-MP:*:*:*)
> echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
> exit ;;
> @@ -750,14 +773,14 @@
> exit ;;
> F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
> FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
> - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
> - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
> - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
> - exit ;;
> + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
> + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
> + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
> + exit ;;
> 5000:UNIX_System_V:4.*:*)
> - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
> - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
> - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
> + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
> + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
> + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
> exit ;;
> i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
> echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
> @@ -785,18 +808,18 @@
> echo ${UNAME_MACHINE}-pc-mingw32
> exit ;;
> i*:windows32*:*)
> - # uname -m includes "-pc" on this system.
> - echo ${UNAME_MACHINE}-mingw32
> + # uname -m includes "-pc" on this system.
> + echo ${UNAME_MACHINE}-mingw32
> exit ;;
> i*:PW*:*)
> echo ${UNAME_MACHINE}-pc-pw32
> exit ;;
> - *:Interix*:[3456]*)
> - case ${UNAME_MACHINE} in
> + *:Interix*:*)
> + case ${UNAME_MACHINE} in
> x86)
> echo i586-pc-interix${UNAME_RELEASE}
> exit ;;
> - EM64T | authenticamd)
> + authenticamd | genuineintel | EM64T)
> echo x86_64-unknown-interix${UNAME_RELEASE}
> exit ;;
> IA64)
> @@ -806,6 +829,9 @@
> [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
> echo i${UNAME_MACHINE}-pc-mks
> exit ;;
> + 8664:Windows_NT:*)
> + echo x86_64-pc-mks
> + exit ;;
> i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
> # How do we know it's Interix rather than the generic POSIX subsystem?
> # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
> @@ -835,6 +861,20 @@
> i*86:Minix:*:*)
> echo ${UNAME_MACHINE}-pc-minix
> exit ;;
> + alpha:Linux:*:*)
> + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
> + EV5) UNAME_MACHINE=alphaev5 ;;
> + EV56) UNAME_MACHINE=alphaev56 ;;
> + PCA56) UNAME_MACHINE=alphapca56 ;;
> + PCA57) UNAME_MACHINE=alphapca56 ;;
> + EV6) UNAME_MACHINE=alphaev6 ;;
> + EV67) UNAME_MACHINE=alphaev67 ;;
> + EV68*) UNAME_MACHINE=alphaev68 ;;
> + esac
> + objdump --private-headers /bin/sh | grep -q ld.so.1
> + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
> + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
> + exit ;;
> arm*:Linux:*:*)
> eval $set_cc_for_build
> if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
> @@ -842,7 +882,13 @@
> then
> echo ${UNAME_MACHINE}-unknown-linux-gnu
> else
> - echo ${UNAME_MACHINE}-unknown-linux-gnueabi
> + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
> + | grep -q __ARM_PCS_VFP
> + then
> + echo ${UNAME_MACHINE}-unknown-linux-gnueabi
> + else
> + echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
> + fi
> fi
> exit ;;
> avr32*:Linux:*:*)
> @@ -855,7 +901,18 @@
> echo crisv32-axis-linux-gnu
> exit ;;
> frv:Linux:*:*)
> - echo frv-unknown-linux-gnu
> + echo frv-unknown-linux-gnu
> + exit ;;
> + i*86:Linux:*:*)
> + LIBC=gnu
> + eval $set_cc_for_build
> + sed 's/^ //' << EOF >$dummy.c
> + #ifdef __dietlibc__
> + LIBC=dietlibc
> + #endif
> +EOF
> + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
> + echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
> exit ;;
> ia64:Linux:*:*)
> echo ${UNAME_MACHINE}-unknown-linux-gnu
> @@ -866,74 +923,33 @@
> m68*:Linux:*:*)
> echo ${UNAME_MACHINE}-unknown-linux-gnu
> exit ;;
> - mips:Linux:*:*)
> - eval $set_cc_for_build
> - sed 's/^ //' << EOF >$dummy.c
> - #undef CPU
> - #undef mips
> - #undef mipsel
> - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
> - CPU=mipsel
> - #else
> - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
> - CPU=mips
> - #else
> - CPU=
> - #endif
> - #endif
> -EOF
> - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
> - /^CPU/{
> - s: ::g
> - p
> - }'`"
> - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
> - ;;
> - mips64:Linux:*:*)
> + mips:Linux:*:* | mips64:Linux:*:*)
> eval $set_cc_for_build
> sed 's/^ //' << EOF >$dummy.c
> #undef CPU
> - #undef mips64
> - #undef mips64el
> + #undef ${UNAME_MACHINE}
> + #undef ${UNAME_MACHINE}el
> #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
> - CPU=mips64el
> + CPU=${UNAME_MACHINE}el
> #else
> #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
> - CPU=mips64
> + CPU=${UNAME_MACHINE}
> #else
> CPU=
> #endif
> #endif
> EOF
> - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
> - /^CPU/{
> - s: ::g
> - p
> - }'`"
> + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
> test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
> ;;
> or32:Linux:*:*)
> echo or32-unknown-linux-gnu
> exit ;;
> - ppc:Linux:*:*)
> - echo powerpc-unknown-linux-gnu
> - exit ;;
> - ppc64:Linux:*:*)
> - echo powerpc64-unknown-linux-gnu
> + padre:Linux:*:*)
> + echo sparc-unknown-linux-gnu
> exit ;;
> - alpha:Linux:*:*)
> - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
> - EV5) UNAME_MACHINE=alphaev5 ;;
> - EV56) UNAME_MACHINE=alphaev56 ;;
> - PCA56) UNAME_MACHINE=alphapca56 ;;
> - PCA57) UNAME_MACHINE=alphapca56 ;;
> - EV6) UNAME_MACHINE=alphaev6 ;;
> - EV67) UNAME_MACHINE=alphaev67 ;;
> - EV68*) UNAME_MACHINE=alphaev68 ;;
> - esac
> - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
> - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
> - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
> + parisc64:Linux:*:* | hppa64:Linux:*:*)
> + echo hppa64-unknown-linux-gnu
> exit ;;
> parisc:Linux:*:* | hppa:Linux:*:*)
> # Look for CPU level
> @@ -943,14 +959,17 @@
> *) echo hppa-unknown-linux-gnu ;;
> esac
> exit ;;
> - parisc64:Linux:*:* | hppa64:Linux:*:*)
> - echo hppa64-unknown-linux-gnu
> + ppc64:Linux:*:*)
> + echo powerpc64-unknown-linux-gnu
> + exit ;;
> + ppc:Linux:*:*)
> + echo powerpc-unknown-linux-gnu
> exit ;;
> s390:Linux:*:* | s390x:Linux:*:*)
> echo ${UNAME_MACHINE}-ibm-linux
> exit ;;
> sh64*:Linux:*:*)
> - echo ${UNAME_MACHINE}-unknown-linux-gnu
> + echo ${UNAME_MACHINE}-unknown-linux-gnu
> exit ;;
> sh*:Linux:*:*)
> echo ${UNAME_MACHINE}-unknown-linux-gnu
> @@ -958,6 +977,9 @@
> sparc:Linux:*:* | sparc64:Linux:*:*)
> echo ${UNAME_MACHINE}-unknown-linux-gnu
> exit ;;
> + tile*:Linux:*:*)
> + echo ${UNAME_MACHINE}-tilera-linux-gnu
> + exit ;;
> vax:Linux:*:*)
> echo ${UNAME_MACHINE}-dec-linux-gnu
> exit ;;
> @@ -965,71 +987,8 @@
> echo x86_64-unknown-linux-gnu
> exit ;;
> xtensa*:Linux:*:*)
> - echo ${UNAME_MACHINE}-unknown-linux-gnu
> + echo ${UNAME_MACHINE}-unknown-linux-gnu
> exit ;;
> - 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.
> - # Set LC_ALL=C to ensure ld outputs messages in English.
> - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
> - | sed -ne '/supported targets:/!d
> - s/[ ][ ]*/ /g
> - s/.*supported targets: *//
> - s/ .*//
> - p'`
> - case "$ld_supported_targets" in
> - elf32-i386)
> - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
> - ;;
> - a.out-i386-linux)
> - echo "${UNAME_MACHINE}-pc-linux-gnuaout"
> - exit ;;
> - coff-i386)
> - echo "${UNAME_MACHINE}-pc-linux-gnucoff"
> - exit ;;
> - "")
> - # Either a pre-BFD a.out linker (linux-gnuoldld) or
> - # one that does not give us useful --help.
> - echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
> - exit ;;
> - esac
> - # Determine whether the default compiler is a.out or elf
> - eval $set_cc_for_build
> - sed 's/^ //' << EOF >$dummy.c
> - #include <features.h>
> - #ifdef __ELF__
> - # ifdef __GLIBC__
> - # if __GLIBC__ >= 2
> - LIBC=gnu
> - # else
> - LIBC=gnulibc1
> - # endif
> - # else
> - LIBC=gnulibc1
> - # endif
> - #else
> - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
> - LIBC=gnu
> - #else
> - LIBC=gnuaout
> - #endif
> - #endif
> - #ifdef __dietlibc__
> - LIBC=dietlibc
> - #endif
> -EOF
> - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
> - /^LIBC/{
> - s: ::g
> - p
> - }'`"
> - test x"${LIBC}" != x && {
> - echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
> - exit
> - }
> - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
> - ;;
> i*86:DYNIX/ptx:4*:*)
> # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
> # earlier versions are messed up and put the nodename in both
> @@ -1037,11 +996,11 @@
> echo i386-sequent-sysv4
> exit ;;
> i*86:UNIX_SV:4.2MP:2.*)
> - # Unixware is an offshoot of SVR4, but it has its own version
> - # number series starting with 2...
> - # I am not positive that other SVR4 systems won't match this,
> + # Unixware is an offshoot of SVR4, but it has its own version
> + # number series starting with 2...
> + # I am not positive that other SVR4 systems won't match this,
> # I just have to hope. -- rms.
> - # Use sysv4.2uw... so that sysv4* matches it.
> + # Use sysv4.2uw... so that sysv4* matches it.
> echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
> exit ;;
> i*86:OS/2:*:*)
> @@ -1058,7 +1017,7 @@
> i*86:syllable:*:*)
> echo ${UNAME_MACHINE}-pc-syllable
> exit ;;
> - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
> + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
> echo i386-unknown-lynxos${UNAME_RELEASE}
> exit ;;
> i*86:*DOS:*:*)
> @@ -1073,7 +1032,7 @@
> fi
> exit ;;
> i*86:*:5:[678]*)
> - # UnixWare 7.x, OpenUNIX and OpenServer 6.
> + # UnixWare 7.x, OpenUNIX and OpenServer 6.
> case `/bin/uname -X | grep "^Machine"` in
> *486*) UNAME_MACHINE=i486 ;;
> *Pentium) UNAME_MACHINE=i586 ;;
> @@ -1101,10 +1060,13 @@
> exit ;;
> 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 ;;
> + # uname -m prints for DJGPP always 'pc', but it prints nothing about
> + # the processor, so we play safe by assuming i586.
> + # Note: whatever this is, it MUST be the same as what config.sub
> + # prints for the "djgpp" host, or else GDB configury will decide that
> + # this is a cross-build.
> + echo i586-pc-msdosdjgpp
> + exit ;;
> Intel:Mach:3*:*)
> echo i386-pc-mach3
> exit ;;
> @@ -1139,8 +1101,18 @@
> /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
> && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
> 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
> - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
> - && { echo i486-ncr-sysv4; exit; } ;;
> + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
> + && { echo i486-ncr-sysv4; exit; } ;;
> + NCR*:*:4.2:* | MPRAS*:*:4.2:*)
> + OS_REL='.3'
> + test -r /etc/.relid \
> + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
> + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
> + && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
> + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
> + && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
> + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
> + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
> m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
> echo m68k-unknown-lynxos${UNAME_RELEASE}
> exit ;;
> @@ -1153,7 +1125,7 @@
> rs6000:LynxOS:2.*:*)
> echo rs6000-unknown-lynxos${UNAME_RELEASE}
> exit ;;
> - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
> + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
> echo powerpc-unknown-lynxos${UNAME_RELEASE}
> exit ;;
> SM[BE]S:UNIX_SV:*:*)
> @@ -1173,10 +1145,10 @@
> echo ns32k-sni-sysv
> fi
> exit ;;
> - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
> - # says <Richard.M.Bartel at ccMail.Census.GOV>
> - echo i586-unisys-sysv4
> - exit ;;
> + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
> + # says <Richard.M.Bartel at ccMail.Census.GOV>
> + echo i586-unisys-sysv4
> + exit ;;
> *:UNIX_System_V:4*:FTX*)
> # From Gerald Hewes <hewes at openmarket.com>.
> # How about differentiating between stratus architectures? -djm
> @@ -1202,11 +1174,11 @@
> exit ;;
> R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
> if [ -d /usr/nec ]; then
> - echo mips-nec-sysv${UNAME_RELEASE}
> + echo mips-nec-sysv${UNAME_RELEASE}
> else
> - echo mips-unknown-sysv${UNAME_RELEASE}
> + echo mips-unknown-sysv${UNAME_RELEASE}
> fi
> - exit ;;
> + exit ;;
> BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
> echo powerpc-be-beos
> exit ;;
> @@ -1216,6 +1188,9 @@
> BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
> echo i586-pc-beos
> exit ;;
> + BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
> + echo i586-pc-haiku
> + exit ;;
> SX-4:SUPER-UX:*:*)
> echo sx4-nec-superux${UNAME_RELEASE}
> exit ;;
> @@ -1243,6 +1218,16 @@
> *:Darwin:*:*)
> UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
> case $UNAME_PROCESSOR in
> + i386)
> + eval $set_cc_for_build
> + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
> + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
> + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
> + grep IS_64BIT_ARCH >/dev/null
> + then
> + UNAME_PROCESSOR="x86_64"
> + fi
> + fi ;;
> unknown) UNAME_PROCESSOR=powerpc ;;
> esac
> echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
> @@ -1258,6 +1243,9 @@
> *:QNX:*:4*)
> echo i386-pc-qnx
> exit ;;
> + NEO-?:NONSTOP_KERNEL:*:*)
> + echo neo-tandem-nsk${UNAME_RELEASE}
> + exit ;;
> NSE-?:NONSTOP_KERNEL:*:*)
> echo nse-tandem-nsk${UNAME_RELEASE}
> exit ;;
> @@ -1303,13 +1291,13 @@
> echo pdp10-unknown-its
> exit ;;
> SEI:*:*:SEIUX)
> - echo mips-sei-seiux${UNAME_RELEASE}
> + echo mips-sei-seiux${UNAME_RELEASE}
> exit ;;
> *:DragonFly:*:*)
> echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
> exit ;;
> *:*VMS:*:*)
> - UNAME_MACHINE=`(uname -p) 2>/dev/null`
> + UNAME_MACHINE=`(uname -p) 2>/dev/null`
> case "${UNAME_MACHINE}" in
> A*) echo alpha-dec-vms ; exit ;;
> I*) echo ia64-dec-vms ; exit ;;
> @@ -1324,6 +1312,9 @@
> i*86:rdos:*:*)
> echo ${UNAME_MACHINE}-pc-rdos
> exit ;;
> + i*86:AROS:*:*)
> + echo ${UNAME_MACHINE}-pc-aros
> + exit ;;
> esac
>
> #echo '(No uname command or uname output not recognized.)' 1>&2
> @@ -1346,11 +1337,11 @@
> #include <sys/param.h>
> printf ("m68k-sony-newsos%s\n",
> #ifdef NEWSOS4
> - "4"
> + "4"
> #else
> - ""
> + ""
> #endif
> - ); exit (0);
> + ); exit (0);
> #endif
> #endif
>
> only in patch2:
> unchanged:
> --- ext3grep-0.10.1.orig/src/ext3.h
> +++ ext3grep-0.10.1/src/ext3.h
> @@ -24,6 +24,17 @@
> #ifndef EXT3_H
> #define EXT3_H
>
> +// this trickery needs to happen before ext2_fs is included so
> +// bail out if it has already been included by another path
> +#ifdef _LINUX_EXT2_FS_H
> + #error please include this file before any other includes of ext2fs/ext2_fs.h
> +#endif
> +
> +// some versions of the ext2 headers call this s_frags_per_group and some
> +// call it s_clusters_per_group, define one to the other so our code works
> +// with both
> +#define s_clusters_per_group s_frags_per_group
> +
Very interesting changes. Have you discussed this with upstream?
If not, that's fine; no need to slow down the package update in this
case. But be sure to eventually.
> // Use the header files from e2progs (http://e2fsprogs.sourceforge.net)
> // We can use these headers and then everything named ext2 or ext3.
> #include <ext2fs/ext2_fs.h> // Definitions of ext2, ext3 and ext4.
> @@ -110,6 +121,12 @@
> __u32 faddr(void) const { return i_faddr; }
> __u16 uid_high(void) const { return i_uid_high; }
> __u16 gid_high(void) const { return i_gid_high; }
> +#ifndef i_reseved2
> + //i_reseved2 has been split into two fields in recent
> + //versions of the headers, luckilly we can still access
> + //it in one peice through the hurd side of the union
> + #define i_reserved2 osd2.hurd2.h_i_author
> +#endif
typo? Should this be:
#ifndef i_reserved2
not
#ifndef i_reseved2
This is an important issue, and you should fix it.
> __u32 reserved2(void) const { return i_reserved2; }
>
> void set_reserved2(__u32 val) { i_reserved2 = val; }
That's all I have!
Cheers for the work on ext3grep!!
-- Asheesh.
Reply to: