Commit e0ed7404 authored by JP Abgrall's avatar JP Abgrall
Browse files

Switch back to 1.42.9 now that there is a fix

Revert "Revert changes that moved from 1.41.14 to 1.42.9"

This reverts commit 65f0aab9.
parent 893d0a0f
^autom4te.cache
^build
^FILES
^core
~$
^.pc
^patches
......@@ -35,30 +35,46 @@ datadir = @datadir@
@ifGNUmake@ V =
@ifGNUmake@ ifeq ($(strip $(V)),)
@ifGNUmake@ # E = @echo
@ifGNUmake@ # ES = echo
@ifGNUmake@ # Q = @
@ifGNUmake@ E = @E@
@ifGNUmake@ ES = @ES@
@ifGNUmake@ Q = @Q@
@ifGNUmake@ else
@ifGNUmake@ E = @\#
@ifGNUmake@ ES = \#
@ifGNUmake@ Q =
@ifGNUmake@ endif
@ifNotGNUmake@ E = @E@
@ifNotGNUmake@ ES = @ES@
@ifNotGNUmake@ Q = @Q@
@ifGNUmake@ CHECK=sparse
@ifGNUmake@ CHECK_OPTS=-Wsparse-all -Wno-transparent-union -Wno-return-void -Wno-undef -Wno-non-pointer-null
@ifGNUmake@ ifeq ("$(C)", "2")
@ifGNUmake@ CHECK_CMD=$(CHECK) $(CHECK_OPTS) -Wbitwise -D__CHECK_ENDIAN__
@ifGNUmake@ else
@ifGNUmake@ ifeq ("$(C)", "1")
@ifGNUmake@ CHECK_CMD=$(CHECK) $(CHECK_OPTS)
@ifGNUmake@ else
@ifGNUmake@ CHECK_CMD=@true
@ifGNUmake@ endif
@ifGNUmake@ endif
@ifNotGNUmake@ CHECK_CMD=@true
CC = @CC@
BUILD_CC = @BUILD_CC@
DEFS = -DLOCALEDIR=\"$(localedir)\" -DROOT_SYSCONFDIR=\"$(root_sysconfdir)\" @DEFS@
CFLAGS = @CFLAGS@
CPPFLAGS = -I$(top_builddir)/lib -I$(top_srcdir)/lib @CPPFLAGS@
INTL_FLAGS = @INTL_FLAGS@
ALL_CFLAGS = $(CPPFLAGS) $(DEFS) $(USE_WFLAGS) $(CFLAGS) $(XTRA_CFLAGS) \
$(INTL_FLAGS) $(LINUX_INCLUDE)
CPPFLAGS = @INCLUDES@
ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS)
LDFLAGS = @LDFLAGS@
ALL_LDFLAGS = $(LDFLAGS) @LDFLAG_DYNAMIC@
LDFLAGS_STATIC = $(LDFLAGS) @LDFLAG_STATIC@
BUILD_CFLAGS = @BUILD_CFLAGS@
BUILD_LDFLAGS = @BUILD_LDFLAGS@
RDYNAMIC = @RDYNAMIC@
LINK_BUILD_FLAGS = @LINK_BUILD_FLAGS@
LINK_INSTALL_FLAGS = @LINK_INSTALL_FLAGS@
RM = @RM@
......@@ -91,11 +107,13 @@ LIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@ @PRIVATE_LIBS_CMT@ @SEM_INIT_LIB@
LIBE2P = $(LIB)/libe2p@LIB_EXT@
LIBEXT2FS = $(LIB)/libext2fs@LIB_EXT@
LIBUUID = @LIBUUID@ @SOCKET_LIB@
LIBQUOTA = @STATIC_LIBQUOTA@
LIBBLKID = @LIBBLKID@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
LIBINTL = @LIBINTL@
DEPLIBSS = $(LIB)/libss@LIB_EXT@
DEPLIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@
DEPLIBUUID = @DEPLIBUUID@
DEPLIBQUOTA = @DEPSTATIC_LIBQUOTA@
DEPLIBBLKID = @DEPLIBBLKID@ @PRIVATE_LIBS_CMT@ $(DEPLIBUUID)
STATIC_LIBSS = $(LIB)/libss@STATIC_LIB_EXT@ @DLOPEN_LIB@
......@@ -103,10 +121,12 @@ STATIC_LIBCOM_ERR = $(LIB)/libcom_err@STATIC_LIB_EXT@ @SEM_INIT_LIB@
STATIC_LIBE2P = $(LIB)/libe2p@STATIC_LIB_EXT@
STATIC_LIBEXT2FS = $(LIB)/libext2fs@STATIC_LIB_EXT@
STATIC_LIBUUID = @STATIC_LIBUUID@ @SOCKET_LIB@
STATIC_LIBQUOTA = @STATIC_LIBQUOTA@
STATIC_LIBBLKID = @STATIC_LIBBLKID@ $(STATIC_LIBUUID)
DEPSTATIC_LIBSS = $(LIB)/libss@STATIC_LIB_EXT@
DEPSTATIC_LIBCOM_ERR = $(LIB)/libcom_err@STATIC_LIB_EXT@
DEPSTATIC_LIBUUID = @DEPSTATIC_LIBUUID@
DEPSTATIC_LIBQUOTA = @DEPSTATIC_LIBQUOTA@
DEPSTATIC_LIBBLKID = @DEPSTATIC_LIBBLKID@ $(DEPSTATIC_LIBUUID)
PROFILED_LIBSS = $(LIB)/libss@PROFILED_LIB_EXT@ @DLOPEN_LIB@
......@@ -114,16 +134,14 @@ PROFILED_LIBCOM_ERR = $(LIB)/libcom_err@PROFILED_LIB_EXT@ @SEM_INIT_LIB@
PROFILED_LIBE2P = $(LIB)/libe2p@PROFILED_LIB_EXT@
PROFILED_LIBEXT2FS = $(LIB)/libext2fs@PROFILED_LIB_EXT@
PROFILED_LIBUUID = @PROFILED_LIBUUID@ @SOCKET_LIB@
PROFILED_LIBQUOTA = @PROFILED_LIBQUOTA@
PROFILED_LIBBLKID = @PROFILED_LIBBLKID@ $(PROFILED_LIBUUID)
DEPPROFILED_LIBSS = $(LIB)/libss@PROFILED_LIB_EXT@
DEPPROFILED_LIBCOM_ERR = $(LIB)/libcom_err@PROFILED_LIB_EXT@
DEPPROFILED_LIBUUID = @PROFILED_LIBUUID@
DEPPROFILED_LIBQUOTA = @PROFILED_LIBQUOTA@
DEPPROFILED_LIBBLKID = @PROFILED_LIBBLKID@ $(DEPPROFILED_LIBUUID)
# An include directive pointing to a directory holding enough linux-like
# include files to satisfy some programs here
LINUX_INCLUDE=@LINUX_INCLUDE@
#
# A fast substitution command for fixing up man pages, shell scripts, etc.
#
......@@ -135,6 +153,23 @@ DEP_SUBSTITUTE= $(top_builddir)/util/subst $(SUBST_CONF)
$(top_builddir)/util/subst:
cd $(top_builddir)/util ; $(MAKE) subst
#
# Script for installing symlinks (for shared libraries)
#
$(top_builddir)/util/install-symlink: $(top_srcdir)/util/install-symlink.in \
$(top_builddir)/config.status
cd $(top_builddir); CONFIG_FILES=util/install-symlink ./config.status
chmod +x $(top_builddir)/util/install-symlink
$(top_builddir)/util/symlinks:
cd $(top_builddir)/util ; $(MAKE) symlinks
INSTALL_SYMLINK = /bin/sh $(top_builddir)/util/install-symlink \
@SYMLINK_RELATIVE@ \
--symlinks=$(top_builddir)/util/symlinks
DEP_INSTALL_SYMLINK = $(top_builddir)/util/install-symlink \
$(top_builddir)/util/symlinks
#
# Warning flags
#
......@@ -152,7 +187,7 @@ WFLAGS= -std=c99 -D_XOPEN_SOURCE=600 -D_GNU_SOURCE \
-UENABLE_NLS
gcc-wall-new:
(make USE_WFLAGS="$(WFLAGS)" > /dev/null) 2>&1 | sed -f $(top_srcdir)/util/gcc-wall-cleanup
(make CFLAGS="@CFLAGS@ $(WFLAGS)" > /dev/null) 2>&1 | sed -f $(top_srcdir)/util/gcc-wall-cleanup
gcc-wall:
make clean > /dev/null
......@@ -190,6 +225,14 @@ $(top_builddir)/config.status: $(top_srcdir)/configure
$(top_builddir)/MCONFIG: $(top_srcdir)/MCONFIG.in $(top_builddir)/config.status
cd $(top_builddir); CONFIG_FILES=MCONFIG ./config.status
$(top_builddir)/lib/config.h: $(top_srcdir)/lib/config.h.in \
$(top_builddir)/config.status
cd $(top_builddir); CONFIG_FILES=lib/config.h ./config.status
$(top_builddir)/lib/dirpaths.h: $(DEP_SUBSTITUTE) $(top_srcdir)/lib/dirpaths.h.in
$(E) " SUBST $@"
$(Q) $(SUBSTITUTE) $(top_srcdir)/lib/dirpaths.h.in $@
$(top_builddir)/lib/substitute_sh: $(top_srcdir)/lib/substitute_sh.in \
$(top_builddir)/config.status
cd $(top_builddir); CONFIG_FILES=lib/substitute_sh ./config.status
......@@ -203,7 +246,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/MCONFIG \
cd $(top_builddir); CONFIG_FILES=$(my_dir)/Makefile ./config.status
@MAINTAINER_CMT@$(top_srcdir)/configure: $(top_srcdir)/configure.in
@MAINTAINER_CMT@ cd $(top_srcdir) && autoconf
@MAINTAINER_CMT@ cd $(top_srcdir) && autoheader && autoconf
#
# Make depend magic...
......
......@@ -13,12 +13,14 @@ INSTALL = @INSTALL@
@DEBUGFS_CMT@DEBUGFS_DIR= debugfs
@UUID_CMT@UUID_LIB_SUBDIR= lib/uuid
@BLKID_CMT@BLKID_LIB_SUBDIR= lib/blkid
QUOTA_LIB_SUBDIR= lib/quota
LIB_SUBDIRS=lib/et lib/ss lib/e2p $(UUID_LIB_SUBDIR) lib/ext2fs $(BLKID_LIB_SUBDIR) intl
LIB_SUBDIRS=lib/et lib/ss lib/e2p $(UUID_LIB_SUBDIR) lib/ext2fs $(BLKID_LIB_SUBDIR) $(QUOTA_LIB_SUBDIR) intl
PROG_SUBDIRS=e2fsck $(DEBUGFS_DIR) misc $(RESIZE_DIR) tests/progs po
SUBDIRS=util $(LIB_SUBDIRS) $(PROG_SUBDIRS) tests
SUBS= lib/ext2fs/ext2_types.h lib/blkid/blkid_types.h lib/uuid/uuid_types.h
SUBS= util/subst.conf lib/config.h lib/dirpaths.h \
lib/ext2fs/ext2_types.h lib/blkid/blkid_types.h lib/uuid/uuid_types.h
TAR=tar
......@@ -71,6 +73,8 @@ install-libs: install-libs-recursive
uninstall-libs: uninstall-libs-recursive
check-recursive: all
TAGS clean-recursive distclean-recursive depend-recursive check-recursive \
mostlyclean-recursive realclean-recursive:
@for subdir in $(SUBDIRS); do \
......@@ -140,5 +144,5 @@ distclean-local: clean-local
realclean-local: distclean-local
$(RM) -f configure
check:: subs check-recursive
check:: all check-recursive
This is the new version (1.41.14) of the second extended file
This is the new version (1.42.9) of the second extended file
system management programs.
From time to time, I release new versions of e2fsprogs, to fix
......
This distribution contains a subset of the e2fsprogs package; it
contains the base libraries (ss, et, uuid, blkid) which may be used by
other non-ext2-related applications.
This may be useful for non-Linux operating systems that need these
libraries for GNOME, but who do not need the ext2/ext3 filesystem
utilities.
The full e2fsprogs distributions can be found at the e2fsprogs web
page, which is:
http://e2fsprogs.sourceforge.net
In case of bugs in these libraries, please contact Ted Ts'o at
tytso@mit.edu or tytso@alum.mit.edu.
This diff is collapsed.
Need to process the bad block inode *before* doing the inode scan.
Also check to see if the first block of the inode table is not on the
bad block scan, and fix that. We need to check for an inaccurate
blocks, and fix them before we start doing anything else with the
filesystem!
---------------------------------------------------
User request:
BTW: Could you please add some sort of deleted and possibly corrupted file
and inode list to e2fsck report. There should be filenames deleted
from directory inodes, files with duplicate blocks e.t.c.
It's pretty annoying to filter this information from e2fsck output
by hand :-
------------------------------------------
Add a "answer Yes always to this class of question" response.
----------------------------------
ext2fs_flush() should return a different error message for primary
versus backup superblock flushing, so that mke2fs can print an
appropriate error message.
---------------------------------
Date: Mon, 08 Mar 1999 21:46:14 +0100
From: Sergio Polini <s.polini@mclink.it>
I'm reading the sorce code of e2fsck 1.14.
In pass2.c, lines 352-357, I read:
if ((dirent->name_len & 0xFF) > EXT2_NAME_LEN) {
if (fix_problem(ctx, PR_2_FILENAME_LONG, &cd->pctx)) {
dirent->name_len = EXT2_NAME_LEN;
dir_modified++;
}
}
I think that I'll never see any messages about too long filenames,
because "whatever & 0xFF" can never be "> 0xFF".
Am I wrong?
--------------------------------------
Add chmod command to debugfs.
------------------------------------------
Date: Tue, 18 Jan 2000 17:54:53 -0800 (PST)
From: Alan Blanchard <alan@abraxas.to>
To: tytso@MIT.EDU
Subject: DEBUGFS - thanks and a feature idea
Content-Type: TEXT/PLAIN; charset=US-ASCII
Theodore:
First, let me thank you for writing debugfs. Recently, my Linux box
(RH 6.0, 400 MHz PIII, on a DSL line) was hacked into. The intruder did
an "rm -Rf" on a 34 GB drive with about 5GB of data on it. I was able to
restore essentially the entire thing with debugfs and a bit of C code and Perl.
Actually, I could have done the entire thing with debugfs and Perl, but I
thought it would be too slow.
During this exercise, I noticed that one small feature was lacking that would
have made my job a bit easier. The length of a deleted directory is
reported as 0, hence debugfs won't dump the contents of the directory to a
file using the "dump" command. The only thing that saved me was that the
list of disk blocks is not zeroed out. I was able to dump the contents of the
directories by using debugfs to get the relevant block numbers, then
using dd to get the actual data.
If debugfs had a feature where it ignored the size of a directory reported by
the inode and instead just dumped all the blocks, it would have facilited
things a bit. This seems like a very easy feature to add.
Again, thanks for writing debugfs (and all the other Linux stuff you've written!).
Cheers,
Alan Blanchard
alan@abraxas.to
-------------------------------------------------------------------
Date: Fri, 21 Jan 2000 14:07:12 -0800
From: "H. Peter Anvin" <hpa@www.transmeta.com>
Subject: mkfs -cc and fsck -c
b) An option to mkfs to zero the partition. Yes, it can be done with
dd, but it would be a nicer way of doing it.
------------------------------------------------------------------
Add support for in ext2fs_block_iterate() for a returning the
compressed flag blocks to block_iterate. Change default to not return
EXT2_COMPRESSED_BLKADDR. Change e2fsck to pass this flag in.
(The old compression patches did this by default all the time, which
is bad, since it meant e2fsck never saw the EXT2_COMPRESSED_BLKADDR
flagword.
------------------------------------------------------------
E2fsck should offer to clear all the blocks in an indirect block, not
the entire inode, so there's better recovery for when an indirect
block gets trashed.
-------------------------------------------------------------
From: Yann Dirson - LOGATIQUE <Yann.Dirson@France.Sun.COM>
Date: Thu, 2 Mar 2000 13:52:13 +0100 (MET)
During my experiments on the broken system, I noticed the following in
the badblocks program (which I'm aware is not designed for IDE drives)
- I'd probably have already fixed them if my home system was up :(
* the syntax summary documents 2nd arg as blocks_count, which should
probably read something like end_count.
* testing past end of device is not detected, and lists those blocks
as bad, whereas they simply do not exist.
I think I'll probably add a "max count" option to findsuper(8), so
that I do not have to wait for the whole disk to be scanned when the
system had to be launched with "init=/bin/sh", in which case Ctrl-[CZ]
and friends appear to be absolutely ignored.
Somewhat unrelated, I just noticed the
http://web.mit.edu/tytso/www/linux/ext2.html could be updated:
- could mention SGI xfs (http://oss.sgi.com/projects/xfs/ - they just
release 0.03 snapshot)
----------------------------------------------------------------
Return-Path: <tytso@MIT.EDU>
Date: Thu, 10 Feb 2000 13:20:14 -0500
From: "Theodore Y. Ts'o" <tytso@MIT.EDU>
To: R.E.Wolff@BitWizard.nl
In-Reply-To: Rogier Wolff's message of Thu, 10 Feb 2000 08:46:30 +0100 (MET),
<200002100746.IAA24573@cave.bitwizard.nl>
Subject: Re: e2fsck request for enhancement.
Phone: (781) 391-3464
Date: Thu, 10 Feb 2000 08:46:30 +0100 (MET)
From: R.E.Wolff@BitWizard.nl (Rogier Wolff)
Lately, while trying to recover a broken disk, my system froze (twice,
until I tried something else) while copying the disk.
So I had a file of about 50Mb that was growing frantically at the
moment of the crash.
e2fsck, then finds an indirect block that is completely bogus. It
starts by asking me if it's ok to clear a few of the referenced
blocks. I say yes. Then it comes to the conclusion:
too many invalid blocks. Clear inode?
and then I get the option to delete the whole file. Not to truncate
the file to a "working" size.
I'd MUCH rather have e2fsck say something like:
inode 1234 references an invalid block 134345454. Hmm.
inode 1234 references 567 out of 50176 invalid blocks,
all near the end. Truncate file to 49152 blocks?
Here you can see that of the 1024 blocks near the end of the file,
only 567 were detected as invalid. However now 48Mb of the file will
be recovered, instead of thrown away.
That's a good point. Actually, the right thing is for e2fsck to offer
to clear all of the bad blocks in a particular indirect block. I don't
know how hard it would be to do that, but I'll put it on my e2fsprogs
TODO list.
- Ted
---------------------------------------------------------------
From e2fsprogs Debian TODO file as of 1.10-13.
* Maybe make -dbg packages. Look at how others do it.
---------------------------------------------------------------
Add --lba option to debian icheck command, and have ways of making it
easier to translate LBA to filesystem block numbers.
-------------------------------------------------------
List of projects for e2fsprogs:
1) Make debugfs's "ncheck <inode>" command list all of the pathnames
to an inode, not just only the first link to the inode which is found.
(A good "intro to libext2fs programming interfaces project)
Difficulty: Low Priority: Low
2) Use a code coverage tool such as Rational's PureCoverage to see
what kind of code coverage we have for e2fsck, and try to add test
cases to increase the code coverage for e2fsck.
Difficulty: Medium Priorty: Low
3) Use a code coverage tool such as Rational's PureCoverage to see
what kind of code coverage we have for resize2fs, and try to add test
cases to increase the code coverage for resize2fs.
Difficulty: Medium Priorty: Medium
4) Create a new I/O manager (i.e., test_io.c, unix_io.c, et.al.) which
layers on top of an existing I/O manager which provides copy-on-write
functionality. This COW I/O manager takes will take two open I/O
managers, call them "base" and "changed". The "base" I/O manager is
opened read/only, so any changes are written instead to the "changed"
I/O manager, in a compact, non-sparse format containing the intended
modification to the "base" filesystem.
This will allow resize2fs to figure out what changes need to made to
extend a filesystem, or expand the size of inodes in the inode table,
and the changes can be pushed the filesystem in one fell swoop. (If
the system crashes; the program which runs the "changed" file can be
re-run, much like a journal replay. My assumption is that the COW
file will contain the filesystem UUID in a the COW superblock, and the
COW file will be stored in some place such as /var/state/e2fsprogs,
with an init.d file to automate the replay so we can recover cleanly
from a crash during the resize2fs process.)
Difficulty: Medium Priority: Medium
5) Create a new I/O manager (i.e., test_io.c, unix_io.c, et.al.) which
layers on top of an existing I/O manager which provides an "undo"
functionality. This undo I/O manager takes will take two open I/O
managers, call them "base" and "undo". The "base" I/O manager is be
opened read/write, and when any writes are sent to the I/O manager,
the I/O manager will check the "undo" I/O manager, using a file format
identical to the one found in (5) above.
This is useful for allowing e2fsck to create an "undo" file, which
would make things like "e2fsck -y" much safer.
Difficulty: Low (once 5 is done) Priority: Low
6) Modify resize2fs so that it can relocate and reorganize the
filesystem in the following ways: (1) increase the inode size, so that
an existing filesystem can use the EA-in-inode kernel patch, (2)
reserve blocks in the resize inode to allow for on-line resizing. Use
the COW I/O manager described in (5) in order to provide robustness in
case of a crash during the resize/reorganization operation.
Difficulty: High Priority: Medium
7) Review the EA-in-inode patches to e2fsck for correctness/code
cleanliness. (I will probably have to do this myself -- Ted)
Difficulty: High Priorty: Medium
8) Add support for extent maps to e2fsprogs. I need to review the
extent maps first/in parallel.
Difficulty: High Priority: Medium
----------------------------------
Need to deal with the case where the resize inode overlaps with the
bad blocks inode.
This diff is collapsed.
#! /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.
# Copyright 1992-2013 Free Software Foundation, Inc.
timestamp='2009-04-17'
timestamp='2013-10-01'
# 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.
#
# 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
# 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 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
# 02110-1301, USA.
# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# the same distribution terms that you use for the rest of that
# program. This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
# Please send patches to <config-patches@gnu.org>. Submit a context
# diff and a properly formatted ChangeLog entry.
# Please send patches with a ChangeLog entry 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.
# 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 +68,7 @@ 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,
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
Copyright 1992-2013 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,13 +115,18 @@ esac
# 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-musl* | 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/'`
;;
android-linux)
os=-linux-android
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
;;
*)
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
if [ $basic_machine != $1 ]
......@@ -149,10 +149,13 @@ case $os in
-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
......@@ -167,10 +170,10 @@ case $os in
os=-chorusos
basic_machine=$1
;;
-chorusrdb)
os=-chorusrdb
-chorusrdb)
os=-chorusrdb
basic_machine=$1
;;
;;
-hiux*)
os=-hiuxwe2
;;
......@@ -215,6 +218,12 @@ case $os in
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-lynx*178)
os=-lynxos178
;;
-lynx*5)
os=-lynxos5
;;
-lynx*)
os=-lynxos
;;
......@@ -239,20 +248,28 @@ case $basic_machine in
# Some are omitted here because they have special meanings below.
1750a | 580 \
| a29k \
| aarch64 | aarch64_be \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
| arc | arceb \
| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
| avr | avr32 \
| be32 | be64 \
| bfin \
| c4x | clipper \
| c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \
| epiphany \
| fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
| k1om \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
| maxq | mb | microblaze | mcore | mep | metag \
| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
......@@ -270,32 +287,45 @@ case $basic_machine in
| mipsisa64r2 | mipsisa64r2el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipsr5900 | mipsr5900el \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| moxie \
| mt \
| msp430 \
| nios | nios2 \
| nds32 | nds32le | nds32be \
| nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
| or32 \
| open8 \
| or1k | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
| rl78 | rx \
| score \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
| spu | strongarm \
| tahoe | thumb | tic4x | tic80 | tron \
| v850 | v850e \
| spu \
| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
| ubicom32 \
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
| we32k \
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
| x86 | xc16x | xstormy16 | xtensa \
| z8k | z80)
basic_machine=$basic_machine-unknown
;;
m6811 | m68hc11 | m6812 | m68hc12)
# Motorola 68HC11/12.
c54x)
basic_machine=tic54x-unknown
;;
c55x)
basic_machine=tic55x-unknown
;;
c6x)
basic_machine=tic6x-unknown
;;
m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
......@@ -305,6 +335,21 @@ case $basic_machine in
basic_machine=mt-unknown
;;
strongarm | thumb | xscale)
basic_machine=arm-unknown
;;
xgate)
basic_machine=$basic_machine-unknown
os=-none
;;
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.
......@@ -319,25 +364,31 @@ case $basic_machine in
# Recognize the basic CPU types with company name.
580-* \
| a29k-* \
| aarch64-* | aarch64_be-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
| clipper-* | craynv-* | cydra-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
| c8051-* | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
| k1om-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
| microblaze-* | microblazeel-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
......@@ -355,28 +406,34 @@ case $basic_machine in
| mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipsr5900-* | mipsr5900el-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
| mt-* \
| msp430-* \
| nios-* | nios2-* \
| nds32-* | nds32le-* | nds32be-* \
| nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| pyramid-* \
| romp-* | rs6000-* \
| rl78-* | 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-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
| tahoe-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tile*-* \
| tron-* \
| v850-* | v850e-* | vax-* \
| ubicom32-* \
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
| vax-* \
| we32k-* \
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
| x86-* | x86_64-* | xc16x-* | xps100-* \
| xstormy16-* | xtensa*-* \
| ymp-* \
| z8k-* | z80-*)
......@@ -401,7 +458,7 @@ case $basic_machine in
basic_machine=a29k-amd
os=-udi
;;
abacus)
abacus)
basic_machine=abacus-unknown
;;
adobe68k)
......@@ -467,11 +524,24 @@ case $basic_machine in
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)
cegcc)
basic_machine=arm-unknown
os=-cegcc
;;
......@@ -503,7 +573,7 @@ case $basic_machine in
basic_machine=craynv-cray
os=-unicosmp
;;
cr16)
cr16 | cr16-*)
basic_machine=cr16-unknown
os=-elf
;;
......@@ -661,7 +731,6 @@ case $basic_machine in
i370-ibm* | ibm*)
basic_machine=i370-ibm
;;
# I'm not sure what "Sysv32" means. Should this be sysv3.2?
i*86v32)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv32
......@@ -719,8 +788,15 @@ case $basic_machine in
basic_machine=ns32k-utek
os=-sysv
;;
microblaze*)
basic_machine=microblaze-xilinx
;;
mingw64)
basic_machine=x86_64-pc
os=-mingw64
;;
mingw32)
basic_machine=i386-pc
basic_machine=i686-pc
os=-mingw32
;;
mingw32ce)
......@@ -755,10 +831,18 @@ case $basic_machine in
ms1-*)
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
msys)
basic_machine=i686-pc
os=-msys
;;
mvs)
basic_machine=i370-ibm
os=-mvs
;;
nacl)
basic_machine=le32-unknown
os=-nacl
;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
......@@ -823,6 +907,12 @@ case $basic_machine in
np1)
basic_machine=np1-gould
;;
neo-tandem)
basic_machine=neo-tandem
;;
nse-tandem)
basic_machine=nse-tandem
;;
nsr-tandem)
basic_machine=nsr-tandem
;;
......@@ -905,9 +995,10 @@ case $basic_machine in
;;
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
......@@ -932,7 +1023,11 @@ case $basic_machine in
basic_machine=i586-unknown
os=-pw32
;;
rdos)
rdos | rdos64)
basic_machine=x86_64-pc
os=-rdos
;;
rdos32)
basic_machine=i386-pc
os=-rdos
;;
......@@ -1001,6 +1096,9 @@ case $basic_machine in
basic_machine=i860-stratus
os=-sysv4
;;
strongarm-* | thumb-*)
basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
sun2)
basic_machine=m68000-sun
;;
......@@ -1057,20 +1155,8 @@ case $basic_machine in
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
;;
tile*)
basic_machine=tile-unknown
basic_machine=$basic_machine-unknown
os=-linux-gnu
;;
tx39)
......@@ -1140,6 +1226,9 @@ case $basic_machine in
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
......@@ -1237,9 +1326,12 @@ esac
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|'`
;;
......@@ -1260,22 +1352,23 @@ case $os in
# 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* \
| -kopensolaris* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
| -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
| -openbsd* | -solidbsd* \
| -bitrig* | -openbsd* | -solidbsd* \
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
......@@ -1283,7 +1376,7 @@ case $os in
| -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*)
......@@ -1322,7 +1415,7 @@ case $os in
-opened*)
os=-openedition
;;
-os400*)
-os400*)
os=-os400
;;
-wince*)
......@@ -1371,7 +1464,7 @@ case $os in
-sinix*)
os=-sysv4
;;
-tpf*)
-tpf*)
os=-tpf
;;
-triton*)
......@@ -1407,15 +1500,14 @@ case $os in
-aros*)
os=-aros
;;
-kaos*)
os=-kaos
;;
-zvmoe)
os=-zvmoe
;;
-dicos*)
os=-dicos
;;
-nacl*)
;;
-none)
;;
*)
......@@ -1438,10 +1530,10 @@ else
# system, and we'll never get to this point.
case $basic_machine in
score-*)
score-*)
os=-elf
;;
spu-*)
spu-*)
os=-elf
;;
*-acorn)
......@@ -1453,8 +1545,23 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
c4x-* | tic4x-*)
os=-coff
c4x-* | tic4x-*)
os=-coff
;;
c8051-*)
os=-elf
;;
hexagon-*)
os=-elf
;;
tic54x-*)
os=-coff
;;
tic55x-*)
os=-coff
;;
tic6x-*)
os=-coff
;;
# This must come before the *-dec entry.
pdp10-*)
......@@ -1474,14 +1581,11 @@ case $basic_machine in
;;
m68000-sun)
os=-sunos3
# This also exists in the configure program, but was not the
# default.
# os=-sunos4
;;
m68*-cisco)
os=-aout
;;
mep-*)
mep-*)
os=-elf
;;
mips*-cisco)
......@@ -1490,6 +1594,9 @@ case $basic_machine in
mips*-*)
os=-elf
;;
or1k-*)
os=-elf
;;
or32-*)
os=-coff
;;
......@@ -1508,7 +1615,7 @@ case $basic_machine in
*-ibm)
os=-aix
;;
*-knuth)
*-knuth)
os=-mmixware
;;
*-wec)
......@@ -1613,7 +1720,7 @@ case $basic_machine in
-sunos*)
vendor=sun
;;
-aix*)
-cnk*|-aix*)
vendor=ibm
;;
-beos*)
......
......@@ -16,8 +16,15 @@ if test -z "$CPP"; then
CPP="$CC -E"
fi
echo '#include <asm/types.h>' | $CPP - | \
sed -f sed.script | grep '^#' > asm_types.h
/bin/echo -n "checking for __uNN types... "
# can't check [ -f /usr/include/asm/types.h ] directly, since
# the include path might be different if cross-compiling
if echo '#include <asm/types.h>' | $CPP - 2> parse-types.log | \
sed -f sed.script | grep '^#' > asm_types.h; then
echo "using <asm/types.h>"
else
echo "using generic types"
fi
rm sed.script
......@@ -26,83 +33,83 @@ cp asm_types.h asm_types.c
cat >> asm_types.c <<EOF
#include <stdio.h>
#include <stdlib.h>
main(int argc, char **argv)
int main(int argc, char **argv)
{
#ifdef __U8_TYPEDEF
if (sizeof(__U8_TYPEDEF) != 1) {
printf("Sizeof(__U8__TYPEDEF) is %d should be 1\n",
sizeof(__U8_TYPEDEF));
(int) sizeof(__U8_TYPEDEF));
exit(1);
}
#else
#elif defined(__linux__)
#warning __U8_TYPEDEF not defined
#endif
#ifdef __S8_TYPEDEF
if (sizeof(__S8_TYPEDEF) != 1) {
printf("Sizeof(_S8__TYPEDEF) is %d should be 1\n",
sizeof(__S8_TYPEDEF));
(int) sizeof(__S8_TYPEDEF));
exit(1);
}
#else
#elif defined(__linux__)
#warning __S8_TYPEDEF not defined
#endif
#ifdef __U16_TYPEDEF
if (sizeof(__U16_TYPEDEF) != 2) {
printf("Sizeof(__U16__TYPEDEF) is %d should be 2\n",
sizeof(__U16_TYPEDEF));
(int) sizeof(__U16_TYPEDEF));
exit(1);
}
#else
#elif defined(__linux__)
#warning __U16_TYPEDEF not defined
#endif
#ifdef __S16_TYPEDEF
if (sizeof(__S16_TYPEDEF) != 2) {
printf("Sizeof(__S16__TYPEDEF) is %d should be 2\n",
sizeof(__S16_TYPEDEF));
(int) sizeof(__S16_TYPEDEF));
exit(1);
}
#else
#elif defined(__linux__)
#warning __S16_TYPEDEF not defined
#endif
#ifdef __U32_TYPEDEF
if (sizeof(__U32_TYPEDEF) != 4) {
printf("Sizeof(__U32__TYPEDEF) is %d should be 4\n",
sizeof(__U32_TYPEDEF));
(int) sizeof(__U32_TYPEDEF));
exit(1);
}
#else
#elif defined(__linux__)
#warning __U32_TYPEDEF not defined
#endif
#ifdef __S32_TYPEDEF
if (sizeof(__S32_TYPEDEF) != 4) {
printf("Sizeof(__S32__TYPEDEF) is %d should be 4\n",
sizeof(__S32_TYPEDEF));
(int) sizeof(__S32_TYPEDEF));
exit(1);
}
#else
#elif defined(__linux__)
#warning __S32_TYPEDEF not defined
#endif
#ifdef __U64_TYPEDEF
if (sizeof(__U64_TYPEDEF) != 8) {
printf("Sizeof(__U64__TYPEDEF) is %d should be 8\n",
sizeof(__U64_TYPEDEF));
(int) sizeof(__U64_TYPEDEF));
exit(1);
}
#else
#elif defined(__linux__)
#warning __U64_TYPEDEF not defined
#endif
#ifdef __S64_TYPEDEF
if (sizeof(__S64_TYPEDEF) != 8) {
printf("Sizeof(__S64__TYPEDEF) is %d should be 8\n",
sizeof(__S64_TYPEDEF));
(int) sizeof(__S64_TYPEDEF));
exit(1);
}
#else
#elif defined(__linux__)
#warning __S64_TYPEDEF not defined
#endif
exit(0);
return 0;
}
EOF
......
This diff is collapsed.
AC_INIT(version.h)
AC_PREREQ(2.50)
AC_PREREQ(2.54)
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_HEADERS([lib/config.h])
AH_BOTTOM([#include "dirpaths.h"])
MCONFIG=./MCONFIG
AC_SUBST_FILE(MCONFIG)
BINARY_TYPE=bin
......@@ -68,7 +70,7 @@ dnl
DLOPEN_LIB=''
AC_CHECK_LIB(dl, dlopen,
[DLOPEN_LIB=-ldl
AC_DEFINE(HAVE_DLOPEN)])
AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if dlopen/libdl exists])])
AC_SUBST(DLOPEN_LIB)
dnl
dnl Use diet libc
......@@ -93,17 +95,11 @@ AC_HELP_STRING([--with-ldopts],[no longer supported, use LDFLAGS= instead]),
AC_MSG_ERROR([--with-ldopts no longer supported; use LDFLAGS= instead]))
dnl
AC_PROG_CC
AC_PROG_CPP
dnl
dnl On systems without linux header files, we add an extra include directory
dnl that holds enough to fake it (hopefully). Note that the $(top_srcdir) here
dnl is quoted so that it gets expanded by make, not by configure.
dnl
AC_CHECK_HEADER(linux/fs.h, [linux_headers=yes], [linux_headers=no])
if test "$linux_headers" != yes; then
LINUX_INCLUDE='-I$(top_builddir)/include'
if test "$GCC" = yes; then
RDYNAMIC="-rdynamic"
AC_SUBST(RDYNAMIC)
fi
AC_SUBST(LINUX_INCLUDE)
AC_PROG_CPP
dnl
dnl Alpha computers use fast and imprecise floating point code that may
dnl miss exceptions by default. Force sane options if we're using GCC.
......@@ -168,10 +164,43 @@ else
fi
,
LINK_INSTALL_FLAGS=-f
AC_MSG_RESULT([Disabling symlinks for install])
AC_MSG_RESULT([Disabling symlinks for install by default])
)
AC_SUBST(LINK_INSTALL_FLAGS)
dnl
dnl handle --enable-relative-symlinks
dnl
relative_symlink_defined=
AC_ARG_ENABLE([relative-symlinks],
[ --enable-relative-symlinks use relative symlinks when installing],
if test "$enableval" = "no"
then
SYMLINK_RELATIVE=
relative_symlink_defined=yes
AC_MSG_RESULT([Disabling relative symlinks for install])
else
SYMLINK_RELATIVE=--relative
relative_symlink_defined=yes
AC_MSG_RESULT([Enabling relative symlinks for install])
fi)
AC_ARG_ENABLE([symlink-relative-symlinks],,
if test "$enableval" = "no"
then
SYMLINK_RELATIVE=yes
AC_MSG_RESULT([Disabling relative symlinks for install])
else
SYMLINK_RELATIVE=--relative
AC_MSG_RESULT([Enabling relative symlinks for install])
fi
,
if test -z "$relative_symlink_defined"
then
SYMLINK_RELATIVE=
AC_MSG_RESULT([Disabling relative symlinks for install by default])
fi
)
AC_SUBST(SYMLINK_RELATIVE)
dnl
dnl handle --enable-symlink-build
dnl
AC_ARG_ENABLE([symlink-build],
......@@ -186,7 +215,7 @@ else
fi
,
LINK_BUILD_FLAGS=
AC_MSG_RESULT([Disabling symlinks for build])
AC_MSG_RESULT([Disabling symlinks for build by default])
)
AC_SUBST(LINK_BUILD_FLAGS)
dnl
......@@ -198,18 +227,22 @@ if test "$enableval" = "no"
then
AC_MSG_RESULT([Disabling verbose make commands])
E=@echo
ES=echo
Q=@
else
AC_MSG_RESULT([Enabling verbose make commands])
E=@\\#
ES=\\#
Q=
fi
,
AC_MSG_RESULT([Disabling verbose make commands])
E=@echo
ES=echo
Q=@
)
AC_SUBST(E)
AC_SUBST(ES)
AC_SUBST(Q)
dnl
dnl handle --enable-compression
......@@ -220,7 +253,8 @@ if test "$enableval" = "no"
then
AC_MSG_RESULT([Disabling compression support])
else
AC_DEFINE(ENABLE_COMPRESSION)
AC_DEFINE(ENABLE_COMPRESSION, 1,
[Define to 1 if ext2 compression enabled])
AC_MSG_RESULT([Enabling compression support])
AC_MSG_WARN([Compression support is experimental])
fi
......@@ -230,6 +264,7 @@ AC_MSG_RESULT([Disabling compression support by default])
dnl
dnl handle --enable-htree
dnl
AH_TEMPLATE([ENABLE_HTREE], [Define to 1 if ext3/4 htree support enabled])
AC_ARG_ENABLE([htree],
[ --enable-htree enable EXPERIMENTAL htree directory support],
if test "$enableval" = "no"
......@@ -238,12 +273,12 @@ then
AC_MSG_RESULT([Disabling htree directory support])
else
HTREE_CMT=
AC_DEFINE(ENABLE_HTREE)
AC_DEFINE(ENABLE_HTREE, 1)
AC_MSG_RESULT([Enabling htree directory support])
fi
,
HTREE_CMT=
AC_DEFINE(ENABLE_HTREE)
AC_DEFINE(ENABLE_HTREE, 1)
AC_MSG_RESULT([Enabling htree directory support by default])
)
AC_SUBST(HTREE_CMT)
......@@ -377,7 +412,8 @@ if test "$enableval" = "no"
then
AC_MSG_RESULT([Disabling journal debugging])
else
AC_DEFINE(CONFIG_JBD_DEBUG)
AC_DEFINE(CONFIG_JBD_DEBUG, 1,
[Define to 1 if debugging ext3/4 journal code])
AC_MSG_RESULT([Enabling journal debugging])
fi
,
......@@ -392,7 +428,8 @@ if test "$enableval" = "no"
then
AC_MSG_RESULT([Disabling blkid debugging])
else
AC_DEFINE(CONFIG_BLKID_DEBUG)
AC_DEFINE(CONFIG_BLKID_DEBUG, 1,
[Define to 1 if debugging the blkid library])
AC_MSG_RESULT([Enabling blkid debugging])
fi
,
......@@ -403,18 +440,20 @@ dnl handle --enable-testio-debug
dnl
AC_ARG_ENABLE([testio-debug],
[ --disable-testio-debug disable the use of the test I/O manager for debugging],
AH_TEMPLATE([CONFIG_TESTIO_DEBUG],
[Define to 1 if the testio I/O manager should be enabled])
if test "$enableval" = "no"
then
AC_MSG_RESULT([Disabling testio debugging])
TEST_IO_CMT="#"
else
TEST_IO_CMT=
AC_DEFINE(CONFIG_TESTIO_DEBUG)
AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
AC_MSG_RESULT([Enabling testio debugging])
fi
,
AC_MSG_RESULT([Enabling testio debugging by default])
AC_DEFINE(CONFIG_TESTIO_DEBUG)
AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
TEST_IO_CMT=
)
AC_SUBST(TEST_IO_CMT)
......@@ -480,6 +519,7 @@ DEPSTATIC_LIBBLKID=
PROFILED_LIBBLKID=
DEPPROFILED_LIBBLKID=
BLKID_CMT=
AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
AC_ARG_ENABLE([libblkid],
[ --disable-libblkid do not build private blkid library],
if test "$enableval" = "no"
......@@ -502,7 +542,7 @@ else
DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
AC_DEFINE(CONFIG_BUILD_FINDFS)
AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
AC_MSG_RESULT([Enabling private blkid library])
fi
,
......@@ -512,7 +552,7 @@ STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
AC_DEFINE(CONFIG_BUILD_FINDFS)
AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
AC_MSG_RESULT([Enabling private blkid library by default])
)
AC_SUBST(LIBBLKID)
......@@ -523,6 +563,63 @@ AC_SUBST(PROFILED_LIBBLKID)
AC_SUBST(DEPPROFILED_LIBBLKID)
AC_SUBST(BLKID_CMT)
dnl
dnl handle --enable-quota
dnl
QUOTA_MAN_COMMENT='.\"'
QUOTA_CMT=
AC_SUBST(QUOTA_MAN_COMMENT)
PKG_PROG_PKG_CONFIG
AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
AC_ARG_ENABLE([quota],
[ --enable-quota enable quota support],
if test "$enableval" = "no"
then
QUOTA_CMT=#
AC_MSG_RESULT([Disabling quota support])
else
QUOTA_CMT=
AC_DEFINE(CONFIG_QUOTA, 1)
AC_MSG_RESULT([Enabling quota support])
QUOTA_MAN_COMMENT=""
AC_SUBST(QUOTA_MAN_COMMENT)
fi
,
QUOTA_CMT=#
AC_MSG_RESULT([Disabling quota support by default])
)
dnl
dnl Define stuff expected for quota library
dnl
LIBQUOTA='$(LIB)/libquota'$LIB_EXT
DEPLIBQUOTA=$LIBQUOTA
STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
AC_SUBST(LIBQUOTA)
AC_SUBST(DEPLIBQUOTA)
AC_SUBST(STATIC_LIBQUOTA)
AC_SUBST(DEPSTATIC_LIBQUOTA)
AC_SUBST(PROFILED_LIBQUOTA)
AC_SUBST(DEPPROFILED_LIBQUOTA)
AC_SUBST(QUOTA_CMT)
dnl
dnl handle --disable-backtrace
dnl
AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
AC_ARG_ENABLE([backtrace],
[ --disable-backtrace disable use backtrace],
if test "$enableval" = "no"
then
AC_MSG_RESULT([Disabling use of backtrace])
AC_DEFINE(DISABLE_BACKTRACE, 1)
else
AC_MSG_RESULT([Enabling use of backtrace])
fi
,
AC_MSG_RESULT([Enabling use of backtrace by default])
)
dnl
dnl handle --enable-debugfs
dnl
AC_ARG_ENABLE([debugfs],
......@@ -577,6 +674,24 @@ RESIZER_CMT=
)
AC_SUBST(RESIZER_CMT)
dnl
dnl handle --enable-defrag
dnl
AC_ARG_ENABLE([defrag],
[ --disable-defrag disable support of e4defrag program],
if test "$enableval" = "no"
then
AC_MSG_RESULT([Disabling e4defrag support])
DEFRAG_CMT="#"
else
DEFRAG_CMT=
AC_MSG_RESULT([Enabling e4defrag support])
fi
,
AC_MSG_RESULT([Enabling e4defrag support by default])
DEFRAG_CMT=
)
AC_SUBST(DEFRAG_CMT)
dnl
dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
dnl
AC_ARG_ENABLE([fsck],
......@@ -651,6 +766,7 @@ fi
dnl
dnl
dnl
AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
AC_ARG_ENABLE([uuidd],
[ --disable-uuidd disable building the uuid daemon],
[if test "$enableval" = "no"
......@@ -658,12 +774,12 @@ then
AC_MSG_RESULT([Not building uuidd])
UUIDD_CMT="#"
else
AC_DEFINE(USE_UUIDD)
AC_DEFINE(USE_UUIDD, 1)
UUIDD_CMT=""
AC_MSG_RESULT([Building uuidd])
fi]
,
AC_DEFINE(USE_UUIDD)
AC_DEFINE(USE_UUIDD, 1)
UUIDD_CMT=""
AC_MSG_RESULT([Building uuidd by default])
)
......@@ -680,8 +796,8 @@ GETTEXT_PACKAGE=e2fsprogs
PACKAGE=e2fsprogs
VERSION="$E2FSPROGS_VERSION"
VERSION=0.14.1
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
AC_SUBST(GETTEXT_PACKAGE)
AC_SUBST(PACKAGE)
AC_SUBST(VERSION)
......@@ -729,7 +845,49 @@ if test $cross_compiling = no; then
else
AC_CHECK_PROGS(BUILD_CC, gcc cc)
fi
AC_CHECK_HEADERS(dirent.h errno.h getopt.h malloc.h mntent.h paths.h semaphore.h setjmp.h signal.h stdarg.h stdint.h stdlib.h termios.h termio.h unistd.h utime.h linux/fd.h linux/major.h net/if_dl.h netinet/in.h sys/disklabel.h sys/file.h sys/ioctl.h sys/mkdev.h sys/mman.h sys/prctl.h sys/queue.h sys/resource.h sys/select.h sys/socket.h sys/sockio.h sys/stat.h sys/syscall.h sys/sysmacros.h sys/time.h sys/types.h sys/un.h sys/wait.h)
AC_CHECK_HEADERS(m4_flatten([
dirent.h
errno.h
execinfo.h
getopt.h
malloc.h
mntent.h
paths.h
semaphore.h
setjmp.h
signal.h
stdarg.h
stdint.h
stdlib.h
termios.h
termio.h
unistd.h
utime.h
linux/falloc.h
linux/fd.h
linux/major.h
linux/loop.h
net/if_dl.h
netinet/in.h
sys/disklabel.h
sys/file.h
sys/ioctl.h
sys/mkdev.h
sys/mman.h
sys/prctl.h
sys/queue.h
sys/resource.h
sys/select.h
sys/socket.h
sys/sockio.h
sys/stat.h
sys/syscall.h
sys/sysmacros.h
sys/time.h
sys/types.h
sys/un.h
sys/wait.h
]))
AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
[[
#if HAVE_SYS_QUEUE_H
......@@ -748,16 +906,19 @@ AC_CHECK_HEADERS(net/if.h,,,
AC_FUNC_VPRINTF
dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
dnl is not decleared.
AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT)],,
AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
[Define to 1 if dirent has d_reclen])],,
[#include <dirent.h>])
dnl Check to see if ssize_t was decleared
AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T)],,
dnl Check to see if ssize_t was declared
AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
[Define to 1 if ssize_t declared])],,
[#include <sys/types.h>])
dnl
dnl Check to see if llseek() is declared in unistd.h. On some libc's
dnl it is, and on others it isn't..... Thank you glibc developers....
dnl
AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE)],,
AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
[Define to 1 if llseek declared in unistd.h])],,
[#include <unistd.h>])
dnl
dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
......@@ -768,7 +929,8 @@ dnl
dnl Warning! Use of --enable-gcc-wall may throw off this test.
dnl
dnl
AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE)],,
AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
[Define to 1 if lseek64 declared in unistd.h])],,
[#define _LARGEFILE_SOURCE
#define _LARGEFILE64_SOURCE
#include <unistd.h>])
......@@ -779,14 +941,17 @@ AC_CHECK_SIZEOF(short)
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
AC_CHECK_SIZEOF(long long)
AC_CHECK_SIZEOF(off_t)
SIZEOF_SHORT=$ac_cv_sizeof_short
SIZEOF_INT=$ac_cv_sizeof_int
SIZEOF_LONG=$ac_cv_sizeof_long
SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
SIZEOF_OFF_T=$ac_cv_sizeof_off_t
AC_SUBST(SIZEOF_SHORT)
AC_SUBST(SIZEOF_INT)
AC_SUBST(SIZEOF_LONG)
AC_SUBST(SIZEOF_LONG_LONG)
AC_SUBST(SIZEOF_OFF_T)
AC_C_BIGENDIAN
BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
ASM_TYPES_HEADER=./asm_types.h
......@@ -835,14 +1000,16 @@ if test "$e2fsprogs_cv_struct_st_flags" = yes; then
[e2fsprogs_cv_struct_st_flags_immut=no]))
AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
AC_DEFINE(HAVE_STAT_FLAGS)
AC_DEFINE(HAVE_STAT_FLAGS, 1,
[Define to 1 if struct stat has st_flags])
fi
fi
dnl
dnl Check for the presence of SA_LEN
dnl
AC_CHECK_MEMBER(struct sockaddr.sa_len,
AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,[Define if struct sockaddr contains sa_len]),,
AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
[Define to 1 if if struct sockaddr contains sa_len]),,
[#include <sys/types.h>
#include <sys/socket.h>])
dnl
......@@ -853,7 +1020,52 @@ if test -n "$BLKID_CMT"; then
AC_SEARCH_LIBS([blkid_probe_all], [blkid])
fi
dnl
AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 fstat64 ftruncate64 getmntinfo strtoull strcasecmp srandom jrand48 fchown mallinfo fdatasync strnlen strptime strdup sysconf pathconf posix_memalign memalign valloc __secure_getenv prctl mmap utime setresuid setresgid usleep nanosleep getdtablesize getrlimit blkid_probe_get_topology mbstowcs)
AC_CHECK_FUNCS(m4_flatten([
__secure_getenv
backtrace
blkid_probe_get_topology
chflags
fallocate
fallocate64
fchown
fdatasync
fstat64
ftruncate64
getdtablesize
getmntinfo
getpwuid_r
getrlimit
getrusage
jrand48
llseek
lseek64
mallinfo
mbstowcs
memalign
mmap
msync
nanosleep
open64
pathconf
posix_fadvise
posix_memalign
prctl
secure_getenv
setmntent
setresgid
setresuid
srandom
strcasecmp
strdup
strnlen
strptime
strtoull
sync_file_range
sysconf
usleep
utime
valloc
]))
dnl
dnl Check to see if -lsocket is required (solaris) to make something
dnl that uses socket() to compile; this is needed for the UUID library
......@@ -870,21 +1082,22 @@ AC_CACHE_VAL(ac_cv_have_optreset,
ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
AC_MSG_RESULT($ac_cv_have_optreset)
if test $ac_cv_have_optreset = yes; then
AC_DEFINE(HAVE_OPTRESET)
AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
fi
dnl
dnl Test for sem_init, and which library it might require:
dnl
AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
SEM_INIT_LIB=''
AC_CHECK_FUNC(sem_init, ,
AC_CHECK_LIB(pthread, sem_init,
AC_DEFINE(HAVE_SEM_INIT)
AC_DEFINE(HAVE_SEM_INIT, 1)
SEM_INIT_LIB=-lpthread,
AC_CHECK_LIB(rt, sem_init,
AC_DEFINE(HAVE_SEM_INIT)
AC_DEFINE(HAVE_SEM_INIT, 1)
SEM_INIT_LIB=-lrt,
AC_CHECK_LIB(posix4, sem_init,
AC_DEFINE(HAVE_SEM_INIT)
AC_DEFINE(HAVE_SEM_INIT, 1)
SEM_INIT_LIB=-lposix4))))dnl
AC_SUBST(SEM_INIT_LIB)
dnl
......@@ -903,7 +1116,7 @@ dnl We use the EXT2 ioctls only under Linux
dnl
case "$host_os" in
linux*)
AC_DEFINE(HAVE_EXT2_IOCTLS)
AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
;;
esac
dnl
......@@ -988,9 +1201,19 @@ AC_SUBST(root_sbindir)
AC_SUBST(root_libdir)
AC_SUBST(root_sysconfdir)
dnl
dnl See if -static works.
dnl Allow specification of the multiarch arch
dnl
AC_MSG_CHECKING([whether linker accepts -static])
AC_ARG_WITH([multiarch],
[ --with-multiarch=ARCH specify the multiarch triplet],
libdir=$libdir/$withval
root_libdir=$root_libdir/$withval
)dnl
dnl
dnl See if -static works. This could fail if the linker does not
dnl support -static, or if required external libraries are not available
dnl in static form.
dnl
AC_MSG_CHECKING([whether we can link with -static])
AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
......@@ -1022,7 +1245,8 @@ dnl
case "$host_os" in
darwin*)
AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
AC_DEFINE(_INTL_REDIRECT_MACROS)
AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
[Define to 1 if Apple Darwin libintl workaround is needed])
;;
esac
dnl
......@@ -1043,17 +1267,20 @@ fi
AC_SUBST(DO_TEST_SUITE)
dnl
dnl Only include the intl include files if we're building with them
dnl
INTL_FLAGS=
dnl
INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
if test -n "$CPPFLAGS" ; then
INCLUDES="$INCLUDES $CPPFLAGS"
fi
if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
INTL_FLAGS='-I$(top_builddir)/intl -I$(top_srcdir)/intl'
INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
fi
AC_SUBST(INTL_FLAGS)
AC_SUBST(INCLUDES)
dnl
dnl Build CFLAGS
dnl
if test $cross_compiling = no; then
BUILD_CFLAGS="$CFLAGS"
BUILD_CFLAGS="$CFLAGS $CPPFLAGS"
BUILD_LDFLAGS="$LDFLAGS"
else
BUILD_CFLAGS=
......@@ -1070,11 +1297,11 @@ test -d include || mkdir include
test -d include/linux || mkdir include/linux
test -d include/asm || mkdir include/asm
for i in MCONFIG Makefile e2fsprogs.spec \
util/Makefile util/subst.conf util/gen-tarball \
util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
lib/uuid/Makefile lib/uuid/uuid_types.h \
lib/blkid/Makefile lib/blkid/blkid_types.h \
lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
misc/Makefile ext2ed/Makefile e2fsck/Makefile \
......
/*
* fallocate - utility to use the fallocate system call
*
* Copyright (C) 2008 Red Hat, Inc. All rights reserved.
* Written by Eric Sandeen <sandeen@redhat.com>
*
* cvtnum routine taken from xfsprogs,
* Copyright (c) 2003-2005 Silicon Graphics, Inc.
*
* This program 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.
*
* This program is distributed in the hope that it would be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define _LARGEFILE_SOURCE
#define _LARGEFILE64_SOURCE
#include <sys/stat.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <ctype.h>
// #include <linux/falloc.h>
#define FALLOC_FL_KEEP_SIZE 0x01
#define FALLOC_FL_PUNCH_HOLE 0x02 /* de-allocates range */
void usage(void)
{
printf("Usage: fallocate [-npt] [-o offset] -l length filename\n");
exit(EXIT_FAILURE);
}
#define EXABYTES(x) ((long long)(x) << 60)
#define PETABYTES(x) ((long long)(x) << 50)
#define TERABYTES(x) ((long long)(x) << 40)
#define GIGABYTES(x) ((long long)(x) << 30)
#define MEGABYTES(x) ((long long)(x) << 20)
#define KILOBYTES(x) ((long long)(x) << 10)
long long
cvtnum(char *s)
{
long long i;
char *sp;
int c;
i = strtoll(s, &sp, 0);
if (i == 0 && sp == s)
return -1LL;
if (*sp == '\0')
return i;
if (sp[1] != '\0')
return -1LL;
c = tolower(*sp);
switch (c) {
case 'k':
return KILOBYTES(i);
case 'm':
return MEGABYTES(i);
case 'g':
return GIGABYTES(i);
case 't':
return TERABYTES(i);
case 'p':
return PETABYTES(i);
case 'e':
return EXABYTES(i);
}
return -1LL;
}
int main(int argc, char **argv)
{
int fd;
char *fname;
int opt;
loff_t length = -2LL;
loff_t offset = 0;
int falloc_mode = 0;
int error;
int tflag = 0;
while ((opt = getopt(argc, argv, "npl:o:t")) != -1) {
switch(opt) {
case 'n':
/* do not change filesize */
falloc_mode = FALLOC_FL_KEEP_SIZE;
break;
case 'p':
/* punch mode */
falloc_mode = (FALLOC_FL_PUNCH_HOLE |
FALLOC_FL_KEEP_SIZE);
break;
case 'l':
length = cvtnum(optarg);
break;
case 'o':
offset = cvtnum(optarg);
break;
case 't':
tflag++;
break;
default:
usage();
}
}
if (length == -2LL) {
printf("Error: no length argument specified\n");
usage();
}
if (length <= 0) {
printf("Error: invalid length value specified\n");
usage();
}
if (offset < 0) {
printf("Error: invalid offset value specified\n");
usage();
}
if (tflag && (falloc_mode & FALLOC_FL_KEEP_SIZE)) {
printf("-n and -t options incompatible\n");
usage();
}
if (tflag && offset) {
printf("-n and -o options incompatible\n");
usage();
}
if (optind == argc) {
printf("Error: no filename specified\n");
usage();
}
fname = argv[optind++];
/* Should we create the file if it doesn't already exist? */
fd = open(fname, O_WRONLY|O_LARGEFILE);
if (fd < 0) {
perror("Error opening file");
exit(EXIT_FAILURE);
}
if (tflag)
error = ftruncate(fd, length);
else
error = syscall(SYS_fallocate, fd, falloc_mode, offset, length);
if (error < 0) {
perror("fallocate failed");
exit(EXIT_FAILURE);
}
close(fd);
return 0;
}
#!/bin/sh
#
# This script uses debugfs command to populate the ext2/3/4 filesystem
# from a given directory.
#
do_usage () {
cat << _EOF
Usage: populate-extfs.sh <source> <device>
Create an ext2/ext3/ext4 filesystem from a directory or file
source: The source directory or file
device: The target device
_EOF
exit 1
}
[ $# -ne 2 ] && do_usage
SRCDIR=${1%%/}
DEVICE=$2
# Find where is the debugfs command if not found in the env.
if [ -z "$DEBUGFS" ]; then
CONTRIB_DIR=$(dirname $(readlink -f $0))
DEBUGFS="$CONTRIB_DIR/../debugfs/debugfs"
fi
{
CWD="/"
find $SRCDIR | while read FILE; do
TGT="${FILE##*/}"
DIR="${FILE#$SRCDIR}"
DIR="${DIR%$TGT}"
# Skip the root dir
[ ! -z "$DIR" ] || continue
[ ! -z "$TGT" ] || continue
if [ "$DIR" != "$CWD" ]; then
echo "cd $DIR"
CWD="$DIR"
fi
# Only stat once since stat is a time consuming command
STAT=$(stat -c "TYPE=\"%F\";DEVNO=\"0x%t 0x%T\";MODE=\"%f\";U=\"%u\";G=\"%g\"" $FILE)
eval $STAT
case $TYPE in
"directory")
echo "mkdir $TGT"
;;
"regular file" | "regular empty file")
echo "write $FILE $TGT"
;;
"symbolic link")
LINK_TGT=$(readlink $FILE)
echo "symlink $TGT $LINK_TGT"
;;
"block special file")
echo "mknod $TGT b $DEVNO"
;;
"character special file")
echo "mknod $TGT c $DEVNO"
;;
"fifo")
echo "mknod $TGT p"
;;
*)
echo "Unknown/unhandled file type '$TYPE' file: $FILE" 1>&2
;;
esac
# Set the file mode
echo "sif $TGT mode 0x$MODE"
# Set uid and gid
echo "sif $TGT uid $U"
echo "sif $TGT gid $G"
done
# Handle the hard links.
# Save the hard links to a file, use the inode number as the filename, for example:
# If a and b's inode number is 6775928, save a and b to /tmp/tmp.VrCwHh5gdt/6775928.
INODE_DIR=`mktemp -d` || exit 1
for i in `find $SRCDIR -type f -links +1 -printf 'INODE=%i###FN=%p\n'`; do
eval `echo $i | sed 's$###$ $'`
echo ${FN#$SRCDIR} >>$INODE_DIR/$INODE
done
# Use the debugfs' ln and "sif links_count" to handle them.
for i in `ls $INODE_DIR`; do
# The link source
SRC=`head -1 $INODE_DIR/$i`
# Remove the files and link them again except the first one
for TGT in `sed -n -e '1!p' $INODE_DIR/$i`; do
echo "rm $TGT"
echo "ln $SRC $TGT"
done
LN_CNT=`cat $INODE_DIR/$i | wc -l`
# Set the links count
echo "sif $SRC links_count $LN_CNT"
done
rm -fr $INODE_DIR
} | $DEBUGFS -w -f - $DEVICE
/*
* readdir accelerator
*
* (C) Copyright 2003, 2004, 2008 by Theodore Ts'o.
*
* 2008-06-08 Modified by Ross Boylan <RossBoylan stanfordalumni org>
* Added support for readdir_r and readdir64_r calls. Note
* this has not been tested on anything other than GNU/Linux i386,
* and that the regular readdir wrapper will take slightly more
* space than Ted's original since it now includes a lock.
*
* Compile using the command:
*
* gcc -o spd_readdir.so -shared -fpic spd_readdir.c -ldl
*
* Use it by setting the LD_PRELOAD environment variable:
*
* export LD_PRELOAD=/usr/local/sbin/spd_readdir.so
*
* %Begin-Header%
* This file may be redistributed under the terms of the GNU Public
* License.
* %End-Header%
*
*/
#define ALLOC_STEPSIZE 100
#define MAX_DIRSIZE 0
#define DEBUG
/* Util we autoconfiscate spd_readdir... */
#define HAVE___SECURE_GETENV 1
#define HAVE_PRCTL 1
#define HAVE_SYS_PRCTL_H 1
#ifdef DEBUG
#define DEBUG_DIR(x) {if (do_debug) { x; }}
#else
#define DEBUG_DIR(x)
#endif
#define _GNU_SOURCE
#define __USE_LARGEFILE64
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include <errno.h>
#include <dlfcn.h>
#ifdef HAVE_SYS_PRCTL_H
#include <sys/prctl.h>
#else
#define PR_GET_DUMPABLE 3
#endif
#include <pthread.h>
struct dirent_s {
unsigned long long d_ino;
long long d_off;
unsigned short int d_reclen;
unsigned char d_type;
char *d_name;
};
struct dir_s {
DIR *dir;
pthread_mutex_t lock; /* Mutex lock for this structure. */
int num;
int max;
struct dirent_s *dp;
int pos;
int direct;
struct dirent ret_dir;
struct dirent64 ret_dir64;
};
static int (*real_closedir)(DIR *dir) = 0;
static DIR *(*real_opendir)(const char *name) = 0;
static DIR *(*real_fdopendir)(int fd) = 0;
static void *(*real_rewinddir)(DIR *dirp) = 0;
static struct dirent *(*real_readdir)(DIR *dir) = 0;
static int (*real_readdir_r)(DIR *dir, struct dirent *entry,
struct dirent **result) = 0;
static struct dirent64 *(*real_readdir64)(DIR *dir) = 0;
static int (*real_readdir64_r)(DIR *dir, struct dirent64 *entry,
struct dirent64 **result) = 0;
static off_t (*real_telldir)(DIR *dir) = 0;
static void (*real_seekdir)(DIR *dir, off_t offset) = 0;
static int (*real_dirfd)(DIR *dir) = 0;
static unsigned long max_dirsize = MAX_DIRSIZE;
static int num_open = 0;
#ifdef DEBUG
static int do_debug = 0;
#endif
static char *safe_getenv(const char *arg)
{
if ((getuid() != geteuid()) || (getgid() != getegid()))
return NULL;
#if HAVE_PRCTL
if (prctl(PR_GET_DUMPABLE, 0, 0, 0, 0) == 0)
return NULL;
#else
#if (defined(linux) && defined(SYS_prctl))
if (syscall(SYS_prctl, PR_GET_DUMPABLE, 0, 0, 0, 0) == 0)
return NULL;
#endif
#endif
#if HAVE___SECURE_GETENV
return __secure_getenv(arg);
#else
return getenv(arg);
#endif
}
static void setup_ptr()
{
char *cp;
real_opendir = dlsym(RTLD_NEXT, "opendir");
real_fdopendir = dlsym(RTLD_NEXT, "fdopendir");
real_closedir = dlsym(RTLD_NEXT, "closedir");
real_rewinddir = dlsym(RTLD_NEXT, "rewinddir");
real_readdir = dlsym(RTLD_NEXT, "readdir");
real_readdir_r = dlsym(RTLD_NEXT, "readdir_r");
real_readdir64 = dlsym(RTLD_NEXT, "readdir64");
real_readdir64_r = dlsym(RTLD_NEXT, "readdir64_r");
real_telldir = dlsym(RTLD_NEXT, "telldir");
real_seekdir = dlsym(RTLD_NEXT, "seekdir");
real_dirfd = dlsym(RTLD_NEXT, "dirfd");
if ((cp = safe_getenv("SPD_READDIR_MAX_SIZE")) != NULL) {
max_dirsize = atol(cp);
}
#ifdef DEBUG
if (safe_getenv("SPD_READDIR_DEBUG")) {
printf("initialized!\n");
do_debug++;
}
#endif
}
static void free_cached_dir(struct dir_s *dirstruct)
{
int i;
pthread_mutex_destroy(&(dirstruct->lock));
if (!dirstruct->dp)
return;
for (i=0; i < dirstruct->num; i++) {
free(dirstruct->dp[i].d_name);
}
free(dirstruct->dp);
dirstruct->dp = 0;
dirstruct->max = dirstruct->num = 0;
}
static int ino_cmp(const void *a, const void *b)
{
const struct dirent_s *ds_a = (const struct dirent_s *) a;
const struct dirent_s *ds_b = (const struct dirent_s *) b;
ino_t i_a, i_b;
i_a = ds_a->d_ino;
i_b = ds_b->d_ino;
if (ds_a->d_name[0] == '.') {
if (ds_a->d_name[1] == 0)
i_a = 0;
else if ((ds_a->d_name[1] == '.') && (ds_a->d_name[2] == 0))
i_a = 1;
}
if (ds_b->d_name[0] == '.') {
if (ds_b->d_name[1] == 0)
i_b = 0;
else if ((ds_b->d_name[1] == '.') && (ds_b->d_name[2] == 0))
i_b = 1;
}
return (i_a - i_b);
}
static struct dir_s *alloc_dirstruct(DIR *dir)
{
struct dir_s *dirstruct;
static pthread_mutexattr_t mutexattr;
mutexattr.__align = PTHREAD_MUTEX_RECURSIVE;
dirstruct = malloc(sizeof(struct dir_s));
if (dirstruct)
memset(dirstruct, 0, sizeof(struct dir_s));
dirstruct->dir = dir;
pthread_mutex_init(&(dirstruct->lock), &mutexattr);
return dirstruct;
}
static void cache_dirstruct(struct dir_s *dirstruct)
{
struct dirent_s *ds, *dnew;
struct dirent64 *d;
while ((d = (*real_readdir64)(dirstruct->dir)) != NULL) {
if (dirstruct->num >= dirstruct->max) {
dirstruct->max += ALLOC_STEPSIZE;
DEBUG_DIR(printf("Reallocating to size %d\n",
dirstruct->max));
dnew = realloc(dirstruct->dp,
dirstruct->max * sizeof(struct dir_s));
if (!dnew)
goto nomem;
dirstruct->dp = dnew;
}
ds = &dirstruct->dp[dirstruct->num++];
ds->d_ino = d->d_ino;
ds->d_off = d->d_off;
ds->d_reclen = d->d_reclen;
ds->d_type = d->d_type;
if ((ds->d_name = malloc(strlen(d->d_name)+1)) == NULL) {
dirstruct->num--;
goto nomem;
}
strcpy(ds->d_name, d->d_name);
DEBUG_DIR(printf("readdir: %lu %s\n",
(unsigned long) d->d_ino, d->d_name));
}
qsort(dirstruct->dp, dirstruct->num, sizeof(struct dirent_s), ino_cmp);
return;
nomem:
DEBUG_DIR(printf("No memory, backing off to direct readdir\n"));
free_cached_dir(dirstruct);
dirstruct->direct = 1;
}
DIR *opendir(const char *name)
{
DIR *dir;
struct dir_s *dirstruct;
struct stat st;
if (!real_opendir)
setup_ptr();
DEBUG_DIR(printf("Opendir(%s) (%d open)\n", name, num_open++));
dir = (*real_opendir)(name);
if (!dir)
return NULL;
dirstruct = alloc_dirstruct(dir);
if (!dirstruct) {
(*real_closedir)(dir);
errno = -ENOMEM;
return NULL;
}
if (max_dirsize && (stat(name, &st) == 0) &&
(st.st_size > max_dirsize)) {
DEBUG_DIR(printf("Directory size %ld, using direct readdir\n",
st.st_size));
dirstruct->direct = 1;
return (DIR *) dirstruct;
}
cache_dirstruct(dirstruct);
return ((DIR *) dirstruct);
}
DIR *fdopendir(int fd)
{
DIR *dir;
struct dir_s *dirstruct;
struct stat st;
if (!real_fdopendir)
setup_ptr();
DEBUG_DIR(printf("fdopendir(%d) (%d open)\n", fd, num_open++));
dir = (*real_fdopendir)(fd);
if (!dir)
return NULL;
dirstruct = alloc_dirstruct(dir);
if (!dirstruct) {
(*real_closedir)(dir);
errno = -ENOMEM;
return NULL;
}
if (max_dirsize && (fstat(fd, &st) == 0) &&
(st.st_size > max_dirsize)) {
DEBUG_DIR(printf("Directory size %ld, using direct readdir\n",
st.st_size));
dirstruct->dir = dir;
dirstruct->direct = 1;
return (DIR *) dirstruct;
}
cache_dirstruct(dirstruct);
return ((DIR *) dirstruct);
}
int closedir(DIR *dir)
{
struct dir_s *dirstruct = (struct dir_s *) dir;
DEBUG_DIR(printf("Closedir (%d open)\n", --num_open));
if (dirstruct->dir)
(*real_closedir)(dirstruct->dir);
free_cached_dir(dirstruct);
free(dirstruct);
return 0;
}
struct dirent *readdir(DIR *dir)
{
struct dir_s *dirstruct = (struct dir_s *) dir;
struct dirent_s *ds;
if (dirstruct->direct)
return (*real_readdir)(dirstruct->dir);
if (dirstruct->pos >= dirstruct->num)
return NULL;
ds = &dirstruct->dp[dirstruct->pos++];
dirstruct->ret_dir.d_ino = ds->d_ino;
dirstruct->ret_dir.d_off = ds->d_off;
dirstruct->ret_dir.d_reclen = ds->d_reclen;
dirstruct->ret_dir.d_type = ds->d_type;
strncpy(dirstruct->ret_dir.d_name, ds->d_name,
sizeof(dirstruct->ret_dir.d_name));
return (&dirstruct->ret_dir);
}
int readdir_r(DIR *dir, struct dirent *entry, struct dirent **result)
{
struct dir_s *dirstruct = (struct dir_s *) dir;
struct dirent_s *ds;
if (dirstruct->direct)
return (*real_readdir_r)(dirstruct->dir, entry, result);
pthread_mutex_lock(&(dirstruct->lock));
if (dirstruct->pos >= dirstruct->num) {
*result = NULL;
} else {
ds = &dirstruct->dp[dirstruct->pos++];
entry->d_ino = ds->d_ino;
entry->d_off = ds->d_off;
entry->d_reclen = ds->d_reclen;
entry->d_type = ds->d_type;
strncpy(entry->d_name, ds->d_name, sizeof(entry->d_name));
*result = entry;
}
pthread_mutex_unlock(&(dirstruct->lock));
return 0;
}
struct dirent64 *readdir64(DIR *dir)
{
struct dir_s *dirstruct = (struct dir_s *) dir;
struct dirent_s *ds;
if (dirstruct->direct)
return (*real_readdir64)(dirstruct->dir);
if (dirstruct->pos >= dirstruct->num)
return NULL;
ds = &dirstruct->dp[dirstruct->pos++];
dirstruct->ret_dir64.d_ino = ds->d_ino;
dirstruct->ret_dir64.d_off = ds->d_off;
dirstruct->ret_dir64.d_reclen = ds->d_reclen;
dirstruct->ret_dir64.d_type = ds->d_type;
strncpy(dirstruct->ret_dir64.d_name, ds->d_name,
sizeof(dirstruct->ret_dir64.d_name));
return (&dirstruct->ret_dir64);
}
int readdir64_r (DIR *__restrict dir,
struct dirent64 *__restrict entry,
struct dirent64 **__restrict result)
{
struct dir_s *dirstruct = (struct dir_s *) dir;
struct dirent_s *ds;
if (dirstruct->direct)
return (*real_readdir64_r)(dir, entry, result);
pthread_mutex_lock(&(dirstruct->lock));
if (dirstruct->pos >= dirstruct->num) {
*result = NULL;
} else {
ds = &dirstruct->dp[dirstruct->pos++];
entry->d_ino = ds->d_ino;
entry->d_off = ds->d_off;
entry->d_reclen = ds->d_reclen;
entry->d_type = ds->d_type;
strncpy(entry->d_name, ds->d_name,
sizeof(entry->d_name));
*result = entry;
}
pthread_mutex_unlock(&(dirstruct->lock));
return 0;
}
off_t telldir(DIR *dir)
{
struct dir_s *dirstruct = (struct dir_s *) dir;
if (dirstruct->direct)
return (*real_telldir)(dirstruct->dir);
return ((off_t) dirstruct->pos);
}
void seekdir(DIR *dir, off_t offset)
{
struct dir_s *dirstruct = (struct dir_s *) dir;
if (dirstruct->direct) {
(*real_seekdir)(dirstruct->dir, offset);
return;
}
dirstruct->pos = offset;
}
void rewinddir(DIR *dir)
{
struct dir_s *dirstruct = (struct dir_s *) dir;
(*real_rewinddir)(dirstruct->dir);
if (dirstruct->direct)
return;
pthread_mutex_lock(&(dirstruct->lock));
dirstruct->pos = 0;
free_cached_dir(dirstruct);
cache_dirstruct(dirstruct);
pthread_mutex_unlock(&(dirstruct->lock));
}
int dirfd(DIR *dir)
{
struct dir_s *dirstruct = (struct dir_s *) dir;
int fd = (*real_dirfd)(dirstruct->dir);
DEBUG_DIR(printf("dirfd %d, %p\n", fd, real_dirfd));
return fd;
}
This diff is collapsed.
......@@ -8,5 +8,5 @@ Abstract: A library, and associated utilities,
Section: Programming
Format: HTML
Index: /usr/share/doc/comerr-dev/html-info/com_err_toc.html
Index: /usr/share/doc/comerr-dev/html-info/com_err.html
Files: /usr/share/doc/comerr-dev/html-info/*.html
usr/lib/libcom_err.a
usr/lib/libcom_err.so
usr/lib/*/libcom_err.a
usr/lib/*/libcom_err.so
usr/include/et/*
usr/include/com_err.h
usr/share/man/man1/compile_et*
usr/share/man/man3/com_err.3*
usr/bin/compile_et
usr/share/et/*
usr/lib/pkgconfig/com_err.pc
usr/lib/*/pkgconfig/com_err.pc
define(MULTIARCH_HEADERS,ifdef(`DO_MULTIARCH',
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends},REMOVE_ME))dnl
define(UTIL_LINUX_NG_DEFINES,
ifdef(`UTIL_LINUX_NG', ``libblkid-dev (>= 2.16), uuid-dev (>= 2.16),''))dnl
define(DIETLIBC_DEFINES,
ifdef(`DIETLIBC', ``dietlibc-dev (>> 0.30) [alpha amd64 arm hppa i386 ia64 powerpc ppc64 s390 sparc],''))dnl
Source: e2fsprogs
Section: admin
Priority: required
Maintainer: Theodore Y. Ts'o <tytso@mit.edu>
ifdef(`UTIL_LINUX_NG',
``Build-Depends: texi2html (>= 1.76), gettext, texinfo, dc, pkg-config, dietlibc-dev (>> 0.30) [alpha amd64 arm hppa i386 ia64 powerpc ppc64 s390 sparc], debhelper (>= 7.0), m4, libblkid-dev (>= 2.16), uuid-dev (>= 2.16)
'',
``Build-Depends: texi2html (>= 1.76), gettext, texinfo, dc, pkg-config, dietlibc-dev (>> 0.30) [alpha amd64 arm hppa i386 ia64 powerpc ppc64 s390 sparc], debhelper (>= 7.0), m4
'')dnl
Standards-Version: 3.8.4
Build-Depends: gettext, texinfo, pkg-config, DIETLIBC_DEFINES gcc-multilib [mips mipsel], debhelper (>= 7.0), UTIL_LINUX_NG_DEFINES m4
Standards-Version: 3.9.5
Homepage: http://e2fsprogs.sourceforge.net
ifdef(`E2FSCK_STATIC',``
Package: e2fsck-static
Priority: optional
Depends: ${shlibs:Depends}, ${misc:Depends}
......@@ -24,6 +28,7 @@ Description: statically-linked version of the ext2/ext3/ext4 filesystem checker
.
You may want to install a statically-linked shell as well, to be able
to run this program if something like your C library gets corrupted.
'')dnl
Package: libcomerr2
Section: libs
......@@ -31,6 +36,7 @@ Provides: libcomerr-kth-compat
Depends: ${shlibs:Depends}, ${misc:Depends}
Replaces: e2fsprogs (<< 1.34-1)
Architecture: any
MULTIARCH_HEADERS
Description: common error description library
libcomerr is an attempt to present a common error-handling mechanism to
manipulate the most common form of error code in a fashion that does not
......@@ -55,10 +61,11 @@ Section: libs
Depends: libcomerr2, ${shlibs:Depends}, ${misc:Depends}
Replaces: e2fsprogs (<< 1.34-1)
Architecture: any
MULTIARCH_HEADERS
Description: command-line interface parsing library
This package includes a tool that parses a command table to generate
a simple command-line interface parser, the include files needed to
compile and use it, and the static libs.
libss provides a simple command-line interface parser which will
accept input from the user, parse the command into an argv argument
vector, and then dispatch it to a handler function.
.
It was originally inspired by the Multics SubSystem library.
......@@ -82,6 +89,7 @@ Depends: passwd, ${shlibs:Depends}, ${misc:Depends}
Recommends: uuid-runtime
Replaces: e2fsprogs (<< 1.34-1)
Architecture: any
MULTIARCH_HEADERS
Description: Universally Unique ID library
The libuuid library generates and parses 128-bit universally unique
ids (UUIDs). A UUID is an identifier that is unique across both
......@@ -200,6 +208,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}
Replaces: e2fsprogs (<< 1.34-1)
Provides: libext2fs2, libe2p2
Architecture: any
MULTIARCH_HEADERS
Description: ext2/ext3/ext4 file system libraries
The ext2, ext3 and ext4 file systems are successors of the original ext
("extended") file system. They are the main file system types used for
......@@ -233,6 +242,7 @@ ifdef(`UTIL_LINUX_NG',
'',
``Pre-Depends: ${shlibs:Depends}, ${misc:Depends}
'')dnl
Multi-Arch: foreign
Suggests: gpart, parted, e2fsck-static
Conflicts: dump (<< 0.4b4-4), quota (<< 1.55-8.1), initscripts (<< 2.85-4), sysvinit (<< 2.85-4)
Replaces: hurd (<= 20040301-1), libblkid1 (<< 1.38+1.39-WIP-2005.12.10-2), libuuid1 (<< 1.38+1.39-WIP-2005.12.10-2)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment