diff --git a/.gitignore b/.gitignore index 6e56e472..0d8683a7 100644 --- a/.gitignore +++ b/.gitignore @@ -13,11 +13,9 @@ Makefile *.o *.a *.orig -*.patch *.pc *.rej *.swp -00[0-9][1-9]*.patch MCONFIG asm_types.h config.log @@ -219,3 +217,4 @@ util/install-symlink util/subst util/subst.conf Meta +e2fsprogs diff --git a/.missing-copyright b/.missing-copyright deleted file mode 100644 index d99cb32e..00000000 --- a/.missing-copyright +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -find . -type f \! -name \*~ \! -exec grep -q Begin-Header \{\} \; -print \ - | grep -v ^./build diff --git a/.release-checklist b/.release-checklist deleted file mode 100644 index 276dd8ab..00000000 --- a/.release-checklist +++ /dev/null @@ -1,19 +0,0 @@ -1) Do "make depend" if necessary - -2) "make check"!!! - -3) Use "git log" to assemble release notes and update RELEASE-NOTES symlink. - -4) Update files which contain version information - version.h - README - e2fsprogs.lsm - e2fsprogs.spec - doc/libext2fs.texinfo (three places) - -5) Run "(cd po; make e2fsprogs.pot-update)" to update the translation template. - -6) Make source tarfile - -7) Adjust sizes in e2fsprogs-VER.lsm; rebuild source files; regenerate source tarfile - diff --git a/0001-e2fsprogs-set-hugefile-from-4T-to-1T-in-hugefile-tes.patch b/0001-e2fsprogs-set-hugefile-from-4T-to-1T-in-hugefile-tes.patch new file mode 100644 index 00000000..402f2bc8 --- /dev/null +++ b/0001-e2fsprogs-set-hugefile-from-4T-to-1T-in-hugefile-tes.patch @@ -0,0 +1,63 @@ +From 851e3f835614371ab4e21c36f2ddcb6f0312a8bb Mon Sep 17 00:00:00 2001 +From: ZhiqiangLiu +Date: Wed, 15 Jul 2020 21:20:25 +0800 +Subject: [PATCH] e2fsprogs: set hugefile from 4T to 1T in hugefile test + +When execing make check, 4T is too large for CI, +so set hugefile from 4T to 1T in hugefile test. + +Signed-off-by: Zhiqiang Liu +--- + tests/m_hugefile/expect | 14 +++++++------- + tests/m_hugefile/script | 4 ++-- + 2 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/tests/m_hugefile/expect b/tests/m_hugefile/expect +index ee33fe5..170387a 100644 +--- a/tests/m_hugefile/expect ++++ b/tests/m_hugefile/expect +@@ -1,19 +1,19 @@ +-mke2fs -F -T hugefile test.img 4T +-Creating filesystem with 1073741824 4k blocks and 1048576 inodes ++mke2fs -F -T hugefile test.img 1T ++Creating filesystem with 268435456 4k blocks and 262144 inodes + Superblock backups stored on blocks: + + Allocating group tables: done +-Writing inode tables: done ++Writing inode tables: done + Creating 1 huge file(s) : done +-Writing superblocks and filesystem accounting information: done ++Writing superblocks and filesystem accounting information: done + + Pass 1: Checking inodes, blocks, and sizes + Pass 2: Checking directory structure + Pass 3: Checking directory connectivity + Pass 4: Checking reference counts + Pass 5: Checking group summary information +-test_filesys: 13/1048576 files (0.0% non-contiguous), 1073709417/1073741824 blocks ++test_filesys: 13/262144 files (0.0% non-contiguous), 268394593/268435456 blocks + Exit status is 0 + debugfs -R "extents /store/big-data" test.img +-Last logical block: 1073610751 +-Last physical block: 1073741823 ++Last logical block: 268369919 ++Last physical block: 268435455 +diff --git a/tests/m_hugefile/script b/tests/m_hugefile/script +index 1abdb7d..e576a21 100644 +--- a/tests/m_hugefile/script ++++ b/tests/m_hugefile/script +@@ -35,8 +35,8 @@ cat > $CONF << ENDL + } + ENDL + +-echo "mke2fs -F -T hugefile test.img 4T" > $OUT +-MKE2FS_CONFIG=$CONF $MKE2FS -F -T hugefile $TMPFILE 4T >> $OUT 2>&1 ++echo "mke2fs -F -T hugefile test.img 1T" > $OUT ++MKE2FS_CONFIG=$CONF $MKE2FS -F -T hugefile $TMPFILE 1T >> $OUT 2>&1 + rm -f $CONF + + # check the file system if we get this far, we succeeded... +-- +2.21.1 (Apple Git-122.3) + diff --git a/0002-libss-add-newer-libreadline.so.8-to-dlopen-path.patch b/0002-libss-add-newer-libreadline.so.8-to-dlopen-path.patch new file mode 100644 index 00000000..e45b85aa --- /dev/null +++ b/0002-libss-add-newer-libreadline.so.8-to-dlopen-path.patch @@ -0,0 +1,30 @@ +From 3d967e53033c85ad5d3af1a42efb2c4f7501c356 Mon Sep 17 00:00:00 2001 +From: Jan Kara +Date: Fri, 20 Aug 2021 18:15:02 +0200 +Subject: [PATCH] libss: add newer libreadline.so.8 to dlopen path + +OpenSUSE Tumbleweed now has libreadline.so.8. Add it to the list of libs +to look for. + +Signed-off-by: Jan Kara +Signed-off-by: Theodore Ts'o +--- + lib/ss/get_readline.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/ss/get_readline.c b/lib/ss/get_readline.c +index 11c72b3..aa16157 100644 +--- a/lib/ss/get_readline.c ++++ b/lib/ss/get_readline.c +@@ -37,7 +37,7 @@ static void ss_release_readline(ss_data *info) + #endif + + /* Libraries we will try to use for readline/editline functionality */ +-#define DEFAULT_LIBPATH "libreadline.so.7:libreadline.so.6:libreadline.so.5:libreadline.so.4:libreadline.so:libedit.so.2:libedit.so:libeditline.so.0:libeditline.so" ++#define DEFAULT_LIBPATH "libreadline.so.8:libreadline.so.7:libreadline.so.6:libreadline.so.5:libreadline.so.4:libreadline.so:libedit.so.2:libedit.so:libeditline.so.0:libeditline.so" + + #ifdef HAVE_DLOPEN + void ss_get_readline(int sci_idx) +-- +2.14.3 (Apple Git-98) + diff --git a/0003-tests-update-expect-files-for-f_mmp_garbage.patch b/0003-tests-update-expect-files-for-f_mmp_garbage.patch new file mode 100644 index 00000000..cd6a57a7 --- /dev/null +++ b/0003-tests-update-expect-files-for-f_mmp_garbage.patch @@ -0,0 +1,41 @@ +From 8b2beb24819a976f575e8cec04e3fe6ca8851017 Mon Sep 17 00:00:00 2001 +From: Lukas Czerner +Date: Tue, 24 Aug 2021 14:10:19 +0200 +Subject: [PATCH] tests: update expect files for f_mmp_garbage + +Update expect file for f_mmp_garbage test to work correctly with the +new default 256 inode size. + +Fixes: d730be5ceeba ("tests: update mke2fs.conf to create 256 byte inodes by default") +Signed-off-by: Lukas Czerner +Signed-off-by: Theodore Ts'o +--- + tests/f_mmp_garbage/expect.1 | 2 +- + tests/f_mmp_garbage/expect.2 | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/f_mmp_garbage/expect.1 b/tests/f_mmp_garbage/expect.1 +index a8add10..4134eae 100644 +--- a/tests/f_mmp_garbage/expect.1 ++++ b/tests/f_mmp_garbage/expect.1 +@@ -5,5 +5,5 @@ Pass 2: Checking directory structure + Pass 3: Checking directory connectivity + Pass 4: Checking reference counts + Pass 5: Checking group summary information +-test_filesys: 11/64 files (0.0% non-contiguous), 13/100 blocks ++test_filesys: 11/64 files (0.0% non-contiguous), 15/100 blocks + Exit status is 0 +diff --git a/tests/f_mmp_garbage/expect.2 b/tests/f_mmp_garbage/expect.2 +index 6630002..3bca182 100644 +--- a/tests/f_mmp_garbage/expect.2 ++++ b/tests/f_mmp_garbage/expect.2 +@@ -3,5 +3,5 @@ Pass 2: Checking directory structure + Pass 3: Checking directory connectivity + Pass 4: Checking reference counts + Pass 5: Checking group summary information +-test_filesys: 11/64 files (0.0% non-contiguous), 13/100 blocks ++test_filesys: 11/64 files (0.0% non-contiguous), 15/100 blocks + Exit status is 0 +-- +1.8.3.1 + diff --git a/0004-tests-update-expect-files-for-f_large_dir-and-f_larg.patch b/0004-tests-update-expect-files-for-f_large_dir-and-f_larg.patch new file mode 100644 index 00000000..56610bab --- /dev/null +++ b/0004-tests-update-expect-files-for-f_large_dir-and-f_larg.patch @@ -0,0 +1,38 @@ +From da33289073de254ab4bacb80b1b83cf9d27c76ea Mon Sep 17 00:00:00 2001 +From: Lukas Czerner +Date: Tue, 24 Aug 2021 14:10:20 +0200 +Subject: [PATCH] tests: update expect files for f_large_dir and + f_large_dir_csum + +Update expect files for f_large_dir and f_large_dir_csum tests to +include the warning about missing y2038 support with 128-byte inodes. + +Fixes: a23b50cd ("mke2fs: warn about missing y2038 support when formatting fresh ext4 fs") +Signed-off-by: Lukas Czerner +Signed-off-by: Theodore Ts'o +--- + tests/f_large_dir/expect | 1 + + tests/f_large_dir_csum/expect | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/tests/f_large_dir/expect b/tests/f_large_dir/expect +index 028234c..495ea85 100644 +--- a/tests/f_large_dir/expect ++++ b/tests/f_large_dir/expect +@@ -1,3 +1,4 @@ ++128-byte inodes cannot handle dates beyond 2038 and are deprecated + Creating filesystem with 108341 1k blocks and 65072 inodes + Superblock backups stored on blocks: + 8193, 24577, 40961, 57345, 73729 +diff --git a/tests/f_large_dir_csum/expect b/tests/f_large_dir_csum/expect +index aa9f33f..44770f7 100644 +--- a/tests/f_large_dir_csum/expect ++++ b/tests/f_large_dir_csum/expect +@@ -1,3 +1,4 @@ ++128-byte inodes cannot handle dates beyond 2038 and are deprecated + Creating filesystem with 31002 1k blocks and 64 inodes + Superblock backups stored on blocks: + 8193, 24577 +-- +1.8.3.1 + diff --git a/0005-resize2fs-resize2fs-disk-hardlinks-will-be-error.patch b/0005-resize2fs-resize2fs-disk-hardlinks-will-be-error.patch new file mode 100644 index 00000000..4c34694b --- /dev/null +++ b/0005-resize2fs-resize2fs-disk-hardlinks-will-be-error.patch @@ -0,0 +1,59 @@ +From 228e9f0567eebd4597bd1771fc4bf3650190cf3e Mon Sep 17 00:00:00 2001 +From: zhanchengbin +Date: Thu, 24 Feb 2022 10:06:30 +0800 +Subject: [PATCH] resize2fs: resize2fs disk hardlinks will be error + +Resize2fs disk hardlinks which mounting after the same name as tmpfs + filesystem it will be error. The items in /proc/mounts are traversed, +when you get to tmpfs, file!=mnt->mnt_fsname, therefore, the +stat(mnt->mnt_fsname, &st_buf) branch is used, however, the values of + file_rdev and st_buf.st_rdev are the same, As a result, the system +mistakenly considers that disk is mounted to /root/tmp. As a result +, resize2fs fails. + +example: +dev_name="/dev/sdc" (ps: a disk in you self) +mkdir /root/tmp +mkdir /root/mnt +mkfs.ext4 -F -b 1024 -E "resize=10000000" "${dev_name}" 32768 +mount -t tmpfs "${dev_name}" /root/tmp +mount "${dev_name}" /root/tmp +ln "${dev_name}" "${dev_name}"-ln +resize2fs "${dev_name}"-ln 6G + +Signed-off-by: zhanchengbin +Signed-off-by: guiyao +--- + lib/ext2fs/ismounted.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/lib/ext2fs/ismounted.c b/lib/ext2fs/ismounted.c +index aee7d72..463a82a 100644 +--- a/lib/ext2fs/ismounted.c ++++ b/lib/ext2fs/ismounted.c +@@ -98,6 +98,7 @@ static errcode_t check_mntent_file(const char *mtab_file, const char *file, + { + struct mntent *mnt; + struct stat st_buf; ++ struct stat dir_st_buf; + errcode_t retval = 0; + dev_t file_dev=0, file_rdev=0; + ino_t file_ino=0; +@@ -144,8 +145,12 @@ static errcode_t check_mntent_file(const char *mtab_file, const char *file, + if (stat(mnt->mnt_fsname, &st_buf) == 0) { + if (ext2fsP_is_disk_device(st_buf.st_mode)) { + #ifndef __GNU__ +- if (file_rdev && (file_rdev == st_buf.st_rdev)) +- break; ++ if (file_rdev && (file_rdev == st_buf.st_rdev)) { ++ if (stat(mnt->mnt_dir, &dir_st_buf) != 0) ++ continue; ++ if (file_rdev == dir_st_buf.st_dev) ++ break; ++ } + if (check_loop_mounted(mnt->mnt_fsname, + st_buf.st_rdev, file_dev, + file_ino) == 1) +-- +1.8.3.1 + diff --git a/0006-e2fsck-exit-journal-recovery-when-find-EIO-ENOMEM-er.patch b/0006-e2fsck-exit-journal-recovery-when-find-EIO-ENOMEM-er.patch new file mode 100644 index 00000000..86a91841 --- /dev/null +++ b/0006-e2fsck-exit-journal-recovery-when-find-EIO-ENOMEM-er.patch @@ -0,0 +1,51 @@ +From dc4c71c6192f9709a2d833f9aa63d3463da6155a Mon Sep 17 00:00:00 2001 +From: lihaotian +Date: Tue, 15 Dec 2020 11:46:07 +0000 +Subject: [PATCH] e2fsck: exit journal recovery when find EIO, ENOMEM + errors + +jbd2_journal_revocer() may fail when some error occers +such as ENOMEM. However, jsb->s_start is still cleared +by func e2fsck_journal_release(). This may break +consistency between metadata and data in disk. Sometimes, +failure in jbd2_journal_revocer() is temporary but retry +e2fsck will skip the journal recovery when the temporary +problem is fixed. + +To fix this case, we use "fatal_error" instead "goto errout" +when recover journal failed. If journal recovery fails, we +will send error message to user and reserve the recovery +flags to recover the journal when try e2fsck again. + +Fix issue: https://gitee.com/src-openeuler/e2fsprogs/issues/I4RZUT?from=project-issue + +conflict: journal_recover -> jbd2_journal_recover + +Reported-by: Liangyun +Signed-off-by: Haotian Li +Signed-off-by: Zhiqiang Liu +--- + e2fsck/journal.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/e2fsck/journal.c b/e2fsck/journal.c +index e83f3a9..a5f7088 100644 +--- a/e2fsck/journal.c ++++ b/e2fsck/journal.c +@@ -942,6 +942,13 @@ static errcode_t recover_ext3_journal(e2fsck_t ctx) + goto errout; + + retval = -jbd2_journal_recover(journal); ++ if (retval == EIO || retval == ENOMEM || retval == EXT2_ET_NO_MEMORY) { ++ ctx->fs->flags &= ~EXT2_FLAG_VALID; ++ com_err(ctx->program_name, 0, ++ _("Journal recovery failed " ++ "on %s, retval=%d \n"), ctx->device_name, retval); ++ fatal_error(ctx, 0); ++ } + if (retval) + goto errout; + +-- +2.21.1 (Apple Git-122.3) + diff --git a/0007-e2fsck-exit-journal-recovery-when-jounral-superblock.patch b/0007-e2fsck-exit-journal-recovery-when-jounral-superblock.patch new file mode 100644 index 00000000..5008d13c --- /dev/null +++ b/0007-e2fsck-exit-journal-recovery-when-jounral-superblock.patch @@ -0,0 +1,98 @@ +From f923f6ddbd555801f1d6495904de4fefb363fa57 Mon Sep 17 00:00:00 2001 +From: liangyun2 +Date: Sat, 19 Dec 2020 12:05:37 +0800 +Subject: [PATCH] e2fsck: exit journal recovery when jounral superblock fails + to update + +Jounral superblock may be failed to update in e2fsck_journal_release. +But if needs_recovery flag is cleared, e2fsck_check_ext3_journal will be failed. + +To fix this case, we use "fatal_error" when recover journal failed. +So we can reserve the recovery flag to recover the journal when try e2fsck again. + +Fix issue: https://gitee.com/src-openeuler/e2fsprogs/issues/I4S0SD?from=project-issue + +conflict: journal_destroy_revoke -> jbd2_journal_destroy_revoke + journal_destroy_revoke_caches -> jbd2_journal_destroy_revoke_record_cache + jbd2_journal_destroy_revoke_table_cache + JFS_BARRIER -> JBD2_BARRIER + blkdev_issue_flush(kdev, a, b) -> blkdev_issue_flush(kdev) + +Reported-by: Liangyun +Signed-off-by: Haotian Li +Signed-off-by: Zhiqiang Liu +--- + e2fsck/journal.c | 26 ++++++++++++++++++++++++-- + 1 file changed, 24 insertions(+), 2 deletions(-) + +diff --git a/e2fsck/journal.c b/e2fsck/journal.c +index 7081b6e..f4253c0 100644 +--- a/e2fsck/journal.c ++++ b/e2fsck/journal.c +@@ -1444,10 +1444,12 @@ static errcode_t e2fsck_journal_fix_corrupt_super(e2fsck_t ctx, + return 0; + } + +-static void e2fsck_journal_release(e2fsck_t ctx, journal_t *journal, ++static errcode_t e2fsck_journal_release(e2fsck_t ctx, journal_t *journal, + int reset, int drop) + { + journal_superblock_t *jsb; ++ errcode_t err = 0; ++ errcode_t err2; + + if (drop) + mark_buffer_clean(journal->j_sb_buffer); +@@ -1461,6 +1463,16 @@ static void e2fsck_journal_release(e2fsck_t ctx, journal_t *journal, + } + brelse(journal->j_sb_buffer); + ++ if(reset == 1 && drop == 0) { ++ err = sync_blockdev(journal->j_fs_dev); ++ /* Make sure all replayed data is on permanent storage */ ++ if (journal->j_flags & JBD2_BARRIER) { ++ err2 = blkdev_issue_flush(journal->j_fs_dev); ++ if (!err) ++ err = err2; ++ } ++ } ++ + if (ctx->journal_io) { + if (ctx->fs && ctx->fs->io != ctx->journal_io) + io_channel_close(ctx->journal_io); +@@ -1474,6 +1486,8 @@ static void e2fsck_journal_release(e2fsck_t ctx, journal_t *journal, + if (journal->j_fs_dev) + ext2fs_free_mem(&journal->j_fs_dev); + ext2fs_free_mem(&journal); ++ ++ return err; + } + + /* +@@ -1612,6 +1626,7 @@ static errcode_t recover_ext3_journal(e2fsck_t ctx) + struct problem_context pctx; + journal_t *journal; + errcode_t retval; ++ errcode_t recover_retval; + + clear_problem_context(&pctx); + +@@ -1659,7 +1674,14 @@ errout: + jbd2_journal_destroy_revoke(journal); + jbd2_journal_destroy_revoke_record_cache(); + jbd2_journal_destroy_revoke_table_cache(); +- e2fsck_journal_release(ctx, journal, 1, 0); ++ recover_retval = e2fsck_journal_release(ctx, journal, 1, 0); ++ if(recover_retval == -EIO) { ++ ctx->fs->flags &= ~EXT2_FLAG_VALID; ++ com_err(ctx->program_name, 0, ++ _("e2fsck journal release failed " ++ "on %s, retval=%d \n"), ctx->device_name, recover_retval); ++ fatal_error(ctx, 0); ++ } + return retval; + } + +-- +1.8.3.1 + diff --git a/0008-e2fsck-add-env-param-E2FS_UNRELIABLE_IO-to-fi.patch b/0008-e2fsck-add-env-param-E2FS_UNRELIABLE_IO-to-fi.patch new file mode 100644 index 00000000..e64c7fb4 --- /dev/null +++ b/0008-e2fsck-add-env-param-E2FS_UNRELIABLE_IO-to-fi.patch @@ -0,0 +1,41 @@ +From 491c2dea43a9c9f33c5feb9ccd9b91d04a24b6f7 Mon Sep 17 00:00:00 2001 +From: Haotian +Date: Wed, 17 Mar 2021 17:34:14 +0800 +Subject: [PATCH] e2fsck: add env param E2FS_UNRELIABLE_IO to fix + unreliable io case + +Func write_primary_superblock() has two way to wirte disk. One is 1k block, +the other is byte by byte as default. On unreliable IO case such as flaky +network, the byte-by-byte method may lost some data of ext4-superblock. +Then, the superblock may lose consistency and the sb checksum error will +occur. + +We provide the env param E2FS_UNRELIABLE_IO for users to choose if it's +necessary to take 1k block way on writing disk. + +Fix issue:https://gitee.com/src-openeuler/e2fsprogs/issues/I4RZVX?from=project-issue + +Signed-off-by: Haotian Li +Signed-off-by: Zhiqiang Liu +--- + lib/ext2fs/closefs.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/lib/ext2fs/closefs.c b/lib/ext2fs/closefs.c +index 1d4d5b7..1893fb6 100644 +--- a/lib/ext2fs/closefs.c ++++ b/lib/ext2fs/closefs.c +@@ -195,8 +195,9 @@ static errcode_t write_primary_superblock(ext2_filsys fs, + __u16 *old_super, *new_super; + int check_idx, write_idx, size; + errcode_t retval; ++ int is_unreliable_io = getenv("E2FS_UNRELIABLE_IO") ? 1 : 0; + +- if (!fs->io->manager->write_byte || !fs->orig_super) { ++ if (!fs->io->manager->write_byte || !fs->orig_super || is_unreliable_io) { + fallback: + io_channel_set_blksize(fs->io, SUPERBLOCK_OFFSET); + retval = io_channel_write_blk64(fs->io, 1, -SUPERBLOCK_SIZE, +-- +2.21.1 (Apple Git-122.3) + diff --git a/0009-e2mmpstatus.8.in-detele-filesystem-can-be-UUID-or-LA.patch b/0009-e2mmpstatus.8.in-detele-filesystem-can-be-UUID-or-LA.patch new file mode 100644 index 00000000..4a4c53ec --- /dev/null +++ b/0009-e2mmpstatus.8.in-detele-filesystem-can-be-UUID-or-LA.patch @@ -0,0 +1,31 @@ +From 8178197e6c39b2a08c90bcd3685d694115ce9254 Mon Sep 17 00:00:00 2001 +From: Zhiqiang Liu +Date: Tue, 1 Mar 2022 21:46:55 +0800 +Subject: [PATCH] e2mmpstatus.8.in: detele filesystem can be UUID or LABEL in + manpage + +Signed-off-by: zhanchengbin +--- + misc/e2mmpstatus.8.in | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/misc/e2mmpstatus.8.in b/misc/e2mmpstatus.8.in +index c7ed929..07a28ec 100644 +--- a/misc/e2mmpstatus.8.in ++++ b/misc/e2mmpstatus.8.in +@@ -19,11 +19,7 @@ file system with the + feature enabled. The specified + .I file system + can be a device name (e.g. +-.IR /dev/hdc1 ", " /dev/sdb2 ), +-or an ext4 file system label or UUID, for example +-.B UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd +-or +-.BR LABEL=root . ++.IR /dev/hdc1 ", " /dev/sdb2 ). + By default, the + .B e2mmpstatus + program checks whether it is safe to mount the file system without taking +-- +1.8.3.1 + diff --git a/0010-tests-update-expect-file-for-u_direct_io.patch b/0010-tests-update-expect-file-for-u_direct_io.patch new file mode 100644 index 00000000..2f90bf77 --- /dev/null +++ b/0010-tests-update-expect-file-for-u_direct_io.patch @@ -0,0 +1,75 @@ +From 4cda25453f85f06371735b8f55d584e0d38a52bc Mon Sep 17 00:00:00 2001 +From: Theodore Ts'o +Date: Sun, 22 Aug 2021 10:07:15 -0400 +Subject: [PATCH] tests: update expect file for u_direct_io + +The u_direct_io test is normally not run (since it requires root +privileges); as a result, when the mke2fs.conf defaults were changed, +I didn't notice that the expected output for u_direct_io test needed +to be updated. + +Fixes: d730be5ceeba ("tests: update mke2fs.conf to create 256 byte inodes by default" +Signed-off-by: Theodore Ts'o +--- + tests/u_direct_io/expect | 16 +++++++++------- + 1 file changed, 9 insertions(+), 7 deletions(-) + +diff --git a/tests/u_direct_io/expect b/tests/u_direct_io/expect +index b0cdc73..830cbd7 100644 +--- a/tests/u_direct_io/expect ++++ b/tests/u_direct_io/expect +@@ -19,8 +19,8 @@ Filesystem OS type: Linux + Inode count: 32768 + Block count: 32768 + Reserved block count: 1638 +-Overhead clusters: 5131 +-Free blocks: 27631 ++Overhead clusters: 6155 ++Free blocks: 26607 + Free inodes: 32757 + First block: 0 + Block size: 4096 +@@ -29,27 +29,29 @@ Reserved GDT blocks: 7 + Blocks per group: 32768 + Fragments per group: 32768 + Inodes per group: 32768 +-Inode blocks per group: 1024 ++Inode blocks per group: 2048 + Flex block group size: 16 + Mount count: 0 + Check interval: 15552000 (6 months) + Reserved blocks uid: 0 + Reserved blocks gid: 0 + First inode: 11 +-Inode size: 128 ++Inode size: 256 ++Required extra isize: 32 ++Desired extra isize: 32 + Journal inode: 8 + Default directory hash: half_md4 + Journal backup: inode blocks + Directories: 2 + Group 0: block bitmap at 9, inode bitmap at 25, inode table at 41 +- 27631 free blocks, 32757 free inodes, 2 used directories ++ 26607 free blocks, 32757 free inodes, 2 used directories + e2fsck -fn -N test_filesys $LOOP + Pass 1: Checking inodes, blocks, and sizes + Pass 2: Checking directory structure + Pass 3: Checking directory connectivity + Pass 4: Checking reference counts + Pass 5: Checking group summary information +-test_filesys: 11/32768 files (9.1% non-contiguous), 5137/32768 blocks ++test_filesys: 11/32768 files (9.1% non-contiguous), 6161/32768 blocks + Exit status is 0 + e2fsck -fn -N test_filesys $TMPFILE + Pass 1: Checking inodes, blocks, and sizes +@@ -57,5 +59,5 @@ Pass 2: Checking directory structure + Pass 3: Checking directory connectivity + Pass 4: Checking reference counts + Pass 5: Checking group summary information +-test_filesys: 11/32768 files (9.1% non-contiguous), 5137/32768 blocks ++test_filesys: 11/32768 files (9.1% non-contiguous), 6161/32768 blocks + Exit status is 0 +-- +1.8.3.1 + diff --git a/0011-libext2fs-don-t-old-the-CACHE_MTX-while-doing-I-O.patch b/0011-libext2fs-don-t-old-the-CACHE_MTX-while-doing-I-O.patch new file mode 100644 index 00000000..0c71d7ef --- /dev/null +++ b/0011-libext2fs-don-t-old-the-CACHE_MTX-while-doing-I-O.patch @@ -0,0 +1,106 @@ +From 699d448eee4b991acafaae4e4f8222be332d6837 Mon Sep 17 00:00:00 2001 +From: Theodore Ts'o +Date: Thu, 9 Dec 2021 10:55:54 -0500 +Subject: [PATCH] libext2fs: don't old the CACHE_MTX while doing I/O + +A report a deadlock problem caused by I/O errors (caused by e2fsck's +error handler trying to write to a bad block to perform a forced +rewrite) uncovered that we were holding the CACHE_MTX while doing read +operations. This serialized read operations which destroyed the +performance benefits from doing parallel bitmap loading (or the +parallel e2fsck processing under development). + +So restructure the code in unix_read_blk64() so that the read is +always done into the user-provided buffer, and then copied into the +cache afterwards. + +Signed-off-by: Theodore Ts'o +--- + lib/ext2fs/unix_io.c | 38 +++++++++++++------------------------- + 1 file changed, 13 insertions(+), 25 deletions(-) + +diff --git a/lib/ext2fs/unix_io.c b/lib/ext2fs/unix_io.c +index 50ac737..e53db33 100644 +--- a/lib/ext2fs/unix_io.c ++++ b/lib/ext2fs/unix_io.c +@@ -977,8 +977,8 @@ static errcode_t unix_read_blk64(io_channel channel, unsigned long long block, + int count, void *buf) + { + struct unix_private_data *data; +- struct unix_cache *cache, *reuse[READ_DIRECT_SIZE]; +- errcode_t retval = 0; ++ struct unix_cache *cache; ++ errcode_t retval; + char *cp; + int i, j; + +@@ -1005,7 +1005,7 @@ static errcode_t unix_read_blk64(io_channel channel, unsigned long long block, + mutex_lock(data, CACHE_MTX); + while (count > 0) { + /* If it's in the cache, use it! */ +- if ((cache = find_cached_block(data, block, &reuse[0]))) { ++ if ((cache = find_cached_block(data, block, NULL))) { + #ifdef DEBUG + printf("Using cached block %lu\n", block); + #endif +@@ -1015,47 +1015,35 @@ static errcode_t unix_read_blk64(io_channel channel, unsigned long long block, + cp += channel->block_size; + continue; + } +- if (count == 1) { +- /* +- * Special case where we read directly into the +- * cache buffer; important in the O_DIRECT case +- */ +- cache = reuse[0]; +- reuse_cache(channel, data, cache, block); +- if ((retval = raw_read_blk(channel, data, block, 1, +- cache->buf))) { +- cache->in_use = 0; +- break; +- } +- memcpy(cp, cache->buf, channel->block_size); +- retval = 0; +- break; +- } + + /* + * Find the number of uncached blocks so we can do a + * single read request + */ + for (i=1; i < count; i++) +- if (find_cached_block(data, block+i, &reuse[i])) ++ if (find_cached_block(data, block+i, NULL)) + break; + #ifdef DEBUG + printf("Reading %d blocks starting at %lu\n", i, block); + #endif ++ mutex_unlock(data, CACHE_MTX); + if ((retval = raw_read_blk(channel, data, block, i, cp))) +- break; ++ return retval; ++ mutex_lock(data, CACHE_MTX); + + /* Save the results in the cache */ + for (j=0; j < i; j++) { ++ if (!find_cached_block(data, block, &cache)) { ++ reuse_cache(channel, data, cache, block); ++ memcpy(cache->buf, cp, channel->block_size); ++ } + count--; +- cache = reuse[j]; +- reuse_cache(channel, data, cache, block++); +- memcpy(cache->buf, cp, channel->block_size); ++ block++; + cp += channel->block_size; + } + } + mutex_unlock(data, CACHE_MTX); +- return retval; ++ return 0; + #endif /* NO_IO_CACHE */ + } + +-- +1.8.3.1 + diff --git a/0012-tests-skip-m_rootdir_acl-if-selinux-is-not-disabled.patch b/0012-tests-skip-m_rootdir_acl-if-selinux-is-not-disabled.patch new file mode 100644 index 00000000..3ab1d0db --- /dev/null +++ b/0012-tests-skip-m_rootdir_acl-if-selinux-is-not-disabled.patch @@ -0,0 +1,30 @@ +From e71489b24a49899ca016068cbe39ad0576c52eb5 Mon Sep 17 00:00:00 2001 +From: zhanchengbin +Date: Thu, 17 Mar 2022 10:53:18 +0800 +Subject: [PATCH] tests: skip m_rootdir_acl if selinux is not disabled + +Signed-off-by: zhanchengbin +--- + tests/m_rootdir_acl/script | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/tests/m_rootdir_acl/script b/tests/m_rootdir_acl/script +index e81c82c..6b78d3d 100644 +--- a/tests/m_rootdir_acl/script ++++ b/tests/m_rootdir_acl/script +@@ -16,6 +16,12 @@ if [ "$os" = "GNU" ]; then + return 0 + fi + ++selinux=`grep -nRE "^SELINUX=" /etc/selinux/config | awk -F "=" '{print $2}'` ++if [ $selinux != "disabled" ]; then ++ echo "$test_name: $test_description: skipped (selinux is not disabled)" ++ return 0 ++fi ++ + MKFS_DIR=$TMPFILE.dir + OUT=$test_name.log + EXP=$test_dir/expect +-- +1.8.3.1 + diff --git a/1001-image-make.patch b/1001-image-make.patch new file mode 100644 index 00000000..6f9b9673 --- /dev/null +++ b/1001-image-make.patch @@ -0,0 +1,102 @@ +diff --git a/contrib/populate-extfs.sh b/contrib/populate-extfs.sh +index b1d3d1f8cd45bd7d0a09973f7b8b83752a7c166f..173b0a568f3fdbc48b4a17d274fd3a03840f14a9 100755 +--- a/contrib/populate-extfs.sh ++++ b/contrib/populate-extfs.sh +@@ -3,10 +3,13 @@ + # This script uses debugfs command to populate the ext2/3/4 filesystem + # from a given directory. + # ++# Added mode, uid and gid config function by OpenHarmony team. ++export LANG=en_US.UTF-8 ++export LANGUAGE=en_US:en + + do_usage () { + cat << _EOF +-Usage: populate-extfs.sh ++Usage: populate-extfs.sh + Create an ext2/ext3/ext4 filesystem from a directory or file + + source: The source directory or file +@@ -16,17 +19,71 @@ _EOF + exit 1 + } + +-[ $# -ne 2 ] && do_usage ++CFGFILE_CNT=5 ++FILEMODE_IDX=2 ++FILEU_IDX=3 ++FILEG_IDX=4 ++_NEW_FILEMODE=0 ++_NEW_FILEUID=0 ++_NEW_FILEGID=0 ++ ++declare -a CONFIG_ARRAY ++ ++do_parsecfgfile () { ++ i=0 ++ while read _BINFILE_ _FILETYPE_ _FILEMODE_ _FILEUID_ _FILEGID_ ++ do ++ CONFIG_ARRAY[${i}]=${_BINFILE_} ++ i=$[$i+1] ++ CONFIG_ARRAY[${i}]=${_FILETYPE_} ++ i=$[$i+1] ++ CONFIG_ARRAY[${i}]=${_FILEMODE_} ++ i=$[$i+1] ++ CONFIG_ARRAY[${i}]=${_FILEUID_} ++ i=$[$i+1] ++ CONFIG_ARRAY[${i}]=${_FILEGID_} ++ i=$[$i+1] ++ done < ${CFGFILE} ++} ++ ++do_getfilecfgmode () { ++ i=0 ++ _NEW_FILEMODE_=$2 ++ _NEW_FILEUID_=0 ++ _NEW_FILEGID_=0 ++ while [ $i -lt ${#CONFIG_ARRAY[@]} ] ++ do ++ if [ "$1" == "${CONFIG_ARRAY[$i]}" ]; then ++ # Change file mode from OCT to HEX. ++ _NEW_FILEMODE_=$(echo "obase=16;$((0x$MODE & (~07777) | 0${CONFIG_ARRAY[$i+${FILEMODE_IDX}]}))"|bc) ++ _NEW_FILEUID_=${CONFIG_ARRAY[$i+${FILEU_IDX}]} ++ _NEW_FILLEGID_=${CONFIG_ARRAY[$i+${FILEG_IDX}]} ++ return 0 ++ fi ++ i=$[$i+${CFGFILE_CNT}] ++ done ++} ++ ++[ $# -ne 3 ] && do_usage + + SRCDIR=${1%%/} + DEVICE=$2 ++CFGFILE=$3 ++ ++# parse config file ++do_parsecfgfile + + # 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" ++ DEBUGFS=debugfs + fi + ++# "debugfs" command check. ++command -v debugfs >/dev/null 2>&1 || \ ++{ echo >&2 "debugfs is required, please install by \"apt-get install e2fsprogs\". Aborting."; exit 1; } ++ + { + CWD="/" + find $SRCDIR | while read FILE; do +@@ -72,6 +129,10 @@ fi + ;; + esac + ++ do_getfilecfgmode ${FILE#$SRCDIR} $MODE $U $G ++ MODE=${_NEW_FILEMODE_} ++ U=${_NEW_FILEUID_} ++ G=${_NEW_FILEGID_} + # Set the file mode + echo "sif $TGT mode 0x$MODE" diff --git a/1002-add-header-file-to-musl-compile-mk2efs.patch b/1002-add-header-file-to-musl-compile-mk2efs.patch new file mode 100644 index 00000000..b8d277c6 --- /dev/null +++ b/1002-add-header-file-to-musl-compile-mk2efs.patch @@ -0,0 +1,3516 @@ +diff --git a/lib/blkid/blkid.h b/lib/blkid/blkid.h +new file mode 100644 +index 0000000000000000000000000000000000000000..81f3098c1b530bf357537784df5c813a06cacb95 +--- /dev/null ++++ b/lib/blkid/blkid.h +@@ -0,0 +1,110 @@ ++/* ++ * blkid.h - Interface for libblkid, a library to identify block devices ++ * ++ * Copyright (C) 2001 Andreas Dilger ++ * Copyright (C) 2003 Theodore Ts'o ++ * ++ * %Begin-Header% ++ * This file may be redistributed under the terms of the ++ * GNU Lesser General Public License. ++ * %End-Header% ++ */ ++ ++#ifndef _BLKID_BLKID_H ++#define _BLKID_BLKID_H ++ ++#include ++#include ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++#define BLKID_VERSION "1.0.0" ++#define BLKID_DATE "12-Feb-2003" ++ ++typedef struct blkid_struct_dev *blkid_dev; ++typedef struct blkid_struct_cache *blkid_cache; ++typedef __s64 blkid_loff_t; ++ ++typedef struct blkid_struct_tag_iterate *blkid_tag_iterate; ++typedef struct blkid_struct_dev_iterate *blkid_dev_iterate; ++ ++/* ++ * Flags for blkid_get_dev ++ * ++ * BLKID_DEV_CREATE Create an empty device structure if not found ++ * in the cache. ++ * BLKID_DEV_VERIFY Make sure the device structure corresponds ++ * with reality. ++ * BLKID_DEV_FIND Just look up a device entry, and return NULL ++ * if it is not found. ++ * BLKID_DEV_NORMAL Get a valid device structure, either from the ++ * cache or by probing the device. ++ */ ++#define BLKID_DEV_FIND 0x0000 ++#define BLKID_DEV_CREATE 0x0001 ++#define BLKID_DEV_VERIFY 0x0002 ++#define BLKID_DEV_NORMAL (BLKID_DEV_CREATE | BLKID_DEV_VERIFY) ++ ++/* cache.c */ ++extern void blkid_put_cache(blkid_cache cache); ++extern int blkid_get_cache(blkid_cache *cache, const char *filename); ++extern void blkid_gc_cache(blkid_cache cache); ++ ++/* dev.c */ ++extern const char *blkid_dev_devname(blkid_dev dev); ++ ++extern blkid_dev_iterate blkid_dev_iterate_begin(blkid_cache cache); ++extern int blkid_dev_set_search(blkid_dev_iterate iter, ++ char *search_type, char *search_value); ++extern int blkid_dev_next(blkid_dev_iterate iterate, blkid_dev *dev); ++extern void blkid_dev_iterate_end(blkid_dev_iterate iterate); ++ ++/* devno.c */ ++extern char *blkid_devno_to_devname(dev_t devno); ++ ++/* devname.c */ ++extern int blkid_probe_all(blkid_cache cache); ++extern int blkid_probe_all_new(blkid_cache cache); ++extern blkid_dev blkid_get_dev(blkid_cache cache, const char *devname, ++ int flags); ++ ++/* getsize.c */ ++extern blkid_loff_t blkid_get_dev_size(int fd); ++ ++/* probe.c */ ++int blkid_known_fstype(const char *fstype); ++extern blkid_dev blkid_verify(blkid_cache cache, blkid_dev dev); ++ ++/* read.c */ ++ ++/* resolve.c */ ++extern char *blkid_get_tag_value(blkid_cache cache, const char *tagname, ++ const char *devname); ++extern char *blkid_get_devname(blkid_cache cache, const char *token, ++ const char *value); ++ ++/* tag.c */ ++extern blkid_tag_iterate blkid_tag_iterate_begin(blkid_dev dev); ++extern int blkid_tag_next(blkid_tag_iterate iterate, ++ const char **type, const char **value); ++extern void blkid_tag_iterate_end(blkid_tag_iterate iterate); ++extern int blkid_dev_has_tag(blkid_dev dev, const char *type, ++ const char *value); ++extern blkid_dev blkid_find_dev_with_tag(blkid_cache cache, ++ const char *type, ++ const char *value); ++extern int blkid_parse_tag_string(const char *token, char **ret_type, ++ char **ret_val); ++ ++/* version.c */ ++extern int blkid_parse_version_string(const char *ver_string); ++extern int blkid_get_library_version(const char **ver_string, ++ const char **date_string); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* _BLKID_BLKID_H */ +diff --git a/lib/blkid/blkid_types.h b/lib/blkid/blkid_types.h +new file mode 100644 +index 0000000000000000000000000000000000000000..d7ae93b59cdefc86c79729e81d902ef146ea7e75 +--- /dev/null ++++ b/lib/blkid/blkid_types.h +@@ -0,0 +1,174 @@ ++/* ++ * If linux/types.h is already been included, assume it has defined ++ * everything we need. (cross fingers) Other header files may have ++ * also defined the types that we need. ++ */ ++#if (!defined(_LINUX_TYPES_H) && !defined(_BLKID_TYPES_H) && \ ++ !defined(_EXT2_TYPES_H)) ++#define _BLKID_TYPES_H ++ ++#define __S8_TYPEDEF __signed__ char ++#define __U8_TYPEDEF unsigned char ++#define __S16_TYPEDEF __signed__ short ++#define __U16_TYPEDEF unsigned short ++#define __S32_TYPEDEF __signed__ int ++#define __U32_TYPEDEF unsigned int ++#define __S64_TYPEDEF __signed__ long long ++#define __U64_TYPEDEF unsigned long long ++ ++#ifndef HAVE___U8 ++#define HAVE___U8 ++#ifdef __U8_TYPEDEF ++typedef __U8_TYPEDEF __u8; ++#else ++typedef unsigned char __u8; ++#endif ++#endif /* HAVE___U8 */ ++ ++#ifndef HAVE___S8 ++#define HAVE___S8 ++#ifdef __S8_TYPEDEF ++typedef __S8_TYPEDEF __s8; ++#else ++typedef signed char __s8; ++#endif ++#endif /* HAVE___S8 */ ++ ++#ifndef HAVE___U16 ++#define HAVE___U16 ++#ifdef __U16_TYPEDEF ++typedef __U16_TYPEDEF __u16; ++#else ++#if (4 == 2) ++typedef unsigned int __u16; ++#else ++#if (2 == 2) ++typedef unsigned short __u16; ++#else ++#undef HAVE___U16 ++ ?==error: undefined 16 bit type ++#endif /* SIZEOF_SHORT == 2 */ ++#endif /* SIZEOF_INT == 2 */ ++#endif /* __U16_TYPEDEF */ ++#endif /* HAVE___U16 */ ++ ++#ifndef HAVE___S16 ++#define HAVE___S16 ++#ifdef __S16_TYPEDEF ++typedef __S16_TYPEDEF __s16; ++#else ++#if (4 == 2) ++typedef int __s16; ++#else ++#if (2 == 2) ++typedef short __s16; ++#else ++#undef HAVE___S16 ++ ?==error: undefined 16 bit type ++#endif /* SIZEOF_SHORT == 2 */ ++#endif /* SIZEOF_INT == 2 */ ++#endif /* __S16_TYPEDEF */ ++#endif /* HAVE___S16 */ ++ ++#ifndef HAVE___U32 ++#define HAVE___U32 ++#ifdef __U32_TYPEDEF ++typedef __U32_TYPEDEF __u32; ++#else ++#if (4 == 4) ++typedef unsigned int __u32; ++#else ++#if (4 == 4) ++typedef unsigned long __u32; ++#else ++#if (2 == 4) ++typedef unsigned short __u32; ++#else ++#undef HAVE___U32 ++ ?== error: undefined 32 bit type ++#endif /* SIZEOF_SHORT == 4 */ ++#endif /* SIZEOF_LONG == 4 */ ++#endif /* SIZEOF_INT == 4 */ ++#endif /* __U32_TYPEDEF */ ++#endif /* HAVE___U32 */ ++ ++#ifndef HAVE___S32 ++#define HAVE___S32 ++#ifdef __S32_TYPEDEF ++typedef __S32_TYPEDEF __s32; ++#else ++#if (4 == 4) ++typedef int __s32; ++#else ++#if (4 == 4) ++typedef long __s32; ++#else ++#if (2 == 4) ++typedef short __s32; ++#else ++#undef HAVE___S32 ++ ?== error: undefined 32 bit type ++#endif /* SIZEOF_SHORT == 4 */ ++#endif /* SIZEOF_LONG == 4 */ ++#endif /* SIZEOF_INT == 4 */ ++#endif /* __S32_TYPEDEF */ ++#endif /* HAVE___S32 */ ++ ++#ifndef HAVE___U64 ++#define HAVE___U64 ++#ifdef __U64_TYPEDEF ++typedef __U64_TYPEDEF __u64; ++#else ++#if (4 == 8) ++typedef unsigned int __u64; ++#else ++#if (8 == 8) ++typedef unsigned long long __u64; ++#else ++#if (4 == 8) ++typedef unsigned long __u64; ++#else ++#undef HAVE___U64 ++ ?== error: undefined 64 bit type ++#endif /* SIZEOF_LONG == 8 */ ++#endif /* SIZEOF_LONG_LONG == 8 */ ++#endif /* SIZEOF_INT == 8 */ ++#endif /* __U64_TYPEDEF */ ++#endif /* HAVE___U64 */ ++ ++#ifndef HAVE___S64 ++#define HAVE___S64 ++#ifdef __S64_TYPEDEF ++typedef __S64_TYPEDEF __s64; ++#else ++#if (4 == 8) ++typedef int __s64; ++#else ++#if (8 == 8) ++#if defined(__GNUC__) ++typedef __signed__ long long __s64; ++#else ++typedef signed long long __s64; ++#endif /* __GNUC__ */ ++#else ++#if (4 == 8) ++typedef long __s64; ++#else ++#undef HAVE___S64 ++ ?== error: undefined 64 bit type ++#endif /* SIZEOF_LONG == 8 */ ++#endif /* SIZEOF_LONG_LONG == 8 */ ++#endif /* SIZEOF_INT == 8 */ ++#endif /* __S64_TYPEDEF */ ++#endif /* HAVE___S64 */ ++ ++#undef __S8_TYPEDEF ++#undef __U8_TYPEDEF ++#undef __S16_TYPEDEF ++#undef __U16_TYPEDEF ++#undef __S32_TYPEDEF ++#undef __U32_TYPEDEF ++#undef __S64_TYPEDEF ++#undef __U64_TYPEDEF ++ ++#endif /* _*_TYPES_H */ +diff --git a/lib/config.h b/lib/config.h +new file mode 100644 +index 0000000000000000000000000000000000000000..f9e9ad81a4669d62108a39a86c3a7c8fdb8fbcad +--- /dev/null ++++ b/lib/config.h +@@ -0,0 +1,909 @@ ++/* lib/config.h. Generated from config.h.in by configure. */ ++/* lib/config.h.in. Generated from configure.ac by autoheader. */ ++ ++/* Define if building universal (internal helper macro) */ ++/* #undef AC_APPLE_UNIVERSAL_BUILD */ ++ ++/* Define to 1 if debugging the blkid library */ ++/* #undef CONFIG_BLKID_DEBUG */ ++ ++/* Define to 1 to compile findfs */ ++#define CONFIG_BUILD_FINDFS 1 ++ ++/* Define to 1 if debugging ext3/4 journal code */ ++/* #undef CONFIG_JBD_DEBUG */ ++ ++/* The internal ext2_filsys data structure appears to be corrupted */ ++#define EXT2_FILSYS_CORRUPTED 1 ++ ++/* Define to 1 to enable mmp support */ ++#define CONFIG_MMP 1 ++ ++/* Define to 1 to enable tdb support */ ++/* #undef CONFIG_TDB */ ++ ++/* Define to 1 if the testio I/O manager should be enabled */ ++#define CONFIG_TESTIO_DEBUG 1 ++ ++/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP ++ systems. This function is required for `alloca.c' support on those systems. ++ */ ++/* #undef CRAY_STACKSEG_END */ ++ ++/* Define to 1 if using `alloca.c'. */ ++/* #undef C_ALLOCA */ ++ ++/* Define to 1 to disable use of backtrace */ ++/* #undef DISABLE_BACKTRACE */ ++ ++/* Define to 1 to enable bitmap stats. */ ++#define ENABLE_BMAP_STATS 1 ++ ++/* Define to 1 to enable bitmap stats. */ ++/* #undef ENABLE_BMAP_STATS_OPS */ ++ ++/* Define to 1 if translation of program messages to the user's native ++ language is requested. */ ++/* #undef ENABLE_NLS */ ++ ++/* Define to 1 if you have the `add_key' function. */ ++/* #undef HAVE_ADD_KEY */ ++ ++/* Define to 1 if you have `alloca', as a function or macro. */ ++#define HAVE_ALLOCA 1 ++ ++/* Define to 1 if you have and it should be used (not on Ultrix). ++ */ ++#define HAVE_ALLOCA_H 1 ++ ++/* Define to 1 if you have the `argz_count' function. */ ++#define HAVE_ARGZ_COUNT 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_ARGZ_H 1 ++ ++/* Define to 1 if you have the `argz_next' function. */ ++#define HAVE_ARGZ_NEXT 1 ++ ++/* Define to 1 if you have the `argz_stringify' function. */ ++#define HAVE_ARGZ_STRINGIFY 1 ++ ++/* Define to 1 if you have the `asprintf' function. */ ++#define HAVE_ASPRINTF 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_ATTR_XATTR_H */ ++ ++/* Define to 1 if you have the `backtrace' function. */ ++/* #define HAVE_BACKTRACE 1 */ ++ ++/* Define to 1 if blkid has blkid_probe_enable_partitions */ ++/* #undef HAVE_BLKID_PROBE_ENABLE_PARTITIONS */ ++ ++/* Define to 1 if blkid has blkid_probe_get_topology */ ++/* #undef HAVE_BLKID_PROBE_GET_TOPOLOGY */ ++ ++/* Define to 1 if the compiler understands __builtin_expect. */ ++#define HAVE_BUILTIN_EXPECT 1 ++ ++/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the ++ CoreFoundation framework. */ ++/* #undef HAVE_CFLOCALECOPYCURRENT */ ++ ++/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in ++ the CoreFoundation framework. */ ++/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ ++ ++/* Define to 1 if you have the `chflags' function. */ ++/* #undef HAVE_CHFLAGS */ ++ ++/* Define if the GNU dcgettext() function is already present or preinstalled. ++ */ ++/* #undef HAVE_DCGETTEXT */ ++ ++/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you ++ don't. */ ++#define HAVE_DECL_FEOF_UNLOCKED 1 ++ ++/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if ++ you don't. */ ++#define HAVE_DECL_FGETS_UNLOCKED 1 ++ ++/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you ++ don't. */ ++#define HAVE_DECL_GETC_UNLOCKED 1 ++ ++/* Define to 1 if you have the declaration of `_snprintf', and to 0 if you ++ don't. */ ++#define HAVE_DECL__SNPRINTF 0 ++ ++/* Define to 1 if you have the declaration of `_snwprintf', and to 0 if you ++ don't. */ ++#define HAVE_DECL__SNWPRINTF 0 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_DIRENT_H 1 ++ ++/* Define to 1 if you have the `dlopen' function. */ ++#define HAVE_DLOPEN 1 ++ ++/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ ++/* #undef HAVE_DOPRNT */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_ERRNO_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #define HAVE_EXECINFO_H 1 */ ++ ++/* Define to 1 if Ext2 ioctls present */ ++#define HAVE_EXT2_IOCTLS 1 ++ ++/* Define to 1 if you have the `fadvise64' function. */ ++/* #undef HAVE_FADVISE64 */ ++ ++/* Define to 1 if you have the `fallocate' function. */ ++#define HAVE_FALLOCATE 1 ++ ++/* Define to 1 if you have the `fallocate64' function. */ ++#define HAVE_FALLOCATE64 1 ++ ++/* Define to 1 if you have the `fchown' function. */ ++#define HAVE_FCHOWN 1 ++ ++/* Define to 1 if you have the `fcntl' function. */ ++#define HAVE_FCNTL 1 ++ ++/* Define to 1 if you have the `fdatasync' function. */ ++#define HAVE_FDATASYNC 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_FEATURES_H 1 ++ ++/* Define to 1 if you have the `fstat64' function. */ ++#define HAVE_FSTAT64 1 ++ ++/* Define to 1 if you have the `fsync' function. */ ++#define HAVE_FSYNC 1 ++ ++/* Define to 1 if you have the `ftruncate64' function. */ ++#define HAVE_FTRUNCATE64 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_FUSE_H */ ++ ++/* Define to 1 if you have the `futimes' function. */ ++#define HAVE_FUTIMES 1 ++ ++/* Define to 1 if you have the `fwprintf' function. */ ++#define HAVE_FWPRINTF 1 ++ ++/* Define to 1 if you have the `getcwd' function. */ ++#define HAVE_GETCWD 1 ++ ++/* Define to 1 if you have the `getdtablesize' function. */ ++#define HAVE_GETDTABLESIZE 1 ++ ++/* Define to 1 if you have the `getegid' function. */ ++#define HAVE_GETEGID 1 ++ ++/* Define to 1 if you have the `geteuid' function. */ ++#define HAVE_GETEUID 1 ++ ++/* Define to 1 if you have the `getgid' function. */ ++#define HAVE_GETGID 1 ++ ++/* Define to 1 if you have the `gethostname' function. */ ++#define HAVE_GETHOSTNAME 1 ++ ++/* Define to 1 if you have the `getmntinfo' function. */ ++/* #undef HAVE_GETMNTINFO */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_GETOPT_H 1 ++ ++/* Define to 1 if you have the `getpagesize' function. */ ++#define HAVE_GETPAGESIZE 1 ++ ++/* Define to 1 if you have the `getpwuid_r' function. */ ++#define HAVE_GETPWUID_R 1 ++ ++/* Define to 1 if you have the `getrlimit' function. */ ++#define HAVE_GETRLIMIT 1 ++ ++/* Define to 1 if you have the `getrusage' function. */ ++#define HAVE_GETRUSAGE 1 ++ ++/* Define if the GNU gettext() function is already present or preinstalled. */ ++/* #undef HAVE_GETTEXT */ ++ ++/* Define to 1 if you have the `getuid' function. */ ++#define HAVE_GETUID 1 ++ ++/* Define if you have the iconv() function and it works. */ ++#define HAVE_ICONV 1 ++ ++/* Define if you have the 'intmax_t' type in or . */ ++#define HAVE_INTMAX_T 1 ++ ++/* Define to 1 if the system has the type `intptr_t'. */ ++#define HAVE_INTPTR_T 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_INTTYPES_H 1 ++ ++/* Define if exists, doesn't clash with , and ++ declares uintmax_t. */ ++#define HAVE_INTTYPES_H_WITH_UINTMAX 1 ++ ++/* Define to 1 if you have the `jrand48' function. */ ++#define HAVE_JRAND48 1 ++ ++/* Define to 1 if you have the `keyctl' function. */ ++/* #undef HAVE_KEYCTL */ ++ ++/* Define if you have and nl_langinfo(CODESET). */ ++#define HAVE_LANGINFO_CODESET 1 ++ ++/* Define if your file defines LC_MESSAGES. */ ++#define HAVE_LC_MESSAGES 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_LIMITS_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_LINUX_FALLOC_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_LINUX_FD_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_LINUX_FSMAP_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_LINUX_LOOP_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_LINUX_MAJOR_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_LINUX_TYPES_H 1 ++ ++/* Define to 1 if you have the `llistxattr' function. */ ++//#define HAVE_LLISTXATTR 1 ++ ++/* Define to 1 if you have the `llseek' function. */ ++/* #undef HAVE_LLSEEK */ ++ ++/* Define to 1 if llseek declared in unistd.h */ ++/* #undef HAVE_LLSEEK_PROTOTYPE */ ++ ++/* Define to 1 if the system has the type 'long long int'. */ ++#define HAVE_LONG_LONG_INT 1 ++ ++/* Define to 1 if you have the `lseek64' function. */ ++#define HAVE_LSEEK64 1 ++ ++/* Define to 1 if lseek64 declared in unistd.h */ ++#define HAVE_LSEEK64_PROTOTYPE 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_MAGIC_H */ ++ ++/* Define to 1 if you have the `mallinfo' function. */ ++/* #define HAVE_MALLINFO 1 */ ++ ++/* Define to 1 if you have the header file. */ ++/* #define HAVE_MALLOC_H 1 */ ++ ++/* Define to 1 if you have the `mbrtowc' function. */ ++#define HAVE_MBRTOWC 1 ++ ++/* Define to 1 if you have the `mbstowcs' function. */ ++#define HAVE_MBSTOWCS 1 ++ ++/* Define to 1 if you have the `memalign' function. */ ++#define HAVE_MEMALIGN 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_MEMORY_H 1 ++ ++/* Define to 1 if you have the `mempcpy' function. */ ++#define HAVE_MEMPCPY 1 ++ ++/* Define to 1 if you have the `mmap' function. */ ++#define HAVE_MMAP 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_MNTENT_H 1 ++ ++/* Define to 1 if mount supports nodev. */ ++#define HAVE_MOUNT_NODEV 1 ++ ++/* Define to 1 if mount supports nosuid. */ ++#define HAVE_MOUNT_NOSUID 1 ++ ++/* Define to 1 if you have the `msync' function. */ ++#define HAVE_MSYNC 1 ++ ++/* Define to 1 if you have the `munmap' function. */ ++#define HAVE_MUNMAP 1 ++ ++/* Define to 1 if you have the `nanosleep' function. */ ++#define HAVE_NANOSLEEP 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_NETINET_IN_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_NET_IF_DL_H */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_NET_IF_H 1 ++ ++/* Define to 1 if you have the `newlocale' function. */ ++#define HAVE_NEWLOCALE 1 ++ ++/* Define to 1 if you have the `open64' function. */ ++#define HAVE_OPEN64 1 ++ ++/* Define to 1 if optreset for getopt is present */ ++/* #undef HAVE_OPTRESET */ ++ ++/* Define to 1 if you have the `pathconf' function. */ ++#define HAVE_PATHCONF 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_PATHS_H 1 ++ ++/* Define to 1 if you have the `posix_fadvise' function. */ ++#define HAVE_POSIX_FADVISE 1 ++ ++/* Define to 1 if you have the `posix_fadvise64' function. */ ++#define HAVE_POSIX_FADVISE64 1 ++ ++/* Define to 1 if you have the `posix_memalign' function. */ ++#define HAVE_POSIX_MEMALIGN 1 ++ ++/* Define if your printf() function supports format strings with positions. */ ++#define HAVE_POSIX_PRINTF 1 ++ ++/* Define to 1 if you have the `prctl' function. */ ++#define HAVE_PRCTL 1 ++ ++/* Define to 1 if you have the `pread' function. */ ++#define HAVE_PREAD 1 ++ ++/* Define to 1 if you have the `pread64' function. */ ++#define HAVE_PREAD64 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_PTHREAD_H 1 ++ ++/* Define if the defines PTHREAD_MUTEX_RECURSIVE. */ ++#define HAVE_PTHREAD_MUTEX_RECURSIVE 1 ++ ++/* Define if the POSIX multithreading library has read/write locks. */ ++#define HAVE_PTHREAD_RWLOCK 1 ++ ++/* Define to 1 if you have the `putenv' function. */ ++#define HAVE_PUTENV 1 ++ ++/* Define to 1 if you have the `pwrite' function. */ ++#define HAVE_PWRITE 1 ++ ++/* Define to 1 if you have the `pwrite64' function. */ ++#define HAVE_PWRITE64 1 ++ ++/* Define to 1 if dirent has d_reclen */ ++#define HAVE_RECLEN_DIRENT 1 ++ ++/* Define to 1 if if struct sockaddr contains sa_len */ ++/* #undef HAVE_SA_LEN */ ++ ++/* Define to 1 if you have the `secure_getenv' function. */ ++#define HAVE_SECURE_GETENV 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SEMAPHORE_H 1 ++ ++/* Define to 1 if sem_init() exists */ ++#define HAVE_SEM_INIT 1 ++ ++/* Define to 1 if you have the `setenv' function. */ ++#define HAVE_SETENV 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SETJMP_H 1 ++ ++/* Define to 1 if you have the `setlocale' function. */ ++#define HAVE_SETLOCALE 1 ++ ++/* Define to 1 if you have the `setmntent' function. */ ++#define HAVE_SETMNTENT 1 ++ ++/* Define to 1 if you have the `setresgid' function. */ ++#define HAVE_SETRESGID 1 ++ ++/* Define to 1 if you have the `setresuid' function. */ ++#define HAVE_SETRESUID 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SIGNAL_H 1 ++ ++/* Define to 1 if you have the `snprintf' function. */ ++#define HAVE_SNPRINTF 1 ++ ++/* Define to 1 if you have the `srandom' function. */ ++#define HAVE_SRANDOM 1 ++ ++/* Define to 1 if struct stat has st_flags */ ++/* #undef HAVE_STAT_FLAGS */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STDARG_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STDDEF_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STDINT_H 1 ++ ++/* Define if exists, doesn't clash with , and declares ++ uintmax_t. */ ++#define HAVE_STDINT_H_WITH_UINTMAX 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STDLIB_H 1 ++ ++/* Define to 1 if you have the `stpcpy' function. */ ++#define HAVE_STPCPY 1 ++ ++/* Define to 1 if you have the `strcasecmp' function. */ ++#define HAVE_STRCASECMP 1 ++ ++/* Define to 1 if you have the `strdup' function. */ ++#define HAVE_STRDUP 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STRINGS_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STRING_H 1 ++ ++/* Define to 1 if you have the `strnlen' function. */ ++#define HAVE_STRNLEN 1 ++ ++/* Define to 1 if you have the `strptime' function. */ ++#define HAVE_STRPTIME 1 ++ ++/* Define to 1 if you have the `strtoul' function. */ ++#define HAVE_STRTOUL 1 ++ ++/* Define to 1 if you have the `strtoull' function. */ ++#define HAVE_STRTOULL 1 ++ ++/* Define to 1 if `st_atim' is a member of `struct stat'. */ ++#define HAVE_STRUCT_STAT_ST_ATIM 1 ++ ++/* Define to 1 if you have the `symlink' function. */ ++#define HAVE_SYMLINK 1 ++ ++/* Define to 1 if you have the `sync_file_range' function. */ ++#define HAVE_SYNC_FILE_RANGE 1 ++ ++/* Define to 1 if you have the `sysconf' function. */ ++#define HAVE_SYSCONF 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_ACL_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_DISKLABEL_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_DISK_H */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_FILE_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_IOCTL_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_KEY_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_MKDEV_H */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_MMAN_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_MOUNT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_PARAM_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_PRCTL_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_RESOURCE_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_SELECT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_SOCKET_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_SOCKIO_H */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_STAT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_SYSCALL_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #define HAVE_SYS_SYSCTL_H 1 */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_SYSMACROS_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_TIME_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_TYPES_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_UN_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_WAIT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_XATTR_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_TERMIOS_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_TERMIO_H 1 ++ ++/* Define to 1 if you have the `tsearch' function. */ ++#define HAVE_TSEARCH 1 ++ ++/* Define to 1 if ssize_t declared */ ++#define HAVE_TYPE_SSIZE_T 1 ++ ++/* Define if you have the 'uintmax_t' type in or . */ ++#define HAVE_UINTMAX_T 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_UNISTD_H 1 ++ ++/* Define to 1 if the system has the type 'unsigned long long int'. */ ++#define HAVE_UNSIGNED_LONG_LONG_INT 1 ++ ++/* Define to 1 if you have the `uselocale' function. */ ++#define HAVE_USELOCALE 1 ++ ++/* Define to 1 if you have the `usleep' function. */ ++#define HAVE_USLEEP 1 ++ ++/* Define to 1 if you have the `utime' function. */ ++#define HAVE_UTIME 1 ++ ++/* Define to 1 if you have the `utimes' function. */ ++#define HAVE_UTIMES 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_UTIME_H 1 ++ ++/* Define to 1 if you have the `valloc' function. */ ++#define HAVE_VALLOC 1 ++ ++/* Define to 1 or 0, depending whether the compiler supports simple visibility ++ declarations. */ ++#define HAVE_VISIBILITY 1 ++ ++/* Define to 1 if you have the `vprintf' function. */ ++#define HAVE_VPRINTF 1 ++ ++/* Define if you have the 'wchar_t' type. */ ++#define HAVE_WCHAR_T 1 ++ ++/* Define to 1 if you have the `wcrtomb' function. */ ++#define HAVE_WCRTOMB 1 ++ ++/* Define to 1 if you have the `wcslen' function. */ ++#define HAVE_WCSLEN 1 ++ ++/* Define to 1 if you have the `wcsnlen' function. */ ++#define HAVE_WCSNLEN 1 ++ ++/* Define if you have the 'wint_t' type. */ ++#define HAVE_WINT_T 1 ++ ++/* Define to 1 if O_NOATIME works. */ ++#define HAVE_WORKING_O_NOATIME 0 ++ ++/* Define to 1 if O_NOFOLLOW works. */ ++#define HAVE_WORKING_O_NOFOLLOW 0 ++ ++/* Define to 1 if you have the `__fsetlocking' function. */ ++#define HAVE___FSETLOCKING 1 ++ ++/* Define to 1 if you have the `__secure_getenv' function. */ ++/* #undef HAVE___SECURE_GETENV */ ++ ++/* Define as const if the declaration of iconv() needs const. */ ++#define ICONV_CONST ++ ++/* Define if integer division by zero raises signal SIGFPE. */ ++#define INTDIV0_RAISES_SIGFPE 0 ++ ++/* package name for gettext */ ++#define PACKAGE "e2fsprogs" ++ ++/* Define to the address where bug reports for this package should be sent. */ ++#define PACKAGE_BUGREPORT "" ++ ++/* Define to the full name of this package. */ ++#define PACKAGE_NAME "" ++ ++/* Define to the full name and version of this package. */ ++#define PACKAGE_STRING "" ++ ++/* Define to the one symbol short name of this package. */ ++#define PACKAGE_TARNAME "" ++ ++/* Define to the home page for this package. */ ++#define PACKAGE_URL "" ++ ++/* Define to the version of this package. */ ++#define PACKAGE_VERSION "" ++ ++/* Define if exists and defines unusable PRI* macros. */ ++/* #undef PRI_MACROS_BROKEN */ ++ ++/* Define if the pthread_in_use() detection is hard. */ ++/* #undef PTHREAD_IN_USE_DETECTION_HARD */ ++ ++/* The size of `int', as computed by sizeof. */ ++#define SIZEOF_INT 4 ++ ++/* The size of `long', as computed by sizeof. */ ++#define SIZEOF_LONG 4 ++ ++/* The size of `long long', as computed by sizeof. */ ++#define SIZEOF_LONG_LONG 8 ++ ++/* The size of `off_t', as computed by sizeof. */ ++#define SIZEOF_OFF_T 4 ++ ++/* The size of `short', as computed by sizeof. */ ++#define SIZEOF_SHORT 2 ++ ++/* The size of `time_t', as computed by sizeof. */ ++#define SIZEOF_TIME_T 4 ++ ++/* Define as the maximum value of type 'size_t', if the system doesn't define ++ it. */ ++#ifndef SIZE_MAX ++/* # undef SIZE_MAX */ ++#endif ++ ++/* If using the C implementation of alloca, define if you know the ++ direction of stack growth for your system; otherwise it will be ++ automatically deduced at runtime. ++ STACK_DIRECTION > 0 => grows toward higher addresses ++ STACK_DIRECTION < 0 => grows toward lower addresses ++ STACK_DIRECTION = 0 => direction of growth unknown */ ++/* #undef STACK_DIRECTION */ ++ ++/* Define to 1 if you have the ANSI C header files. */ ++#define STDC_HEADERS 1 ++ ++/* If the compiler supports a TLS storage class define it to that here */ ++/* #undef TLS */ ++ ++/* Define if the POSIX multithreading library can be used. */ ++#define USE_POSIX_THREADS 1 ++ ++/* Define if references to the POSIX multithreading library should be made ++ weak. */ ++#define USE_POSIX_THREADS_WEAK 1 ++ ++/* Define if the GNU Pth multithreading library can be used. */ ++/* #undef USE_PTH_THREADS */ ++ ++/* Define if references to the GNU Pth multithreading library should be made ++ weak. */ ++/* #undef USE_PTH_THREADS_WEAK */ ++ ++/* Define if the old Solaris multithreading library can be used. */ ++/* #undef USE_SOLARIS_THREADS */ ++ ++/* Define if references to the old Solaris multithreading library should be ++ made weak. */ ++/* #undef USE_SOLARIS_THREADS_WEAK */ ++ ++/* Enable extensions on AIX 3, Interix. */ ++#ifndef _ALL_SOURCE ++# define _ALL_SOURCE 1 ++#endif ++/* Enable GNU extensions on systems that have them. */ ++#ifndef _GNU_SOURCE ++# define _GNU_SOURCE 1 ++#endif ++/* Enable threading extensions on Solaris. */ ++#ifndef _POSIX_PTHREAD_SEMANTICS ++# define _POSIX_PTHREAD_SEMANTICS 1 ++#endif ++/* Enable extensions on HP NonStop. */ ++#ifndef _TANDEM_SOURCE ++# define _TANDEM_SOURCE 1 ++#endif ++/* Enable general extensions on Solaris. */ ++#ifndef __EXTENSIONS__ ++# define __EXTENSIONS__ 1 ++#endif ++ ++ ++/* Define to 1 to build uuidd */ ++#define USE_UUIDD 1 ++ ++/* Define if the native Windows multithreading API can be used. */ ++/* #undef USE_WINDOWS_THREADS */ ++ ++/* version for gettext */ ++#define VERSION "0.14.1" ++ ++/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most ++ significant byte first (like Motorola and SPARC, unlike Intel). */ ++#if defined AC_APPLE_UNIVERSAL_BUILD ++# if defined __BIG_ENDIAN__ ++# define WORDS_BIGENDIAN 1 ++# endif ++#else ++# ifndef WORDS_BIGENDIAN ++/* # undef WORDS_BIGENDIAN */ ++# endif ++#endif ++ ++/* Define to 1 if Apple Darwin libintl workaround is needed */ ++/* #undef _INTL_REDIRECT_MACROS */ ++ ++/* Define to 1 if on MINIX. */ ++/* #undef _MINIX */ ++ ++/* Define to 2 if the system does not provide POSIX.1 features except with ++ this defined. */ ++/* #undef _POSIX_1_SOURCE */ ++ ++/* Define to 1 if you need to in order for `stat' and other things to work. */ ++/* #undef _POSIX_SOURCE */ ++ ++/* Please see the Gnulib manual for how to use these macros. ++ ++ Suppress extern inline with HP-UX cc, as it appears to be broken; see ++ . ++ ++ Suppress extern inline with Sun C in standards-conformance mode, as it ++ mishandles inline functions that call each other. E.g., for 'inline void f ++ (void) { } inline void g (void) { f (); }', c99 incorrectly complains ++ 'reference to static identifier "f" in extern inline function'. ++ This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. ++ ++ Suppress the use of extern inline on Apple's platforms, as Libc at least ++ through Libc-825.26 (2013-04-09) is incompatible with it; see, e.g., ++ . ++ Perhaps Apple will fix this some day. */ ++#if ((__GNUC__ \ ++ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ ++ : (199901L <= __STDC_VERSION__ \ ++ && !defined __HP_cc \ ++ && !(defined __SUNPRO_C && __STDC__))) \ ++ && !defined __APPLE__) ++# define _GL_INLINE inline ++# define _GL_EXTERN_INLINE extern inline ++#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ ++ && !defined __APPLE__) ++# if __GNUC_GNU_INLINE__ ++ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ ++# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) ++# else ++# define _GL_INLINE extern inline ++# endif ++# define _GL_EXTERN_INLINE extern ++#else ++# define _GL_INLINE static _GL_UNUSED ++# define _GL_EXTERN_INLINE static _GL_UNUSED ++#endif ++ ++#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) ++# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ ++# define _GL_INLINE_HEADER_CONST_PRAGMA ++# else ++# define _GL_INLINE_HEADER_CONST_PRAGMA \ ++ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") ++# endif ++ /* Suppress GCC's bogus "no previous prototype for 'FOO'" ++ and "no previous declaration for 'FOO'" diagnostics, ++ when FOO is an inline function in the header; see ++ . */ ++# define _GL_INLINE_HEADER_BEGIN \ ++ _Pragma ("GCC diagnostic push") \ ++ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ ++ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ ++ _GL_INLINE_HEADER_CONST_PRAGMA ++# define _GL_INLINE_HEADER_END \ ++ _Pragma ("GCC diagnostic pop") ++#else ++# define _GL_INLINE_HEADER_BEGIN ++# define _GL_INLINE_HEADER_END ++#endif ++ ++/* Define to `__inline__' or `__inline' if that's what the C compiler ++ calls it, or to nothing if 'inline' is not supported under any name. */ ++#ifndef __cplusplus ++/* #undef inline */ ++#endif ++ ++/* Define as the type of the result of subtracting two pointers, if the system ++ doesn't define it. */ ++/* #undef ptrdiff_t */ ++ ++/* Define to `unsigned int' if does not define. */ ++/* #undef size_t */ ++ ++/* Define to unsigned long or unsigned long long if and ++ don't define. */ ++/* #undef uintmax_t */ ++ ++#include ++ ++ ++#define __libc_lock_t gl_lock_t ++#define __libc_lock_define gl_lock_define ++#define __libc_lock_define_initialized gl_lock_define_initialized ++#define __libc_lock_init gl_lock_init ++#define __libc_lock_lock gl_lock_lock ++#define __libc_lock_unlock gl_lock_unlock ++#define __libc_lock_recursive_t gl_recursive_lock_t ++#define __libc_lock_define_recursive gl_recursive_lock_define ++#define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized ++#define __libc_lock_init_recursive gl_recursive_lock_init ++#define __libc_lock_lock_recursive gl_recursive_lock_lock ++#define __libc_lock_unlock_recursive gl_recursive_lock_unlock ++#define glthread_in_use libintl_thread_in_use ++#define glthread_lock_init_func libintl_lock_init_func ++#define glthread_lock_lock_func libintl_lock_lock_func ++#define glthread_lock_unlock_func libintl_lock_unlock_func ++#define glthread_lock_destroy_func libintl_lock_destroy_func ++#define glthread_rwlock_init_multithreaded libintl_rwlock_init_multithreaded ++#define glthread_rwlock_init_func libintl_rwlock_init_func ++#define glthread_rwlock_rdlock_multithreaded libintl_rwlock_rdlock_multithreaded ++#define glthread_rwlock_rdlock_func libintl_rwlock_rdlock_func ++#define glthread_rwlock_wrlock_multithreaded libintl_rwlock_wrlock_multithreaded ++#define glthread_rwlock_wrlock_func libintl_rwlock_wrlock_func ++#define glthread_rwlock_unlock_multithreaded libintl_rwlock_unlock_multithreaded ++#define glthread_rwlock_unlock_func libintl_rwlock_unlock_func ++#define glthread_rwlock_destroy_multithreaded libintl_rwlock_destroy_multithreaded ++#define glthread_rwlock_destroy_func libintl_rwlock_destroy_func ++#define glthread_recursive_lock_init_multithreaded libintl_recursive_lock_init_multithreaded ++#define glthread_recursive_lock_init_func libintl_recursive_lock_init_func ++#define glthread_recursive_lock_lock_multithreaded libintl_recursive_lock_lock_multithreaded ++#define glthread_recursive_lock_lock_func libintl_recursive_lock_lock_func ++#define glthread_recursive_lock_unlock_multithreaded libintl_recursive_lock_unlock_multithreaded ++#define glthread_recursive_lock_unlock_func libintl_recursive_lock_unlock_func ++#define glthread_recursive_lock_destroy_multithreaded libintl_recursive_lock_destroy_multithreaded ++#define glthread_recursive_lock_destroy_func libintl_recursive_lock_destroy_func ++#define glthread_once_func libintl_once_func ++#define glthread_once_singlethreaded libintl_once_singlethreaded ++#define glthread_once_multithreaded libintl_once_multithreaded ++ +diff --git a/lib/dirpaths.h b/lib/dirpaths.h +new file mode 100644 +index 0000000000000000000000000000000000000000..14e2da62e4afd9aedd59f83e9a4c08fbf8bd8e3f +--- /dev/null ++++ b/lib/dirpaths.h +@@ -0,0 +1,10 @@ ++/* ++ * This file contains the path names for various directories as ++ * controlled by the configure script. ++ */ ++ ++/* Where to put the messages file for internationalization support */ ++#define LOCALEDIR "/home/sunfan/OHOS_OTA2/hos/third_party/e2fsprogs-1.45.6/out/share/locale" ++ ++/* Where to find the mke2fs.conf and e2fsck.conf files */ ++#define ROOT_SYSCONFDIR "/home/sunfan/OHOS_OTA2/hos/third_party/e2fsprogs-1.45.6/out/etc" +diff --git a/lib/ext2fs/crc32c_table.h b/lib/ext2fs/crc32c_table.h +new file mode 100644 +index 0000000000000000000000000000000000000000..07b56d4db7e045e9e0438678a496c61306b76441 +--- /dev/null ++++ b/lib/ext2fs/crc32c_table.h +@@ -0,0 +1,1044 @@ ++/* this file is generated - do not edit */ ++ ++static const uint32_t crc32table_be[8][256] = {{ ++tobe(0x00000000L), tobe(0x04c11db7L), tobe(0x09823b6eL), tobe(0x0d4326d9L), ++tobe(0x130476dcL), tobe(0x17c56b6bL), tobe(0x1a864db2L), tobe(0x1e475005L), ++tobe(0x2608edb8L), tobe(0x22c9f00fL), tobe(0x2f8ad6d6L), tobe(0x2b4bcb61L), ++tobe(0x350c9b64L), tobe(0x31cd86d3L), tobe(0x3c8ea00aL), tobe(0x384fbdbdL), ++tobe(0x4c11db70L), tobe(0x48d0c6c7L), tobe(0x4593e01eL), tobe(0x4152fda9L), ++tobe(0x5f15adacL), tobe(0x5bd4b01bL), tobe(0x569796c2L), tobe(0x52568b75L), ++tobe(0x6a1936c8L), tobe(0x6ed82b7fL), tobe(0x639b0da6L), tobe(0x675a1011L), ++tobe(0x791d4014L), tobe(0x7ddc5da3L), tobe(0x709f7b7aL), tobe(0x745e66cdL), ++tobe(0x9823b6e0L), tobe(0x9ce2ab57L), tobe(0x91a18d8eL), tobe(0x95609039L), ++tobe(0x8b27c03cL), tobe(0x8fe6dd8bL), tobe(0x82a5fb52L), tobe(0x8664e6e5L), ++tobe(0xbe2b5b58L), tobe(0xbaea46efL), tobe(0xb7a96036L), tobe(0xb3687d81L), ++tobe(0xad2f2d84L), tobe(0xa9ee3033L), tobe(0xa4ad16eaL), tobe(0xa06c0b5dL), ++tobe(0xd4326d90L), tobe(0xd0f37027L), tobe(0xddb056feL), tobe(0xd9714b49L), ++tobe(0xc7361b4cL), tobe(0xc3f706fbL), tobe(0xceb42022L), tobe(0xca753d95L), ++tobe(0xf23a8028L), tobe(0xf6fb9d9fL), tobe(0xfbb8bb46L), tobe(0xff79a6f1L), ++tobe(0xe13ef6f4L), tobe(0xe5ffeb43L), tobe(0xe8bccd9aL), tobe(0xec7dd02dL), ++tobe(0x34867077L), tobe(0x30476dc0L), tobe(0x3d044b19L), tobe(0x39c556aeL), ++tobe(0x278206abL), tobe(0x23431b1cL), tobe(0x2e003dc5L), tobe(0x2ac12072L), ++tobe(0x128e9dcfL), tobe(0x164f8078L), tobe(0x1b0ca6a1L), tobe(0x1fcdbb16L), ++tobe(0x018aeb13L), tobe(0x054bf6a4L), tobe(0x0808d07dL), tobe(0x0cc9cdcaL), ++tobe(0x7897ab07L), tobe(0x7c56b6b0L), tobe(0x71159069L), tobe(0x75d48ddeL), ++tobe(0x6b93dddbL), tobe(0x6f52c06cL), tobe(0x6211e6b5L), tobe(0x66d0fb02L), ++tobe(0x5e9f46bfL), tobe(0x5a5e5b08L), tobe(0x571d7dd1L), tobe(0x53dc6066L), ++tobe(0x4d9b3063L), tobe(0x495a2dd4L), tobe(0x44190b0dL), tobe(0x40d816baL), ++tobe(0xaca5c697L), tobe(0xa864db20L), tobe(0xa527fdf9L), tobe(0xa1e6e04eL), ++tobe(0xbfa1b04bL), tobe(0xbb60adfcL), tobe(0xb6238b25L), tobe(0xb2e29692L), ++tobe(0x8aad2b2fL), tobe(0x8e6c3698L), tobe(0x832f1041L), tobe(0x87ee0df6L), ++tobe(0x99a95df3L), tobe(0x9d684044L), tobe(0x902b669dL), tobe(0x94ea7b2aL), ++tobe(0xe0b41de7L), tobe(0xe4750050L), tobe(0xe9362689L), tobe(0xedf73b3eL), ++tobe(0xf3b06b3bL), tobe(0xf771768cL), tobe(0xfa325055L), tobe(0xfef34de2L), ++tobe(0xc6bcf05fL), tobe(0xc27dede8L), tobe(0xcf3ecb31L), tobe(0xcbffd686L), ++tobe(0xd5b88683L), tobe(0xd1799b34L), tobe(0xdc3abdedL), tobe(0xd8fba05aL), ++tobe(0x690ce0eeL), tobe(0x6dcdfd59L), tobe(0x608edb80L), tobe(0x644fc637L), ++tobe(0x7a089632L), tobe(0x7ec98b85L), tobe(0x738aad5cL), tobe(0x774bb0ebL), ++tobe(0x4f040d56L), tobe(0x4bc510e1L), tobe(0x46863638L), tobe(0x42472b8fL), ++tobe(0x5c007b8aL), tobe(0x58c1663dL), tobe(0x558240e4L), tobe(0x51435d53L), ++tobe(0x251d3b9eL), tobe(0x21dc2629L), tobe(0x2c9f00f0L), tobe(0x285e1d47L), ++tobe(0x36194d42L), tobe(0x32d850f5L), tobe(0x3f9b762cL), tobe(0x3b5a6b9bL), ++tobe(0x0315d626L), tobe(0x07d4cb91L), tobe(0x0a97ed48L), tobe(0x0e56f0ffL), ++tobe(0x1011a0faL), tobe(0x14d0bd4dL), tobe(0x19939b94L), tobe(0x1d528623L), ++tobe(0xf12f560eL), tobe(0xf5ee4bb9L), tobe(0xf8ad6d60L), tobe(0xfc6c70d7L), ++tobe(0xe22b20d2L), tobe(0xe6ea3d65L), tobe(0xeba91bbcL), tobe(0xef68060bL), ++tobe(0xd727bbb6L), tobe(0xd3e6a601L), tobe(0xdea580d8L), tobe(0xda649d6fL), ++tobe(0xc423cd6aL), tobe(0xc0e2d0ddL), tobe(0xcda1f604L), tobe(0xc960ebb3L), ++tobe(0xbd3e8d7eL), tobe(0xb9ff90c9L), tobe(0xb4bcb610L), tobe(0xb07daba7L), ++tobe(0xae3afba2L), tobe(0xaafbe615L), tobe(0xa7b8c0ccL), tobe(0xa379dd7bL), ++tobe(0x9b3660c6L), tobe(0x9ff77d71L), tobe(0x92b45ba8L), tobe(0x9675461fL), ++tobe(0x8832161aL), tobe(0x8cf30badL), tobe(0x81b02d74L), tobe(0x857130c3L), ++tobe(0x5d8a9099L), tobe(0x594b8d2eL), tobe(0x5408abf7L), tobe(0x50c9b640L), ++tobe(0x4e8ee645L), tobe(0x4a4ffbf2L), tobe(0x470cdd2bL), tobe(0x43cdc09cL), ++tobe(0x7b827d21L), tobe(0x7f436096L), tobe(0x7200464fL), tobe(0x76c15bf8L), ++tobe(0x68860bfdL), tobe(0x6c47164aL), tobe(0x61043093L), tobe(0x65c52d24L), ++tobe(0x119b4be9L), tobe(0x155a565eL), tobe(0x18197087L), tobe(0x1cd86d30L), ++tobe(0x029f3d35L), tobe(0x065e2082L), tobe(0x0b1d065bL), tobe(0x0fdc1becL), ++tobe(0x3793a651L), tobe(0x3352bbe6L), tobe(0x3e119d3fL), tobe(0x3ad08088L), ++tobe(0x2497d08dL), tobe(0x2056cd3aL), tobe(0x2d15ebe3L), tobe(0x29d4f654L), ++tobe(0xc5a92679L), tobe(0xc1683bceL), tobe(0xcc2b1d17L), tobe(0xc8ea00a0L), ++tobe(0xd6ad50a5L), tobe(0xd26c4d12L), tobe(0xdf2f6bcbL), tobe(0xdbee767cL), ++tobe(0xe3a1cbc1L), tobe(0xe760d676L), tobe(0xea23f0afL), tobe(0xeee2ed18L), ++tobe(0xf0a5bd1dL), tobe(0xf464a0aaL), tobe(0xf9278673L), tobe(0xfde69bc4L), ++tobe(0x89b8fd09L), tobe(0x8d79e0beL), tobe(0x803ac667L), tobe(0x84fbdbd0L), ++tobe(0x9abc8bd5L), tobe(0x9e7d9662L), tobe(0x933eb0bbL), tobe(0x97ffad0cL), ++tobe(0xafb010b1L), tobe(0xab710d06L), tobe(0xa6322bdfL), tobe(0xa2f33668L), ++tobe(0xbcb4666dL), tobe(0xb8757bdaL), tobe(0xb5365d03L), tobe(0xb1f740b4L)}, ++{ ++tobe(0x00000000L), tobe(0xd219c1dcL), tobe(0xa0f29e0fL), tobe(0x72eb5fd3L), ++tobe(0x452421a9L), tobe(0x973de075L), tobe(0xe5d6bfa6L), tobe(0x37cf7e7aL), ++tobe(0x8a484352L), tobe(0x5851828eL), tobe(0x2abadd5dL), tobe(0xf8a31c81L), ++tobe(0xcf6c62fbL), tobe(0x1d75a327L), tobe(0x6f9efcf4L), tobe(0xbd873d28L), ++tobe(0x10519b13L), tobe(0xc2485acfL), tobe(0xb0a3051cL), tobe(0x62bac4c0L), ++tobe(0x5575babaL), tobe(0x876c7b66L), tobe(0xf58724b5L), tobe(0x279ee569L), ++tobe(0x9a19d841L), tobe(0x4800199dL), tobe(0x3aeb464eL), tobe(0xe8f28792L), ++tobe(0xdf3df9e8L), tobe(0x0d243834L), tobe(0x7fcf67e7L), tobe(0xadd6a63bL), ++tobe(0x20a33626L), tobe(0xf2baf7faL), tobe(0x8051a829L), tobe(0x524869f5L), ++tobe(0x6587178fL), tobe(0xb79ed653L), tobe(0xc5758980L), tobe(0x176c485cL), ++tobe(0xaaeb7574L), tobe(0x78f2b4a8L), tobe(0x0a19eb7bL), tobe(0xd8002aa7L), ++tobe(0xefcf54ddL), tobe(0x3dd69501L), tobe(0x4f3dcad2L), tobe(0x9d240b0eL), ++tobe(0x30f2ad35L), tobe(0xe2eb6ce9L), tobe(0x9000333aL), tobe(0x4219f2e6L), ++tobe(0x75d68c9cL), tobe(0xa7cf4d40L), tobe(0xd5241293L), tobe(0x073dd34fL), ++tobe(0xbabaee67L), tobe(0x68a32fbbL), tobe(0x1a487068L), tobe(0xc851b1b4L), ++tobe(0xff9ecfceL), tobe(0x2d870e12L), tobe(0x5f6c51c1L), tobe(0x8d75901dL), ++tobe(0x41466c4cL), tobe(0x935fad90L), tobe(0xe1b4f243L), tobe(0x33ad339fL), ++tobe(0x04624de5L), tobe(0xd67b8c39L), tobe(0xa490d3eaL), tobe(0x76891236L), ++tobe(0xcb0e2f1eL), tobe(0x1917eec2L), tobe(0x6bfcb111L), tobe(0xb9e570cdL), ++tobe(0x8e2a0eb7L), tobe(0x5c33cf6bL), tobe(0x2ed890b8L), tobe(0xfcc15164L), ++tobe(0x5117f75fL), tobe(0x830e3683L), tobe(0xf1e56950L), tobe(0x23fca88cL), ++tobe(0x1433d6f6L), tobe(0xc62a172aL), tobe(0xb4c148f9L), tobe(0x66d88925L), ++tobe(0xdb5fb40dL), tobe(0x094675d1L), tobe(0x7bad2a02L), tobe(0xa9b4ebdeL), ++tobe(0x9e7b95a4L), tobe(0x4c625478L), tobe(0x3e890babL), tobe(0xec90ca77L), ++tobe(0x61e55a6aL), tobe(0xb3fc9bb6L), tobe(0xc117c465L), tobe(0x130e05b9L), ++tobe(0x24c17bc3L), tobe(0xf6d8ba1fL), tobe(0x8433e5ccL), tobe(0x562a2410L), ++tobe(0xebad1938L), tobe(0x39b4d8e4L), tobe(0x4b5f8737L), tobe(0x994646ebL), ++tobe(0xae893891L), tobe(0x7c90f94dL), tobe(0x0e7ba69eL), tobe(0xdc626742L), ++tobe(0x71b4c179L), tobe(0xa3ad00a5L), tobe(0xd1465f76L), tobe(0x035f9eaaL), ++tobe(0x3490e0d0L), tobe(0xe689210cL), tobe(0x94627edfL), tobe(0x467bbf03L), ++tobe(0xfbfc822bL), tobe(0x29e543f7L), tobe(0x5b0e1c24L), tobe(0x8917ddf8L), ++tobe(0xbed8a382L), tobe(0x6cc1625eL), tobe(0x1e2a3d8dL), tobe(0xcc33fc51L), ++tobe(0x828cd898L), tobe(0x50951944L), tobe(0x227e4697L), tobe(0xf067874bL), ++tobe(0xc7a8f931L), tobe(0x15b138edL), tobe(0x675a673eL), tobe(0xb543a6e2L), ++tobe(0x08c49bcaL), tobe(0xdadd5a16L), tobe(0xa83605c5L), tobe(0x7a2fc419L), ++tobe(0x4de0ba63L), tobe(0x9ff97bbfL), tobe(0xed12246cL), tobe(0x3f0be5b0L), ++tobe(0x92dd438bL), tobe(0x40c48257L), tobe(0x322fdd84L), tobe(0xe0361c58L), ++tobe(0xd7f96222L), tobe(0x05e0a3feL), tobe(0x770bfc2dL), tobe(0xa5123df1L), ++tobe(0x189500d9L), tobe(0xca8cc105L), tobe(0xb8679ed6L), tobe(0x6a7e5f0aL), ++tobe(0x5db12170L), tobe(0x8fa8e0acL), tobe(0xfd43bf7fL), tobe(0x2f5a7ea3L), ++tobe(0xa22feebeL), tobe(0x70362f62L), tobe(0x02dd70b1L), tobe(0xd0c4b16dL), ++tobe(0xe70bcf17L), tobe(0x35120ecbL), tobe(0x47f95118L), tobe(0x95e090c4L), ++tobe(0x2867adecL), tobe(0xfa7e6c30L), tobe(0x889533e3L), tobe(0x5a8cf23fL), ++tobe(0x6d438c45L), tobe(0xbf5a4d99L), tobe(0xcdb1124aL), tobe(0x1fa8d396L), ++tobe(0xb27e75adL), tobe(0x6067b471L), tobe(0x128ceba2L), tobe(0xc0952a7eL), ++tobe(0xf75a5404L), tobe(0x254395d8L), tobe(0x57a8ca0bL), tobe(0x85b10bd7L), ++tobe(0x383636ffL), tobe(0xea2ff723L), tobe(0x98c4a8f0L), tobe(0x4add692cL), ++tobe(0x7d121756L), tobe(0xaf0bd68aL), tobe(0xdde08959L), tobe(0x0ff94885L), ++tobe(0xc3cab4d4L), tobe(0x11d37508L), tobe(0x63382adbL), tobe(0xb121eb07L), ++tobe(0x86ee957dL), tobe(0x54f754a1L), tobe(0x261c0b72L), tobe(0xf405caaeL), ++tobe(0x4982f786L), tobe(0x9b9b365aL), tobe(0xe9706989L), tobe(0x3b69a855L), ++tobe(0x0ca6d62fL), tobe(0xdebf17f3L), tobe(0xac544820L), tobe(0x7e4d89fcL), ++tobe(0xd39b2fc7L), tobe(0x0182ee1bL), tobe(0x7369b1c8L), tobe(0xa1707014L), ++tobe(0x96bf0e6eL), tobe(0x44a6cfb2L), tobe(0x364d9061L), tobe(0xe45451bdL), ++tobe(0x59d36c95L), tobe(0x8bcaad49L), tobe(0xf921f29aL), tobe(0x2b383346L), ++tobe(0x1cf74d3cL), tobe(0xceee8ce0L), tobe(0xbc05d333L), tobe(0x6e1c12efL), ++tobe(0xe36982f2L), tobe(0x3170432eL), tobe(0x439b1cfdL), tobe(0x9182dd21L), ++tobe(0xa64da35bL), tobe(0x74546287L), tobe(0x06bf3d54L), tobe(0xd4a6fc88L), ++tobe(0x6921c1a0L), tobe(0xbb38007cL), tobe(0xc9d35fafL), tobe(0x1bca9e73L), ++tobe(0x2c05e009L), tobe(0xfe1c21d5L), tobe(0x8cf77e06L), tobe(0x5eeebfdaL), ++tobe(0xf33819e1L), tobe(0x2121d83dL), tobe(0x53ca87eeL), tobe(0x81d34632L), ++tobe(0xb61c3848L), tobe(0x6405f994L), tobe(0x16eea647L), tobe(0xc4f7679bL), ++tobe(0x79705ab3L), tobe(0xab699b6fL), tobe(0xd982c4bcL), tobe(0x0b9b0560L), ++tobe(0x3c547b1aL), tobe(0xee4dbac6L), tobe(0x9ca6e515L), tobe(0x4ebf24c9L)}, ++{ ++tobe(0x00000000L), tobe(0x01d8ac87L), tobe(0x03b1590eL), tobe(0x0269f589L), ++tobe(0x0762b21cL), tobe(0x06ba1e9bL), tobe(0x04d3eb12L), tobe(0x050b4795L), ++tobe(0x0ec56438L), tobe(0x0f1dc8bfL), tobe(0x0d743d36L), tobe(0x0cac91b1L), ++tobe(0x09a7d624L), tobe(0x087f7aa3L), tobe(0x0a168f2aL), tobe(0x0bce23adL), ++tobe(0x1d8ac870L), tobe(0x1c5264f7L), tobe(0x1e3b917eL), tobe(0x1fe33df9L), ++tobe(0x1ae87a6cL), tobe(0x1b30d6ebL), tobe(0x19592362L), tobe(0x18818fe5L), ++tobe(0x134fac48L), tobe(0x129700cfL), tobe(0x10fef546L), tobe(0x112659c1L), ++tobe(0x142d1e54L), tobe(0x15f5b2d3L), tobe(0x179c475aL), tobe(0x1644ebddL), ++tobe(0x3b1590e0L), tobe(0x3acd3c67L), tobe(0x38a4c9eeL), tobe(0x397c6569L), ++tobe(0x3c7722fcL), tobe(0x3daf8e7bL), tobe(0x3fc67bf2L), tobe(0x3e1ed775L), ++tobe(0x35d0f4d8L), tobe(0x3408585fL), tobe(0x3661add6L), tobe(0x37b90151L), ++tobe(0x32b246c4L), tobe(0x336aea43L), tobe(0x31031fcaL), tobe(0x30dbb34dL), ++tobe(0x269f5890L), tobe(0x2747f417L), tobe(0x252e019eL), tobe(0x24f6ad19L), ++tobe(0x21fdea8cL), tobe(0x2025460bL), tobe(0x224cb382L), tobe(0x23941f05L), ++tobe(0x285a3ca8L), tobe(0x2982902fL), tobe(0x2beb65a6L), tobe(0x2a33c921L), ++tobe(0x2f388eb4L), tobe(0x2ee02233L), tobe(0x2c89d7baL), tobe(0x2d517b3dL), ++tobe(0x762b21c0L), tobe(0x77f38d47L), tobe(0x759a78ceL), tobe(0x7442d449L), ++tobe(0x714993dcL), tobe(0x70913f5bL), tobe(0x72f8cad2L), tobe(0x73206655L), ++tobe(0x78ee45f8L), tobe(0x7936e97fL), tobe(0x7b5f1cf6L), tobe(0x7a87b071L), ++tobe(0x7f8cf7e4L), tobe(0x7e545b63L), tobe(0x7c3daeeaL), tobe(0x7de5026dL), ++tobe(0x6ba1e9b0L), tobe(0x6a794537L), tobe(0x6810b0beL), tobe(0x69c81c39L), ++tobe(0x6cc35bacL), tobe(0x6d1bf72bL), tobe(0x6f7202a2L), tobe(0x6eaaae25L), ++tobe(0x65648d88L), tobe(0x64bc210fL), tobe(0x66d5d486L), tobe(0x670d7801L), ++tobe(0x62063f94L), tobe(0x63de9313L), tobe(0x61b7669aL), tobe(0x606fca1dL), ++tobe(0x4d3eb120L), tobe(0x4ce61da7L), tobe(0x4e8fe82eL), tobe(0x4f5744a9L), ++tobe(0x4a5c033cL), tobe(0x4b84afbbL), tobe(0x49ed5a32L), tobe(0x4835f6b5L), ++tobe(0x43fbd518L), tobe(0x4223799fL), tobe(0x404a8c16L), tobe(0x41922091L), ++tobe(0x44996704L), tobe(0x4541cb83L), tobe(0x47283e0aL), tobe(0x46f0928dL), ++tobe(0x50b47950L), tobe(0x516cd5d7L), tobe(0x5305205eL), tobe(0x52dd8cd9L), ++tobe(0x57d6cb4cL), tobe(0x560e67cbL), tobe(0x54679242L), tobe(0x55bf3ec5L), ++tobe(0x5e711d68L), tobe(0x5fa9b1efL), tobe(0x5dc04466L), tobe(0x5c18e8e1L), ++tobe(0x5913af74L), tobe(0x58cb03f3L), tobe(0x5aa2f67aL), tobe(0x5b7a5afdL), ++tobe(0xec564380L), tobe(0xed8eef07L), tobe(0xefe71a8eL), tobe(0xee3fb609L), ++tobe(0xeb34f19cL), tobe(0xeaec5d1bL), tobe(0xe885a892L), tobe(0xe95d0415L), ++tobe(0xe29327b8L), tobe(0xe34b8b3fL), tobe(0xe1227eb6L), tobe(0xe0fad231L), ++tobe(0xe5f195a4L), tobe(0xe4293923L), tobe(0xe640ccaaL), tobe(0xe798602dL), ++tobe(0xf1dc8bf0L), tobe(0xf0042777L), tobe(0xf26dd2feL), tobe(0xf3b57e79L), ++tobe(0xf6be39ecL), tobe(0xf766956bL), tobe(0xf50f60e2L), tobe(0xf4d7cc65L), ++tobe(0xff19efc8L), tobe(0xfec1434fL), tobe(0xfca8b6c6L), tobe(0xfd701a41L), ++tobe(0xf87b5dd4L), tobe(0xf9a3f153L), tobe(0xfbca04daL), tobe(0xfa12a85dL), ++tobe(0xd743d360L), tobe(0xd69b7fe7L), tobe(0xd4f28a6eL), tobe(0xd52a26e9L), ++tobe(0xd021617cL), tobe(0xd1f9cdfbL), tobe(0xd3903872L), tobe(0xd24894f5L), ++tobe(0xd986b758L), tobe(0xd85e1bdfL), tobe(0xda37ee56L), tobe(0xdbef42d1L), ++tobe(0xdee40544L), tobe(0xdf3ca9c3L), tobe(0xdd555c4aL), tobe(0xdc8df0cdL), ++tobe(0xcac91b10L), tobe(0xcb11b797L), tobe(0xc978421eL), tobe(0xc8a0ee99L), ++tobe(0xcdaba90cL), tobe(0xcc73058bL), tobe(0xce1af002L), tobe(0xcfc25c85L), ++tobe(0xc40c7f28L), tobe(0xc5d4d3afL), tobe(0xc7bd2626L), tobe(0xc6658aa1L), ++tobe(0xc36ecd34L), tobe(0xc2b661b3L), tobe(0xc0df943aL), tobe(0xc10738bdL), ++tobe(0x9a7d6240L), tobe(0x9ba5cec7L), tobe(0x99cc3b4eL), tobe(0x981497c9L), ++tobe(0x9d1fd05cL), tobe(0x9cc77cdbL), tobe(0x9eae8952L), tobe(0x9f7625d5L), ++tobe(0x94b80678L), tobe(0x9560aaffL), tobe(0x97095f76L), tobe(0x96d1f3f1L), ++tobe(0x93dab464L), tobe(0x920218e3L), tobe(0x906bed6aL), tobe(0x91b341edL), ++tobe(0x87f7aa30L), tobe(0x862f06b7L), tobe(0x8446f33eL), tobe(0x859e5fb9L), ++tobe(0x8095182cL), tobe(0x814db4abL), tobe(0x83244122L), tobe(0x82fceda5L), ++tobe(0x8932ce08L), tobe(0x88ea628fL), tobe(0x8a839706L), tobe(0x8b5b3b81L), ++tobe(0x8e507c14L), tobe(0x8f88d093L), tobe(0x8de1251aL), tobe(0x8c39899dL), ++tobe(0xa168f2a0L), tobe(0xa0b05e27L), tobe(0xa2d9abaeL), tobe(0xa3010729L), ++tobe(0xa60a40bcL), tobe(0xa7d2ec3bL), tobe(0xa5bb19b2L), tobe(0xa463b535L), ++tobe(0xafad9698L), tobe(0xae753a1fL), tobe(0xac1ccf96L), tobe(0xadc46311L), ++tobe(0xa8cf2484L), tobe(0xa9178803L), tobe(0xab7e7d8aL), tobe(0xaaa6d10dL), ++tobe(0xbce23ad0L), tobe(0xbd3a9657L), tobe(0xbf5363deL), tobe(0xbe8bcf59L), ++tobe(0xbb8088ccL), tobe(0xba58244bL), tobe(0xb831d1c2L), tobe(0xb9e97d45L), ++tobe(0xb2275ee8L), tobe(0xb3fff26fL), tobe(0xb19607e6L), tobe(0xb04eab61L), ++tobe(0xb545ecf4L), tobe(0xb49d4073L), tobe(0xb6f4b5faL), tobe(0xb72c197dL)}, ++{ ++tobe(0x00000000L), tobe(0xdc6d9ab7L), tobe(0xbc1a28d9L), tobe(0x6077b26eL), ++tobe(0x7cf54c05L), tobe(0xa098d6b2L), tobe(0xc0ef64dcL), tobe(0x1c82fe6bL), ++tobe(0xf9ea980aL), tobe(0x258702bdL), tobe(0x45f0b0d3L), tobe(0x999d2a64L), ++tobe(0x851fd40fL), tobe(0x59724eb8L), tobe(0x3905fcd6L), tobe(0xe5686661L), ++tobe(0xf7142da3L), tobe(0x2b79b714L), tobe(0x4b0e057aL), tobe(0x97639fcdL), ++tobe(0x8be161a6L), tobe(0x578cfb11L), tobe(0x37fb497fL), tobe(0xeb96d3c8L), ++tobe(0x0efeb5a9L), tobe(0xd2932f1eL), tobe(0xb2e49d70L), tobe(0x6e8907c7L), ++tobe(0x720bf9acL), tobe(0xae66631bL), tobe(0xce11d175L), tobe(0x127c4bc2L), ++tobe(0xeae946f1L), tobe(0x3684dc46L), tobe(0x56f36e28L), tobe(0x8a9ef49fL), ++tobe(0x961c0af4L), tobe(0x4a719043L), tobe(0x2a06222dL), tobe(0xf66bb89aL), ++tobe(0x1303defbL), tobe(0xcf6e444cL), tobe(0xaf19f622L), tobe(0x73746c95L), ++tobe(0x6ff692feL), tobe(0xb39b0849L), tobe(0xd3ecba27L), tobe(0x0f812090L), ++tobe(0x1dfd6b52L), tobe(0xc190f1e5L), tobe(0xa1e7438bL), tobe(0x7d8ad93cL), ++tobe(0x61082757L), tobe(0xbd65bde0L), tobe(0xdd120f8eL), tobe(0x017f9539L), ++tobe(0xe417f358L), tobe(0x387a69efL), tobe(0x580ddb81L), tobe(0x84604136L), ++tobe(0x98e2bf5dL), tobe(0x448f25eaL), tobe(0x24f89784L), tobe(0xf8950d33L), ++tobe(0xd1139055L), tobe(0x0d7e0ae2L), tobe(0x6d09b88cL), tobe(0xb164223bL), ++tobe(0xade6dc50L), tobe(0x718b46e7L), tobe(0x11fcf489L), tobe(0xcd916e3eL), ++tobe(0x28f9085fL), tobe(0xf49492e8L), tobe(0x94e32086L), tobe(0x488eba31L), ++tobe(0x540c445aL), tobe(0x8861deedL), tobe(0xe8166c83L), tobe(0x347bf634L), ++tobe(0x2607bdf6L), tobe(0xfa6a2741L), tobe(0x9a1d952fL), tobe(0x46700f98L), ++tobe(0x5af2f1f3L), tobe(0x869f6b44L), tobe(0xe6e8d92aL), tobe(0x3a85439dL), ++tobe(0xdfed25fcL), tobe(0x0380bf4bL), tobe(0x63f70d25L), tobe(0xbf9a9792L), ++tobe(0xa31869f9L), tobe(0x7f75f34eL), tobe(0x1f024120L), tobe(0xc36fdb97L), ++tobe(0x3bfad6a4L), tobe(0xe7974c13L), tobe(0x87e0fe7dL), tobe(0x5b8d64caL), ++tobe(0x470f9aa1L), tobe(0x9b620016L), tobe(0xfb15b278L), tobe(0x277828cfL), ++tobe(0xc2104eaeL), tobe(0x1e7dd419L), tobe(0x7e0a6677L), tobe(0xa267fcc0L), ++tobe(0xbee502abL), tobe(0x6288981cL), tobe(0x02ff2a72L), tobe(0xde92b0c5L), ++tobe(0xcceefb07L), tobe(0x108361b0L), tobe(0x70f4d3deL), tobe(0xac994969L), ++tobe(0xb01bb702L), tobe(0x6c762db5L), tobe(0x0c019fdbL), tobe(0xd06c056cL), ++tobe(0x3504630dL), tobe(0xe969f9baL), tobe(0x891e4bd4L), tobe(0x5573d163L), ++tobe(0x49f12f08L), tobe(0x959cb5bfL), tobe(0xf5eb07d1L), tobe(0x29869d66L), ++tobe(0xa6e63d1dL), tobe(0x7a8ba7aaL), tobe(0x1afc15c4L), tobe(0xc6918f73L), ++tobe(0xda137118L), tobe(0x067eebafL), tobe(0x660959c1L), tobe(0xba64c376L), ++tobe(0x5f0ca517L), tobe(0x83613fa0L), tobe(0xe3168dceL), tobe(0x3f7b1779L), ++tobe(0x23f9e912L), tobe(0xff9473a5L), tobe(0x9fe3c1cbL), tobe(0x438e5b7cL), ++tobe(0x51f210beL), tobe(0x8d9f8a09L), tobe(0xede83867L), tobe(0x3185a2d0L), ++tobe(0x2d075cbbL), tobe(0xf16ac60cL), tobe(0x911d7462L), tobe(0x4d70eed5L), ++tobe(0xa81888b4L), tobe(0x74751203L), tobe(0x1402a06dL), tobe(0xc86f3adaL), ++tobe(0xd4edc4b1L), tobe(0x08805e06L), tobe(0x68f7ec68L), tobe(0xb49a76dfL), ++tobe(0x4c0f7becL), tobe(0x9062e15bL), tobe(0xf0155335L), tobe(0x2c78c982L), ++tobe(0x30fa37e9L), tobe(0xec97ad5eL), tobe(0x8ce01f30L), tobe(0x508d8587L), ++tobe(0xb5e5e3e6L), tobe(0x69887951L), tobe(0x09ffcb3fL), tobe(0xd5925188L), ++tobe(0xc910afe3L), tobe(0x157d3554L), tobe(0x750a873aL), tobe(0xa9671d8dL), ++tobe(0xbb1b564fL), tobe(0x6776ccf8L), tobe(0x07017e96L), tobe(0xdb6ce421L), ++tobe(0xc7ee1a4aL), tobe(0x1b8380fdL), tobe(0x7bf43293L), tobe(0xa799a824L), ++tobe(0x42f1ce45L), tobe(0x9e9c54f2L), tobe(0xfeebe69cL), tobe(0x22867c2bL), ++tobe(0x3e048240L), tobe(0xe26918f7L), tobe(0x821eaa99L), tobe(0x5e73302eL), ++tobe(0x77f5ad48L), tobe(0xab9837ffL), tobe(0xcbef8591L), tobe(0x17821f26L), ++tobe(0x0b00e14dL), tobe(0xd76d7bfaL), tobe(0xb71ac994L), tobe(0x6b775323L), ++tobe(0x8e1f3542L), tobe(0x5272aff5L), tobe(0x32051d9bL), tobe(0xee68872cL), ++tobe(0xf2ea7947L), tobe(0x2e87e3f0L), tobe(0x4ef0519eL), tobe(0x929dcb29L), ++tobe(0x80e180ebL), tobe(0x5c8c1a5cL), tobe(0x3cfba832L), tobe(0xe0963285L), ++tobe(0xfc14cceeL), tobe(0x20795659L), tobe(0x400ee437L), tobe(0x9c637e80L), ++tobe(0x790b18e1L), tobe(0xa5668256L), tobe(0xc5113038L), tobe(0x197caa8fL), ++tobe(0x05fe54e4L), tobe(0xd993ce53L), tobe(0xb9e47c3dL), tobe(0x6589e68aL), ++tobe(0x9d1cebb9L), tobe(0x4171710eL), tobe(0x2106c360L), tobe(0xfd6b59d7L), ++tobe(0xe1e9a7bcL), tobe(0x3d843d0bL), tobe(0x5df38f65L), tobe(0x819e15d2L), ++tobe(0x64f673b3L), tobe(0xb89be904L), tobe(0xd8ec5b6aL), tobe(0x0481c1ddL), ++tobe(0x18033fb6L), tobe(0xc46ea501L), tobe(0xa419176fL), tobe(0x78748dd8L), ++tobe(0x6a08c61aL), tobe(0xb6655cadL), tobe(0xd612eec3L), tobe(0x0a7f7474L), ++tobe(0x16fd8a1fL), tobe(0xca9010a8L), tobe(0xaae7a2c6L), tobe(0x768a3871L), ++tobe(0x93e25e10L), tobe(0x4f8fc4a7L), tobe(0x2ff876c9L), tobe(0xf395ec7eL), ++tobe(0xef171215L), tobe(0x337a88a2L), tobe(0x530d3accL), tobe(0x8f60a07bL)}, ++{ ++tobe(0x00000000L), tobe(0x490d678dL), tobe(0x921acf1aL), tobe(0xdb17a897L), ++tobe(0x20f48383L), tobe(0x69f9e40eL), tobe(0xb2ee4c99L), tobe(0xfbe32b14L), ++tobe(0x41e90706L), tobe(0x08e4608bL), tobe(0xd3f3c81cL), tobe(0x9afeaf91L), ++tobe(0x611d8485L), tobe(0x2810e308L), tobe(0xf3074b9fL), tobe(0xba0a2c12L), ++tobe(0x83d20e0cL), tobe(0xcadf6981L), tobe(0x11c8c116L), tobe(0x58c5a69bL), ++tobe(0xa3268d8fL), tobe(0xea2bea02L), tobe(0x313c4295L), tobe(0x78312518L), ++tobe(0xc23b090aL), tobe(0x8b366e87L), tobe(0x5021c610L), tobe(0x192ca19dL), ++tobe(0xe2cf8a89L), tobe(0xabc2ed04L), tobe(0x70d54593L), tobe(0x39d8221eL), ++tobe(0x036501afL), tobe(0x4a686622L), tobe(0x917fceb5L), tobe(0xd872a938L), ++tobe(0x2391822cL), tobe(0x6a9ce5a1L), tobe(0xb18b4d36L), tobe(0xf8862abbL), ++tobe(0x428c06a9L), tobe(0x0b816124L), tobe(0xd096c9b3L), tobe(0x999bae3eL), ++tobe(0x6278852aL), tobe(0x2b75e2a7L), tobe(0xf0624a30L), tobe(0xb96f2dbdL), ++tobe(0x80b70fa3L), tobe(0xc9ba682eL), tobe(0x12adc0b9L), tobe(0x5ba0a734L), ++tobe(0xa0438c20L), tobe(0xe94eebadL), tobe(0x3259433aL), tobe(0x7b5424b7L), ++tobe(0xc15e08a5L), tobe(0x88536f28L), tobe(0x5344c7bfL), tobe(0x1a49a032L), ++tobe(0xe1aa8b26L), tobe(0xa8a7ecabL), tobe(0x73b0443cL), tobe(0x3abd23b1L), ++tobe(0x06ca035eL), tobe(0x4fc764d3L), tobe(0x94d0cc44L), tobe(0xddddabc9L), ++tobe(0x263e80ddL), tobe(0x6f33e750L), tobe(0xb4244fc7L), tobe(0xfd29284aL), ++tobe(0x47230458L), tobe(0x0e2e63d5L), tobe(0xd539cb42L), tobe(0x9c34accfL), ++tobe(0x67d787dbL), tobe(0x2edae056L), tobe(0xf5cd48c1L), tobe(0xbcc02f4cL), ++tobe(0x85180d52L), tobe(0xcc156adfL), tobe(0x1702c248L), tobe(0x5e0fa5c5L), ++tobe(0xa5ec8ed1L), tobe(0xece1e95cL), tobe(0x37f641cbL), tobe(0x7efb2646L), ++tobe(0xc4f10a54L), tobe(0x8dfc6dd9L), tobe(0x56ebc54eL), tobe(0x1fe6a2c3L), ++tobe(0xe40589d7L), tobe(0xad08ee5aL), tobe(0x761f46cdL), tobe(0x3f122140L), ++tobe(0x05af02f1L), tobe(0x4ca2657cL), tobe(0x97b5cdebL), tobe(0xdeb8aa66L), ++tobe(0x255b8172L), tobe(0x6c56e6ffL), tobe(0xb7414e68L), tobe(0xfe4c29e5L), ++tobe(0x444605f7L), tobe(0x0d4b627aL), tobe(0xd65ccaedL), tobe(0x9f51ad60L), ++tobe(0x64b28674L), tobe(0x2dbfe1f9L), tobe(0xf6a8496eL), tobe(0xbfa52ee3L), ++tobe(0x867d0cfdL), tobe(0xcf706b70L), tobe(0x1467c3e7L), tobe(0x5d6aa46aL), ++tobe(0xa6898f7eL), tobe(0xef84e8f3L), tobe(0x34934064L), tobe(0x7d9e27e9L), ++tobe(0xc7940bfbL), tobe(0x8e996c76L), tobe(0x558ec4e1L), tobe(0x1c83a36cL), ++tobe(0xe7608878L), tobe(0xae6deff5L), tobe(0x757a4762L), tobe(0x3c7720efL), ++tobe(0x0d9406bcL), tobe(0x44996131L), tobe(0x9f8ec9a6L), tobe(0xd683ae2bL), ++tobe(0x2d60853fL), tobe(0x646de2b2L), tobe(0xbf7a4a25L), tobe(0xf6772da8L), ++tobe(0x4c7d01baL), tobe(0x05706637L), tobe(0xde67cea0L), tobe(0x976aa92dL), ++tobe(0x6c898239L), tobe(0x2584e5b4L), tobe(0xfe934d23L), tobe(0xb79e2aaeL), ++tobe(0x8e4608b0L), tobe(0xc74b6f3dL), tobe(0x1c5cc7aaL), tobe(0x5551a027L), ++tobe(0xaeb28b33L), tobe(0xe7bfecbeL), tobe(0x3ca84429L), tobe(0x75a523a4L), ++tobe(0xcfaf0fb6L), tobe(0x86a2683bL), tobe(0x5db5c0acL), tobe(0x14b8a721L), ++tobe(0xef5b8c35L), tobe(0xa656ebb8L), tobe(0x7d41432fL), tobe(0x344c24a2L), ++tobe(0x0ef10713L), tobe(0x47fc609eL), tobe(0x9cebc809L), tobe(0xd5e6af84L), ++tobe(0x2e058490L), tobe(0x6708e31dL), tobe(0xbc1f4b8aL), tobe(0xf5122c07L), ++tobe(0x4f180015L), tobe(0x06156798L), tobe(0xdd02cf0fL), tobe(0x940fa882L), ++tobe(0x6fec8396L), tobe(0x26e1e41bL), tobe(0xfdf64c8cL), tobe(0xb4fb2b01L), ++tobe(0x8d23091fL), tobe(0xc42e6e92L), tobe(0x1f39c605L), tobe(0x5634a188L), ++tobe(0xadd78a9cL), tobe(0xe4daed11L), tobe(0x3fcd4586L), tobe(0x76c0220bL), ++tobe(0xccca0e19L), tobe(0x85c76994L), tobe(0x5ed0c103L), tobe(0x17dda68eL), ++tobe(0xec3e8d9aL), tobe(0xa533ea17L), tobe(0x7e244280L), tobe(0x3729250dL), ++tobe(0x0b5e05e2L), tobe(0x4253626fL), tobe(0x9944caf8L), tobe(0xd049ad75L), ++tobe(0x2baa8661L), tobe(0x62a7e1ecL), tobe(0xb9b0497bL), tobe(0xf0bd2ef6L), ++tobe(0x4ab702e4L), tobe(0x03ba6569L), tobe(0xd8adcdfeL), tobe(0x91a0aa73L), ++tobe(0x6a438167L), tobe(0x234ee6eaL), tobe(0xf8594e7dL), tobe(0xb15429f0L), ++tobe(0x888c0beeL), tobe(0xc1816c63L), tobe(0x1a96c4f4L), tobe(0x539ba379L), ++tobe(0xa878886dL), tobe(0xe175efe0L), tobe(0x3a624777L), tobe(0x736f20faL), ++tobe(0xc9650ce8L), tobe(0x80686b65L), tobe(0x5b7fc3f2L), tobe(0x1272a47fL), ++tobe(0xe9918f6bL), tobe(0xa09ce8e6L), tobe(0x7b8b4071L), tobe(0x328627fcL), ++tobe(0x083b044dL), tobe(0x413663c0L), tobe(0x9a21cb57L), tobe(0xd32cacdaL), ++tobe(0x28cf87ceL), tobe(0x61c2e043L), tobe(0xbad548d4L), tobe(0xf3d82f59L), ++tobe(0x49d2034bL), tobe(0x00df64c6L), tobe(0xdbc8cc51L), tobe(0x92c5abdcL), ++tobe(0x692680c8L), tobe(0x202be745L), tobe(0xfb3c4fd2L), tobe(0xb231285fL), ++tobe(0x8be90a41L), tobe(0xc2e46dccL), tobe(0x19f3c55bL), tobe(0x50fea2d6L), ++tobe(0xab1d89c2L), tobe(0xe210ee4fL), tobe(0x390746d8L), tobe(0x700a2155L), ++tobe(0xca000d47L), tobe(0x830d6acaL), tobe(0x581ac25dL), tobe(0x1117a5d0L), ++tobe(0xeaf48ec4L), tobe(0xa3f9e949L), tobe(0x78ee41deL), tobe(0x31e32653L)}, ++{ ++tobe(0x00000000L), tobe(0x1b280d78L), tobe(0x36501af0L), tobe(0x2d781788L), ++tobe(0x6ca035e0L), tobe(0x77883898L), tobe(0x5af02f10L), tobe(0x41d82268L), ++tobe(0xd9406bc0L), tobe(0xc26866b8L), tobe(0xef107130L), tobe(0xf4387c48L), ++tobe(0xb5e05e20L), tobe(0xaec85358L), tobe(0x83b044d0L), tobe(0x989849a8L), ++tobe(0xb641ca37L), tobe(0xad69c74fL), tobe(0x8011d0c7L), tobe(0x9b39ddbfL), ++tobe(0xdae1ffd7L), tobe(0xc1c9f2afL), tobe(0xecb1e527L), tobe(0xf799e85fL), ++tobe(0x6f01a1f7L), tobe(0x7429ac8fL), tobe(0x5951bb07L), tobe(0x4279b67fL), ++tobe(0x03a19417L), tobe(0x1889996fL), tobe(0x35f18ee7L), tobe(0x2ed9839fL), ++tobe(0x684289d9L), tobe(0x736a84a1L), tobe(0x5e129329L), tobe(0x453a9e51L), ++tobe(0x04e2bc39L), tobe(0x1fcab141L), tobe(0x32b2a6c9L), tobe(0x299aabb1L), ++tobe(0xb102e219L), tobe(0xaa2aef61L), tobe(0x8752f8e9L), tobe(0x9c7af591L), ++tobe(0xdda2d7f9L), tobe(0xc68ada81L), tobe(0xebf2cd09L), tobe(0xf0dac071L), ++tobe(0xde0343eeL), tobe(0xc52b4e96L), tobe(0xe853591eL), tobe(0xf37b5466L), ++tobe(0xb2a3760eL), tobe(0xa98b7b76L), tobe(0x84f36cfeL), tobe(0x9fdb6186L), ++tobe(0x0743282eL), tobe(0x1c6b2556L), tobe(0x311332deL), tobe(0x2a3b3fa6L), ++tobe(0x6be31dceL), tobe(0x70cb10b6L), tobe(0x5db3073eL), tobe(0x469b0a46L), ++tobe(0xd08513b2L), tobe(0xcbad1ecaL), tobe(0xe6d50942L), tobe(0xfdfd043aL), ++tobe(0xbc252652L), tobe(0xa70d2b2aL), tobe(0x8a753ca2L), tobe(0x915d31daL), ++tobe(0x09c57872L), tobe(0x12ed750aL), tobe(0x3f956282L), tobe(0x24bd6ffaL), ++tobe(0x65654d92L), tobe(0x7e4d40eaL), tobe(0x53355762L), tobe(0x481d5a1aL), ++tobe(0x66c4d985L), tobe(0x7decd4fdL), tobe(0x5094c375L), tobe(0x4bbcce0dL), ++tobe(0x0a64ec65L), tobe(0x114ce11dL), tobe(0x3c34f695L), tobe(0x271cfbedL), ++tobe(0xbf84b245L), tobe(0xa4acbf3dL), tobe(0x89d4a8b5L), tobe(0x92fca5cdL), ++tobe(0xd32487a5L), tobe(0xc80c8addL), tobe(0xe5749d55L), tobe(0xfe5c902dL), ++tobe(0xb8c79a6bL), tobe(0xa3ef9713L), tobe(0x8e97809bL), tobe(0x95bf8de3L), ++tobe(0xd467af8bL), tobe(0xcf4fa2f3L), tobe(0xe237b57bL), tobe(0xf91fb803L), ++tobe(0x6187f1abL), tobe(0x7aaffcd3L), tobe(0x57d7eb5bL), tobe(0x4cffe623L), ++tobe(0x0d27c44bL), tobe(0x160fc933L), tobe(0x3b77debbL), tobe(0x205fd3c3L), ++tobe(0x0e86505cL), tobe(0x15ae5d24L), tobe(0x38d64aacL), tobe(0x23fe47d4L), ++tobe(0x622665bcL), tobe(0x790e68c4L), tobe(0x54767f4cL), tobe(0x4f5e7234L), ++tobe(0xd7c63b9cL), tobe(0xccee36e4L), tobe(0xe196216cL), tobe(0xfabe2c14L), ++tobe(0xbb660e7cL), tobe(0xa04e0304L), tobe(0x8d36148cL), tobe(0x961e19f4L), ++tobe(0xa5cb3ad3L), tobe(0xbee337abL), tobe(0x939b2023L), tobe(0x88b32d5bL), ++tobe(0xc96b0f33L), tobe(0xd243024bL), tobe(0xff3b15c3L), tobe(0xe41318bbL), ++tobe(0x7c8b5113L), tobe(0x67a35c6bL), tobe(0x4adb4be3L), tobe(0x51f3469bL), ++tobe(0x102b64f3L), tobe(0x0b03698bL), tobe(0x267b7e03L), tobe(0x3d53737bL), ++tobe(0x138af0e4L), tobe(0x08a2fd9cL), tobe(0x25daea14L), tobe(0x3ef2e76cL), ++tobe(0x7f2ac504L), tobe(0x6402c87cL), tobe(0x497adff4L), tobe(0x5252d28cL), ++tobe(0xcaca9b24L), tobe(0xd1e2965cL), tobe(0xfc9a81d4L), tobe(0xe7b28cacL), ++tobe(0xa66aaec4L), tobe(0xbd42a3bcL), tobe(0x903ab434L), tobe(0x8b12b94cL), ++tobe(0xcd89b30aL), tobe(0xd6a1be72L), tobe(0xfbd9a9faL), tobe(0xe0f1a482L), ++tobe(0xa12986eaL), tobe(0xba018b92L), tobe(0x97799c1aL), tobe(0x8c519162L), ++tobe(0x14c9d8caL), tobe(0x0fe1d5b2L), tobe(0x2299c23aL), tobe(0x39b1cf42L), ++tobe(0x7869ed2aL), tobe(0x6341e052L), tobe(0x4e39f7daL), tobe(0x5511faa2L), ++tobe(0x7bc8793dL), tobe(0x60e07445L), tobe(0x4d9863cdL), tobe(0x56b06eb5L), ++tobe(0x17684cddL), tobe(0x0c4041a5L), tobe(0x2138562dL), tobe(0x3a105b55L), ++tobe(0xa28812fdL), tobe(0xb9a01f85L), tobe(0x94d8080dL), tobe(0x8ff00575L), ++tobe(0xce28271dL), tobe(0xd5002a65L), tobe(0xf8783dedL), tobe(0xe3503095L), ++tobe(0x754e2961L), tobe(0x6e662419L), tobe(0x431e3391L), tobe(0x58363ee9L), ++tobe(0x19ee1c81L), tobe(0x02c611f9L), tobe(0x2fbe0671L), tobe(0x34960b09L), ++tobe(0xac0e42a1L), tobe(0xb7264fd9L), tobe(0x9a5e5851L), tobe(0x81765529L), ++tobe(0xc0ae7741L), tobe(0xdb867a39L), tobe(0xf6fe6db1L), tobe(0xedd660c9L), ++tobe(0xc30fe356L), tobe(0xd827ee2eL), tobe(0xf55ff9a6L), tobe(0xee77f4deL), ++tobe(0xafafd6b6L), tobe(0xb487dbceL), tobe(0x99ffcc46L), tobe(0x82d7c13eL), ++tobe(0x1a4f8896L), tobe(0x016785eeL), tobe(0x2c1f9266L), tobe(0x37379f1eL), ++tobe(0x76efbd76L), tobe(0x6dc7b00eL), tobe(0x40bfa786L), tobe(0x5b97aafeL), ++tobe(0x1d0ca0b8L), tobe(0x0624adc0L), tobe(0x2b5cba48L), tobe(0x3074b730L), ++tobe(0x71ac9558L), tobe(0x6a849820L), tobe(0x47fc8fa8L), tobe(0x5cd482d0L), ++tobe(0xc44ccb78L), tobe(0xdf64c600L), tobe(0xf21cd188L), tobe(0xe934dcf0L), ++tobe(0xa8ecfe98L), tobe(0xb3c4f3e0L), tobe(0x9ebce468L), tobe(0x8594e910L), ++tobe(0xab4d6a8fL), tobe(0xb06567f7L), tobe(0x9d1d707fL), tobe(0x86357d07L), ++tobe(0xc7ed5f6fL), tobe(0xdcc55217L), tobe(0xf1bd459fL), tobe(0xea9548e7L), ++tobe(0x720d014fL), tobe(0x69250c37L), tobe(0x445d1bbfL), tobe(0x5f7516c7L), ++tobe(0x1ead34afL), tobe(0x058539d7L), tobe(0x28fd2e5fL), tobe(0x33d52327L)}, ++{ ++tobe(0x00000000L), tobe(0x4f576811L), tobe(0x9eaed022L), tobe(0xd1f9b833L), ++tobe(0x399cbdf3L), tobe(0x76cbd5e2L), tobe(0xa7326dd1L), tobe(0xe86505c0L), ++tobe(0x73397be6L), tobe(0x3c6e13f7L), tobe(0xed97abc4L), tobe(0xa2c0c3d5L), ++tobe(0x4aa5c615L), tobe(0x05f2ae04L), tobe(0xd40b1637L), tobe(0x9b5c7e26L), ++tobe(0xe672f7ccL), tobe(0xa9259fddL), tobe(0x78dc27eeL), tobe(0x378b4fffL), ++tobe(0xdfee4a3fL), tobe(0x90b9222eL), tobe(0x41409a1dL), tobe(0x0e17f20cL), ++tobe(0x954b8c2aL), tobe(0xda1ce43bL), tobe(0x0be55c08L), tobe(0x44b23419L), ++tobe(0xacd731d9L), tobe(0xe38059c8L), tobe(0x3279e1fbL), tobe(0x7d2e89eaL), ++tobe(0xc824f22fL), tobe(0x87739a3eL), tobe(0x568a220dL), tobe(0x19dd4a1cL), ++tobe(0xf1b84fdcL), tobe(0xbeef27cdL), tobe(0x6f169ffeL), tobe(0x2041f7efL), ++tobe(0xbb1d89c9L), tobe(0xf44ae1d8L), tobe(0x25b359ebL), tobe(0x6ae431faL), ++tobe(0x8281343aL), tobe(0xcdd65c2bL), tobe(0x1c2fe418L), tobe(0x53788c09L), ++tobe(0x2e5605e3L), tobe(0x61016df2L), tobe(0xb0f8d5c1L), tobe(0xffafbdd0L), ++tobe(0x17cab810L), tobe(0x589dd001L), tobe(0x89646832L), tobe(0xc6330023L), ++tobe(0x5d6f7e05L), tobe(0x12381614L), tobe(0xc3c1ae27L), tobe(0x8c96c636L), ++tobe(0x64f3c3f6L), tobe(0x2ba4abe7L), tobe(0xfa5d13d4L), tobe(0xb50a7bc5L), ++tobe(0x9488f9e9L), tobe(0xdbdf91f8L), tobe(0x0a2629cbL), tobe(0x457141daL), ++tobe(0xad14441aL), tobe(0xe2432c0bL), tobe(0x33ba9438L), tobe(0x7cedfc29L), ++tobe(0xe7b1820fL), tobe(0xa8e6ea1eL), tobe(0x791f522dL), tobe(0x36483a3cL), ++tobe(0xde2d3ffcL), tobe(0x917a57edL), tobe(0x4083efdeL), tobe(0x0fd487cfL), ++tobe(0x72fa0e25L), tobe(0x3dad6634L), tobe(0xec54de07L), tobe(0xa303b616L), ++tobe(0x4b66b3d6L), tobe(0x0431dbc7L), tobe(0xd5c863f4L), tobe(0x9a9f0be5L), ++tobe(0x01c375c3L), tobe(0x4e941dd2L), tobe(0x9f6da5e1L), tobe(0xd03acdf0L), ++tobe(0x385fc830L), tobe(0x7708a021L), tobe(0xa6f11812L), tobe(0xe9a67003L), ++tobe(0x5cac0bc6L), tobe(0x13fb63d7L), tobe(0xc202dbe4L), tobe(0x8d55b3f5L), ++tobe(0x6530b635L), tobe(0x2a67de24L), tobe(0xfb9e6617L), tobe(0xb4c90e06L), ++tobe(0x2f957020L), tobe(0x60c21831L), tobe(0xb13ba002L), tobe(0xfe6cc813L), ++tobe(0x1609cdd3L), tobe(0x595ea5c2L), tobe(0x88a71df1L), tobe(0xc7f075e0L), ++tobe(0xbadefc0aL), tobe(0xf589941bL), tobe(0x24702c28L), tobe(0x6b274439L), ++tobe(0x834241f9L), tobe(0xcc1529e8L), tobe(0x1dec91dbL), tobe(0x52bbf9caL), ++tobe(0xc9e787ecL), tobe(0x86b0effdL), tobe(0x574957ceL), tobe(0x181e3fdfL), ++tobe(0xf07b3a1fL), tobe(0xbf2c520eL), tobe(0x6ed5ea3dL), tobe(0x2182822cL), ++tobe(0x2dd0ee65L), tobe(0x62878674L), tobe(0xb37e3e47L), tobe(0xfc295656L), ++tobe(0x144c5396L), tobe(0x5b1b3b87L), tobe(0x8ae283b4L), tobe(0xc5b5eba5L), ++tobe(0x5ee99583L), tobe(0x11befd92L), tobe(0xc04745a1L), tobe(0x8f102db0L), ++tobe(0x67752870L), tobe(0x28224061L), tobe(0xf9dbf852L), tobe(0xb68c9043L), ++tobe(0xcba219a9L), tobe(0x84f571b8L), tobe(0x550cc98bL), tobe(0x1a5ba19aL), ++tobe(0xf23ea45aL), tobe(0xbd69cc4bL), tobe(0x6c907478L), tobe(0x23c71c69L), ++tobe(0xb89b624fL), tobe(0xf7cc0a5eL), tobe(0x2635b26dL), tobe(0x6962da7cL), ++tobe(0x8107dfbcL), tobe(0xce50b7adL), tobe(0x1fa90f9eL), tobe(0x50fe678fL), ++tobe(0xe5f41c4aL), tobe(0xaaa3745bL), tobe(0x7b5acc68L), tobe(0x340da479L), ++tobe(0xdc68a1b9L), tobe(0x933fc9a8L), tobe(0x42c6719bL), tobe(0x0d91198aL), ++tobe(0x96cd67acL), tobe(0xd99a0fbdL), tobe(0x0863b78eL), tobe(0x4734df9fL), ++tobe(0xaf51da5fL), tobe(0xe006b24eL), tobe(0x31ff0a7dL), tobe(0x7ea8626cL), ++tobe(0x0386eb86L), tobe(0x4cd18397L), tobe(0x9d283ba4L), tobe(0xd27f53b5L), ++tobe(0x3a1a5675L), tobe(0x754d3e64L), tobe(0xa4b48657L), tobe(0xebe3ee46L), ++tobe(0x70bf9060L), tobe(0x3fe8f871L), tobe(0xee114042L), tobe(0xa1462853L), ++tobe(0x49232d93L), tobe(0x06744582L), tobe(0xd78dfdb1L), tobe(0x98da95a0L), ++tobe(0xb958178cL), tobe(0xf60f7f9dL), tobe(0x27f6c7aeL), tobe(0x68a1afbfL), ++tobe(0x80c4aa7fL), tobe(0xcf93c26eL), tobe(0x1e6a7a5dL), tobe(0x513d124cL), ++tobe(0xca616c6aL), tobe(0x8536047bL), tobe(0x54cfbc48L), tobe(0x1b98d459L), ++tobe(0xf3fdd199L), tobe(0xbcaab988L), tobe(0x6d5301bbL), tobe(0x220469aaL), ++tobe(0x5f2ae040L), tobe(0x107d8851L), tobe(0xc1843062L), tobe(0x8ed35873L), ++tobe(0x66b65db3L), tobe(0x29e135a2L), tobe(0xf8188d91L), tobe(0xb74fe580L), ++tobe(0x2c139ba6L), tobe(0x6344f3b7L), tobe(0xb2bd4b84L), tobe(0xfdea2395L), ++tobe(0x158f2655L), tobe(0x5ad84e44L), tobe(0x8b21f677L), tobe(0xc4769e66L), ++tobe(0x717ce5a3L), tobe(0x3e2b8db2L), tobe(0xefd23581L), tobe(0xa0855d90L), ++tobe(0x48e05850L), tobe(0x07b73041L), tobe(0xd64e8872L), tobe(0x9919e063L), ++tobe(0x02459e45L), tobe(0x4d12f654L), tobe(0x9ceb4e67L), tobe(0xd3bc2676L), ++tobe(0x3bd923b6L), tobe(0x748e4ba7L), tobe(0xa577f394L), tobe(0xea209b85L), ++tobe(0x970e126fL), tobe(0xd8597a7eL), tobe(0x09a0c24dL), tobe(0x46f7aa5cL), ++tobe(0xae92af9cL), tobe(0xe1c5c78dL), tobe(0x303c7fbeL), tobe(0x7f6b17afL), ++tobe(0xe4376989L), tobe(0xab600198L), tobe(0x7a99b9abL), tobe(0x35ced1baL), ++tobe(0xddabd47aL), tobe(0x92fcbc6bL), tobe(0x43050458L), tobe(0x0c526c49L)}, ++{ ++tobe(0x00000000L), tobe(0x5ba1dccaL), tobe(0xb743b994L), tobe(0xece2655eL), ++tobe(0x6a466e9fL), tobe(0x31e7b255L), tobe(0xdd05d70bL), tobe(0x86a40bc1L), ++tobe(0xd48cdd3eL), tobe(0x8f2d01f4L), tobe(0x63cf64aaL), tobe(0x386eb860L), ++tobe(0xbecab3a1L), tobe(0xe56b6f6bL), tobe(0x09890a35L), tobe(0x5228d6ffL), ++tobe(0xadd8a7cbL), tobe(0xf6797b01L), tobe(0x1a9b1e5fL), tobe(0x413ac295L), ++tobe(0xc79ec954L), tobe(0x9c3f159eL), tobe(0x70dd70c0L), tobe(0x2b7cac0aL), ++tobe(0x79547af5L), tobe(0x22f5a63fL), tobe(0xce17c361L), tobe(0x95b61fabL), ++tobe(0x1312146aL), tobe(0x48b3c8a0L), tobe(0xa451adfeL), tobe(0xfff07134L), ++tobe(0x5f705221L), tobe(0x04d18eebL), tobe(0xe833ebb5L), tobe(0xb392377fL), ++tobe(0x35363cbeL), tobe(0x6e97e074L), tobe(0x8275852aL), tobe(0xd9d459e0L), ++tobe(0x8bfc8f1fL), tobe(0xd05d53d5L), tobe(0x3cbf368bL), tobe(0x671eea41L), ++tobe(0xe1bae180L), tobe(0xba1b3d4aL), tobe(0x56f95814L), tobe(0x0d5884deL), ++tobe(0xf2a8f5eaL), tobe(0xa9092920L), tobe(0x45eb4c7eL), tobe(0x1e4a90b4L), ++tobe(0x98ee9b75L), tobe(0xc34f47bfL), tobe(0x2fad22e1L), tobe(0x740cfe2bL), ++tobe(0x262428d4L), tobe(0x7d85f41eL), tobe(0x91679140L), tobe(0xcac64d8aL), ++tobe(0x4c62464bL), tobe(0x17c39a81L), tobe(0xfb21ffdfL), tobe(0xa0802315L), ++tobe(0xbee0a442L), tobe(0xe5417888L), tobe(0x09a31dd6L), tobe(0x5202c11cL), ++tobe(0xd4a6caddL), tobe(0x8f071617L), tobe(0x63e57349L), tobe(0x3844af83L), ++tobe(0x6a6c797cL), tobe(0x31cda5b6L), tobe(0xdd2fc0e8L), tobe(0x868e1c22L), ++tobe(0x002a17e3L), tobe(0x5b8bcb29L), tobe(0xb769ae77L), tobe(0xecc872bdL), ++tobe(0x13380389L), tobe(0x4899df43L), tobe(0xa47bba1dL), tobe(0xffda66d7L), ++tobe(0x797e6d16L), tobe(0x22dfb1dcL), tobe(0xce3dd482L), tobe(0x959c0848L), ++tobe(0xc7b4deb7L), tobe(0x9c15027dL), tobe(0x70f76723L), tobe(0x2b56bbe9L), ++tobe(0xadf2b028L), tobe(0xf6536ce2L), tobe(0x1ab109bcL), tobe(0x4110d576L), ++tobe(0xe190f663L), tobe(0xba312aa9L), tobe(0x56d34ff7L), tobe(0x0d72933dL), ++tobe(0x8bd698fcL), tobe(0xd0774436L), tobe(0x3c952168L), tobe(0x6734fda2L), ++tobe(0x351c2b5dL), tobe(0x6ebdf797L), tobe(0x825f92c9L), tobe(0xd9fe4e03L), ++tobe(0x5f5a45c2L), tobe(0x04fb9908L), tobe(0xe819fc56L), tobe(0xb3b8209cL), ++tobe(0x4c4851a8L), tobe(0x17e98d62L), tobe(0xfb0be83cL), tobe(0xa0aa34f6L), ++tobe(0x260e3f37L), tobe(0x7dafe3fdL), tobe(0x914d86a3L), tobe(0xcaec5a69L), ++tobe(0x98c48c96L), tobe(0xc365505cL), tobe(0x2f873502L), tobe(0x7426e9c8L), ++tobe(0xf282e209L), tobe(0xa9233ec3L), tobe(0x45c15b9dL), tobe(0x1e608757L), ++tobe(0x79005533L), tobe(0x22a189f9L), tobe(0xce43eca7L), tobe(0x95e2306dL), ++tobe(0x13463bacL), tobe(0x48e7e766L), tobe(0xa4058238L), tobe(0xffa45ef2L), ++tobe(0xad8c880dL), tobe(0xf62d54c7L), tobe(0x1acf3199L), tobe(0x416eed53L), ++tobe(0xc7cae692L), tobe(0x9c6b3a58L), tobe(0x70895f06L), tobe(0x2b2883ccL), ++tobe(0xd4d8f2f8L), tobe(0x8f792e32L), tobe(0x639b4b6cL), tobe(0x383a97a6L), ++tobe(0xbe9e9c67L), tobe(0xe53f40adL), tobe(0x09dd25f3L), tobe(0x527cf939L), ++tobe(0x00542fc6L), tobe(0x5bf5f30cL), tobe(0xb7179652L), tobe(0xecb64a98L), ++tobe(0x6a124159L), tobe(0x31b39d93L), tobe(0xdd51f8cdL), tobe(0x86f02407L), ++tobe(0x26700712L), tobe(0x7dd1dbd8L), tobe(0x9133be86L), tobe(0xca92624cL), ++tobe(0x4c36698dL), tobe(0x1797b547L), tobe(0xfb75d019L), tobe(0xa0d40cd3L), ++tobe(0xf2fcda2cL), tobe(0xa95d06e6L), tobe(0x45bf63b8L), tobe(0x1e1ebf72L), ++tobe(0x98bab4b3L), tobe(0xc31b6879L), tobe(0x2ff90d27L), tobe(0x7458d1edL), ++tobe(0x8ba8a0d9L), tobe(0xd0097c13L), tobe(0x3ceb194dL), tobe(0x674ac587L), ++tobe(0xe1eece46L), tobe(0xba4f128cL), tobe(0x56ad77d2L), tobe(0x0d0cab18L), ++tobe(0x5f247de7L), tobe(0x0485a12dL), tobe(0xe867c473L), tobe(0xb3c618b9L), ++tobe(0x35621378L), tobe(0x6ec3cfb2L), tobe(0x8221aaecL), tobe(0xd9807626L), ++tobe(0xc7e0f171L), tobe(0x9c412dbbL), tobe(0x70a348e5L), tobe(0x2b02942fL), ++tobe(0xada69feeL), tobe(0xf6074324L), tobe(0x1ae5267aL), tobe(0x4144fab0L), ++tobe(0x136c2c4fL), tobe(0x48cdf085L), tobe(0xa42f95dbL), tobe(0xff8e4911L), ++tobe(0x792a42d0L), tobe(0x228b9e1aL), tobe(0xce69fb44L), tobe(0x95c8278eL), ++tobe(0x6a3856baL), tobe(0x31998a70L), tobe(0xdd7bef2eL), tobe(0x86da33e4L), ++tobe(0x007e3825L), tobe(0x5bdfe4efL), tobe(0xb73d81b1L), tobe(0xec9c5d7bL), ++tobe(0xbeb48b84L), tobe(0xe515574eL), tobe(0x09f73210L), tobe(0x5256eedaL), ++tobe(0xd4f2e51bL), tobe(0x8f5339d1L), tobe(0x63b15c8fL), tobe(0x38108045L), ++tobe(0x9890a350L), tobe(0xc3317f9aL), tobe(0x2fd31ac4L), tobe(0x7472c60eL), ++tobe(0xf2d6cdcfL), tobe(0xa9771105L), tobe(0x4595745bL), tobe(0x1e34a891L), ++tobe(0x4c1c7e6eL), tobe(0x17bda2a4L), tobe(0xfb5fc7faL), tobe(0xa0fe1b30L), ++tobe(0x265a10f1L), tobe(0x7dfbcc3bL), tobe(0x9119a965L), tobe(0xcab875afL), ++tobe(0x3548049bL), tobe(0x6ee9d851L), tobe(0x820bbd0fL), tobe(0xd9aa61c5L), ++tobe(0x5f0e6a04L), tobe(0x04afb6ceL), tobe(0xe84dd390L), tobe(0xb3ec0f5aL), ++tobe(0xe1c4d9a5L), tobe(0xba65056fL), tobe(0x56876031L), tobe(0x0d26bcfbL), ++tobe(0x8b82b73aL), tobe(0xd0236bf0L), tobe(0x3cc10eaeL), tobe(0x6760d264L)}, ++}; ++static const uint32_t crc32ctable_le[8][256] = {{ ++tole(0x00000000L), tole(0xf26b8303L), tole(0xe13b70f7L), tole(0x1350f3f4L), ++tole(0xc79a971fL), tole(0x35f1141cL), tole(0x26a1e7e8L), tole(0xd4ca64ebL), ++tole(0x8ad958cfL), tole(0x78b2dbccL), tole(0x6be22838L), tole(0x9989ab3bL), ++tole(0x4d43cfd0L), tole(0xbf284cd3L), tole(0xac78bf27L), tole(0x5e133c24L), ++tole(0x105ec76fL), tole(0xe235446cL), tole(0xf165b798L), tole(0x030e349bL), ++tole(0xd7c45070L), tole(0x25afd373L), tole(0x36ff2087L), tole(0xc494a384L), ++tole(0x9a879fa0L), tole(0x68ec1ca3L), tole(0x7bbcef57L), tole(0x89d76c54L), ++tole(0x5d1d08bfL), tole(0xaf768bbcL), tole(0xbc267848L), tole(0x4e4dfb4bL), ++tole(0x20bd8edeL), tole(0xd2d60dddL), tole(0xc186fe29L), tole(0x33ed7d2aL), ++tole(0xe72719c1L), tole(0x154c9ac2L), tole(0x061c6936L), tole(0xf477ea35L), ++tole(0xaa64d611L), tole(0x580f5512L), tole(0x4b5fa6e6L), tole(0xb93425e5L), ++tole(0x6dfe410eL), tole(0x9f95c20dL), tole(0x8cc531f9L), tole(0x7eaeb2faL), ++tole(0x30e349b1L), tole(0xc288cab2L), tole(0xd1d83946L), tole(0x23b3ba45L), ++tole(0xf779deaeL), tole(0x05125dadL), tole(0x1642ae59L), tole(0xe4292d5aL), ++tole(0xba3a117eL), tole(0x4851927dL), tole(0x5b016189L), tole(0xa96ae28aL), ++tole(0x7da08661L), tole(0x8fcb0562L), tole(0x9c9bf696L), tole(0x6ef07595L), ++tole(0x417b1dbcL), tole(0xb3109ebfL), tole(0xa0406d4bL), tole(0x522bee48L), ++tole(0x86e18aa3L), tole(0x748a09a0L), tole(0x67dafa54L), tole(0x95b17957L), ++tole(0xcba24573L), tole(0x39c9c670L), tole(0x2a993584L), tole(0xd8f2b687L), ++tole(0x0c38d26cL), tole(0xfe53516fL), tole(0xed03a29bL), tole(0x1f682198L), ++tole(0x5125dad3L), tole(0xa34e59d0L), tole(0xb01eaa24L), tole(0x42752927L), ++tole(0x96bf4dccL), tole(0x64d4cecfL), tole(0x77843d3bL), tole(0x85efbe38L), ++tole(0xdbfc821cL), tole(0x2997011fL), tole(0x3ac7f2ebL), tole(0xc8ac71e8L), ++tole(0x1c661503L), tole(0xee0d9600L), tole(0xfd5d65f4L), tole(0x0f36e6f7L), ++tole(0x61c69362L), tole(0x93ad1061L), tole(0x80fde395L), tole(0x72966096L), ++tole(0xa65c047dL), tole(0x5437877eL), tole(0x4767748aL), tole(0xb50cf789L), ++tole(0xeb1fcbadL), tole(0x197448aeL), tole(0x0a24bb5aL), tole(0xf84f3859L), ++tole(0x2c855cb2L), tole(0xdeeedfb1L), tole(0xcdbe2c45L), tole(0x3fd5af46L), ++tole(0x7198540dL), tole(0x83f3d70eL), tole(0x90a324faL), tole(0x62c8a7f9L), ++tole(0xb602c312L), tole(0x44694011L), tole(0x5739b3e5L), tole(0xa55230e6L), ++tole(0xfb410cc2L), tole(0x092a8fc1L), tole(0x1a7a7c35L), tole(0xe811ff36L), ++tole(0x3cdb9bddL), tole(0xceb018deL), tole(0xdde0eb2aL), tole(0x2f8b6829L), ++tole(0x82f63b78L), tole(0x709db87bL), tole(0x63cd4b8fL), tole(0x91a6c88cL), ++tole(0x456cac67L), tole(0xb7072f64L), tole(0xa457dc90L), tole(0x563c5f93L), ++tole(0x082f63b7L), tole(0xfa44e0b4L), tole(0xe9141340L), tole(0x1b7f9043L), ++tole(0xcfb5f4a8L), tole(0x3dde77abL), tole(0x2e8e845fL), tole(0xdce5075cL), ++tole(0x92a8fc17L), tole(0x60c37f14L), tole(0x73938ce0L), tole(0x81f80fe3L), ++tole(0x55326b08L), tole(0xa759e80bL), tole(0xb4091bffL), tole(0x466298fcL), ++tole(0x1871a4d8L), tole(0xea1a27dbL), tole(0xf94ad42fL), tole(0x0b21572cL), ++tole(0xdfeb33c7L), tole(0x2d80b0c4L), tole(0x3ed04330L), tole(0xccbbc033L), ++tole(0xa24bb5a6L), tole(0x502036a5L), tole(0x4370c551L), tole(0xb11b4652L), ++tole(0x65d122b9L), tole(0x97baa1baL), tole(0x84ea524eL), tole(0x7681d14dL), ++tole(0x2892ed69L), tole(0xdaf96e6aL), tole(0xc9a99d9eL), tole(0x3bc21e9dL), ++tole(0xef087a76L), tole(0x1d63f975L), tole(0x0e330a81L), tole(0xfc588982L), ++tole(0xb21572c9L), tole(0x407ef1caL), tole(0x532e023eL), tole(0xa145813dL), ++tole(0x758fe5d6L), tole(0x87e466d5L), tole(0x94b49521L), tole(0x66df1622L), ++tole(0x38cc2a06L), tole(0xcaa7a905L), tole(0xd9f75af1L), tole(0x2b9cd9f2L), ++tole(0xff56bd19L), tole(0x0d3d3e1aL), tole(0x1e6dcdeeL), tole(0xec064eedL), ++tole(0xc38d26c4L), tole(0x31e6a5c7L), tole(0x22b65633L), tole(0xd0ddd530L), ++tole(0x0417b1dbL), tole(0xf67c32d8L), tole(0xe52cc12cL), tole(0x1747422fL), ++tole(0x49547e0bL), tole(0xbb3ffd08L), tole(0xa86f0efcL), tole(0x5a048dffL), ++tole(0x8ecee914L), tole(0x7ca56a17L), tole(0x6ff599e3L), tole(0x9d9e1ae0L), ++tole(0xd3d3e1abL), tole(0x21b862a8L), tole(0x32e8915cL), tole(0xc083125fL), ++tole(0x144976b4L), tole(0xe622f5b7L), tole(0xf5720643L), tole(0x07198540L), ++tole(0x590ab964L), tole(0xab613a67L), tole(0xb831c993L), tole(0x4a5a4a90L), ++tole(0x9e902e7bL), tole(0x6cfbad78L), tole(0x7fab5e8cL), tole(0x8dc0dd8fL), ++tole(0xe330a81aL), tole(0x115b2b19L), tole(0x020bd8edL), tole(0xf0605beeL), ++tole(0x24aa3f05L), tole(0xd6c1bc06L), tole(0xc5914ff2L), tole(0x37faccf1L), ++tole(0x69e9f0d5L), tole(0x9b8273d6L), tole(0x88d28022L), tole(0x7ab90321L), ++tole(0xae7367caL), tole(0x5c18e4c9L), tole(0x4f48173dL), tole(0xbd23943eL), ++tole(0xf36e6f75L), tole(0x0105ec76L), tole(0x12551f82L), tole(0xe03e9c81L), ++tole(0x34f4f86aL), tole(0xc69f7b69L), tole(0xd5cf889dL), tole(0x27a40b9eL), ++tole(0x79b737baL), tole(0x8bdcb4b9L), tole(0x988c474dL), tole(0x6ae7c44eL), ++tole(0xbe2da0a5L), tole(0x4c4623a6L), tole(0x5f16d052L), tole(0xad7d5351L)}, ++{ ++tole(0x00000000L), tole(0x13a29877L), tole(0x274530eeL), tole(0x34e7a899L), ++tole(0x4e8a61dcL), tole(0x5d28f9abL), tole(0x69cf5132L), tole(0x7a6dc945L), ++tole(0x9d14c3b8L), tole(0x8eb65bcfL), tole(0xba51f356L), tole(0xa9f36b21L), ++tole(0xd39ea264L), tole(0xc03c3a13L), tole(0xf4db928aL), tole(0xe7790afdL), ++tole(0x3fc5f181L), tole(0x2c6769f6L), tole(0x1880c16fL), tole(0x0b225918L), ++tole(0x714f905dL), tole(0x62ed082aL), tole(0x560aa0b3L), tole(0x45a838c4L), ++tole(0xa2d13239L), tole(0xb173aa4eL), tole(0x859402d7L), tole(0x96369aa0L), ++tole(0xec5b53e5L), tole(0xfff9cb92L), tole(0xcb1e630bL), tole(0xd8bcfb7cL), ++tole(0x7f8be302L), tole(0x6c297b75L), tole(0x58ced3ecL), tole(0x4b6c4b9bL), ++tole(0x310182deL), tole(0x22a31aa9L), tole(0x1644b230L), tole(0x05e62a47L), ++tole(0xe29f20baL), tole(0xf13db8cdL), tole(0xc5da1054L), tole(0xd6788823L), ++tole(0xac154166L), tole(0xbfb7d911L), tole(0x8b507188L), tole(0x98f2e9ffL), ++tole(0x404e1283L), tole(0x53ec8af4L), tole(0x670b226dL), tole(0x74a9ba1aL), ++tole(0x0ec4735fL), tole(0x1d66eb28L), tole(0x298143b1L), tole(0x3a23dbc6L), ++tole(0xdd5ad13bL), tole(0xcef8494cL), tole(0xfa1fe1d5L), tole(0xe9bd79a2L), ++tole(0x93d0b0e7L), tole(0x80722890L), tole(0xb4958009L), tole(0xa737187eL), ++tole(0xff17c604L), tole(0xecb55e73L), tole(0xd852f6eaL), tole(0xcbf06e9dL), ++tole(0xb19da7d8L), tole(0xa23f3fafL), tole(0x96d89736L), tole(0x857a0f41L), ++tole(0x620305bcL), tole(0x71a19dcbL), tole(0x45463552L), tole(0x56e4ad25L), ++tole(0x2c896460L), tole(0x3f2bfc17L), tole(0x0bcc548eL), tole(0x186eccf9L), ++tole(0xc0d23785L), tole(0xd370aff2L), tole(0xe797076bL), tole(0xf4359f1cL), ++tole(0x8e585659L), tole(0x9dface2eL), tole(0xa91d66b7L), tole(0xbabffec0L), ++tole(0x5dc6f43dL), tole(0x4e646c4aL), tole(0x7a83c4d3L), tole(0x69215ca4L), ++tole(0x134c95e1L), tole(0x00ee0d96L), tole(0x3409a50fL), tole(0x27ab3d78L), ++tole(0x809c2506L), tole(0x933ebd71L), tole(0xa7d915e8L), tole(0xb47b8d9fL), ++tole(0xce1644daL), tole(0xddb4dcadL), tole(0xe9537434L), tole(0xfaf1ec43L), ++tole(0x1d88e6beL), tole(0x0e2a7ec9L), tole(0x3acdd650L), tole(0x296f4e27L), ++tole(0x53028762L), tole(0x40a01f15L), tole(0x7447b78cL), tole(0x67e52ffbL), ++tole(0xbf59d487L), tole(0xacfb4cf0L), tole(0x981ce469L), tole(0x8bbe7c1eL), ++tole(0xf1d3b55bL), tole(0xe2712d2cL), tole(0xd69685b5L), tole(0xc5341dc2L), ++tole(0x224d173fL), tole(0x31ef8f48L), tole(0x050827d1L), tole(0x16aabfa6L), ++tole(0x6cc776e3L), tole(0x7f65ee94L), tole(0x4b82460dL), tole(0x5820de7aL), ++tole(0xfbc3faf9L), tole(0xe861628eL), tole(0xdc86ca17L), tole(0xcf245260L), ++tole(0xb5499b25L), tole(0xa6eb0352L), tole(0x920cabcbL), tole(0x81ae33bcL), ++tole(0x66d73941L), tole(0x7575a136L), tole(0x419209afL), tole(0x523091d8L), ++tole(0x285d589dL), tole(0x3bffc0eaL), tole(0x0f186873L), tole(0x1cbaf004L), ++tole(0xc4060b78L), tole(0xd7a4930fL), tole(0xe3433b96L), tole(0xf0e1a3e1L), ++tole(0x8a8c6aa4L), tole(0x992ef2d3L), tole(0xadc95a4aL), tole(0xbe6bc23dL), ++tole(0x5912c8c0L), tole(0x4ab050b7L), tole(0x7e57f82eL), tole(0x6df56059L), ++tole(0x1798a91cL), tole(0x043a316bL), tole(0x30dd99f2L), tole(0x237f0185L), ++tole(0x844819fbL), tole(0x97ea818cL), tole(0xa30d2915L), tole(0xb0afb162L), ++tole(0xcac27827L), tole(0xd960e050L), tole(0xed8748c9L), tole(0xfe25d0beL), ++tole(0x195cda43L), tole(0x0afe4234L), tole(0x3e19eaadL), tole(0x2dbb72daL), ++tole(0x57d6bb9fL), tole(0x447423e8L), tole(0x70938b71L), tole(0x63311306L), ++tole(0xbb8de87aL), tole(0xa82f700dL), tole(0x9cc8d894L), tole(0x8f6a40e3L), ++tole(0xf50789a6L), tole(0xe6a511d1L), tole(0xd242b948L), tole(0xc1e0213fL), ++tole(0x26992bc2L), tole(0x353bb3b5L), tole(0x01dc1b2cL), tole(0x127e835bL), ++tole(0x68134a1eL), tole(0x7bb1d269L), tole(0x4f567af0L), tole(0x5cf4e287L), ++tole(0x04d43cfdL), tole(0x1776a48aL), tole(0x23910c13L), tole(0x30339464L), ++tole(0x4a5e5d21L), tole(0x59fcc556L), tole(0x6d1b6dcfL), tole(0x7eb9f5b8L), ++tole(0x99c0ff45L), tole(0x8a626732L), tole(0xbe85cfabL), tole(0xad2757dcL), ++tole(0xd74a9e99L), tole(0xc4e806eeL), tole(0xf00fae77L), tole(0xe3ad3600L), ++tole(0x3b11cd7cL), tole(0x28b3550bL), tole(0x1c54fd92L), tole(0x0ff665e5L), ++tole(0x759baca0L), tole(0x663934d7L), tole(0x52de9c4eL), tole(0x417c0439L), ++tole(0xa6050ec4L), tole(0xb5a796b3L), tole(0x81403e2aL), tole(0x92e2a65dL), ++tole(0xe88f6f18L), tole(0xfb2df76fL), tole(0xcfca5ff6L), tole(0xdc68c781L), ++tole(0x7b5fdfffL), tole(0x68fd4788L), tole(0x5c1aef11L), tole(0x4fb87766L), ++tole(0x35d5be23L), tole(0x26772654L), tole(0x12908ecdL), tole(0x013216baL), ++tole(0xe64b1c47L), tole(0xf5e98430L), tole(0xc10e2ca9L), tole(0xd2acb4deL), ++tole(0xa8c17d9bL), tole(0xbb63e5ecL), tole(0x8f844d75L), tole(0x9c26d502L), ++tole(0x449a2e7eL), tole(0x5738b609L), tole(0x63df1e90L), tole(0x707d86e7L), ++tole(0x0a104fa2L), tole(0x19b2d7d5L), tole(0x2d557f4cL), tole(0x3ef7e73bL), ++tole(0xd98eedc6L), tole(0xca2c75b1L), tole(0xfecbdd28L), tole(0xed69455fL), ++tole(0x97048c1aL), tole(0x84a6146dL), tole(0xb041bcf4L), tole(0xa3e32483L)}, ++{ ++tole(0x00000000L), tole(0xa541927eL), tole(0x4f6f520dL), tole(0xea2ec073L), ++tole(0x9edea41aL), tole(0x3b9f3664L), tole(0xd1b1f617L), tole(0x74f06469L), ++tole(0x38513ec5L), tole(0x9d10acbbL), tole(0x773e6cc8L), tole(0xd27ffeb6L), ++tole(0xa68f9adfL), tole(0x03ce08a1L), tole(0xe9e0c8d2L), tole(0x4ca15aacL), ++tole(0x70a27d8aL), tole(0xd5e3eff4L), tole(0x3fcd2f87L), tole(0x9a8cbdf9L), ++tole(0xee7cd990L), tole(0x4b3d4beeL), tole(0xa1138b9dL), tole(0x045219e3L), ++tole(0x48f3434fL), tole(0xedb2d131L), tole(0x079c1142L), tole(0xa2dd833cL), ++tole(0xd62de755L), tole(0x736c752bL), tole(0x9942b558L), tole(0x3c032726L), ++tole(0xe144fb14L), tole(0x4405696aL), tole(0xae2ba919L), tole(0x0b6a3b67L), ++tole(0x7f9a5f0eL), tole(0xdadbcd70L), tole(0x30f50d03L), tole(0x95b49f7dL), ++tole(0xd915c5d1L), tole(0x7c5457afL), tole(0x967a97dcL), tole(0x333b05a2L), ++tole(0x47cb61cbL), tole(0xe28af3b5L), tole(0x08a433c6L), tole(0xade5a1b8L), ++tole(0x91e6869eL), tole(0x34a714e0L), tole(0xde89d493L), tole(0x7bc846edL), ++tole(0x0f382284L), tole(0xaa79b0faL), tole(0x40577089L), tole(0xe516e2f7L), ++tole(0xa9b7b85bL), tole(0x0cf62a25L), tole(0xe6d8ea56L), tole(0x43997828L), ++tole(0x37691c41L), tole(0x92288e3fL), tole(0x78064e4cL), tole(0xdd47dc32L), ++tole(0xc76580d9L), tole(0x622412a7L), tole(0x880ad2d4L), tole(0x2d4b40aaL), ++tole(0x59bb24c3L), tole(0xfcfab6bdL), tole(0x16d476ceL), tole(0xb395e4b0L), ++tole(0xff34be1cL), tole(0x5a752c62L), tole(0xb05bec11L), tole(0x151a7e6fL), ++tole(0x61ea1a06L), tole(0xc4ab8878L), tole(0x2e85480bL), tole(0x8bc4da75L), ++tole(0xb7c7fd53L), tole(0x12866f2dL), tole(0xf8a8af5eL), tole(0x5de93d20L), ++tole(0x29195949L), tole(0x8c58cb37L), tole(0x66760b44L), tole(0xc337993aL), ++tole(0x8f96c396L), tole(0x2ad751e8L), tole(0xc0f9919bL), tole(0x65b803e5L), ++tole(0x1148678cL), tole(0xb409f5f2L), tole(0x5e273581L), tole(0xfb66a7ffL), ++tole(0x26217bcdL), tole(0x8360e9b3L), tole(0x694e29c0L), tole(0xcc0fbbbeL), ++tole(0xb8ffdfd7L), tole(0x1dbe4da9L), tole(0xf7908ddaL), tole(0x52d11fa4L), ++tole(0x1e704508L), tole(0xbb31d776L), tole(0x511f1705L), tole(0xf45e857bL), ++tole(0x80aee112L), tole(0x25ef736cL), tole(0xcfc1b31fL), tole(0x6a802161L), ++tole(0x56830647L), tole(0xf3c29439L), tole(0x19ec544aL), tole(0xbcadc634L), ++tole(0xc85da25dL), tole(0x6d1c3023L), tole(0x8732f050L), tole(0x2273622eL), ++tole(0x6ed23882L), tole(0xcb93aafcL), tole(0x21bd6a8fL), tole(0x84fcf8f1L), ++tole(0xf00c9c98L), tole(0x554d0ee6L), tole(0xbf63ce95L), tole(0x1a225cebL), ++tole(0x8b277743L), tole(0x2e66e53dL), tole(0xc448254eL), tole(0x6109b730L), ++tole(0x15f9d359L), tole(0xb0b84127L), tole(0x5a968154L), tole(0xffd7132aL), ++tole(0xb3764986L), tole(0x1637dbf8L), tole(0xfc191b8bL), tole(0x595889f5L), ++tole(0x2da8ed9cL), tole(0x88e97fe2L), tole(0x62c7bf91L), tole(0xc7862defL), ++tole(0xfb850ac9L), tole(0x5ec498b7L), tole(0xb4ea58c4L), tole(0x11abcabaL), ++tole(0x655baed3L), tole(0xc01a3cadL), tole(0x2a34fcdeL), tole(0x8f756ea0L), ++tole(0xc3d4340cL), tole(0x6695a672L), tole(0x8cbb6601L), tole(0x29faf47fL), ++tole(0x5d0a9016L), tole(0xf84b0268L), tole(0x1265c21bL), tole(0xb7245065L), ++tole(0x6a638c57L), tole(0xcf221e29L), tole(0x250cde5aL), tole(0x804d4c24L), ++tole(0xf4bd284dL), tole(0x51fcba33L), tole(0xbbd27a40L), tole(0x1e93e83eL), ++tole(0x5232b292L), tole(0xf77320ecL), tole(0x1d5de09fL), tole(0xb81c72e1L), ++tole(0xccec1688L), tole(0x69ad84f6L), tole(0x83834485L), tole(0x26c2d6fbL), ++tole(0x1ac1f1ddL), tole(0xbf8063a3L), tole(0x55aea3d0L), tole(0xf0ef31aeL), ++tole(0x841f55c7L), tole(0x215ec7b9L), tole(0xcb7007caL), tole(0x6e3195b4L), ++tole(0x2290cf18L), tole(0x87d15d66L), tole(0x6dff9d15L), tole(0xc8be0f6bL), ++tole(0xbc4e6b02L), tole(0x190ff97cL), tole(0xf321390fL), tole(0x5660ab71L), ++tole(0x4c42f79aL), tole(0xe90365e4L), tole(0x032da597L), tole(0xa66c37e9L), ++tole(0xd29c5380L), tole(0x77ddc1feL), tole(0x9df3018dL), tole(0x38b293f3L), ++tole(0x7413c95fL), tole(0xd1525b21L), tole(0x3b7c9b52L), tole(0x9e3d092cL), ++tole(0xeacd6d45L), tole(0x4f8cff3bL), tole(0xa5a23f48L), tole(0x00e3ad36L), ++tole(0x3ce08a10L), tole(0x99a1186eL), tole(0x738fd81dL), tole(0xd6ce4a63L), ++tole(0xa23e2e0aL), tole(0x077fbc74L), tole(0xed517c07L), tole(0x4810ee79L), ++tole(0x04b1b4d5L), tole(0xa1f026abL), tole(0x4bdee6d8L), tole(0xee9f74a6L), ++tole(0x9a6f10cfL), tole(0x3f2e82b1L), tole(0xd50042c2L), tole(0x7041d0bcL), ++tole(0xad060c8eL), tole(0x08479ef0L), tole(0xe2695e83L), tole(0x4728ccfdL), ++tole(0x33d8a894L), tole(0x96993aeaL), tole(0x7cb7fa99L), tole(0xd9f668e7L), ++tole(0x9557324bL), tole(0x3016a035L), tole(0xda386046L), tole(0x7f79f238L), ++tole(0x0b899651L), tole(0xaec8042fL), tole(0x44e6c45cL), tole(0xe1a75622L), ++tole(0xdda47104L), tole(0x78e5e37aL), tole(0x92cb2309L), tole(0x378ab177L), ++tole(0x437ad51eL), tole(0xe63b4760L), tole(0x0c158713L), tole(0xa954156dL), ++tole(0xe5f54fc1L), tole(0x40b4ddbfL), tole(0xaa9a1dccL), tole(0x0fdb8fb2L), ++tole(0x7b2bebdbL), tole(0xde6a79a5L), tole(0x3444b9d6L), tole(0x91052ba8L)}, ++{ ++tole(0x00000000L), tole(0xdd45aab8L), tole(0xbf672381L), tole(0x62228939L), ++tole(0x7b2231f3L), tole(0xa6679b4bL), tole(0xc4451272L), tole(0x1900b8caL), ++tole(0xf64463e6L), tole(0x2b01c95eL), tole(0x49234067L), tole(0x9466eadfL), ++tole(0x8d665215L), tole(0x5023f8adL), tole(0x32017194L), tole(0xef44db2cL), ++tole(0xe964b13dL), tole(0x34211b85L), tole(0x560392bcL), tole(0x8b463804L), ++tole(0x924680ceL), tole(0x4f032a76L), tole(0x2d21a34fL), tole(0xf06409f7L), ++tole(0x1f20d2dbL), tole(0xc2657863L), tole(0xa047f15aL), tole(0x7d025be2L), ++tole(0x6402e328L), tole(0xb9474990L), tole(0xdb65c0a9L), tole(0x06206a11L), ++tole(0xd725148bL), tole(0x0a60be33L), tole(0x6842370aL), tole(0xb5079db2L), ++tole(0xac072578L), tole(0x71428fc0L), tole(0x136006f9L), tole(0xce25ac41L), ++tole(0x2161776dL), tole(0xfc24ddd5L), tole(0x9e0654ecL), tole(0x4343fe54L), ++tole(0x5a43469eL), tole(0x8706ec26L), tole(0xe524651fL), tole(0x3861cfa7L), ++tole(0x3e41a5b6L), tole(0xe3040f0eL), tole(0x81268637L), tole(0x5c632c8fL), ++tole(0x45639445L), tole(0x98263efdL), tole(0xfa04b7c4L), tole(0x27411d7cL), ++tole(0xc805c650L), tole(0x15406ce8L), tole(0x7762e5d1L), tole(0xaa274f69L), ++tole(0xb327f7a3L), tole(0x6e625d1bL), tole(0x0c40d422L), tole(0xd1057e9aL), ++tole(0xaba65fe7L), tole(0x76e3f55fL), tole(0x14c17c66L), tole(0xc984d6deL), ++tole(0xd0846e14L), tole(0x0dc1c4acL), tole(0x6fe34d95L), tole(0xb2a6e72dL), ++tole(0x5de23c01L), tole(0x80a796b9L), tole(0xe2851f80L), tole(0x3fc0b538L), ++tole(0x26c00df2L), tole(0xfb85a74aL), tole(0x99a72e73L), tole(0x44e284cbL), ++tole(0x42c2eedaL), tole(0x9f874462L), tole(0xfda5cd5bL), tole(0x20e067e3L), ++tole(0x39e0df29L), tole(0xe4a57591L), tole(0x8687fca8L), tole(0x5bc25610L), ++tole(0xb4868d3cL), tole(0x69c32784L), tole(0x0be1aebdL), tole(0xd6a40405L), ++tole(0xcfa4bccfL), tole(0x12e11677L), tole(0x70c39f4eL), tole(0xad8635f6L), ++tole(0x7c834b6cL), tole(0xa1c6e1d4L), tole(0xc3e468edL), tole(0x1ea1c255L), ++tole(0x07a17a9fL), tole(0xdae4d027L), tole(0xb8c6591eL), tole(0x6583f3a6L), ++tole(0x8ac7288aL), tole(0x57828232L), tole(0x35a00b0bL), tole(0xe8e5a1b3L), ++tole(0xf1e51979L), tole(0x2ca0b3c1L), tole(0x4e823af8L), tole(0x93c79040L), ++tole(0x95e7fa51L), tole(0x48a250e9L), tole(0x2a80d9d0L), tole(0xf7c57368L), ++tole(0xeec5cba2L), tole(0x3380611aL), tole(0x51a2e823L), tole(0x8ce7429bL), ++tole(0x63a399b7L), tole(0xbee6330fL), tole(0xdcc4ba36L), tole(0x0181108eL), ++tole(0x1881a844L), tole(0xc5c402fcL), tole(0xa7e68bc5L), tole(0x7aa3217dL), ++tole(0x52a0c93fL), tole(0x8fe56387L), tole(0xedc7eabeL), tole(0x30824006L), ++tole(0x2982f8ccL), tole(0xf4c75274L), tole(0x96e5db4dL), tole(0x4ba071f5L), ++tole(0xa4e4aad9L), tole(0x79a10061L), tole(0x1b838958L), tole(0xc6c623e0L), ++tole(0xdfc69b2aL), tole(0x02833192L), tole(0x60a1b8abL), tole(0xbde41213L), ++tole(0xbbc47802L), tole(0x6681d2baL), tole(0x04a35b83L), tole(0xd9e6f13bL), ++tole(0xc0e649f1L), tole(0x1da3e349L), tole(0x7f816a70L), tole(0xa2c4c0c8L), ++tole(0x4d801be4L), tole(0x90c5b15cL), tole(0xf2e73865L), tole(0x2fa292ddL), ++tole(0x36a22a17L), tole(0xebe780afL), tole(0x89c50996L), tole(0x5480a32eL), ++tole(0x8585ddb4L), tole(0x58c0770cL), tole(0x3ae2fe35L), tole(0xe7a7548dL), ++tole(0xfea7ec47L), tole(0x23e246ffL), tole(0x41c0cfc6L), tole(0x9c85657eL), ++tole(0x73c1be52L), tole(0xae8414eaL), tole(0xcca69dd3L), tole(0x11e3376bL), ++tole(0x08e38fa1L), tole(0xd5a62519L), tole(0xb784ac20L), tole(0x6ac10698L), ++tole(0x6ce16c89L), tole(0xb1a4c631L), tole(0xd3864f08L), tole(0x0ec3e5b0L), ++tole(0x17c35d7aL), tole(0xca86f7c2L), tole(0xa8a47efbL), tole(0x75e1d443L), ++tole(0x9aa50f6fL), tole(0x47e0a5d7L), tole(0x25c22ceeL), tole(0xf8878656L), ++tole(0xe1873e9cL), tole(0x3cc29424L), tole(0x5ee01d1dL), tole(0x83a5b7a5L), ++tole(0xf90696d8L), tole(0x24433c60L), tole(0x4661b559L), tole(0x9b241fe1L), ++tole(0x8224a72bL), tole(0x5f610d93L), tole(0x3d4384aaL), tole(0xe0062e12L), ++tole(0x0f42f53eL), tole(0xd2075f86L), tole(0xb025d6bfL), tole(0x6d607c07L), ++tole(0x7460c4cdL), tole(0xa9256e75L), tole(0xcb07e74cL), tole(0x16424df4L), ++tole(0x106227e5L), tole(0xcd278d5dL), tole(0xaf050464L), tole(0x7240aedcL), ++tole(0x6b401616L), tole(0xb605bcaeL), tole(0xd4273597L), tole(0x09629f2fL), ++tole(0xe6264403L), tole(0x3b63eebbL), tole(0x59416782L), tole(0x8404cd3aL), ++tole(0x9d0475f0L), tole(0x4041df48L), tole(0x22635671L), tole(0xff26fcc9L), ++tole(0x2e238253L), tole(0xf36628ebL), tole(0x9144a1d2L), tole(0x4c010b6aL), ++tole(0x5501b3a0L), tole(0x88441918L), tole(0xea669021L), tole(0x37233a99L), ++tole(0xd867e1b5L), tole(0x05224b0dL), tole(0x6700c234L), tole(0xba45688cL), ++tole(0xa345d046L), tole(0x7e007afeL), tole(0x1c22f3c7L), tole(0xc167597fL), ++tole(0xc747336eL), tole(0x1a0299d6L), tole(0x782010efL), tole(0xa565ba57L), ++tole(0xbc65029dL), tole(0x6120a825L), tole(0x0302211cL), tole(0xde478ba4L), ++tole(0x31035088L), tole(0xec46fa30L), tole(0x8e647309L), tole(0x5321d9b1L), ++tole(0x4a21617bL), tole(0x9764cbc3L), tole(0xf54642faL), tole(0x2803e842L)}, ++{ ++tole(0x00000000L), tole(0x38116facL), tole(0x7022df58L), tole(0x4833b0f4L), ++tole(0xe045beb0L), tole(0xd854d11cL), tole(0x906761e8L), tole(0xa8760e44L), ++tole(0xc5670b91L), tole(0xfd76643dL), tole(0xb545d4c9L), tole(0x8d54bb65L), ++tole(0x2522b521L), tole(0x1d33da8dL), tole(0x55006a79L), tole(0x6d1105d5L), ++tole(0x8f2261d3L), tole(0xb7330e7fL), tole(0xff00be8bL), tole(0xc711d127L), ++tole(0x6f67df63L), tole(0x5776b0cfL), tole(0x1f45003bL), tole(0x27546f97L), ++tole(0x4a456a42L), tole(0x725405eeL), tole(0x3a67b51aL), tole(0x0276dab6L), ++tole(0xaa00d4f2L), tole(0x9211bb5eL), tole(0xda220baaL), tole(0xe2336406L), ++tole(0x1ba8b557L), tole(0x23b9dafbL), tole(0x6b8a6a0fL), tole(0x539b05a3L), ++tole(0xfbed0be7L), tole(0xc3fc644bL), tole(0x8bcfd4bfL), tole(0xb3debb13L), ++tole(0xdecfbec6L), tole(0xe6ded16aL), tole(0xaeed619eL), tole(0x96fc0e32L), ++tole(0x3e8a0076L), tole(0x069b6fdaL), tole(0x4ea8df2eL), tole(0x76b9b082L), ++tole(0x948ad484L), tole(0xac9bbb28L), tole(0xe4a80bdcL), tole(0xdcb96470L), ++tole(0x74cf6a34L), tole(0x4cde0598L), tole(0x04edb56cL), tole(0x3cfcdac0L), ++tole(0x51eddf15L), tole(0x69fcb0b9L), tole(0x21cf004dL), tole(0x19de6fe1L), ++tole(0xb1a861a5L), tole(0x89b90e09L), tole(0xc18abefdL), tole(0xf99bd151L), ++tole(0x37516aaeL), tole(0x0f400502L), tole(0x4773b5f6L), tole(0x7f62da5aL), ++tole(0xd714d41eL), tole(0xef05bbb2L), tole(0xa7360b46L), tole(0x9f2764eaL), ++tole(0xf236613fL), tole(0xca270e93L), tole(0x8214be67L), tole(0xba05d1cbL), ++tole(0x1273df8fL), tole(0x2a62b023L), tole(0x625100d7L), tole(0x5a406f7bL), ++tole(0xb8730b7dL), tole(0x806264d1L), tole(0xc851d425L), tole(0xf040bb89L), ++tole(0x5836b5cdL), tole(0x6027da61L), tole(0x28146a95L), tole(0x10050539L), ++tole(0x7d1400ecL), tole(0x45056f40L), tole(0x0d36dfb4L), tole(0x3527b018L), ++tole(0x9d51be5cL), tole(0xa540d1f0L), tole(0xed736104L), tole(0xd5620ea8L), ++tole(0x2cf9dff9L), tole(0x14e8b055L), tole(0x5cdb00a1L), tole(0x64ca6f0dL), ++tole(0xccbc6149L), tole(0xf4ad0ee5L), tole(0xbc9ebe11L), tole(0x848fd1bdL), ++tole(0xe99ed468L), tole(0xd18fbbc4L), tole(0x99bc0b30L), tole(0xa1ad649cL), ++tole(0x09db6ad8L), tole(0x31ca0574L), tole(0x79f9b580L), tole(0x41e8da2cL), ++tole(0xa3dbbe2aL), tole(0x9bcad186L), tole(0xd3f96172L), tole(0xebe80edeL), ++tole(0x439e009aL), tole(0x7b8f6f36L), tole(0x33bcdfc2L), tole(0x0badb06eL), ++tole(0x66bcb5bbL), tole(0x5eadda17L), tole(0x169e6ae3L), tole(0x2e8f054fL), ++tole(0x86f90b0bL), tole(0xbee864a7L), tole(0xf6dbd453L), tole(0xcecabbffL), ++tole(0x6ea2d55cL), tole(0x56b3baf0L), tole(0x1e800a04L), tole(0x269165a8L), ++tole(0x8ee76becL), tole(0xb6f60440L), tole(0xfec5b4b4L), tole(0xc6d4db18L), ++tole(0xabc5decdL), tole(0x93d4b161L), tole(0xdbe70195L), tole(0xe3f66e39L), ++tole(0x4b80607dL), tole(0x73910fd1L), tole(0x3ba2bf25L), tole(0x03b3d089L), ++tole(0xe180b48fL), tole(0xd991db23L), tole(0x91a26bd7L), tole(0xa9b3047bL), ++tole(0x01c50a3fL), tole(0x39d46593L), tole(0x71e7d567L), tole(0x49f6bacbL), ++tole(0x24e7bf1eL), tole(0x1cf6d0b2L), tole(0x54c56046L), tole(0x6cd40feaL), ++tole(0xc4a201aeL), tole(0xfcb36e02L), tole(0xb480def6L), tole(0x8c91b15aL), ++tole(0x750a600bL), tole(0x4d1b0fa7L), tole(0x0528bf53L), tole(0x3d39d0ffL), ++tole(0x954fdebbL), tole(0xad5eb117L), tole(0xe56d01e3L), tole(0xdd7c6e4fL), ++tole(0xb06d6b9aL), tole(0x887c0436L), tole(0xc04fb4c2L), tole(0xf85edb6eL), ++tole(0x5028d52aL), tole(0x6839ba86L), tole(0x200a0a72L), tole(0x181b65deL), ++tole(0xfa2801d8L), tole(0xc2396e74L), tole(0x8a0ade80L), tole(0xb21bb12cL), ++tole(0x1a6dbf68L), tole(0x227cd0c4L), tole(0x6a4f6030L), tole(0x525e0f9cL), ++tole(0x3f4f0a49L), tole(0x075e65e5L), tole(0x4f6dd511L), tole(0x777cbabdL), ++tole(0xdf0ab4f9L), tole(0xe71bdb55L), tole(0xaf286ba1L), tole(0x9739040dL), ++tole(0x59f3bff2L), tole(0x61e2d05eL), tole(0x29d160aaL), tole(0x11c00f06L), ++tole(0xb9b60142L), tole(0x81a76eeeL), tole(0xc994de1aL), tole(0xf185b1b6L), ++tole(0x9c94b463L), tole(0xa485dbcfL), tole(0xecb66b3bL), tole(0xd4a70497L), ++tole(0x7cd10ad3L), tole(0x44c0657fL), tole(0x0cf3d58bL), tole(0x34e2ba27L), ++tole(0xd6d1de21L), tole(0xeec0b18dL), tole(0xa6f30179L), tole(0x9ee26ed5L), ++tole(0x36946091L), tole(0x0e850f3dL), tole(0x46b6bfc9L), tole(0x7ea7d065L), ++tole(0x13b6d5b0L), tole(0x2ba7ba1cL), tole(0x63940ae8L), tole(0x5b856544L), ++tole(0xf3f36b00L), tole(0xcbe204acL), tole(0x83d1b458L), tole(0xbbc0dbf4L), ++tole(0x425b0aa5L), tole(0x7a4a6509L), tole(0x3279d5fdL), tole(0x0a68ba51L), ++tole(0xa21eb415L), tole(0x9a0fdbb9L), tole(0xd23c6b4dL), tole(0xea2d04e1L), ++tole(0x873c0134L), tole(0xbf2d6e98L), tole(0xf71ede6cL), tole(0xcf0fb1c0L), ++tole(0x6779bf84L), tole(0x5f68d028L), tole(0x175b60dcL), tole(0x2f4a0f70L), ++tole(0xcd796b76L), tole(0xf56804daL), tole(0xbd5bb42eL), tole(0x854adb82L), ++tole(0x2d3cd5c6L), tole(0x152dba6aL), tole(0x5d1e0a9eL), tole(0x650f6532L), ++tole(0x081e60e7L), tole(0x300f0f4bL), tole(0x783cbfbfL), tole(0x402dd013L), ++tole(0xe85bde57L), tole(0xd04ab1fbL), tole(0x9879010fL), tole(0xa0686ea3L)}, ++{ ++tole(0x00000000L), tole(0xef306b19L), tole(0xdb8ca0c3L), tole(0x34bccbdaL), ++tole(0xb2f53777L), tole(0x5dc55c6eL), tole(0x697997b4L), tole(0x8649fcadL), ++tole(0x6006181fL), tole(0x8f367306L), tole(0xbb8ab8dcL), tole(0x54bad3c5L), ++tole(0xd2f32f68L), tole(0x3dc34471L), tole(0x097f8fabL), tole(0xe64fe4b2L), ++tole(0xc00c303eL), tole(0x2f3c5b27L), tole(0x1b8090fdL), tole(0xf4b0fbe4L), ++tole(0x72f90749L), tole(0x9dc96c50L), tole(0xa975a78aL), tole(0x4645cc93L), ++tole(0xa00a2821L), tole(0x4f3a4338L), tole(0x7b8688e2L), tole(0x94b6e3fbL), ++tole(0x12ff1f56L), tole(0xfdcf744fL), tole(0xc973bf95L), tole(0x2643d48cL), ++tole(0x85f4168dL), tole(0x6ac47d94L), tole(0x5e78b64eL), tole(0xb148dd57L), ++tole(0x370121faL), tole(0xd8314ae3L), tole(0xec8d8139L), tole(0x03bdea20L), ++tole(0xe5f20e92L), tole(0x0ac2658bL), tole(0x3e7eae51L), tole(0xd14ec548L), ++tole(0x570739e5L), tole(0xb83752fcL), tole(0x8c8b9926L), tole(0x63bbf23fL), ++tole(0x45f826b3L), tole(0xaac84daaL), tole(0x9e748670L), tole(0x7144ed69L), ++tole(0xf70d11c4L), tole(0x183d7addL), tole(0x2c81b107L), tole(0xc3b1da1eL), ++tole(0x25fe3eacL), tole(0xcace55b5L), tole(0xfe729e6fL), tole(0x1142f576L), ++tole(0x970b09dbL), tole(0x783b62c2L), tole(0x4c87a918L), tole(0xa3b7c201L), ++tole(0x0e045bebL), tole(0xe13430f2L), tole(0xd588fb28L), tole(0x3ab89031L), ++tole(0xbcf16c9cL), tole(0x53c10785L), tole(0x677dcc5fL), tole(0x884da746L), ++tole(0x6e0243f4L), tole(0x813228edL), tole(0xb58ee337L), tole(0x5abe882eL), ++tole(0xdcf77483L), tole(0x33c71f9aL), tole(0x077bd440L), tole(0xe84bbf59L), ++tole(0xce086bd5L), tole(0x213800ccL), tole(0x1584cb16L), tole(0xfab4a00fL), ++tole(0x7cfd5ca2L), tole(0x93cd37bbL), tole(0xa771fc61L), tole(0x48419778L), ++tole(0xae0e73caL), tole(0x413e18d3L), tole(0x7582d309L), tole(0x9ab2b810L), ++tole(0x1cfb44bdL), tole(0xf3cb2fa4L), tole(0xc777e47eL), tole(0x28478f67L), ++tole(0x8bf04d66L), tole(0x64c0267fL), tole(0x507ceda5L), tole(0xbf4c86bcL), ++tole(0x39057a11L), tole(0xd6351108L), tole(0xe289dad2L), tole(0x0db9b1cbL), ++tole(0xebf65579L), tole(0x04c63e60L), tole(0x307af5baL), tole(0xdf4a9ea3L), ++tole(0x5903620eL), tole(0xb6330917L), tole(0x828fc2cdL), tole(0x6dbfa9d4L), ++tole(0x4bfc7d58L), tole(0xa4cc1641L), tole(0x9070dd9bL), tole(0x7f40b682L), ++tole(0xf9094a2fL), tole(0x16392136L), tole(0x2285eaecL), tole(0xcdb581f5L), ++tole(0x2bfa6547L), tole(0xc4ca0e5eL), tole(0xf076c584L), tole(0x1f46ae9dL), ++tole(0x990f5230L), tole(0x763f3929L), tole(0x4283f2f3L), tole(0xadb399eaL), ++tole(0x1c08b7d6L), tole(0xf338dccfL), tole(0xc7841715L), tole(0x28b47c0cL), ++tole(0xaefd80a1L), tole(0x41cdebb8L), tole(0x75712062L), tole(0x9a414b7bL), ++tole(0x7c0eafc9L), tole(0x933ec4d0L), tole(0xa7820f0aL), tole(0x48b26413L), ++tole(0xcefb98beL), tole(0x21cbf3a7L), tole(0x1577387dL), tole(0xfa475364L), ++tole(0xdc0487e8L), tole(0x3334ecf1L), tole(0x0788272bL), tole(0xe8b84c32L), ++tole(0x6ef1b09fL), tole(0x81c1db86L), tole(0xb57d105cL), tole(0x5a4d7b45L), ++tole(0xbc029ff7L), tole(0x5332f4eeL), tole(0x678e3f34L), tole(0x88be542dL), ++tole(0x0ef7a880L), tole(0xe1c7c399L), tole(0xd57b0843L), tole(0x3a4b635aL), ++tole(0x99fca15bL), tole(0x76ccca42L), tole(0x42700198L), tole(0xad406a81L), ++tole(0x2b09962cL), tole(0xc439fd35L), tole(0xf08536efL), tole(0x1fb55df6L), ++tole(0xf9fab944L), tole(0x16cad25dL), tole(0x22761987L), tole(0xcd46729eL), ++tole(0x4b0f8e33L), tole(0xa43fe52aL), tole(0x90832ef0L), tole(0x7fb345e9L), ++tole(0x59f09165L), tole(0xb6c0fa7cL), tole(0x827c31a6L), tole(0x6d4c5abfL), ++tole(0xeb05a612L), tole(0x0435cd0bL), tole(0x308906d1L), tole(0xdfb96dc8L), ++tole(0x39f6897aL), tole(0xd6c6e263L), tole(0xe27a29b9L), tole(0x0d4a42a0L), ++tole(0x8b03be0dL), tole(0x6433d514L), tole(0x508f1eceL), tole(0xbfbf75d7L), ++tole(0x120cec3dL), tole(0xfd3c8724L), tole(0xc9804cfeL), tole(0x26b027e7L), ++tole(0xa0f9db4aL), tole(0x4fc9b053L), tole(0x7b757b89L), tole(0x94451090L), ++tole(0x720af422L), tole(0x9d3a9f3bL), tole(0xa98654e1L), tole(0x46b63ff8L), ++tole(0xc0ffc355L), tole(0x2fcfa84cL), tole(0x1b736396L), tole(0xf443088fL), ++tole(0xd200dc03L), tole(0x3d30b71aL), tole(0x098c7cc0L), tole(0xe6bc17d9L), ++tole(0x60f5eb74L), tole(0x8fc5806dL), tole(0xbb794bb7L), tole(0x544920aeL), ++tole(0xb206c41cL), tole(0x5d36af05L), tole(0x698a64dfL), tole(0x86ba0fc6L), ++tole(0x00f3f36bL), tole(0xefc39872L), tole(0xdb7f53a8L), tole(0x344f38b1L), ++tole(0x97f8fab0L), tole(0x78c891a9L), tole(0x4c745a73L), tole(0xa344316aL), ++tole(0x250dcdc7L), tole(0xca3da6deL), tole(0xfe816d04L), tole(0x11b1061dL), ++tole(0xf7fee2afL), tole(0x18ce89b6L), tole(0x2c72426cL), tole(0xc3422975L), ++tole(0x450bd5d8L), tole(0xaa3bbec1L), tole(0x9e87751bL), tole(0x71b71e02L), ++tole(0x57f4ca8eL), tole(0xb8c4a197L), tole(0x8c786a4dL), tole(0x63480154L), ++tole(0xe501fdf9L), tole(0x0a3196e0L), tole(0x3e8d5d3aL), tole(0xd1bd3623L), ++tole(0x37f2d291L), tole(0xd8c2b988L), tole(0xec7e7252L), tole(0x034e194bL), ++tole(0x8507e5e6L), tole(0x6a378effL), tole(0x5e8b4525L), tole(0xb1bb2e3cL)}, ++{ ++tole(0x00000000L), tole(0x68032cc8L), tole(0xd0065990L), tole(0xb8057558L), ++tole(0xa5e0c5d1L), tole(0xcde3e919L), tole(0x75e69c41L), tole(0x1de5b089L), ++tole(0x4e2dfd53L), tole(0x262ed19bL), tole(0x9e2ba4c3L), tole(0xf628880bL), ++tole(0xebcd3882L), tole(0x83ce144aL), tole(0x3bcb6112L), tole(0x53c84ddaL), ++tole(0x9c5bfaa6L), tole(0xf458d66eL), tole(0x4c5da336L), tole(0x245e8ffeL), ++tole(0x39bb3f77L), tole(0x51b813bfL), tole(0xe9bd66e7L), tole(0x81be4a2fL), ++tole(0xd27607f5L), tole(0xba752b3dL), tole(0x02705e65L), tole(0x6a7372adL), ++tole(0x7796c224L), tole(0x1f95eeecL), tole(0xa7909bb4L), tole(0xcf93b77cL), ++tole(0x3d5b83bdL), tole(0x5558af75L), tole(0xed5dda2dL), tole(0x855ef6e5L), ++tole(0x98bb466cL), tole(0xf0b86aa4L), tole(0x48bd1ffcL), tole(0x20be3334L), ++tole(0x73767eeeL), tole(0x1b755226L), tole(0xa370277eL), tole(0xcb730bb6L), ++tole(0xd696bb3fL), tole(0xbe9597f7L), tole(0x0690e2afL), tole(0x6e93ce67L), ++tole(0xa100791bL), tole(0xc90355d3L), tole(0x7106208bL), tole(0x19050c43L), ++tole(0x04e0bccaL), tole(0x6ce39002L), tole(0xd4e6e55aL), tole(0xbce5c992L), ++tole(0xef2d8448L), tole(0x872ea880L), tole(0x3f2bddd8L), tole(0x5728f110L), ++tole(0x4acd4199L), tole(0x22ce6d51L), tole(0x9acb1809L), tole(0xf2c834c1L), ++tole(0x7ab7077aL), tole(0x12b42bb2L), tole(0xaab15eeaL), tole(0xc2b27222L), ++tole(0xdf57c2abL), tole(0xb754ee63L), tole(0x0f519b3bL), tole(0x6752b7f3L), ++tole(0x349afa29L), tole(0x5c99d6e1L), tole(0xe49ca3b9L), tole(0x8c9f8f71L), ++tole(0x917a3ff8L), tole(0xf9791330L), tole(0x417c6668L), tole(0x297f4aa0L), ++tole(0xe6ecfddcL), tole(0x8eefd114L), tole(0x36eaa44cL), tole(0x5ee98884L), ++tole(0x430c380dL), tole(0x2b0f14c5L), tole(0x930a619dL), tole(0xfb094d55L), ++tole(0xa8c1008fL), tole(0xc0c22c47L), tole(0x78c7591fL), tole(0x10c475d7L), ++tole(0x0d21c55eL), tole(0x6522e996L), tole(0xdd279cceL), tole(0xb524b006L), ++tole(0x47ec84c7L), tole(0x2fefa80fL), tole(0x97eadd57L), tole(0xffe9f19fL), ++tole(0xe20c4116L), tole(0x8a0f6ddeL), tole(0x320a1886L), tole(0x5a09344eL), ++tole(0x09c17994L), tole(0x61c2555cL), tole(0xd9c72004L), tole(0xb1c40cccL), ++tole(0xac21bc45L), tole(0xc422908dL), tole(0x7c27e5d5L), tole(0x1424c91dL), ++tole(0xdbb77e61L), tole(0xb3b452a9L), tole(0x0bb127f1L), tole(0x63b20b39L), ++tole(0x7e57bbb0L), tole(0x16549778L), tole(0xae51e220L), tole(0xc652cee8L), ++tole(0x959a8332L), tole(0xfd99affaL), tole(0x459cdaa2L), tole(0x2d9ff66aL), ++tole(0x307a46e3L), tole(0x58796a2bL), tole(0xe07c1f73L), tole(0x887f33bbL), ++tole(0xf56e0ef4L), tole(0x9d6d223cL), tole(0x25685764L), tole(0x4d6b7bacL), ++tole(0x508ecb25L), tole(0x388de7edL), tole(0x808892b5L), tole(0xe88bbe7dL), ++tole(0xbb43f3a7L), tole(0xd340df6fL), tole(0x6b45aa37L), tole(0x034686ffL), ++tole(0x1ea33676L), tole(0x76a01abeL), tole(0xcea56fe6L), tole(0xa6a6432eL), ++tole(0x6935f452L), tole(0x0136d89aL), tole(0xb933adc2L), tole(0xd130810aL), ++tole(0xccd53183L), tole(0xa4d61d4bL), tole(0x1cd36813L), tole(0x74d044dbL), ++tole(0x27180901L), tole(0x4f1b25c9L), tole(0xf71e5091L), tole(0x9f1d7c59L), ++tole(0x82f8ccd0L), tole(0xeafbe018L), tole(0x52fe9540L), tole(0x3afdb988L), ++tole(0xc8358d49L), tole(0xa036a181L), tole(0x1833d4d9L), tole(0x7030f811L), ++tole(0x6dd54898L), tole(0x05d66450L), tole(0xbdd31108L), tole(0xd5d03dc0L), ++tole(0x8618701aL), tole(0xee1b5cd2L), tole(0x561e298aL), tole(0x3e1d0542L), ++tole(0x23f8b5cbL), tole(0x4bfb9903L), tole(0xf3feec5bL), tole(0x9bfdc093L), ++tole(0x546e77efL), tole(0x3c6d5b27L), tole(0x84682e7fL), tole(0xec6b02b7L), ++tole(0xf18eb23eL), tole(0x998d9ef6L), tole(0x2188ebaeL), tole(0x498bc766L), ++tole(0x1a438abcL), tole(0x7240a674L), tole(0xca45d32cL), tole(0xa246ffe4L), ++tole(0xbfa34f6dL), tole(0xd7a063a5L), tole(0x6fa516fdL), tole(0x07a63a35L), ++tole(0x8fd9098eL), tole(0xe7da2546L), tole(0x5fdf501eL), tole(0x37dc7cd6L), ++tole(0x2a39cc5fL), tole(0x423ae097L), tole(0xfa3f95cfL), tole(0x923cb907L), ++tole(0xc1f4f4ddL), tole(0xa9f7d815L), tole(0x11f2ad4dL), tole(0x79f18185L), ++tole(0x6414310cL), tole(0x0c171dc4L), tole(0xb412689cL), tole(0xdc114454L), ++tole(0x1382f328L), tole(0x7b81dfe0L), tole(0xc384aab8L), tole(0xab878670L), ++tole(0xb66236f9L), tole(0xde611a31L), tole(0x66646f69L), tole(0x0e6743a1L), ++tole(0x5daf0e7bL), tole(0x35ac22b3L), tole(0x8da957ebL), tole(0xe5aa7b23L), ++tole(0xf84fcbaaL), tole(0x904ce762L), tole(0x2849923aL), tole(0x404abef2L), ++tole(0xb2828a33L), tole(0xda81a6fbL), tole(0x6284d3a3L), tole(0x0a87ff6bL), ++tole(0x17624fe2L), tole(0x7f61632aL), tole(0xc7641672L), tole(0xaf673abaL), ++tole(0xfcaf7760L), tole(0x94ac5ba8L), tole(0x2ca92ef0L), tole(0x44aa0238L), ++tole(0x594fb2b1L), tole(0x314c9e79L), tole(0x8949eb21L), tole(0xe14ac7e9L), ++tole(0x2ed97095L), tole(0x46da5c5dL), tole(0xfedf2905L), tole(0x96dc05cdL), ++tole(0x8b39b544L), tole(0xe33a998cL), tole(0x5b3fecd4L), tole(0x333cc01cL), ++tole(0x60f48dc6L), tole(0x08f7a10eL), tole(0xb0f2d456L), tole(0xd8f1f89eL), ++tole(0xc5144817L), tole(0xad1764dfL), tole(0x15121187L), tole(0x7d113d4fL)}, ++{ ++tole(0x00000000L), tole(0x493c7d27L), tole(0x9278fa4eL), tole(0xdb448769L), ++tole(0x211d826dL), tole(0x6821ff4aL), tole(0xb3657823L), tole(0xfa590504L), ++tole(0x423b04daL), tole(0x0b0779fdL), tole(0xd043fe94L), tole(0x997f83b3L), ++tole(0x632686b7L), tole(0x2a1afb90L), tole(0xf15e7cf9L), tole(0xb86201deL), ++tole(0x847609b4L), tole(0xcd4a7493L), tole(0x160ef3faL), tole(0x5f328eddL), ++tole(0xa56b8bd9L), tole(0xec57f6feL), tole(0x37137197L), tole(0x7e2f0cb0L), ++tole(0xc64d0d6eL), tole(0x8f717049L), tole(0x5435f720L), tole(0x1d098a07L), ++tole(0xe7508f03L), tole(0xae6cf224L), tole(0x7528754dL), tole(0x3c14086aL), ++tole(0x0d006599L), tole(0x443c18beL), tole(0x9f789fd7L), tole(0xd644e2f0L), ++tole(0x2c1de7f4L), tole(0x65219ad3L), tole(0xbe651dbaL), tole(0xf759609dL), ++tole(0x4f3b6143L), tole(0x06071c64L), tole(0xdd439b0dL), tole(0x947fe62aL), ++tole(0x6e26e32eL), tole(0x271a9e09L), tole(0xfc5e1960L), tole(0xb5626447L), ++tole(0x89766c2dL), tole(0xc04a110aL), tole(0x1b0e9663L), tole(0x5232eb44L), ++tole(0xa86bee40L), tole(0xe1579367L), tole(0x3a13140eL), tole(0x732f6929L), ++tole(0xcb4d68f7L), tole(0x827115d0L), tole(0x593592b9L), tole(0x1009ef9eL), ++tole(0xea50ea9aL), tole(0xa36c97bdL), tole(0x782810d4L), tole(0x31146df3L), ++tole(0x1a00cb32L), tole(0x533cb615L), tole(0x8878317cL), tole(0xc1444c5bL), ++tole(0x3b1d495fL), tole(0x72213478L), tole(0xa965b311L), tole(0xe059ce36L), ++tole(0x583bcfe8L), tole(0x1107b2cfL), tole(0xca4335a6L), tole(0x837f4881L), ++tole(0x79264d85L), tole(0x301a30a2L), tole(0xeb5eb7cbL), tole(0xa262caecL), ++tole(0x9e76c286L), tole(0xd74abfa1L), tole(0x0c0e38c8L), tole(0x453245efL), ++tole(0xbf6b40ebL), tole(0xf6573dccL), tole(0x2d13baa5L), tole(0x642fc782L), ++tole(0xdc4dc65cL), tole(0x9571bb7bL), tole(0x4e353c12L), tole(0x07094135L), ++tole(0xfd504431L), tole(0xb46c3916L), tole(0x6f28be7fL), tole(0x2614c358L), ++tole(0x1700aeabL), tole(0x5e3cd38cL), tole(0x857854e5L), tole(0xcc4429c2L), ++tole(0x361d2cc6L), tole(0x7f2151e1L), tole(0xa465d688L), tole(0xed59abafL), ++tole(0x553baa71L), tole(0x1c07d756L), tole(0xc743503fL), tole(0x8e7f2d18L), ++tole(0x7426281cL), tole(0x3d1a553bL), tole(0xe65ed252L), tole(0xaf62af75L), ++tole(0x9376a71fL), tole(0xda4ada38L), tole(0x010e5d51L), tole(0x48322076L), ++tole(0xb26b2572L), tole(0xfb575855L), tole(0x2013df3cL), tole(0x692fa21bL), ++tole(0xd14da3c5L), tole(0x9871dee2L), tole(0x4335598bL), tole(0x0a0924acL), ++tole(0xf05021a8L), tole(0xb96c5c8fL), tole(0x6228dbe6L), tole(0x2b14a6c1L), ++tole(0x34019664L), tole(0x7d3deb43L), tole(0xa6796c2aL), tole(0xef45110dL), ++tole(0x151c1409L), tole(0x5c20692eL), tole(0x8764ee47L), tole(0xce589360L), ++tole(0x763a92beL), tole(0x3f06ef99L), tole(0xe44268f0L), tole(0xad7e15d7L), ++tole(0x572710d3L), tole(0x1e1b6df4L), tole(0xc55fea9dL), tole(0x8c6397baL), ++tole(0xb0779fd0L), tole(0xf94be2f7L), tole(0x220f659eL), tole(0x6b3318b9L), ++tole(0x916a1dbdL), tole(0xd856609aL), tole(0x0312e7f3L), tole(0x4a2e9ad4L), ++tole(0xf24c9b0aL), tole(0xbb70e62dL), tole(0x60346144L), tole(0x29081c63L), ++tole(0xd3511967L), tole(0x9a6d6440L), tole(0x4129e329L), tole(0x08159e0eL), ++tole(0x3901f3fdL), tole(0x703d8edaL), tole(0xab7909b3L), tole(0xe2457494L), ++tole(0x181c7190L), tole(0x51200cb7L), tole(0x8a648bdeL), tole(0xc358f6f9L), ++tole(0x7b3af727L), tole(0x32068a00L), tole(0xe9420d69L), tole(0xa07e704eL), ++tole(0x5a27754aL), tole(0x131b086dL), tole(0xc85f8f04L), tole(0x8163f223L), ++tole(0xbd77fa49L), tole(0xf44b876eL), tole(0x2f0f0007L), tole(0x66337d20L), ++tole(0x9c6a7824L), tole(0xd5560503L), tole(0x0e12826aL), tole(0x472eff4dL), ++tole(0xff4cfe93L), tole(0xb67083b4L), tole(0x6d3404ddL), tole(0x240879faL), ++tole(0xde517cfeL), tole(0x976d01d9L), tole(0x4c2986b0L), tole(0x0515fb97L), ++tole(0x2e015d56L), tole(0x673d2071L), tole(0xbc79a718L), tole(0xf545da3fL), ++tole(0x0f1cdf3bL), tole(0x4620a21cL), tole(0x9d642575L), tole(0xd4585852L), ++tole(0x6c3a598cL), tole(0x250624abL), tole(0xfe42a3c2L), tole(0xb77edee5L), ++tole(0x4d27dbe1L), tole(0x041ba6c6L), tole(0xdf5f21afL), tole(0x96635c88L), ++tole(0xaa7754e2L), tole(0xe34b29c5L), tole(0x380faeacL), tole(0x7133d38bL), ++tole(0x8b6ad68fL), tole(0xc256aba8L), tole(0x19122cc1L), tole(0x502e51e6L), ++tole(0xe84c5038L), tole(0xa1702d1fL), tole(0x7a34aa76L), tole(0x3308d751L), ++tole(0xc951d255L), tole(0x806daf72L), tole(0x5b29281bL), tole(0x1215553cL), ++tole(0x230138cfL), tole(0x6a3d45e8L), tole(0xb179c281L), tole(0xf845bfa6L), ++tole(0x021cbaa2L), tole(0x4b20c785L), tole(0x906440ecL), tole(0xd9583dcbL), ++tole(0x613a3c15L), tole(0x28064132L), tole(0xf342c65bL), tole(0xba7ebb7cL), ++tole(0x4027be78L), tole(0x091bc35fL), tole(0xd25f4436L), tole(0x9b633911L), ++tole(0xa777317bL), tole(0xee4b4c5cL), tole(0x350fcb35L), tole(0x7c33b612L), ++tole(0x866ab316L), tole(0xcf56ce31L), tole(0x14124958L), tole(0x5d2e347fL), ++tole(0xe54c35a1L), tole(0xac704886L), tole(0x7734cfefL), tole(0x3e08b2c8L), ++tole(0xc451b7ccL), tole(0x8d6dcaebL), tole(0x56294d82L), tole(0x1f1530a5L)}, ++}; +diff --git a/lib/ext2fs/ext2_err.c b/lib/ext2fs/ext2_err.c +new file mode 100644 +index 0000000000000000000000000000000000000000..6b88d5f1e2ac3ccd6f7d6481204284439986f420 +--- /dev/null ++++ b/lib/ext2fs/ext2_err.c +@@ -0,0 +1,234 @@ ++/* ++ * ext2_err.c: ++ * This file is automatically generated; please do not edit it. ++ */ ++ ++#include ++ ++#define N_(a) a ++ ++static const char * const text[] = { ++ N_( "EXT2FS Library version 1.45.6"), ++ N_( "Wrong magic number for ext2_filsys structure"), ++ N_( "Wrong magic number for badblocks_list structure"), ++ N_( "Wrong magic number for badblocks_iterate structure"), ++ N_( "Wrong magic number for inode_scan structure"), ++ N_( "Wrong magic number for io_channel structure"), ++ N_( "Wrong magic number for unix io_channel structure"), ++ N_( "Wrong magic number for io_manager structure"), ++ N_( "Wrong magic number for block_bitmap structure"), ++ N_( "Wrong magic number for inode_bitmap structure"), ++ N_( "Wrong magic number for generic_bitmap structure"), ++ N_( "Wrong magic number for test io_channel structure"), ++ N_( "Wrong magic number for directory block list structure"), ++ N_( "Wrong magic number for icount structure"), ++ N_( "Wrong magic number for Powerquest io_channel structure"), ++ N_( "Wrong magic number for ext2 file structure"), ++ N_( "Wrong magic number for Ext2 Image Header"), ++ N_( "Wrong magic number for inode io_channel structure"), ++ N_( "Wrong magic number for ext4 extent handle"), ++ N_( "Bad magic number in super-block"), ++ N_( "Filesystem revision too high"), ++ N_( "Attempt to write to filesystem opened read-only"), ++ N_( "Can't read group descriptors"), ++ N_( "Can't write group descriptors"), ++ N_( "Corrupt group descriptor: bad block for block bitmap"), ++ N_( "Corrupt group descriptor: bad block for inode bitmap"), ++ N_( "Corrupt group descriptor: bad block for inode table"), ++ N_( "Can't write an inode bitmap"), ++ N_( "Can't read an inode bitmap"), ++ N_( "Can't write a block bitmap"), ++ N_( "Can't read a block bitmap"), ++ N_( "Can't write an inode table"), ++ N_( "Can't read an inode table"), ++ N_( "Can't read next inode"), ++ N_( "Filesystem has unexpected block size"), ++ N_( "EXT2 directory corrupted"), ++ N_( "Attempt to read block from filesystem resulted in short read"), ++ N_( "Attempt to write block to filesystem resulted in short write"), ++ N_( "No free space in the directory"), ++ N_( "Inode bitmap not loaded"), ++ N_( "Block bitmap not loaded"), ++ N_( "Illegal inode number"), ++ N_( "Illegal block number"), ++ N_( "Internal error in ext2fs_expand_dir"), ++ N_( "Not enough space to build proposed filesystem"), ++ N_( "Illegal block number passed to ext2fs_mark_block_bitmap"), ++ N_( "Illegal block number passed to ext2fs_unmark_block_bitmap"), ++ N_( "Illegal block number passed to ext2fs_test_block_bitmap"), ++ N_( "Illegal inode number passed to ext2fs_mark_inode_bitmap"), ++ N_( "Illegal inode number passed to ext2fs_unmark_inode_bitmap"), ++ N_( "Illegal inode number passed to ext2fs_test_inode_bitmap"), ++ N_( "Attempt to fudge end of block bitmap past the real end"), ++ N_( "Attempt to fudge end of inode bitmap past the real end"), ++ N_( "Illegal indirect block found" ), ++ N_( "Illegal doubly indirect block found" ), ++ N_( "Illegal triply indirect block found" ), ++ N_( "Block bitmaps are not the same"), ++ N_( "Inode bitmaps are not the same"), ++ N_( "Illegal or malformed device name"), ++ N_( "A block group is missing an inode table"), ++ N_( "The ext2 superblock is corrupt"), ++ N_( "Illegal generic bit number passed to ext2fs_mark_generic_bitmap"), ++ N_( "Illegal generic bit number passed to ext2fs_unmark_generic_bitmap"), ++ N_( "Illegal generic bit number passed to ext2fs_test_generic_bitmap"), ++ N_( "Too many symbolic links encountered."), ++ N_( "The callback function will not handle this case"), ++ N_( "The inode is from a bad block in the inode table"), ++ N_( "Filesystem has unsupported feature(s)"), ++ N_( "Filesystem has unsupported read-only feature(s)"), ++ N_( "IO Channel failed to seek on read or write"), ++ N_( "Memory allocation failed"), ++ N_( "Invalid argument passed to ext2 library"), ++ N_( "Could not allocate block in ext2 filesystem"), ++ N_( "Could not allocate inode in ext2 filesystem"), ++ N_( "Ext2 inode is not a directory"), ++ N_( "Too many references in table"), ++ N_( "File not found by ext2_lookup"), ++ N_( "File open read-only"), ++ N_( "Ext2 directory block not found"), ++ N_( "Ext2 directory already exists"), ++ N_( "Unimplemented ext2 library function"), ++ N_( "User cancel requested"), ++ N_( "Ext2 file too big"), ++ N_( "Supplied journal device not a block device"), ++ N_( "Journal superblock not found"), ++ N_( "Journal must be at least 1024 blocks"), ++ N_( "Unsupported journal version"), ++ N_( "Error loading external journal"), ++ N_( "Journal not found"), ++ N_( "Directory hash unsupported"), ++ N_( "Illegal extended attribute block number"), ++ N_( "Cannot create filesystem with requested number of inodes"), ++ N_( "E2image snapshot not in use"), ++ N_( "Too many reserved group descriptor blocks"), ++ N_( "Resize inode is corrupt"), ++ N_( "Tried to set block bmap with missing indirect block"), ++ N_( "TDB: Success"), ++ N_( "TDB: Corrupt database"), ++ N_( "TDB: IO Error"), ++ N_( "TDB: Locking error"), ++ N_( "TDB: Out of memory"), ++ N_( "TDB: Record exists"), ++ N_( "TDB: Lock exists on other keys"), ++ N_( "TDB: Invalid parameter"), ++ N_( "TDB: Record does not exist"), ++ N_( "TDB: Write not permitted"), ++ N_( "Ext2fs directory block list is empty"), ++ N_( "Attempt to modify a block mapping via a read-only block iterator"), ++ N_( "Wrong magic number for ext4 extent saved path"), ++ N_( "Wrong magic number for 64-bit generic bitmap"), ++ N_( "Wrong magic number for 64-bit block bitmap"), ++ N_( "Wrong magic number for 64-bit inode bitmap"), ++ N_( "Wrong magic number --- RESERVED_13"), ++ N_( "Wrong magic number --- RESERVED_14"), ++ N_( "Wrong magic number --- RESERVED_15"), ++ N_( "Wrong magic number --- RESERVED_16"), ++ N_( "Wrong magic number --- RESERVED_17"), ++ N_( "Wrong magic number --- RESERVED_18"), ++ N_( "Wrong magic number --- RESERVED_19"), ++ N_( "Corrupt extent header"), ++ N_( "Corrupt extent index"), ++ N_( "Corrupt extent"), ++ N_( "No free space in extent map"), ++ N_( "Inode does not use extents"), ++ N_( "No 'next' extent"), ++ N_( "No 'previous' extent"), ++ N_( "No 'up' extent"), ++ N_( "No 'down' extent"), ++ N_( "No current node"), ++ N_( "Ext2fs operation not supported"), ++ N_( "No room to insert extent in node"), ++ N_( "Splitting would result in empty node"), ++ N_( "Extent not found"), ++ N_( "Operation not supported for inodes containing extents"), ++ N_( "Extent length is invalid"), ++ N_( "I/O Channel does not support 64-bit block numbers"), ++ N_( "Can't check if filesystem is mounted due to missing mtab file"), ++ N_( "Filesystem too large to use legacy bitmaps"), ++ N_( "MMP: invalid magic number"), ++ N_( "MMP: device currently active"), ++ N_( "MMP: e2fsck being run"), ++ N_( "MMP: block number beyond filesystem range"), ++ N_( "MMP: undergoing an unknown operation"), ++ N_( "MMP: filesystem still in use"), ++ N_( "MMP: open with O_DIRECT failed"), ++ N_( "Block group descriptor size incorrect"), ++ N_( "Inode checksum does not match inode"), ++ N_( "Inode bitmap checksum does not match bitmap"), ++ N_( "Extent block checksum does not match extent block"), ++ N_( "Directory block does not have space for checksum"), ++ N_( "Directory block checksum does not match directory block"), ++ N_( "Extended attribute block checksum does not match block"), ++ N_( "Superblock checksum does not match superblock"), ++ N_( "Unknown checksum algorithm"), ++ N_( "MMP block checksum does not match"), ++ N_( "Ext2 file already exists"), ++ N_( "Block bitmap checksum does not match bitmap"), ++ N_( "Cannot iterate data blocks of an inode containing inline data"), ++ N_( "Extended attribute has an invalid name length"), ++ N_( "Extended attribute has an invalid value length"), ++ N_( "Extended attribute has an incorrect hash"), ++ N_( "Extended attribute block has a bad header"), ++ N_( "Extended attribute key not found"), ++ N_( "Insufficient space to store extended attribute data"), ++ N_( "Filesystem is missing ext_attr or inline_data feature"), ++ N_( "Inode doesn't have inline data"), ++ N_( "No block for an inode with inline data"), ++ N_( "No free space in inline data"), ++ N_( "Wrong magic number for extended attribute structure"), ++ N_( "Inode seems to contain garbage"), ++ N_( "Extended attribute has an invalid value offset"), ++ N_( "Journal flags inconsistent"), ++ N_( "Undo file corrupt"), ++ N_( "Wrong undo file for this filesystem"), ++ N_( "File system is corrupted"), ++ N_( "Bad CRC detected in file system"), ++ N_( "The journal superblock is corrupt"), ++ N_( "Inode is corrupted"), ++ N_( "Inode containing extended attribute value is corrupted"), ++ N_( "Group descriptors not loaded"), ++ 0 ++}; ++ ++struct error_table { ++ char const * const * msgs; ++ long base; ++ int n_msgs; ++}; ++struct et_list { ++ struct et_list *next; ++ const struct error_table * table; ++}; ++extern struct et_list *_et_list; ++ ++const struct error_table et_ext2_error_table = { text, 2133571328L, 180 }; ++ ++static struct et_list link = { 0, 0 }; ++ ++void initialize_ext2_error_table_r(struct et_list **list); ++void initialize_ext2_error_table(void); ++ ++void initialize_ext2_error_table(void) { ++ initialize_ext2_error_table_r(&_et_list); ++} ++ ++/* For Heimdal compatibility */ ++void initialize_ext2_error_table_r(struct et_list **list) ++{ ++ struct et_list *et, **end; ++ ++ for (end = list, et = *list; et; end = &et->next, et = et->next) ++ if (et->table->msgs == text) ++ return; ++ et = malloc(sizeof(struct et_list)); ++ if (et == 0) { ++ if (!link.table) ++ et = &link; ++ else ++ return; ++ } ++ et->table = &et_ext2_error_table; ++ et->next = 0; ++ *end = et; ++} +diff --git a/lib/ext2fs/ext2_err.h b/lib/ext2fs/ext2_err.h +new file mode 100644 +index 0000000000000000000000000000000000000000..8a107f9f67aa8a315d8e3435c65ecbf526183feb +--- /dev/null ++++ b/lib/ext2fs/ext2_err.h +@@ -0,0 +1,198 @@ ++/* ++ * ext2_err.h: ++ * This file is automatically generated; please do not edit it. ++ */ ++ ++#include ++ ++#define EXT2_ET_BASE (2133571328L) ++#define EXT2_ET_MAGIC_EXT2FS_FILSYS (2133571329L) ++#define EXT2_ET_MAGIC_BADBLOCKS_LIST (2133571330L) ++#define EXT2_ET_MAGIC_BADBLOCKS_ITERATE (2133571331L) ++#define EXT2_ET_MAGIC_INODE_SCAN (2133571332L) ++#define EXT2_ET_MAGIC_IO_CHANNEL (2133571333L) ++#define EXT2_ET_MAGIC_UNIX_IO_CHANNEL (2133571334L) ++#define EXT2_ET_MAGIC_IO_MANAGER (2133571335L) ++#define EXT2_ET_MAGIC_BLOCK_BITMAP (2133571336L) ++#define EXT2_ET_MAGIC_INODE_BITMAP (2133571337L) ++#define EXT2_ET_MAGIC_GENERIC_BITMAP (2133571338L) ++#define EXT2_ET_MAGIC_TEST_IO_CHANNEL (2133571339L) ++#define EXT2_ET_MAGIC_DBLIST (2133571340L) ++#define EXT2_ET_MAGIC_ICOUNT (2133571341L) ++#define EXT2_ET_MAGIC_PQ_IO_CHANNEL (2133571342L) ++#define EXT2_ET_MAGIC_EXT2_FILE (2133571343L) ++#define EXT2_ET_MAGIC_E2IMAGE (2133571344L) ++#define EXT2_ET_MAGIC_INODE_IO_CHANNEL (2133571345L) ++#define EXT2_ET_MAGIC_EXTENT_HANDLE (2133571346L) ++#define EXT2_ET_BAD_MAGIC (2133571347L) ++#define EXT2_ET_REV_TOO_HIGH (2133571348L) ++#define EXT2_ET_RO_FILSYS (2133571349L) ++#define EXT2_ET_GDESC_READ (2133571350L) ++#define EXT2_ET_GDESC_WRITE (2133571351L) ++#define EXT2_ET_GDESC_BAD_BLOCK_MAP (2133571352L) ++#define EXT2_ET_GDESC_BAD_INODE_MAP (2133571353L) ++#define EXT2_ET_GDESC_BAD_INODE_TABLE (2133571354L) ++#define EXT2_ET_INODE_BITMAP_WRITE (2133571355L) ++#define EXT2_ET_INODE_BITMAP_READ (2133571356L) ++#define EXT2_ET_BLOCK_BITMAP_WRITE (2133571357L) ++#define EXT2_ET_BLOCK_BITMAP_READ (2133571358L) ++#define EXT2_ET_INODE_TABLE_WRITE (2133571359L) ++#define EXT2_ET_INODE_TABLE_READ (2133571360L) ++#define EXT2_ET_NEXT_INODE_READ (2133571361L) ++#define EXT2_ET_UNEXPECTED_BLOCK_SIZE (2133571362L) ++#define EXT2_ET_DIR_CORRUPTED (2133571363L) ++#define EXT2_ET_SHORT_READ (2133571364L) ++#define EXT2_ET_SHORT_WRITE (2133571365L) ++#define EXT2_ET_DIR_NO_SPACE (2133571366L) ++#define EXT2_ET_NO_INODE_BITMAP (2133571367L) ++#define EXT2_ET_NO_BLOCK_BITMAP (2133571368L) ++#define EXT2_ET_BAD_INODE_NUM (2133571369L) ++#define EXT2_ET_BAD_BLOCK_NUM (2133571370L) ++#define EXT2_ET_EXPAND_DIR_ERR (2133571371L) ++#define EXT2_ET_TOOSMALL (2133571372L) ++#define EXT2_ET_BAD_BLOCK_MARK (2133571373L) ++#define EXT2_ET_BAD_BLOCK_UNMARK (2133571374L) ++#define EXT2_ET_BAD_BLOCK_TEST (2133571375L) ++#define EXT2_ET_BAD_INODE_MARK (2133571376L) ++#define EXT2_ET_BAD_INODE_UNMARK (2133571377L) ++#define EXT2_ET_BAD_INODE_TEST (2133571378L) ++#define EXT2_ET_FUDGE_BLOCK_BITMAP_END (2133571379L) ++#define EXT2_ET_FUDGE_INODE_BITMAP_END (2133571380L) ++#define EXT2_ET_BAD_IND_BLOCK (2133571381L) ++#define EXT2_ET_BAD_DIND_BLOCK (2133571382L) ++#define EXT2_ET_BAD_TIND_BLOCK (2133571383L) ++#define EXT2_ET_NEQ_BLOCK_BITMAP (2133571384L) ++#define EXT2_ET_NEQ_INODE_BITMAP (2133571385L) ++#define EXT2_ET_BAD_DEVICE_NAME (2133571386L) ++#define EXT2_ET_MISSING_INODE_TABLE (2133571387L) ++#define EXT2_ET_CORRUPT_SUPERBLOCK (2133571388L) ++#define EXT2_ET_BAD_GENERIC_MARK (2133571389L) ++#define EXT2_ET_BAD_GENERIC_UNMARK (2133571390L) ++#define EXT2_ET_BAD_GENERIC_TEST (2133571391L) ++#define EXT2_ET_SYMLINK_LOOP (2133571392L) ++#define EXT2_ET_CALLBACK_NOTHANDLED (2133571393L) ++#define EXT2_ET_BAD_BLOCK_IN_INODE_TABLE (2133571394L) ++#define EXT2_ET_UNSUPP_FEATURE (2133571395L) ++#define EXT2_ET_RO_UNSUPP_FEATURE (2133571396L) ++#define EXT2_ET_LLSEEK_FAILED (2133571397L) ++#define EXT2_ET_NO_MEMORY (2133571398L) ++#define EXT2_ET_INVALID_ARGUMENT (2133571399L) ++#define EXT2_ET_BLOCK_ALLOC_FAIL (2133571400L) ++#define EXT2_ET_INODE_ALLOC_FAIL (2133571401L) ++#define EXT2_ET_NO_DIRECTORY (2133571402L) ++#define EXT2_ET_TOO_MANY_REFS (2133571403L) ++#define EXT2_ET_FILE_NOT_FOUND (2133571404L) ++#define EXT2_ET_FILE_RO (2133571405L) ++#define EXT2_ET_DB_NOT_FOUND (2133571406L) ++#define EXT2_ET_DIR_EXISTS (2133571407L) ++#define EXT2_ET_UNIMPLEMENTED (2133571408L) ++#define EXT2_ET_CANCEL_REQUESTED (2133571409L) ++#define EXT2_ET_FILE_TOO_BIG (2133571410L) ++#define EXT2_ET_JOURNAL_NOT_BLOCK (2133571411L) ++#define EXT2_ET_NO_JOURNAL_SB (2133571412L) ++#define EXT2_ET_JOURNAL_TOO_SMALL (2133571413L) ++#define EXT2_ET_JOURNAL_UNSUPP_VERSION (2133571414L) ++#define EXT2_ET_LOAD_EXT_JOURNAL (2133571415L) ++#define EXT2_ET_NO_JOURNAL (2133571416L) ++#define EXT2_ET_DIRHASH_UNSUPP (2133571417L) ++#define EXT2_ET_BAD_EA_BLOCK_NUM (2133571418L) ++#define EXT2_ET_TOO_MANY_INODES (2133571419L) ++#define EXT2_ET_NOT_IMAGE_FILE (2133571420L) ++#define EXT2_ET_RES_GDT_BLOCKS (2133571421L) ++#define EXT2_ET_RESIZE_INODE_CORRUPT (2133571422L) ++#define EXT2_ET_SET_BMAP_NO_IND (2133571423L) ++#define EXT2_ET_TDB_SUCCESS (2133571424L) ++#define EXT2_ET_TDB_ERR_CORRUPT (2133571425L) ++#define EXT2_ET_TDB_ERR_IO (2133571426L) ++#define EXT2_ET_TDB_ERR_LOCK (2133571427L) ++#define EXT2_ET_TDB_ERR_OOM (2133571428L) ++#define EXT2_ET_TDB_ERR_EXISTS (2133571429L) ++#define EXT2_ET_TDB_ERR_NOLOCK (2133571430L) ++#define EXT2_ET_TDB_ERR_EINVAL (2133571431L) ++#define EXT2_ET_TDB_ERR_NOEXIST (2133571432L) ++#define EXT2_ET_TDB_ERR_RDONLY (2133571433L) ++#define EXT2_ET_DBLIST_EMPTY (2133571434L) ++#define EXT2_ET_RO_BLOCK_ITERATE (2133571435L) ++#define EXT2_ET_MAGIC_EXTENT_PATH (2133571436L) ++#define EXT2_ET_MAGIC_GENERIC_BITMAP64 (2133571437L) ++#define EXT2_ET_MAGIC_BLOCK_BITMAP64 (2133571438L) ++#define EXT2_ET_MAGIC_INODE_BITMAP64 (2133571439L) ++#define EXT2_ET_MAGIC_RESERVED_13 (2133571440L) ++#define EXT2_ET_MAGIC_RESERVED_14 (2133571441L) ++#define EXT2_ET_MAGIC_RESERVED_15 (2133571442L) ++#define EXT2_ET_MAGIC_RESERVED_16 (2133571443L) ++#define EXT2_ET_MAGIC_RESERVED_17 (2133571444L) ++#define EXT2_ET_MAGIC_RESERVED_18 (2133571445L) ++#define EXT2_ET_MAGIC_RESERVED_19 (2133571446L) ++#define EXT2_ET_EXTENT_HEADER_BAD (2133571447L) ++#define EXT2_ET_EXTENT_INDEX_BAD (2133571448L) ++#define EXT2_ET_EXTENT_LEAF_BAD (2133571449L) ++#define EXT2_ET_EXTENT_NO_SPACE (2133571450L) ++#define EXT2_ET_INODE_NOT_EXTENT (2133571451L) ++#define EXT2_ET_EXTENT_NO_NEXT (2133571452L) ++#define EXT2_ET_EXTENT_NO_PREV (2133571453L) ++#define EXT2_ET_EXTENT_NO_UP (2133571454L) ++#define EXT2_ET_EXTENT_NO_DOWN (2133571455L) ++#define EXT2_ET_NO_CURRENT_NODE (2133571456L) ++#define EXT2_ET_OP_NOT_SUPPORTED (2133571457L) ++#define EXT2_ET_CANT_INSERT_EXTENT (2133571458L) ++#define EXT2_ET_CANT_SPLIT_EXTENT (2133571459L) ++#define EXT2_ET_EXTENT_NOT_FOUND (2133571460L) ++#define EXT2_ET_EXTENT_NOT_SUPPORTED (2133571461L) ++#define EXT2_ET_EXTENT_INVALID_LENGTH (2133571462L) ++#define EXT2_ET_IO_CHANNEL_NO_SUPPORT_64 (2133571463L) ++#define EXT2_ET_NO_MTAB_FILE (2133571464L) ++#define EXT2_ET_CANT_USE_LEGACY_BITMAPS (2133571465L) ++#define EXT2_ET_MMP_MAGIC_INVALID (2133571466L) ++#define EXT2_ET_MMP_FAILED (2133571467L) ++#define EXT2_ET_MMP_FSCK_ON (2133571468L) ++#define EXT2_ET_MMP_BAD_BLOCK (2133571469L) ++#define EXT2_ET_MMP_UNKNOWN_SEQ (2133571470L) ++#define EXT2_ET_MMP_CHANGE_ABORT (2133571471L) ++#define EXT2_ET_MMP_OPEN_DIRECT (2133571472L) ++#define EXT2_ET_BAD_DESC_SIZE (2133571473L) ++#define EXT2_ET_INODE_CSUM_INVALID (2133571474L) ++#define EXT2_ET_INODE_BITMAP_CSUM_INVALID (2133571475L) ++#define EXT2_ET_EXTENT_CSUM_INVALID (2133571476L) ++#define EXT2_ET_DIR_NO_SPACE_FOR_CSUM (2133571477L) ++#define EXT2_ET_DIR_CSUM_INVALID (2133571478L) ++#define EXT2_ET_EXT_ATTR_CSUM_INVALID (2133571479L) ++#define EXT2_ET_SB_CSUM_INVALID (2133571480L) ++#define EXT2_ET_UNKNOWN_CSUM (2133571481L) ++#define EXT2_ET_MMP_CSUM_INVALID (2133571482L) ++#define EXT2_ET_FILE_EXISTS (2133571483L) ++#define EXT2_ET_BLOCK_BITMAP_CSUM_INVALID (2133571484L) ++#define EXT2_ET_INLINE_DATA_CANT_ITERATE (2133571485L) ++#define EXT2_ET_EA_BAD_NAME_LEN (2133571486L) ++#define EXT2_ET_EA_BAD_VALUE_SIZE (2133571487L) ++#define EXT2_ET_BAD_EA_HASH (2133571488L) ++#define EXT2_ET_BAD_EA_HEADER (2133571489L) ++#define EXT2_ET_EA_KEY_NOT_FOUND (2133571490L) ++#define EXT2_ET_EA_NO_SPACE (2133571491L) ++#define EXT2_ET_MISSING_EA_FEATURE (2133571492L) ++#define EXT2_ET_NO_INLINE_DATA (2133571493L) ++#define EXT2_ET_INLINE_DATA_NO_BLOCK (2133571494L) ++#define EXT2_ET_INLINE_DATA_NO_SPACE (2133571495L) ++#define EXT2_ET_MAGIC_EA_HANDLE (2133571496L) ++#define EXT2_ET_INODE_IS_GARBAGE (2133571497L) ++#define EXT2_ET_EA_BAD_VALUE_OFFSET (2133571498L) ++#define EXT2_ET_JOURNAL_FLAGS_WRONG (2133571499L) ++#define EXT2_ET_UNDO_FILE_CORRUPT (2133571500L) ++#define EXT2_ET_UNDO_FILE_WRONG (2133571501L) ++#define EXT2_ET_FILESYSTEM_CORRUPTED (2133571502L) ++#define EXT2_ET_BAD_CRC (2133571503L) ++#define EXT2_ET_CORRUPT_JOURNAL_SB (2133571504L) ++#define EXT2_ET_INODE_CORRUPTED (2133571505L) ++#define EXT2_ET_EA_INODE_CORRUPTED (2133571506L) ++#define EXT2_ET_NO_GDESC (2133571507L) ++extern const struct error_table et_ext2_error_table; ++extern void initialize_ext2_error_table(void); ++ ++/* For compatibility with Heimdal */ ++extern void initialize_ext2_error_table_r(struct et_list **list); ++ ++#define ERROR_TABLE_BASE_ext2 (2133571328L) ++ ++/* for compatibility with older versions... */ ++#define init_ext2_err_tbl initialize_ext2_error_table ++#define ext2_err_base ERROR_TABLE_BASE_ext2 +diff --git a/lib/ext2fs/ext2_types.h b/lib/ext2fs/ext2_types.h +new file mode 100644 +index 0000000000000000000000000000000000000000..789d705e047fd8e04c7984eda784a5bff7f55e6a +--- /dev/null ++++ b/lib/ext2fs/ext2_types.h +@@ -0,0 +1,205 @@ ++/* ++ * If linux/types.h is already been included, assume it has defined ++ * everything we need. (cross fingers) Other header files may have ++ * also defined the types that we need. ++ */ ++#if (!defined(_LINUX_TYPES_H) && !defined(_BLKID_TYPES_H) && \ ++ !defined(_EXT2_TYPES_H)) ++#define _EXT2_TYPES_H ++ ++#define __S8_TYPEDEF __signed__ char ++#define __U8_TYPEDEF unsigned char ++#define __S16_TYPEDEF __signed__ short ++#define __U16_TYPEDEF unsigned short ++#define __S32_TYPEDEF __signed__ int ++#define __U32_TYPEDEF unsigned int ++#define __S64_TYPEDEF __signed__ long long ++#define __U64_TYPEDEF unsigned long long ++ ++#ifndef HAVE___U8 ++#define HAVE___U8 ++#ifdef __U8_TYPEDEF ++typedef __U8_TYPEDEF __u8; ++#else ++typedef unsigned char __u8; ++#endif ++#endif /* HAVE___U8 */ ++ ++#ifndef HAVE___S8 ++#define HAVE___S8 ++#ifdef __S8_TYPEDEF ++typedef __S8_TYPEDEF __s8; ++#else ++typedef signed char __s8; ++#endif ++#endif /* HAVE___S8 */ ++ ++#ifndef HAVE___U16 ++#define HAVE___U16 ++#ifdef __U16_TYPEDEF ++typedef __U16_TYPEDEF __u16; ++#else ++#if (4 == 2) ++typedef unsigned int __u16; ++#else ++#if (2 == 2) ++typedef unsigned short __u16; ++#else ++#undef HAVE___U16 ++ ?==error: undefined 16 bit type ++#endif /* SIZEOF_SHORT == 2 */ ++#endif /* SIZEOF_INT == 2 */ ++#endif /* __U16_TYPEDEF */ ++#endif /* HAVE___U16 */ ++ ++#ifndef HAVE___S16 ++#define HAVE___S16 ++#ifdef __S16_TYPEDEF ++typedef __S16_TYPEDEF __s16; ++#else ++#if (4 == 2) ++typedef int __s16; ++#else ++#if (2 == 2) ++typedef short __s16; ++#else ++#undef HAVE___S16 ++ ?==error: undefined 16 bit type ++#endif /* SIZEOF_SHORT == 2 */ ++#endif /* SIZEOF_INT == 2 */ ++#endif /* __S16_TYPEDEF */ ++#endif /* HAVE___S16 */ ++ ++#ifndef HAVE___U32 ++#define HAVE___U32 ++#ifdef __U32_TYPEDEF ++typedef __U32_TYPEDEF __u32; ++#else ++#if (4 == 4) ++typedef unsigned int __u32; ++#else ++#if (4 == 4) ++typedef unsigned long __u32; ++#else ++#if (2 == 4) ++typedef unsigned short __u32; ++#else ++#undef HAVE___U32 ++ ?== error: undefined 32 bit type ++#endif /* SIZEOF_SHORT == 4 */ ++#endif /* SIZEOF_LONG == 4 */ ++#endif /* SIZEOF_INT == 4 */ ++#endif /* __U32_TYPEDEF */ ++#endif /* HAVE___U32 */ ++ ++#ifndef HAVE___S32 ++#define HAVE___S32 ++#ifdef __S32_TYPEDEF ++typedef __S32_TYPEDEF __s32; ++#else ++#if (4 == 4) ++typedef int __s32; ++#else ++#if (4 == 4) ++typedef long __s32; ++#else ++#if (2 == 4) ++typedef short __s32; ++#else ++#undef HAVE___S32 ++ ?== error: undefined 32 bit type ++#endif /* SIZEOF_SHORT == 4 */ ++#endif /* SIZEOF_LONG == 4 */ ++#endif /* SIZEOF_INT == 4 */ ++#endif /* __S32_TYPEDEF */ ++#endif /* HAVE___S32 */ ++ ++#ifndef HAVE___U64 ++#define HAVE___U64 ++#ifdef __U64_TYPEDEF ++typedef __U64_TYPEDEF __u64; ++#else ++#if (4 == 8) ++typedef unsigned int __u64; ++#else ++#if (8 == 8) ++typedef unsigned long long __u64; ++#else ++#if (4 == 8) ++typedef unsigned long __u64; ++#else ++#undef HAVE___U64 ++ ?== error: undefined 64 bit type ++#endif /* SIZEOF_LONG_LONG == 8 */ ++#endif /* SIZEOF_LONG == 8 */ ++#endif /* SIZEOF_INT == 8 */ ++#endif /* __U64_TYPEDEF */ ++#endif /* HAVE___U64 */ ++ ++#ifndef HAVE___S64 ++#define HAVE___S64 ++#ifdef __S64_TYPEDEF ++typedef __S64_TYPEDEF __s64; ++#else ++#if (4 == 8) ++typedef int __s64; ++#else ++#if (8 == 8) ++#if defined(__GNUC__) ++typedef __signed__ long long __s64; ++#else ++typedef signed long long __s64; ++#endif /* __GNUC__ */ ++#else ++#if (4 == 8) ++typedef long __s64; ++#else ++#undef HAVE___S64 ++ ?== error: undefined 64 bit type ++#endif /* SIZEOF_LONG_LONG == 8 */ ++#endif /* SIZEOF_LONG == 8 */ ++#endif /* SIZEOF_INT == 8 */ ++#endif /* __S64_TYPEDEF */ ++#endif /* HAVE___S64 */ ++ ++#undef __S8_TYPEDEF ++#undef __U8_TYPEDEF ++#undef __S16_TYPEDEF ++#undef __U16_TYPEDEF ++#undef __S32_TYPEDEF ++#undef __U32_TYPEDEF ++#undef __S64_TYPEDEF ++#undef __U64_TYPEDEF ++ ++#endif /* _*_TYPES_H */ ++ ++#include ++ ++/* endian checking stuff */ ++#ifndef EXT2_ENDIAN_H_ ++#define EXT2_ENDIAN_H_ ++ ++#ifdef __CHECKER__ ++# ifndef __bitwise ++# define __bitwise __attribute__((bitwise)) ++# endif ++#define __force __attribute__((force)) ++#else ++# ifndef __bitwise ++# define __bitwise ++# endif ++#define __force ++#endif ++ ++typedef __u16 __bitwise __le16; ++typedef __u32 __bitwise __le32; ++typedef __u64 __bitwise __le64; ++typedef __u16 __bitwise __be16; ++typedef __u32 __bitwise __be32; ++typedef __u64 __bitwise __be64; ++ ++#endif /* EXT2_ENDIAN_H_ */ ++ ++/* These defines are needed for the public ext2fs.h header file */ ++#define HAVE_SYS_TYPES_H 1 ++#undef WORDS_BIGENDIAN +diff --git a/lib/ss/ss_err.c b/lib/ss/ss_err.c +new file mode 100644 +index 0000000000000000000000000000000000000000..2beeaad947d319c3749577fe39236ab1643dea9f +--- /dev/null ++++ b/lib/ss/ss_err.c +@@ -0,0 +1,66 @@ ++/* ++ * ss_err.c: ++ * This file is automatically generated; please do not edit it. ++ */ ++ ++#include ++ ++#define N_(a) a ++ ++static const char * const text[] = { ++ N_( "Subsystem aborted"), ++ N_( "Version mismatch"), ++ N_( "No current invocation"), ++ N_( "No info directory"), ++ N_( "Command not found"), ++ N_( "Command line aborted"), ++ N_( "End-of-file reached"), ++ N_( "Permission denied"), ++ N_( "Request table not found"), ++ N_( "No info available"), ++ N_( "Shell escapes are disabled"), ++ N_( "Sorry, this request is not yet implemented"), ++ 0 ++}; ++ ++struct error_table { ++ char const * const * msgs; ++ long base; ++ int n_msgs; ++}; ++struct et_list { ++ struct et_list *next; ++ const struct error_table * table; ++}; ++extern struct et_list *_et_list; ++ ++const struct error_table et_ss_error_table = { text, 748800L, 12 }; ++ ++static struct et_list link = { 0, 0 }; ++ ++void initialize_ss_error_table_r(struct et_list **list); ++void initialize_ss_error_table(void); ++ ++void initialize_ss_error_table(void) { ++ initialize_ss_error_table_r(&_et_list); ++} ++ ++/* For Heimdal compatibility */ ++void initialize_ss_error_table_r(struct et_list **list) ++{ ++ struct et_list *et, **end; ++ ++ for (end = list, et = *list; et; end = &et->next, et = et->next) ++ if (et->table->msgs == text) ++ return; ++ et = malloc(sizeof(struct et_list)); ++ if (et == 0) { ++ if (!link.table) ++ et = &link; ++ else ++ return; ++ } ++ et->table = &et_ss_error_table; ++ et->next = 0; ++ *end = et; ++} +diff --git a/lib/ss/ss_err.h b/lib/ss/ss_err.h +new file mode 100644 +index 0000000000000000000000000000000000000000..930776aeeb21bb9b6525047b7e58610720d888c8 +--- /dev/null ++++ b/lib/ss/ss_err.h +@@ -0,0 +1,30 @@ ++/* ++ * ss_err.h: ++ * This file is automatically generated; please do not edit it. ++ */ ++ ++#include ++ ++#define SS_ET_SUBSYSTEM_ABORTED (748800L) ++#define SS_ET_VERSION_MISMATCH (748801L) ++#define SS_ET_NULL_INV (748802L) ++#define SS_ET_NO_INFO_DIR (748803L) ++#define SS_ET_COMMAND_NOT_FOUND (748804L) ++#define SS_ET_LINE_ABORTED (748805L) ++#define SS_ET_EOF (748806L) ++#define SS_ET_PERMISSION_DENIED (748807L) ++#define SS_ET_TABLE_NOT_FOUND (748808L) ++#define SS_ET_NO_HELP_FILE (748809L) ++#define SS_ET_ESCAPE_DISABLED (748810L) ++#define SS_ET_UNIMPLEMENTED (748811L) ++extern const struct error_table et_ss_error_table; ++extern void initialize_ss_error_table(void); ++ ++/* For compatibility with Heimdal */ ++extern void initialize_ss_error_table_r(struct et_list **list); ++ ++#define ERROR_TABLE_BASE_ss (748800L) ++ ++/* for compatibility with older versions... */ ++#define init_ss_err_tbl initialize_ss_error_table ++#define ss_err_base ERROR_TABLE_BASE_ss +diff --git a/lib/ss/std_rqs.c b/lib/ss/std_rqs.c +new file mode 100644 +index 0000000000000000000000000000000000000000..0ada9a8dc46b5294268440bdfb6def29e39f8843 +--- /dev/null ++++ b/lib/ss/std_rqs.c +@@ -0,0 +1,104 @@ ++/* ./std_rqs.c - automatically generated from ./std_rqs.ct */ ++#include ++ ++static char const * const ssu00001[] = { ++".", ++ (char const *)0 ++}; ++extern void ss_self_identify __SS_PROTO; ++static char const * const ssu00002[] = { ++"help", ++ (char const *)0 ++}; ++extern void ss_help __SS_PROTO; ++static char const * const ssu00003[] = { ++"list_help", ++ "lh", ++ (char const *)0 ++}; ++extern void ss_unimplemented __SS_PROTO; ++static char const * const ssu00004[] = { ++"list_requests", ++ "lr", ++ "?", ++ (char const *)0 ++}; ++extern void ss_list_requests __SS_PROTO; ++static char const * const ssu00005[] = { ++"quit", ++ "q", ++ (char const *)0 ++}; ++extern void ss_quit __SS_PROTO; ++static char const * const ssu00006[] = { ++"abbrev", ++ "ab", ++ (char const *)0 ++}; ++extern void ss_unimplemented __SS_PROTO; ++static char const * const ssu00007[] = { ++"execute", ++ "e", ++ (char const *)0 ++}; ++extern void ss_unimplemented __SS_PROTO; ++static char const * const ssu00008[] = { ++"?", ++ (char const *)0 ++}; ++extern void ss_unimplemented __SS_PROTO; ++static char const * const ssu00009[] = { ++"subsystem_name", ++ (char const *)0 ++}; ++extern void ss_subsystem_name __SS_PROTO; ++static char const * const ssu00010[] = { ++"subsystem_version", ++ (char const *)0 ++}; ++extern void ss_subsystem_version __SS_PROTO; ++static ss_request_entry ssu00011[] = { ++ { ssu00001, ++ ss_self_identify, ++ "Identify the subsystem.", ++ 3 }, ++ { ssu00002, ++ ss_help, ++ "Display info on command or topic.", ++ 0 }, ++ { ssu00003, ++ ss_unimplemented, ++ "List topics for which help is available.", ++ 3 }, ++ { ssu00004, ++ ss_list_requests, ++ "List available commands.", ++ 0 }, ++ { ssu00005, ++ ss_quit, ++ "Leave the subsystem.", ++ 0 }, ++ { ssu00006, ++ ss_unimplemented, ++ "Enable/disable abbreviation processing of request lines.", ++ 3 }, ++ { ssu00007, ++ ss_unimplemented, ++ "Execute a UNIX command line.", ++ 3 }, ++ { ssu00008, ++ ss_unimplemented, ++ "Produce a list of the most commonly used requests.", ++ 3 }, ++ { ssu00009, ++ ss_subsystem_name, ++ "Return the name of this subsystem.", ++ 1 }, ++ { ssu00010, ++ ss_subsystem_version, ++ "Return the version of this subsystem.", ++ 1 }, ++ { 0, 0, 0, 0 } ++}; ++ ++ss_request_table ss_std_requests = { 2, ssu00011 }; +diff --git a/lib/support/prof_err.c b/lib/support/prof_err.c +new file mode 100644 +index 0000000000000000000000000000000000000000..2c8d43bfd089c64391e635d0cbebef67db42d839 +--- /dev/null ++++ b/lib/support/prof_err.c +@@ -0,0 +1,85 @@ ++/* ++ * prof_err.c: ++ * This file is automatically generated; please do not edit it. ++ */ ++ ++#include ++ ++#define N_(a) a ++ ++static const char * const text[] = { ++ N_("Profile version 0.0"), ++ N_("Bad magic value in profile_node"), ++ N_("Profile section not found"), ++ N_("Profile relation not found"), ++ N_( "Attempt to add a relation to node which is not a section"), ++ N_( "A profile section header has a non-zero value"), ++ N_("Bad linked list in profile structures"), ++ N_("Bad group level in profile structures"), ++ N_( "Bad parent pointer in profile structures"), ++ N_("Bad magic value in profile iterator"), ++ N_("Can't set value on section node"), ++ N_("Invalid argument passed to profile library"), ++ N_("Attempt to modify read-only profile"), ++ N_("Profile section header not at top level"), ++ N_("Syntax error in profile section header"), ++ N_("Syntax error in profile relation"), ++ N_("Extra closing brace in profile"), ++ N_("Missing open brace in profile"), ++ N_("Bad magic value in profile_t"), ++ N_("Bad magic value in profile_section_t"), ++ N_( "Iteration through all top level section not supported"), ++ N_("Invalid profile_section object"), ++ N_("No more sections"), ++ N_("Bad nameset passed to query routine"), ++ N_("No profile file open"), ++ N_("Bad magic value in profile_file_t"), ++ N_("Couldn't open profile file"), ++ N_("Section already exists"), ++ N_("Invalid boolean value"), ++ N_("Invalid integer value"), ++ N_("Bad magic value in profile_file_data_t"), ++ 0 ++}; ++ ++struct error_table { ++ char const * const * msgs; ++ long base; ++ int n_msgs; ++}; ++struct et_list { ++ struct et_list *next; ++ const struct error_table * table; ++}; ++extern struct et_list *_et_list; ++ ++const struct error_table et_prof_error_table = { text, -1429577728L, 31 }; ++ ++static struct et_list link = { 0, 0 }; ++ ++void initialize_prof_error_table_r(struct et_list **list); ++void initialize_prof_error_table(void); ++ ++void initialize_prof_error_table(void) { ++ initialize_prof_error_table_r(&_et_list); ++} ++ ++/* For Heimdal compatibility */ ++void initialize_prof_error_table_r(struct et_list **list) ++{ ++ struct et_list *et, **end; ++ ++ for (end = list, et = *list; et; end = &et->next, et = et->next) ++ if (et->table->msgs == text) ++ return; ++ et = malloc(sizeof(struct et_list)); ++ if (et == 0) { ++ if (!link.table) ++ et = &link; ++ else ++ return; ++ } ++ et->table = &et_prof_error_table; ++ et->next = 0; ++ *end = et; ++} +diff --git a/lib/support/prof_err.h b/lib/support/prof_err.h +new file mode 100644 +index 0000000000000000000000000000000000000000..e8066ddcffc3a1cc1042f4caf305dab4fb31cbf4 +--- /dev/null ++++ b/lib/support/prof_err.h +@@ -0,0 +1,49 @@ ++/* ++ * prof_err.h: ++ * This file is automatically generated; please do not edit it. ++ */ ++ ++#include ++ ++#define PROF_VERSION (-1429577728L) ++#define PROF_MAGIC_NODE (-1429577727L) ++#define PROF_NO_SECTION (-1429577726L) ++#define PROF_NO_RELATION (-1429577725L) ++#define PROF_ADD_NOT_SECTION (-1429577724L) ++#define PROF_SECTION_WITH_VALUE (-1429577723L) ++#define PROF_BAD_LINK_LIST (-1429577722L) ++#define PROF_BAD_GROUP_LVL (-1429577721L) ++#define PROF_BAD_PARENT_PTR (-1429577720L) ++#define PROF_MAGIC_ITERATOR (-1429577719L) ++#define PROF_SET_SECTION_VALUE (-1429577718L) ++#define PROF_EINVAL (-1429577717L) ++#define PROF_READ_ONLY (-1429577716L) ++#define PROF_SECTION_NOTOP (-1429577715L) ++#define PROF_SECTION_SYNTAX (-1429577714L) ++#define PROF_RELATION_SYNTAX (-1429577713L) ++#define PROF_EXTRA_CBRACE (-1429577712L) ++#define PROF_MISSING_OBRACE (-1429577711L) ++#define PROF_MAGIC_PROFILE (-1429577710L) ++#define PROF_MAGIC_SECTION (-1429577709L) ++#define PROF_TOPSECTION_ITER_NOSUPP (-1429577708L) ++#define PROF_INVALID_SECTION (-1429577707L) ++#define PROF_END_OF_SECTIONS (-1429577706L) ++#define PROF_BAD_NAMESET (-1429577705L) ++#define PROF_NO_PROFILE (-1429577704L) ++#define PROF_MAGIC_FILE (-1429577703L) ++#define PROF_FAIL_OPEN (-1429577702L) ++#define PROF_EXISTS (-1429577701L) ++#define PROF_BAD_BOOLEAN (-1429577700L) ++#define PROF_BAD_INTEGER (-1429577699L) ++#define PROF_MAGIC_FILE_DATA (-1429577698L) ++extern const struct error_table et_prof_error_table; ++extern void initialize_prof_error_table(void); ++ ++/* For compatibility with Heimdal */ ++extern void initialize_prof_error_table_r(struct et_list **list); ++ ++#define ERROR_TABLE_BASE_prof (-1429577728L) ++ ++/* for compatibility with older versions... */ ++#define init_prof_err_tbl initialize_prof_error_table ++#define prof_err_base ERROR_TABLE_BASE_prof +diff --git a/lib/uuid/uuid.h b/lib/uuid/uuid.h +new file mode 100644 +index 0000000000000000000000000000000000000000..ca846da0f0918cdd3961d57ac8e87b10c669f228 +--- /dev/null ++++ b/lib/uuid/uuid.h +@@ -0,0 +1,103 @@ ++/* ++ * Public include file for the UUID library ++ * ++ * Copyright (C) 1996, 1997, 1998 Theodore Ts'o. ++ * ++ * %Begin-Header% ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, and the entire permission notice in its entirety, ++ * including the disclaimer of warranties. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote ++ * products derived from this software without specific prior ++ * written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED ++ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF ++ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE ++ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT ++ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ++ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ++ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE ++ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH ++ * DAMAGE. ++ * %End-Header% ++ */ ++ ++#ifndef _UUID_UUID_H ++#define _UUID_UUID_H ++ ++#include ++#ifndef _WIN32 ++#include ++#endif ++#include ++ ++typedef unsigned char uuid_t[16]; ++ ++/* UUID Variant definitions */ ++#define UUID_VARIANT_NCS 0 ++#define UUID_VARIANT_DCE 1 ++#define UUID_VARIANT_MICROSOFT 2 ++#define UUID_VARIANT_OTHER 3 ++ ++/* UUID Type definitions */ ++#define UUID_TYPE_DCE_TIME 1 ++#define UUID_TYPE_DCE_RANDOM 4 ++ ++/* Allow UUID constants to be defined */ ++#ifdef __GNUC__ ++#define UUID_DEFINE(name,u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,u15) \ ++ static const uuid_t name __attribute__ ((unused)) = {u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,u15} ++#else ++#define UUID_DEFINE(name,u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,u15) \ ++ static const uuid_t name = {u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,u15} ++#endif ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++/* clear.c */ ++void uuid_clear(uuid_t uu); ++ ++/* compare.c */ ++int uuid_compare(const uuid_t uu1, const uuid_t uu2); ++ ++/* copy.c */ ++void uuid_copy(uuid_t dst, const uuid_t src); ++ ++/* gen_uuid.c */ ++void uuid_generate(uuid_t out); ++void uuid_generate_random(uuid_t out); ++void uuid_generate_time(uuid_t out); ++ ++/* isnull.c */ ++int uuid_is_null(const uuid_t uu); ++ ++/* parse.c */ ++int uuid_parse(const char *in, uuid_t uu); ++ ++/* unparse.c */ ++void uuid_unparse(const uuid_t uu, char *out); ++void uuid_unparse_lower(const uuid_t uu, char *out); ++void uuid_unparse_upper(const uuid_t uu, char *out); ++ ++/* uuid_time.c */ ++time_t uuid_time(const uuid_t uu, struct timeval *ret_tv); ++int uuid_type(const uuid_t uu); ++int uuid_variant(const uuid_t uu); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* _UUID_UUID_H */ +diff --git a/lib/uuid/uuid_types.h b/lib/uuid/uuid_types.h +new file mode 100644 +index 0000000000000000000000000000000000000000..169a88a74ad05d92f3c707c74bb8d7cb34f8b188 +--- /dev/null ++++ b/lib/uuid/uuid_types.h +@@ -0,0 +1,50 @@ ++/* ++ * If linux/types.h is already been included, assume it has defined ++ * everything we need. (cross fingers) Other header files may have ++ * also defined the types that we need. ++ */ ++#if (!defined(_STDINT_H) && !defined(_UUID_STDINT_H)) ++#define _UUID_STDINT_H ++ ++typedef unsigned char uint8_t; ++typedef signed char int8_t; ++ ++#if (4 == 8) ++typedef int int64_t; ++typedef unsigned int uint64_t; ++#elif (4 == 8) ++typedef long int64_t; ++typedef unsigned long uint64_t; ++#elif (8 == 8) ++#if defined(__GNUC__) ++typedef __signed__ long long int64_t; ++#else ++typedef signed long long int64_t; ++#endif ++typedef unsigned long long uint64_t; ++#endif ++ ++#if (4 == 2) ++typedef int int16_t; ++typedef unsigned int uint16_t; ++#elif (2 == 2) ++typedef short int16_t; ++typedef unsigned short uint16_t; ++#else ++ ?==error: undefined 16 bit type ++#endif ++ ++#if (4 == 4) ++typedef int int32_t; ++typedef unsigned int uint32_t; ++#elif (4 == 4) ++typedef long int32_t; ++typedef unsigned long uint32_t; ++#elif (2 == 4) ++typedef short int32_t; ++typedef unsigned short uint32_t; ++#else ++ ?== error: undefined 32 bit type ++#endif ++ ++#endif +diff --git a/misc/default_profile.c b/misc/default_profile.c +new file mode 100644 +index 0000000000000000000000000000000000000000..585a34d34920ebe44f219711802d630c730ec210 +--- /dev/null ++++ b/misc/default_profile.c +@@ -0,0 +1,49 @@ ++const char *mke2fs_default_profile = ++ "[defaults]\n" ++ " base_features = sparse_super,large_file,filetype,resize_inode,dir_index,ext_attr\n" ++ " default_mntopts = acl,user_xattr\n" ++ " enable_periodic_fsck = 0\n" ++ " blocksize = 4096\n" ++ " inode_size = 256\n" ++ " inode_ratio = 16384\n" ++ "\n" ++ "[fs_types]\n" ++ " ext3 = {\n" ++ " features = has_journal\n" ++ " }\n" ++ " ext4 = {\n" ++ " features = has_journal,extent,huge_file,flex_bg,metadata_csum,64bit,dir_nlink,extra_isize\n" ++ " inode_size = 256\n" ++ " }\n" ++ " small = {\n" ++ " blocksize = 1024\n" ++ " inode_size = 128\n" ++ " inode_ratio = 4096\n" ++ " }\n" ++ " floppy = {\n" ++ " blocksize = 1024\n" ++ " inode_size = 128\n" ++ " inode_ratio = 8192\n" ++ " }\n" ++ " big = {\n" ++ " inode_ratio = 32768\n" ++ " }\n" ++ " huge = {\n" ++ " inode_ratio = 65536\n" ++ " }\n" ++ " news = {\n" ++ " inode_ratio = 4096\n" ++ " }\n" ++ " largefile = {\n" ++ " inode_ratio = 1048576\n" ++ " blocksize = -1\n" ++ " }\n" ++ " largefile4 = {\n" ++ " inode_ratio = 4194304\n" ++ " blocksize = -1\n" ++ " }\n" ++ " hurd = {\n" ++ " blocksize = 4096\n" ++ " inode_size = 128\n" ++ " }\n" ++; diff --git a/1003-add-dac-config.patch b/1003-add-dac-config.patch new file mode 100644 index 00000000..cc8ffdc1 --- /dev/null +++ b/1003-add-dac-config.patch @@ -0,0 +1,398 @@ +diff --git a/contrib/android/dac_config.cpp b/contrib/android/dac_config.cpp +new file mode 100644 +index 00000000..422e0d52 +--- /dev/null ++++ b/contrib/android/dac_config.cpp +@@ -0,0 +1,240 @@ ++/* ++ * Copyright (c) 2021 Huawei Device Co., Ltd. ++ * Licensed under the Apache License, Version 2.0 (the "License"); ++ * you may not use this file except in compliance with the License. ++ * You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, software ++ * distributed under the License is distributed on an "AS IS" BASIS, ++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ * See the License for the specific language governing permissions and ++ * limitations under the License. ++ */ ++ ++#define __cpluscplus ++#include "dac_config.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++using namespace std; ++ ++namespace { ++struct DacConfig { ++ unsigned int uid; ++ unsigned int gid; ++ unsigned int mode; ++ uint64_t capabilities; ++ string path; ++ ++ DacConfig() : uid(0), gid(0), mode(0), capabilities(0), path("") {} ++ DacConfig(unsigned int m, unsigned int u, unsigned int g, uint64_t c, string p) : ++ uid(u), ++ gid(g), ++ mode(m), ++ capabilities(c), ++ path(p) {} ++ ++ void SetDefault(unsigned int m, unsigned int u, unsigned int g, uint64_t c, string p) ++ { ++ this->uid = u; ++ this->gid = g; ++ this->mode = m; ++ this->capabilities = c; ++ this->path = p; ++ } ++}; ++ ++unordered_map g_configMap; ++ ++static string Trim(const string& s) ++{ ++ if (s.size() == 0) { ++ return s; ++ } ++ ++ size_t start = 0; ++ size_t end = s.size() - 1; ++ ++ while (start < s.size() && isspace(s[start])) { ++ start++; ++ } ++ ++ while (end >= start && isspace(s[end])) { ++ end--; ++ } ++ ++ if (end < start) { ++ return ""; ++ } ++ ++ return s.substr(start, end - start + 1); ++} ++ ++unordered_map g_capStrCapNum = { ++ { "CAP_CHOWN", CAP_CHOWN }, ++ { "CAP_DAC_OVERRIDE", CAP_DAC_OVERRIDE }, ++ { "CAP_DAC_READ_SEARCH", CAP_DAC_READ_SEARCH }, ++ { "CAP_FOWNER", CAP_FOWNER }, ++ { "CAP_FSETID", CAP_FSETID }, ++ { "CAP_KILL", CAP_KILL }, ++ { "CAP_SETGID", CAP_SETGID }, ++ { "CAP_SETUID", CAP_SETUID }, ++ { "CAP_LINUX_IMMUTABLE", CAP_LINUX_IMMUTABLE }, ++ { "CAP_NET_BIND_SERVICE", CAP_NET_BIND_SERVICE }, ++ { "CAP_NET_BROADCAST", CAP_NET_BROADCAST }, ++ { "CAP_NET_ADMIN", CAP_NET_ADMIN }, ++ { "CAP_NET_RAW", CAP_NET_RAW }, ++ { "CAP_IPC_LOCK", CAP_IPC_LOCK }, ++ { "CAP_IPC_OWNER", CAP_IPC_OWNER }, ++ { "CAP_SYS_MODULE", CAP_SYS_MODULE }, ++ { "CAP_SYS_RAWIO", CAP_SYS_RAWIO }, ++ { "CAP_SYS_CHROOT", CAP_SYS_CHROOT }, ++ { "CAP_SYS_PTRACE", CAP_SYS_PTRACE }, ++ { "CAP_SYS_PACCT", CAP_SYS_PACCT }, ++ { "CAP_SYS_ADMIN", CAP_SYS_ADMIN }, ++ { "CAP_SYS_ROOT", CAP_SYS_BOOT }, ++ { "CAP_SYS_NICE", CAP_SYS_NICE }, ++ { "CAP_SYS_RESOURCE", CAP_SYS_RESOURCE }, ++ { "CAP_SYS_TIME", CAP_SYS_TIME }, ++ { "CAP_SYS_TTY_CONFIG", CAP_SYS_TTY_CONFIG }, ++ { "CAP_MKNOD", CAP_MKNOD }, ++ { "CAP_LEASE", CAP_LEASE }, ++ { "CAP_AUDIT_WRITE", CAP_AUDIT_WRITE }, ++ { "CAP_AUDIT_CONTROL", CAP_AUDIT_CONTROL }, ++ { "CAP_SETFCAP", CAP_SETFCAP }, ++ { "CAP_MAC_OVERRIDE", CAP_MAC_OVERRIDE }, ++ { "CAP_MAC_ADMIN", CAP_MAC_ADMIN }, ++ { "CAP_SYSLOG", CAP_SYSLOG }, ++ { "CAP_WAKE_ALARM", CAP_WAKE_ALARM }, ++ { "CAP_BLOCK_SUSPEND", CAP_BLOCK_SUSPEND }, ++}; ++ ++static uint64_t GetCap(string cap) ++{ ++ if (isdigit(cap[0])) { ++ return stoll(cap); ++ } ++ ++ stringstream ss(cap); ++ string value; ++ uint64_t c = 0; ++ while (getline(ss, value, '|')) { ++ value = Trim(value); ++ if (g_capStrCapNum.count(value)) { ++ c |= (1ULL << g_capStrCapNum[value]); ++ } ++ } ++ ++ return c; ++} ++ ++enum { ++ DAC_PATH_IDX = 0, ++ DAC_MODE_IDX, ++ DAC_UID_IDX, ++ DAC_GID_IDX, ++ DAC_CAP_IDX, ++ DAC_NUM ++}; ++ ++extern "C" { ++ int LoadDacConfig(const char* fn) ++ { ++ ifstream readFile(fn); ++ if (readFile.fail()) { ++ return -1; ++ } ++ ++ string str; ++ vector values(DAC_NUM, ""); // path, mode, uid, gid, cap ++ while (getline(readFile, str)) { ++ str = Trim(str); ++ if (str.empty() || str[0] == '#') { ++ continue; ++ } ++ ++ stringstream ss(str); ++ string value; ++ int i = 0; ++ while (getline(ss, value, ',')) { ++ if (i >= DAC_NUM) { ++ break; ++ } ++ ++ value = Trim(value); ++ if (value.empty()) { ++ continue; ++ } ++ values[i++] = value; ++ } ++ ++ if (i != DAC_NUM) { ++ continue; ++ } ++ ++ int uid = 0; ++ if (isdigit(values[DAC_UID_IDX][0])) { ++ uid = stoi(values[DAC_UID_IDX]); ++ } ++ ++ int gid = 0; ++ if (isdigit(values[DAC_GID_IDX][0])) { ++ uid = stoi(values[DAC_GID_IDX]); ++ } ++ ++ uint64_t cap = GetCap(values[DAC_CAP_IDX]); ++ DacConfig dacConfig(stoi(values[DAC_MODE_IDX], 0, 8), uid, gid, cap, values[DAC_PATH_IDX]); // 8 oct ++ g_configMap[dacConfig.path] = dacConfig; ++ } ++ ++ return 0; ++ } ++ ++ void GetDacConfig(const char* path, int dir, char* targetOutPath, ++ unsigned* uid, unsigned* gid, unsigned* mode, ++ uint64_t* capabilities) ++ { ++ if (path && path[0] == '/') { ++ path++; ++ } ++ ++ (void)targetOutPath; ++ string str = path; ++ string str2; ++ DacConfig dacConfig(00755, 0, 0, 0, ""); ++ ++ if (dir == 0) { ++ dacConfig.SetDefault(00644, 0, 0, 0, ""); ++ } ++ ++ if (g_configMap.count(str)) { ++ dacConfig = g_configMap[str]; ++ } else if (dir == 0 && !str.empty()) { ++ for (auto i = str.size() - 1; i >= 0; i--) { ++ if (str[i] == '/') { ++ break; ++ } else { ++ str2 = str.substr(0, i) + "*"; ++ if (g_configMap.count(str2)) { ++ dacConfig = g_configMap[str2]; ++ break; ++ } ++ } ++ } ++ } ++ ++ *uid = dacConfig.uid; ++ *gid = dacConfig.gid; ++ *mode = dacConfig.mode; ++ *capabilities = dacConfig.capabilities; ++ } ++} ++} +diff --git a/contrib/android/dac_config.h b/contrib/android/dac_config.h +new file mode 100644 +index 00000000..45b89393 +--- /dev/null ++++ b/contrib/android/dac_config.h +@@ -0,0 +1,32 @@ ++/* ++ * Copyright (c) 2021 Huawei Device Co., Ltd. ++ * Licensed under the Apache License, Version 2.0 (the "License"); ++ * you may not use this file except in compliance with the License. ++ * You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, software ++ * distributed under the License is distributed on an "AS IS" BASIS, ++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ * See the License for the specific language governing permissions and ++ * limitations under the License. ++ */ ++ ++#ifndef __DAC_CONFIG ++#define __DAC_CONFIG ++#include ++ ++#ifdef __cpluscplus ++extern "C" { ++#endif ++ ++int LoadDacConfig(const char* fn); ++void GetDacConfig(const char* path, int dir, char* targetOutPath, ++ unsigned* uid, unsigned* gid, unsigned* mode, ++ uint64_t* capabilities); ++ ++#ifdef __cpluscplus ++} ++#endif ++#endif +diff --git a/contrib/android/perms.c b/contrib/android/perms.c +index 9c5ec05b..680d348e 100644 +--- a/contrib/android/perms.c ++++ b/contrib/android/perms.c +@@ -358,16 +358,25 @@ errcode_t android_configure_fs(ext2_filsys fs, char *src_dir, char *target_out, + + /* Load the FS config */ + if (fs_config_file) { ++#if defined(__ANDROID__) + retval = load_canned_fs_config(fs_config_file); ++#else ++ retval = LoadDacConfig(fs_config_file); ++#endif + if (retval < 0) { + com_err(__func__, retval, + _("while loading fs_config \"%s\""), + fs_config_file); + return retval; + } ++#if defined(__ANDROID__) + fs_config_func = canned_fs_config; + } else if (mountpoint) + fs_config_func = fs_config; ++#else ++ fs_config_func = GetDacConfig; ++ } ++#endif + + return __android_configure_fs(fs, src_dir, target_out, mountpoint, + fs_config_func, sehnd, fixed_time, +diff --git a/contrib/android/perms.h b/contrib/android/perms.h +index 6d6a2129..2bb0021f 100644 +--- a/contrib/android/perms.h ++++ b/contrib/android/perms.h +@@ -48,11 +48,12 @@ static inline errcode_t android_configure_fs(ext2_filsys fs, + # include + # if defined(__ANDROID__) + # include +-# endif + # include + # include + # include +- ++# else /* !__ANDROID__ */ ++#include "dac_config.h" ++# endif + errcode_t android_configure_fs(ext2_filsys fs, char *src_dir, + char *target_out, + char *mountpoint, +-- +diff --git a/contrib/android/dac_config.cpp b/contrib/android/dac_config.cpp +index 422e0d52280ff4f142b278c5fedb04790846b9ee..1c76dfd7e7d1b067941b79e73311144d548a3179 100644 +--- a/contrib/android/dac_config.cpp ++++ b/contrib/android/dac_config.cpp +@@ -35,14 +35,14 @@ struct DacConfig { + string path; + + DacConfig() : uid(0), gid(0), mode(0), capabilities(0), path("") {} +- DacConfig(unsigned int m, unsigned int u, unsigned int g, uint64_t c, string p) : ++ DacConfig(unsigned int m, unsigned int u, unsigned int g, uint64_t c, const string &p) : + uid(u), + gid(g), + mode(m), + capabilities(c), + path(p) {} + +- void SetDefault(unsigned int m, unsigned int u, unsigned int g, uint64_t c, string p) ++ void SetDefault(unsigned int m, unsigned int u, unsigned int g, uint64_t c, const string &p) + { + this->uid = u; + this->gid = g; +@@ -198,33 +198,28 @@ extern "C" { + return 0; + } + +- void GetDacConfig(const char* path, int dir, char* targetOutPath, ++ void GetDacConfig(const char* path, int dir, char*, + unsigned* uid, unsigned* gid, unsigned* mode, + uint64_t* capabilities) + { +- if (path && path[0] == '/') { +- path++; +- } +- +- (void)targetOutPath; +- string str = path; +- string str2; ++ string str = (path != nullptr && *path == '/') ? path + 1 : path; + DacConfig dacConfig(00755, 0, 0, 0, ""); + + if (dir == 0) { + dacConfig.SetDefault(00644, 0, 0, 0, ""); + } + +- if (g_configMap.count(str)) { +- dacConfig = g_configMap[str]; ++ auto it = g_configMap.find(str); ++ if (it != g_configMap.end()) { ++ dacConfig = it->second; + } else if (dir == 0 && !str.empty()) { +- for (auto i = str.size() - 1; i >= 0; i--) { ++ for (int i = static_cast(str.size()) - 1; i >= 0; i--) { + if (str[i] == '/') { + break; + } else { +- str2 = str.substr(0, i) + "*"; +- if (g_configMap.count(str2)) { +- dacConfig = g_configMap[str2]; ++ it = g_configMap.find(str.substr(0, i) + "*"); ++ if (it != g_configMap.end()) { ++ dacConfig = it->second; + break; + } + } diff --git a/1004-modify-code-to-compile.patch b/1004-modify-code-to-compile.patch new file mode 100644 index 00000000..bf41433f --- /dev/null +++ b/1004-modify-code-to-compile.patch @@ -0,0 +1,46 @@ +diff --git a/contrib/android/block_range.c b/contrib/android/block_range.c +index 0a068826c98c8ba3d5b490b9188202c261d4988b..5a45bca094c43b8fe9c1fb3817ae373c15b22387 100644 +--- a/contrib/android/block_range.c ++++ b/contrib/android/block_range.c +@@ -1,4 +1,6 @@ ++#ifndef _GNU_SOURCE + #define _GNU_SOURCE ++#endif + + #include "block_range.h" + #include +diff --git a/contrib/android/e2fsdroid.c b/contrib/android/e2fsdroid.c +index 1beb1e25bee8f1d4d33f1bf1b0e36064c567d544..622ad570f2eabc201e0e69cae4dc4ca86221dbd6 100644 +--- a/contrib/android/e2fsdroid.c ++++ b/contrib/android/e2fsdroid.c +@@ -1,4 +1,6 @@ ++#ifndef _GNU_SOURCE + #define _GNU_SOURCE ++#endif + + #include + #include +diff --git a/contrib/android/perms.c b/contrib/android/perms.c +index 680d348e38e9374c2352dc66633132b95fe867fd..bfe06ca365682d4a508dd1634860a9abcf2c6c4b 100644 +--- a/contrib/android/perms.c ++++ b/contrib/android/perms.c +@@ -3,6 +3,7 @@ + #endif + #include "perms.h" + #include "support/nls-enable.h" ++#include + #include + #include + +diff --git a/misc/blkid.c b/misc/blkid.c +index 472f0179ee99ba28c51c2ce48561394482da753b..e46efc707daaf5867bea6cd415b9637e6c5bba61 100644 +--- a/misc/blkid.c ++++ b/misc/blkid.c +@@ -17,6 +17,7 @@ + #ifdef HAVE_TERMIOS_H + #include + #endif ++#undef HAVE_TERMIO_H + #ifdef HAVE_TERMIO_H + #include + #endif diff --git a/1005-read-vfat-chinese-label.patch b/1005-read-vfat-chinese-label.patch new file mode 100644 index 00000000..7d0a2bc0 --- /dev/null +++ b/1005-read-vfat-chinese-label.patch @@ -0,0 +1,88 @@ +diff --git a/misc/blkid.c b/misc/blkid.c +index e46efc707daaf5867bea6cd415b9637e6c5bba61..7b7e015ec66e1800b0e9691aa7f23495a7de66fe 100644 +--- a/misc/blkid.c ++++ b/misc/blkid.c +@@ -37,6 +37,9 @@ extern int optind; + + #include "ext2fs/ext2fs.h" + #include "blkid/blkid.h" ++#include "blkidP.h" ++#include "iconv.h" ++#include "securec.h" + + static const char *progname = "blkid"; + +@@ -228,6 +231,54 @@ static void pretty_print_dev(blkid_dev dev) + pretty_print_line(devname, fs_type, label, mtpt, uuid); + } + ++static int is_str_utf8(const char* str) ++{ ++ unsigned int nBytes = 0; ++ unsigned char chr = *str; ++ int bAllAscii = 1; ++ ++ for (unsigned int i = 0; str[i] != '\0'; ++i) { ++ chr = *(str + i); ++ if ((chr & 0x80) != 0) ++ bAllAscii = 0; ++ if(nBytes == 0 && ((chr & 0x80) != 0)) { ++ while((chr & 0x80) != 0) { ++ chr <<= 1; ++ nBytes ++; ++ } ++ if((nBytes < 2) || (nBytes > 6)) { ++ return 0; ++ } ++ nBytes --; ++ } else if (nBytes != 0) { ++ if((chr & 0xc0) != 0x80) { ++ return 0; ++ } ++ nBytes --; ++ } ++ } ++ if (nBytes && !bAllAscii) { ++ return 0; ++ } ++ ++ return 1; ++} ++ ++ ++static int code_convert(char *from_charset, char *to_charset,char *inbuf, size_t inlen, char *outbuf, size_t outlen) ++{ ++ iconv_t cd; ++ char **pin = &inbuf; ++ char **pout = &outbuf; ++ ++ cd = iconv_open(to_charset, from_charset); ++ if (cd == 0) return -1; ++ if (memset_s(outbuf, outlen, 0, outlen) != EOK) return -1; ++ if (iconv(cd, pin, &inlen, pout, &outlen) == (size_t)-1) return -1; ++ iconv_close(cd); ++ return 0; ++} ++ + static void print_tags(blkid_dev dev, char *show[], int numtag, int output) + { + blkid_tag_iterate iter; +@@ -257,7 +308,17 @@ static void print_tags(blkid_dev dev, char *show[], int numtag, int output) + continue; + } + if (output & OUTPUT_VALUE_ONLY) { +- fputs(value, stdout); ++ if (!strncmp(type, "LABEL", 5) && !strncmp(dev->bid_type, "vfat", 4) && !is_str_utf8(value)) { ++ char outbuf[255]; ++ int res = code_convert("gbk","utf-8", (char *)value, strlen(value), outbuf, 255); ++ if (!res) { ++ fputs(outbuf, stdout); ++ } else { ++ fputs(value, stdout); ++ } ++ } else { ++ fputs(value, stdout); ++ } + fputc('\n', stdout); + } else { + if (first) { diff --git a/1006-add-build-gn.patch b/1006-add-build-gn.patch new file mode 100644 index 00000000..84140ff5 --- /dev/null +++ b/1006-add-build-gn.patch @@ -0,0 +1,886 @@ +diff --git a/contrib/android/BUILD.gn b/contrib/android/BUILD.gn +new file mode 100644 +index 0000000000000000000000000000000000000000..850f8f6e13797f31f469f632b3d8b82e94f5f8c1 +--- /dev/null ++++ b/contrib/android/BUILD.gn +@@ -0,0 +1,73 @@ ++# Copyright (c) 2021 Huawei Device Co., Ltd. ++# Licensed under the Apache License, Version 2.0 (the "License"); ++# you may not use this file except in compliance with the License. ++# You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, software ++# distributed under the License is distributed on an "AS IS" BASIS, ++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++# See the License for the specific language governing permissions and ++# limitations under the License. ++ ++import("//build/ohos.gni") ++import("//build/ohos_var.gni") ++import("//developtools/profiler/build/config.gni") ++ ++ohos_static_library("libdacconfig") { ++ output_name = "libdacconfig" ++ ++ sources = [ "dac_config.cpp" ] ++ ++ part_name = "e2fsprogs" ++ subsystem_name = "thirdparty" ++} ++config("e2fsprogs-defaults") { ++ cflags = [ ++ "-Wno-incompatible-pointer-types", ++ "-Wno-tautological-constant-out-of-range-compare", ++ ] ++} ++ ++###################################################### ++##Build e2fsdroid ++ohos_executable("e2fsdroid") { ++ configs = [ ":e2fsprogs-defaults" ] ++ ++ defines = [ "HAVE_SYS_TYPES_H" ] ++ sources = [ ++ "base_fs.c", ++ "basefs_allocator.c", ++ "block_list.c", ++ "block_range.c", ++ "e2fsdroid.c", ++ "fsmap.c", ++ "perms.c", ++ ] ++ ++ include_dirs = [ ++ ".", ++ "//third_party/e2fsprogs/e2fsprogs/lib", ++ "//third_party/e2fsprogs/e2fsprogs/lib/ext2fs", ++ "//third_party/e2fsprogs/e2fsprogs/misc", ++ "//third_party/selinux/libselinux/include", ++ ] ++ ++ deps = [ ++ "//third_party/e2fsprogs/e2fsprogs/contrib/android:libdacconfig", ++ "//third_party/e2fsprogs/e2fsprogs/lib/et:libext2_com_err", ++ "//third_party/e2fsprogs/e2fsprogs/lib/ext2fs:libext2fs", ++ "//third_party/e2fsprogs/e2fsprogs/misc:libext2_misc", ++ "//third_party/selinux:libselinux", ++ ] ++ ++ install_enable = true ++ subsystem_name = "thirdparty" ++ part_name = "e2fsprogs" ++ install_images = [ ++ "system", ++ "updater", ++ ] ++} ++ +diff --git a/e2fsck/BUILD.gn b/e2fsck/BUILD.gn +new file mode 100644 +index 0000000000000000000000000000000000000000..505f2ab12a13a55d108f36475267a71209e52816 +--- /dev/null ++++ b/e2fsck/BUILD.gn +@@ -0,0 +1,74 @@ ++# Copyright (c) 2021 Huawei Device Co., Ltd. ++# This library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Library General Public License as ++# published by the Free Software Foundation; either version 2 of the ++# License, or (at your option) any later version. ++ ++import("//build/ohos.gni") ++config("e2fsprogs-defaults") { ++ cflags = [ ++ "-Wno-pointer-sign", ++ "-Wno-unused-variable", ++ "-Wno-error=format", ++ ] ++} ++ ++################################################### ++###Build e2fsck ++ohos_executable("e2fsck") { ++ configs = [ ":e2fsprogs-defaults" ] ++ sources = [ ++ "badblocks.c", ++ "dirinfo.c", ++ "dx_dirinfo.c", ++ "e2fsck.c", ++ "ea_refcount.c", ++ "ehandler.c", ++ "encrypted_files.c", ++ "extents.c", ++ "journal.c", ++ "logfile.c", ++ "message.c", ++ "pass1.c", ++ "pass1b.c", ++ "pass2.c", ++ "pass3.c", ++ "pass4.c", ++ "pass5.c", ++ "problem.c", ++ "quota.c", ++ "readahead.c", ++ "recovery.c", ++ "region.c", ++ "rehash.c", ++ "revoke.c", ++ "sigcatcher.c", ++ "super.c", ++ "unix.c", ++ "util.c", ++ ] ++ ++ include_dirs = [ ++ ".", ++ "//third_party/e2fsprogs/e2fsprogs/lib", ++ "//third_party/e2fsprogs/e2fsprogs/lib/ext2fs", ++ "//third_party/mtd-utils/lib", ++ ] ++ ++ deps = [ ++ "//third_party/e2fsprogs/e2fsprogs/lib/blkid:libext2_blkid", ++ "//third_party/e2fsprogs/e2fsprogs/lib/e2p:libext2_e2p", ++ "//third_party/e2fsprogs/e2fsprogs/lib/et:libext2_com_err", ++ "//third_party/e2fsprogs/e2fsprogs/lib/ext2fs:libext2fs", ++ "//third_party/e2fsprogs/e2fsprogs/lib/support:libext2_quota", ++ "//third_party/e2fsprogs/e2fsprogs/lib/uuid:libext2_uuid", ++ ] ++ ++ install_enable = true ++ subsystem_name = "thirdparty" ++ part_name = "e2fsprogs" ++ install_images = [ ++ "system", ++ "updater", ++ ] ++} +diff --git a/lib/BUILD.gn b/lib/BUILD.gn +new file mode 100644 +index 0000000000000000000000000000000000000000..8d10470c3c3cac73ad1f00e5b8a50999dbd98449 +--- /dev/null ++++ b/lib/BUILD.gn +@@ -0,0 +1,17 @@ ++# Copyright (c) 2021 Huawei Device Co., Ltd. ++# Licensed under the Apache License, Version 2.0 (the "License"); ++# you may not use this file except in compliance with the License. ++# You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, software ++# distributed under the License is distributed on an "AS IS" BASIS, ++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++# See the License for the specific language governing permissions and ++# limitations under the License. ++ ++import("//build/ohos.gni") ++config("libext2-headers") { ++ include_dirs = [ "//third_party/e2fsprogs/e2fsprogs/lib" ] ++} +diff --git a/lib/blkid/BUILD.gn b/lib/blkid/BUILD.gn +new file mode 100644 +index 0000000000000000000000000000000000000000..f3067b0fdc5c8b388f8dcdfc63f418abf51af358 +--- /dev/null ++++ b/lib/blkid/BUILD.gn +@@ -0,0 +1,62 @@ ++# Copyright (c) 2021 Huawei Device Co., Ltd. ++# Licensed under the Apache License, Version 2.0 (the "License"); ++# you may not use this file except in compliance with the License. ++# You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, software ++# distributed under the License is distributed on an "AS IS" BASIS, ++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++# See the License for the specific language governing permissions and ++# limitations under the License. ++ ++import("//build/ohos.gni") ++ ++config("e2fsprogs-defaults") { ++ cflags = [ ++ "-Wno-implicit-function-declaration", ++ "-Wno-int-conversion", ++ ] ++ defines = [ "secure_getenv=getenv" ] ++} ++config("libext2-headers") { ++ include_dirs = [ "//third_party/e2fsprogs/e2fsprogs/lib" ] ++} ++ ++ohos_shared_library("libext2_blkid") { ++ configs = [ ++ ":e2fsprogs-defaults", ++ ":libext2-headers", ++ ] ++ sources = [ ++ "cache.c", ++ "dev.c", ++ "devname.c", ++ "devno.c", ++ "getsize.c", ++ "llseek.c", ++ "probe.c", ++ "read.c", ++ "resolve.c", ++ "save.c", ++ "tag.c", ++ "version.c", ++ ] ++ ++ include_dirs = [ "." ] ++ deps = [ "//third_party/e2fsprogs/e2fsprogs/lib/uuid:libext2_uuid" ] ++ cflags = [ ++ "-Wno-error=attributes", ++ "-Wno-error=pointer-sign", ++ "-Wno-unused-parameter", ++ "-fno-strict-aliasing", ++ ] ++ install_enable = true ++ subsystem_name = "thirdparty" ++ part_name = "e2fsprogs" ++ install_images = [ ++ "system", ++ "updater", ++ ] ++} +diff --git a/lib/e2p/BUILD.gn b/lib/e2p/BUILD.gn +new file mode 100644 +index 0000000000000000000000000000000000000000..941f0c7d6dc59f749fc63be13e4d4fc91c78b0ce +--- /dev/null ++++ b/lib/e2p/BUILD.gn +@@ -0,0 +1,69 @@ ++# Copyright (c) 2021 Huawei Device Co., Ltd. ++# Licensed under the Apache License, Version 2.0 (the "License"); ++# you may not use this file except in compliance with the License. ++# You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, software ++# distributed under the License is distributed on an "AS IS" BASIS, ++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++# See the License for the specific language governing permissions and ++# limitations under the License. ++ ++import("//build/ohos.gni") ++config("e2fsprogs-defaults") { ++ cflags = [ ++ "-Wall", ++ "-Werror", ++ ] ++} ++config("libext2-headers") { ++ include_dirs = [ "//third_party/e2fsprogs/e2fsprogs/lib" ] ++} ++ohos_shared_library("libext2_e2p") { ++ sources = [ ++ "encoding.c", ++ "errcode.c", ++ "feature.c", ++ "fgetflags.c", ++ "fgetproject.c", ++ "fgetversion.c", ++ "fsetflags.c", ++ "fsetproject.c", ++ "fsetversion.c", ++ "getflags.c", ++ "getversion.c", ++ "hashstr.c", ++ "iod.c", ++ "ljs.c", ++ "ls.c", ++ "mntopts.c", ++ "ostype.c", ++ "parse_num.c", ++ "pe.c", ++ "percent.c", ++ "pf.c", ++ "ps.c", ++ "setflags.c", ++ "setversion.c", ++ "uuid.c", ++ ] ++ include_dirs = [ "." ] ++ ++ configs = [ ++ ":e2fsprogs-defaults", ++ ":libext2-headers", ++ ] ++ cflags = [ ++ "-Wno-error=attributes", ++ "-Wno-unused-parameter", ++ ] ++ install_enable = true ++ subsystem_name = "thirdparty" ++ part_name = "e2fsprogs" ++ install_images = [ ++ "system", ++ "updater", ++ ] ++} +diff --git a/lib/et/BUILD.gn b/lib/et/BUILD.gn +new file mode 100644 +index 0000000000000000000000000000000000000000..2877502e377b9ecf5f709f89dac3d42ccce6fbd4 +--- /dev/null ++++ b/lib/et/BUILD.gn +@@ -0,0 +1,48 @@ ++# Copyright (c) 2021 Huawei Device Co., Ltd. ++# Licensed under the Apache License, Version 2.0 (the "License"); ++# you may not use this file except in compliance with the License. ++# You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, software ++# distributed under the License is distributed on an "AS IS" BASIS, ++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++# See the License for the specific language governing permissions and ++# limitations under the License. ++ ++import("//build/ohos.gni") ++ ++config("e2fsprogs-defaults") { ++ cflags = [ ++ "-Wno-int-conversion", ++ "-Wno-implicit-function-declaration", ++ ] ++ defines = [ "secure_getenv=getenv" ] ++} ++config("libext2-headers") { ++ include_dirs = [ "//third_party/e2fsprogs/e2fsprogs/lib" ] ++} ++ ++ohos_shared_library("libext2_com_err") { ++ sources = [ ++ "com_err.c", ++ "com_right.c", ++ "error_message.c", ++ "et_name.c", ++ "init_et.c", ++ ] ++ ++ include_dirs = [ "." ] ++ configs = [ ++ ":e2fsprogs-defaults", ++ ":libext2-headers", ++ ] ++ install_enable = true ++ subsystem_name = "thirdparty" ++ part_name = "e2fsprogs" ++ install_images = [ ++ "system", ++ "updater", ++ ] ++} +diff --git a/lib/ext2fs/BUILD.gn b/lib/ext2fs/BUILD.gn +new file mode 100644 +index 0000000000000000000000000000000000000000..dfc180387561fa1cbece9020ca26c5483f849b18 +--- /dev/null ++++ b/lib/ext2fs/BUILD.gn +@@ -0,0 +1,127 @@ ++# Copyright (c) 2021 Huawei Device Co., Ltd. ++# Licensed under the Apache License, Version 2.0 (the "License"); ++# you may not use this file except in compliance with the License. ++# You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, software ++# distributed under the License is distributed on an "AS IS" BASIS, ++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++# See the License for the specific language governing permissions and ++# limitations under the License. ++ ++import("//build/ohos.gni") ++ ++config("e2fsprogs-defaults") { ++ cflags = [ ++ "-Wno-sign-compare", ++ "-Wno-pointer-sign", ++ "-Wno-implicit-function-declaration", ++ "-Wno-int-conversion", ++ ] ++ defines = [ "secure_getenv=getenv" ] ++} ++ ++ohos_shared_library("libext2fs") { ++ sources = [ ++ "alloc.c", ++ "alloc_sb.c", ++ "alloc_stats.c", ++ "alloc_tables.c", ++ "atexit.c", ++ "badblocks.c", ++ "bb_inode.c", ++ "bitmaps.c", ++ "bitops.c", ++ "blkmap64_ba.c", ++ "blkmap64_rb.c", ++ "blknum.c", ++ "block.c", ++ "bmap.c", ++ "check_desc.c", ++ "closefs.c", ++ "crc16.c", ++ "crc32c.c", ++ "csum.c", ++ "dblist.c", ++ "dblist_dir.c", ++ "digest_encode.c", ++ "dir_iterate.c", ++ "dirblock.c", ++ "dirhash.c", ++ "dupfs.c", ++ "expanddir.c", ++ "ext2_err.c", ++ "ext_attr.c", ++ "extent.c", ++ "fallocate.c", ++ "fileio.c", ++ "finddev.c", ++ "flushb.c", ++ "freefs.c", ++ "gen_bitmap.c", ++ "gen_bitmap64.c", ++ "get_num_dirs.c", ++ "get_pathname.c", ++ "getsectsize.c", ++ "getsize.c", ++ "hashmap.c", ++ "i_block.c", ++ "icount.c", ++ "imager.c", ++ "ind_block.c", ++ "initialize.c", ++ "inline.c", ++ "inline_data.c", ++ "inode.c", ++ "io_manager.c", ++ "ismounted.c", ++ "link.c", ++ "llseek.c", ++ "lookup.c", ++ "mkdir.c", ++ "mkjournal.c", ++ "mmp.c", ++ "namei.c", ++ "native.c", ++ "newdir.c", ++ "nls_utf8.c", ++ "openfs.c", ++ "progress.c", ++ "punch.c", ++ "qcow2.c", ++ "rbtree.c", ++ "read_bb.c", ++ "read_bb_file.c", ++ "res_gdt.c", ++ "rw_bitmaps.c", ++ "sha256.c", ++ "sha512.c", ++ "sparse_io.c", ++ "swapfs.c", ++ "symlink.c", ++ "test_io.c", ++ "undo_io.c", ++ "unix_io.c", ++ "unlink.c", ++ "valid_blk.c", ++ "version.c", ++ ] ++ configs = [ ":e2fsprogs-defaults" ] ++ ++ deps = [ "//third_party/e2fsprogs/e2fsprogs/lib/et:libext2_com_err" ] ++ ++ cflags = [ "-Wno-unused-parameter" ] ++ include_dirs = [ ++ ".", ++ "//third_party/e2fsprogs/e2fsprogs/lib", ++ ] ++ install_enable = true ++ subsystem_name = "thirdparty" ++ part_name = "e2fsprogs" ++ install_images = [ ++ "system", ++ "updater", ++ ] ++} +diff --git a/lib/ss/BUILD.gn b/lib/ss/BUILD.gn +new file mode 100644 +index 0000000000000000000000000000000000000000..1ddf4b0b6c7a4e5baf0e28d4f3b22fa470630099 +--- /dev/null ++++ b/lib/ss/BUILD.gn +@@ -0,0 +1,43 @@ ++# Copyright (c) 2021 Huawei Device Co., Ltd. ++# Licensed under the Apache License, Version 2.0 (the "License"); ++# you may not use this file except in compliance with the License. ++# You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, software ++# distributed under the License is distributed on an "AS IS" BASIS, ++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++# See the License for the specific language governing permissions and ++# limitations under the License. ++ ++import("//build/ohos.gni") ++config("libext2-headers") { ++ include_dirs = [ "//third_party/e2fsprogs/e2fsprogs/lib" ] ++ defines = [ "secure_getenv=getenv" ] ++} ++ ++ohos_static_library("libext2_ss") { ++ sources = [ ++ "data.c", ++ "error.c", ++ "execute_cmd.c", ++ "get_readline.c", ++ "help.c", ++ "invocation.c", ++ "list_rqs.c", ++ "listen.c", ++ "pager.c", ++ "parse.c", ++ "prompt.c", ++ "request_tbl.c", ++ "requests.c", ++ "ss_err.c", ++ "std_rqs.c", ++ ] ++ ++ include_dirs = [ "." ] ++ configs = [ ":libext2-headers" ] ++ ++ deps = [ "//third_party/e2fsprogs/e2fsprogs/lib/et:libext2_com_err" ] ++} +diff --git a/lib/support/BUILD.gn b/lib/support/BUILD.gn +new file mode 100644 +index 0000000000000000000000000000000000000000..e94aa0c643864c91fd554724b70317b0e922d2f3 +--- /dev/null ++++ b/lib/support/BUILD.gn +@@ -0,0 +1,78 @@ ++# Copyright (c) 2021 Huawei Device Co., Ltd. ++# Licensed under the Apache License, Version 2.0 (the "License"); ++# you may not use this file except in compliance with the License. ++# You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, software ++# distributed under the License is distributed on an "AS IS" BASIS, ++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++# See the License for the specific language governing permissions and ++# limitations under the License. ++ ++import("//build/ohos.gni") ++config("e2fsprogs-defaults") { ++ cflags = [ ++ "-Wall", ++ "-Werror", ++ ] ++} ++config("libext2-headers") { ++ include_dirs = [ "//third_party/e2fsprogs/e2fsprogs/lib" ] ++} ++ ++ohos_shared_library("libext2_quota") { ++ sources = [ ++ "dict.c", ++ "mkquota.c", ++ "parse_qtype.c", ++ "plausible.c", ++ "prof_err.c", ++ "profile.c", ++ "profile_helpers.c", ++ "quotaio.c", ++ "quotaio_tree.c", ++ "quotaio_v2.c", ++ ] ++ include_dirs = [ "." ] ++ configs = [ ++ ":e2fsprogs-defaults", ++ ":libext2-headers", ++ ] ++ deps = [ ++ "//third_party/e2fsprogs/e2fsprogs/lib/blkid:libext2_blkid", ++ "//third_party/e2fsprogs/e2fsprogs/lib/et:libext2_com_err", ++ "//third_party/e2fsprogs/e2fsprogs/lib/ext2fs:libext2fs", ++ ] ++ install_enable = true ++ subsystem_name = "thirdparty" ++ part_name = "e2fsprogs" ++ install_images = [ ++ "system", ++ "updater", ++ ] ++} ++ ++ohos_static_library("libext2_profile") { ++ sources = [ ++ "prof_err.c", ++ "profile.c", ++ ] ++ include_dirs = [ "." ] ++ configs = [ ++ ":libext2-headers", ++ ":e2fsprogs-defaults", ++ ] ++ ++ deps = [ "//third_party/e2fsprogs/e2fsprogs/lib/et:libext2_com_err" ] ++} ++ ++ohos_static_library("libext2_support") { ++ sources = [ "cstring.c" ] ++ include_dirs = [ "." ] ++ configs = [ ++ ":e2fsprogs-defaults", ++ ":libext2-headers", ++ ] ++} +diff --git a/lib/uuid/BUILD.gn b/lib/uuid/BUILD.gn +new file mode 100644 +index 0000000000000000000000000000000000000000..27b7470d663b78cd939ffa6d17719e12b0522661 +--- /dev/null ++++ b/lib/uuid/BUILD.gn +@@ -0,0 +1,53 @@ ++# Copyright (c) 2021 Huawei Device Co., Ltd. ++# Licensed under the Apache License, Version 2.0 (the "License"); ++# you may not use this file except in compliance with the License. ++# You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, software ++# distributed under the License is distributed on an "AS IS" BASIS, ++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++# See the License for the specific language governing permissions and ++# limitations under the License. ++ ++import("//build/ohos.gni") ++config("e2fsprogs-defaults") { ++ cflags = [ ++ "-Wall", ++ "-Werror", ++ ] ++} ++config("libext2-headers") { ++ include_dirs = [ "//third_party/e2fsprogs/e2fsprogs/lib" ] ++} ++ohos_shared_library("libext2_uuid") { ++ sources = [ ++ "clear.c", ++ "compare.c", ++ "copy.c", ++ "gen_uuid.c", ++ "isnull.c", ++ "pack.c", ++ "parse.c", ++ "unpack.c", ++ "unparse.c", ++ "uuid_time.c", ++ ] ++ include_dirs = [ "." ] ++ cflags = [ ++ "-Wno-unused-function", ++ "-Wno-unused-parameter", ++ ] ++ configs = [ ++ ":e2fsprogs-defaults", ++ ":libext2-headers", ++ ] ++ install_enable = true ++ subsystem_name = "thirdparty" ++ part_name = "e2fsprogs" ++ install_images = [ ++ "system", ++ "updater", ++ ] ++} +diff --git a/misc/BUILD.gn b/misc/BUILD.gn +new file mode 100644 +index 0000000000000000000000000000000000000000..2869c9973bf3b9463fddbe82b455e9a1ef88a1ed +--- /dev/null ++++ b/misc/BUILD.gn +@@ -0,0 +1,111 @@ ++# Copyright (c) 2021 Huawei Device Co., Ltd. ++# Licensed under the Apache License, Version 2.0 (the "License"); ++# you may not use this file except in compliance with the License. ++# You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, software ++# distributed under the License is distributed on an "AS IS" BASIS, ++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++# See the License for the specific language governing permissions and ++# limitations under the License. ++ ++import("//build/ohos.gni") ++config("e2fsprogs-defaults") { ++ cflags = [ "-Wno-pointer-sign" ] ++} ++ ++ohos_shared_library("libext2_misc") { ++ configs = [ ":e2fsprogs-defaults" ] ++ sources = [ "create_inode.c" ] ++ include_dirs = [ ++ ".", ++ "//third_party/e2fsprogs/e2fsprogs/lib", ++ ] ++ cflags = [ "-Wno-error=format-extra-args" ] ++ ++ deps = [ ++ "//third_party/e2fsprogs/e2fsprogs/lib/et:libext2_com_err", ++ "//third_party/e2fsprogs/e2fsprogs/lib/ext2fs:libext2fs", ++ ] ++ install_enable = true ++ subsystem_name = "thirdparty" ++ part_name = "e2fsprogs" ++ install_images = [ ++ "system", ++ "updater", ++ ] ++} ++ ++################################################### ++###Build mke2fs ++ohos_executable("mke2fs") { ++ configs = [ ":e2fsprogs-defaults" ] ++ sources = [ ++ "default_profile.c", ++ "mk_hugefiles.c", ++ "mke2fs.c", ++ "util.c", ++ ] ++ ++ include_dirs = [ ++ ".", ++ "//third_party/e2fsprogs/e2fsprogs/e2fsck", ++ "//third_party/e2fsprogs/e2fsprogs/lib", ++ "//third_party/e2fsprogs/e2fsprogs/lib/ext2fs", ++ ] ++ cflags = [ ++ "-Wno-error=format", ++ "-Wno-error=type-limits", ++ "-Wno-format-extra-args", ++ ] ++ ++ deps = [ ++ "//third_party/e2fsprogs/e2fsprogs/lib/blkid:libext2_blkid", ++ "//third_party/e2fsprogs/e2fsprogs/lib/e2p:libext2_e2p", ++ "//third_party/e2fsprogs/e2fsprogs/lib/et:libext2_com_err", ++ "//third_party/e2fsprogs/e2fsprogs/lib/ext2fs:libext2fs", ++ "//third_party/e2fsprogs/e2fsprogs/lib/support:libext2_quota", ++ "//third_party/e2fsprogs/e2fsprogs/lib/uuid:libext2_uuid", ++ "//third_party/e2fsprogs/e2fsprogs/misc:libext2_misc", ++ ] ++ ++ install_enable = true ++ subsystem_name = "thirdparty" ++ part_name = "e2fsprogs" ++ install_images = [ ++ "system", ++ "updater", ++ ] ++} ++ ++ohos_executable("blkid") { ++ configs = [ ":e2fsprogs-defaults" ] ++ sources = [ "blkid.c" ] ++ ++ include_dirs = [ ++ ".", ++ "//third_party/e2fsprogs/e2fsprogs/lib", ++ "//third_party/e2fsprogs/e2fsprogs/lib/blkid", ++ ] ++ cflags = [ ++ "-Wno-error=format", ++ "-Wno-error=type-limits", ++ "-Wno-format-extra-args", ++ ] ++ ++ deps = [ ++ "//third_party/e2fsprogs/e2fsprogs/lib/blkid:libext2_blkid", ++ "//third_party/e2fsprogs/e2fsprogs/lib/ext2fs:libext2fs", ++ ] ++ ++ install_enable = true ++ subsystem_name = "filemanagement" ++ part_name = "storage_service" ++ install_images = [ ++ "system", ++ "updater", ++ ] ++ external_deps = [ "c_utils:utils" ] ++} +diff --git a/resize/BUILD.gn b/resize/BUILD.gn +new file mode 100755 +index 0000000000000000000000000000000000000000..845206cafedb5d7a8f92a2155cb73cbc77cce739 +--- /dev/null ++++ b/resize/BUILD.gn +@@ -0,0 +1,59 @@ ++# Copyright (c) 2021 Huawei Device Co., Ltd. ++# Licensed under the Apache License, Version 2.0 (the "License"); ++# you may not use this file except in compliance with the License. ++# You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, software ++# distributed under the License is distributed on an "AS IS" BASIS, ++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++# See the License for the specific language governing permissions and ++# limitations under the License. ++ ++import("//build/ohos.gni") ++config("e2fsprogs-defaults") { ++ cflags = [ "-Wno-pointer-sign" ] ++} ++ ++##Build resize2fs ++ohos_executable("resize2fs") { ++ configs = [ ":e2fsprogs-defaults" ] ++ sources = [ ++ "extent.c", ++ "main.c", ++ "online.c", ++ "resize2fs.c", ++ "resource_track.c", ++ "sim_progress.c", ++ ] ++ ++ include_dirs = [ ++ ".", ++ "//third_party/e2fsprogs/e2fsprogs/e2fsck", ++ "//third_party/e2fsprogs/e2fsprogs/lib", ++ "//third_party/e2fsprogs/e2fsprogs/lib/ext2fs", ++ ] ++ cflags = [ ++ "-Wno-error=format", ++ "-Wno-error=type-limits", ++ "-Wno-format-extra-args", ++ ] ++ ++ deps = [ ++ "//third_party/e2fsprogs/e2fsprogs/lib/e2p:libext2_e2p", ++ "//third_party/e2fsprogs/e2fsprogs/lib/et:libext2_com_err", ++ "//third_party/e2fsprogs/e2fsprogs/lib/ext2fs:libext2fs", ++ ] ++ ++ if (is_ohos) { ++ ldflags = [ "-stdlib=libc++_static" ] ++ } ++ install_enable = true ++ subsystem_name = "thirdparty" ++ part_name = "e2fsprogs" ++ install_images = [ ++ "system", ++ "updater", ++ ] ++} diff --git a/ABOUT-NLS b/ABOUT-NLS deleted file mode 100644 index 3cc82865..00000000 --- a/ABOUT-NLS +++ /dev/null @@ -1,1379 +0,0 @@ -1 Notes on the Free Translation Project -*************************************** - -Free software is going international! The Free Translation Project is a -way to get maintainers of free software, translators, and users all -together, so that free software will gradually become able to speak many -languages. A few packages already provide translations for their -messages. - - If you found this 'ABOUT-NLS' file inside a distribution, you may -assume that the distributed package does use GNU 'gettext' internally, -itself available at your nearest GNU archive site. But you do _not_ -need to install GNU 'gettext' prior to configuring, installing or using -this package with messages translated. - - Installers will find here some useful hints. These notes also -explain how users should proceed for getting the programs to use the -available translations. They tell how people wanting to contribute and -work on translations can contact the appropriate team. - -1.1 INSTALL Matters -=================== - -Some packages are "localizable" when properly installed; the programs -they contain can be made to speak your own native language. Most such -packages use GNU 'gettext'. Other packages have their own ways to -internationalization, predating GNU 'gettext'. - - By default, this package will be installed to allow translation of -messages. It will automatically detect whether the system already -provides the GNU 'gettext' functions. Installers may use special -options at configuration time for changing the default behaviour. The -command: - - ./configure --disable-nls - -will _totally_ disable translation of messages. - - When you already have GNU 'gettext' installed on your system and run -configure without an option for your new package, 'configure' will -probably detect the previously built and installed 'libintl' library and -will decide to use it. If not, you may have to to use the -'--with-libintl-prefix' option to tell 'configure' where to look for it. - - Internationalized packages usually have many 'po/LL.po' files, where -LL gives an ISO 639 two-letter code identifying the language. Unless -translations have been forbidden at 'configure' time by using the -'--disable-nls' switch, all available translations are installed -together with the package. However, the environment variable 'LINGUAS' -may be set, prior to configuration, to limit the installed set. -'LINGUAS' should then contain a space separated list of two-letter -codes, stating which languages are allowed. - -1.2 Using This Package -====================== - -As a user, if your language has been installed for this package, you -only have to set the 'LANG' environment variable to the appropriate -'LL_CC' combination. If you happen to have the 'LC_ALL' or some other -'LC_xxx' environment variables set, you should unset them before setting -'LANG', otherwise the setting of 'LANG' will not have the desired -effect. Here 'LL' is an ISO 639 two-letter language code, and 'CC' is -an ISO 3166 two-letter country code. For example, let's suppose that -you speak German and live in Germany. At the shell prompt, merely -execute 'setenv LANG de_DE' (in 'csh'), 'export LANG; LANG=de_DE' (in -'sh') or 'export LANG=de_DE' (in 'bash'). This can be done from your -'.login' or '.profile' file, once and for all. - - You might think that the country code specification is redundant. -But in fact, some languages have dialects in different countries. For -example, 'de_AT' is used for Austria, and 'pt_BR' for Brazil. The -country code serves to distinguish the dialects. - - The locale naming convention of 'LL_CC', with 'LL' denoting the -language and 'CC' denoting the country, is the one use on systems based -on GNU libc. On other systems, some variations of this scheme are used, -such as 'LL' or 'LL_CC.ENCODING'. You can get the list of locales -supported by your system for your language by running the command -'locale -a | grep '^LL''. - - Not all programs have translations for all languages. By default, an -English message is shown in place of a nonexistent translation. If you -understand other languages, you can set up a priority list of languages. -This is done through a different environment variable, called -'LANGUAGE'. GNU 'gettext' gives preference to 'LANGUAGE' over 'LANG' -for the purpose of message handling, but you still need to have 'LANG' -set to the primary language; this is required by other parts of the -system libraries. For example, some Swedish users who would rather read -translations in German than English for when Swedish is not available, -set 'LANGUAGE' to 'sv:de' while leaving 'LANG' to 'sv_SE'. - - Special advice for Norwegian users: The language code for Norwegian -bokma*l changed from 'no' to 'nb' recently (in 2003). During the -transition period, while some message catalogs for this language are -installed under 'nb' and some older ones under 'no', it's recommended -for Norwegian users to set 'LANGUAGE' to 'nb:no' so that both newer and -older translations are used. - - In the 'LANGUAGE' environment variable, but not in the 'LANG' -environment variable, 'LL_CC' combinations can be abbreviated as 'LL' to -denote the language's main dialect. For example, 'de' is equivalent to -'de_DE' (German as spoken in Germany), and 'pt' to 'pt_PT' (Portuguese -as spoken in Portugal) in this context. - -1.3 Translating Teams -===================== - -For the Free Translation Project to be a success, we need interested -people who like their own language and write it well, and who are also -able to synergize with other translators speaking the same language. -Each translation team has its own mailing list. The up-to-date list of -teams can be found at the Free Translation Project's homepage, -'http://translationproject.org/', in the "Teams" area. - - If you'd like to volunteer to _work_ at translating messages, you -should become a member of the translating team for your own language. -The subscribing address is _not_ the same as the list itself, it has -'-request' appended. For example, speakers of Swedish can send a -message to 'sv-request@li.org', having this message body: - - subscribe - - Keep in mind that team members are expected to participate _actively_ -in translations, or at solving translational difficulties, rather than -merely lurking around. If your team does not exist yet and you want to -start one, or if you are unsure about what to do or how to get started, -please write to 'coordinator@translationproject.org' to reach the -coordinator for all translator teams. - - The English team is special. It works at improving and uniformizing -the terminology in use. Proven linguistic skills are praised more than -programming skills, here. - -1.4 Available Packages -====================== - -Languages are not equally supported in all packages. The following -matrix shows the current state of internationalization, as of Jun 2014. -The matrix shows, in regard of each package, for which languages PO -files have been submitted to translation coordination, with a -translation percentage of at least 50%. - - Ready PO files af am an ar as ast az be bg bn bn_IN bs ca crh cs - +---------------------------------------------------+ - a2ps | [] [] [] | - aegis | | - anubis | | - aspell | [] [] [] | - bash | [] [] [] | - bfd | | - binutils | [] | - bison | | - bison-runtime | [] | - buzztrax | [] | - ccd2cue | | - ccide | | - cflow | | - clisp | | - coreutils | [] [] | - cpio | | - cppi | | - cpplib | [] | - cryptsetup | [] | - datamash | | - denemo | [] [] | - dfarc | [] | - dialog | [] [] [] | - dico | | - diffutils | [] | - dink | [] | - direvent | | - doodle | [] | - dos2unix | | - dos2unix-man | | - e2fsprogs | [] [] | - enscript | [] | - exif | [] | - fetchmail | [] [] | - findutils | [] | - flex | [] | - freedink | [] [] | - fusionforge | | - gas | | - gawk | [] | - gcal | [] | - gcc | | - gdbm | | - gettext-examples | [] [] [] [] [] | - gettext-runtime | [] [] [] | - gettext-tools | [] [] | - gjay | | - glunarclock | [] [] [] | - gnubiff | [] | - gnubik | [] | - gnucash | () () [] | - gnuchess | | - gnulib | [] | - gnunet | | - gnunet-gtk | | - gold | | - gphoto2 | [] | - gprof | [] | - gramadoir | | - grep | [] [] [] | - grub | [] | - gsasl | | - gss | | - gst-plugins-bad | [] [] | - gst-plugins-base | [] [] [] | - gst-plugins-good | [] [] [] | - gst-plugins-ugly | [] [] [] | - gstreamer | [] [] [] [] | - gtick | [] | - gtkam | [] [] | - gtkspell | [] [] [] [] [] | - guix | | - guix-packages | | - gutenprint | [] | - hello | [] | - help2man | | - help2man-texi | | - hylafax | | - idutils | | - iso_15924 | [] | - iso_3166 | [] [] [] [] [] [] [] [] [] [] | - iso_3166_2 | | - iso_4217 | [] | - iso_639 | [] [] [] [] [] [] [] [] [] | - iso_639_3 | [] [] | - iso_639_5 | | - jwhois | | - kbd | [] | - klavaro | [] [] [] [] [] | - ld | [] | - leafpad | [] [] [] [] | - libc | [] [] [] | - libexif | () | - libextractor | | - libgnutls | [] | - libgphoto2 | [] | - libgphoto2_port | [] | - libgsasl | | - libiconv | [] [] | - libidn | [] | - liferea | [] [] [] [] | - lilypond | [] [] | - lordsawar | [] | - lprng | | - lynx | [] [] | - m4 | [] | - mailfromd | | - mailutils | | - make | [] | - man-db | [] [] | - man-db-manpages | | - midi-instruments | [] [] [] | - minicom | [] | - mkisofs | [] | - myserver | [] | - nano | [] [] [] | - opcodes | | - parted | [] | - pies | | - pnmixer | | - popt | [] | - procps-ng | | - procps-ng-man | | - psmisc | [] | - pspp | [] | - pushover | [] | - pwdutils | | - pyspread | | - radius | [] | - recode | [] [] [] | - recutils | | - rpm | | - rush | | - sarg | | - sed | [] [] [] [] | - sharutils | [] | - shishi | | - skribilo | | - solfege | [] [] | - solfege-manual | | - spotmachine | | - sudo | [] [] | - sudoers | [] [] | - sysstat | [] | - tar | [] [] [] | - texinfo | [] [] | - texinfo_document | [] [] | - tigervnc | [] | - tin | | - tin-man | | - tracgoogleappsa... | | - trader | | - util-linux | [] | - ve | | - vice | | - vmm | | - vorbis-tools | [] | - wastesedge | | - wcd | | - wcd-man | | - wdiff | [] [] | - wget | [] | - wyslij-po | | - xboard | | - xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | - xkeyboard-config | [] [] [] | - +---------------------------------------------------+ - af am an ar as ast az be bg bn bn_IN bs ca crh cs - 4 0 2 5 3 11 0 8 25 3 3 1 55 4 74 - - da de el en en_GB en_ZA eo es et eu fa fi fr - +--------------------------------------------------+ - a2ps | [] [] [] [] [] [] [] [] [] | - aegis | [] [] [] [] | - anubis | [] [] [] [] [] | - aspell | [] [] [] [] [] [] [] | - bash | [] [] [] | - bfd | [] [] [] [] | - binutils | [] [] [] | - bison | [] [] [] [] [] [] [] [] | - bison-runtime | [] [] [] [] [] [] [] [] | - buzztrax | [] [] [] [] | - ccd2cue | [] [] [] [] | - ccide | [] [] [] [] [] [] | - cflow | [] [] [] [] [] | - clisp | [] [] [] [] [] | - coreutils | [] [] [] [] [] | - cpio | [] [] [] [] [] | - cppi | [] [] [] [] [] | - cpplib | [] [] [] [] [] [] | - cryptsetup | [] [] [] [] [] | - datamash | [] [] [] [] | - denemo | [] | - dfarc | [] [] [] [] [] [] | - dialog | [] [] [] [] [] [] [] [] [] | - dico | [] [] [] [] | - diffutils | [] [] [] [] [] [] | - dink | [] [] [] [] [] [] | - direvent | [] [] [] [] | - doodle | [] [] [] [] | - dos2unix | [] [] [] [] [] | - dos2unix-man | [] [] [] | - e2fsprogs | [] [] [] [] [] | - enscript | [] [] [] [] [] [] | - exif | [] [] [] [] [] [] | - fetchmail | [] () [] [] [] [] [] | - findutils | [] [] [] [] [] [] [] [] | - flex | [] [] [] [] [] [] | - freedink | [] [] [] [] [] [] [] [] | - fusionforge | [] [] [] | - gas | [] [] [] | - gawk | [] [] [] [] [] | - gcal | [] [] [] [] | - gcc | [] | - gdbm | [] [] [] [] [] | - gettext-examples | [] [] [] [] [] [] [] | - gettext-runtime | [] [] [] [] [] [] | - gettext-tools | [] [] [] [] [] | - gjay | [] [] [] [] | - glunarclock | [] [] [] [] [] | - gnubiff | () [] [] () | - gnubik | [] [] [] [] [] | - gnucash | [] () () () () () () | - gnuchess | [] [] [] [] | - gnulib | [] [] [] [] [] [] [] | - gnunet | [] | - gnunet-gtk | [] | - gold | [] [] [] | - gphoto2 | [] () [] [] | - gprof | [] [] [] [] [] [] | - gramadoir | [] [] [] [] [] | - grep | [] [] [] [] [] [] [] | - grub | [] [] [] [] [] | - gsasl | [] [] [] [] [] | - gss | [] [] [] [] [] | - gst-plugins-bad | [] [] [] | - gst-plugins-base | [] [] [] [] [] [] | - gst-plugins-good | [] [] [] [] [] [] [] | - gst-plugins-ugly | [] [] [] [] [] [] [] [] | - gstreamer | [] [] [] [] [] [] [] | - gtick | [] () [] [] [] | - gtkam | [] () [] [] [] [] | - gtkspell | [] [] [] [] [] [] [] [] | - guix | [] [] | - guix-packages | | - gutenprint | [] [] [] [] | - hello | [] [] [] [] [] [] [] [] | - help2man | [] [] [] [] [] [] [] | - help2man-texi | [] [] [] | - hylafax | [] [] | - idutils | [] [] [] [] [] | - iso_15924 | [] () [] [] () [] () | - iso_3166 | [] () [] [] [] [] () [] () | - iso_3166_2 | [] () () () | - iso_4217 | [] () [] [] [] () [] () | - iso_639 | [] () [] [] () [] () | - iso_639_3 | () () () | - iso_639_5 | () () () | - jwhois | [] [] [] [] [] | - kbd | [] [] [] [] [] [] | - klavaro | [] [] [] [] [] [] [] | - ld | [] [] [] [] | - leafpad | [] [] [] [] [] [] [] [] | - libc | [] [] [] [] [] | - libexif | [] [] () [] [] | - libextractor | [] | - libgnutls | [] [] [] [] | - libgphoto2 | [] () [] | - libgphoto2_port | [] () [] [] [] [] | - libgsasl | [] [] [] [] [] | - libiconv | [] [] [] [] [] [] [] | - libidn | [] [] [] [] [] | - liferea | [] () [] [] [] [] [] | - lilypond | [] [] [] [] [] [] | - lordsawar | [] [] | - lprng | | - lynx | [] [] [] [] [] [] | - m4 | [] [] [] [] [] [] | - mailfromd | [] | - mailutils | [] [] [] [] | - make | [] [] [] [] [] | - man-db | [] [] [] [] | - man-db-manpages | [] [] | - midi-instruments | [] [] [] [] [] [] [] [] [] | - minicom | [] [] [] [] [] | - mkisofs | [] [] [] | - myserver | [] [] [] [] | - nano | [] [] [] [] [] [] [] | - opcodes | [] [] [] [] [] | - parted | [] [] [] | - pies | [] | - pnmixer | [] [] | - popt | [] [] [] [] [] [] | - procps-ng | [] [] | - procps-ng-man | [] [] | - psmisc | [] [] [] [] [] [] [] | - pspp | [] [] [] | - pushover | () [] [] [] | - pwdutils | [] [] [] | - pyspread | [] [] [] | - radius | [] [] | - recode | [] [] [] [] [] [] [] | - recutils | [] [] [] [] | - rpm | [] [] [] [] [] | - rush | [] [] [] | - sarg | [] [] | - sed | [] [] [] [] [] [] [] [] | - sharutils | [] [] [] [] | - shishi | [] [] [] | - skribilo | [] [] [] | - solfege | [] [] [] [] [] [] [] [] | - solfege-manual | [] [] [] [] [] | - spotmachine | [] [] [] [] [] | - sudo | [] [] [] [] [] [] | - sudoers | [] [] [] [] [] [] | - sysstat | [] [] [] [] [] [] | - tar | [] [] [] [] [] [] [] | - texinfo | [] [] [] [] [] | - texinfo_document | [] [] [] [] | - tigervnc | [] [] [] [] [] [] | - tin | [] [] [] [] | - tin-man | [] | - tracgoogleappsa... | [] [] [] [] [] | - trader | [] [] [] [] [] [] | - util-linux | [] [] [] [] | - ve | [] [] [] [] [] | - vice | () () () | - vmm | [] [] | - vorbis-tools | [] [] [] [] | - wastesedge | [] | - wcd | [] [] [] [] | - wcd-man | [] | - wdiff | [] [] [] [] [] [] [] | - wget | [] [] [] [] [] [] | - wyslij-po | [] [] [] [] | - xboard | [] [] [] [] | - xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | - xkeyboard-config | [] [] [] [] [] [] [] | - +--------------------------------------------------+ - da de el en en_GB en_ZA eo es et eu fa fi fr - 119 131 32 1 6 0 94 95 22 13 4 102 139 - - ga gd gl gu he hi hr hu hy ia id is it ja ka kk - +-------------------------------------------------+ - a2ps | [] [] [] [] | - aegis | [] | - anubis | [] [] [] [] | - aspell | [] [] [] [] [] | - bash | [] [] [] [] | - bfd | [] [] | - binutils | [] [] [] | - bison | [] | - bison-runtime | [] [] [] [] [] [] [] [] | - buzztrax | | - ccd2cue | [] | - ccide | [] [] | - cflow | [] [] [] | - clisp | | - coreutils | [] [] | - cpio | [] [] [] [] [] [] | - cppi | [] [] [] [] [] | - cpplib | [] [] | - cryptsetup | [] | - datamash | | - denemo | [] | - dfarc | [] [] [] | - dialog | [] [] [] [] [] [] [] [] [] [] | - dico | | - diffutils | [] [] [] [] | - dink | [] | - direvent | [] | - doodle | [] [] | - dos2unix | [] [] | - dos2unix-man | | - e2fsprogs | [] [] | - enscript | [] [] [] | - exif | [] [] [] [] [] [] | - fetchmail | [] [] [] | - findutils | [] [] [] [] [] [] [] | - flex | [] | - freedink | [] [] [] [] | - fusionforge | | - gas | [] | - gawk | [] () [] | - gcal | | - gcc | | - gdbm | | - gettext-examples | [] [] [] [] [] [] [] | - gettext-runtime | [] [] [] [] [] [] [] | - gettext-tools | [] [] [] | - gjay | [] | - glunarclock | [] [] [] [] [] [] | - gnubiff | [] [] () | - gnubik | [] [] [] | - gnucash | () () () () () | - gnuchess | | - gnulib | [] [] [] [] [] | - gnunet | | - gnunet-gtk | | - gold | [] [] | - gphoto2 | [] [] [] [] | - gprof | [] [] [] [] | - gramadoir | [] [] [] | - grep | [] [] [] [] [] [] [] | - grub | [] [] [] | - gsasl | [] [] [] [] [] | - gss | [] [] [] [] [] | - gst-plugins-bad | [] [] [] | - gst-plugins-base | [] [] [] [] | - gst-plugins-good | [] [] [] [] [] [] | - gst-plugins-ugly | [] [] [] [] [] [] | - gstreamer | [] [] [] [] [] | - gtick | [] [] [] [] [] | - gtkam | [] [] [] [] [] | - gtkspell | [] [] [] [] [] [] [] [] [] [] | - guix | | - guix-packages | | - gutenprint | [] [] [] | - hello | [] [] [] [] [] | - help2man | [] [] [] | - help2man-texi | | - hylafax | [] | - idutils | [] [] | - iso_15924 | [] [] [] [] [] [] | - iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] | - iso_3166_2 | [] [] | - iso_4217 | [] [] [] [] [] [] | - iso_639 | [] [] [] [] [] [] [] [] [] | - iso_639_3 | [] [] | - iso_639_5 | | - jwhois | [] [] [] [] | - kbd | [] [] [] | - klavaro | [] [] [] [] [] | - ld | [] [] [] [] | - leafpad | [] [] [] [] [] [] [] () | - libc | [] [] [] [] [] | - libexif | [] | - libextractor | | - libgnutls | [] | - libgphoto2 | [] [] | - libgphoto2_port | [] [] | - libgsasl | [] [] [] [] | - libiconv | [] [] [] [] [] [] [] | - libidn | [] [] [] [] | - liferea | [] [] [] [] [] | - lilypond | [] | - lordsawar | | - lprng | [] | - lynx | [] [] [] [] | - m4 | [] [] [] [] [] | - mailfromd | | - mailutils | | - make | [] [] [] [] | - man-db | [] [] | - man-db-manpages | [] [] | - midi-instruments | [] [] [] [] [] [] [] [] [] | - minicom | [] [] [] | - mkisofs | [] [] | - myserver | [] | - nano | [] [] [] [] [] [] | - opcodes | [] [] [] | - parted | [] [] [] [] [] | - pies | | - pnmixer | [] [] | - popt | [] [] [] [] [] [] [] [] [] [] | - procps-ng | | - procps-ng-man | | - psmisc | [] [] [] [] | - pspp | [] [] | - pushover | [] | - pwdutils | [] | - pyspread | | - radius | [] | - recode | [] [] [] [] [] [] [] | - recutils | | - rpm | [] | - rush | [] | - sarg | | - sed | [] [] [] [] [] [] [] | - sharutils | | - shishi | | - skribilo | [] | - solfege | [] [] | - solfege-manual | | - spotmachine | | - sudo | [] [] [] [] | - sudoers | [] [] [] | - sysstat | [] [] [] [] | - tar | [] [] [] [] [] [] | - texinfo | [] [] [] | - texinfo_document | [] [] [] | - tigervnc | | - tin | | - tin-man | | - tracgoogleappsa... | [] [] [] [] | - trader | [] [] | - util-linux | [] | - ve | [] | - vice | () () | - vmm | | - vorbis-tools | [] [] | - wastesedge | [] | - wcd | | - wcd-man | | - wdiff | [] [] [] | - wget | [] [] [] [] | - wyslij-po | [] [] [] | - xboard | | - xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] | - xkeyboard-config | [] [] [] [] [] [] | - +-------------------------------------------------+ - ga gd gl gu he hi hr hu hy ia id is it ja ka kk - 35 2 47 4 8 2 60 71 2 6 81 11 87 57 0 3 - - kn ko ku ky lg lt lv mk ml mn mr ms mt nb ne nl - +--------------------------------------------------+ - a2ps | [] [] | - aegis | [] | - anubis | [] [] [] | - aspell | [] [] | - bash | [] [] | - bfd | | - binutils | | - bison | [] | - bison-runtime | [] [] [] [] [] [] | - buzztrax | | - ccd2cue | | - ccide | [] [] | - cflow | [] | - clisp | [] | - coreutils | [] [] | - cpio | [] | - cppi | | - cpplib | [] | - cryptsetup | [] | - datamash | [] [] | - denemo | | - dfarc | [] [] | - dialog | [] [] [] [] [] [] | - dico | | - diffutils | [] [] [] | - dink | [] | - direvent | [] | - doodle | [] | - dos2unix | [] [] | - dos2unix-man | [] | - e2fsprogs | [] | - enscript | [] | - exif | [] [] [] | - fetchmail | [] | - findutils | [] [] | - flex | [] | - freedink | [] [] | - fusionforge | | - gas | | - gawk | [] | - gcal | | - gcc | | - gdbm | | - gettext-examples | [] [] [] [] [] [] | - gettext-runtime | [] [] [] | - gettext-tools | [] | - gjay | | - glunarclock | [] [] | - gnubiff | [] | - gnubik | [] [] | - gnucash | () () () () () () () [] | - gnuchess | [] [] | - gnulib | [] | - gnunet | | - gnunet-gtk | | - gold | | - gphoto2 | [] | - gprof | [] [] | - gramadoir | [] | - grep | [] [] | - grub | [] [] [] | - gsasl | [] | - gss | | - gst-plugins-bad | [] [] [] | - gst-plugins-base | [] [] [] | - gst-plugins-good | [] [] [] [] | - gst-plugins-ugly | [] [] [] [] [] | - gstreamer | [] [] [] | - gtick | [] | - gtkam | [] [] | - gtkspell | [] [] [] [] [] [] [] | - guix | | - guix-packages | | - gutenprint | [] | - hello | [] [] [] | - help2man | [] | - help2man-texi | | - hylafax | [] | - idutils | [] | - iso_15924 | () [] [] | - iso_3166 | [] [] [] () [] [] [] [] [] [] | - iso_3166_2 | () [] | - iso_4217 | () [] [] [] | - iso_639 | [] [] () [] [] [] [] | - iso_639_3 | [] () [] | - iso_639_5 | () | - jwhois | [] [] | - kbd | [] | - klavaro | [] [] | - ld | | - leafpad | [] [] [] [] [] | - libc | [] [] | - libexif | [] | - libextractor | [] | - libgnutls | [] [] | - libgphoto2 | [] | - libgphoto2_port | [] | - libgsasl | [] | - libiconv | [] [] | - libidn | [] | - liferea | [] [] [] | - lilypond | [] | - lordsawar | | - lprng | | - lynx | [] | - m4 | [] | - mailfromd | | - mailutils | | - make | [] [] | - man-db | [] | - man-db-manpages | [] | - midi-instruments | [] [] [] [] [] [] [] | - minicom | [] | - mkisofs | [] | - myserver | | - nano | [] [] [] | - opcodes | [] | - parted | [] [] | - pies | | - pnmixer | [] | - popt | [] [] [] [] [] | - procps-ng | | - procps-ng-man | | - psmisc | [] | - pspp | [] [] | - pushover | | - pwdutils | [] | - pyspread | | - radius | [] | - recode | [] [] | - recutils | [] | - rpm | [] | - rush | [] | - sarg | | - sed | [] [] | - sharutils | [] | - shishi | | - skribilo | | - solfege | [] [] | - solfege-manual | [] | - spotmachine | [] | - sudo | [] [] [] | - sudoers | [] [] [] | - sysstat | [] [] | - tar | [] [] [] | - texinfo | [] | - texinfo_document | [] | - tigervnc | [] | - tin | | - tin-man | | - tracgoogleappsa... | [] [] [] | - trader | [] | - util-linux | [] | - ve | [] | - vice | [] | - vmm | [] | - vorbis-tools | [] | - wastesedge | [] | - wcd | [] | - wcd-man | [] | - wdiff | [] | - wget | [] [] | - wyslij-po | [] | - xboard | [] | - xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] | - xkeyboard-config | [] [] [] | - +--------------------------------------------------+ - kn ko ku ky lg lt lv mk ml mn mr ms mt nb ne nl - 5 15 4 6 0 13 23 3 3 3 4 11 2 42 1 125 - - nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr - +------------------------------------------------+ - a2ps | [] [] [] [] [] [] [] | - aegis | [] [] | - anubis | [] [] [] | - aspell | [] [] [] [] [] [] [] | - bash | [] [] [] [] [] [] | - bfd | [] [] | - binutils | [] [] | - bison | [] [] [] | - bison-runtime | [] [] [] [] [] [] [] [] | - buzztrax | [] | - ccd2cue | [] [] | - ccide | [] [] [] | - cflow | [] [] [] | - clisp | [] | - coreutils | [] [] [] [] | - cpio | [] [] [] | - cppi | [] [] [] | - cpplib | [] [] [] | - cryptsetup | [] [] [] | - datamash | [] [] | - denemo | | - dfarc | [] [] [] | - dialog | [] [] [] [] [] [] [] | - dico | [] | - diffutils | [] [] [] | - dink | | - direvent | [] [] [] | - doodle | [] [] | - dos2unix | [] [] [] [] | - dos2unix-man | [] [] | - e2fsprogs | [] | - enscript | [] [] [] [] [] [] | - exif | [] [] [] [] [] [] | - fetchmail | [] [] [] | - findutils | [] [] [] [] [] [] | - flex | [] [] [] [] [] | - freedink | [] [] [] [] [] | - fusionforge | | - gas | | - gawk | [] | - gcal | | - gcc | | - gdbm | [] [] [] | - gettext-examples | [] [] [] [] [] [] [] [] | - gettext-runtime | [] [] [] [] [] [] [] [] [] | - gettext-tools | [] [] [] [] [] [] [] | - gjay | [] | - glunarclock | [] [] [] [] [] [] | - gnubiff | [] | - gnubik | [] [] [] [] | - gnucash | () () () () () [] | - gnuchess | [] [] | - gnulib | [] [] [] [] [] | - gnunet | | - gnunet-gtk | | - gold | | - gphoto2 | [] [] [] [] [] | - gprof | [] [] [] [] | - gramadoir | [] [] | - grep | [] [] [] [] [] [] | - grub | [] [] [] [] [] | - gsasl | [] [] [] | - gss | [] [] [] [] | - gst-plugins-bad | [] [] [] [] [] | - gst-plugins-base | [] [] [] [] [] [] | - gst-plugins-good | [] [] [] [] [] [] [] | - gst-plugins-ugly | [] [] [] [] [] [] [] | - gstreamer | [] [] [] [] [] [] [] | - gtick | [] [] [] [] [] | - gtkam | [] [] [] [] [] [] | - gtkspell | [] [] [] [] [] [] [] [] [] | - guix | | - guix-packages | | - gutenprint | [] [] | - hello | [] [] [] [] [] [] | - help2man | [] [] [] [] | - help2man-texi | [] | - hylafax | | - idutils | [] [] [] | - iso_15924 | [] () [] [] [] [] | - iso_3166 | [] [] [] [] () [] [] [] [] [] [] [] [] | - iso_3166_2 | [] () [] | - iso_4217 | [] [] () [] [] [] [] [] | - iso_639 | [] [] [] () [] [] [] [] [] [] | - iso_639_3 | [] () | - iso_639_5 | () [] | - jwhois | [] [] [] [] | - kbd | [] [] | - klavaro | [] [] [] [] [] | - ld | | - leafpad | [] [] [] [] [] [] [] [] | - libc | [] [] [] | - libexif | [] () [] | - libextractor | [] | - libgnutls | [] | - libgphoto2 | [] | - libgphoto2_port | [] [] [] [] [] | - libgsasl | [] [] [] [] | - libiconv | [] [] [] [] [] | - libidn | [] [] [] | - liferea | [] [] [] [] () [] [] | - lilypond | | - lordsawar | | - lprng | [] | - lynx | [] [] | - m4 | [] [] [] [] [] | - mailfromd | [] | - mailutils | [] | - make | [] [] [] | - man-db | [] [] [] | - man-db-manpages | [] [] [] | - midi-instruments | [] [] [] [] [] [] [] [] | - minicom | [] [] [] [] | - mkisofs | [] [] [] | - myserver | [] [] | - nano | [] [] [] [] [] [] | - opcodes | | - parted | [] [] [] [] [] [] | - pies | [] | - pnmixer | [] | - popt | [] [] [] [] [] [] | - procps-ng | [] | - procps-ng-man | [] | - psmisc | [] [] [] [] | - pspp | [] [] | - pushover | | - pwdutils | [] | - pyspread | [] [] | - radius | [] [] | - recode | [] [] [] [] [] [] [] [] | - recutils | [] [] | - rpm | [] | - rush | [] [] [] | - sarg | [] [] | - sed | [] [] [] [] [] [] [] [] | - sharutils | [] [] [] | - shishi | [] [] | - skribilo | [] | - solfege | [] [] [] | - solfege-manual | [] [] | - spotmachine | [] [] | - sudo | [] [] [] [] [] [] | - sudoers | [] [] [] [] | - sysstat | [] [] [] [] [] | - tar | [] [] [] [] [] | - texinfo | [] [] [] | - texinfo_document | [] [] | - tigervnc | [] [] [] | - tin | [] | - tin-man | | - tracgoogleappsa... | [] [] [] [] | - trader | [] [] | - util-linux | [] [] | - ve | [] [] [] | - vice | | - vmm | | - vorbis-tools | [] [] [] | - wastesedge | | - wcd | | - wcd-man | | - wdiff | [] [] [] [] [] | - wget | [] [] [] [] [] | - wyslij-po | [] [] [] [] | - xboard | [] [] [] | - xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] | - xkeyboard-config | [] [] [] [] | - +------------------------------------------------+ - nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr - 7 3 6 114 1 12 88 32 82 3 40 45 7 101 - - sv sw ta te tg th tr uk ur vi wa wo zh_CN - +----------------------------------------------+ - a2ps | [] [] [] [] [] | - aegis | [] | - anubis | [] [] [] [] | - aspell | [] [] [] [] [] | - bash | [] [] [] [] | - bfd | [] [] [] | - binutils | [] [] [] | - bison | [] [] [] [] | - bison-runtime | [] [] [] [] [] [] | - buzztrax | [] [] [] | - ccd2cue | [] [] [] | - ccide | [] [] [] [] | - cflow | [] [] [] [] | - clisp | | - coreutils | [] [] [] | - cpio | [] [] [] [] [] | - cppi | [] [] [] [] | - cpplib | [] [] [] [] [] | - cryptsetup | [] [] [] | - datamash | [] [] [] | - denemo | [] | - dfarc | [] [] | - dialog | [] [] [] [] [] [] | - dico | [] | - diffutils | [] [] [] [] [] | - dink | [] | - direvent | [] [] | - doodle | [] [] | - dos2unix | [] [] [] [] | - dos2unix-man | [] [] [] | - e2fsprogs | [] [] [] [] | - enscript | [] [] [] [] | - exif | [] [] [] [] [] | - fetchmail | [] [] [] [] | - findutils | [] [] [] [] [] | - flex | [] [] [] [] | - freedink | [] [] [] | - fusionforge | | - gas | [] | - gawk | [] [] [] | - gcal | [] [] [] | - gcc | [] | - gdbm | [] [] | - gettext-examples | [] [] [] [] [] | - gettext-runtime | [] [] [] [] [] | - gettext-tools | [] [] [] [] [] | - gjay | [] [] [] | - glunarclock | [] [] [] [] | - gnubiff | [] [] | - gnubik | [] [] [] [] | - gnucash | () () () () [] | - gnuchess | [] [] [] | - gnulib | [] [] [] [] | - gnunet | | - gnunet-gtk | | - gold | [] [] | - gphoto2 | [] [] [] [] | - gprof | [] [] [] [] | - gramadoir | [] [] [] | - grep | [] [] [] [] [] | - grub | [] [] [] [] | - gsasl | [] [] [] [] | - gss | [] [] [] | - gst-plugins-bad | [] [] [] [] [] | - gst-plugins-base | [] [] [] [] [] | - gst-plugins-good | [] [] [] [] [] | - gst-plugins-ugly | [] [] [] [] [] | - gstreamer | [] [] [] [] [] | - gtick | [] [] [] | - gtkam | [] [] [] [] | - gtkspell | [] [] [] [] [] [] [] | - guix | | - guix-packages | | - gutenprint | [] [] [] [] | - hello | [] [] [] [] [] [] | - help2man | [] [] [] | - help2man-texi | [] | - hylafax | [] | - idutils | [] [] [] | - iso_15924 | [] () [] [] () [] | - iso_3166 | [] [] () [] [] () [] [] | - iso_3166_2 | () [] [] () [] | - iso_4217 | [] () [] [] () [] | - iso_639 | [] [] [] () [] [] () [] [] | - iso_639_3 | [] () [] [] () | - iso_639_5 | () [] () | - jwhois | [] [] [] [] | - kbd | [] [] [] [] | - klavaro | [] [] [] [] [] [] | - ld | [] [] [] [] [] | - leafpad | [] [] [] [] [] [] | - libc | [] [] [] [] [] | - libexif | [] [] () | - libextractor | [] [] | - libgnutls | [] [] [] [] | - libgphoto2 | [] [] [] | - libgphoto2_port | [] [] [] [] | - libgsasl | [] [] [] [] | - libiconv | [] [] [] [] [] | - libidn | () [] [] [] | - liferea | [] [] [] [] [] | - lilypond | [] | - lordsawar | | - lprng | [] | - lynx | [] [] [] [] | - m4 | [] [] [] | - mailfromd | [] [] | - mailutils | [] | - make | [] [] [] [] | - man-db | [] [] [] | - man-db-manpages | [] [] | - midi-instruments | [] [] [] [] [] [] | - minicom | [] [] | - mkisofs | [] [] [] | - myserver | [] | - nano | [] [] [] [] | - opcodes | [] [] [] | - parted | [] [] [] [] [] | - pies | [] [] | - pnmixer | [] [] [] | - popt | [] [] [] [] [] [] [] | - procps-ng | [] [] | - procps-ng-man | [] | - psmisc | [] [] [] [] | - pspp | [] [] [] | - pushover | [] | - pwdutils | [] [] | - pyspread | [] | - radius | [] [] | - recode | [] [] [] [] | - recutils | [] [] [] | - rpm | [] [] [] [] | - rush | [] [] | - sarg | | - sed | [] [] [] [] [] | - sharutils | [] [] [] [] | - shishi | [] [] | - skribilo | [] [] | - solfege | [] [] [] [] | - solfege-manual | [] | - spotmachine | [] [] [] | - sudo | [] [] [] [] [] | - sudoers | [] [] [] [] | - sysstat | [] [] [] [] [] | - tar | [] [] [] [] [] | - texinfo | [] [] [] | - texinfo_document | [] | - tigervnc | [] [] [] | - tin | [] | - tin-man | | - tracgoogleappsa... | [] [] [] [] [] | - trader | [] | - util-linux | [] [] [] [] | - ve | [] [] [] [] | - vice | () () | - vmm | | - vorbis-tools | [] [] | - wastesedge | | - wcd | [] [] [] | - wcd-man | [] | - wdiff | [] [] [] [] | - wget | [] [] [] | - wyslij-po | [] [] | - xboard | [] [] | - xdg-user-dirs | [] [] [] [] [] [] [] [] | - xkeyboard-config | [] [] [] [] | - +----------------------------------------------+ - sv sw ta te tg th tr uk ur vi wa wo zh_CN - 106 1 4 3 0 13 51 115 1 125 7 1 100 - - zh_HK zh_TW - +-------------+ - a2ps | | 30 - aegis | | 9 - anubis | | 19 - aspell | | 29 - bash | [] | 23 - bfd | | 11 - binutils | | 12 - bison | [] | 18 - bison-runtime | [] | 38 - buzztrax | | 9 - ccd2cue | | 10 - ccide | | 17 - cflow | | 16 - clisp | | 10 - coreutils | | 18 - cpio | | 20 - cppi | | 17 - cpplib | [] | 19 - cryptsetup | | 14 - datamash | | 11 - denemo | | 5 - dfarc | | 17 - dialog | [] | 42 - dico | | 6 - diffutils | | 22 - dink | | 10 - direvent | | 11 - doodle | | 12 - dos2unix | [] | 18 - dos2unix-man | | 9 - e2fsprogs | | 15 - enscript | | 21 - exif | | 27 - fetchmail | | 19 - findutils | | 29 - flex | [] | 19 - freedink | | 24 - fusionforge | | 3 - gas | | 5 - gawk | | 13 - gcal | | 8 - gcc | | 2 - gdbm | | 10 - gettext-examples | [] [] | 40 - gettext-runtime | [] [] | 35 - gettext-tools | [] | 24 - gjay | | 9 - glunarclock | [] | 27 - gnubiff | | 9 - gnubik | | 19 - gnucash | () | 6 - gnuchess | | 11 - gnulib | | 23 - gnunet | | 1 - gnunet-gtk | | 1 - gold | | 7 - gphoto2 | [] | 19 - gprof | | 21 - gramadoir | | 14 - grep | [] | 31 - grub | | 21 - gsasl | [] | 19 - gss | | 17 - gst-plugins-bad | | 21 - gst-plugins-base | | 27 - gst-plugins-good | | 32 - gst-plugins-ugly | | 34 - gstreamer | [] | 32 - gtick | | 19 - gtkam | | 24 - gtkspell | [] [] | 48 - guix | | 2 - guix-packages | | 0 - gutenprint | | 15 - hello | [] | 30 - help2man | | 18 - help2man-texi | | 5 - hylafax | | 5 - idutils | | 14 - iso_15924 | [] | 23 - iso_3166 | [] [] | 58 - iso_3166_2 | | 9 - iso_4217 | [] [] | 28 - iso_639 | [] [] | 46 - iso_639_3 | | 10 - iso_639_5 | | 2 - jwhois | [] | 20 - kbd | | 17 - klavaro | | 30 - ld | [] | 15 - leafpad | [] | 39 - libc | [] | 24 - libexif | | 10 - libextractor | | 5 - libgnutls | | 13 - libgphoto2 | | 10 - libgphoto2_port | [] | 19 - libgsasl | | 18 - libiconv | [] | 29 - libidn | | 17 - liferea | | 29 - lilypond | | 11 - lordsawar | | 3 - lprng | | 3 - lynx | | 19 - m4 | [] | 22 - mailfromd | | 4 - mailutils | | 6 - make | | 19 - man-db | | 15 - man-db-manpages | | 10 - midi-instruments | [] | 43 - minicom | [] | 17 - mkisofs | | 13 - myserver | | 9 - nano | [] | 30 - opcodes | | 12 - parted | [] | 23 - pies | | 4 - pnmixer | | 9 - popt | [] | 36 - procps-ng | | 5 - procps-ng-man | | 4 - psmisc | [] | 22 - pspp | | 13 - pushover | | 6 - pwdutils | | 8 - pyspread | | 6 - radius | | 9 - recode | | 31 - recutils | | 10 - rpm | [] | 13 - rush | | 10 - sarg | | 4 - sed | [] | 35 - sharutils | | 13 - shishi | | 7 - skribilo | | 7 - solfege | | 21 - solfege-manual | | 9 - spotmachine | | 11 - sudo | | 26 - sudoers | | 22 - sysstat | | 23 - tar | [] | 30 - texinfo | | 17 - texinfo_document | | 13 - tigervnc | | 14 - tin | [] | 7 - tin-man | | 1 - tracgoogleappsa... | [] | 22 - trader | | 12 - util-linux | | 13 - ve | | 14 - vice | | 1 - vmm | | 3 - vorbis-tools | | 13 - wastesedge | | 3 - wcd | | 8 - wcd-man | | 3 - wdiff | [] | 23 - wget | | 21 - wyslij-po | | 14 - xboard | | 10 - xdg-user-dirs | [] [] | 68 - xkeyboard-config | [] | 28 - +-------------+ - 89 teams zh_HK zh_TW - 166 domains 7 42 2809 - - Some counters in the preceding matrix are higher than the number of -visible blocks let us expect. This is because a few extra PO files are -used for implementing regional variants of languages, or language -dialects. - - For a PO file in the matrix above to be effective, the package to -which it applies should also have been internationalized and distributed -as such by its maintainer. There might be an observable lag between the -mere existence a PO file and its wide availability in a distribution. - - If Jun 2014 seems to be old, you may fetch a more recent copy of this -'ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix -with full percentage details can be found at -'http://translationproject.org/extra/matrix.html'. - -1.5 Using 'gettext' in new packages -=================================== - -If you are writing a freely available program and want to -internationalize it you are welcome to use GNU 'gettext' in your -package. Of course you have to respect the GNU Lesser General Public -License which covers the use of the GNU 'gettext' library. This means -in particular that even non-free programs can use 'libintl' as a shared -library, whereas only free software can use 'libintl' as a static -library or use modified versions of 'libintl'. - - Once the sources are changed appropriately and the setup can handle -the use of 'gettext' the only thing missing are the translations. The -Free Translation Project is also available for packages which are not -developed inside the GNU project. Therefore the information given above -applies also for every other Free Software Project. Contact -'coordinator@translationproject.org' to make the '.pot' files available -to the translation teams. diff --git a/Android.bp b/Android.bp deleted file mode 100644 index e596664b..00000000 --- a/Android.bp +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2017 The Android Open Source Project - -package { - default_applicable_licenses: ["external_e2fsprogs_license"], -} - -// Added automatically by a large-scale-change that took the approach of -// 'apply every license found to every target'. While this makes sure we respect -// every license restriction, it may not be entirely correct. -// -// e.g. GPL in an MIT project might only apply to the contrib/ directory. -// -// Please consider splitting the single license below into multiple licenses, -// taking care not to lose any license_kind information, and overriding the -// default license using the 'licenses: [...]' property on targets as needed. -// -// For unused files, consider creating a 'fileGroup' with "//visibility:private" -// to attach the license to, and including a comment whether the files may be -// used in the current project. -// See: http://go/android-license-faq -license { - name: "external_e2fsprogs_license", - visibility: [":__subpackages__"], - license_kinds: [ - "SPDX-license-identifier-0BSD", - "SPDX-license-identifier-Apache-2.0", - "SPDX-license-identifier-BSD", - "SPDX-license-identifier-GPL", - "SPDX-license-identifier-GPL-2.0", - "SPDX-license-identifier-LGPL", - "SPDX-license-identifier-LGPL-2.0", - "SPDX-license-identifier-LGPL-2.1", - "SPDX-license-identifier-LGPL-3.0", - "SPDX-license-identifier-MIT", - "legacy_notice", - "legacy_unencumbered", - ], - license_text: [ - "NOTICE", - ], -} - -cc_defaults { - name: "e2fsprogs-defaults", - cflags: ["-Wall", "-Werror", "-Wno-pointer-arith"], - target: { - darwin: { - // Still has unfixed/unsuppressed warnings. - cflags: ["-Wno-error"], - }, - windows: { - cflags: [ - "-Wno-typedef-redefinition", - "-Wno-unused-parameter", - "-Wno-unused-variable", - ], - }, - bionic: { - system_shared_libs: ["libc", "libdl"], - }, - }, -} - -subdirs = [ - "contrib", - "debugfs", - "e2fsck", - "lib", - "misc", - "resize", -] diff --git a/BUILD.gn b/BUILD.gn index 8eb1f02f..96cdd64e 100755 --- a/BUILD.gn +++ b/BUILD.gn @@ -1,31 +1,33 @@ import("//build/ohos.gni") +e2fsprogs_path = rebase_path("//third_party/e2fsprogs") +exec_script("install.sh", [ "$e2fsprogs_path" ]) + group("e2fsprogs") { deps = [ - "//third_party/e2fsprogs/e2fsck:e2fsck", - "//third_party/e2fsprogs/lib/blkid:libext2_blkid", - "//third_party/e2fsprogs/lib/e2p:libext2_e2p", - "//third_party/e2fsprogs/lib/et:libext2_com_err", - "//third_party/e2fsprogs/lib/ext2fs:libext2fs", - "//third_party/e2fsprogs/lib/support:libext2_quota", - "//third_party/e2fsprogs/lib/uuid:libext2_uuid", - "//third_party/e2fsprogs/misc:blkid", - "//third_party/e2fsprogs/misc:libext2_misc", - "//third_party/e2fsprogs/misc:mke2fs", - "//third_party/e2fsprogs/resize:resize2fs", + "//third_party/e2fsprogs/e2fsprogs/e2fsck:e2fsck", + "//third_party/e2fsprogs/e2fsprogs/lib/blkid:libext2_blkid", + "//third_party/e2fsprogs/e2fsprogs/lib/e2p:libext2_e2p", + "//third_party/e2fsprogs/e2fsprogs/lib/et:libext2_com_err", + "//third_party/e2fsprogs/e2fsprogs/lib/ext2fs:libext2fs", + "//third_party/e2fsprogs/e2fsprogs/lib/support:libext2_quota", + "//third_party/e2fsprogs/e2fsprogs/lib/uuid:libext2_uuid", + "//third_party/e2fsprogs/e2fsprogs/misc:blkid", + "//third_party/e2fsprogs/e2fsprogs/misc:libext2_misc", + "//third_party/e2fsprogs/e2fsprogs/misc:mke2fs", + "//third_party/e2fsprogs/e2fsprogs/resize:resize2fs", ] if (target_cpu != "riscv64") { - deps += [ "//third_party/e2fsprogs/contrib/android:e2fsdroid" ] + deps += [ "//third_party/e2fsprogs/e2fsprogs/contrib/android:e2fsdroid" ] } } group("e2fsprogs_host_toolchain") { deps = [ - "//third_party/e2fsprogs/e2fsck:e2fsck($host_toolchain)", - "//third_party/e2fsprogs/misc:mke2fs($host_toolchain)", + "//third_party/e2fsprogs/e2fsprogs/e2fsck:e2fsck($host_toolchain)", + "//third_party/e2fsprogs/e2fsprogs/misc:mke2fs($host_toolchain)", ] if (target_cpu != "riscv64") { - deps += - [ "//third_party/e2fsprogs/contrib/android:e2fsdroid($host_toolchain)" ] + deps += [ "//third_party/e2fsprogs/e2fsprogs/contrib/android:e2fsdroid($host_toolchain)" ] } } diff --git a/CleanSpec.mk b/CleanSpec.mk deleted file mode 100644 index 8331daeb..00000000 --- a/CleanSpec.mk +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright (C) 2007 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# If you don't need to do a full clean build but would like to touch -# a file or delete some intermediate files, add a clean step to the end -# of the list. These steps will only be run once, if they haven't been -# run before. -# -# E.g.: -# $(call add-clean-step, touch -c external/sqlite/sqlite3.h) -# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates) -# -# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with -# files that are missing or have been moved. -# -# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory. -# Use $(OUT_DIR) to refer to the "out" directory. -# -# If you need to re-do something that's already mentioned, just copy -# the command and add it to the bottom of the list. E.g., if a change -# that you made last week required touching a file and a change you -# made today requires touching the same file, just copy the old -# touch step and add it to the end of the list. -# -# ************************************************ -# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST -# ************************************************ - -# For example: -#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates) -#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates) -#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f) -#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*) - -# ************************************************ -# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST -# ************************************************ - -$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libext2_uuid_intermediates) -$(call add-clean-step, rm -rf $(TARGET_RECOVERY_OUT)/root/sbin) diff --git a/INSTALL b/INSTALL deleted file mode 100644 index 2dd08f53..00000000 --- a/INSTALL +++ /dev/null @@ -1,69 +0,0 @@ - To install the second extended file system management programs, -just follow the steps: - -1) Change directory into the top of the e2fsprogs source tree - -2) Create a build directory and cd into it: - - mkdir build; cd build - -3) Run the configure script - - ../configure - - If you wish to turn on ELF shared libraries, add the option ---enable-elf-shlibs. If you wish to build profiling libraries, add -the option --enable-profile. - - Note that if you are building on an older system (i.e., a 2.4 -kernel and/or glibc 2.2), the use of thread local storage will probably -cause programs that use the uuid library to core dump. To disable -thread local storage, use the configure option --disable-tls. - -4) Compile the programs - - make - -5) Check to make sure the installation built correctly: - - make check - -6) Install the programs - - Run `make install' - -7) Install the include files and libraries - - You can run `make install-libs' to install the include files and -libraries. Please note that this installation is not needed for the -programs to work. It is only needed if you expect to develop other -programs using the libraries or if you want to compile other program -using these libraries (like the 4.4BSD dump and restore port). - -8) Remove any pre-formatted man pages. - - Some distributions will have pre-formatted manual pages which -will always be displayed in preference to newer man pages in /usr/man. -If this is the case, you may need to manually remove them in order to -see the correct manual pages. The shell script in -install-utils/remove_preformat_manpages may be helpful in doing so. - -9) Make sure your /etc/fstab file is correct. - - Some distributions install an /etc/fstab which is missing the -fifth and sixth field of filesystem entry, which are the dump -frequency, and the fsck pass number, respectively. The problem with -this is that the getmntent() library routine interprets those missing -fields as "0", and a pass number of 0 is documented as meaning that -fsck should not check that particular filesystem. If your entries in -your /etc/fstab file look like this: - -/dev/hda4 / ext2 defaults - -you should add "1 1" at the end of each line, so that they look like this: - -/dev/hda4 / ext2 defaults 1 1 - - There is a script in install-utils/convfstab (donated by -Michael Weller) that may help you correct your /etc/fstab file. - diff --git a/INSTALL.elfbin b/INSTALL.elfbin deleted file mode 100644 index 9c2c6006..00000000 --- a/INSTALL.elfbin +++ /dev/null @@ -1,53 +0,0 @@ -NOTE: This is the ELF version of the binary distribution. If you have -a DLL system, please compile e2fsprogs from sources yourself. (In -fact, in general you're better off compiling e2fsprogs from sources -instead of using precompiled binaries.) - -Also please note that these binaries assume the use of the GNU Libc. -If you're still using libc5, you'll need build e2fsprogs from source. - - To install the binary distribution of the second extended file -system management programs, just follow the steps: - -1) Install this tar file using the following command: - - gunzip < e2fsprogs-1.13-elfbin.tar.gz | (cd /; tar Sxvpf - ) - -2) Run ldconfig to update the shared library pointers. - - As root, type /sbin/ldconfig. This will update the links to -the shared libraries included in the distribution. You can then remove -the old versions of the libraries from /lib. - -3) Remove any pre-formatted man pages. - - Some distributions will have pre-formatted manual pages which -will always be displayed in preference to newer man pages in /usr/man. -If this is the case, you may need to manually remove them in order to -see the correct manual pages. The shell script in -install-utils/remove_preformat_manpages may be helpful in doing so. - -4) Make sure your /etc/fstab file is correct. - - Some distributions install an /etc/fstab which is missing the -fifth and sixth field of filesystem entry, which are the dump -frequency, and the fsck pass number, respectively. The problem with -this is that the getmntent() library routine interprets those missing -fields as "0", and a pass number of 0 is documented as meaning that -fsck should not check that particular filesystem. If your entries in -your /etc/fstab file look like this: - -/dev/hda4 / ext2 defaults - -you should add "1 1" at the end of each line, so that they look like this: - -/dev/hda4 / ext2 defaults 1 1 - - There is a script in install-utils/convfstab (donated by -Michael Weller) that may help you correct your /etc/fstab file. - -5) Cleanup files from the installation. - - When you're done with the installation, you will probably want -to remove /INSTALL (this file), /README, and /install-utils from your -root directory diff --git a/MCONFIG.in b/MCONFIG.in deleted file mode 100644 index 3fede36d..00000000 --- a/MCONFIG.in +++ /dev/null @@ -1,335 +0,0 @@ -# Beginning of file MCONFIG - -all:: - -all-static:: - -check:: - -fullcheck:: - -SHELL = /bin/sh - -COMPRESS_EXT = gz bz2 bz Z - -prefix = @prefix@ -root_prefix = @root_prefix@ -exec_prefix = @exec_prefix@ -root_bindir = @root_bindir@ -root_sbindir = @root_sbindir@ -root_libdir = @root_libdir@ -datarootdir = @datarootdir@ -bindir = @bindir@ -sbindir = @sbindir@ -libdir = @libdir@ -datadir= @datadir@ -localedir = $(datadir)/locale -root_sysconfdir= @root_sysconfdir@ -includedir = @includedir@ -mandir = @mandir@ -man1dir = $(mandir)/man1 -man3dir = $(mandir)/man3 -man5dir = $(mandir)/man5 -man8dir = $(mandir)/man8 -infodir = @infodir@ -datadir = @datadir@ -pkgconfigdir = $(libdir)/pkgconfig -pkglibdir = $(libdir)/e2fsprogs - -HAVE_UDEV = @have_udev@ -UDEV_RULES_DIR = @pkg_udev_rules_dir@ -HAVE_CROND = @have_crond@ -CROND_DIR = @crond_dir@ -HAVE_SYSTEMD = @have_systemd@ -SYSTEMD_SYSTEM_UNIT_DIR = @systemd_system_unit_dir@ - -@SET_MAKE@ - -@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@ CPPCHECK=cppcheck -@ifGNUmake@ CPPCHECK_OPTS=--force --enable=all --quiet -@ifGNUmake@ ifeq ("$(C)", "2") -@ifGNUmake@ CHECK_CMD=$(CHECK) $(CHECK_OPTS) -Wbitwise -D__CHECK_ENDIAN__ -@ifGNUmake@ CPPCHECK_CMD=$(CPPCHECK) $(CPPCHECK_OPTS) -@ifGNUmake@ else -@ifGNUmake@ ifeq ("$(C)", "1") -@ifGNUmake@ CHECK_CMD=$(CHECK) $(CHECK_OPTS) -@ifGNUmake@ CPPCHECK_CMD=$(CPPCHECK) $(CPPCHECK_OPTS) -@ifGNUmake@ else -@ifGNUmake@ CHECK_CMD=@true -@ifGNUmake@ CPPCHECK_CMD=@true -@ifGNUmake@ endif -@ifGNUmake@ endif - -@ifNotGNUmake@ CHECK_CMD=true -@ifNotGNUmake@ CPPCHECK_CMD=true - -SANITIZER_CFLAGS = @lto_cflags@ @ubsan_cflags@ @addrsan_cflags@ @threadsan_cflags@ -SANITIZER_LDFLAGS = @lto_ldflags@ @ubsan_ldflags@ @addrsan_ldflags@ @threadsan_ldflags@ - -CC = @PTHREAD_CC@ -BUILD_CC = @BUILD_CC@ -PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ -PTHREAD_LIBS = @PTHREAD_LIBS@ -CFLAGS = @CFLAGS@ -CFLAGS_SHLIB = @CFLAGS_SHLIB@ -CFLAGS_STLIB = @CFLAGS_STLIB@ -CPPFLAGS = @INCLUDES@ -ALL_CFLAGS = $(CPPFLAGS) $(SANITIZER_CFLAGS) $(CFLAGS) $(PTHREAD_CFLAGS) $(CFLAGS_WARN) @DEFS@ $(LOCAL_CFLAGS) -ALL_CFLAGS_SHLIB = $(CPPFLAGS) $(SANITIZER_CFLAGS) $(CFLAGS_SHLIB) $(PTHREAD_CFLAGS) $(CFLAGS_WARN) @DEFS@ $(LOCAL_CFLAGS) -ALL_CFLAGS_STLIB = $(CPPFLAGS) $(SANITIZER_CFLAGS) $(CFLAGS_STLIB) $(PTHREAD_CFLAGS) $(CFLAGS_WARN) @DEFS@ $(LOCAL_CFLAGS) -LDFLAGS = $(SANITIZER_LDFLAGS) $(PTHREAD_CFLAGS) @LDFLAGS@ -LDFLAGS_SHLIB = $(SANITIZER_LDFLAGS) $(PTHREAD_CFLAGS) @LDFLAGS_SHLIB@ -ALL_LDFLAGS = $(LDFLAGS) @LDFLAG_DYNAMIC@ -LDFLAGS_STATIC = $(SANITIZER_LDFLAGS) $(PTHREAD_CFLAGS) @LDFLAGS_STATIC@ -BUILD_CFLAGS = $(SANITIZER_CFLAGS) @BUILD_CFLAGS@ -BUILD_LDFLAGS = $(SANITIZER_LDFLAGS) @BUILD_LDFLAGS@ -RDYNAMIC = @RDYNAMIC@ -LINK_BUILD_FLAGS = @LINK_BUILD_FLAGS@ -LINK_INSTALL_FLAGS = @LINK_INSTALL_FLAGS@ -RM = @RM@ -LN = @LN@ -LN_S = @LN_S@ -MV = @MV@ -CP = @CP@ -CHMOD = @CHMOD@ -AR = @AR@ -AWK = @AWK@ -SED = @SED@ -PERL = @PERL@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -LD = $(PURE) @CC@ -ARUPD = $(AR) r -ARGEN = $(AR) rc -LDCONFIG = @LDCONFIG@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ - -# -# Library definitions -# -LIB = $(top_builddir)/lib -LIBSS = $(LIB)/libss@LIB_EXT@ @PRIVATE_LIBS_CMT@ @DLOPEN_LIB@ -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@ -LIBMAGIC = @MAGIC_LIB@ -LIBFUSE = @FUSE_LIB@ -LIBSUPPORT = $(LIBINTL) $(LIB)/libsupport@STATIC_LIB_EXT@ -LIBBLKID = @LIBBLKID@ @PRIVATE_LIBS_CMT@ $(LIBUUID) -LIBINTL = @LIBINTL@ -SYSLIBS = @LIBS@ @PTHREAD_LIBS@ -DEPLIBSS = $(LIB)/libss@LIB_EXT@ -DEPLIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@ -DEPLIBUUID = @DEPLIBUUID@ -DEPLIBSUPPORT = $(LIB)/libsupport@STATIC_LIB_EXT@ -DEPLIBBLKID = @DEPLIBBLKID@ @PRIVATE_LIBS_CMT@ $(DEPLIBUUID) -TESTENV = LD_LIBRARY_PATH="$(LIB):$${LD_LIBRARY_PATH}" DYLD_LIBRARY_PATH="$(LIB):$${DYLD_LIBRARY_PATH}" - -STATIC_LIBSS = $(LIB)/libss@STATIC_LIB_EXT@ @DLOPEN_LIB@ -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_LIBSUPPORT = $(LIBINTL) $(LIBSUPPORT) -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_LIBSUPPORT = $(DEPLIBSUPPORT) -DEPSTATIC_LIBBLKID = @DEPSTATIC_LIBBLKID@ $(DEPSTATIC_LIBUUID) - -PROFILED_LIBSS = $(LIB)/libss@PROFILED_LIB_EXT@ @DLOPEN_LIB@ -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_LIBSUPPORT = $(LIBINTL) $(LIB)/libsupport@PROFILED_LIB_EXT@ -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_LIBSUPPORT = $(PROFILED_LIBSUPPORT) -DEPPROFILED_LIBBLKID = @PROFILED_LIBBLKID@ $(DEPPROFILED_LIBUUID) - -# -# A fast substitution command for fixing up man pages, shell scripts, etc. -# -SUBST_CONF=$(top_builddir)/util/subst.conf -SUBSTITUTE= $(top_builddir)/util/subst -f $(SUBST_CONF) -SUBSTITUTE_UPTIME= $(top_builddir)/util/subst -t -f $(SUBST_CONF) -DEP_SUBSTITUTE= $(top_builddir)/util/subst $(SUBST_CONF) - -$(top_builddir)/util/subst: - cd $(top_builddir)/util ; $(MAKE) subst - -# -# Script for generating utf8data.h -# -MKUTF8DATA=$(top_builddir)/util/mkutf8data - -$(top_builddir)/util/mkutf8data: - $(MAKE) -C $(top_builddir)/util mkutf8data - -# -# 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 -# -# Run make gcc-wall to do a build with warning messages. -# -# -WFLAGS= -std=gnu99 -D_XOPEN_SOURCE=600 -D_GNU_SOURCE $(WFLAGS_EXTRA) \ - -Wall -W -Wwrite-strings -Wpointer-arith \ - -Wcast-qual -Wcast-align -Wno-variadic-macros \ - -Wstrict-prototypes -Wmissing-prototypes \ - -Wformat-security -Wformat-nonliteral \ - -Wmissing-format-attribute -O2 -Wstrict-aliasing \ - -Wnested-externs -Winline -DNO_INLINE_FUNCS -Wshadow \ - -UENABLE_NLS - -gcc-wall-new: - ($(MAKE) CFLAGS_WARN="$(WFLAGS)" > /dev/null) 2>&1 - -gcc-wall: - $(MAKE) clean > /dev/null - $(MAKE) gcc-wall-new - -static-check: - ($(MAKE) C=1 V=1 CFLAGS="$(ALL_CFLAGS) $(WFLAGS)") 2>&1 - -static-check-all: - $(MAKE) clean > /dev/null - $(MAKE) static-check - -# -# Installation user and groups -# -BINGRP= bin -BINOWN= bin -BINMODE= 555 -INCGRP= bin -INCOWN= bin -INCMODE= 444 -LIBOWN= bin -LIBGRP= bin -LIBMODE= 444 -MANGRP= bin -MANOWN= bin -MANMODE= 444 - -# -# Autoconf magic... -# - -DEP_LIB_MAKEFILES = $(top_srcdir)/lib/Makefile.library \ - $(top_srcdir)/lib/Makefile.elf-lib \ - $(top_srcdir)/lib/Makefile.bsd-lib \ - $(top_srcdir)/lib/Makefile.darwin-lib \ - $(top_srcdir)/lib/Makefile.solaris-lib \ - $(top_srcdir)/lib/Makefile.profile - -$(top_builddir)/config.status: $(top_srcdir)/configure - cd $(top_builddir); ./config.status --recheck - -$(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 - -$(top_builddir)/util/subst.conf: $(top_srcdir)/util/subst.conf.in \ - $(top_builddir)/config.status - cd $(top_builddir); CONFIG_FILES=util/subst.conf ./config.status - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/MCONFIG \ - $(DEP_MAKEFILE) $(top_builddir)/config.status - cd $(top_builddir); CONFIG_FILES=$(my_dir)/Makefile ./config.status - -@MAINTAINER_CMT@$(top_srcdir)/configure: $(top_srcdir)/configure.ac -@MAINTAINER_CMT@ cd $(top_srcdir) && autoheader && autoconf - -coverage.txt: Makefile $(SRCS) - if test -n "$(SRCS)"; then \ - gcov -s $(top_srcdir) -o . $(SRCS) > coverage.txt 2>&1 ; \ - fi - -clean:: - $(RM) -f *.gcda *.gcov *.gcno coverage.txt - -# -# Make depend magic... -# - -.depend: Makefile $(SRCS) $(top_srcdir)/depfix.sed $(top_srcdir)/wordwrap.pl - if test -n "$(SRCS)" ; then \ - $(CC) -M $(ALL_CFLAGS) $(DEPEND_CFLAGS) $(SRCS) | \ - $(SED) -f $(top_srcdir)/depfix.sed \ - -e 's; $(srcdir)/; $$(srcdir)/;g' \ - -e 's; $(top_srcdir)/; $$(top_srcdir)/;g' \ - -e 's; $(top_builddir)/; $$(top_builddir)/;g' \ - -e 's; \./; ;g' \ - -e '/^#/d' \ - -e '/^ *\\$$/d' | \ - $(PERL) $(top_srcdir)/wordwrap.pl > .depend; \ - else :; fi - -depend:: .depend - if test -n "$(SRCS)" ; then \ - sed -e '/^# +++ Dependency line eater +++/,$$d' \ - < $(srcdir)/Makefile.in | cat - .depend \ - > $(srcdir)/Makefile.in.new; \ - if cmp -s $(srcdir)/Makefile.in $(srcdir)/Makefile.in.new ; then \ - $(RM) $(srcdir)/Makefile.in.new ; \ - else \ - $(MV) $(srcdir)/Makefile.in $(srcdir)/Makefile.in.old; \ - $(MV) $(srcdir)/Makefile.in.new $(srcdir)/Makefile.in; \ - fi ; else :; fi - -# End of file MCONFIG diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index d412dfbc..00000000 --- a/Makefile.in +++ /dev/null @@ -1,170 +0,0 @@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -top_builddir = . -my_dir = . -INSTALL = @INSTALL@ -MKDIR_P = @MKDIR_P@ - -@MCONFIG@ - -% : %.sh - -@RESIZER_CMT@RESIZE_DIR= resize -@DEBUGFS_CMT@DEBUGFS_DIR= debugfs -@UUID_CMT@UUID_LIB_SUBDIR= lib/uuid -@BLKID_CMT@BLKID_LIB_SUBDIR= lib/blkid -@E2SCRUB_CMT@E2SCRUB_DIR= scrub -@ALL_CMT@SUPPORT_LIB_SUBDIR= lib/support -@ALL_CMT@E2P_LIB_SUBDIR= lib/e2p -@ALL_CMT@EXT2FS_LIB_SUBDIR= lib/ext2fs - -LIB_SUBDIRS=lib/et lib/ss $(E2P_LIB_SUBDIR) $(UUID_LIB_SUBDIR) \ - $(BLKID_LIB_SUBDIR) $(SUPPORT_LIB_SUBDIR) $(EXT2FS_LIB_SUBDIR) - -PROG_SUBDIRS=e2fsck $(DEBUGFS_DIR) misc $(RESIZE_DIR) tests/progs po \ - $(E2SCRUB_DIR) - -SUBDIRS=util $(LIB_SUBDIRS) $(PROG_SUBDIRS) tests - -SUBS= util/subst.conf lib/config.h $(top_builddir)/lib/dirpaths.h \ - lib/ext2fs/ext2_types.h lib/blkid/blkid_types.h lib/uuid/uuid_types.h - -TAR=tar - -all:: subs - $(MAKE) libs -@ALL_CMT@ $(MAKE) progs -@ALL_CMT@ $(MAKE) docs - -all-static:: - $(MAKE) libs -@ALL_CMT@ $(MAKE) static-progs - -subs: $(DEP_SUBSTITUTE) - @for i in $(SUBS) ; do if test -d `dirname $$i` ; \ - then $(MAKE) $$i || exit $$? ; fi ; done - @(if test -d lib/et ; then cd lib/et && $(MAKE) compile_et; fi) - @(if test -d lib/ext2fs ; then cd lib/ext2fs && $(MAKE) ext2_err.h; fi) - @(if test -d lib/support ; then cd lib/support && $(MAKE) prof_err.h; fi) - -progs: all-progs-recursive -static-progs: all-static-progs-recursive -libs: all-libs-recursive -all-progs-recursive all-libs-recursive:: subs - -rpm: - sh contrib/build-rpm - -docs: - -@test -d doc && cd doc && $(MAKE) libext2fs.info - -install-doc-libs: - -@test -d doc && cd doc && $(MAKE) install-doc-libs - -uninstall-doc-libs: - -@test -d doc && cd doc && $(MAKE) uninstall-doc-libs - -clean-doc: - -@test -d doc && cd doc && $(MAKE) clean - -distclean-doc: - -test -d doc && cd doc && $(MAKE) distclean - -install: subs all-libs-recursive install-progs-recursive \ - install-shlibs-libs-recursive install-doc-libs -@SUBSET_CMT@ $(MAKE) install-libs - -install-strip: subs all-libs-recursive install-strip-progs-recursive \ - install-shlibs-strip-libs-recursive install-doc-libs - -uninstall: uninstall-progs-recursive uninstall-shlibs-libs-recursive uninstall-doc-libs - -install-libs: install-libs-recursive - -uninstall-libs: uninstall-libs-recursive - -coverage.txt: coverage.txt-recursive - -check-recursive: all - -TAGS clean-recursive distclean-recursive depend-recursive fullcheck-recursive \ - check-recursive mostlyclean-recursive realclean-recursive \ - coverage.txt-recursive: - @for subdir in $(SUBDIRS); do \ - if test -d $$subdir ; then \ - target=`echo $@|$(SED) 's/-recursive//'`; \ - echo making $$target in $$subdir; \ - (cd $$subdir && $(MAKE) $$target) || exit 1; \ - fi ; \ - done - -all-progs-recursive install-progs-recursive install-strip-progs-recursive \ - uninstall-progs-recursive coverage.txt-progs-recursive:: all-libs-recursive - - -@ALL_CMT@all-progs-recursive all-static-progs-recursive install-progs-recursive \ -@ALL_CMT@ install-strip-progs-recursive uninstall-progs-recursive \ -@ALL_CMT@ coverage.txt-progs-recursive:: all-libs-recursive -@ALL_CMT@ @for subdir in $(PROG_SUBDIRS); do \ -@ALL_CMT@ if test -d $$subdir ; then \ -@ALL_CMT@ target=`echo $@|$(SED) 's/-progs-recursive//'`; \ -@ALL_CMT@ echo making $$target in $$subdir; \ -@ALL_CMT@ (cd $$subdir && $(MAKE) $$target) || exit 1; \ -@ALL_CMT@ fi ; \ -@ALL_CMT@ done - -all-libs-recursive install-libs-recursive install-strip-libs-recursive \ - uninstall-libs-recursive install-shlibs-libs-recursive \ - install-shlibs-strip-libs-recursive uninstall-shlibs-libs-recursive \ - coverage.txt-libs-recursive:: - @for subdir in $(LIB_SUBDIRS); do \ - if test -d $$subdir ; then \ - target=`echo $@|$(SED) 's/-libs-recursive//'`; \ - echo making $$target in $$subdir; \ - (cd $$subdir && $(MAKE) $$target) || exit 1; \ - fi ; \ - done - -mostlyclean: mostlyclean-recursive mostlyclean-local - -clean:: clean-recursive clean-local clean-doc - $(RM) -f $(SUBS) - -distclean: distclean-doc distclean-recursive - $(RM) -rf autom4te.cache ext2ed/Makefile po/stamp-po \ - asm_types.h config.log public_config.h parse-types.log - $(MAKE) distclean-local - -realclean: realclean-recursive realclean-local - -depend:: depend-recursive - -lib/ext2fs/ext2_types.h: $(DEP_SUBSTITUTE) asm_types.h \ - $(srcdir)/lib/ext2fs/ext2_types.h.in - cd $(top_builddir); CONFIG_FILES=./lib/ext2fs/ext2_types.h ./config.status - -lib/blkid/blkid_types.h: $(DEP_SUBSTITUTE) asm_types.h \ - $(srcdir)/lib/blkid/blkid_types.h.in - cd $(top_builddir); CONFIG_FILES=./lib/blkid/blkid_types.h ./config.status - -lib/uuid/uuid_types.h: $(DEP_SUBSTITUTE) asm_types.h \ - $(srcdir)/lib/uuid/uuid_types.h.in - cd $(top_builddir); CONFIG_FILES=./lib/uuid/uuid_types.h ./config.status - -mostlyclean-local: - $(RM) -f \#* *~ *.orig core MAKELOG - -clean-local: mostlyclean-local - -distclean-local: clean-local - $(RM) -f $(SUBS) $(SUBST_CONF) \ - config.status config.log config.cache MCONFIG Makefile \ - $(srcdir)/TAGS $(srcdir)/Makefile.in.old - -realclean-local: distclean-local - $(RM) -f configure - -check:: all check-recursive - -fullcheck:: all fullcheck-recursive diff --git a/NOTICE b/NOTICE deleted file mode 100644 index da98a3e6..00000000 --- a/NOTICE +++ /dev/null @@ -1,849 +0,0 @@ -This package, the EXT2 filesystem utilities, are made available under -the GNU Public License version 2, with the exception of the lib/ext2fs -and lib/e2p libraries, which are made available under the GNU Library -General Public License Version 2, the lib/uuid library which is made -available under a BSD-style license and the lib/et and lib/ss -libraries which are made available under an MIT-style license. Please -see lib/uuid/COPYING for more details for the license for the files -comprising the libuuid library, and the source file headers of the -libet and libss libraries for more information. - -The most recent officially distributed version can be found at -http://e2fsprogs.sourceforge.net. If you need to make a distribution, -that's the one you should use. If there is some reason why you'd like -a more recent version that is still in ALPHA testing (i.e., either -using the "WIP" test distributions or one from the hg or git -repository from the development branch, please contact me -(tytso@mit.edu) before you ship. The release schedules for this -package are flexible, if you give me enough lead time. - - - Theodore Ts'o - 23-June-2007 - ----------------------------------------------------------------------- - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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; either version 2 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. - - 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 - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. - ----------------------------------------------------------------------- - - GNU LIBRARY GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the library GPL. It is - numbered 2 because it goes with version 2 of the ordinary GPL.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Library General Public License, applies to some -specially designated Free Software Foundation software, and to any -other libraries whose authors decide to use it. You can use it for -your libraries, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if -you distribute copies of the library, or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link a program with the library, you must provide -complete object files to the recipients so that they can relink them -with the library, after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - Our method of protecting your rights has two steps: (1) copyright -the library, and (2) offer you this license which gives you legal -permission to copy, distribute and/or modify the library. - - Also, for each distributor's protection, we want to make certain -that everyone understands that there is no warranty for this free -library. If the library is modified by someone else and passed on, we -want its recipients to know that what they have is not the original -version, so that any problems introduced by others will not reflect on -the original authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that companies distributing free -software will individually obtain patent licenses, thus in effect -transforming the program into proprietary software. To prevent this, -we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - - Most GNU software, including some libraries, is covered by the ordinary -GNU General Public License, which was designed for utility programs. This -license, the GNU Library General Public License, applies to certain -designated libraries. This license is quite different from the ordinary -one; be sure to read it in full, and don't assume that anything in it is -the same as in the ordinary license. - - The reason we have a separate public license for some libraries is that -they blur the distinction we usually make between modifying or adding to a -program and simply using it. Linking a program with a library, without -changing the library, is in some sense simply using the library, and is -analogous to running a utility program or application program. However, in -a textual and legal sense, the linked executable is a combined work, a -derivative of the original library, and the ordinary General Public License -treats it as such. - - Because of this blurred distinction, using the ordinary General -Public License for libraries did not effectively promote software -sharing, because most developers did not use the libraries. We -concluded that weaker conditions might promote sharing better. - - However, unrestricted linking of non-free programs would deprive the -users of those programs of all benefit from the free status of the -libraries themselves. This Library General Public License is intended to -permit developers of non-free programs to use free libraries, while -preserving your freedom as a user of such programs to change the free -libraries that are incorporated in them. (We have not seen how to achieve -this as regards changes in header files, but we have achieved it as regards -changes in the actual functions of the Library.) The hope is that this -will lead to faster development of free libraries. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, while the latter only -works together with the library. - - Note that it is possible for a library to be covered by the ordinary -General Public License rather than by this special one. - - GNU LIBRARY GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library which -contains a notice placed by the copyright holder or other authorized -party saying it may be distributed under the terms of this Library -General Public License (also called "this License"). Each licensee is -addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also compile or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - c) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - d) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Library General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! diff --git a/README.OpenSource b/README.OpenSource index 107e1e52..0711e2d2 100644 --- a/README.OpenSource +++ b/README.OpenSource @@ -1,11 +1,11 @@ [ { - "Name" : "e2fsprogs", + "Name" : "openEuler:e2fsprogs", "License" : "LGPL V2.0, BSD 3-Clause License, GPL V2.0, MIT License", "License File" : "NOTICE", - "Version Number" : "1.46.4", - "Owner" : "lvhaoyu@huawei.com", - "Upstream URL" : "http://e2fsprogs.sourceforge.net", + "Version Number" : "1.46.4-7.oe2203", + "Owner" : "liuzhiqiang26@huawei.com", + "Upstream URL" : "https://repo.openeuler.org/openEuler-22.03-LTS/source/Packages/e2fsprogs-1.46.4-7.oe2203.src.rpm", "Description" : "The E2fsprogs package contains the utilities for handling the ext2 file system. It also supports the ext3 and ext4 journaling file systems" } ] diff --git a/RELEASE-NOTES b/RELEASE-NOTES deleted file mode 120000 index bb4d7d4d..00000000 --- a/RELEASE-NOTES +++ /dev/null @@ -1 +0,0 @@ -doc/RelNotes/v1.46.4.txt \ No newline at end of file diff --git a/SHLIBS b/SHLIBS deleted file mode 100644 index 2fcbbc33..00000000 --- a/SHLIBS +++ /dev/null @@ -1,35 +0,0 @@ -Library:libcom_err.o -Description: Common error code library -Maintainer: Theodore Ts'o -Email: tytso@mit.edu -Start: 0x66800000 -End: 0x6687ffff - -Library:libss.o -Description: Generic Subsystem library (Simple tty UI) -Maintainer: Theodore Ts'o -Email: tytso@mit.edu -Start: 0x66880000 -End: 0x668fffff - -Library:libext2fs.so -Description: The ext2fs (raw interface) library -Maintainer: Theodore Ts'o -Email: tytso@mit.edu -Start: 0x66900000 -End: 0x6697ffff - -Library:libe2p.so -Description: The e2p (ext2fs's programmers) library -Maintainer: Theodore Ts'o -Email: tytso@mit.edu -Start: 0x66980000 -End: 0x669fffff - -Library:libuuid.so -Description: DCE Universally Unique ID (UUID) library -Maintainer: Theodore Ts'o -Email: tytso@mit.edu -Start: 0x67900000 -End: 0x679fffff - diff --git a/SUBMITTING-PATCHES b/SUBMITTING-PATCHES deleted file mode 100644 index 189deb3d..00000000 --- a/SUBMITTING-PATCHES +++ /dev/null @@ -1,39 +0,0 @@ - -Like the Linux kernel, submitted e2fsprogs patches now require the -following "sign-off" procedure: - -The sign-off is a simple line at the end of the explanation for the -patch, which certifies that you wrote it or otherwise have the right to -pass it on as a open-source patch. The rules are pretty simple: if you -can certify the below: - - Developer's Certificate of Origin 1.1 - - By making a contribution to this project, I certify that: - - (a) The contribution was created in whole or in part by me and I - have the right to submit it under the open source license - indicated in the file; or - - (b) The contribution is based upon previous work that, to the best - of my knowledge, is covered under an appropriate open source - license and I have the right under that license to submit that - work with modifications, whether created in whole or in part - by me, under the same open source license (unless I am - permitted to submit under a different license), as indicated - in the file; or - - (c) The contribution was provided directly to me by some other - person who certified (a), (b) or (c) and I have not modified - it. - - (d) I understand and agree that this project and the contribution - are public and that a record of the contribution (including all - personal information I submit with it, including my sign-off) is - maintained indefinitely and may be redistributed consistent with - this project or the open source license(s) involved. - -then you just add a line saying - - Signed-off-by: Random J Developer - diff --git a/acinclude.m4 b/acinclude.m4 deleted file mode 100644 index 13b1e022..00000000 --- a/acinclude.m4 +++ /dev/null @@ -1,178 +0,0 @@ -# from http://autoconf-archive.cryp.to/ax_tls.html -# -# This was licensed under the GPL with the following exception: -# -# As a special exception, the respective Autoconf Macro's copyright -# owner gives unlimited permission to copy, distribute and modify the -# configure scripts that are the output of Autoconf when processing -# the Macro. You need not follow the terms of the GNU General Public -# License when using or distributing such scripts, even though -# portions of the text of the Macro appear in them. The GNU General -# Public License (GPL) does govern all other use of the material that -# constitutes the Autoconf Macro. -# -# This special exception to the GPL applies to versions of the -# Autoconf Macro released by the Autoconf Macro Archive. When you make -# and distribute a modified version of the Autoconf Macro, you may -# extend this special exception to the GPL to apply to your modified -# version as well. -# -AC_DEFUN([AX_TLS], [ - AC_MSG_CHECKING(for thread local storage (TLS) class) - AC_CACHE_VAL(ac_cv_tls, [ - ax_tls_keywords="__thread __declspec(thread) none" - for ax_tls_keyword in $ax_tls_keywords; do - case $ax_tls_keyword in - none) ac_cv_tls=none ; break ;; - *) - AC_TRY_COMPILE( - [#include - static void - foo(void) { - static ] $ax_tls_keyword [ int bar; - exit(1); - }], - [], - [ac_cv_tls=$ax_tls_keyword ; break], - ac_cv_tls=none - ) - esac - done -]) - - if test "$ac_cv_tls" != "none"; then - dnl AC_DEFINE([TLS], [], [If the compiler supports a TLS storage class define it to that here]) - AC_DEFINE_UNQUOTED([TLS], $ac_cv_tls, [If the compiler supports a TLS storage class define it to that here]) - fi - AC_MSG_RESULT($ac_cv_tls) -]) - -# =========================================================================== -# http://www.nongnu.org/autoconf-archive/check_gnu_make.html -# =========================================================================== -# -# SYNOPSIS -# -# CHECK_GNU_MAKE() -# -# DESCRIPTION -# -# This macro searches for a GNU version of make. If a match is found, the -# makefile variable `ifGNUmake' is set to the empty string, otherwise it -# is set to "#". This is useful for including a special features in a -# Makefile, which cannot be handled by other versions of make. The -# variable _cv_gnu_make_command is set to the command to invoke GNU make -# if it exists, the empty string otherwise. -# -# Here is an example of its use: -# -# Makefile.in might contain: -# -# # A failsafe way of putting a dependency rule into a makefile -# $(DEPEND): -# $(CC) -MM $(srcdir)/*.c > $(DEPEND) -# -# @ifGNUmake@ ifeq ($(DEPEND),$(wildcard $(DEPEND))) -# @ifGNUmake@ include $(DEPEND) -# @ifGNUmake@ endif -# -# Then configure.in would normally contain: -# -# CHECK_GNU_MAKE() -# AC_OUTPUT(Makefile) -# -# Then perhaps to cause gnu make to override any other make, we could do -# something like this (note that GNU make always looks for GNUmakefile -# first): -# -# if ! test x$_cv_gnu_make_command = x ; then -# mv Makefile GNUmakefile -# echo .DEFAULT: > Makefile ; -# echo \ $_cv_gnu_make_command \$@ >> Makefile; -# fi -# -# Then, if any (well almost any) other make is called, and GNU make also -# exists, then the other make wraps the GNU make. -# -# LICENSE -# -# Copyright (c) 2008 John Darrington -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. -# -# Note: Modified by Ted Ts'o to add @ifNotGNUMake@ - -AC_DEFUN( - [CHECK_GNU_MAKE], [ AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command, - _cv_gnu_make_command='' ; -dnl Search all the common names for GNU make - if test -n "$FORCE_NATIVE_MAKE" ; then - MAKES="make" - else - MAKES="make gmake gnumake" - fi - for a in "$MAKE" $MAKES ; do - if test -z "$a" ; then continue ; fi ; - if ( sh -c "$a --version" 2> /dev/null | grep GNU 2>&1 > /dev/null ) ; then - _cv_gnu_make_command=$a ; - break; - fi - done ; - ) ; -dnl If there was a GNU version, then set @ifGNUmake@ to the empty string, '#' otherwise - if test "x$_cv_gnu_make_command" != "x" ; then - ifGNUmake='' ; - ifNotGNUmake='#' ; - else - ifGNUmake='#' ; - ifNotGNUmake='' ; - AC_MSG_RESULT("Not found"); - fi - AC_SUBST(ifGNUmake) - AC_SUBST(ifNotGNUmake) -] ) - -# AX_CHECK_MOUNT_OPT: an autoconf macro to check for generic filesystem- -# agnostic 'mount' options. Written by Nicholas Clark. Looks for constants in -# sys/mount.h to predict whether the 'mount' utility will support a specific -# mounting option. -# -# This macro can be used to check for the presence of 'nodev' (or other mount -# options), which isn't uniformly implemented in the BSD family at the time of -# this writing. Tested on FreeBSD, NetBSD, OpenBSD, and Linux. -# -# Usage: -# -# AX_CHECK_MOUNT_OPT(option) -# -# Defines HAVE_MOUNT_$OPTION (in uppercase) if the option exists, and sets -# ac_cv_mount_$option (in original case) otherwise. -# -# Copyright (c) 2018 Nicholas Clark -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty or attribution requirement. - -AC_DEFUN([AX_CHECK_MOUNT_OPT], [__AX_CHECK_MOUNT_OPT(m4_tolower([$1]),m4_toupper([$1]))]) -AC_DEFUN([__AX_CHECK_MOUNT_OPT], -[ - AS_ECHO_N("checking for mount '$1' option... ") - AC_TRY_COMPILE( - [#include ], - [void *temp = (void *)(MS_$2); (void) temp;], - [AC_DEFINE(HAVE_MOUNT_$2, 1, [Define to 1 if mount supports $1.]) - AS_VAR_SET(ac_cv_mount_$1, yes) - AS_ECHO("yes")], - [AC_TRY_COMPILE( - [#include ], - [void *temp = (void *)(MNT_$2); (void) temp;], - [AC_DEFINE(HAVE_MOUNT_$2, 1, [Define to 1 if mount supports $1.]) - AS_VAR_SET(ac_cv_mount_$1, yes) - AS_ECHO("yes")], - [AS_VAR_SET(ac_cv_mount_$1, no) - AS_ECHO("no")] - )] - ) -]) diff --git a/aclocal.m4 b/aclocal.m4 deleted file mode 100644 index 0f39d301..00000000 --- a/aclocal.m4 +++ /dev/null @@ -1,4062 +0,0 @@ -# generated automatically by aclocal 1.16.3 -*- Autoconf -*- - -# Copyright (C) 1996-2020 Free Software Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) -# =========================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_pthread.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) -# -# DESCRIPTION -# -# This macro figures out how to build C programs using POSIX threads. It -# sets the PTHREAD_LIBS output variable to the threads library and linker -# flags, and the PTHREAD_CFLAGS output variable to any special C compiler -# flags that are needed. (The user can also force certain compiler -# flags/libs to be tested by setting these environment variables.) -# -# Also sets PTHREAD_CC to any special C compiler that is needed for -# multi-threaded programs (defaults to the value of CC otherwise). (This -# is necessary on AIX to use the special cc_r compiler alias.) -# -# NOTE: You are assumed to not only compile your program with these flags, -# but also to link with them as well. For example, you might link with -# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS -# -# If you are only building threaded programs, you may wish to use these -# variables in your default LIBS, CFLAGS, and CC: -# -# LIBS="$PTHREAD_LIBS $LIBS" -# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" -# CC="$PTHREAD_CC" -# -# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant -# has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to -# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX). -# -# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the -# PTHREAD_PRIO_INHERIT symbol is defined when compiling with -# PTHREAD_CFLAGS. -# -# ACTION-IF-FOUND is a list of shell commands to run if a threads library -# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it -# is not found. If ACTION-IF-FOUND is not specified, the default action -# will define HAVE_PTHREAD. -# -# Please let the authors know if this macro fails on any platform, or if -# you have any other suggestions or comments. This macro was based on work -# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help -# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by -# Alejandro Forero Cuervo to the autoconf macro repository. We are also -# grateful for the helpful feedback of numerous users. -# -# Updated for Autoconf 2.68 by Daniel Richard G. -# -# LICENSE -# -# Copyright (c) 2008 Steven G. Johnson -# Copyright (c) 2011 Daniel Richard G. -# -# 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, 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. -# -# You should have received a copy of the GNU General Public License along -# with this program. If not, see . -# -# As a special exception, the respective Autoconf Macro's copyright owner -# gives unlimited permission to copy, distribute and modify the configure -# scripts that are the output of Autoconf when processing the Macro. You -# need not follow the terms of the GNU General Public License when using -# or distributing such scripts, even though portions of the text of the -# Macro appear in them. The GNU General Public License (GPL) does govern -# all other use of the material that constitutes the Autoconf Macro. -# -# This special exception to the GPL applies to versions of the Autoconf -# Macro released by the Autoconf Archive. When you make and distribute a -# modified version of the Autoconf Macro, you may extend this special -# exception to the GPL to apply to your modified version as well. - -#serial 24 - -AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) -AC_DEFUN([AX_PTHREAD], [ -AC_REQUIRE([AC_CANONICAL_HOST]) -AC_REQUIRE([AC_PROG_CC]) -AC_REQUIRE([AC_PROG_SED]) -AC_LANG_PUSH([C]) -ax_pthread_ok=no - -# We used to check for pthread.h first, but this fails if pthread.h -# requires special compiler flags (e.g. on Tru64 or Sequent). -# It gets checked for in the link test anyway. - -# First of all, check if the user has set any of the PTHREAD_LIBS, -# etcetera environment variables, and if threads linking works using -# them: -if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then - ax_pthread_save_CC="$CC" - ax_pthread_save_CFLAGS="$CFLAGS" - ax_pthread_save_LIBS="$LIBS" - AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"]) - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS]) - AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes]) - AC_MSG_RESULT([$ax_pthread_ok]) - if test "x$ax_pthread_ok" = "xno"; then - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" - fi - CC="$ax_pthread_save_CC" - CFLAGS="$ax_pthread_save_CFLAGS" - LIBS="$ax_pthread_save_LIBS" -fi - -# We must check for the threads library under a number of different -# names; the ordering is very important because some systems -# (e.g. DEC) have both -lpthread and -lpthreads, where one of the -# libraries is broken (non-POSIX). - -# Create a list of thread flags to try. Items starting with a "-" are -# C compiler flags, and other items are library names, except for "none" -# which indicates that we try without any flags at all, and "pthread-config" -# which is a program returning the flags for the Pth emulation library. - -ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" - -# The ordering *is* (sometimes) important. Some notes on the -# individual items follow: - -# pthreads: AIX (must check this before -lpthread) -# none: in case threads are in libc; should be tried before -Kthread and -# other compiler flags to prevent continual compiler warnings -# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) -# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64 -# (Note: HP C rejects this with "bad form for `-t' option") -# -pthreads: Solaris/gcc (Note: HP C also rejects) -# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it -# doesn't hurt to check since this sometimes defines pthreads and -# -D_REENTRANT too), HP C (must be checked before -lpthread, which -# is present but should not be used directly; and before -mthreads, -# because the compiler interprets this as "-mt" + "-hreads") -# -mthreads: Mingw32/gcc, Lynx/gcc -# pthread: Linux, etcetera -# --thread-safe: KAI C++ -# pthread-config: use pthread-config program (for GNU Pth library) - -case $host_os in - - freebsd*) - - # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) - # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) - - ax_pthread_flags="-kthread lthread $ax_pthread_flags" - ;; - - hpux*) - - # From the cc(1) man page: "[-mt] Sets various -D flags to enable - # multi-threading and also sets -lpthread." - - ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags" - ;; - - openedition*) - - # IBM z/OS requires a feature-test macro to be defined in order to - # enable POSIX threads at all, so give the user a hint if this is - # not set. (We don't define these ourselves, as they can affect - # other portions of the system API in unpredictable ways.) - - AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING], - [ -# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS) - AX_PTHREAD_ZOS_MISSING -# endif - ], - [AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])]) - ;; - - solaris*) - - # On Solaris (at least, for some versions), libc contains stubbed - # (non-functional) versions of the pthreads routines, so link-based - # tests will erroneously succeed. (N.B.: The stubs are missing - # pthread_cleanup_push, or rather a function called by this macro, - # so we could check for that, but who knows whether they'll stub - # that too in a future libc.) So we'll check first for the - # standard Solaris way of linking pthreads (-mt -lpthread). - - ax_pthread_flags="-mt,pthread pthread $ax_pthread_flags" - ;; -esac - -# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC) - -AS_IF([test "x$GCC" = "xyes"], - [ax_pthread_flags="-pthread -pthreads $ax_pthread_flags"]) - -# The presence of a feature test macro requesting re-entrant function -# definitions is, on some systems, a strong hint that pthreads support is -# correctly enabled - -case $host_os in - darwin* | hpux* | linux* | osf* | solaris*) - ax_pthread_check_macro="_REENTRANT" - ;; - - aix*) - ax_pthread_check_macro="_THREAD_SAFE" - ;; - - *) - ax_pthread_check_macro="--" - ;; -esac -AS_IF([test "x$ax_pthread_check_macro" = "x--"], - [ax_pthread_check_cond=0], - [ax_pthread_check_cond="!defined($ax_pthread_check_macro)"]) - -# Are we compiling with Clang? - -AC_CACHE_CHECK([whether $CC is Clang], - [ax_cv_PTHREAD_CLANG], - [ax_cv_PTHREAD_CLANG=no - # Note that Autoconf sets GCC=yes for Clang as well as GCC - if test "x$GCC" = "xyes"; then - AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG], - [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */ -# if defined(__clang__) && defined(__llvm__) - AX_PTHREAD_CC_IS_CLANG -# endif - ], - [ax_cv_PTHREAD_CLANG=yes]) - fi - ]) -ax_pthread_clang="$ax_cv_PTHREAD_CLANG" - -ax_pthread_clang_warning=no - -# Clang needs special handling, because older versions handle the -pthread -# option in a rather... idiosyncratic way - -if test "x$ax_pthread_clang" = "xyes"; then - - # Clang takes -pthread; it has never supported any other flag - - # (Note 1: This will need to be revisited if a system that Clang - # supports has POSIX threads in a separate library. This tends not - # to be the way of modern systems, but it's conceivable.) - - # (Note 2: On some systems, notably Darwin, -pthread is not needed - # to get POSIX threads support; the API is always present and - # active. We could reasonably leave PTHREAD_CFLAGS empty. But - # -pthread does define _REENTRANT, and while the Darwin headers - # ignore this macro, third-party headers might not.) - - PTHREAD_CFLAGS="-pthread" - PTHREAD_LIBS= - - ax_pthread_ok=yes - - # However, older versions of Clang make a point of warning the user - # that, in an invocation where only linking and no compilation is - # taking place, the -pthread option has no effect ("argument unused - # during compilation"). They expect -pthread to be passed in only - # when source code is being compiled. - # - # Problem is, this is at odds with the way Automake and most other - # C build frameworks function, which is that the same flags used in - # compilation (CFLAGS) are also used in linking. Many systems - # supported by AX_PTHREAD require exactly this for POSIX threads - # support, and in fact it is often not straightforward to specify a - # flag that is used only in the compilation phase and not in - # linking. Such a scenario is extremely rare in practice. - # - # Even though use of the -pthread flag in linking would only print - # a warning, this can be a nuisance for well-run software projects - # that build with -Werror. So if the active version of Clang has - # this misfeature, we search for an option to squash it. - - AC_CACHE_CHECK([whether Clang needs flag to prevent "argument unused" warning when linking with -pthread], - [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG], - [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown - # Create an alternate version of $ac_link that compiles and - # links in two steps (.c -> .o, .o -> exe) instead of one - # (.c -> exe), because the warning occurs only in the second - # step - ax_pthread_save_ac_link="$ac_link" - ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g' - ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"` - ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)" - ax_pthread_save_CFLAGS="$CFLAGS" - for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do - AS_IF([test "x$ax_pthread_try" = "xunknown"], [break]) - CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS" - ac_link="$ax_pthread_save_ac_link" - AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])], - [ac_link="$ax_pthread_2step_ac_link" - AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])], - [break]) - ]) - done - ac_link="$ax_pthread_save_ac_link" - CFLAGS="$ax_pthread_save_CFLAGS" - AS_IF([test "x$ax_pthread_try" = "x"], [ax_pthread_try=no]) - ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try" - ]) - - case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in - no | unknown) ;; - *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;; - esac - -fi # $ax_pthread_clang = yes - -if test "x$ax_pthread_ok" = "xno"; then -for ax_pthread_try_flag in $ax_pthread_flags; do - - case $ax_pthread_try_flag in - none) - AC_MSG_CHECKING([whether pthreads work without any flags]) - ;; - - -mt,pthread) - AC_MSG_CHECKING([whether pthreads work with -mt -lpthread]) - PTHREAD_CFLAGS="-mt" - PTHREAD_LIBS="-lpthread" - ;; - - -*) - AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag]) - PTHREAD_CFLAGS="$ax_pthread_try_flag" - ;; - - pthread-config) - AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no]) - AS_IF([test "x$ax_pthread_config" = "xno"], [continue]) - PTHREAD_CFLAGS="`pthread-config --cflags`" - PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" - ;; - - *) - AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag]) - PTHREAD_LIBS="-l$ax_pthread_try_flag" - ;; - esac - - ax_pthread_save_CFLAGS="$CFLAGS" - ax_pthread_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - - # Check for various functions. We must include pthread.h, - # since some functions may be macros. (On the Sequent, we - # need a special flag -Kthread to make this header compile.) - # We check for pthread_join because it is in -lpthread on IRIX - # while pthread_create is in libc. We check for pthread_attr_init - # due to DEC craziness with -lpthreads. We check for - # pthread_cleanup_push because it is one of the few pthread - # functions on Solaris that doesn't have a non-functional libc stub. - # We try pthread_create on general principles. - - AC_LINK_IFELSE([AC_LANG_PROGRAM([#include -# if $ax_pthread_check_cond -# error "$ax_pthread_check_macro must be defined" -# endif - static void routine(void *a) { a = 0; } - static void *start_routine(void *a) { return a; }], - [pthread_t th; pthread_attr_t attr; - pthread_create(&th, 0, start_routine, 0); - pthread_join(th, 0); - pthread_attr_init(&attr); - pthread_cleanup_push(routine, 0); - pthread_cleanup_pop(0) /* ; */])], - [ax_pthread_ok=yes], - []) - - CFLAGS="$ax_pthread_save_CFLAGS" - LIBS="$ax_pthread_save_LIBS" - - AC_MSG_RESULT([$ax_pthread_ok]) - AS_IF([test "x$ax_pthread_ok" = "xyes"], [break]) - - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" -done -fi - -# Various other checks: -if test "x$ax_pthread_ok" = "xyes"; then - ax_pthread_save_CFLAGS="$CFLAGS" - ax_pthread_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - - # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. - AC_CACHE_CHECK([for joinable pthread attribute], - [ax_cv_PTHREAD_JOINABLE_ATTR], - [ax_cv_PTHREAD_JOINABLE_ATTR=unknown - for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do - AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], - [int attr = $ax_pthread_attr; return attr /* ; */])], - [ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break], - []) - done - ]) - AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \ - test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \ - test "x$ax_pthread_joinable_attr_defined" != "xyes"], - [AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], - [$ax_cv_PTHREAD_JOINABLE_ATTR], - [Define to necessary symbol if this constant - uses a non-standard name on your system.]) - ax_pthread_joinable_attr_defined=yes - ]) - - AC_CACHE_CHECK([whether more special flags are required for pthreads], - [ax_cv_PTHREAD_SPECIAL_FLAGS], - [ax_cv_PTHREAD_SPECIAL_FLAGS=no - case $host_os in - solaris*) - ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS" - ;; - esac - ]) - AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \ - test "x$ax_pthread_special_flags_added" != "xyes"], - [PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS" - ax_pthread_special_flags_added=yes]) - - AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], - [ax_cv_PTHREAD_PRIO_INHERIT], - [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], - [[int i = PTHREAD_PRIO_INHERIT;]])], - [ax_cv_PTHREAD_PRIO_INHERIT=yes], - [ax_cv_PTHREAD_PRIO_INHERIT=no]) - ]) - AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \ - test "x$ax_pthread_prio_inherit_defined" != "xyes"], - [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.]) - ax_pthread_prio_inherit_defined=yes - ]) - - CFLAGS="$ax_pthread_save_CFLAGS" - LIBS="$ax_pthread_save_LIBS" - - # More AIX lossage: compile with *_r variant - if test "x$GCC" != "xyes"; then - case $host_os in - aix*) - AS_CASE(["x/$CC"], - [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6], - [#handle absolute path differently from PATH based program lookup - AS_CASE(["x$CC"], - [x/*], - [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])], - [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])]) - ;; - esac - fi -fi - -test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" - -AC_SUBST([PTHREAD_LIBS]) -AC_SUBST([PTHREAD_CFLAGS]) -AC_SUBST([PTHREAD_CC]) - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test "x$ax_pthread_ok" = "xyes"; then - ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1]) - : -else - ax_pthread_ok=no - $2 -fi -AC_LANG_POP -])dnl AX_PTHREAD - -# gettext.m4 serial 71 (gettext-0.20.2) -dnl Copyright (C) 1995-2014, 2016, 2018-2020 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can be used in projects which are not available under -dnl the GNU General Public License or the GNU Lesser General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Lesser General Public License, and the rest of the GNU -dnl gettext package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2006, 2008-2010. - -dnl Macro to add for using GNU gettext. - -dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). -dnl INTLSYMBOL must be one of 'external', 'use-libtool'. -dnl INTLSYMBOL should be 'external' for packages other than GNU gettext, and -dnl 'use-libtool' for the packages 'gettext-runtime' and 'gettext-tools'. -dnl If INTLSYMBOL is 'use-libtool', then a libtool library -dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, -dnl depending on --{enable,disable}-{shared,static} and on the presence of -dnl AM-DISABLE-SHARED). -dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext -dnl implementations (in libc or libintl) without the ngettext() function -dnl will be ignored. If NEEDSYMBOL is specified and is -dnl 'need-formatstring-macros', then GNU gettext implementations that don't -dnl support the ISO C 99 formatstring macros will be ignored. -dnl INTLDIR is used to find the intl libraries. If empty, -dnl the value '$(top_builddir)/intl/' is used. -dnl -dnl The result of the configuration is one of three cases: -dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled -dnl and used. -dnl Catalog format: GNU --> install in $(datadir) -dnl Catalog extension: .mo after installation, .gmo in source tree -dnl 2) GNU gettext has been found in the system's C library. -dnl Catalog format: GNU --> install in $(datadir) -dnl Catalog extension: .mo after installation, .gmo in source tree -dnl 3) No internationalization, always use English msgid. -dnl Catalog format: none -dnl Catalog extension: none -dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. -dnl The use of .gmo is historical (it was needed to avoid overwriting the -dnl GNU format catalogs when building on a platform with an X/Open gettext), -dnl but we keep it in order not to force irrelevant filename changes on the -dnl maintainers. -dnl -AC_DEFUN([AM_GNU_GETTEXT], -[ - dnl Argument checking. - ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [use-libtool], , - [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT -])])])]) - ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], - [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported. -])]) - ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , - [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT -])])])]) - define([gt_included_intl], - ifelse([$1], [external], [no], [yes])) - gt_NEEDS_INIT - AM_GNU_GETTEXT_NEED([$2]) - - AC_REQUIRE([AM_PO_SUBDIRS])dnl - ifelse(gt_included_intl, yes, [ - AC_REQUIRE([AM_INTL_SUBDIR])dnl - ]) - - dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - - dnl Sometimes libintl requires libiconv, so first search for libiconv. - dnl Ideally we would do this search only after the - dnl if test "$USE_NLS" = "yes"; then - dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then - dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT - dnl the configure script would need to contain the same shell code - dnl again, outside any 'if'. There are two solutions: - dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. - dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. - dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it. - ifelse(gt_included_intl, yes, , [ - AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) - ]) - - dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. - gt_INTL_MACOSX - - dnl Set USE_NLS. - AC_REQUIRE([AM_NLS]) - - ifelse(gt_included_intl, yes, [ - BUILD_INCLUDED_LIBINTL=no - USE_INCLUDED_LIBINTL=no - ]) - LIBINTL= - LTLIBINTL= - POSUB= - - dnl Add a version number to the cache macros. - case " $gt_needs " in - *" need-formatstring-macros "*) gt_api_version=3 ;; - *" need-ngettext "*) gt_api_version=2 ;; - *) gt_api_version=1 ;; - esac - gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" - gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" - - dnl If we use NLS figure out what method - if test "$USE_NLS" = "yes"; then - gt_use_preinstalled_gnugettext=no - ifelse(gt_included_intl, yes, [ - AC_MSG_CHECKING([whether included gettext is requested]) - AC_ARG_WITH([included-gettext], - [ --with-included-gettext use the GNU gettext library included here], - nls_cv_force_use_gnu_gettext=$withval, - nls_cv_force_use_gnu_gettext=no) - AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) - - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - ]) - dnl User does not insist on using GNU NLS library. Figure out what - dnl to use. If GNU gettext is available we use this. Else we have - dnl to fall back to GNU NLS library. - - if test $gt_api_version -ge 3; then - gt_revision_test_code=' -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) -#endif -changequote(,)dnl -typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; -changequote([,])dnl -' - else - gt_revision_test_code= - fi - if test $gt_api_version -ge 2; then - gt_expression_test_code=' + * ngettext ("", "", 0)' - else - gt_expression_test_code= - fi - - AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], - [AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; -#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) -#else -#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 -#endif -$gt_revision_test_code - ]], - [[ -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION - ]])], - [eval "$gt_func_gnugettext_libc=yes"], - [eval "$gt_func_gnugettext_libc=no"])]) - - if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then - dnl Sometimes libintl requires libiconv, so first search for libiconv. - ifelse(gt_included_intl, yes, , [ - AM_ICONV_LINK - ]) - dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL - dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) - dnl because that would add "-liconv" to LIBINTL and LTLIBINTL - dnl even if libiconv doesn't exist. - AC_LIB_LINKFLAGS_BODY([intl]) - AC_CACHE_CHECK([for GNU gettext in libintl], - [$gt_func_gnugettext_libintl], - [gt_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $INCINTL" - gt_save_LIBS="$LIBS" - LIBS="$LIBS $LIBINTL" - dnl Now see whether libintl exists and does not depend on libiconv. - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (const char *); -#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) -#else -#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 -#endif -$gt_revision_test_code - ]], - [[ -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION - ]])], - [eval "$gt_func_gnugettext_libintl=yes"], - [eval "$gt_func_gnugettext_libintl=no"]) - dnl Now see whether libintl exists and depends on libiconv. - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then - LIBS="$LIBS $LIBICONV" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (const char *); -#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) -#else -#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 -#endif -$gt_revision_test_code - ]], - [[ -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION - ]])], - [LIBINTL="$LIBINTL $LIBICONV" - LTLIBINTL="$LTLIBINTL $LTLIBICONV" - eval "$gt_func_gnugettext_libintl=yes" - ]) - fi - CPPFLAGS="$gt_save_CPPFLAGS" - LIBS="$gt_save_LIBS"]) - fi - - dnl If an already present or preinstalled GNU gettext() is found, - dnl use it. But if this macro is used in GNU gettext, and GNU - dnl gettext is already preinstalled in libintl, we update this - dnl libintl. (Cf. the install rule in intl/Makefile.in.) - if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ - || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ - && test "$PACKAGE" != gettext-runtime \ - && test "$PACKAGE" != gettext-tools; }; then - gt_use_preinstalled_gnugettext=yes - else - dnl Reset the values set by searching for libintl. - LIBINTL= - LTLIBINTL= - INCINTL= - fi - - ifelse(gt_included_intl, yes, [ - if test "$gt_use_preinstalled_gnugettext" != "yes"; then - dnl GNU gettext is not found in the C library. - dnl Fall back on included GNU gettext library. - nls_cv_use_gnu_gettext=yes - fi - fi - - if test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions used to generate GNU NLS library. - BUILD_INCLUDED_LIBINTL=yes - USE_INCLUDED_LIBINTL=yes - LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD" - LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LTLIBICONV $LTLIBTHREAD" - LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` - fi - - CATOBJEXT= - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions to use GNU gettext tools. - CATOBJEXT=.gmo - fi - ]) - - if test -n "$INTL_MACOSX_LIBS"; then - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Some extra flags are needed during linking. - LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" - LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" - fi - fi - - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - AC_DEFINE([ENABLE_NLS], [1], - [Define to 1 if translation of program messages to the user's native language - is requested.]) - else - USE_NLS=no - fi - fi - - AC_MSG_CHECKING([whether to use NLS]) - AC_MSG_RESULT([$USE_NLS]) - if test "$USE_NLS" = "yes"; then - AC_MSG_CHECKING([where the gettext function comes from]) - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then - gt_source="external libintl" - else - gt_source="libc" - fi - else - gt_source="included intl directory" - fi - AC_MSG_RESULT([$gt_source]) - fi - - if test "$USE_NLS" = "yes"; then - - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then - AC_MSG_CHECKING([how to link with libintl]) - AC_MSG_RESULT([$LIBINTL]) - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) - fi - - dnl For backward compatibility. Some packages may be using this. - AC_DEFINE([HAVE_GETTEXT], [1], - [Define if the GNU gettext() function is already present or preinstalled.]) - AC_DEFINE([HAVE_DCGETTEXT], [1], - [Define if the GNU dcgettext() function is already present or preinstalled.]) - fi - - dnl We need to process the po/ directory. - POSUB=po - fi - - ifelse(gt_included_intl, yes, [ - dnl In GNU gettext we have to set BUILD_INCLUDED_LIBINTL to 'yes' - dnl because some of the testsuite requires it. - BUILD_INCLUDED_LIBINTL=yes - - dnl Make all variables we use known to autoconf. - AC_SUBST([BUILD_INCLUDED_LIBINTL]) - AC_SUBST([USE_INCLUDED_LIBINTL]) - AC_SUBST([CATOBJEXT]) - ]) - - dnl For backward compatibility. Some Makefiles may be using this. - INTLLIBS="$LIBINTL" - AC_SUBST([INTLLIBS]) - - dnl Make all documented variables known to autoconf. - AC_SUBST([LIBINTL]) - AC_SUBST([LTLIBINTL]) - AC_SUBST([POSUB]) -]) - - -dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. -m4_define([gt_NEEDS_INIT], -[ - m4_divert_text([DEFAULTS], [gt_needs=]) - m4_define([gt_NEEDS_INIT], []) -]) - - -dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) -AC_DEFUN([AM_GNU_GETTEXT_NEED], -[ - m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) -]) - - -dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) -AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) - - -dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version]) -AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], []) - -# host-cpu-c-abi.m4 serial 13 -dnl Copyright (C) 2002-2020 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible and Sam Steingold. - -dnl Sets the HOST_CPU variable to the canonical name of the CPU. -dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its -dnl C language ABI (application binary interface). -dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in -dnl config.h. -dnl -dnl This canonical name can be used to select a particular assembly language -dnl source file that will interoperate with C code on the given host. -dnl -dnl For example: -dnl * 'i386' and 'sparc' are different canonical names, because code for i386 -dnl will not run on SPARC CPUs and vice versa. They have different -dnl instruction sets. -dnl * 'sparc' and 'sparc64' are different canonical names, because code for -dnl 'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code -dnl contains 32-bit instructions, whereas 'sparc64' code contains 64-bit -dnl instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit -dnl mode, but not both. -dnl * 'mips' and 'mipsn32' are different canonical names, because they use -dnl different argument passing and return conventions for C functions, and -dnl although the instruction set of 'mips' is a large subset of the -dnl instruction set of 'mipsn32'. -dnl * 'mipsn32' and 'mips64' are different canonical names, because they use -dnl different sizes for the C types like 'int' and 'void *', and although -dnl the instruction sets of 'mipsn32' and 'mips64' are the same. -dnl * The same canonical name is used for different endiannesses. You can -dnl determine the endianness through preprocessor symbols: -dnl - 'arm': test __ARMEL__. -dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL. -dnl - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN. -dnl * The same name 'i386' is used for CPUs of type i386, i486, i586 -dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because -dnl - Instructions that do not exist on all of these CPUs (cmpxchg, -dnl MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your -dnl assembly language source files use such instructions, you will -dnl need to make the distinction. -dnl - Speed of execution of the common instruction set is reasonable across -dnl the entire family of CPUs. If you have assembly language source files -dnl that are optimized for particular CPU types (like GNU gmp has), you -dnl will need to make the distinction. -dnl See . -AC_DEFUN([gl_HOST_CPU_C_ABI], -[ - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([gl_C_ASM]) - AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi], - [case "$host_cpu" in - -changequote(,)dnl - i[34567]86 ) -changequote([,])dnl - gl_cv_host_cpu_c_abi=i386 - ;; - - x86_64 ) - # On x86_64 systems, the C compiler may be generating code in one of - # these ABIs: - # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. - # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 - # with native Windows (mingw, MSVC). - # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. - # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if (defined __x86_64__ || defined __amd64__ \ - || defined _M_X64 || defined _M_AMD64) - int ok; - #else - error fail - #endif - ]])], - [AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __ILP32__ || defined _ILP32 - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=x86_64-x32], - [gl_cv_host_cpu_c_abi=x86_64])], - [gl_cv_host_cpu_c_abi=i386]) - ;; - -changequote(,)dnl - alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] ) -changequote([,])dnl - gl_cv_host_cpu_c_abi=alpha - ;; - - arm* | aarch64 ) - # Assume arm with EABI. - # On arm64 systems, the C compiler may be generating code in one of - # these ABIs: - # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. - # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. - # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#ifdef __aarch64__ - int ok; - #else - error fail - #endif - ]])], - [AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __ILP32__ || defined _ILP32 - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=arm64-ilp32], - [gl_cv_host_cpu_c_abi=arm64])], - [# Don't distinguish little-endian and big-endian arm, since they - # don't require different machine code for simple operations and - # since the user can distinguish them through the preprocessor - # defines __ARMEL__ vs. __ARMEB__. - # But distinguish arm which passes floating-point arguments and - # return values in integer registers (r0, r1, ...) - this is - # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which - # passes them in float registers (s0, s1, ...) and double registers - # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer - # sets the preprocessor defines __ARM_PCS (for the first case) and - # __ARM_PCS_VFP (for the second case), but older GCC does not. - echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c - # Look for a reference to the register d0 in the .s file. - AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 - if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then - gl_cv_host_cpu_c_abi=armhf - else - gl_cv_host_cpu_c_abi=arm - fi - rm -f conftest* - ]) - ;; - - hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) - # On hppa, the C compiler may be generating 32-bit code or 64-bit - # code. In the latter case, it defines _LP64 and __LP64__. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#ifdef __LP64__ - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=hppa64], - [gl_cv_host_cpu_c_abi=hppa]) - ;; - - ia64* ) - # On ia64 on HP-UX, the C compiler may be generating 64-bit code or - # 32-bit code. In the latter case, it defines _ILP32. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#ifdef _ILP32 - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=ia64-ilp32], - [gl_cv_host_cpu_c_abi=ia64]) - ;; - - mips* ) - # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this - # at 32. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=mips64], - [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but - # may later get defined by ), and _MIPS_SIM == _ABIN32. - # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but - # may later get defined by ), and _MIPS_SIM == _ABIO32. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if (_MIPS_SIM == _ABIN32) - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=mipsn32], - [gl_cv_host_cpu_c_abi=mips])]) - ;; - - powerpc* ) - # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. - # No need to distinguish them here; the caller may distinguish - # them based on the OS. - # On powerpc64 systems, the C compiler may still be generating - # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may - # be generating 64-bit code. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __powerpc64__ || defined _ARCH_PPC64 - int ok; - #else - error fail - #endif - ]])], - [# On powerpc64, there are two ABIs on Linux: The AIX compatible - # one and the ELFv2 one. The latter defines _CALL_ELF=2. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined _CALL_ELF && _CALL_ELF == 2 - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=powerpc64-elfv2], - [gl_cv_host_cpu_c_abi=powerpc64]) - ], - [gl_cv_host_cpu_c_abi=powerpc]) - ;; - - rs6000 ) - gl_cv_host_cpu_c_abi=powerpc - ;; - - riscv32 | riscv64 ) - # There are 2 architectures (with variants): rv32* and rv64*. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if __riscv_xlen == 64 - int ok; - #else - error fail - #endif - ]])], - [cpu=riscv64], - [cpu=riscv32]) - # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. - # Size of 'long' and 'void *': - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __LP64__ - int ok; - #else - error fail - #endif - ]])], - [main_abi=lp64], - [main_abi=ilp32]) - # Float ABIs: - # __riscv_float_abi_double: - # 'float' and 'double' are passed in floating-point registers. - # __riscv_float_abi_single: - # 'float' are passed in floating-point registers. - # __riscv_float_abi_soft: - # No values are passed in floating-point registers. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __riscv_float_abi_double - int ok; - #else - error fail - #endif - ]])], - [float_abi=d], - [AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __riscv_float_abi_single - int ok; - #else - error fail - #endif - ]])], - [float_abi=f], - [float_abi='']) - ]) - gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}" - ;; - - s390* ) - # On s390x, the C compiler may be generating 64-bit (= s390x) code - # or 31-bit (= s390) code. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __LP64__ || defined __s390x__ - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=s390x], - [gl_cv_host_cpu_c_abi=s390]) - ;; - - sparc | sparc64 ) - # UltraSPARCs running Linux have `uname -m` = "sparc64", but the - # C compiler still generates 32-bit code. - AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#if defined __sparcv9 || defined __arch64__ - int ok; - #else - error fail - #endif - ]])], - [gl_cv_host_cpu_c_abi=sparc64], - [gl_cv_host_cpu_c_abi=sparc]) - ;; - - *) - gl_cv_host_cpu_c_abi="$host_cpu" - ;; - esac - ]) - - dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same. - HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'` - HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi" - AC_SUBST([HOST_CPU]) - AC_SUBST([HOST_CPU_C_ABI]) - - # This was - # AC_DEFINE_UNQUOTED([__${HOST_CPU}__]) - # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__]) - # earlier, but KAI C++ 3.2d doesn't like this. - sed -e 's/-/_/g' >> confdefs.h < -#include - ]], - [[iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);]])], - [am_cv_func_iconv=yes]) - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -#include - ]], - [[iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);]])], - [am_cv_lib_iconv=yes] - [am_cv_func_iconv=yes]) - LIBS="$am_save_LIBS" - fi - ]) - if test "$am_cv_func_iconv" = yes; then - AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ - dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, - dnl Solaris 10. - am_save_LIBS="$LIBS" - if test $am_cv_lib_iconv = yes; then - LIBS="$LIBS $LIBICONV" - fi - am_cv_func_iconv_works=no - for ac_iconv_const in '' 'const'; do - AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -#include - -#ifndef ICONV_CONST -# define ICONV_CONST $ac_iconv_const -#endif - ]], - [[int result = 0; - /* Test against AIX 5.1 bug: Failures are not distinguishable from successful - returns. */ - { - iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); - if (cd_utf8_to_88591 != (iconv_t)(-1)) - { - static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ - char buf[10]; - ICONV_CONST char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_utf8_to_88591, - &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - result |= 1; - iconv_close (cd_utf8_to_88591); - } - } - /* Test against Solaris 10 bug: Failures are not distinguishable from - successful returns. */ - { - iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); - if (cd_ascii_to_88591 != (iconv_t)(-1)) - { - static ICONV_CONST char input[] = "\263"; - char buf[10]; - ICONV_CONST char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_ascii_to_88591, - &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - result |= 2; - iconv_close (cd_ascii_to_88591); - } - } - /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ - { - iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); - if (cd_88591_to_utf8 != (iconv_t)(-1)) - { - static ICONV_CONST char input[] = "\304"; - static char buf[2] = { (char)0xDE, (char)0xAD }; - ICONV_CONST char *inptr = input; - size_t inbytesleft = 1; - char *outptr = buf; - size_t outbytesleft = 1; - size_t res = iconv (cd_88591_to_utf8, - &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) - result |= 4; - iconv_close (cd_88591_to_utf8); - } - } -#if 0 /* This bug could be worked around by the caller. */ - /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ - { - iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); - if (cd_88591_to_utf8 != (iconv_t)(-1)) - { - static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; - char buf[50]; - ICONV_CONST char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_88591_to_utf8, - &inptr, &inbytesleft, - &outptr, &outbytesleft); - if ((int)res > 0) - result |= 8; - iconv_close (cd_88591_to_utf8); - } - } -#endif - /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is - provided. */ - { - /* Try standardized names. */ - iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); - /* Try IRIX, OSF/1 names. */ - iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); - /* Try AIX names. */ - iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); - /* Try HP-UX names. */ - iconv_t cd4 = iconv_open ("utf8", "eucJP"); - if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) - && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) - result |= 16; - if (cd1 != (iconv_t)(-1)) - iconv_close (cd1); - if (cd2 != (iconv_t)(-1)) - iconv_close (cd2); - if (cd3 != (iconv_t)(-1)) - iconv_close (cd3); - if (cd4 != (iconv_t)(-1)) - iconv_close (cd4); - } - return result; -]])], - [am_cv_func_iconv_works=yes], , - [case "$host_os" in - aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; - *) am_cv_func_iconv_works="guessing yes" ;; - esac]) - test "$am_cv_func_iconv_works" = no || break - done - LIBS="$am_save_LIBS" - ]) - case "$am_cv_func_iconv_works" in - *no) am_func_iconv=no am_cv_lib_iconv=no ;; - *) am_func_iconv=yes ;; - esac - else - am_func_iconv=no am_cv_lib_iconv=no - fi - if test "$am_func_iconv" = yes; then - AC_DEFINE([HAVE_ICONV], [1], - [Define if you have the iconv() function and it works.]) - fi - if test "$am_cv_lib_iconv" = yes; then - AC_MSG_CHECKING([how to link with libiconv]) - AC_MSG_RESULT([$LIBICONV]) - else - dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV - dnl either. - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - AC_SUBST([LIBICONV]) - AC_SUBST([LTLIBICONV]) -]) - -dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to -dnl avoid warnings like -dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". -dnl This is tricky because of the way 'aclocal' is implemented: -dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. -dnl Otherwise aclocal's initial scan pass would miss the macro definition. -dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. -dnl Otherwise aclocal would emit many "Use of uninitialized value $1" -dnl warnings. -m4_define([gl_iconv_AC_DEFUN], - m4_version_prereq([2.64], - [[AC_DEFUN_ONCE( - [$1], [$2])]], - [m4_ifdef([gl_00GNULIB], - [[AC_DEFUN_ONCE( - [$1], [$2])]], - [[AC_DEFUN( - [$1], [$2])]])])) -gl_iconv_AC_DEFUN([AM_ICONV], -[ - AM_ICONV_LINK - if test "$am_cv_func_iconv" = yes; then - AC_MSG_CHECKING([for iconv declaration]) - AC_CACHE_VAL([am_cv_proto_iconv], [ - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -#include -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -#else -size_t iconv(); -#endif - ]], - [[]])], - [am_cv_proto_iconv_arg1=""], - [am_cv_proto_iconv_arg1="const"]) - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) - am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - AC_MSG_RESULT([ - $am_cv_proto_iconv]) - else - dnl When compiling GNU libiconv on a system that does not have iconv yet, - dnl pick the POSIX compliant declaration without 'const'. - am_cv_proto_iconv_arg1="" - fi - AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], - [Define as const if the declaration of iconv() needs const.]) - dnl Also substitute ICONV_CONST in the gnulib generated . - m4_ifdef([gl_ICONV_H_DEFAULTS], - [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) - if test -n "$am_cv_proto_iconv_arg1"; then - ICONV_CONST="const" - fi - ]) -]) - -# intlmacosx.m4 serial 8 (gettext-0.20.2) -dnl Copyright (C) 2004-2014, 2016, 2019-2020 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can be used in projects which are not available under -dnl the GNU General Public License or the GNU Lesser General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Lesser General Public License, and the rest of the GNU -dnl gettext package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Checks for special options needed on Mac OS X. -dnl Defines INTL_MACOSX_LIBS. -AC_DEFUN([gt_INTL_MACOSX], -[ - dnl Check for API introduced in Mac OS X 10.4. - AC_CACHE_CHECK([for CFPreferencesCopyAppValue], - [gt_cv_func_CFPreferencesCopyAppValue], - [gt_save_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include ]], - [[CFPreferencesCopyAppValue(NULL, NULL)]])], - [gt_cv_func_CFPreferencesCopyAppValue=yes], - [gt_cv_func_CFPreferencesCopyAppValue=no]) - LIBS="$gt_save_LIBS"]) - if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then - AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], - [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) - fi - dnl Don't check for the API introduced in Mac OS X 10.5, CFLocaleCopyCurrent, - dnl because in macOS 10.13.4 it has the following behaviour: - dnl When two or more languages are specified in the - dnl "System Preferences > Language & Region > Preferred Languages" panel, - dnl it returns en_CC where CC is the territory (even when English is not among - dnl the preferred languages!). What we want instead is what - dnl CFLocaleCopyCurrent returned in earlier macOS releases and what - dnl CFPreferencesCopyAppValue still returns, namely ll_CC where ll is the - dnl first among the preferred languages and CC is the territory. - AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages], - [gt_save_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include ]], - [[CFLocaleCopyPreferredLanguages();]])], - [gt_cv_func_CFLocaleCopyPreferredLanguages=yes], - [gt_cv_func_CFLocaleCopyPreferredLanguages=no]) - LIBS="$gt_save_LIBS"]) - if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then - AC_DEFINE([HAVE_CFLOCALECOPYPREFERREDLANGUAGES], [1], - [Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework.]) - fi - INTL_MACOSX_LIBS= - if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ - || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then - INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" - fi - AC_SUBST([INTL_MACOSX_LIBS]) -]) - -# lib-ld.m4 serial 9 -dnl Copyright (C) 1996-2003, 2009-2020 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl Subroutines of libtool.m4, -dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid -dnl collision with libtool.m4. - -dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. -AC_DEFUN([AC_LIB_PROG_LD_GNU], -[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], -[# I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 /dev/null 2>&1 \ - && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - || PATH_SEPARATOR=';' - } -fi - -if test -n "$LD"; then - AC_MSG_CHECKING([for ld]) -elif test "$GCC" = yes; then - AC_MSG_CHECKING([for ld used by $CC]) -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -if test -n "$LD"; then - # Let the user override the test with a path. - : -else - AC_CACHE_VAL([acl_cv_path_LD], - [ - acl_cv_path_LD= # Final result of this test - ac_prog=ld # Program to search in $PATH - if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - acl_output=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $acl_output in - # Accept absolute paths. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname of ld - acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` - while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do - acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` - done - # Got the pathname. No search in PATH is needed. - acl_cv_path_LD="$acl_output" - ac_prog= - ;; - "") - # If it fails, then pretend we aren't using GCC. - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac - fi - if test -n "$ac_prog"; then - # Search for $ac_prog in $PATH. - acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$acl_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$acl_cv_path_LD" -v 2>&1 conftest.sh - . ./conftest.sh - rm -f ./conftest.sh - acl_cv_rpath=done - ]) - wl="$acl_cv_wl" - acl_libext="$acl_cv_libext" - acl_shlibext="$acl_cv_shlibext" - acl_libname_spec="$acl_cv_libname_spec" - acl_library_names_spec="$acl_cv_library_names_spec" - acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - acl_hardcode_direct="$acl_cv_hardcode_direct" - acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" - dnl Determine whether the user wants rpath handling at all. - AC_ARG_ENABLE([rpath], - [ --disable-rpath do not hardcode runtime library paths], - :, enable_rpath=yes) -]) - -dnl AC_LIB_FROMPACKAGE(name, package) -dnl declares that libname comes from the given package. The configure file -dnl will then not have a --with-libname-prefix option but a -dnl --with-package-prefix option. Several libraries can come from the same -dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar -dnl macro call that searches for libname. -AC_DEFUN([AC_LIB_FROMPACKAGE], -[ - pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) - define([acl_frompackage_]NAME, [$2]) - popdef([NAME]) - pushdef([PACK],[$2]) - pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) - define([acl_libsinpackage_]PACKUP, - m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) - popdef([PACKUP]) - popdef([PACK]) -]) - -dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and -dnl the libraries corresponding to explicit and implicit dependencies. -dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. -dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found -dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. -AC_DEFUN([AC_LIB_LINKFLAGS_BODY], -[ - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) - pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) - pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) - pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" - eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" - ]) - AC_ARG_WITH(PACK[-prefix], -[[ --with-]]PACK[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib - --without-]]PACK[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" - eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - additional_libdir2="$withval/$acl_libdirstem2" - additional_libdir3="$withval/$acl_libdirstem3" - fi - fi -]) - if test "X$additional_libdir2" = "X$additional_libdir"; then - additional_libdir2= - fi - if test "X$additional_libdir3" = "X$additional_libdir"; then - additional_libdir3= - fi - dnl Search the library and its dependencies in $additional_libdir and - dnl $LDFLAGS. Using breadth-first-seach. - LIB[]NAME= - LTLIB[]NAME= - INC[]NAME= - LIB[]NAME[]_PREFIX= - dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been - dnl computed. So it has to be reset here. - HAVE_LIB[]NAME= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='$1 $2' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - dnl See if it was already located by an earlier AC_LIB_LINKFLAGS - dnl or AC_LIB_HAVE_LINKFLAGS call. - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" - else - dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined - dnl that this library doesn't exist. So just drop it. - : - fi - else - dnl Search the library lib$name in $additional_libdir and $LDFLAGS - dnl and the already constructed $LIBNAME/$LTLIBNAME. - found_dir= - found_la= - found_so= - found_a= - eval libname=\"$acl_libname_spec\" # typically: libname=lib$name - if test -n "$acl_shlibext"; then - shrext=".$acl_shlibext" # typically: shrext=.so - else - shrext= - fi - if test $use_additional = yes; then - for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do - if test "X$found_dir" = "X"; then - eval dir=\$$additional_libdir_variable - if test -n "$dir"; then - dnl The same code as in the loop below: - dnl First look for a shared library. - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - dnl Then look for a static library. - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - fi - fi - done - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - dnl First look for a shared library. - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - dnl Then look for a static library. - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - dnl Found the library. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - dnl Linking with a shared library. We attempt to hardcode its - dnl directory into the executable's runpath, unless it's the - dnl standard /usr/lib. - if test "$enable_rpath" = no \ - || test "X$found_dir" = "X/usr/$acl_libdirstem" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then - dnl No hardcoding is needed. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - dnl Potentially add DIR to ltrpathdirs. - dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - dnl The hardcoding into $LIBNAME is system dependent. - if test "$acl_hardcode_direct" = yes; then - dnl Using DIR/libNAME.so during linking hardcodes DIR into the - dnl resulting binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - dnl Potentially add DIR to rpathdirs. - dnl The rpathdirs will be appended to $LIBNAME at the end. - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - dnl Rely on "-L$found_dir". - dnl But don't add it if it's already contained in the LDFLAGS - dnl or the already constructed $LIBNAME - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" - fi - if test "$acl_hardcode_minus_L" != no; then - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH - dnl here, because this doesn't fit in flags passed to the - dnl compiler. So give up. No hardcoding. This affects only - dnl very old systems. - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - dnl Linking with a static library. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" - else - dnl We shouldn't come here, but anyway it's good to have a - dnl fallback. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" - fi - fi - dnl Assume the include files are nearby. - additional_includedir= - case "$found_dir" in - */$acl_libdirstem | */$acl_libdirstem/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` - if test "$name" = '$1'; then - LIB[]NAME[]_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - */$acl_libdirstem2 | */$acl_libdirstem2/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` - if test "$name" = '$1'; then - LIB[]NAME[]_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - */$acl_libdirstem3 | */$acl_libdirstem3/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` - if test "$name" = '$1'; then - LIB[]NAME[]_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - dnl Potentially add $additional_includedir to $INCNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's /usr/local/include and we are using GCC on Linux, - dnl 3. if it's already present in $CPPFLAGS or the already - dnl constructed $INCNAME, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INC[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $INCNAME. - INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - dnl Look for dependencies. - if test -n "$found_la"; then - dnl Read the .la file. It defines the variables - dnl dlname, library_names, old_library, dependency_libs, current, - dnl age, revision, installed, dlopen, dlpreopen, libdir. - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - dnl We use only dependency_libs. - for dep in $dependency_libs; do - case "$dep" in - -L*) - dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - dnl Potentially add $dependency_libdir to $LIBNAME and $LTLIBNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's /usr/local/lib and we are using GCC on Linux, - dnl 3. if it's already present in $LDFLAGS or the already - dnl constructed $LIBNAME, - dnl 4. if it doesn't exist as a directory. - if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ - && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ - && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then - haveit= - if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ - || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ - || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$dependency_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$dependency_libdir"; then - dnl Really add $dependency_libdir to $LIBNAME. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$dependency_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$dependency_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$dependency_libdir"; then - dnl Really add $dependency_libdir to $LTLIBNAME. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$dependency_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - dnl Potentially add DIR to rpathdirs. - dnl The rpathdirs will be appended to $LIBNAME at the end. - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $dir" - fi - dnl Potentially add DIR to ltrpathdirs. - dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $dir" - fi - fi - ;; - -l*) - dnl Handle this in the next round. - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - dnl Handle this in the next round. Throw away the .la's - dnl directory; it is already contained in a preceding -L - dnl option. - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - dnl Most likely an immediate library name. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" - ;; - esac - done - fi - else - dnl Didn't find the library; assume it is in the system directories - dnl known to the linker and runtime loader. (All the system - dnl directories known to the linker should also be known to the - dnl runtime loader, otherwise the system is severely misconfigured.) - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$acl_hardcode_libdir_separator"; then - dnl Weird platform: only the last -rpath option counts, the user must - dnl pass all path elements in one option. We can arrange that for a - dnl single library, but not when more than one $LIBNAMEs are used. - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" - done - dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" - else - dnl The -rpath options are cumulative. - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - dnl When using libtool, the option that works for both libraries and - dnl executables is -R. The -R options are cumulative. - for found_dir in $ltrpathdirs; do - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" - done - fi - popdef([PACKLIBS]) - popdef([PACKUP]) - popdef([PACK]) - popdef([NAME]) -]) - -dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, -dnl unless already present in VAR. -dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes -dnl contains two or three consecutive elements that belong together. -AC_DEFUN([AC_LIB_APPENDTOVAR], -[ - for element in [$2]; do - haveit= - for x in $[$1]; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - [$1]="${[$1]}${[$1]:+ }$element" - fi - done -]) - -dnl For those cases where a variable contains several -L and -l options -dnl referring to unknown libraries and directories, this macro determines the -dnl necessary additional linker options for the runtime path. -dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) -dnl sets LDADDVAR to linker options needed together with LIBSVALUE. -dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, -dnl otherwise linking without libtool is assumed. -AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], -[ - AC_REQUIRE([AC_LIB_RPATH]) - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - $1= - if test "$enable_rpath" != no; then - if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then - dnl Use an explicit option to hardcode directories into the resulting - dnl binary. - rpathdirs= - next= - for opt in $2; do - if test -n "$next"; then - dir="$next" - dnl No need to hardcode the standard /usr/lib. - if test "X$dir" != "X/usr/$acl_libdirstem" \ - && test "X$dir" != "X/usr/$acl_libdirstem2" \ - && test "X$dir" != "X/usr/$acl_libdirstem3"; then - rpathdirs="$rpathdirs $dir" - fi - next= - else - case $opt in - -L) next=yes ;; - -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` - dnl No need to hardcode the standard /usr/lib. - if test "X$dir" != "X/usr/$acl_libdirstem" \ - && test "X$dir" != "X/usr/$acl_libdirstem2" \ - && test "X$dir" != "X/usr/$acl_libdirstem3"; then - rpathdirs="$rpathdirs $dir" - fi - next= ;; - *) next= ;; - esac - fi - done - if test "X$rpathdirs" != "X"; then - if test -n ""$3""; then - dnl libtool is used for linking. Use -R options. - for dir in $rpathdirs; do - $1="${$1}${$1:+ }-R$dir" - done - else - dnl The linker is used for linking directly. - if test -n "$acl_hardcode_libdir_separator"; then - dnl Weird platform: only the last -rpath option counts, the user - dnl must pass all path elements in one option. - alldirs= - for dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - $1="$flag" - else - dnl The -rpath options are cumulative. - for dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$dir" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - $1="${$1}${$1:+ }$flag" - done - fi - fi - fi - fi - fi - AC_SUBST([$1]) -]) - -# lib-prefix.m4 serial 17 -dnl Copyright (C) 2001-2005, 2008-2020 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed -dnl to access previously installed libraries. The basic assumption is that -dnl a user will want packages to use other packages he previously installed -dnl with the same --prefix option. -dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate -dnl libraries, but is otherwise very convenient. -AC_DEFUN([AC_LIB_PREFIX], -[ - AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - AC_ARG_WITH([lib-prefix], -[[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib - --without-lib-prefix don't search for libraries in includedir and libdir]], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - fi - fi -]) - if test $use_additional = yes; then - dnl Potentially add $additional_includedir to $CPPFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's already present in $CPPFLAGS, - dnl 3. if it's /usr/local/include and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - for x in $CPPFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $CPPFLAGS. - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" - fi - fi - fi - fi - dnl Potentially add $additional_libdir to $LDFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's already present in $LDFLAGS, - dnl 3. if it's /usr/local/lib and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then - haveit= - for x in $LDFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LDFLAGS. - LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" - fi - fi - fi - fi - fi -]) - -dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, -dnl acl_final_exec_prefix, containing the values to which $prefix and -dnl $exec_prefix will expand at the end of the configure script. -AC_DEFUN([AC_LIB_PREPARE_PREFIX], -[ - dnl Unfortunately, prefix and exec_prefix get only finally determined - dnl at the end of configure. - if test "X$prefix" = "XNONE"; then - acl_final_prefix="$ac_default_prefix" - else - acl_final_prefix="$prefix" - fi - if test "X$exec_prefix" = "XNONE"; then - acl_final_exec_prefix='${prefix}' - else - acl_final_exec_prefix="$exec_prefix" - fi - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" - prefix="$acl_save_prefix" -]) - -dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the -dnl variables prefix and exec_prefix bound to the values they will have -dnl at the end of the configure script. -AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], -[ - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - $1 - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" -]) - -dnl AC_LIB_PREPARE_MULTILIB creates -dnl - a function acl_is_expected_elfclass, that tests whether standard input -dn; has a 32-bit or 64-bit ELF header, depending on the host CPU ABI, -dnl - 3 variables acl_libdirstem, acl_libdirstem2, acl_libdirstem3, containing -dnl the basename of the libdir to try in turn, either "lib" or "lib64" or -dnl "lib/64" or "lib32" or "lib/sparcv9" or "lib/amd64" or similar. -AC_DEFUN([AC_LIB_PREPARE_MULTILIB], -[ - dnl There is no formal standard regarding lib, lib32, and lib64. - dnl On most glibc systems, the current practice is that on a system supporting - dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under - dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. However, on - dnl Arch Linux based distributions, it's the opposite: 32-bit libraries go - dnl under $prefix/lib32 and 64-bit libraries go under $prefix/lib. - dnl We determine the compiler's default mode by looking at the compiler's - dnl library search path. If at least one of its elements ends in /lib64 or - dnl points to a directory whose absolute pathname ends in /lib64, we use that - dnl for 64-bit ABIs. Similarly for 32-bit ABIs. Otherwise we use the default, - dnl namely "lib". - dnl On Solaris systems, the current practice is that on a system supporting - dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under - dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or - dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT]) - - AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf], - [AC_EGREP_CPP([Extensible Linking Format], - [#ifdef __ELF__ - Extensible Linking Format - #endif - ], - [gl_cv_elf=yes], - [gl_cv_elf=no]) - ]) - if test $gl_cv_elf; then - # Extract the ELF class of a file (5th byte) in decimal. - # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header - if od -A x < /dev/null >/dev/null 2>/dev/null; then - # Use POSIX od. - func_elfclass () - { - od -A n -t d1 -j 4 -N 1 - } - else - # Use BSD hexdump. - func_elfclass () - { - dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' - echo - } - fi -changequote(,)dnl - case $HOST_CPU_C_ABI_32BIT in - yes) - # 32-bit ABI. - acl_is_expected_elfclass () - { - test "`func_elfclass | sed -e 's/[ ]//g'`" = 1 - } - ;; - no) - # 64-bit ABI. - acl_is_expected_elfclass () - { - test "`func_elfclass | sed -e 's/[ ]//g'`" = 2 - } - ;; - *) - # Unknown. - acl_is_expected_elfclass () - { - : - } - ;; - esac -changequote([,])dnl - else - acl_is_expected_elfclass () - { - : - } - fi - - dnl Allow the user to override the result by setting acl_cv_libdirstems. - AC_CACHE_CHECK([for the common suffixes of directories in the library search path], - [acl_cv_libdirstems], - [dnl Try 'lib' first, because that's the default for libdir in GNU, see - dnl . - acl_libdirstem=lib - acl_libdirstem2= - acl_libdirstem3= - case "$host_os" in - solaris*) - dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment - dnl . - dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." - dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the - dnl symlink is missing, so we set acl_libdirstem2 too. - if test $HOST_CPU_C_ABI_32BIT = no; then - acl_libdirstem2=lib/64 - case "$host_cpu" in - sparc*) acl_libdirstem3=lib/sparcv9 ;; - i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; - esac - fi - ;; - *) - dnl If $CC generates code for a 32-bit ABI, the libraries are - dnl surely under $prefix/lib or $prefix/lib32, not $prefix/lib64. - dnl Similarly, if $CC generates code for a 64-bit ABI, the libraries - dnl are surely under $prefix/lib or $prefix/lib64, not $prefix/lib32. - dnl Find the compiler's search path. However, non-system compilers - dnl sometimes have odd library search paths. But we can't simply invoke - dnl '/usr/bin/gcc -print-search-dirs' because that would not take into - dnl account the -m32/-m31 or -m64 options from the $CC or $CFLAGS. - searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ - | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test $HOST_CPU_C_ABI_32BIT != no; then - # 32-bit or unknown ABI. - if test -d /usr/lib32; then - acl_libdirstem2=lib32 - fi - fi - if test $HOST_CPU_C_ABI_32BIT != yes; then - # 64-bit or unknown ABI. - if test -d /usr/lib64; then - acl_libdirstem3=lib64 - fi - fi - if test -n "$searchpath"; then - acl_save_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; - */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; - */../ | */.. ) - # Better ignore directories of this form. They are misleading. - ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib32 ) acl_libdirstem2=lib32 ;; - */lib64 ) acl_libdirstem3=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_save_IFS" - if test $HOST_CPU_C_ABI_32BIT = yes; then - # 32-bit ABI. - acl_libdirstem3= - fi - if test $HOST_CPU_C_ABI_32BIT = no; then - # 64-bit ABI. - acl_libdirstem2= - fi - fi - ;; - esac - test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" - test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" - acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" - ]) - dnl Decompose acl_cv_libdirstems into acl_libdirstem, acl_libdirstem2, and - dnl acl_libdirstem3. -changequote(,)dnl - acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` - acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` - acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` -changequote([,])dnl -]) - -# nls.m4 serial 6 (gettext-0.20.2) -dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019-2020 Free -dnl Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can be used in projects which are not available under -dnl the GNU General Public License or the GNU Lesser General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Lesser General Public License, and the rest of the GNU -dnl gettext package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2003. - -AC_PREREQ([2.50]) - -AC_DEFUN([AM_NLS], -[ - AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - AC_ARG_ENABLE([nls], - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT([$USE_NLS]) - AC_SUBST([USE_NLS]) -]) - -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 12 (pkg-config-0.29.2) - -dnl Copyright © 2004 Scott James Remnant . -dnl Copyright © 2012-2015 Dan Nicholson -dnl -dnl This program is free software; you can redistribute it and/or modify -dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2 of the License, or -dnl (at your option) any later version. -dnl -dnl This program is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -dnl General Public License for more details. -dnl -dnl You should have received a copy of the GNU General Public License -dnl along with this program; if not, write to the Free Software -dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -dnl 02111-1307, USA. -dnl -dnl As a special exception to the GNU General Public License, if you -dnl distribute this file as part of a program that contains a -dnl configuration script generated by Autoconf, you may include it under -dnl the same distribution terms that you use for the rest of that -dnl program. - -dnl PKG_PREREQ(MIN-VERSION) -dnl ----------------------- -dnl Since: 0.29 -dnl -dnl Verify that the version of the pkg-config macros are at least -dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's -dnl installed version of pkg-config, this checks the developer's version -dnl of pkg.m4 when generating configure. -dnl -dnl To ensure that this macro is defined, also add: -dnl m4_ifndef([PKG_PREREQ], -dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) -dnl -dnl See the "Since" comment for each macro you use to see what version -dnl of the macros you require. -m4_defun([PKG_PREREQ], -[m4_define([PKG_MACROS_VERSION], [0.29.2]) -m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, - [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) -])dnl PKG_PREREQ - -dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) -dnl ---------------------------------- -dnl Since: 0.16 -dnl -dnl Search for the pkg-config tool and set the PKG_CONFIG variable to -dnl first found in the path. Checks that the version of pkg-config found -dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is -dnl used since that's the first version where most current features of -dnl pkg-config existed. -AC_DEFUN([PKG_PROG_PKG_CONFIG], -[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) -m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) -AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) -AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi -fi[]dnl -])dnl PKG_PROG_PKG_CONFIG - -dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -dnl ------------------------------------------------------------------- -dnl Since: 0.18 -dnl -dnl Check to see whether a particular set of modules exists. Similar to -dnl PKG_CHECK_MODULES(), but does not set variables or print errors. -dnl -dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -dnl only at the first occurence in configure.ac, so if the first place -dnl it's called might be skipped (such as if it is within an "if", you -dnl have to call PKG_CHECK_EXISTS manually -AC_DEFUN([PKG_CHECK_EXISTS], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_default([$2], [:]) -m4_ifvaln([$3], [else - $3])dnl -fi]) - -dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -dnl --------------------------------------------- -dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting -dnl pkg_failed based on the result. -m4_define([_PKG_CONFIG], -[if test -n "$$1"; then - pkg_cv_[]$1="$$1" - elif test -n "$PKG_CONFIG"; then - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes ], - [pkg_failed=yes]) - else - pkg_failed=untried -fi[]dnl -])dnl _PKG_CONFIG - -dnl _PKG_SHORT_ERRORS_SUPPORTED -dnl --------------------------- -dnl Internal check to see if pkg-config supports short errors. -AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -])dnl _PKG_SHORT_ERRORS_SUPPORTED - - -dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -dnl [ACTION-IF-NOT-FOUND]) -dnl -------------------------------------------------------------- -dnl Since: 0.4.0 -dnl -dnl Note that if there is a possibility the first call to -dnl PKG_CHECK_MODULES might not happen, you should be sure to include an -dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -AC_DEFUN([PKG_CHECK_MODULES], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl - -pkg_failed=no -AC_MSG_CHECKING([for $2]) - -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) - -m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -and $1[]_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details.]) - -if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - - m4_default([$4], [AC_MSG_ERROR( -[Package requirements ($2) were not met: - -$$1_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -_PKG_TEXT])[]dnl - ]) -elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) - m4_default([$4], [AC_MSG_FAILURE( -[The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -_PKG_TEXT - -To get pkg-config, see .])[]dnl - ]) -else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - $3 -fi[]dnl -])dnl PKG_CHECK_MODULES - - -dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -dnl [ACTION-IF-NOT-FOUND]) -dnl --------------------------------------------------------------------- -dnl Since: 0.29 -dnl -dnl Checks for existence of MODULES and gathers its build flags with -dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags -dnl and VARIABLE-PREFIX_LIBS from --libs. -dnl -dnl Note that if there is a possibility the first call to -dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to -dnl include an explicit call to PKG_PROG_PKG_CONFIG in your -dnl configure.ac. -AC_DEFUN([PKG_CHECK_MODULES_STATIC], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -_save_PKG_CONFIG=$PKG_CONFIG -PKG_CONFIG="$PKG_CONFIG --static" -PKG_CHECK_MODULES($@) -PKG_CONFIG=$_save_PKG_CONFIG[]dnl -])dnl PKG_CHECK_MODULES_STATIC - - -dnl PKG_INSTALLDIR([DIRECTORY]) -dnl ------------------------- -dnl Since: 0.27 -dnl -dnl Substitutes the variable pkgconfigdir as the location where a module -dnl should install pkg-config .pc files. By default the directory is -dnl $libdir/pkgconfig, but the default can be changed by passing -dnl DIRECTORY. The user can override through the --with-pkgconfigdir -dnl parameter. -AC_DEFUN([PKG_INSTALLDIR], -[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) -m4_pushdef([pkg_description], - [pkg-config installation directory @<:@]pkg_default[@:>@]) -AC_ARG_WITH([pkgconfigdir], - [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, - [with_pkgconfigdir=]pkg_default) -AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) -m4_popdef([pkg_default]) -m4_popdef([pkg_description]) -])dnl PKG_INSTALLDIR - - -dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) -dnl -------------------------------- -dnl Since: 0.27 -dnl -dnl Substitutes the variable noarch_pkgconfigdir as the location where a -dnl module should install arch-independent pkg-config .pc files. By -dnl default the directory is $datadir/pkgconfig, but the default can be -dnl changed by passing DIRECTORY. The user can override through the -dnl --with-noarch-pkgconfigdir parameter. -AC_DEFUN([PKG_NOARCH_INSTALLDIR], -[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) -m4_pushdef([pkg_description], - [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) -AC_ARG_WITH([noarch-pkgconfigdir], - [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, - [with_noarch_pkgconfigdir=]pkg_default) -AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) -m4_popdef([pkg_default]) -m4_popdef([pkg_description]) -])dnl PKG_NOARCH_INSTALLDIR - - -dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, -dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -dnl ------------------------------------------- -dnl Since: 0.28 -dnl -dnl Retrieves the value of the pkg-config variable for the given module. -AC_DEFUN([PKG_CHECK_VAR], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl - -_PKG_CONFIG([$1], [variable="][$3]["], [$2]) -AS_VAR_COPY([$1], [pkg_cv_][$1]) - -AS_VAR_IF([$1], [""], [$5], [$4])dnl -])dnl PKG_CHECK_VAR - -# po.m4 serial 31 (gettext-0.20.2) -dnl Copyright (C) 1995-2014, 2016, 2018-2020 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can be used in projects which are not available under -dnl the GNU General Public License or the GNU Lesser General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Lesser General Public License, and the rest of the GNU -dnl gettext package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2003. - -AC_PREREQ([2.60]) - -dnl Checks for all prerequisites of the po subdirectory. -AC_DEFUN([AM_PO_SUBDIRS], -[ - AC_REQUIRE([AC_PROG_MAKE_SET])dnl - AC_REQUIRE([AC_PROG_INSTALL])dnl - AC_REQUIRE([AC_PROG_MKDIR_P])dnl - AC_REQUIRE([AC_PROG_SED])dnl - AC_REQUIRE([AM_NLS])dnl - - dnl Release version of the gettext macros. This is used to ensure that - dnl the gettext macros and po/Makefile.in.in are in sync. - AC_SUBST([GETTEXT_MACRO_VERSION], [0.20]) - - dnl Perform the following tests also if --disable-nls has been given, - dnl because they are needed for "make dist" to work. - - dnl Search for GNU msgfmt in the PATH. - dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. - dnl The second test excludes FreeBSD msgfmt. - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], - :) - AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) - - dnl Test whether it is GNU msgfmt >= 0.15. -changequote(,)dnl - case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; - *) GMSGFMT_015=$GMSGFMT ;; - esac -changequote([,])dnl - AC_SUBST([GMSGFMT_015]) - - dnl Search for GNU xgettext 0.12 or newer in the PATH. - dnl The first test excludes Solaris xgettext and early GNU xgettext versions. - dnl The second test excludes FreeBSD xgettext. - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], - :) - dnl Remove leftover from FreeBSD xgettext call. - rm -f messages.po - - dnl Test whether it is GNU xgettext >= 0.15. -changequote(,)dnl - case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; - *) XGETTEXT_015=$XGETTEXT ;; - esac -changequote([,])dnl - AC_SUBST([XGETTEXT_015]) - - dnl Search for GNU msgmerge 0.11 or newer in the PATH. - AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, - [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) - - dnl Test whether it is GNU msgmerge >= 0.20. - if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then - MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt' - else - dnl Test whether it is GNU msgmerge >= 0.12. - if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then - MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet' - else - dnl With these old versions, $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) is - dnl slow. But this is not a big problem, as such old gettext versions are - dnl hardly in use any more. - MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet' - fi - fi - AC_SUBST([MSGMERGE_FOR_MSGFMT_OPTION]) - - dnl Support for AM_XGETTEXT_OPTION. - test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= - AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) - - AC_CONFIG_COMMANDS([po-directories], [[ - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - # Treat a directory as a PO directory if and only if it has a - # POTFILES.in file. This allows packages to have multiple PO - # directories under different names or in different locations. - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - gt_tab=`printf '\t'` - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - POMAKEFILEDEPS="POTFILES.in" - # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$OBSOLETE_ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" - fi - ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` - POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" - else - # The set of available languages was given in configure.in. - ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS - fi - # Compute POFILES - # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) - # Compute UPDATEPOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) - # Compute DUMMYPOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) - # Compute GMOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - UPDATEPOFILES= - DUMMYPOFILES= - GMOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done]], - [# Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. - OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS" - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - ]) -]) - -dnl Postprocesses a Makefile in a directory containing PO files. -AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], -[ - # When this code is run, in config.status, two variables have already been - # set: - # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, - # - LINGUAS is the value of the environment variable LINGUAS at configure - # time. - -changequote(,)dnl - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - # Find a way to echo strings without interpreting backslash. - if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then - gt_echo='echo' - else - if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then - gt_echo='printf %s\n' - else - echo_func () { - cat < "$ac_file.tmp" - tab=`printf '\t'` - if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then - # Add dependencies that cannot be formulated as a simple suffix rule. - for lang in $ALL_LINGUAS; do - frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` - cat >> "$ac_file.tmp" < /dev/null; then - # Add dependencies that cannot be formulated as a simple suffix rule. - for lang in $ALL_LINGUAS; do - frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` - cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1996. - -AC_PREREQ([2.50]) - -# Search path for a program which passes the given test. - -dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, -dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) -AC_DEFUN([AM_PATH_PROG_WITH_TEST], -[ -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which - # contains only /bin. Note that ksh looks also at the FPATH variable, - # so we have to set that as well for the test. - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - || PATH_SEPARATOR=';' - } -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "$2", so it can be a program name with args. -set dummy $2; ac_word=[$]2 -AC_MSG_CHECKING([for $ac_word]) -AC_CACHE_VAL([ac_cv_path_$1], -[case "[$]$1" in - [[\\/]]* | ?:[[\\/]]*) - ac_cv_path_$1="[$]$1" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in ifelse([$5], , $PATH, [$5]); do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD - if [$3]; then - ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" -dnl If no 4th arg is given, leave the cache variable unset, -dnl so AC_PATH_PROGS will keep looking. -ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" -])dnl - ;; -esac])dnl -$1="$ac_cv_path_$1" -if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then - AC_MSG_RESULT([$][$1]) -else - AC_MSG_RESULT([no]) -fi -AC_SUBST([$1])dnl -]) - -m4_include([acinclude.m4]) diff --git a/config/config.guess b/config/config.guess deleted file mode 100755 index e81d3ae7..00000000 --- a/config/config.guess +++ /dev/null @@ -1,1748 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright 1992-2021 Free Software Foundation, Inc. - -# shellcheck disable=SC2006,SC2268 # see below for rationale - -timestamp='2021-06-03' - -# 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. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . -# -# 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. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). -# -# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. -# -# You can get the latest version of this script from: -# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess -# -# Please send patches to . - - -# The "shellcheck disable" line above the timestamp inhibits complaints -# about features and limitations of the classic Bourne shell that were -# superseded or lifted in POSIX. However, this script identifies a wide -# variety of pre-POSIX systems that do not have POSIX shells at all, and -# even some reasonably current systems (Solaris 10 as case-in-point) still -# have a pre-POSIX /bin/sh. - - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Options: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright 1992-2021 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -# Just in case it came from the environment. -GUESS= - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -tmp= -# shellcheck disable=SC2172 -trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 - -set_cc_for_build() { - # prevent multiple calls if $tmp is already set - test "$tmp" && return 0 - : "${TMPDIR=/tmp}" - # shellcheck disable=SC2039,SC3028 - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } - dummy=$tmp/dummy - case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in - ,,) echo "int x;" > "$dummy.c" - for driver in cc gcc c89 c99 ; do - if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then - CC_FOR_BUILD=$driver - break - fi - done - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; - esac -} - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if test -f /.attbin/uname ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -case $UNAME_SYSTEM in -Linux|GNU|GNU/*) - LIBC=unknown - - set_cc_for_build - cat <<-EOF > "$dummy.c" - #include - #if defined(__UCLIBC__) - LIBC=uclibc - #elif defined(__dietlibc__) - LIBC=dietlibc - #elif defined(__GLIBC__) - LIBC=gnu - #else - #include - /* First heuristic to detect musl libc. */ - #ifdef __DEFINED_va_list - LIBC=musl - #endif - #endif - EOF - cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` - eval "$cc_set_libc" - - # Second heuristic to detect musl libc. - if [ "$LIBC" = unknown ] && - command -v ldd >/dev/null && - ldd --version 2>&1 | grep -q ^musl; then - LIBC=musl - fi - - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - if [ "$LIBC" = unknown ]; then - LIBC=gnu - fi - ;; -esac - -# Note: order is significant - the case branches are not exclusive. - -case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ - /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ - echo unknown)` - case $UNAME_MACHINE_ARCH in - aarch64eb) machine=aarch64_be-unknown ;; - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - earmv*) - arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` - machine=${arch}${endian}-unknown - ;; - *) machine=$UNAME_MACHINE_ARCH-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently (or will in the future) and ABI. - case $UNAME_MACHINE_ARCH in - earm*) - os=netbsdelf - ;; - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # Determine ABI tags. - case $UNAME_MACHINE_ARCH in - earm*) - expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case $UNAME_VERSION in - Debian*) - release='-gnu' - ;; - *) - release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - GUESS=$machine-${os}${release}${abi-} - ;; - *:Bitrig:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE - ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE - ;; - *:SecBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` - GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE - ;; - *:LibertyBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE - ;; - *:MidnightBSD:*:*) - GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE - ;; - *:ekkoBSD:*:*) - GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE - ;; - *:SolidBSD:*:*) - GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE - ;; - *:OS108:*:*) - GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE - ;; - macppc:MirBSD:*:*) - GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE - ;; - *:MirBSD:*:*) - GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE - ;; - *:Sortix:*:*) - GUESS=$UNAME_MACHINE-unknown-sortix - ;; - *:Twizzler:*:*) - GUESS=$UNAME_MACHINE-unknown-twizzler - ;; - *:Redox:*:*) - GUESS=$UNAME_MACHINE-unknown-redox - ;; - mips:OSF1:*.*) - GUESS=mips-dec-osf1 - ;; - alpha:OSF1:*:*) - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - trap '' 0 - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case $ALPHA_CPU_TYPE in - "EV4 (21064)") - UNAME_MACHINE=alpha ;; - "EV4.5 (21064)") - UNAME_MACHINE=alpha ;; - "LCA4 (21066/21068)") - UNAME_MACHINE=alpha ;; - "EV5 (21164)") - UNAME_MACHINE=alphaev5 ;; - "EV5.6 (21164A)") - UNAME_MACHINE=alphaev56 ;; - "EV5.6 (21164PC)") - UNAME_MACHINE=alphapca56 ;; - "EV5.7 (21164PC)") - UNAME_MACHINE=alphapca57 ;; - "EV6 (21264)") - UNAME_MACHINE=alphaev6 ;; - "EV6.7 (21264A)") - UNAME_MACHINE=alphaev67 ;; - "EV6.8CB (21264C)") - UNAME_MACHINE=alphaev68 ;; - "EV6.8AL (21264B)") - UNAME_MACHINE=alphaev68 ;; - "EV6.8CX (21264D)") - UNAME_MACHINE=alphaev68 ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE=alphaev69 ;; - "EV7 (21364)") - UNAME_MACHINE=alphaev7 ;; - "EV7.9 (21364A)") - UNAME_MACHINE=alphaev79 ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` - GUESS=$UNAME_MACHINE-dec-osf$OSF_REL - ;; - Amiga*:UNIX_System_V:4.0:*) - GUESS=m68k-unknown-sysv4 - ;; - *:[Aa]miga[Oo][Ss]:*:*) - GUESS=$UNAME_MACHINE-unknown-amigaos - ;; - *:[Mm]orph[Oo][Ss]:*:*) - GUESS=$UNAME_MACHINE-unknown-morphos - ;; - *:OS/390:*:*) - GUESS=i370-ibm-openedition - ;; - *:z/VM:*:*) - GUESS=s390-ibm-zvmoe - ;; - *:OS400:*:*) - GUESS=powerpc-ibm-os400 - ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - GUESS=arm-acorn-riscix$UNAME_RELEASE - ;; - arm*:riscos:*:*|arm*:RISCOS:*:*) - GUESS=arm-unknown-riscos - ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - GUESS=hppa1.1-hitachi-hiuxmpp - ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - case `(/bin/universe) 2>/dev/null` in - att) GUESS=pyramid-pyramid-sysv3 ;; - *) GUESS=pyramid-pyramid-bsd ;; - esac - ;; - NILE*:*:*:dcosx) - GUESS=pyramid-pyramid-svr4 - ;; - DRS?6000:unix:4.0:6*) - GUESS=sparc-icl-nx6 - ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) GUESS=sparc-icl-nx7 ;; - esac - ;; - s390x:SunOS:*:*) - SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` - GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL - ;; - sun4H:SunOS:5.*:*) - SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` - GUESS=sparc-hal-solaris2$SUN_REL - ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` - GUESS=sparc-sun-solaris2$SUN_REL - ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - GUESS=i386-pc-auroraux$UNAME_RELEASE - ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - 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 test "$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 - SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` - GUESS=$SUN_ARCH-pc-solaris2$SUN_REL - ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` - GUESS=sparc-sun-solaris3$SUN_REL - ;; - sun4*:SunOS:*:*) - case `/usr/bin/arch -k` in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` - GUESS=sparc-sun-sunos$SUN_REL - ;; - sun3*:SunOS:*:*) - GUESS=m68k-sun-sunos$UNAME_RELEASE - ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 - case `/bin/arch` in - sun3) - GUESS=m68k-sun-sunos$UNAME_RELEASE - ;; - sun4) - GUESS=sparc-sun-sunos$UNAME_RELEASE - ;; - esac - ;; - aushp:SunOS:*:*) - GUESS=sparc-auspex-sunos$UNAME_RELEASE - ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - GUESS=m68k-atari-mint$UNAME_RELEASE - ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - GUESS=m68k-atari-mint$UNAME_RELEASE - ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - GUESS=m68k-atari-mint$UNAME_RELEASE - ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - GUESS=m68k-milan-mint$UNAME_RELEASE - ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - GUESS=m68k-hades-mint$UNAME_RELEASE - ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - GUESS=m68k-unknown-mint$UNAME_RELEASE - ;; - m68k:machten:*:*) - GUESS=m68k-apple-machten$UNAME_RELEASE - ;; - powerpc:machten:*:*) - GUESS=powerpc-apple-machten$UNAME_RELEASE - ;; - RISC*:Mach:*:*) - GUESS=mips-dec-mach_bsd4.3 - ;; - RISC*:ULTRIX:*:*) - GUESS=mips-dec-ultrix$UNAME_RELEASE - ;; - VAX*:ULTRIX*:*:*) - GUESS=vax-dec-ultrix$UNAME_RELEASE - ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - GUESS=clipper-intergraph-clix$UNAME_RELEASE - ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - set_cc_for_build - sed 's/^ //' << EOF > "$dummy.c" -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o "$dummy" "$dummy.c" && - dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`"$dummy" "$dummyarg"` && - { echo "$SYSTEM_NAME"; exit; } - GUESS=mips-mips-riscos$UNAME_RELEASE - ;; - Motorola:PowerMAX_OS:*:*) - GUESS=powerpc-motorola-powermax - ;; - Motorola:*:4.3:PL8-*) - GUESS=powerpc-harris-powermax - ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - GUESS=powerpc-harris-powermax - ;; - Night_Hawk:Power_UNIX:*:*) - GUESS=powerpc-harris-powerunix - ;; - m88k:CX/UX:7*:*) - GUESS=m88k-harris-cxux7 - ;; - m88k:*:4*:R4*) - GUESS=m88k-motorola-sysv4 - ;; - m88k:*:3*:R3*) - GUESS=m88k-motorola-sysv3 - ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 - then - if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ - test "$TARGET_BINARY_INTERFACE"x = x - then - GUESS=m88k-dg-dgux$UNAME_RELEASE - else - GUESS=m88k-dg-dguxbcs$UNAME_RELEASE - fi - else - GUESS=i586-dg-dgux$UNAME_RELEASE - fi - ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - GUESS=m88k-dolphin-sysv3 - ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - GUESS=m88k-motorola-sysv3 - ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - GUESS=m88k-tektronix-sysv3 - ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - GUESS=m68k-tektronix-bsd - ;; - *:IRIX*:*:*) - IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` - GUESS=mips-sgi-irix$IRIX_REL - ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id - ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - GUESS=i386-ibm-aix - ;; - ia64:AIX:*:*) - if test -x /usr/bin/oslevel ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=$UNAME_VERSION.$UNAME_RELEASE - fi - GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV - ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - set_cc_for_build - sed 's/^ //' << EOF > "$dummy.c" - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` - then - GUESS=$SYSTEM_NAME - else - GUESS=rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - GUESS=rs6000-ibm-aix3.2.4 - else - GUESS=rs6000-ibm-aix3.2 - fi - ;; - *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if test -x /usr/bin/lslpp ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ - awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` - else - IBM_REV=$UNAME_VERSION.$UNAME_RELEASE - fi - GUESS=$IBM_ARCH-ibm-aix$IBM_REV - ;; - *:AIX:*:*) - GUESS=rs6000-ibm-aix - ;; - ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) - GUESS=romp-ibm-bsd4.4 - ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to - ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - GUESS=rs6000-bull-bosx - ;; - DPX/2?00:B.O.S.:*:*) - GUESS=m68k-bull-sysv3 - ;; - 9000/[34]??:4.3bsd:1.*:*) - GUESS=m68k-hp-bsd - ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - GUESS=m68k-hp-bsd4.4 - ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` - case $UNAME_MACHINE in - 9000/31?) HP_ARCH=m68000 ;; - 9000/[34]??) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if test -x /usr/bin/getconf; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case $sc_cpu_version in - 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 - 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case $sc_kernel_bits in - 32) HP_ARCH=hppa2.0n ;; - 64) HP_ARCH=hppa2.0w ;; - '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 - esac ;; - esac - fi - if test "$HP_ARCH" = ""; then - set_cc_for_build - sed 's/^ //' << EOF > "$dummy.c" - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if test "$HP_ARCH" = hppa2.0w - then - set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ - then - HP_ARCH=hppa2.0w - else - HP_ARCH=hppa64 - fi - fi - GUESS=$HP_ARCH-hp-hpux$HPUX_REV - ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` - GUESS=ia64-hp-hpux$HPUX_REV - ;; - 3050*:HI-UX:*:*) - set_cc_for_build - sed 's/^ //' << EOF > "$dummy.c" - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && - { echo "$SYSTEM_NAME"; exit; } - GUESS=unknown-hitachi-hiuxwe2 - ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) - GUESS=hppa1.1-hp-bsd - ;; - 9000/8??:4.3bsd:*:*) - GUESS=hppa1.0-hp-bsd - ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - GUESS=hppa1.0-hp-mpeix - ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) - GUESS=hppa1.1-hp-osf - ;; - hp8??:OSF1:*:*) - GUESS=hppa1.0-hp-osf - ;; - i*86:OSF1:*:*) - if test -x /usr/sbin/sysversion ; then - GUESS=$UNAME_MACHINE-unknown-osf1mk - else - GUESS=$UNAME_MACHINE-unknown-osf1 - fi - ;; - parisc*:Lites*:*:*) - GUESS=hppa1.1-hp-lites - ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - GUESS=c1-convex-bsd - ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - GUESS=c34-convex-bsd - ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - GUESS=c38-convex-bsd - ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - GUESS=c4-convex-bsd - ;; - CRAY*Y-MP:*:*:*) - CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` - GUESS=ymp-cray-unicos$CRAY_REL - ;; - CRAY*[A-Z]90:*:*:*) - echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` - GUESS=t90-cray-unicos$CRAY_REL - ;; - CRAY*T3E:*:*:*) - CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` - GUESS=alphaev5-cray-unicosmk$CRAY_REL - ;; - CRAY*SV1:*:*:*) - CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` - GUESS=sv1-cray-unicos$CRAY_REL - ;; - *:UNICOS/mp:*:*) - CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` - GUESS=craynv-cray-unicosmp$CRAY_REL - ;; - 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/ /_/'` - GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} - ;; - 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/ /_/'` - GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} - ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE - ;; - sparc*:BSD/OS:*:*) - GUESS=sparc-unknown-bsdi$UNAME_RELEASE - ;; - *:BSD/OS:*:*) - GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE - ;; - arm:FreeBSD:*:*) - UNAME_PROCESSOR=`uname -p` - set_cc_for_build - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then - FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` - GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi - else - FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` - GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf - fi - ;; - *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` - case $UNAME_PROCESSOR in - amd64) - UNAME_PROCESSOR=x86_64 ;; - i386) - UNAME_PROCESSOR=i586 ;; - esac - FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` - GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL - ;; - i*:CYGWIN*:*) - GUESS=$UNAME_MACHINE-pc-cygwin - ;; - *:MINGW64*:*) - GUESS=$UNAME_MACHINE-pc-mingw64 - ;; - *:MINGW*:*) - GUESS=$UNAME_MACHINE-pc-mingw32 - ;; - *:MSYS*:*) - GUESS=$UNAME_MACHINE-pc-msys - ;; - i*:PW*:*) - GUESS=$UNAME_MACHINE-pc-pw32 - ;; - *:Interix*:*) - case $UNAME_MACHINE in - x86) - GUESS=i586-pc-interix$UNAME_RELEASE - ;; - authenticamd | genuineintel | EM64T) - GUESS=x86_64-unknown-interix$UNAME_RELEASE - ;; - IA64) - GUESS=ia64-unknown-interix$UNAME_RELEASE - ;; - esac ;; - i*:UWIN*:*) - GUESS=$UNAME_MACHINE-pc-uwin - ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - GUESS=x86_64-pc-cygwin - ;; - prep*:SunOS:5.*:*) - SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` - GUESS=powerpcle-unknown-solaris2$SUN_REL - ;; - *:GNU:*:*) - # the GNU system - GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` - GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` - GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL - ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` - GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` - GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC - ;; - *:Minix:*:*) - GUESS=$UNAME_MACHINE-unknown-minix - ;; - aarch64:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - aarch64_be:Linux:*:*) - UNAME_MACHINE=aarch64_be - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` 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=gnulibc1 ; fi - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - arm*:Linux:*:*) - set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - else - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then - GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi - else - GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf - fi - fi - ;; - avr32*:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - cris:Linux:*:*) - GUESS=$UNAME_MACHINE-axis-linux-$LIBC - ;; - crisv32:Linux:*:*) - GUESS=$UNAME_MACHINE-axis-linux-$LIBC - ;; - e2k:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - frv:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - hexagon:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - i*86:Linux:*:*) - GUESS=$UNAME_MACHINE-pc-linux-$LIBC - ;; - ia64:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - k1om:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - m32r*:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - m68*:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - mips:Linux:*:* | mips64:Linux:*:*) - set_cc_for_build - IS_GLIBC=0 - test x"${LIBC}" = xgnu && IS_GLIBC=1 - sed 's/^ //' << EOF > "$dummy.c" - #undef CPU - #undef mips - #undef mipsel - #undef mips64 - #undef mips64el - #if ${IS_GLIBC} && defined(_ABI64) - LIBCABI=gnuabi64 - #else - #if ${IS_GLIBC} && defined(_ABIN32) - LIBCABI=gnuabin32 - #else - LIBCABI=${LIBC} - #endif - #endif - - #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 - CPU=mipsisa64r6 - #else - #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 - CPU=mipsisa32r6 - #else - #if defined(__mips64) - CPU=mips64 - #else - CPU=mips - #endif - #endif - #endif - - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - MIPS_ENDIAN=el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - MIPS_ENDIAN= - #else - MIPS_ENDIAN= - #endif - #endif -EOF - cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` - eval "$cc_set_vars" - test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } - ;; - mips64el:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - openrisc*:Linux:*:*) - GUESS=or1k-unknown-linux-$LIBC - ;; - or32:Linux:*:* | or1k*:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - padre:Linux:*:*) - GUESS=sparc-unknown-linux-$LIBC - ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - GUESS=hppa64-unknown-linux-$LIBC - ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; - PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; - *) GUESS=hppa-unknown-linux-$LIBC ;; - esac - ;; - ppc64:Linux:*:*) - GUESS=powerpc64-unknown-linux-$LIBC - ;; - ppc:Linux:*:*) - GUESS=powerpc-unknown-linux-$LIBC - ;; - ppc64le:Linux:*:*) - GUESS=powerpc64le-unknown-linux-$LIBC - ;; - ppcle:Linux:*:*) - GUESS=powerpcle-unknown-linux-$LIBC - ;; - riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - s390:Linux:*:* | s390x:Linux:*:*) - GUESS=$UNAME_MACHINE-ibm-linux-$LIBC - ;; - sh64*:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - sh*:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - tile*:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - vax:Linux:*:*) - GUESS=$UNAME_MACHINE-dec-linux-$LIBC - ;; - x86_64:Linux:*:*) - set_cc_for_build - LIBCABI=$LIBC - if test "$CC_FOR_BUILD" != no_compiler_found; then - if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_X32 >/dev/null - then - LIBCABI=${LIBC}x32 - fi - fi - GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI - ;; - xtensa*:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - GUESS=i386-sequent-sysv4 - ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION - ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - GUESS=$UNAME_MACHINE-pc-os2-emx - ;; - i*86:XTS-300:*:STOP) - GUESS=$UNAME_MACHINE-unknown-stop - ;; - i*86:atheos:*:*) - GUESS=$UNAME_MACHINE-unknown-atheos - ;; - i*86:syllable:*:*) - GUESS=$UNAME_MACHINE-pc-syllable - ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - GUESS=i386-unknown-lynxos$UNAME_RELEASE - ;; - i*86:*DOS:*:*) - GUESS=$UNAME_MACHINE-pc-msdosdjgpp - ;; - i*86:*:4.*:*) - UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL - else - GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL - fi - ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL - else - GUESS=$UNAME_MACHINE-pc-sysv32 - fi - ;; - 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 i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configure will decide that - # this is a cross-build. - GUESS=i586-pc-msdosdjgpp - ;; - Intel:Mach:3*:*) - GUESS=i386-pc-mach3 - ;; - paragon:*:*:*) - GUESS=i860-intel-osf1 - ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 - fi - ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - GUESS=m68010-convergent-sysv - ;; - mc68k:UNIX:SYSTEM5:3.51m) - GUESS=m68k-convergent-sysv - ;; - M680?0:D-NIX:5.3:*) - GUESS=m68k-diab-dnix - ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } - /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; } ;; - 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*:*) - GUESS=m68k-unknown-lynxos$UNAME_RELEASE - ;; - mc68030:UNIX_System_V:4.*:*) - GUESS=m68k-atari-sysv4 - ;; - TSUNAMI:LynxOS:2.*:*) - GUESS=sparc-unknown-lynxos$UNAME_RELEASE - ;; - rs6000:LynxOS:2.*:*) - GUESS=rs6000-unknown-lynxos$UNAME_RELEASE - ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - GUESS=powerpc-unknown-lynxos$UNAME_RELEASE - ;; - SM[BE]S:UNIX_SV:*:*) - GUESS=mips-dde-sysv$UNAME_RELEASE - ;; - RM*:ReliantUNIX-*:*:*) - GUESS=mips-sni-sysv4 - ;; - RM*:SINIX-*:*:*) - GUESS=mips-sni-sysv4 - ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - GUESS=$UNAME_MACHINE-sni-sysv4 - else - GUESS=ns32k-sni-sysv - fi - ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - GUESS=i586-unisys-sysv4 - ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - GUESS=hppa1.1-stratus-sysv4 - ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - GUESS=i860-stratus-sysv4 - ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - GUESS=$UNAME_MACHINE-stratus-vos - ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - GUESS=hppa1.1-stratus-vos - ;; - mc68*:A/UX:*:*) - GUESS=m68k-apple-aux$UNAME_RELEASE - ;; - news*:NEWS-OS:6*:*) - GUESS=mips-sony-newsos6 - ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if test -d /usr/nec; then - GUESS=mips-nec-sysv$UNAME_RELEASE - else - GUESS=mips-unknown-sysv$UNAME_RELEASE - fi - ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - GUESS=powerpc-be-beos - ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - GUESS=powerpc-apple-beos - ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - GUESS=i586-pc-beos - ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - GUESS=i586-pc-haiku - ;; - x86_64:Haiku:*:*) - GUESS=x86_64-unknown-haiku - ;; - SX-4:SUPER-UX:*:*) - GUESS=sx4-nec-superux$UNAME_RELEASE - ;; - SX-5:SUPER-UX:*:*) - GUESS=sx5-nec-superux$UNAME_RELEASE - ;; - SX-6:SUPER-UX:*:*) - GUESS=sx6-nec-superux$UNAME_RELEASE - ;; - SX-7:SUPER-UX:*:*) - GUESS=sx7-nec-superux$UNAME_RELEASE - ;; - SX-8:SUPER-UX:*:*) - GUESS=sx8-nec-superux$UNAME_RELEASE - ;; - SX-8R:SUPER-UX:*:*) - GUESS=sx8r-nec-superux$UNAME_RELEASE - ;; - SX-ACE:SUPER-UX:*:*) - GUESS=sxace-nec-superux$UNAME_RELEASE - ;; - Power*:Rhapsody:*:*) - GUESS=powerpc-apple-rhapsody$UNAME_RELEASE - ;; - *:Rhapsody:*:*) - GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE - ;; - arm64:Darwin:*:*) - GUESS=aarch64-apple-darwin$UNAME_RELEASE - ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` - case $UNAME_PROCESSOR in - unknown) UNAME_PROCESSOR=powerpc ;; - esac - if command -v xcode-select > /dev/null 2> /dev/null && \ - ! xcode-select --print-path > /dev/null 2> /dev/null ; then - # Avoid executing cc if there is no toolchain installed as - # cc will be a stub that puts up a graphical alert - # prompting the user to install developer tools. - CC_FOR_BUILD=no_compiler_found - else - set_cc_for_build - fi - if test "$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 - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc - if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_PPC >/dev/null - then - UNAME_PROCESSOR=powerpc - fi - elif test "$UNAME_PROCESSOR" = i386 ; then - # uname -m returns i386 or x86_64 - UNAME_PROCESSOR=$UNAME_MACHINE - fi - GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE - ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = x86; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE - ;; - *:QNX:*:4*) - GUESS=i386-pc-qnx - ;; - NEO-*:NONSTOP_KERNEL:*:*) - GUESS=neo-tandem-nsk$UNAME_RELEASE - ;; - NSE-*:NONSTOP_KERNEL:*:*) - GUESS=nse-tandem-nsk$UNAME_RELEASE - ;; - NSR-*:NONSTOP_KERNEL:*:*) - GUESS=nsr-tandem-nsk$UNAME_RELEASE - ;; - NSV-*:NONSTOP_KERNEL:*:*) - GUESS=nsv-tandem-nsk$UNAME_RELEASE - ;; - NSX-*:NONSTOP_KERNEL:*:*) - GUESS=nsx-tandem-nsk$UNAME_RELEASE - ;; - *:NonStop-UX:*:*) - GUESS=mips-compaq-nonstopux - ;; - BS2000:POSIX*:*:*) - GUESS=bs2000-siemens-sysv - ;; - DS/*:UNIX_System_V:*:*) - GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE - ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "${cputype-}" = 386; then - UNAME_MACHINE=i386 - elif test "x${cputype-}" != x; then - UNAME_MACHINE=$cputype - fi - GUESS=$UNAME_MACHINE-unknown-plan9 - ;; - *:TOPS-10:*:*) - GUESS=pdp10-unknown-tops10 - ;; - *:TENEX:*:*) - GUESS=pdp10-unknown-tenex - ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - GUESS=pdp10-dec-tops20 - ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - GUESS=pdp10-xkl-tops20 - ;; - *:TOPS-20:*:*) - GUESS=pdp10-unknown-tops20 - ;; - *:ITS:*:*) - GUESS=pdp10-unknown-its - ;; - SEI:*:*:SEIUX) - GUESS=mips-sei-seiux$UNAME_RELEASE - ;; - *:DragonFly:*:*) - DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` - GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL - ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case $UNAME_MACHINE in - A*) GUESS=alpha-dec-vms ;; - I*) GUESS=ia64-dec-vms ;; - V*) GUESS=vax-dec-vms ;; - esac ;; - *:XENIX:*:SysV) - GUESS=i386-pc-xenix - ;; - i*86:skyos:*:*) - SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` - GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL - ;; - i*86:rdos:*:*) - GUESS=$UNAME_MACHINE-pc-rdos - ;; - *:AROS:*:*) - GUESS=$UNAME_MACHINE-unknown-aros - ;; - x86_64:VMkernel:*:*) - GUESS=$UNAME_MACHINE-unknown-esx - ;; - amd64:Isilon\ OneFS:*:*) - GUESS=x86_64-unknown-onefs - ;; - *:Unleashed:*:*) - GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE - ;; -esac - -# Do we have a guess based on uname results? -if test "x$GUESS" != x; then - echo "$GUESS" - exit -fi - -# No uname command or uname output not recognized. -set_cc_for_build -cat > "$dummy.c" < -#include -#endif -#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) -#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) -#include -#if defined(_SIZE_T_) || defined(SIGLOST) -#include -#endif -#endif -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); -#endif - -#if defined (vax) -#if !defined (ultrix) -#include -#if defined (BSD) -#if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -#else -#if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -#else - printf ("vax-dec-bsd\n"); exit (0); -#endif -#endif -#else - printf ("vax-dec-bsd\n"); exit (0); -#endif -#else -#if defined(_SIZE_T_) || defined(SIGLOST) - struct utsname un; - uname (&un); - printf ("vax-dec-ultrix%s\n", un.release); exit (0); -#else - printf ("vax-dec-ultrix\n"); exit (0); -#endif -#endif -#endif -#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) -#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) -#if defined(_SIZE_T_) || defined(SIGLOST) - struct utsname *un; - uname (&un); - printf ("mips-dec-ultrix%s\n", un.release); exit (0); -#else - printf ("mips-dec-ultrix\n"); exit (0); -#endif -#endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. -test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } - -echo "$0: unable to guess system type" >&2 - -case $UNAME_MACHINE:$UNAME_SYSTEM in - mips:Linux | mips64:Linux) - # If we got here on MIPS GNU/Linux, output extra information. - cat >&2 <&2 <&2 </dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = "$UNAME_MACHINE" -UNAME_RELEASE = "$UNAME_RELEASE" -UNAME_SYSTEM = "$UNAME_SYSTEM" -UNAME_VERSION = "$UNAME_VERSION" -EOF -fi - -exit 1 - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/config/config.rpath b/config/config.rpath deleted file mode 100755 index 98183ff2..00000000 --- a/config/config.rpath +++ /dev/null @@ -1,684 +0,0 @@ -#! /bin/sh -# Output a system dependent set of variables, describing how to set the -# run time search path of shared libraries in an executable. -# -# Copyright 1996-2016 Free Software Foundation, Inc. -# Taken from GNU libtool, 2001 -# Originally by Gordon Matzigkeit , 1996 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. -# -# The first argument passed to this file is the canonical host specification, -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld -# should be set by the caller. -# -# The set of defined variables is at the end of this script. - -# Known limitations: -# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer -# than 256 bytes, otherwise the compiler driver will dump core. The only -# known workaround is to choose shorter directory names for the build -# directory and/or the installation directory. - -# All known linkers require a '.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a -shrext=.so - -host="$1" -host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -# Code taken from libtool.m4's _LT_CC_BASENAME. - -for cc_temp in $CC""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` - -# Code taken from libtool.m4's _LT_COMPILER_PIC. - -wl= -if test "$GCC" = yes; then - wl='-Wl,' -else - case "$host_os" in - aix*) - wl='-Wl,' - ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) - ;; - hpux9* | hpux10* | hpux11*) - wl='-Wl,' - ;; - irix5* | irix6* | nonstopux*) - wl='-Wl,' - ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - ecc*) - wl='-Wl,' - ;; - icc* | ifort*) - wl='-Wl,' - ;; - lf95*) - wl='-Wl,' - ;; - nagfor*) - wl='-Wl,-Wl,,' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - wl='-Wl,' - ;; - ccc*) - wl='-Wl,' - ;; - xl* | bgxl* | bgf* | mpixl*) - wl='-Wl,' - ;; - como) - wl='-lopt=' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ F* | *Sun*Fortran*) - wl= - ;; - *Sun\ C*) - wl='-Wl,' - ;; - esac - ;; - esac - ;; - newsos6) - ;; - *nto* | *qnx*) - ;; - osf3* | osf4* | osf5*) - wl='-Wl,' - ;; - rdos*) - ;; - solaris*) - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - wl='-Qoption ld ' - ;; - *) - wl='-Wl,' - ;; - esac - ;; - sunos4*) - wl='-Qoption ld ' - ;; - sysv4 | sysv4.2uw2* | sysv4.3*) - wl='-Wl,' - ;; - sysv4*MP*) - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - wl='-Wl,' - ;; - unicos*) - wl='-Wl,' - ;; - uts4*) - ;; - esac -fi - -# Code taken from libtool.m4's _LT_LINKER_SHLIBS. - -hardcode_libdir_flag_spec= -hardcode_libdir_separator= -hardcode_direct=no -hardcode_minus_L=no - -case "$host_os" in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; -esac - -ld_shlibs=yes -if test "$with_gnu_ld" = yes; then - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - # Unlike libtool, we use -rpath here, not --rpath, since the documented - # option of GNU ld is called -rpath, not --rpath. - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - case "$host_os" in - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - fi - ;; - amigaos*) - case "$host_cpu" in - powerpc) - ;; - m68k) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - cygwin* | mingw* | pw32* | cegcc*) - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - haiku*) - ;; - interix[3-9]*) - hardcode_direct=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - netbsd*) - ;; - solaris*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs=no - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - else - ld_shlibs=no - fi - ;; - esac - ;; - sunos4*) - hardcode_direct=yes - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - esac - if test "$ld_shlibs" = no; then - hardcode_libdir_flag_spec= - fi -else - case "$host_os" in - aix3*) - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - aix[4-9]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - else - aix_use_runtimelinking=no - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - fi - hardcode_direct=yes - hardcode_libdir_separator=':' - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct=unsupported - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - ;; - esac - fi - # Begin _LT_AC_SYS_LIBPATH_AIX. - echo 'int main () { return 0; }' > conftest.c - ${CC} ${LDFLAGS} conftest.c -o conftest - aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` - if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` - fi - if test -z "$aix_libpath"; then - aix_libpath="/usr/lib:/lib" - fi - rm -f conftest.c conftest - # End _LT_AC_SYS_LIBPATH_AIX. - if test "$aix_use_runtimelinking" = yes; then - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - else - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - fi - fi - ;; - amigaos*) - case "$host_cpu" in - powerpc) - ;; - m68k) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - bsdi[45]*) - ;; - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - libext=lib - ;; - darwin* | rhapsody*) - hardcode_direct=no - if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then - : - else - ld_shlibs=no - fi - ;; - dgux*) - hardcode_libdir_flag_spec='-L$libdir' - ;; - freebsd2.[01]*) - hardcode_direct=yes - hardcode_minus_L=yes - ;; - freebsd* | dragonfly*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - hpux9*) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - hpux10*) - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - fi - ;; - hpux11*) - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct=no - ;; - *) - hardcode_direct=yes - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - irix5* | irix6* | nonstopux*) - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - netbsd*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - newsos6) - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - *nto* | *qnx*) - ;; - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct=yes - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - else - case "$host_os" in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs=no - fi - ;; - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - osf3*) - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - osf4* | osf5*) - if test "$GCC" = yes; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - # Both cc and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - hardcode_libdir_separator=: - ;; - solaris*) - hardcode_libdir_flag_spec='-R$libdir' - ;; - sunos4*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - ;; - sysv4) - case $host_vendor in - sni) - hardcode_direct=yes # is this really true??? - ;; - siemens) - hardcode_direct=no - ;; - motorola) - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - ;; - sysv4.3*) - ;; - sysv4*MP*) - if test -d /usr/nec; then - ld_shlibs=yes - fi - ;; - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - ;; - sysv5* | sco3.2v5* | sco5v6*) - hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator=':' - ;; - uts4*) - hardcode_libdir_flag_spec='-L$libdir' - ;; - *) - ld_shlibs=no - ;; - esac -fi - -# Check dynamic linker characteristics -# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. -# Unlike libtool.m4, here we don't care about _all_ names of the library, but -# only about the one the linker finds when passed -lNAME. This is the last -# element of library_names_spec in libtool.m4, or possibly two of them if the -# linker has special search rules. -library_names_spec= # the last element of library_names_spec in libtool.m4 -libname_spec='lib$name' -case "$host_os" in - aix3*) - library_names_spec='$libname.a' - ;; - aix[4-9]*) - library_names_spec='$libname$shrext' - ;; - amigaos*) - case "$host_cpu" in - powerpc*) - library_names_spec='$libname$shrext' ;; - m68k) - library_names_spec='$libname.a' ;; - esac - ;; - beos*) - library_names_spec='$libname$shrext' - ;; - bsdi[45]*) - library_names_spec='$libname$shrext' - ;; - cygwin* | mingw* | pw32* | cegcc*) - shrext=.dll - library_names_spec='$libname.dll.a $libname.lib' - ;; - darwin* | rhapsody*) - shrext=.dylib - library_names_spec='$libname$shrext' - ;; - dgux*) - library_names_spec='$libname$shrext' - ;; - freebsd[23].*) - library_names_spec='$libname$shrext$versuffix' - ;; - freebsd* | dragonfly*) - library_names_spec='$libname$shrext' - ;; - gnu*) - library_names_spec='$libname$shrext' - ;; - haiku*) - library_names_spec='$libname$shrext' - ;; - hpux9* | hpux10* | hpux11*) - case $host_cpu in - ia64*) - shrext=.so - ;; - hppa*64*) - shrext=.sl - ;; - *) - shrext=.sl - ;; - esac - library_names_spec='$libname$shrext' - ;; - interix[3-9]*) - library_names_spec='$libname$shrext' - ;; - irix5* | irix6* | nonstopux*) - library_names_spec='$libname$shrext' - case "$host_os" in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; - *) libsuff= shlibsuff= ;; - esac - ;; - esac - ;; - linux*oldld* | linux*aout* | linux*coff*) - ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) - library_names_spec='$libname$shrext' - ;; - knetbsd*-gnu) - library_names_spec='$libname$shrext' - ;; - netbsd*) - library_names_spec='$libname$shrext' - ;; - newsos6) - library_names_spec='$libname$shrext' - ;; - *nto* | *qnx*) - library_names_spec='$libname$shrext' - ;; - openbsd*) - library_names_spec='$libname$shrext$versuffix' - ;; - os2*) - libname_spec='$name' - shrext=.dll - library_names_spec='$libname.a' - ;; - osf3* | osf4* | osf5*) - library_names_spec='$libname$shrext' - ;; - rdos*) - ;; - solaris*) - library_names_spec='$libname$shrext' - ;; - sunos4*) - library_names_spec='$libname$shrext$versuffix' - ;; - sysv4 | sysv4.3*) - library_names_spec='$libname$shrext' - ;; - sysv4*MP*) - library_names_spec='$libname$shrext' - ;; - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - library_names_spec='$libname$shrext' - ;; - tpf*) - library_names_spec='$libname$shrext' - ;; - uts4*) - library_names_spec='$libname$shrext' - ;; -esac - -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' -escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` -shlibext=`echo "$shrext" | sed -e 's,^\.,,'` -escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` -escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` -escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` - -LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. -# -# 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. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). - - -# Please send patches to . -# -# 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: -# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub - -# 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. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -# The "shellcheck disable" line above the timestamp inhibits complaints -# about features and limitations of the classic Bourne shell that were -# superseded or lifted in POSIX. However, this script identifies a wide -# variety of pre-POSIX systems that do not have POSIX shells at all, and -# even some reasonably current systems (Solaris 10 as case-in-point) still -# have a pre-POSIX /bin/sh. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS - -Canonicalize a configuration name. - -Options: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright 1992-2021 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo "$1" - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Split fields of configuration type -# shellcheck disable=SC2162 -IFS="-" read field1 field2 field3 field4 <&2 - exit 1 - ;; - *-*-*-*) - basic_machine=$field1-$field2 - basic_os=$field3-$field4 - ;; - *-*-*) - # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two - # parts - maybe_os=$field2-$field3 - case $maybe_os in - nto-qnx* | linux-* | uclinux-uclibc* \ - | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ - | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ - | storm-chaos* | os2-emx* | rtmk-nova*) - basic_machine=$field1 - basic_os=$maybe_os - ;; - android-linux) - basic_machine=$field1-unknown - basic_os=linux-android - ;; - *) - basic_machine=$field1-$field2 - basic_os=$field3 - ;; - esac - ;; - *-*) - # A lone config we happen to match not fitting any pattern - case $field1-$field2 in - decstation-3100) - basic_machine=mips-dec - basic_os= - ;; - *-*) - # Second component is usually, but not always the OS - case $field2 in - # Prevent following clause from handling this valid os - sun*os*) - basic_machine=$field1 - basic_os=$field2 - ;; - # Manufacturers - dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ - | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ - | unicom* | ibm* | next | hp | isi* | apollo | altos* \ - | 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 \ - | microblaze* | sim | cisco \ - | oki | wec | wrs | winbond) - basic_machine=$field1-$field2 - basic_os= - ;; - *) - basic_machine=$field1 - basic_os=$field2 - ;; - esac - ;; - esac - ;; - *) - # Convert single-component short-hands not valid as part of - # multi-component configurations. - case $field1 in - 386bsd) - basic_machine=i386-pc - basic_os=bsd - ;; - a29khif) - basic_machine=a29k-amd - basic_os=udi - ;; - adobe68k) - basic_machine=m68010-adobe - basic_os=scout - ;; - alliant) - basic_machine=fx80-alliant - basic_os= - ;; - altos | altos3068) - basic_machine=m68k-altos - basic_os= - ;; - am29k) - basic_machine=a29k-none - basic_os=bsd - ;; - amdahl) - basic_machine=580-amdahl - basic_os=sysv - ;; - amiga) - basic_machine=m68k-unknown - basic_os= - ;; - amigaos | amigados) - basic_machine=m68k-unknown - basic_os=amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - basic_os=sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - basic_os=sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - basic_os=bsd - ;; - aros) - basic_machine=i386-pc - basic_os=aros - ;; - aux) - basic_machine=m68k-apple - basic_os=aux - ;; - balance) - basic_machine=ns32k-sequent - basic_os=dynix - ;; - blackfin) - basic_machine=bfin-unknown - basic_os=linux - ;; - cegcc) - basic_machine=arm-unknown - basic_os=cegcc - ;; - convex-c1) - basic_machine=c1-convex - basic_os=bsd - ;; - convex-c2) - basic_machine=c2-convex - basic_os=bsd - ;; - convex-c32) - basic_machine=c32-convex - basic_os=bsd - ;; - convex-c34) - basic_machine=c34-convex - basic_os=bsd - ;; - convex-c38) - basic_machine=c38-convex - basic_os=bsd - ;; - cray) - basic_machine=j90-cray - basic_os=unicos - ;; - crds | unos) - basic_machine=m68k-crds - basic_os= - ;; - da30) - basic_machine=m68k-da30 - basic_os= - ;; - decstation | pmax | pmin | dec3100 | decstatn) - basic_machine=mips-dec - basic_os= - ;; - delta88) - basic_machine=m88k-motorola - basic_os=sysv3 - ;; - dicos) - basic_machine=i686-pc - basic_os=dicos - ;; - djgpp) - basic_machine=i586-pc - basic_os=msdosdjgpp - ;; - ebmon29k) - basic_machine=a29k-amd - basic_os=ebmon - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - basic_os=ose - ;; - gmicro) - basic_machine=tron-gmicro - basic_os=sysv - ;; - go32) - basic_machine=i386-pc - basic_os=go32 - ;; - h8300hms) - basic_machine=h8300-hitachi - basic_os=hms - ;; - h8300xray) - basic_machine=h8300-hitachi - basic_os=xray - ;; - h8500hms) - basic_machine=h8500-hitachi - basic_os=hms - ;; - harris) - basic_machine=m88k-harris - basic_os=sysv3 - ;; - hp300 | hp300hpux) - basic_machine=m68k-hp - basic_os=hpux - ;; - hp300bsd) - basic_machine=m68k-hp - basic_os=bsd - ;; - hppaosf) - basic_machine=hppa1.1-hp - basic_os=osf - ;; - hppro) - basic_machine=hppa1.1-hp - basic_os=proelf - ;; - i386mach) - basic_machine=i386-mach - basic_os=mach - ;; - isi68 | isi) - basic_machine=m68k-isi - basic_os=sysv - ;; - m68knommu) - basic_machine=m68k-unknown - basic_os=linux - ;; - magnum | m3230) - basic_machine=mips-mips - basic_os=sysv - ;; - merlin) - basic_machine=ns32k-utek - basic_os=sysv - ;; - mingw64) - basic_machine=x86_64-pc - basic_os=mingw64 - ;; - mingw32) - basic_machine=i686-pc - basic_os=mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - basic_os=mingw32ce - ;; - monitor) - basic_machine=m68k-rom68k - basic_os=coff - ;; - morphos) - basic_machine=powerpc-unknown - basic_os=morphos - ;; - moxiebox) - basic_machine=moxie-unknown - basic_os=moxiebox - ;; - msdos) - basic_machine=i386-pc - basic_os=msdos - ;; - msys) - basic_machine=i686-pc - basic_os=msys - ;; - mvs) - basic_machine=i370-ibm - basic_os=mvs - ;; - nacl) - basic_machine=le32-unknown - basic_os=nacl - ;; - ncr3000) - basic_machine=i486-ncr - basic_os=sysv4 - ;; - netbsd386) - basic_machine=i386-pc - basic_os=netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - basic_os=linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - basic_os=newsos - ;; - news1000) - basic_machine=m68030-sony - basic_os=newsos - ;; - necv70) - basic_machine=v70-nec - basic_os=sysv - ;; - nh3000) - basic_machine=m68k-harris - basic_os=cxux - ;; - nh[45]000) - basic_machine=m88k-harris - basic_os=cxux - ;; - nindy960) - basic_machine=i960-intel - basic_os=nindy - ;; - mon960) - basic_machine=i960-intel - basic_os=mon960 - ;; - nonstopux) - basic_machine=mips-compaq - basic_os=nonstopux - ;; - os400) - basic_machine=powerpc-ibm - basic_os=os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - basic_os=ose - ;; - os68k) - basic_machine=m68k-none - basic_os=os68k - ;; - paragon) - basic_machine=i860-intel - basic_os=osf - ;; - parisc) - basic_machine=hppa-unknown - basic_os=linux - ;; - psp) - basic_machine=mipsallegrexel-sony - basic_os=psp - ;; - pw32) - basic_machine=i586-unknown - basic_os=pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc - basic_os=rdos - ;; - rdos32) - basic_machine=i386-pc - basic_os=rdos - ;; - rom68k) - basic_machine=m68k-rom68k - basic_os=coff - ;; - sa29200) - basic_machine=a29k-amd - basic_os=udi - ;; - sei) - basic_machine=mips-sei - basic_os=seiux - ;; - sequent) - basic_machine=i386-sequent - basic_os= - ;; - sps7) - basic_machine=m68k-bull - basic_os=sysv2 - ;; - st2000) - basic_machine=m68k-tandem - basic_os= - ;; - stratus) - basic_machine=i860-stratus - basic_os=sysv4 - ;; - sun2) - basic_machine=m68000-sun - basic_os= - ;; - sun2os3) - basic_machine=m68000-sun - basic_os=sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - basic_os=sunos4 - ;; - sun3) - basic_machine=m68k-sun - basic_os= - ;; - sun3os3) - basic_machine=m68k-sun - basic_os=sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - basic_os=sunos4 - ;; - sun4) - basic_machine=sparc-sun - basic_os= - ;; - sun4os3) - basic_machine=sparc-sun - basic_os=sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - basic_os=sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - basic_os=solaris2 - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - basic_os= - ;; - sv1) - basic_machine=sv1-cray - basic_os=unicos - ;; - symmetry) - basic_machine=i386-sequent - basic_os=dynix - ;; - t3e) - basic_machine=alphaev5-cray - basic_os=unicos - ;; - t90) - basic_machine=t90-cray - basic_os=unicos - ;; - toad1) - basic_machine=pdp10-xkl - basic_os=tops20 - ;; - tpf) - basic_machine=s390x-ibm - basic_os=tpf - ;; - udi29k) - basic_machine=a29k-amd - basic_os=udi - ;; - ultra3) - basic_machine=a29k-nyu - basic_os=sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - basic_os=none - ;; - vaxv) - basic_machine=vax-dec - basic_os=sysv - ;; - vms) - basic_machine=vax-dec - basic_os=vms - ;; - vsta) - basic_machine=i386-pc - basic_os=vsta - ;; - vxworks960) - basic_machine=i960-wrs - basic_os=vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - basic_os=vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - basic_os=vxworks - ;; - xbox) - basic_machine=i686-pc - basic_os=mingw32 - ;; - ymp) - basic_machine=ymp-cray - basic_os=unicos - ;; - *) - basic_machine=$1 - basic_os= - ;; - esac - ;; -esac - -# Decode 1-component or ad-hoc basic machines -case $basic_machine in - # Here we handle the default manufacturer of certain CPU types. It is in - # some cases the only manufacturer, in others, it is the most popular. - w89k) - cpu=hppa1.1 - vendor=winbond - ;; - op50n) - cpu=hppa1.1 - vendor=oki - ;; - op60c) - cpu=hppa1.1 - vendor=oki - ;; - ibm*) - cpu=i370 - vendor=ibm - ;; - orion105) - cpu=clipper - vendor=highlevel - ;; - mac | mpw | mac-mpw) - cpu=m68k - vendor=apple - ;; - pmac | pmac-mpw) - cpu=powerpc - vendor=apple - ;; - - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - cpu=m68000 - vendor=att - ;; - 3b*) - cpu=we32k - vendor=att - ;; - bluegene*) - cpu=powerpc - vendor=ibm - basic_os=cnk - ;; - decsystem10* | dec10*) - cpu=pdp10 - vendor=dec - basic_os=tops10 - ;; - decsystem20* | dec20*) - cpu=pdp10 - vendor=dec - basic_os=tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - cpu=m68k - vendor=motorola - ;; - dpx2*) - cpu=m68k - vendor=bull - basic_os=sysv3 - ;; - encore | umax | mmax) - cpu=ns32k - vendor=encore - ;; - elxsi) - cpu=elxsi - vendor=elxsi - basic_os=${basic_os:-bsd} - ;; - fx2800) - cpu=i860 - vendor=alliant - ;; - genix) - cpu=ns32k - vendor=ns - ;; - h3050r* | hiux*) - cpu=hppa1.1 - vendor=hitachi - basic_os=hiuxwe2 - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - cpu=hppa1.0 - vendor=hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - cpu=m68000 - vendor=hp - ;; - hp9k3[2-9][0-9]) - cpu=m68k - vendor=hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - cpu=hppa1.0 - vendor=hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - cpu=hppa1.1 - vendor=hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - cpu=hppa1.1 - vendor=hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - cpu=hppa1.1 - vendor=hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - cpu=hppa1.1 - vendor=hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - cpu=hppa1.0 - vendor=hp - ;; - i*86v32) - cpu=`echo "$1" | sed -e 's/86.*/86/'` - vendor=pc - basic_os=sysv32 - ;; - i*86v4*) - cpu=`echo "$1" | sed -e 's/86.*/86/'` - vendor=pc - basic_os=sysv4 - ;; - i*86v) - cpu=`echo "$1" | sed -e 's/86.*/86/'` - vendor=pc - basic_os=sysv - ;; - i*86sol2) - cpu=`echo "$1" | sed -e 's/86.*/86/'` - vendor=pc - basic_os=solaris2 - ;; - j90 | j90-cray) - cpu=j90 - vendor=cray - basic_os=${basic_os:-unicos} - ;; - iris | iris4d) - cpu=mips - vendor=sgi - case $basic_os in - irix*) - ;; - *) - basic_os=irix4 - ;; - esac - ;; - miniframe) - cpu=m68000 - vendor=convergent - ;; - *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) - cpu=m68k - vendor=atari - basic_os=mint - ;; - news-3600 | risc-news) - cpu=mips - vendor=sony - basic_os=newsos - ;; - next | m*-next) - cpu=m68k - vendor=next - case $basic_os in - openstep*) - ;; - nextstep*) - ;; - ns2*) - basic_os=nextstep2 - ;; - *) - basic_os=nextstep3 - ;; - esac - ;; - np1) - cpu=np1 - vendor=gould - ;; - op50n-* | op60c-*) - cpu=hppa1.1 - vendor=oki - basic_os=proelf - ;; - pa-hitachi) - cpu=hppa1.1 - vendor=hitachi - basic_os=hiuxwe2 - ;; - pbd) - cpu=sparc - vendor=tti - ;; - pbb) - cpu=m68k - vendor=tti - ;; - pc532) - cpu=ns32k - vendor=pc532 - ;; - pn) - cpu=pn - vendor=gould - ;; - power) - cpu=power - vendor=ibm - ;; - ps2) - cpu=i386 - vendor=ibm - ;; - rm[46]00) - cpu=mips - vendor=siemens - ;; - rtpc | rtpc-*) - cpu=romp - vendor=ibm - ;; - sde) - cpu=mipsisa32 - vendor=sde - basic_os=${basic_os:-elf} - ;; - simso-wrs) - cpu=sparclite - vendor=wrs - basic_os=vxworks - ;; - tower | tower-32) - cpu=m68k - vendor=ncr - ;; - vpp*|vx|vx-*) - cpu=f301 - vendor=fujitsu - ;; - w65) - cpu=w65 - vendor=wdc - ;; - w89k-*) - cpu=hppa1.1 - vendor=winbond - basic_os=proelf - ;; - none) - cpu=none - vendor=none - ;; - leon|leon[3-9]) - cpu=sparc - vendor=$basic_machine - ;; - leon-*|leon[3-9]-*) - cpu=sparc - vendor=`echo "$basic_machine" | sed 's/-.*//'` - ;; - - *-*) - # shellcheck disable=SC2162 - IFS="-" read cpu vendor <&2 - exit 1 - ;; - esac - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $vendor in - digital*) - vendor=dec - ;; - commodore*) - vendor=cbm - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if test x$basic_os != x -then - -# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just -# set os. -case $basic_os in - gnu/linux*) - kernel=linux - os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` - ;; - os2-emx) - kernel=os2 - os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` - ;; - nto-qnx*) - kernel=nto - os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` - ;; - *-*) - # shellcheck disable=SC2162 - IFS="-" read kernel os <&2 - exit 1 - ;; -esac - -# As a final step for OS-related things, validate the OS-kernel combination -# (given a valid OS), if there is a kernel. -case $kernel-$os in - linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* ) - ;; - uclinux-uclibc* ) - ;; - -dietlibc* | -newlib* | -musl* | -uclibc* ) - # These are just libc implementations, not actual OSes, and thus - # require a kernel. - echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 - exit 1 - ;; - kfreebsd*-gnu* | kopensolaris*-gnu*) - ;; - vxworks-simlinux | vxworks-simwindows | vxworks-spe) - ;; - nto-qnx*) - ;; - os2-emx) - ;; - *-eabi* | *-gnueabi*) - ;; - -*) - # Blank kernel with real OS is always fine. - ;; - *-*) - echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 - exit 1 - ;; -esac - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -case $vendor in - unknown) - case $cpu-$os in - *-riscix*) - vendor=acorn - ;; - *-sunos*) - vendor=sun - ;; - *-cnk* | *-aix*) - vendor=ibm - ;; - *-beos*) - vendor=be - ;; - *-hpux*) - vendor=hp - ;; - *-mpeix*) - vendor=hp - ;; - *-hiux*) - vendor=hitachi - ;; - *-unos*) - vendor=crds - ;; - *-dgux*) - vendor=dg - ;; - *-luna*) - vendor=omron - ;; - *-genix*) - vendor=ns - ;; - *-clix*) - vendor=intergraph - ;; - *-mvs* | *-opened*) - vendor=ibm - ;; - *-os400*) - vendor=ibm - ;; - s390-* | s390x-*) - vendor=ibm - ;; - *-ptx*) - vendor=sequent - ;; - *-tpf*) - vendor=ibm - ;; - *-vxsim* | *-vxworks* | *-windiss*) - vendor=wrs - ;; - *-aux*) - vendor=apple - ;; - *-hms*) - vendor=hitachi - ;; - *-mpw* | *-macos*) - vendor=apple - ;; - *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) - vendor=atari - ;; - *-vos*) - vendor=stratus - ;; - esac - ;; -esac - -echo "$cpu-$vendor-${kernel:+$kernel-}$os" -exit - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/config/install-sh b/config/install-sh deleted file mode 100755 index 89fc9b09..00000000 --- a/config/install-sh +++ /dev/null @@ -1,238 +0,0 @@ -#! /bin/sh -# -# install - install a program, script, or datafile -# This comes from X11R5. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. -# - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -tranformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - true -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - else - instcmd=mkdir - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f $src -o -d $src ] - then - true - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - true - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - true - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' -' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift - - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - true - fi - - pathcomp="${pathcomp}/" -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - true - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile - -fi && - - -exit 0 diff --git a/config/ltmain.sh b/config/ltmain.sh deleted file mode 100644 index c12c197b..00000000 --- a/config/ltmain.sh +++ /dev/null @@ -1,11249 +0,0 @@ -#! /bin/sh -## DO NOT EDIT - This file generated from ./build-aux/ltmain.in -## by inline-source v2014-01-03.01 - -# libtool (GNU libtool) 2.4.6 -# Provide generalized library-building support services. -# Written by Gordon Matzigkeit , 1996 - -# Copyright (C) 1996-2015 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. - -# GNU Libtool 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 -# (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool 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, see . - - -PROGRAM=libtool -PACKAGE=libtool -VERSION="2.4.6 Debian-2.4.6-9" -package_revision=2.4.6 - - -## ------ ## -## Usage. ## -## ------ ## - -# Run './libtool --help' for help with using this script from the -# command line. - - -## ------------------------------- ## -## User overridable command paths. ## -## ------------------------------- ## - -# After configure completes, it has a better idea of some of the -# shell tools we need than the defaults used by the functions shared -# with bootstrap, so set those here where they can still be over- -# ridden by the user, but otherwise take precedence. - -: ${AUTOCONF="autoconf"} -: ${AUTOMAKE="automake"} - - -## -------------------------- ## -## Source external libraries. ## -## -------------------------- ## - -# Much of our low-level functionality needs to be sourced from external -# libraries, which are installed to $pkgauxdir. - -# Set a version string for this script. -scriptversion=2015-01-20.17; # UTC - -# General shell script boiler plate, and helper functions. -# Written by Gary V. Vaughan, 2004 - -# Copyright (C) 2004-2015 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. - -# 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; either version 3 of the License, or -# (at your option) any later version. - -# As a special exception to the GNU General Public License, if you distribute -# this file as part of a program or library that is built using GNU Libtool, -# you may include this file under the same distribution terms that you use -# for the rest of that program. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNES 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, see . - -# Please report bugs or propose patches to gary@gnu.org. - - -## ------ ## -## Usage. ## -## ------ ## - -# Evaluate this file near the top of your script to gain access to -# the functions and variables defined here: -# -# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh -# -# If you need to override any of the default environment variable -# settings, do that before evaluating this file. - - -## -------------------- ## -## Shell normalisation. ## -## -------------------- ## - -# Some shells need a little help to be as Bourne compatible as possible. -# Before doing anything else, make sure all that help has been provided! - -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac -fi - -# NLS nuisances: We save the old values in case they are required later. -_G_user_locale= -_G_safe_locale= -for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -do - eval "if test set = \"\${$_G_var+set}\"; then - save_$_G_var=\$$_G_var - $_G_var=C - export $_G_var - _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" - _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" - fi" -done - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Make sure IFS has a sensible default -sp=' ' -nl=' -' -IFS="$sp $nl" - -# There are apparently some retarded systems that use ';' as a PATH separator! -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - - -## ------------------------- ## -## Locate command utilities. ## -## ------------------------- ## - - -# func_executable_p FILE -# ---------------------- -# Check that FILE is an executable regular file. -func_executable_p () -{ - test -f "$1" && test -x "$1" -} - - -# func_path_progs PROGS_LIST CHECK_FUNC [PATH] -# -------------------------------------------- -# Search for either a program that responds to --version with output -# containing "GNU", or else returned by CHECK_FUNC otherwise, by -# trying all the directories in PATH with each of the elements of -# PROGS_LIST. -# -# CHECK_FUNC should accept the path to a candidate program, and -# set $func_check_prog_result if it truncates its output less than -# $_G_path_prog_max characters. -func_path_progs () -{ - _G_progs_list=$1 - _G_check_func=$2 - _G_PATH=${3-"$PATH"} - - _G_path_prog_max=0 - _G_path_prog_found=false - _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} - for _G_dir in $_G_PATH; do - IFS=$_G_save_IFS - test -z "$_G_dir" && _G_dir=. - for _G_prog_name in $_G_progs_list; do - for _exeext in '' .EXE; do - _G_path_prog=$_G_dir/$_G_prog_name$_exeext - func_executable_p "$_G_path_prog" || continue - case `"$_G_path_prog" --version 2>&1` in - *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; - *) $_G_check_func $_G_path_prog - func_path_progs_result=$func_check_prog_result - ;; - esac - $_G_path_prog_found && break 3 - done - done - done - IFS=$_G_save_IFS - test -z "$func_path_progs_result" && { - echo "no acceptable sed could be found in \$PATH" >&2 - exit 1 - } -} - - -# We want to be able to use the functions in this file before configure -# has figured out where the best binaries are kept, which means we have -# to search for them ourselves - except when the results are already set -# where we skip the searches. - -# Unless the user overrides by setting SED, search the path for either GNU -# sed, or the sed that truncates its output the least. -test -z "$SED" && { - _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for _G_i in 1 2 3 4 5 6 7; do - _G_sed_script=$_G_sed_script$nl$_G_sed_script - done - echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed - _G_sed_script= - - func_check_prog_sed () - { - _G_path_prog=$1 - - _G_count=0 - printf 0123456789 >conftest.in - while : - do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo '' >> conftest.nl - "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break - diff conftest.out conftest.nl >/dev/null 2>&1 || break - _G_count=`expr $_G_count + 1` - if test "$_G_count" -gt "$_G_path_prog_max"; then - # Best one so far, save it but keep looking for a better one - func_check_prog_result=$_G_path_prog - _G_path_prog_max=$_G_count - fi - # 10*(2^10) chars as input seems more than enough - test 10 -lt "$_G_count" && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out - } - - func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin - rm -f conftest.sed - SED=$func_path_progs_result -} - - -# Unless the user overrides by setting GREP, search the path for either GNU -# grep, or the grep that truncates its output the least. -test -z "$GREP" && { - func_check_prog_grep () - { - _G_path_prog=$1 - - _G_count=0 - _G_path_prog_max=0 - printf 0123456789 >conftest.in - while : - do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo 'GREP' >> conftest.nl - "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break - diff conftest.out conftest.nl >/dev/null 2>&1 || break - _G_count=`expr $_G_count + 1` - if test "$_G_count" -gt "$_G_path_prog_max"; then - # Best one so far, save it but keep looking for a better one - func_check_prog_result=$_G_path_prog - _G_path_prog_max=$_G_count - fi - # 10*(2^10) chars as input seems more than enough - test 10 -lt "$_G_count" && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out - } - - func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin - GREP=$func_path_progs_result -} - - -## ------------------------------- ## -## User overridable command paths. ## -## ------------------------------- ## - -# All uppercase variable names are used for environment variables. These -# variables can be overridden by the user before calling a script that -# uses them if a suitable command of that name is not already available -# in the command search PATH. - -: ${CP="cp -f"} -: ${ECHO="printf %s\n"} -: ${EGREP="$GREP -E"} -: ${FGREP="$GREP -F"} -: ${LN_S="ln -s"} -: ${MAKE="make"} -: ${MKDIR="mkdir"} -: ${MV="mv -f"} -: ${RM="rm -f"} -: ${SHELL="${CONFIG_SHELL-/bin/sh}"} - - -## -------------------- ## -## Useful sed snippets. ## -## -------------------- ## - -sed_dirname='s|/[^/]*$||' -sed_basename='s|^.*/||' - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='s|\([`"$\\]\)|\\\1|g' - -# Same as above, but do not quote variable references. -sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution that turns a string into a regex matching for the -# string literally. -sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' - -# Sed substitution that converts a w32 file name or path -# that contains forward slashes, into one that contains -# (escaped) backslashes. A very naive implementation. -sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - -# Re-'\' parameter expansions in output of sed_double_quote_subst that -# were '\'-ed in input to the same. If an odd number of '\' preceded a -# '$' in input to sed_double_quote_subst, that '$' was protected from -# expansion. Since each input '\' is now two '\'s, look for any number -# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. -_G_bs='\\' -_G_bs2='\\\\' -_G_bs4='\\\\\\\\' -_G_dollar='\$' -sed_double_backslash="\ - s/$_G_bs4/&\\ -/g - s/^$_G_bs2$_G_dollar/$_G_bs&/ - s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g - s/\n//g" - - -## ----------------- ## -## Global variables. ## -## ----------------- ## - -# Except for the global variables explicitly listed below, the following -# functions in the '^func_' namespace, and the '^require_' namespace -# variables initialised in the 'Resource management' section, sourcing -# this file will not pollute your global namespace with anything -# else. There's no portable way to scope variables in Bourne shell -# though, so actually running these functions will sometimes place -# results into a variable named after the function, and often use -# temporary variables in the '^_G_' namespace. If you are careful to -# avoid using those namespaces casually in your sourcing script, things -# should continue to work as you expect. And, of course, you can freely -# overwrite any of the functions or variables defined here before -# calling anything to customize them. - -EXIT_SUCCESS=0 -EXIT_FAILURE=1 -EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. -EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. - -# Allow overriding, eg assuming that you follow the convention of -# putting '$debug_cmd' at the start of all your functions, you can get -# bash to show function call trace with: -# -# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name -debug_cmd=${debug_cmd-":"} -exit_cmd=: - -# By convention, finish your script with: -# -# exit $exit_status -# -# so that you can set exit_status to non-zero if you want to indicate -# something went wrong during execution without actually bailing out at -# the point of failure. -exit_status=$EXIT_SUCCESS - -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath=$0 - -# The name of this program. -progname=`$ECHO "$progpath" |$SED "$sed_basename"` - -# Make sure we have an absolute progpath for reexecution: -case $progpath in - [\\/]*|[A-Za-z]:\\*) ;; - *[\\/]*) - progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` - progdir=`cd "$progdir" && pwd` - progpath=$progdir/$progname - ;; - *) - _G_IFS=$IFS - IFS=${PATH_SEPARATOR-:} - for progdir in $PATH; do - IFS=$_G_IFS - test -x "$progdir/$progname" && break - done - IFS=$_G_IFS - test -n "$progdir" || progdir=`pwd` - progpath=$progdir/$progname - ;; -esac - - -## ----------------- ## -## Standard options. ## -## ----------------- ## - -# The following options affect the operation of the functions defined -# below, and should be set appropriately depending on run-time para- -# meters passed on the command line. - -opt_dry_run=false -opt_quiet=false -opt_verbose=false - -# Categories 'all' and 'none' are always available. Append any others -# you will pass as the first argument to func_warning from your own -# code. -warning_categories= - -# By default, display warnings according to 'opt_warning_types'. Set -# 'warning_func' to ':' to elide all warnings, or func_fatal_error to -# treat the next displayed warning as a fatal error. -warning_func=func_warn_and_continue - -# Set to 'all' to display all warnings, 'none' to suppress all -# warnings, or a space delimited list of some subset of -# 'warning_categories' to display only the listed warnings. -opt_warning_types=all - - -## -------------------- ## -## Resource management. ## -## -------------------- ## - -# This section contains definitions for functions that each ensure a -# particular resource (a file, or a non-empty configuration variable for -# example) is available, and if appropriate to extract default values -# from pertinent package files. Call them using their associated -# 'require_*' variable to ensure that they are executed, at most, once. -# -# It's entirely deliberate that calling these functions can set -# variables that don't obey the namespace limitations obeyed by the rest -# of this file, in order that that they be as useful as possible to -# callers. - - -# require_term_colors -# ------------------- -# Allow display of bold text on terminals that support it. -require_term_colors=func_require_term_colors -func_require_term_colors () -{ - $debug_cmd - - test -t 1 && { - # COLORTERM and USE_ANSI_COLORS environment variables take - # precedence, because most terminfo databases neglect to describe - # whether color sequences are supported. - test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} - - if test 1 = "$USE_ANSI_COLORS"; then - # Standard ANSI escape sequences - tc_reset='' - tc_bold=''; tc_standout='' - tc_red=''; tc_green='' - tc_blue=''; tc_cyan='' - else - # Otherwise trust the terminfo database after all. - test -n "`tput sgr0 2>/dev/null`" && { - tc_reset=`tput sgr0` - test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` - tc_standout=$tc_bold - test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` - test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` - test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` - test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` - test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` - } - fi - } - - require_term_colors=: -} - - -## ----------------- ## -## Function library. ## -## ----------------- ## - -# This section contains a variety of useful functions to call in your -# scripts. Take note of the portable wrappers for features provided by -# some modern shells, which will fall back to slower equivalents on -# less featureful shells. - - -# func_append VAR VALUE -# --------------------- -# Append VALUE onto the existing contents of VAR. - - # We should try to minimise forks, especially on Windows where they are - # unreasonably slow, so skip the feature probes when bash or zsh are - # being used: - if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then - : ${_G_HAVE_ARITH_OP="yes"} - : ${_G_HAVE_XSI_OPS="yes"} - # The += operator was introduced in bash 3.1 - case $BASH_VERSION in - [12].* | 3.0 | 3.0*) ;; - *) - : ${_G_HAVE_PLUSEQ_OP="yes"} - ;; - esac - fi - - # _G_HAVE_PLUSEQ_OP - # Can be empty, in which case the shell is probed, "yes" if += is - # useable or anything else if it does not work. - test -z "$_G_HAVE_PLUSEQ_OP" \ - && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ - && _G_HAVE_PLUSEQ_OP=yes - -if test yes = "$_G_HAVE_PLUSEQ_OP" -then - # This is an XSI compatible shell, allowing a faster implementation... - eval 'func_append () - { - $debug_cmd - - eval "$1+=\$2" - }' -else - # ...otherwise fall back to using expr, which is often a shell builtin. - func_append () - { - $debug_cmd - - eval "$1=\$$1\$2" - } -fi - - -# func_append_quoted VAR VALUE -# ---------------------------- -# Quote VALUE and append to the end of shell variable VAR, separated -# by a space. -if test yes = "$_G_HAVE_PLUSEQ_OP"; then - eval 'func_append_quoted () - { - $debug_cmd - - func_quote_for_eval "$2" - eval "$1+=\\ \$func_quote_for_eval_result" - }' -else - func_append_quoted () - { - $debug_cmd - - func_quote_for_eval "$2" - eval "$1=\$$1\\ \$func_quote_for_eval_result" - } -fi - - -# func_append_uniq VAR VALUE -# -------------------------- -# Append unique VALUE onto the existing contents of VAR, assuming -# entries are delimited by the first character of VALUE. For example: -# -# func_append_uniq options " --another-option option-argument" -# -# will only append to $options if " --another-option option-argument " -# is not already present somewhere in $options already (note spaces at -# each end implied by leading space in second argument). -func_append_uniq () -{ - $debug_cmd - - eval _G_current_value='`$ECHO $'$1'`' - _G_delim=`expr "$2" : '\(.\)'` - - case $_G_delim$_G_current_value$_G_delim in - *"$2$_G_delim"*) ;; - *) func_append "$@" ;; - esac -} - - -# func_arith TERM... -# ------------------ -# Set func_arith_result to the result of evaluating TERMs. - test -z "$_G_HAVE_ARITH_OP" \ - && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ - && _G_HAVE_ARITH_OP=yes - -if test yes = "$_G_HAVE_ARITH_OP"; then - eval 'func_arith () - { - $debug_cmd - - func_arith_result=$(( $* )) - }' -else - func_arith () - { - $debug_cmd - - func_arith_result=`expr "$@"` - } -fi - - -# func_basename FILE -# ------------------ -# Set func_basename_result to FILE with everything up to and including -# the last / stripped. -if test yes = "$_G_HAVE_XSI_OPS"; then - # If this shell supports suffix pattern removal, then use it to avoid - # forking. Hide the definitions single quotes in case the shell chokes - # on unsupported syntax... - _b='func_basename_result=${1##*/}' - _d='case $1 in - */*) func_dirname_result=${1%/*}$2 ;; - * ) func_dirname_result=$3 ;; - esac' - -else - # ...otherwise fall back to using sed. - _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' - _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` - if test "X$func_dirname_result" = "X$1"; then - func_dirname_result=$3 - else - func_append func_dirname_result "$2" - fi' -fi - -eval 'func_basename () -{ - $debug_cmd - - '"$_b"' -}' - - -# func_dirname FILE APPEND NONDIR_REPLACEMENT -# ------------------------------------------- -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -eval 'func_dirname () -{ - $debug_cmd - - '"$_d"' -}' - - -# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT -# -------------------------------------------------------- -# Perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# For efficiency, we do not delegate to the functions above but instead -# duplicate the functionality here. -eval 'func_dirname_and_basename () -{ - $debug_cmd - - '"$_b"' - '"$_d"' -}' - - -# func_echo ARG... -# ---------------- -# Echo program name prefixed message. -func_echo () -{ - $debug_cmd - - _G_message=$* - - func_echo_IFS=$IFS - IFS=$nl - for _G_line in $_G_message; do - IFS=$func_echo_IFS - $ECHO "$progname: $_G_line" - done - IFS=$func_echo_IFS -} - - -# func_echo_all ARG... -# -------------------- -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} - - -# func_echo_infix_1 INFIX ARG... -# ------------------------------ -# Echo program name, followed by INFIX on the first line, with any -# additional lines not showing INFIX. -func_echo_infix_1 () -{ - $debug_cmd - - $require_term_colors - - _G_infix=$1; shift - _G_indent=$_G_infix - _G_prefix="$progname: $_G_infix: " - _G_message=$* - - # Strip color escape sequences before counting printable length - for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" - do - test -n "$_G_tc" && { - _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` - _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` - } - done - _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes - - func_echo_infix_1_IFS=$IFS - IFS=$nl - for _G_line in $_G_message; do - IFS=$func_echo_infix_1_IFS - $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 - _G_prefix=$_G_indent - done - IFS=$func_echo_infix_1_IFS -} - - -# func_error ARG... -# ----------------- -# Echo program name prefixed message to standard error. -func_error () -{ - $debug_cmd - - $require_term_colors - - func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 -} - - -# func_fatal_error ARG... -# ----------------------- -# Echo program name prefixed message to standard error, and exit. -func_fatal_error () -{ - $debug_cmd - - func_error "$*" - exit $EXIT_FAILURE -} - - -# func_grep EXPRESSION FILENAME -# ----------------------------- -# Check whether EXPRESSION matches any line of FILENAME, without output. -func_grep () -{ - $debug_cmd - - $GREP "$1" "$2" >/dev/null 2>&1 -} - - -# func_len STRING -# --------------- -# Set func_len_result to the length of STRING. STRING may not -# start with a hyphen. - test -z "$_G_HAVE_XSI_OPS" \ - && (eval 'x=a/b/c; - test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ - && _G_HAVE_XSI_OPS=yes - -if test yes = "$_G_HAVE_XSI_OPS"; then - eval 'func_len () - { - $debug_cmd - - func_len_result=${#1} - }' -else - func_len () - { - $debug_cmd - - func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` - } -fi - - -# func_mkdir_p DIRECTORY-PATH -# --------------------------- -# Make sure the entire path to DIRECTORY-PATH is available. -func_mkdir_p () -{ - $debug_cmd - - _G_directory_path=$1 - _G_dir_list= - - if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then - - # Protect directory names starting with '-' - case $_G_directory_path in - -*) _G_directory_path=./$_G_directory_path ;; - esac - - # While some portion of DIR does not yet exist... - while test ! -d "$_G_directory_path"; do - # ...make a list in topmost first order. Use a colon delimited - # list incase some portion of path contains whitespace. - _G_dir_list=$_G_directory_path:$_G_dir_list - - # If the last portion added has no slash in it, the list is done - case $_G_directory_path in */*) ;; *) break ;; esac - - # ...otherwise throw away the child directory and loop - _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` - done - _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` - - func_mkdir_p_IFS=$IFS; IFS=: - for _G_dir in $_G_dir_list; do - IFS=$func_mkdir_p_IFS - # mkdir can fail with a 'File exist' error if two processes - # try to create one of the directories concurrently. Don't - # stop in that case! - $MKDIR "$_G_dir" 2>/dev/null || : - done - IFS=$func_mkdir_p_IFS - - # Bail out if we (or some other process) failed to create a directory. - test -d "$_G_directory_path" || \ - func_fatal_error "Failed to create '$1'" - fi -} - - -# func_mktempdir [BASENAME] -# ------------------------- -# Make a temporary directory that won't clash with other running -# libtool processes, and avoids race conditions if possible. If -# given, BASENAME is the basename for that directory. -func_mktempdir () -{ - $debug_cmd - - _G_template=${TMPDIR-/tmp}/${1-$progname} - - if test : = "$opt_dry_run"; then - # Return a directory name, but don't create it in dry-run mode - _G_tmpdir=$_G_template-$$ - else - - # If mktemp works, use that first and foremost - _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` - - if test ! -d "$_G_tmpdir"; then - # Failing that, at least try and use $RANDOM to avoid a race - _G_tmpdir=$_G_template-${RANDOM-0}$$ - - func_mktempdir_umask=`umask` - umask 0077 - $MKDIR "$_G_tmpdir" - umask $func_mktempdir_umask - fi - - # If we're not in dry-run mode, bomb out on failure - test -d "$_G_tmpdir" || \ - func_fatal_error "cannot create temporary directory '$_G_tmpdir'" - fi - - $ECHO "$_G_tmpdir" -} - - -# func_normal_abspath PATH -# ------------------------ -# Remove doubled-up and trailing slashes, "." path components, -# and cancel out any ".." path components in PATH after making -# it an absolute path. -func_normal_abspath () -{ - $debug_cmd - - # These SED scripts presuppose an absolute path with a trailing slash. - _G_pathcar='s|^/\([^/]*\).*$|\1|' - _G_pathcdr='s|^/[^/]*||' - _G_removedotparts=':dotsl - s|/\./|/|g - t dotsl - s|/\.$|/|' - _G_collapseslashes='s|/\{1,\}|/|g' - _G_finalslash='s|/*$|/|' - - # Start from root dir and reassemble the path. - func_normal_abspath_result= - func_normal_abspath_tpath=$1 - func_normal_abspath_altnamespace= - case $func_normal_abspath_tpath in - "") - # Empty path, that just means $cwd. - func_stripname '' '/' "`pwd`" - func_normal_abspath_result=$func_stripname_result - return - ;; - # The next three entries are used to spot a run of precisely - # two leading slashes without using negated character classes; - # we take advantage of case's first-match behaviour. - ///*) - # Unusual form of absolute path, do nothing. - ;; - //*) - # Not necessarily an ordinary path; POSIX reserves leading '//' - # and for example Cygwin uses it to access remote file shares - # over CIFS/SMB, so we conserve a leading double slash if found. - func_normal_abspath_altnamespace=/ - ;; - /*) - # Absolute path, do nothing. - ;; - *) - # Relative path, prepend $cwd. - func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath - ;; - esac - - # Cancel out all the simple stuff to save iterations. We also want - # the path to end with a slash for ease of parsing, so make sure - # there is one (and only one) here. - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` - while :; do - # Processed it all yet? - if test / = "$func_normal_abspath_tpath"; then - # If we ascended to the root using ".." the result may be empty now. - if test -z "$func_normal_abspath_result"; then - func_normal_abspath_result=/ - fi - break - fi - func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$_G_pathcar"` - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$_G_pathcdr"` - # Figure out what to do with it - case $func_normal_abspath_tcomponent in - "") - # Trailing empty path component, ignore it. - ;; - ..) - # Parent dir; strip last assembled component from result. - func_dirname "$func_normal_abspath_result" - func_normal_abspath_result=$func_dirname_result - ;; - *) - # Actual path component, append it. - func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" - ;; - esac - done - # Restore leading double-slash if one was found on entry. - func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result -} - - -# func_notquiet ARG... -# -------------------- -# Echo program name prefixed message only when not in quiet mode. -func_notquiet () -{ - $debug_cmd - - $opt_quiet || func_echo ${1+"$@"} - - # A bug in bash halts the script if the last line of a function - # fails when set -e is in force, so we need another command to - # work around that: - : -} - - -# func_relative_path SRCDIR DSTDIR -# -------------------------------- -# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. -func_relative_path () -{ - $debug_cmd - - func_relative_path_result= - func_normal_abspath "$1" - func_relative_path_tlibdir=$func_normal_abspath_result - func_normal_abspath "$2" - func_relative_path_tbindir=$func_normal_abspath_result - - # Ascend the tree starting from libdir - while :; do - # check if we have found a prefix of bindir - case $func_relative_path_tbindir in - $func_relative_path_tlibdir) - # found an exact match - func_relative_path_tcancelled= - break - ;; - $func_relative_path_tlibdir*) - # found a matching prefix - func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" - func_relative_path_tcancelled=$func_stripname_result - if test -z "$func_relative_path_result"; then - func_relative_path_result=. - fi - break - ;; - *) - func_dirname $func_relative_path_tlibdir - func_relative_path_tlibdir=$func_dirname_result - if test -z "$func_relative_path_tlibdir"; then - # Have to descend all the way to the root! - func_relative_path_result=../$func_relative_path_result - func_relative_path_tcancelled=$func_relative_path_tbindir - break - fi - func_relative_path_result=../$func_relative_path_result - ;; - esac - done - - # Now calculate path; take care to avoid doubling-up slashes. - func_stripname '' '/' "$func_relative_path_result" - func_relative_path_result=$func_stripname_result - func_stripname '/' '/' "$func_relative_path_tcancelled" - if test -n "$func_stripname_result"; then - func_append func_relative_path_result "/$func_stripname_result" - fi - - # Normalisation. If bindir is libdir, return '.' else relative path. - if test -n "$func_relative_path_result"; then - func_stripname './' '' "$func_relative_path_result" - func_relative_path_result=$func_stripname_result - fi - - test -n "$func_relative_path_result" || func_relative_path_result=. - - : -} - - -# func_quote_for_eval ARG... -# -------------------------- -# Aesthetically quote ARGs to be evaled later. -# This function returns two values: -# i) func_quote_for_eval_result -# double-quoted, suitable for a subsequent eval -# ii) func_quote_for_eval_unquoted_result -# has all characters that are still active within double -# quotes backslashified. -func_quote_for_eval () -{ - $debug_cmd - - func_quote_for_eval_unquoted_result= - func_quote_for_eval_result= - while test 0 -lt $#; do - case $1 in - *[\\\`\"\$]*) - _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; - *) - _G_unquoted_arg=$1 ;; - esac - if test -n "$func_quote_for_eval_unquoted_result"; then - func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" - else - func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" - fi - - case $_G_unquoted_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and variable expansion - # for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_quoted_arg=\"$_G_unquoted_arg\" - ;; - *) - _G_quoted_arg=$_G_unquoted_arg - ;; - esac - - if test -n "$func_quote_for_eval_result"; then - func_append func_quote_for_eval_result " $_G_quoted_arg" - else - func_append func_quote_for_eval_result "$_G_quoted_arg" - fi - shift - done -} - - -# func_quote_for_expand ARG -# ------------------------- -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () -{ - $debug_cmd - - case $1 in - *[\\\`\"]*) - _G_arg=`$ECHO "$1" | $SED \ - -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; - *) - _G_arg=$1 ;; - esac - - case $_G_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_arg=\"$_G_arg\" - ;; - esac - - func_quote_for_expand_result=$_G_arg -} - - -# func_stripname PREFIX SUFFIX NAME -# --------------------------------- -# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -if test yes = "$_G_HAVE_XSI_OPS"; then - eval 'func_stripname () - { - $debug_cmd - - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary variable first. - func_stripname_result=$3 - func_stripname_result=${func_stripname_result#"$1"} - func_stripname_result=${func_stripname_result%"$2"} - }' -else - func_stripname () - { - $debug_cmd - - case $2 in - .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; - *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; - esac - } -fi - - -# func_show_eval CMD [FAIL_EXP] -# ----------------------------- -# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. -func_show_eval () -{ - $debug_cmd - - _G_cmd=$1 - _G_fail_exp=${2-':'} - - func_quote_for_expand "$_G_cmd" - eval "func_notquiet $func_quote_for_expand_result" - - $opt_dry_run || { - eval "$_G_cmd" - _G_status=$? - if test 0 -ne "$_G_status"; then - eval "(exit $_G_status); $_G_fail_exp" - fi - } -} - - -# func_show_eval_locale CMD [FAIL_EXP] -# ------------------------------------ -# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. Use the saved locale for evaluation. -func_show_eval_locale () -{ - $debug_cmd - - _G_cmd=$1 - _G_fail_exp=${2-':'} - - $opt_quiet || { - func_quote_for_expand "$_G_cmd" - eval "func_echo $func_quote_for_expand_result" - } - - $opt_dry_run || { - eval "$_G_user_locale - $_G_cmd" - _G_status=$? - eval "$_G_safe_locale" - if test 0 -ne "$_G_status"; then - eval "(exit $_G_status); $_G_fail_exp" - fi - } -} - - -# func_tr_sh -# ---------- -# Turn $1 into a string suitable for a shell variable name. -# Result is stored in $func_tr_sh_result. All characters -# not in the set a-zA-Z0-9_ are replaced with '_'. Further, -# if $1 begins with a digit, a '_' is prepended as well. -func_tr_sh () -{ - $debug_cmd - - case $1 in - [0-9]* | *[!a-zA-Z0-9_]*) - func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` - ;; - * ) - func_tr_sh_result=$1 - ;; - esac -} - - -# func_verbose ARG... -# ------------------- -# Echo program name prefixed message in verbose mode only. -func_verbose () -{ - $debug_cmd - - $opt_verbose && func_echo "$*" - - : -} - - -# func_warn_and_continue ARG... -# ----------------------------- -# Echo program name prefixed warning message to standard error. -func_warn_and_continue () -{ - $debug_cmd - - $require_term_colors - - func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 -} - - -# func_warning CATEGORY ARG... -# ---------------------------- -# Echo program name prefixed warning message to standard error. Warning -# messages can be filtered according to CATEGORY, where this function -# elides messages where CATEGORY is not listed in the global variable -# 'opt_warning_types'. -func_warning () -{ - $debug_cmd - - # CATEGORY must be in the warning_categories list! - case " $warning_categories " in - *" $1 "*) ;; - *) func_internal_error "invalid warning category '$1'" ;; - esac - - _G_category=$1 - shift - - case " $opt_warning_types " in - *" $_G_category "*) $warning_func ${1+"$@"} ;; - esac -} - - -# func_sort_ver VER1 VER2 -# ----------------------- -# 'sort -V' is not generally available. -# Note this deviates from the version comparison in automake -# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a -# but this should suffice as we won't be specifying old -# version formats or redundant trailing .0 in bootstrap.conf. -# If we did want full compatibility then we should probably -# use m4_version_compare from autoconf. -func_sort_ver () -{ - $debug_cmd - - printf '%s\n%s\n' "$1" "$2" \ - | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n -} - -# func_lt_ver PREV CURR -# --------------------- -# Return true if PREV and CURR are in the correct order according to -# func_sort_ver, otherwise false. Use it like this: -# -# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." -func_lt_ver () -{ - $debug_cmd - - test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` -} - - -# Local variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" -# time-stamp-time-zone: "UTC" -# End: -#! /bin/sh - -# Set a version string for this script. -scriptversion=2015-10-07.11; # UTC - -# A portable, pluggable option parser for Bourne shell. -# Written by Gary V. Vaughan, 2010 - -# Copyright (C) 2010-2015 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. - -# 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, 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. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Please report bugs or propose patches to gary@gnu.org. - - -## ------ ## -## Usage. ## -## ------ ## - -# This file is a library for parsing options in your shell scripts along -# with assorted other useful supporting features that you can make use -# of too. -# -# For the simplest scripts you might need only: -# -# #!/bin/sh -# . relative/path/to/funclib.sh -# . relative/path/to/options-parser -# scriptversion=1.0 -# func_options ${1+"$@"} -# eval set dummy "$func_options_result"; shift -# ...rest of your script... -# -# In order for the '--version' option to work, you will need to have a -# suitably formatted comment like the one at the top of this file -# starting with '# Written by ' and ending with '# warranty; '. -# -# For '-h' and '--help' to work, you will also need a one line -# description of your script's purpose in a comment directly above the -# '# Written by ' line, like the one at the top of this file. -# -# The default options also support '--debug', which will turn on shell -# execution tracing (see the comment above debug_cmd below for another -# use), and '--verbose' and the func_verbose function to allow your script -# to display verbose messages only when your user has specified -# '--verbose'. -# -# After sourcing this file, you can plug processing for additional -# options by amending the variables from the 'Configuration' section -# below, and following the instructions in the 'Option parsing' -# section further down. - -## -------------- ## -## Configuration. ## -## -------------- ## - -# You should override these variables in your script after sourcing this -# file so that they reflect the customisations you have added to the -# option parser. - -# The usage line for option parsing errors and the start of '-h' and -# '--help' output messages. You can embed shell variables for delayed -# expansion at the time the message is displayed, but you will need to -# quote other shell meta-characters carefully to prevent them being -# expanded when the contents are evaled. -usage='$progpath [OPTION]...' - -# Short help message in response to '-h' and '--help'. Add to this or -# override it after sourcing this library to reflect the full set of -# options your script accepts. -usage_message="\ - --debug enable verbose shell tracing - -W, --warnings=CATEGORY - report the warnings falling in CATEGORY [all] - -v, --verbose verbosely report processing - --version print version information and exit - -h, --help print short or long help message and exit -" - -# Additional text appended to 'usage_message' in response to '--help'. -long_help_message=" -Warning categories include: - 'all' show all warnings - 'none' turn off all the warnings - 'error' warnings are treated as fatal errors" - -# Help message printed before fatal option parsing errors. -fatal_help="Try '\$progname --help' for more information." - - - -## ------------------------- ## -## Hook function management. ## -## ------------------------- ## - -# This section contains functions for adding, removing, and running hooks -# to the main code. A hook is just a named list of of function, that can -# be run in order later on. - -# func_hookable FUNC_NAME -# ----------------------- -# Declare that FUNC_NAME will run hooks added with -# 'func_add_hook FUNC_NAME ...'. -func_hookable () -{ - $debug_cmd - - func_append hookable_fns " $1" -} - - -# func_add_hook FUNC_NAME HOOK_FUNC -# --------------------------------- -# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must -# first have been declared "hookable" by a call to 'func_hookable'. -func_add_hook () -{ - $debug_cmd - - case " $hookable_fns " in - *" $1 "*) ;; - *) func_fatal_error "'$1' does not accept hook functions." ;; - esac - - eval func_append ${1}_hooks '" $2"' -} - - -# func_remove_hook FUNC_NAME HOOK_FUNC -# ------------------------------------ -# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. -func_remove_hook () -{ - $debug_cmd - - eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' -} - - -# func_run_hooks FUNC_NAME [ARG]... -# --------------------------------- -# Run all hook functions registered to FUNC_NAME. -# It is assumed that the list of hook functions contains nothing more -# than a whitespace-delimited list of legal shell function names, and -# no effort is wasted trying to catch shell meta-characters or preserve -# whitespace. -func_run_hooks () -{ - $debug_cmd - - _G_rc_run_hooks=false - - case " $hookable_fns " in - *" $1 "*) ;; - *) func_fatal_error "'$1' does not support hook funcions.n" ;; - esac - - eval _G_hook_fns=\$$1_hooks; shift - - for _G_hook in $_G_hook_fns; do - if eval $_G_hook '"$@"'; then - # store returned options list back into positional - # parameters for next 'cmd' execution. - eval _G_hook_result=\$${_G_hook}_result - eval set dummy "$_G_hook_result"; shift - _G_rc_run_hooks=: - fi - done - - $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result -} - - - -## --------------- ## -## Option parsing. ## -## --------------- ## - -# In order to add your own option parsing hooks, you must accept the -# full positional parameter list in your hook function, you may remove/edit -# any options that you action, and then pass back the remaining unprocessed -# options in '_result', escaped suitably for -# 'eval'. In this case you also must return $EXIT_SUCCESS to let the -# hook's caller know that it should pay attention to -# '_result'. Returning $EXIT_FAILURE signalizes that -# arguments are left untouched by the hook and therefore caller will ignore the -# result variable. -# -# Like this: -# -# my_options_prep () -# { -# $debug_cmd -# -# # Extend the existing usage message. -# usage_message=$usage_message' -# -s, --silent don'\''t print informational messages -# ' -# # No change in '$@' (ignored completely by this hook). There is -# # no need to do the equivalent (but slower) action: -# # func_quote_for_eval ${1+"$@"} -# # my_options_prep_result=$func_quote_for_eval_result -# false -# } -# func_add_hook func_options_prep my_options_prep -# -# -# my_silent_option () -# { -# $debug_cmd -# -# args_changed=false -# -# # Note that for efficiency, we parse as many options as we can -# # recognise in a loop before passing the remainder back to the -# # caller on the first unrecognised argument we encounter. -# while test $# -gt 0; do -# opt=$1; shift -# case $opt in -# --silent|-s) opt_silent=: -# args_changed=: -# ;; -# # Separate non-argument short options: -# -s*) func_split_short_opt "$_G_opt" -# set dummy "$func_split_short_opt_name" \ -# "-$func_split_short_opt_arg" ${1+"$@"} -# shift -# args_changed=: -# ;; -# *) # Make sure the first unrecognised option "$_G_opt" -# # is added back to "$@", we could need that later -# # if $args_changed is true. -# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; -# esac -# done -# -# if $args_changed; then -# func_quote_for_eval ${1+"$@"} -# my_silent_option_result=$func_quote_for_eval_result -# fi -# -# $args_changed -# } -# func_add_hook func_parse_options my_silent_option -# -# -# my_option_validation () -# { -# $debug_cmd -# -# $opt_silent && $opt_verbose && func_fatal_help "\ -# '--silent' and '--verbose' options are mutually exclusive." -# -# false -# } -# func_add_hook func_validate_options my_option_validation -# -# You'll also need to manually amend $usage_message to reflect the extra -# options you parse. It's preferable to append if you can, so that -# multiple option parsing hooks can be added safely. - - -# func_options_finish [ARG]... -# ---------------------------- -# Finishing the option parse loop (call 'func_options' hooks ATM). -func_options_finish () -{ - $debug_cmd - - _G_func_options_finish_exit=false - if func_run_hooks func_options ${1+"$@"}; then - func_options_finish_result=$func_run_hooks_result - _G_func_options_finish_exit=: - fi - - $_G_func_options_finish_exit -} - - -# func_options [ARG]... -# --------------------- -# All the functions called inside func_options are hookable. See the -# individual implementations for details. -func_hookable func_options -func_options () -{ - $debug_cmd - - _G_rc_options=false - - for my_func in options_prep parse_options validate_options options_finish - do - if eval func_$my_func '${1+"$@"}'; then - eval _G_res_var='$'"func_${my_func}_result" - eval set dummy "$_G_res_var" ; shift - _G_rc_options=: - fi - done - - # Save modified positional parameters for caller. As a top-level - # options-parser function we always need to set the 'func_options_result' - # variable (regardless the $_G_rc_options value). - if $_G_rc_options; then - func_options_result=$_G_res_var - else - func_quote_for_eval ${1+"$@"} - func_options_result=$func_quote_for_eval_result - fi - - $_G_rc_options -} - - -# func_options_prep [ARG]... -# -------------------------- -# All initialisations required before starting the option parse loop. -# Note that when calling hook functions, we pass through the list of -# positional parameters. If a hook function modifies that list, and -# needs to propagate that back to rest of this script, then the complete -# modified list must be put in 'func_run_hooks_result' before -# returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned). -func_hookable func_options_prep -func_options_prep () -{ - $debug_cmd - - # Option defaults: - opt_verbose=false - opt_warning_types= - - _G_rc_options_prep=false - if func_run_hooks func_options_prep ${1+"$@"}; then - _G_rc_options_prep=: - # save modified positional parameters for caller - func_options_prep_result=$func_run_hooks_result - fi - - $_G_rc_options_prep -} - - -# func_parse_options [ARG]... -# --------------------------- -# The main option parsing loop. -func_hookable func_parse_options -func_parse_options () -{ - $debug_cmd - - func_parse_options_result= - - _G_rc_parse_options=false - # this just eases exit handling - while test $# -gt 0; do - # Defer to hook functions for initial option parsing, so they - # get priority in the event of reusing an option name. - if func_run_hooks func_parse_options ${1+"$@"}; then - eval set dummy "$func_run_hooks_result"; shift - _G_rc_parse_options=: - fi - - # Break out of the loop if we already parsed every option. - test $# -gt 0 || break - - _G_match_parse_options=: - _G_opt=$1 - shift - case $_G_opt in - --debug|-x) debug_cmd='set -x' - func_echo "enabling shell trace mode" - $debug_cmd - ;; - - --no-warnings|--no-warning|--no-warn) - set dummy --warnings none ${1+"$@"} - shift - ;; - - --warnings|--warning|-W) - if test $# = 0 && func_missing_arg $_G_opt; then - _G_rc_parse_options=: - break - fi - case " $warning_categories $1" in - *" $1 "*) - # trailing space prevents matching last $1 above - func_append_uniq opt_warning_types " $1" - ;; - *all) - opt_warning_types=$warning_categories - ;; - *none) - opt_warning_types=none - warning_func=: - ;; - *error) - opt_warning_types=$warning_categories - warning_func=func_fatal_error - ;; - *) - func_fatal_error \ - "unsupported warning category: '$1'" - ;; - esac - shift - ;; - - --verbose|-v) opt_verbose=: ;; - --version) func_version ;; - -\?|-h) func_usage ;; - --help) func_help ;; - - # Separate optargs to long options (plugins may need this): - --*=*) func_split_equals "$_G_opt" - set dummy "$func_split_equals_lhs" \ - "$func_split_equals_rhs" ${1+"$@"} - shift - ;; - - # Separate optargs to short options: - -W*) - func_split_short_opt "$_G_opt" - set dummy "$func_split_short_opt_name" \ - "$func_split_short_opt_arg" ${1+"$@"} - shift - ;; - - # Separate non-argument short options: - -\?*|-h*|-v*|-x*) - func_split_short_opt "$_G_opt" - set dummy "$func_split_short_opt_name" \ - "-$func_split_short_opt_arg" ${1+"$@"} - shift - ;; - - --) _G_rc_parse_options=: ; break ;; - -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; - *) set dummy "$_G_opt" ${1+"$@"}; shift - _G_match_parse_options=false - break - ;; - esac - - $_G_match_parse_options && _G_rc_parse_options=: - done - - - if $_G_rc_parse_options; then - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - func_parse_options_result=$func_quote_for_eval_result - fi - - $_G_rc_parse_options -} - - -# func_validate_options [ARG]... -# ------------------------------ -# Perform any sanity checks on option settings and/or unconsumed -# arguments. -func_hookable func_validate_options -func_validate_options () -{ - $debug_cmd - - _G_rc_validate_options=false - - # Display all warnings if -W was not given. - test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" - - if func_run_hooks func_validate_options ${1+"$@"}; then - # save modified positional parameters for caller - func_validate_options_result=$func_run_hooks_result - _G_rc_validate_options=: - fi - - # Bail if the options were screwed! - $exit_cmd $EXIT_FAILURE - - $_G_rc_validate_options -} - - - -## ----------------- ## -## Helper functions. ## -## ----------------- ## - -# This section contains the helper functions used by the rest of the -# hookable option parser framework in ascii-betical order. - - -# func_fatal_help ARG... -# ---------------------- -# Echo program name prefixed message to standard error, followed by -# a help hint, and exit. -func_fatal_help () -{ - $debug_cmd - - eval \$ECHO \""Usage: $usage"\" - eval \$ECHO \""$fatal_help"\" - func_error ${1+"$@"} - exit $EXIT_FAILURE -} - - -# func_help -# --------- -# Echo long help message to standard output and exit. -func_help () -{ - $debug_cmd - - func_usage_message - $ECHO "$long_help_message" - exit 0 -} - - -# func_missing_arg ARGNAME -# ------------------------ -# Echo program name prefixed message to standard error and set global -# exit_cmd. -func_missing_arg () -{ - $debug_cmd - - func_error "Missing argument for '$1'." - exit_cmd=exit -} - - -# func_split_equals STRING -# ------------------------ -# Set func_split_equals_lhs and func_split_equals_rhs shell variables after -# splitting STRING at the '=' sign. -test -z "$_G_HAVE_XSI_OPS" \ - && (eval 'x=a/b/c; - test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ - && _G_HAVE_XSI_OPS=yes - -if test yes = "$_G_HAVE_XSI_OPS" -then - # This is an XSI compatible shell, allowing a faster implementation... - eval 'func_split_equals () - { - $debug_cmd - - func_split_equals_lhs=${1%%=*} - func_split_equals_rhs=${1#*=} - test "x$func_split_equals_lhs" = "x$1" \ - && func_split_equals_rhs= - }' -else - # ...otherwise fall back to using expr, which is often a shell builtin. - func_split_equals () - { - $debug_cmd - - func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` - func_split_equals_rhs= - test "x$func_split_equals_lhs" = "x$1" \ - || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` - } -fi #func_split_equals - - -# func_split_short_opt SHORTOPT -# ----------------------------- -# Set func_split_short_opt_name and func_split_short_opt_arg shell -# variables after splitting SHORTOPT after the 2nd character. -if test yes = "$_G_HAVE_XSI_OPS" -then - # This is an XSI compatible shell, allowing a faster implementation... - eval 'func_split_short_opt () - { - $debug_cmd - - func_split_short_opt_arg=${1#??} - func_split_short_opt_name=${1%"$func_split_short_opt_arg"} - }' -else - # ...otherwise fall back to using expr, which is often a shell builtin. - func_split_short_opt () - { - $debug_cmd - - func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` - func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` - } -fi #func_split_short_opt - - -# func_usage -# ---------- -# Echo short help message to standard output and exit. -func_usage () -{ - $debug_cmd - - func_usage_message - $ECHO "Run '$progname --help |${PAGER-more}' for full usage" - exit 0 -} - - -# func_usage_message -# ------------------ -# Echo short help message to standard output. -func_usage_message () -{ - $debug_cmd - - eval \$ECHO \""Usage: $usage"\" - echo - $SED -n 's|^# || - /^Written by/{ - x;p;x - } - h - /^Written by/q' < "$progpath" - echo - eval \$ECHO \""$usage_message"\" -} - - -# func_version -# ------------ -# Echo version message to standard output and exit. -func_version () -{ - $debug_cmd - - printf '%s\n' "$progname $scriptversion" - $SED -n ' - /(C)/!b go - :more - /\./!{ - N - s|\n# | | - b more - } - :go - /^# Written by /,/# warranty; / { - s|^# || - s|^# *$|| - s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| - p - } - /^# Written by / { - s|^# || - p - } - /^warranty; /q' < "$progpath" - - exit $? -} - - -# Local variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" -# time-stamp-time-zone: "UTC" -# End: - -# Set a version string. -scriptversion='(GNU libtool) 2.4.6' - - -# func_echo ARG... -# ---------------- -# Libtool also displays the current mode in messages, so override -# funclib.sh func_echo with this custom definition. -func_echo () -{ - $debug_cmd - - _G_message=$* - - func_echo_IFS=$IFS - IFS=$nl - for _G_line in $_G_message; do - IFS=$func_echo_IFS - $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" - done - IFS=$func_echo_IFS -} - - -# func_warning ARG... -# ------------------- -# Libtool warnings are not categorized, so override funclib.sh -# func_warning with this simpler definition. -func_warning () -{ - $debug_cmd - - $warning_func ${1+"$@"} -} - - -## ---------------- ## -## Options parsing. ## -## ---------------- ## - -# Hook in the functions to make sure our own options are parsed during -# the option parsing loop. - -usage='$progpath [OPTION]... [MODE-ARG]...' - -# Short help message in response to '-h'. -usage_message="Options: - --config show all configuration variables - --debug enable verbose shell tracing - -n, --dry-run display commands without modifying any files - --features display basic configuration information and exit - --mode=MODE use operation mode MODE - --no-warnings equivalent to '-Wnone' - --preserve-dup-deps don't remove duplicate dependency libraries - --quiet, --silent don't print informational messages - --tag=TAG use configuration variables from tag TAG - -v, --verbose print more informational messages than default - --version print version information - -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] - -h, --help, --help-all print short, long, or detailed help message -" - -# Additional text appended to 'usage_message' in response to '--help'. -func_help () -{ - $debug_cmd - - func_usage_message - $ECHO "$long_help_message - -MODE must be one of the following: - - clean remove files from the build directory - compile compile a source file into a libtool object - execute automatically set library path, then run a program - finish complete the installation of libtool libraries - install install libraries or executables - link create a library or an executable - uninstall remove libraries from an installed directory - -MODE-ARGS vary depending on the MODE. When passed as first option, -'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. -Try '$progname --help --mode=MODE' for a more detailed description of MODE. - -When reporting a bug, please describe a test case to reproduce it and -include the following information: - - host-triplet: $host - shell: $SHELL - compiler: $LTCC - compiler flags: $LTCFLAGS - linker: $LD (gnu? $with_gnu_ld) - version: $progname $scriptversion Debian-2.4.6-9 - automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` - autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` - -Report bugs to . -GNU libtool home page: . -General help using GNU software: ." - exit 0 -} - - -# func_lo2o OBJECT-NAME -# --------------------- -# Transform OBJECT-NAME from a '.lo' suffix to the platform specific -# object suffix. - -lo2o=s/\\.lo\$/.$objext/ -o2lo=s/\\.$objext\$/.lo/ - -if test yes = "$_G_HAVE_XSI_OPS"; then - eval 'func_lo2o () - { - case $1 in - *.lo) func_lo2o_result=${1%.lo}.$objext ;; - * ) func_lo2o_result=$1 ;; - esac - }' - - # func_xform LIBOBJ-OR-SOURCE - # --------------------------- - # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) - # suffix to a '.lo' libtool-object suffix. - eval 'func_xform () - { - func_xform_result=${1%.*}.lo - }' -else - # ...otherwise fall back to using sed. - func_lo2o () - { - func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` - } - - func_xform () - { - func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` - } -fi - - -# func_fatal_configuration ARG... -# ------------------------------- -# Echo program name prefixed message to standard error, followed by -# a configuration failure hint, and exit. -func_fatal_configuration () -{ - func__fatal_error ${1+"$@"} \ - "See the $PACKAGE documentation for more information." \ - "Fatal configuration error." -} - - -# func_config -# ----------- -# Display the configuration for all the tags in this script. -func_config () -{ - re_begincf='^# ### BEGIN LIBTOOL' - re_endcf='^# ### END LIBTOOL' - - # Default configuration. - $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" - - # Now print the configurations for the tags. - for tagname in $taglist; do - $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" - done - - exit $? -} - - -# func_features -# ------------- -# Display the features supported by this script. -func_features () -{ - echo "host: $host" - if test yes = "$build_libtool_libs"; then - echo "enable shared libraries" - else - echo "disable shared libraries" - fi - if test yes = "$build_old_libs"; then - echo "enable static libraries" - else - echo "disable static libraries" - fi - - exit $? -} - - -# func_enable_tag TAGNAME -# ----------------------- -# Verify that TAGNAME is valid, and either flag an error and exit, or -# enable the TAGNAME tag. We also add TAGNAME to the global $taglist -# variable here. -func_enable_tag () -{ - # Global variable: - tagname=$1 - - re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" - re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" - sed_extractcf=/$re_begincf/,/$re_endcf/p - - # Validate tagname. - case $tagname in - *[!-_A-Za-z0-9,/]*) - func_fatal_error "invalid tag name: $tagname" - ;; - esac - - # Don't test for the "default" C tag, as we know it's - # there but not specially marked. - case $tagname in - CC) ;; - *) - if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then - taglist="$taglist $tagname" - - # Evaluate the configuration. Be careful to quote the path - # and the sed script, to avoid splitting on whitespace, but - # also don't use non-portable quotes within backquotes within - # quotes we have to do it in 2 steps: - extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` - eval "$extractedcf" - else - func_error "ignoring unknown tag $tagname" - fi - ;; - esac -} - - -# func_check_version_match -# ------------------------ -# Ensure that we are using m4 macros, and libtool script from the same -# release of libtool. -func_check_version_match () -{ - if test "$package_revision" != "$macro_revision"; then - if test "$VERSION" != "$macro_version"; then - if test -z "$macro_version"; then - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from an older release. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - fi - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -$progname: but the definition of this LT_INIT comes from revision $macro_revision. -$progname: You should recreate aclocal.m4 with macros from revision $package_revision -$progname: of $PACKAGE $VERSION and run autoconf again. -_LT_EOF - fi - - exit $EXIT_MISMATCH - fi -} - - -# libtool_options_prep [ARG]... -# ----------------------------- -# Preparation for options parsed by libtool. -libtool_options_prep () -{ - $debug_mode - - # Option defaults: - opt_config=false - opt_dlopen= - opt_dry_run=false - opt_help=false - opt_mode= - opt_preserve_dup_deps=false - opt_quiet=false - - nonopt= - preserve_args= - - _G_rc_lt_options_prep=: - - # Shorthand for --mode=foo, only valid as the first argument - case $1 in - clean|clea|cle|cl) - shift; set dummy --mode clean ${1+"$@"}; shift - ;; - compile|compil|compi|comp|com|co|c) - shift; set dummy --mode compile ${1+"$@"}; shift - ;; - execute|execut|execu|exec|exe|ex|e) - shift; set dummy --mode execute ${1+"$@"}; shift - ;; - finish|finis|fini|fin|fi|f) - shift; set dummy --mode finish ${1+"$@"}; shift - ;; - install|instal|insta|inst|ins|in|i) - shift; set dummy --mode install ${1+"$@"}; shift - ;; - link|lin|li|l) - shift; set dummy --mode link ${1+"$@"}; shift - ;; - uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) - shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; - *) - _G_rc_lt_options_prep=false - ;; - esac - - if $_G_rc_lt_options_prep; then - # Pass back the list of options. - func_quote_for_eval ${1+"$@"} - libtool_options_prep_result=$func_quote_for_eval_result - fi - - $_G_rc_lt_options_prep -} -func_add_hook func_options_prep libtool_options_prep - - -# libtool_parse_options [ARG]... -# --------------------------------- -# Provide handling for libtool specific options. -libtool_parse_options () -{ - $debug_cmd - - _G_rc_lt_parse_options=false - - # Perform our own loop to consume as many options as possible in - # each iteration. - while test $# -gt 0; do - _G_match_lt_parse_options=: - _G_opt=$1 - shift - case $_G_opt in - --dry-run|--dryrun|-n) - opt_dry_run=: - ;; - - --config) func_config ;; - - --dlopen|-dlopen) - opt_dlopen="${opt_dlopen+$opt_dlopen -}$1" - shift - ;; - - --preserve-dup-deps) - opt_preserve_dup_deps=: ;; - - --features) func_features ;; - - --finish) set dummy --mode finish ${1+"$@"}; shift ;; - - --help) opt_help=: ;; - - --help-all) opt_help=': help-all' ;; - - --mode) test $# = 0 && func_missing_arg $_G_opt && break - opt_mode=$1 - case $1 in - # Valid mode arguments: - clean|compile|execute|finish|install|link|relink|uninstall) ;; - - # Catch anything else as an error - *) func_error "invalid argument for $_G_opt" - exit_cmd=exit - break - ;; - esac - shift - ;; - - --no-silent|--no-quiet) - opt_quiet=false - func_append preserve_args " $_G_opt" - ;; - - --no-warnings|--no-warning|--no-warn) - opt_warning=false - func_append preserve_args " $_G_opt" - ;; - - --no-verbose) - opt_verbose=false - func_append preserve_args " $_G_opt" - ;; - - --silent|--quiet) - opt_quiet=: - opt_verbose=false - func_append preserve_args " $_G_opt" - ;; - - --tag) test $# = 0 && func_missing_arg $_G_opt && break - opt_tag=$1 - func_append preserve_args " $_G_opt $1" - func_enable_tag "$1" - shift - ;; - - --verbose|-v) opt_quiet=false - opt_verbose=: - func_append preserve_args " $_G_opt" - ;; - - # An option not handled by this hook function: - *) set dummy "$_G_opt" ${1+"$@"} ; shift - _G_match_lt_parse_options=false - break - ;; - esac - $_G_match_lt_parse_options && _G_rc_lt_parse_options=: - done - - if $_G_rc_lt_parse_options; then - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - libtool_parse_options_result=$func_quote_for_eval_result - fi - - $_G_rc_lt_parse_options -} -func_add_hook func_parse_options libtool_parse_options - - - -# libtool_validate_options [ARG]... -# --------------------------------- -# Perform any sanity checks on option settings and/or unconsumed -# arguments. -libtool_validate_options () -{ - # save first non-option argument - if test 0 -lt $#; then - nonopt=$1 - shift - fi - - # preserve --debug - test : = "$debug_cmd" || func_append preserve_args " --debug" - - case $host in - # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 - # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 - *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) - # don't eliminate duplications in $postdeps and $predeps - opt_duplicate_compiler_generated_deps=: - ;; - *) - opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps - ;; - esac - - $opt_help || { - # Sanity checks first: - func_check_version_match - - test yes != "$build_libtool_libs" \ - && test yes != "$build_old_libs" \ - && func_fatal_configuration "not configured to build any kind of library" - - # Darwin sucks - eval std_shrext=\"$shrext_cmds\" - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$opt_dlopen" && test execute != "$opt_mode"; then - func_error "unrecognized option '-dlopen'" - $ECHO "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Change the help message to a mode-specific one. - generic_help=$help - help="Try '$progname --help --mode=$opt_mode' for more information." - } - - # Pass back the unparsed argument list - func_quote_for_eval ${1+"$@"} - libtool_validate_options_result=$func_quote_for_eval_result -} -func_add_hook func_validate_options libtool_validate_options - - -# Process options as early as possible so that --help and --version -# can return quickly. -func_options ${1+"$@"} -eval set dummy "$func_options_result"; shift - - - -## ----------- ## -## Main. ## -## ----------- ## - -magic='%%%MAGIC variable%%%' -magic_exe='%%%MAGIC EXE variable%%%' - -# Global variables. -extracted_archives= -extracted_serial=0 - -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd= - - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' -} - -# func_generated_by_libtool -# True iff stdin has been generated by Libtool. This function is only -# a basic sanity check; it will hardly flush out determined imposters. -func_generated_by_libtool_p () -{ - $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 -} - -# func_lalib_p file -# True iff FILE is a libtool '.la' library or '.lo' object file. -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_lalib_p () -{ - test -f "$1" && - $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p -} - -# func_lalib_unsafe_p file -# True iff FILE is a libtool '.la' library or '.lo' object file. -# This function implements the same check as func_lalib_p without -# resorting to external programs. To this end, it redirects stdin and -# closes it afterwards, without saving the original file descriptor. -# As a safety measure, use it only where a negative result would be -# fatal anyway. Works if 'file' does not exist. -func_lalib_unsafe_p () -{ - lalib_p=no - if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then - for lalib_p_l in 1 2 3 4 - do - read lalib_p_line - case $lalib_p_line in - \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; - esac - done - exec 0<&5 5<&- - fi - test yes = "$lalib_p" -} - -# func_ltwrapper_script_p file -# True iff FILE is a libtool wrapper script -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_script_p () -{ - test -f "$1" && - $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p -} - -# func_ltwrapper_executable_p file -# True iff FILE is a libtool wrapper executable -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_executable_p () -{ - func_ltwrapper_exec_suffix= - case $1 in - *.exe) ;; - *) func_ltwrapper_exec_suffix=.exe ;; - esac - $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 -} - -# func_ltwrapper_scriptname file -# Assumes file is an ltwrapper_executable -# uses $file to determine the appropriate filename for a -# temporary ltwrapper_script. -func_ltwrapper_scriptname () -{ - func_dirname_and_basename "$1" "" "." - func_stripname '' '.exe' "$func_basename_result" - func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper -} - -# func_ltwrapper_p file -# True iff FILE is a libtool wrapper script or wrapper executable -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_p () -{ - func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" -} - - -# func_execute_cmds commands fail_cmd -# Execute tilde-delimited COMMANDS. -# If FAIL_CMD is given, eval that upon failure. -# FAIL_CMD may read-access the current command in variable CMD! -func_execute_cmds () -{ - $debug_cmd - - save_ifs=$IFS; IFS='~' - for cmd in $1; do - IFS=$sp$nl - eval cmd=\"$cmd\" - IFS=$save_ifs - func_show_eval "$cmd" "${2-:}" - done - IFS=$save_ifs -} - - -# func_source file -# Source FILE, adding directory component if necessary. -# Note that it is not necessary on cygwin/mingw to append a dot to -# FILE even if both FILE and FILE.exe exist: automatic-append-.exe -# behavior happens only for exec(3), not for open(2)! Also, sourcing -# 'FILE.' does not work on cygwin managed mounts. -func_source () -{ - $debug_cmd - - case $1 in - */* | *\\*) . "$1" ;; - *) . "./$1" ;; - esac -} - - -# func_resolve_sysroot PATH -# Replace a leading = in PATH with a sysroot. Store the result into -# func_resolve_sysroot_result -func_resolve_sysroot () -{ - func_resolve_sysroot_result=$1 - case $func_resolve_sysroot_result in - =*) - func_stripname '=' '' "$func_resolve_sysroot_result" - func_resolve_sysroot_result=$lt_sysroot$func_stripname_result - ;; - esac -} - -# func_replace_sysroot PATH -# If PATH begins with the sysroot, replace it with = and -# store the result into func_replace_sysroot_result. -func_replace_sysroot () -{ - case $lt_sysroot:$1 in - ?*:"$lt_sysroot"*) - func_stripname "$lt_sysroot" '' "$1" - func_replace_sysroot_result='='$func_stripname_result - ;; - *) - # Including no sysroot. - func_replace_sysroot_result=$1 - ;; - esac -} - -# func_infer_tag arg -# Infer tagged configuration to use if any are available and -# if one wasn't chosen via the "--tag" command line option. -# Only attempt this if the compiler in the base compile -# command doesn't match the default compiler. -# arg is usually of the form 'gcc ...' -func_infer_tag () -{ - $debug_cmd - - if test -n "$available_tags" && test -z "$tagname"; then - CC_quoted= - for arg in $CC; do - func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` - case $@ in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ - " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then - # Evaluate the configuration. - eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" - CC_quoted= - for arg in $CC; do - # Double-quote args containing other shell metacharacters. - func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` - case "$@ " in - " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ - " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) - # The compiler in the base compile command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - func_echo "unable to infer tagged configuration" - func_fatal_error "specify a tag with '--tag'" -# else -# func_verbose "using $tagname tagged configuration" - fi - ;; - esac - fi -} - - - -# func_write_libtool_object output_name pic_name nonpic_name -# Create a libtool object file (analogous to a ".la" file), -# but don't create it if we're doing a dry run. -func_write_libtool_object () -{ - write_libobj=$1 - if test yes = "$build_libtool_libs"; then - write_lobj=\'$2\' - else - write_lobj=none - fi - - if test yes = "$build_old_libs"; then - write_oldobj=\'$3\' - else - write_oldobj=none - fi - - $opt_dry_run || { - cat >${write_libobj}T </dev/null` - if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then - func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | - $SED -e "$sed_naive_backslashify"` - else - func_convert_core_file_wine_to_w32_result= - fi - fi -} -# end: func_convert_core_file_wine_to_w32 - - -# func_convert_core_path_wine_to_w32 ARG -# Helper function used by path conversion functions when $build is *nix, and -# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly -# configured wine environment available, with the winepath program in $build's -# $PATH. Assumes ARG has no leading or trailing path separator characters. -# -# ARG is path to be converted from $build format to win32. -# Result is available in $func_convert_core_path_wine_to_w32_result. -# Unconvertible file (directory) names in ARG are skipped; if no directory names -# are convertible, then the result may be empty. -func_convert_core_path_wine_to_w32 () -{ - $debug_cmd - - # unfortunately, winepath doesn't convert paths, only file names - func_convert_core_path_wine_to_w32_result= - if test -n "$1"; then - oldIFS=$IFS - IFS=: - for func_convert_core_path_wine_to_w32_f in $1; do - IFS=$oldIFS - func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" - if test -n "$func_convert_core_file_wine_to_w32_result"; then - if test -z "$func_convert_core_path_wine_to_w32_result"; then - func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result - else - func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" - fi - fi - done - IFS=$oldIFS - fi -} -# end: func_convert_core_path_wine_to_w32 - - -# func_cygpath ARGS... -# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when -# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) -# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or -# (2), returns the Cygwin file name or path in func_cygpath_result (input -# file name or path is assumed to be in w32 format, as previously converted -# from $build's *nix or MSYS format). In case (3), returns the w32 file name -# or path in func_cygpath_result (input file name or path is assumed to be in -# Cygwin format). Returns an empty string on error. -# -# ARGS are passed to cygpath, with the last one being the file name or path to -# be converted. -# -# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH -# environment variable; do not put it in $PATH. -func_cygpath () -{ - $debug_cmd - - if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then - func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` - if test "$?" -ne 0; then - # on failure, ensure result is empty - func_cygpath_result= - fi - else - func_cygpath_result= - func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" - fi -} -#end: func_cygpath - - -# func_convert_core_msys_to_w32 ARG -# Convert file name or path ARG from MSYS format to w32 format. Return -# result in func_convert_core_msys_to_w32_result. -func_convert_core_msys_to_w32 () -{ - $debug_cmd - - # awkward: cmd appends spaces to result - func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | - $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` -} -#end: func_convert_core_msys_to_w32 - - -# func_convert_file_check ARG1 ARG2 -# Verify that ARG1 (a file name in $build format) was converted to $host -# format in ARG2. Otherwise, emit an error message, but continue (resetting -# func_to_host_file_result to ARG1). -func_convert_file_check () -{ - $debug_cmd - - if test -z "$2" && test -n "$1"; then - func_error "Could not determine host file name corresponding to" - func_error " '$1'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback: - func_to_host_file_result=$1 - fi -} -# end func_convert_file_check - - -# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH -# Verify that FROM_PATH (a path in $build format) was converted to $host -# format in TO_PATH. Otherwise, emit an error message, but continue, resetting -# func_to_host_file_result to a simplistic fallback value (see below). -func_convert_path_check () -{ - $debug_cmd - - if test -z "$4" && test -n "$3"; then - func_error "Could not determine the host path corresponding to" - func_error " '$3'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback. This is a deliberately simplistic "conversion" and - # should not be "improved". See libtool.info. - if test "x$1" != "x$2"; then - lt_replace_pathsep_chars="s|$1|$2|g" - func_to_host_path_result=`echo "$3" | - $SED -e "$lt_replace_pathsep_chars"` - else - func_to_host_path_result=$3 - fi - fi -} -# end func_convert_path_check - - -# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG -# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT -# and appending REPL if ORIG matches BACKPAT. -func_convert_path_front_back_pathsep () -{ - $debug_cmd - - case $4 in - $1 ) func_to_host_path_result=$3$func_to_host_path_result - ;; - esac - case $4 in - $2 ) func_append func_to_host_path_result "$3" - ;; - esac -} -# end func_convert_path_front_back_pathsep - - -################################################## -# $build to $host FILE NAME CONVERSION FUNCTIONS # -################################################## -# invoked via '$to_host_file_cmd ARG' -# -# In each case, ARG is the path to be converted from $build to $host format. -# Result will be available in $func_to_host_file_result. - - -# func_to_host_file ARG -# Converts the file name ARG from $build format to $host format. Return result -# in func_to_host_file_result. -func_to_host_file () -{ - $debug_cmd - - $to_host_file_cmd "$1" -} -# end func_to_host_file - - -# func_to_tool_file ARG LAZY -# converts the file name ARG from $build format to toolchain format. Return -# result in func_to_tool_file_result. If the conversion in use is listed -# in (the comma separated) LAZY, no conversion takes place. -func_to_tool_file () -{ - $debug_cmd - - case ,$2, in - *,"$to_tool_file_cmd",*) - func_to_tool_file_result=$1 - ;; - *) - $to_tool_file_cmd "$1" - func_to_tool_file_result=$func_to_host_file_result - ;; - esac -} -# end func_to_tool_file - - -# func_convert_file_noop ARG -# Copy ARG to func_to_host_file_result. -func_convert_file_noop () -{ - func_to_host_file_result=$1 -} -# end func_convert_file_noop - - -# func_convert_file_msys_to_w32 ARG -# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic -# conversion to w32 is not available inside the cwrapper. Returns result in -# func_to_host_file_result. -func_convert_file_msys_to_w32 () -{ - $debug_cmd - - func_to_host_file_result=$1 - if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_to_host_file_result=$func_convert_core_msys_to_w32_result - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_msys_to_w32 - - -# func_convert_file_cygwin_to_w32 ARG -# Convert file name ARG from Cygwin to w32 format. Returns result in -# func_to_host_file_result. -func_convert_file_cygwin_to_w32 () -{ - $debug_cmd - - func_to_host_file_result=$1 - if test -n "$1"; then - # because $build is cygwin, we call "the" cygpath in $PATH; no need to use - # LT_CYGPATH in this case. - func_to_host_file_result=`cygpath -m "$1"` - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_cygwin_to_w32 - - -# func_convert_file_nix_to_w32 ARG -# Convert file name ARG from *nix to w32 format. Requires a wine environment -# and a working winepath. Returns result in func_to_host_file_result. -func_convert_file_nix_to_w32 () -{ - $debug_cmd - - func_to_host_file_result=$1 - if test -n "$1"; then - func_convert_core_file_wine_to_w32 "$1" - func_to_host_file_result=$func_convert_core_file_wine_to_w32_result - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_nix_to_w32 - - -# func_convert_file_msys_to_cygwin ARG -# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -# Returns result in func_to_host_file_result. -func_convert_file_msys_to_cygwin () -{ - $debug_cmd - - func_to_host_file_result=$1 - if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_cygpath -u "$func_convert_core_msys_to_w32_result" - func_to_host_file_result=$func_cygpath_result - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_msys_to_cygwin - - -# func_convert_file_nix_to_cygwin ARG -# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed -# in a wine environment, working winepath, and LT_CYGPATH set. Returns result -# in func_to_host_file_result. -func_convert_file_nix_to_cygwin () -{ - $debug_cmd - - func_to_host_file_result=$1 - if test -n "$1"; then - # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. - func_convert_core_file_wine_to_w32 "$1" - func_cygpath -u "$func_convert_core_file_wine_to_w32_result" - func_to_host_file_result=$func_cygpath_result - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_nix_to_cygwin - - -############################################# -# $build to $host PATH CONVERSION FUNCTIONS # -############################################# -# invoked via '$to_host_path_cmd ARG' -# -# In each case, ARG is the path to be converted from $build to $host format. -# The result will be available in $func_to_host_path_result. -# -# Path separators are also converted from $build format to $host format. If -# ARG begins or ends with a path separator character, it is preserved (but -# converted to $host format) on output. -# -# All path conversion functions are named using the following convention: -# file name conversion function : func_convert_file_X_to_Y () -# path conversion function : func_convert_path_X_to_Y () -# where, for any given $build/$host combination the 'X_to_Y' value is the -# same. If conversion functions are added for new $build/$host combinations, -# the two new functions must follow this pattern, or func_init_to_host_path_cmd -# will break. - - -# func_init_to_host_path_cmd -# Ensures that function "pointer" variable $to_host_path_cmd is set to the -# appropriate value, based on the value of $to_host_file_cmd. -to_host_path_cmd= -func_init_to_host_path_cmd () -{ - $debug_cmd - - if test -z "$to_host_path_cmd"; then - func_stripname 'func_convert_file_' '' "$to_host_file_cmd" - to_host_path_cmd=func_convert_path_$func_stripname_result - fi -} - - -# func_to_host_path ARG -# Converts the path ARG from $build format to $host format. Return result -# in func_to_host_path_result. -func_to_host_path () -{ - $debug_cmd - - func_init_to_host_path_cmd - $to_host_path_cmd "$1" -} -# end func_to_host_path - - -# func_convert_path_noop ARG -# Copy ARG to func_to_host_path_result. -func_convert_path_noop () -{ - func_to_host_path_result=$1 -} -# end func_convert_path_noop - - -# func_convert_path_msys_to_w32 ARG -# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic -# conversion to w32 is not available inside the cwrapper. Returns result in -# func_to_host_path_result. -func_convert_path_msys_to_w32 () -{ - $debug_cmd - - func_to_host_path_result=$1 - if test -n "$1"; then - # Remove leading and trailing path separator characters from ARG. MSYS - # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; - # and winepath ignores them completely. - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result=$func_convert_core_msys_to_w32_result - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_msys_to_w32 - - -# func_convert_path_cygwin_to_w32 ARG -# Convert path ARG from Cygwin to w32 format. Returns result in -# func_to_host_file_result. -func_convert_path_cygwin_to_w32 () -{ - $debug_cmd - - func_to_host_path_result=$1 - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_cygwin_to_w32 - - -# func_convert_path_nix_to_w32 ARG -# Convert path ARG from *nix to w32 format. Requires a wine environment and -# a working winepath. Returns result in func_to_host_file_result. -func_convert_path_nix_to_w32 () -{ - $debug_cmd - - func_to_host_path_result=$1 - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result=$func_convert_core_path_wine_to_w32_result - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_nix_to_w32 - - -# func_convert_path_msys_to_cygwin ARG -# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -# Returns result in func_to_host_file_result. -func_convert_path_msys_to_cygwin () -{ - $debug_cmd - - func_to_host_path_result=$1 - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_msys_to_w32_result" - func_to_host_path_result=$func_cygpath_result - func_convert_path_check : : \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" : "$1" - fi -} -# end func_convert_path_msys_to_cygwin - - -# func_convert_path_nix_to_cygwin ARG -# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a -# a wine environment, working winepath, and LT_CYGPATH set. Returns result in -# func_to_host_file_result. -func_convert_path_nix_to_cygwin () -{ - $debug_cmd - - func_to_host_path_result=$1 - if test -n "$1"; then - # Remove leading and trailing path separator characters from - # ARG. msys behavior is inconsistent here, cygpath turns them - # into '.;' and ';.', and winepath ignores them completely. - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" - func_to_host_path_result=$func_cygpath_result - func_convert_path_check : : \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" : "$1" - fi -} -# end func_convert_path_nix_to_cygwin - - -# func_dll_def_p FILE -# True iff FILE is a Windows DLL '.def' file. -# Keep in sync with _LT_DLL_DEF_P in libtool.m4 -func_dll_def_p () -{ - $debug_cmd - - func_dll_def_p_tmp=`$SED -n \ - -e 's/^[ ]*//' \ - -e '/^\(;.*\)*$/d' \ - -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ - -e q \ - "$1"` - test DEF = "$func_dll_def_p_tmp" -} - - -# func_mode_compile arg... -func_mode_compile () -{ - $debug_cmd - - # Get the compilation command and the source file. - base_compile= - srcfile=$nonopt # always keep a non-empty value in "srcfile" - suppress_opt=yes - suppress_output= - arg_mode=normal - libobj= - later= - pie_flag= - - for arg - do - case $arg_mode in - arg ) - # do not "continue". Instead, add this to base_compile - lastarg=$arg - arg_mode=normal - ;; - - target ) - libobj=$arg - arg_mode=normal - continue - ;; - - normal ) - # Accept any command-line options. - case $arg in - -o) - test -n "$libobj" && \ - func_fatal_error "you cannot specify '-o' more than once" - arg_mode=target - continue - ;; - - -pie | -fpie | -fPIE) - func_append pie_flag " $arg" - continue - ;; - - -shared | -static | -prefer-pic | -prefer-non-pic) - func_append later " $arg" - continue - ;; - - -no-suppress) - suppress_opt=no - continue - ;; - - -Xcompiler) - arg_mode=arg # the next one goes into the "base_compile" arg list - continue # The current "srcfile" will either be retained or - ;; # replaced later. I would guess that would be a bug. - - -Wc,*) - func_stripname '-Wc,' '' "$arg" - args=$func_stripname_result - lastarg= - save_ifs=$IFS; IFS=, - for arg in $args; do - IFS=$save_ifs - func_append_quoted lastarg "$arg" - done - IFS=$save_ifs - func_stripname ' ' '' "$lastarg" - lastarg=$func_stripname_result - - # Add the arguments to base_compile. - func_append base_compile " $lastarg" - continue - ;; - - *) - # Accept the current argument as the source file. - # The previous "srcfile" becomes the current argument. - # - lastarg=$srcfile - srcfile=$arg - ;; - esac # case $arg - ;; - esac # case $arg_mode - - # Aesthetically quote the previous argument. - func_append_quoted base_compile "$lastarg" - done # for arg - - case $arg_mode in - arg) - func_fatal_error "you must specify an argument for -Xcompile" - ;; - target) - func_fatal_error "you must specify a target with '-o'" - ;; - *) - # Get the name of the library object. - test -z "$libobj" && { - func_basename "$srcfile" - libobj=$func_basename_result - } - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo - case $libobj in - *.[cCFSifmso] | \ - *.ada | *.adb | *.ads | *.asm | \ - *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ - *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) - func_xform "$libobj" - libobj=$func_xform_result - ;; - esac - - case $libobj in - *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; - *) - func_fatal_error "cannot determine name of library object from '$libobj'" - ;; - esac - - func_infer_tag $base_compile - - for arg in $later; do - case $arg in - -shared) - test yes = "$build_libtool_libs" \ - || func_fatal_configuration "cannot build a shared library" - build_old_libs=no - continue - ;; - - -static) - build_libtool_libs=no - build_old_libs=yes - continue - ;; - - -prefer-pic) - pic_mode=yes - continue - ;; - - -prefer-non-pic) - pic_mode=no - continue - ;; - esac - done - - func_quote_for_eval "$libobj" - test "X$libobj" != "X$func_quote_for_eval_result" \ - && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ - && func_warning "libobj name '$libobj' may not contain shell special characters." - func_dirname_and_basename "$obj" "/" "" - objname=$func_basename_result - xdir=$func_dirname_result - lobj=$xdir$objdir/$objname - - test -z "$base_compile" && \ - func_fatal_help "you must specify a compilation command" - - # Delete any leftover library objects. - if test yes = "$build_old_libs"; then - removelist="$obj $lobj $libobj ${libobj}T" - else - removelist="$lobj $libobj ${libobj}T" - fi - - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in - cygwin* | mingw* | pw32* | os2* | cegcc*) - pic_mode=default - ;; - esac - if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then - # non-PIC code in shared libraries is not supported - pic_mode=default - fi - - # Calculate the filename of the output object if compiler does - # not support -o with -c - if test no = "$compiler_c_o"; then - output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext - lockfile=$output_obj.lock - else - output_obj= - need_locks=no - lockfile= - fi - - # Lock this critical section if it is needed - # We use this script file to make the link, it avoids creating a new file - if test yes = "$need_locks"; then - until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do - func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - elif test warn = "$need_locks"; then - if test -f "$lockfile"; then - $ECHO "\ -*** ERROR, $lockfile exists and contains: -`cat $lockfile 2>/dev/null` - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support '-c' and '-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - func_append removelist " $output_obj" - $ECHO "$srcfile" > "$lockfile" - fi - - $opt_dry_run || $RM $removelist - func_append removelist " $lockfile" - trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 - - func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 - srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result - - # Only build a PIC object if we are building libtool libraries. - if test yes = "$build_libtool_libs"; then - # Without this assignment, base_compile gets emptied. - fbsd_hideous_sh_bug=$base_compile - - if test no != "$pic_mode"; then - command="$base_compile $qsrcfile $pic_flag" - else - # Don't build PIC code - command="$base_compile $qsrcfile" - fi - - func_mkdir_p "$xdir$objdir" - - if test -z "$output_obj"; then - # Place PIC objects in $objdir - func_append command " -o $lobj" - fi - - func_show_eval_locale "$command" \ - 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' - - if test warn = "$need_locks" && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $ECHO "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support '-c' and '-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed, then go on to compile the next one - if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then - func_show_eval '$MV "$output_obj" "$lobj"' \ - 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - - # Allow error messages only from the first compilation. - if test yes = "$suppress_opt"; then - suppress_output=' >/dev/null 2>&1' - fi - fi - - # Only build a position-dependent object if we build old libraries. - if test yes = "$build_old_libs"; then - if test yes != "$pic_mode"; then - # Don't build PIC code - command="$base_compile $qsrcfile$pie_flag" - else - command="$base_compile $qsrcfile $pic_flag" - fi - if test yes = "$compiler_c_o"; then - func_append command " -o $obj" - fi - - # Suppress compiler output if we already did a PIC compilation. - func_append command "$suppress_output" - func_show_eval_locale "$command" \ - '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' - - if test warn = "$need_locks" && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $ECHO "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support '-c' and '-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed - if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then - func_show_eval '$MV "$output_obj" "$obj"' \ - 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - fi - - $opt_dry_run || { - func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" - - # Unlock the critical section if it was locked - if test no != "$need_locks"; then - removelist=$lockfile - $RM "$lockfile" - fi - } - - exit $EXIT_SUCCESS -} - -$opt_help || { - test compile = "$opt_mode" && func_mode_compile ${1+"$@"} -} - -func_mode_help () -{ - # We need to display help for each of the modes. - case $opt_mode in - "") - # Generic help is extracted from the usage comments - # at the start of this file. - func_help - ;; - - clean) - $ECHO \ -"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... - -Remove files from the build directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed -to RM. - -If FILE is a libtool library, object or program, all the files associated -with it are deleted. Otherwise, only FILE itself is deleted using RM." - ;; - - compile) - $ECHO \ -"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -Compile a source file into a libtool library object. - -This mode accepts the following additional options: - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -no-suppress do not suppress compiler output for multiple passes - -prefer-pic try to build PIC objects only - -prefer-non-pic try to build non-PIC objects only - -shared do not build a '.o' file suitable for static linking - -static only build a '.o' file suitable for static linking - -Wc,FLAG pass FLAG directly to the compiler - -COMPILE-COMMAND is a command to be used in creating a 'standard' object file -from the given SOURCEFILE. - -The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix '.c' with the -library object suffix, '.lo'." - ;; - - execute) - $ECHO \ -"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... - -Automatically set library path, then run a program. - -This mode accepts the following additional options: - - -dlopen FILE add the directory containing FILE to the library path - -This mode sets the library path environment variable according to '-dlopen' -flags. - -If any of the ARGS are libtool executable wrappers, then they are translated -into their corresponding uninstalled binary, and any of their required library -directories are added to the library path. - -Then, COMMAND is executed, with ARGS as arguments." - ;; - - finish) - $ECHO \ -"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... - -Complete the installation of libtool libraries. - -Each LIBDIR is a directory that contains libtool libraries. - -The commands that this mode executes may require superuser privileges. Use -the '--dry-run' option if you just want to see what would be executed." - ;; - - install) - $ECHO \ -"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... - -Install executables or libraries. - -INSTALL-COMMAND is the installation command. The first component should be -either the 'install' or 'cp' program. - -The following components of INSTALL-COMMAND are treated specially: - - -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation - -The rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - - link) - $ECHO \ -"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... - -Link object files or libraries together to form another library, or to -create an executable program. - -LINK-COMMAND is a command using the C compiler that you would use to create -a program from several object files. - -The following components of LINK-COMMAND are treated specially: - - -all-static do not do any dynamic linking at all - -avoid-version do not add a version suffix if possible - -bindir BINDIR specify path to binaries directory (for systems where - libraries must be found in the PATH setting at runtime) - -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime - -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) - -export-symbols SYMFILE - try to export only the symbols listed in SYMFILE - -export-symbols-regex REGEX - try to export only the symbols matching REGEX - -LLIBDIR search LIBDIR for required installed libraries - -lNAME OUTPUT-FILE requires the installed library libNAME - -module build a library that can dlopened - -no-fast-install disable the fast-install mode - -no-install link a not-installable executable - -no-undefined declare that a library does not refer to external symbols - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE use a list of object files found in FILE to specify objects - -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) - -precious-files-regex REGEX - don't remove output files matching REGEX - -release RELEASE specify package release information - -rpath LIBDIR the created library will eventually be installed in LIBDIR - -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries - -shared only do dynamic linking of libtool libraries - -shrext SUFFIX override the standard shared library file extension - -static do not do any dynamic linking of uninstalled libtool libraries - -static-libtool-libs - do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -weak LIBNAME declare that the target provides the LIBNAME interface - -Wc,FLAG - -Xcompiler FLAG pass linker-specific FLAG directly to the compiler - -Wl,FLAG - -Xlinker FLAG pass linker-specific FLAG directly to the linker - -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) - -All other options (arguments beginning with '-') are ignored. - -Every other argument is treated as a filename. Files ending in '.la' are -treated as uninstalled libtool libraries, other files are standard or library -object files. - -If the OUTPUT-FILE ends in '.la', then a libtool library is created, -only library objects ('.lo' files) may be specified, and '-rpath' is -required, except when creating a convenience library. - -If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created -using 'ar' and 'ranlib', or on Windows using 'lib'. - -If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file -is created, otherwise an executable program is created." - ;; - - uninstall) - $ECHO \ -"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -Remove libraries from an installation directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed -to RM. - -If FILE is a libtool library, all the files associated with it are deleted. -Otherwise, only FILE itself is deleted using RM." - ;; - - *) - func_fatal_help "invalid operation mode '$opt_mode'" - ;; - esac - - echo - $ECHO "Try '$progname --help' for more information about other modes." -} - -# Now that we've collected a possible --mode arg, show help if necessary -if $opt_help; then - if test : = "$opt_help"; then - func_mode_help - else - { - func_help noexit - for opt_mode in compile link execute install finish uninstall clean; do - func_mode_help - done - } | $SED -n '1p; 2,$s/^Usage:/ or: /p' - { - func_help noexit - for opt_mode in compile link execute install finish uninstall clean; do - echo - func_mode_help - done - } | - $SED '1d - /^When reporting/,/^Report/{ - H - d - } - $x - /information about other modes/d - /more detailed .*MODE/d - s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' - fi - exit $? -fi - - -# func_mode_execute arg... -func_mode_execute () -{ - $debug_cmd - - # The first argument is the command name. - cmd=$nonopt - test -z "$cmd" && \ - func_fatal_help "you must specify a COMMAND" - - # Handle -dlopen flags immediately. - for file in $opt_dlopen; do - test -f "$file" \ - || func_fatal_help "'$file' is not a file" - - dir= - case $file in - *.la) - func_resolve_sysroot "$file" - file=$func_resolve_sysroot_result - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "'$lib' is not a valid libtool archive" - - # Read the libtool library. - dlname= - library_names= - func_source "$file" - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && \ - func_warning "'$file' was not linked with '-export-dynamic'" - continue - fi - - func_dirname "$file" "" "." - dir=$func_dirname_result - - if test -f "$dir/$objdir/$dlname"; then - func_append dir "/$objdir" - else - if test ! -f "$dir/$dlname"; then - func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" - fi - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - func_dirname "$file" "" "." - dir=$func_dirname_result - ;; - - *) - func_warning "'-dlopen' is ignored for non-libtool libraries and objects" - continue - ;; - esac - - # Get the absolute pathname. - absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir=$absdir - - # Now add the directory to shlibpath_var. - if eval "test -z \"\$$shlibpath_var\""; then - eval "$shlibpath_var=\"\$dir\"" - else - eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - - # This variable tells wrapper scripts just to set shlibpath_var - # rather than running their programs. - libtool_execute_magic=$magic - - # Check if any of the arguments is a wrapper script. - args= - for file - do - case $file in - -* | *.la | *.lo ) ;; - *) - # Do a test to see if this is really a libtool program. - if func_ltwrapper_script_p "$file"; then - func_source "$file" - # Transform arg to wrapped name. - file=$progdir/$program - elif func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - func_source "$func_ltwrapper_scriptname_result" - # Transform arg to wrapped name. - file=$progdir/$program - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - func_append_quoted args "$file" - done - - if $opt_dry_run; then - # Display what would be done. - if test -n "$shlibpath_var"; then - eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" - echo "export $shlibpath_var" - fi - $ECHO "$cmd$args" - exit $EXIT_SUCCESS - else - if test -n "$shlibpath_var"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - fi - - # Restore saved environment variables - for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES - do - eval "if test \"\${save_$lt_var+set}\" = set; then - $lt_var=\$save_$lt_var; export $lt_var - else - $lt_unset $lt_var - fi" - done - - # Now prepare to actually exec the command. - exec_cmd=\$cmd$args - fi -} - -test execute = "$opt_mode" && func_mode_execute ${1+"$@"} - - -# func_mode_finish arg... -func_mode_finish () -{ - $debug_cmd - - libs= - libdirs= - admincmds= - - for opt in "$nonopt" ${1+"$@"} - do - if test -d "$opt"; then - func_append libdirs " $opt" - - elif test -f "$opt"; then - if func_lalib_unsafe_p "$opt"; then - func_append libs " $opt" - else - func_warning "'$opt' is not a valid libtool archive" - fi - - else - func_fatal_error "invalid argument '$opt'" - fi - done - - if test -n "$libs"; then - if test -n "$lt_sysroot"; then - sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` - sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" - else - sysroot_cmd= - fi - - # Remove sysroot references - if $opt_dry_run; then - for lib in $libs; do - echo "removing references to $lt_sysroot and '=' prefixes from $lib" - done - else - tmpdir=`func_mktempdir` - for lib in $libs; do - $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ - > $tmpdir/tmp-la - mv -f $tmpdir/tmp-la $lib - done - ${RM}r "$tmpdir" - fi - fi - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - func_execute_cmds "$finish_cmds" 'admincmds="$admincmds -'"$cmd"'"' - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $opt_dry_run || eval "$cmds" || func_append admincmds " - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - $opt_quiet && exit $EXIT_SUCCESS - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - echo "----------------------------------------------------------------------" - echo "Libraries have been installed in:" - for libdir in $libdirs; do - $ECHO " $libdir" - done - echo - echo "If you ever happen to want to link against installed libraries" - echo "in a given directory, LIBDIR, you must either use libtool, and" - echo "specify the full pathname of the library, or use the '-LLIBDIR'" - echo "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - echo " - add LIBDIR to the '$shlibpath_var' environment variable" - echo " during execution" - fi - if test -n "$runpath_var"; then - echo " - add LIBDIR to the '$runpath_var' environment variable" - echo " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" - - $ECHO " - use the '$flag' linker flag" - fi - if test -n "$admincmds"; then - $ECHO " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" - fi - echo - - echo "See any operating system documentation about shared libraries for" - case $host in - solaris2.[6789]|solaris2.1[0-9]) - echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" - echo "pages." - ;; - *) - echo "more information, such as the ld(1) and ld.so(8) manual pages." - ;; - esac - echo "----------------------------------------------------------------------" - fi - exit $EXIT_SUCCESS -} - -test finish = "$opt_mode" && func_mode_finish ${1+"$@"} - - -# func_mode_install arg... -func_mode_install () -{ - $debug_cmd - - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || - # Allow the use of GNU shtool's install command. - case $nonopt in *shtool*) :;; *) false;; esac - then - # Aesthetically quote it. - func_quote_for_eval "$nonopt" - install_prog="$func_quote_for_eval_result " - arg=$1 - shift - else - install_prog= - arg=$nonopt - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - func_quote_for_eval "$arg" - func_append install_prog "$func_quote_for_eval_result" - install_shared_prog=$install_prog - case " $install_prog " in - *[\\\ /]cp\ *) install_cp=: ;; - *) install_cp=false ;; - esac - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=false - stripme= - no_mode=: - for arg - do - arg2= - if test -n "$dest"; then - func_append files " $dest" - dest=$arg - continue - fi - - case $arg in - -d) isdir=: ;; - -f) - if $install_cp; then :; else - prev=$arg - fi - ;; - -g | -m | -o) - prev=$arg - ;; - -s) - stripme=" -s" - continue - ;; - -*) - ;; - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - if test X-m = "X$prev" && test -n "$install_override_mode"; then - arg2=$install_override_mode - no_mode=false - fi - prev= - else - dest=$arg - continue - fi - ;; - esac - - # Aesthetically quote the argument. - func_quote_for_eval "$arg" - func_append install_prog " $func_quote_for_eval_result" - if test -n "$arg2"; then - func_quote_for_eval "$arg2" - fi - func_append install_shared_prog " $func_quote_for_eval_result" - done - - test -z "$install_prog" && \ - func_fatal_help "you must specify an install program" - - test -n "$prev" && \ - func_fatal_help "the '$prev' option requires an argument" - - if test -n "$install_override_mode" && $no_mode; then - if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" - func_append install_shared_prog " -m $func_quote_for_eval_result" - fi - fi - - if test -z "$files"; then - if test -z "$dest"; then - func_fatal_help "no file or destination specified" - else - func_fatal_help "you must specify a destination" - fi - fi - - # Strip any trailing slash from the destination. - func_stripname '' '/' "$dest" - dest=$func_stripname_result - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=: - if $isdir; then - destdir=$dest - destname= - else - func_dirname_and_basename "$dest" "" "." - destdir=$func_dirname_result - destname=$func_basename_result - - # Not a directory, so check to see that there is only one file specified. - set dummy $files; shift - test "$#" -gt 1 && \ - func_fatal_help "'$dest' is not a directory" - fi - case $destdir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - for file in $files; do - case $file in - *.lo) ;; - *) - func_fatal_help "'$destdir' must be an absolute directory name" - ;; - esac - done - ;; - esac - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic=$magic - - staticlibs= - future_libdirs= - current_libdirs= - for file in $files; do - - # Do each installation. - case $file in - *.$libext) - # Do the static libraries later. - func_append staticlibs " $file" - ;; - - *.la) - func_resolve_sysroot "$file" - file=$func_resolve_sysroot_result - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "'$file' is not a valid libtool archive" - - library_names= - old_library= - relink_command= - func_source "$file" - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) func_append current_libdirs " $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) func_append future_libdirs " $libdir" ;; - esac - fi - - func_dirname "$file" "/" "" - dir=$func_dirname_result - func_append dir "$objdir" - - if test -n "$relink_command"; then - # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` - - # Don't allow the user to place us outside of our expected - # location b/c this prevents finding dependent libraries that - # are installed to the same prefix. - # At present, this check doesn't affect windows .dll's that - # are installed into $libdir/../bin (currently, that works fine) - # but it's something to keep an eye on. - test "$inst_prefix_dir" = "$destdir" && \ - func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" - - if test -n "$inst_prefix_dir"; then - # Stick the inst_prefix_dir data into the link command. - relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` - else - relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` - fi - - func_warning "relinking '$file'" - func_show_eval "$relink_command" \ - 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' - fi - - # See the names of the shared library. - set dummy $library_names; shift - if test -n "$1"; then - realname=$1 - shift - - srcname=$realname - test -n "$relink_command" && srcname=${realname}T - - # Install the shared library and build the symlinks. - func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ - 'exit $?' - tstripme=$stripme - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - case $realname in - *.dll.a) - tstripme= - ;; - esac - ;; - os2*) - case $realname in - *_dll.a) - tstripme= - ;; - esac - ;; - esac - if test -n "$tstripme" && test -n "$striplib"; then - func_show_eval "$striplib $destdir/$realname" 'exit $?' - fi - - if test "$#" -gt 0; then - # Delete the old symlinks, and create new ones. - # Try 'ln -sf' first, because the 'ln' binary might depend on - # the symlink we replace! Solaris /bin/ln does not understand -f, - # so we also need to try rm && ln -s. - for linkname - do - test "$linkname" != "$realname" \ - && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" - done - fi - - # Do each command in the postinstall commands. - lib=$destdir/$realname - func_execute_cmds "$postinstall_cmds" 'exit $?' - fi - - # Install the pseudo-library for information purposes. - func_basename "$file" - name=$func_basename_result - instname=$dir/${name}i - func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' - - # Maybe install the static library, too. - test -n "$old_library" && func_append staticlibs " $dir/$old_library" - ;; - - *.lo) - # Install (i.e. copy) a libtool object. - - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile=$destdir/$destname - else - func_basename "$file" - destfile=$func_basename_result - destfile=$destdir/$destfile - fi - - # Deduce the name of the destination old-style object file. - case $destfile in - *.lo) - func_lo2o "$destfile" - staticdest=$func_lo2o_result - ;; - *.$objext) - staticdest=$destfile - destfile= - ;; - *) - func_fatal_help "cannot copy a libtool object to '$destfile'" - ;; - esac - - # Install the libtool object if requested. - test -n "$destfile" && \ - func_show_eval "$install_prog $file $destfile" 'exit $?' - - # Install the old object if enabled. - if test yes = "$build_old_libs"; then - # Deduce the name of the old-style object file. - func_lo2o "$file" - staticobj=$func_lo2o_result - func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' - fi - exit $EXIT_SUCCESS - ;; - - *) - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile=$destdir/$destname - else - func_basename "$file" - destfile=$func_basename_result - destfile=$destdir/$destfile - fi - - # If the file is missing, and there is a .exe on the end, strip it - # because it is most likely a libtool script we actually want to - # install - stripped_ext= - case $file in - *.exe) - if test ! -f "$file"; then - func_stripname '' '.exe' "$file" - file=$func_stripname_result - stripped_ext=.exe - fi - ;; - esac - - # Do a test to see if this is really a libtool program. - case $host in - *cygwin* | *mingw*) - if func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - wrapper=$func_ltwrapper_scriptname_result - else - func_stripname '' '.exe' "$file" - wrapper=$func_stripname_result - fi - ;; - *) - wrapper=$file - ;; - esac - if func_ltwrapper_script_p "$wrapper"; then - notinst_deplibs= - relink_command= - - func_source "$wrapper" - - # Check the variables that should have been set. - test -z "$generated_by_libtool_version" && \ - func_fatal_error "invalid libtool wrapper script '$wrapper'" - - finalize=: - for lib in $notinst_deplibs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - func_source "$lib" - fi - libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` - if test -n "$libdir" && test ! -f "$libfile"; then - func_warning "'$lib' has not been installed in '$libdir'" - finalize=false - fi - done - - relink_command= - func_source "$wrapper" - - outputname= - if test no = "$fast_install" && test -n "$relink_command"; then - $opt_dry_run || { - if $finalize; then - tmpdir=`func_mktempdir` - func_basename "$file$stripped_ext" - file=$func_basename_result - outputname=$tmpdir/$file - # Replace the output file specification. - relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` - - $opt_quiet || { - func_quote_for_expand "$relink_command" - eval "func_echo $func_quote_for_expand_result" - } - if eval "$relink_command"; then : - else - func_error "error: relink '$file' with the above command before installing it" - $opt_dry_run || ${RM}r "$tmpdir" - continue - fi - file=$outputname - else - func_warning "cannot relink '$file'" - fi - } - else - # Install the binary that we compiled earlier. - file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - # remove .exe since cygwin /usr/bin/install will append another - # one anyway - case $install_prog,$host in - */usr/bin/install*,*cygwin*) - case $file:$destfile in - *.exe:*.exe) - # this is ok - ;; - *.exe:*) - destfile=$destfile.exe - ;; - *:*.exe) - func_stripname '' '.exe' "$destfile" - destfile=$func_stripname_result - ;; - esac - ;; - esac - func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' - $opt_dry_run || if test -n "$outputname"; then - ${RM}r "$tmpdir" - fi - ;; - esac - done - - for file in $staticlibs; do - func_basename "$file" - name=$func_basename_result - - # Set up the ranlib parameters. - oldlib=$destdir/$name - func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 - tool_oldlib=$func_to_tool_file_result - - func_show_eval "$install_prog \$file \$oldlib" 'exit $?' - - if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $tool_oldlib" 'exit $?' - fi - - # Do each command in the postinstall commands. - func_execute_cmds "$old_postinstall_cmds" 'exit $?' - done - - test -n "$future_libdirs" && \ - func_warning "remember to run '$progname --finish$future_libdirs'" - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - $opt_dry_run && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' - else - exit $EXIT_SUCCESS - fi -} - -test install = "$opt_mode" && func_mode_install ${1+"$@"} - - -# func_generate_dlsyms outputname originator pic_p -# Extract symbols from dlprefiles and create ${outputname}S.o with -# a dlpreopen symbol table. -func_generate_dlsyms () -{ - $debug_cmd - - my_outputname=$1 - my_originator=$2 - my_pic_p=${3-false} - my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` - my_dlsyms= - - if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then - if test -n "$NM" && test -n "$global_symbol_pipe"; then - my_dlsyms=${my_outputname}S.c - else - func_error "not configured to extract global symbols from dlpreopened files" - fi - fi - - if test -n "$my_dlsyms"; then - case $my_dlsyms in - "") ;; - *.c) - # Discover the nlist of each of the dlfiles. - nlist=$output_objdir/$my_outputname.nm - - func_show_eval "$RM $nlist ${nlist}S ${nlist}T" - - # Parse the name list into a source file. - func_verbose "creating $output_objdir/$my_dlsyms" - - $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ -/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ -/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) -#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" -#endif - -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE -/* DATA imports from DLLs on WIN32 can't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT_DLSYM_CONST -#elif defined __osf__ -/* This system does not cope well with relocations in const data. */ -# define LT_DLSYM_CONST -#else -# define LT_DLSYM_CONST const -#endif - -#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) - -/* External symbol declarations for the compiler. */\ -" - - if test yes = "$dlself"; then - func_verbose "generating symbol list for '$output'" - - $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" - - # Add our own program objects to the symbol list. - progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` - for progfile in $progfiles; do - func_to_tool_file "$progfile" func_convert_file_msys_to_w32 - func_verbose "extracting global C symbols from '$func_to_tool_file_result'" - $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $opt_dry_run || { - eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - } - fi - - if test -n "$export_symbols_regex"; then - $opt_dry_run || { - eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - } - fi - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - export_symbols=$output_objdir/$outputname.exp - $opt_dry_run || { - $RM $export_symbols - eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - case $host in - *cygwin* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' - ;; - esac - } - else - $opt_dry_run || { - eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' - eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - case $host in - *cygwin* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' - ;; - esac - } - fi - fi - - for dlprefile in $dlprefiles; do - func_verbose "extracting global C symbols from '$dlprefile'" - func_basename "$dlprefile" - name=$func_basename_result - case $host in - *cygwin* | *mingw* | *cegcc* ) - # if an import library, we need to obtain dlname - if func_win32_import_lib_p "$dlprefile"; then - func_tr_sh "$dlprefile" - eval "curr_lafile=\$libfile_$func_tr_sh_result" - dlprefile_dlbasename= - if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then - # Use subshell, to avoid clobbering current variable values - dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` - if test -n "$dlprefile_dlname"; then - func_basename "$dlprefile_dlname" - dlprefile_dlbasename=$func_basename_result - else - # no lafile. user explicitly requested -dlpreopen . - $sharedlib_from_linklib_cmd "$dlprefile" - dlprefile_dlbasename=$sharedlib_from_linklib_result - fi - fi - $opt_dry_run || { - if test -n "$dlprefile_dlbasename"; then - eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' - else - func_warning "Could not compute DLL name from $name" - eval '$ECHO ": $name " >> "$nlist"' - fi - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | - $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" - } - else # not an import lib - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - fi - ;; - *) - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - ;; - esac - done - - $opt_dry_run || { - # Make sure we have at least an empty file. - test -f "$nlist" || : > "$nlist" - - if test -n "$exclude_expsyms"; then - $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T - $MV "$nlist"T "$nlist" - fi - - # Try sorting and uniquifying the output. - if $GREP -v "^: " < "$nlist" | - if sort -k 3 /dev/null 2>&1; then - sort -k 3 - else - sort +2 - fi | - uniq > "$nlist"S; then - : - else - $GREP -v "^: " < "$nlist" > "$nlist"S - fi - - if test -f "$nlist"S; then - eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' - else - echo '/* NONE */' >> "$output_objdir/$my_dlsyms" - fi - - func_show_eval '$RM "${nlist}I"' - if test -n "$global_symbol_to_import"; then - eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' - fi - - echo >> "$output_objdir/$my_dlsyms" "\ - -/* The mapping between symbol names and symbols. */ -typedef struct { - const char *name; - void *address; -} lt_dlsymlist; -extern LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[];\ -" - - if test -s "$nlist"I; then - echo >> "$output_objdir/$my_dlsyms" "\ -static void lt_syminit(void) -{ - LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; - for (; symbol->name; ++symbol) - {" - $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" - echo >> "$output_objdir/$my_dlsyms" "\ - } -}" - fi - echo >> "$output_objdir/$my_dlsyms" "\ -LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[] = -{ {\"$my_originator\", (void *) 0}," - - if test -s "$nlist"I; then - echo >> "$output_objdir/$my_dlsyms" "\ - {\"@INIT@\", (void *) <_syminit}," - fi - - case $need_lib_prefix in - no) - eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" - ;; - *) - eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" - ;; - esac - echo >> "$output_objdir/$my_dlsyms" "\ - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt_${my_prefix}_LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif\ -" - } # !$opt_dry_run - - pic_flag_for_symtable= - case "$compile_command " in - *" -static "*) ;; - *) - case $host in - # compiling the symbol table file with pic_flag works around - # a FreeBSD bug that causes programs to crash when -lm is - # linked before any other PIC object. But we must not use - # pic_flag when linking with -static. The problem exists in - # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) - pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; - *-*-hpux*) - pic_flag_for_symtable=" $pic_flag" ;; - *) - $my_pic_p && pic_flag_for_symtable=" $pic_flag" - ;; - esac - ;; - esac - symtab_cflags= - for arg in $LTCFLAGS; do - case $arg in - -pie | -fpie | -fPIE) ;; - *) func_append symtab_cflags " $arg" ;; - esac - done - - # Now compile the dynamic symbol file. - func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' - - # Clean up the generated files. - func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' - - # Transform the symbol file into the correct name. - symfileobj=$output_objdir/${my_outputname}S.$objext - case $host in - *cygwin* | *mingw* | *cegcc* ) - if test -f "$output_objdir/$my_outputname.def"; then - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - else - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` - fi - ;; - *) - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` - ;; - esac - ;; - *) - func_fatal_error "unknown suffix for '$my_dlsyms'" - ;; - esac - else - # We keep going just in case the user didn't refer to - # lt_preloaded_symbols. The linker will fail if global_symbol_pipe - # really was required. - - # Nullify the symbol file. - compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` - fi -} - -# func_cygming_gnu_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is a GNU/binutils-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_gnu_implib_p () -{ - $debug_cmd - - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` - test -n "$func_cygming_gnu_implib_tmp" -} - -# func_cygming_ms_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is an MS-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_ms_implib_p () -{ - $debug_cmd - - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` - test -n "$func_cygming_ms_implib_tmp" -} - -# func_win32_libid arg -# return the library type of file 'arg' -# -# Need a lot of goo to handle *both* DLLs and import libs -# Has to be a shell function in order to 'eat' the argument -# that is supplied when $file_magic_command is called. -# Despite the name, also deal with 64 bit binaries. -func_win32_libid () -{ - $debug_cmd - - win32_libid_type=unknown - win32_fileres=`file -L $1 2>/dev/null` - case $win32_fileres in - *ar\ archive\ import\ library*) # definitely import - win32_libid_type="x86 archive import" - ;; - *ar\ archive*) # could be an import, or static - # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | - $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then - case $nm_interface in - "MS dumpbin") - if func_cygming_ms_implib_p "$1" || - func_cygming_gnu_implib_p "$1" - then - win32_nmres=import - else - win32_nmres= - fi - ;; - *) - func_to_tool_file "$1" func_convert_file_msys_to_w32 - win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | - $SED -n -e ' - 1,100{ - / I /{ - s|.*|import| - p - q - } - }'` - ;; - esac - case $win32_nmres in - import*) win32_libid_type="x86 archive import";; - *) win32_libid_type="x86 archive static";; - esac - fi - ;; - *DLL*) - win32_libid_type="x86 DLL" - ;; - *executable*) # but shell scripts are "executable" too... - case $win32_fileres in - *MS\ Windows\ PE\ Intel*) - win32_libid_type="x86 DLL" - ;; - esac - ;; - esac - $ECHO "$win32_libid_type" -} - -# func_cygming_dll_for_implib ARG -# -# Platform-specific function to extract the -# name of the DLL associated with the specified -# import library ARG. -# Invoked by eval'ing the libtool variable -# $sharedlib_from_linklib_cmd -# Result is available in the variable -# $sharedlib_from_linklib_result -func_cygming_dll_for_implib () -{ - $debug_cmd - - sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` -} - -# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs -# -# The is the core of a fallback implementation of a -# platform-specific function to extract the name of the -# DLL associated with the specified import library LIBNAME. -# -# SECTION_NAME is either .idata$6 or .idata$7, depending -# on the platform and compiler that created the implib. -# -# Echos the name of the DLL associated with the -# specified import library. -func_cygming_dll_for_implib_fallback_core () -{ - $debug_cmd - - match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` - $OBJDUMP -s --section "$1" "$2" 2>/dev/null | - $SED '/^Contents of section '"$match_literal"':/{ - # Place marker at beginning of archive member dllname section - s/.*/====MARK====/ - p - d - } - # These lines can sometimes be longer than 43 characters, but - # are always uninteresting - /:[ ]*file format pe[i]\{,1\}-/d - /^In archive [^:]*:/d - # Ensure marker is printed - /^====MARK====/p - # Remove all lines with less than 43 characters - /^.\{43\}/!d - # From remaining lines, remove first 43 characters - s/^.\{43\}//' | - $SED -n ' - # Join marker and all lines until next marker into a single line - /^====MARK====/ b para - H - $ b para - b - :para - x - s/\n//g - # Remove the marker - s/^====MARK====// - # Remove trailing dots and whitespace - s/[\. \t]*$// - # Print - /./p' | - # we now have a list, one entry per line, of the stringified - # contents of the appropriate section of all members of the - # archive that possess that section. Heuristic: eliminate - # all those that have a first or second character that is - # a '.' (that is, objdump's representation of an unprintable - # character.) This should work for all archives with less than - # 0x302f exports -- but will fail for DLLs whose name actually - # begins with a literal '.' or a single character followed by - # a '.'. - # - # Of those that remain, print the first one. - $SED -e '/^\./d;/^.\./d;q' -} - -# func_cygming_dll_for_implib_fallback ARG -# Platform-specific function to extract the -# name of the DLL associated with the specified -# import library ARG. -# -# This fallback implementation is for use when $DLLTOOL -# does not support the --identify-strict option. -# Invoked by eval'ing the libtool variable -# $sharedlib_from_linklib_cmd -# Result is available in the variable -# $sharedlib_from_linklib_result -func_cygming_dll_for_implib_fallback () -{ - $debug_cmd - - if func_cygming_gnu_implib_p "$1"; then - # binutils import library - sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` - elif func_cygming_ms_implib_p "$1"; then - # ms-generated import library - sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` - else - # unknown - sharedlib_from_linklib_result= - fi -} - - -# func_extract_an_archive dir oldlib -func_extract_an_archive () -{ - $debug_cmd - - f_ex_an_ar_dir=$1; shift - f_ex_an_ar_oldlib=$1 - if test yes = "$lock_old_archive_extraction"; then - lockfile=$f_ex_an_ar_oldlib.lock - until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do - func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - fi - func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ - 'stat=$?; rm -f "$lockfile"; exit $stat' - if test yes = "$lock_old_archive_extraction"; then - $opt_dry_run || rm -f "$lockfile" - fi - if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then - : - else - func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" - fi -} - - -# func_extract_archives gentop oldlib ... -func_extract_archives () -{ - $debug_cmd - - my_gentop=$1; shift - my_oldlibs=${1+"$@"} - my_oldobjs= - my_xlib= - my_xabs= - my_xdir= - - for my_xlib in $my_oldlibs; do - # Extract the objects. - case $my_xlib in - [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; - *) my_xabs=`pwd`"/$my_xlib" ;; - esac - func_basename "$my_xlib" - my_xlib=$func_basename_result - my_xlib_u=$my_xlib - while :; do - case " $extracted_archives " in - *" $my_xlib_u "*) - func_arith $extracted_serial + 1 - extracted_serial=$func_arith_result - my_xlib_u=lt$extracted_serial-$my_xlib ;; - *) break ;; - esac - done - extracted_archives="$extracted_archives $my_xlib_u" - my_xdir=$my_gentop/$my_xlib_u - - func_mkdir_p "$my_xdir" - - case $host in - *-darwin*) - func_verbose "Extracting $my_xabs" - # Do not bother doing anything if just a dry run - $opt_dry_run || { - darwin_orig_dir=`pwd` - cd $my_xdir || exit $? - darwin_archive=$my_xabs - darwin_curdir=`pwd` - func_basename "$darwin_archive" - darwin_base_archive=$func_basename_result - darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` - if test -n "$darwin_arches"; then - darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` - darwin_arch= - func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" - for darwin_arch in $darwin_arches; do - func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" - $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" - cd "unfat-$$/$darwin_base_archive-$darwin_arch" - func_extract_an_archive "`pwd`" "$darwin_base_archive" - cd "$darwin_curdir" - $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" - done # $darwin_arches - ## Okay now we've a bunch of thin objects, gotta fatten them up :) - darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` - darwin_file= - darwin_files= - for darwin_file in $darwin_filelist; do - darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` - $LIPO -create -output "$darwin_file" $darwin_files - done # $darwin_filelist - $RM -rf unfat-$$ - cd "$darwin_orig_dir" - else - cd $darwin_orig_dir - func_extract_an_archive "$my_xdir" "$my_xabs" - fi # $darwin_arches - } # !$opt_dry_run - ;; - *) - func_extract_an_archive "$my_xdir" "$my_xabs" - ;; - esac - my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` - done - - func_extract_archives_result=$my_oldobjs -} - - -# func_emit_wrapper [arg=no] -# -# Emit a libtool wrapper script on stdout. -# Don't directly open a file because we may want to -# incorporate the script contents within a cygwin/mingw -# wrapper executable. Must ONLY be called from within -# func_mode_link because it depends on a number of variables -# set therein. -# -# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR -# variable will take. If 'yes', then the emitted script -# will assume that the directory where it is stored is -# the $objdir directory. This is a cygwin/mingw-specific -# behavior. -func_emit_wrapper () -{ - func_emit_wrapper_arg1=${1-no} - - $ECHO "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM (GNU $PACKAGE) $VERSION -# -# The $output program cannot be directly executed until all the libtool -# libraries that it depends on are installed. -# -# This wrapper script should never be moved out of the build directory. -# If it is, it will not operate correctly. - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='$sed_quote_subst' - -# Be Bourne compatible -if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -relink_command=\"$relink_command\" - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variables: - generated_by_libtool_version='$macro_version' - notinst_deplibs='$notinst_deplibs' -else - # When we are sourced in execute mode, \$file and \$ECHO are already set. - if test \"\$libtool_execute_magic\" != \"$magic\"; then - file=\"\$0\"" - - qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` - $ECHO "\ - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - ECHO=\"$qECHO\" - fi - -# Very basic option parsing. These options are (a) specific to -# the libtool wrapper, (b) are identical between the wrapper -# /script/ and the wrapper /executable/ that is used only on -# windows platforms, and (c) all begin with the string "--lt-" -# (application programs are unlikely to have options that match -# this pattern). -# -# There are only two supported options: --lt-debug and -# --lt-dump-script. There is, deliberately, no --lt-help. -# -# The first argument to this parsing function should be the -# script's $0 value, followed by "$@". -lt_option_debug= -func_parse_lt_options () -{ - lt_script_arg0=\$0 - shift - for lt_opt - do - case \"\$lt_opt\" in - --lt-debug) lt_option_debug=1 ;; - --lt-dump-script) - lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` - test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. - lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` - cat \"\$lt_dump_D/\$lt_dump_F\" - exit 0 - ;; - --lt-*) - \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 - exit 1 - ;; - esac - done - - # Print the debug banner immediately: - if test -n \"\$lt_option_debug\"; then - echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 - fi -} - -# Used when --lt-debug. Prints its arguments to stdout -# (redirection is the responsibility of the caller) -func_lt_dump_args () -{ - lt_dump_args_N=1; - for lt_arg - do - \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" - lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` - done -} - -# Core function for launching the target application -func_exec_program_core () -{ -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2* | *-cegcc*) - $ECHO "\ - if test -n \"\$lt_option_debug\"; then - \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 - func_lt_dump_args \${1+\"\$@\"} 1>&2 - fi - exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -" - ;; - - *) - $ECHO "\ - if test -n \"\$lt_option_debug\"; then - \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 - func_lt_dump_args \${1+\"\$@\"} 1>&2 - fi - exec \"\$progdir/\$program\" \${1+\"\$@\"} -" - ;; - esac - $ECHO "\ - \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 - exit 1 -} - -# A function to encapsulate launching the target application -# Strips options in the --lt-* namespace from \$@ and -# launches target application with the remaining arguments. -func_exec_program () -{ - case \" \$* \" in - *\\ --lt-*) - for lt_wr_arg - do - case \$lt_wr_arg in - --lt-*) ;; - *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; - esac - shift - done ;; - esac - func_exec_program_core \${1+\"\$@\"} -} - - # Parse options - func_parse_lt_options \"\$0\" \${1+\"\$@\"} - - # Find the directory that this script lives in. - thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` - test \"x\$thisdir\" = \"x\$file\" && thisdir=. - - # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` - while test -n \"\$file\"; do - destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` - - # If there was a directory component, then change thisdir. - if test \"x\$destdir\" != \"x\$file\"; then - case \"\$destdir\" in - [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; - *) thisdir=\"\$thisdir/\$destdir\" ;; - esac - fi - - file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` - done - - # Usually 'no', except on cygwin/mingw when embedded into - # the cwrapper. - WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 - if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then - # special case for '.' - if test \"\$thisdir\" = \".\"; then - thisdir=\`pwd\` - fi - # remove .libs from thisdir - case \"\$thisdir\" in - *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; - $objdir ) thisdir=. ;; - esac - fi - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" -" - - if test yes = "$fast_install"; then - $ECHO "\ - program=lt-'$outputname'$exeext - progdir=\"\$thisdir/$objdir\" - - if test ! -f \"\$progdir/\$program\" || - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ - test \"X\$file\" != \"X\$progdir/\$program\"; }; then - - file=\"\$\$-\$program\" - - if test ! -d \"\$progdir\"; then - $MKDIR \"\$progdir\" - else - $RM \"\$progdir/\$file\" - fi" - - $ECHO "\ - - # relink executable if necessary - if test -n \"\$relink_command\"; then - if relink_command_output=\`eval \$relink_command 2>&1\`; then : - else - \$ECHO \"\$relink_command_output\" >&2 - $RM \"\$progdir/\$file\" - exit 1 - fi - fi - - $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || - { $RM \"\$progdir/\$program\"; - $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } - $RM \"\$progdir/\$file\" - fi" - else - $ECHO "\ - program='$outputname' - progdir=\"\$thisdir/$objdir\" -" - fi - - $ECHO "\ - - if test -f \"\$progdir/\$program\"; then" - - # fixup the dll searchpath if we need to. - # - # Fix the DLL searchpath if we need to. Do this before prepending - # to shlibpath, because on Windows, both are PATH and uninstalled - # libraries must come first. - if test -n "$dllsearchpath"; then - $ECHO "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - - # Export our shlibpath_var if we have one. - if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $ECHO "\ - # Add our own library path to $shlibpath_var - $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" - - # Some systems cannot cope with colon-terminated $shlibpath_var - # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` - - export $shlibpath_var -" - fi - - $ECHO "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. - func_exec_program \${1+\"\$@\"} - fi - else - # The program doesn't exist. - \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 - \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 - \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 - exit 1 - fi -fi\ -" -} - - -# func_emit_cwrapperexe_src -# emit the source code for a wrapper executable on stdout -# Must ONLY be called from within func_mode_link because -# it depends on a number of variable set therein. -func_emit_cwrapperexe_src () -{ - cat < -#include -#ifdef _MSC_VER -# include -# include -# include -#else -# include -# include -# ifdef __CYGWIN__ -# include -# endif -#endif -#include -#include -#include -#include -#include -#include -#include -#include - -#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) - -/* declarations of non-ANSI functions */ -#if defined __MINGW32__ -# ifdef __STRICT_ANSI__ -int _putenv (const char *); -# endif -#elif defined __CYGWIN__ -# ifdef __STRICT_ANSI__ -char *realpath (const char *, char *); -int putenv (char *); -int setenv (const char *, const char *, int); -# endif -/* #elif defined other_platform || defined ... */ -#endif - -/* portability defines, excluding path handling macros */ -#if defined _MSC_VER -# define setmode _setmode -# define stat _stat -# define chmod _chmod -# define getcwd _getcwd -# define putenv _putenv -# define S_IXUSR _S_IEXEC -#elif defined __MINGW32__ -# define setmode _setmode -# define stat _stat -# define chmod _chmod -# define getcwd _getcwd -# define putenv _putenv -#elif defined __CYGWIN__ -# define HAVE_SETENV -# define FOPEN_WB "wb" -/* #elif defined other platforms ... */ -#endif - -#if defined PATH_MAX -# define LT_PATHMAX PATH_MAX -#elif defined MAXPATHLEN -# define LT_PATHMAX MAXPATHLEN -#else -# define LT_PATHMAX 1024 -#endif - -#ifndef S_IXOTH -# define S_IXOTH 0 -#endif -#ifndef S_IXGRP -# define S_IXGRP 0 -#endif - -/* path handling portability macros */ -#ifndef DIR_SEPARATOR -# define DIR_SEPARATOR '/' -# define PATH_SEPARATOR ':' -#endif - -#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ - defined __OS2__ -# define HAVE_DOS_BASED_FILE_SYSTEM -# define FOPEN_WB "wb" -# ifndef DIR_SEPARATOR_2 -# define DIR_SEPARATOR_2 '\\' -# endif -# ifndef PATH_SEPARATOR_2 -# define PATH_SEPARATOR_2 ';' -# endif -#endif - -#ifndef DIR_SEPARATOR_2 -# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) -#else /* DIR_SEPARATOR_2 */ -# define IS_DIR_SEPARATOR(ch) \ - (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) -#endif /* DIR_SEPARATOR_2 */ - -#ifndef PATH_SEPARATOR_2 -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) -#else /* PATH_SEPARATOR_2 */ -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) -#endif /* PATH_SEPARATOR_2 */ - -#ifndef FOPEN_WB -# define FOPEN_WB "w" -#endif -#ifndef _O_BINARY -# define _O_BINARY 0 -#endif - -#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -#define XFREE(stale) do { \ - if (stale) { free (stale); stale = 0; } \ -} while (0) - -#if defined LT_DEBUGWRAPPER -static int lt_debug = 1; -#else -static int lt_debug = 0; -#endif - -const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ - -void *xmalloc (size_t num); -char *xstrdup (const char *string); -const char *base_name (const char *name); -char *find_executable (const char *wrapper); -char *chase_symlinks (const char *pathspec); -int make_executable (const char *path); -int check_executable (const char *path); -char *strendzap (char *str, const char *pat); -void lt_debugprintf (const char *file, int line, const char *fmt, ...); -void lt_fatal (const char *file, int line, const char *message, ...); -static const char *nonnull (const char *s); -static const char *nonempty (const char *s); -void lt_setenv (const char *name, const char *value); -char *lt_extend_str (const char *orig_value, const char *add, int to_end); -void lt_update_exe_path (const char *name, const char *value); -void lt_update_lib_path (const char *name, const char *value); -char **prepare_spawn (char **argv); -void lt_dump_script (FILE *f); -EOF - - cat <= 0) - && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) - return 1; - else - return 0; -} - -int -make_executable (const char *path) -{ - int rval = 0; - struct stat st; - - lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", - nonempty (path)); - if ((!path) || (!*path)) - return 0; - - if (stat (path, &st) >= 0) - { - rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); - } - return rval; -} - -/* Searches for the full path of the wrapper. Returns - newly allocated full path name if found, NULL otherwise - Does not chase symlinks, even on platforms that support them. -*/ -char * -find_executable (const char *wrapper) -{ - int has_slash = 0; - const char *p; - const char *p_next; - /* static buffer for getcwd */ - char tmp[LT_PATHMAX + 1]; - size_t tmp_len; - char *concat_name; - - lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", - nonempty (wrapper)); - - if ((wrapper == NULL) || (*wrapper == '\0')) - return NULL; - - /* Absolute path? */ -#if defined HAVE_DOS_BASED_FILE_SYSTEM - if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') - { - concat_name = xstrdup (wrapper); - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } - else - { -#endif - if (IS_DIR_SEPARATOR (wrapper[0])) - { - concat_name = xstrdup (wrapper); - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } -#if defined HAVE_DOS_BASED_FILE_SYSTEM - } -#endif - - for (p = wrapper; *p; p++) - if (*p == '/') - { - has_slash = 1; - break; - } - if (!has_slash) - { - /* no slashes; search PATH */ - const char *path = getenv ("PATH"); - if (path != NULL) - { - for (p = path; *p; p = p_next) - { - const char *q; - size_t p_len; - for (q = p; *q; q++) - if (IS_PATH_SEPARATOR (*q)) - break; - p_len = (size_t) (q - p); - p_next = (*q == '\0' ? q : q + 1); - if (p_len == 0) - { - /* empty path: current directory */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", - nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = - XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - } - else - { - concat_name = - XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, p, p_len); - concat_name[p_len] = '/'; - strcpy (concat_name + p_len + 1, wrapper); - } - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } - } - /* not found in PATH; assume curdir */ - } - /* Relative path | not found in path: prepend cwd */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", - nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - return NULL; -} - -char * -chase_symlinks (const char *pathspec) -{ -#ifndef S_ISLNK - return xstrdup (pathspec); -#else - char buf[LT_PATHMAX]; - struct stat s; - char *tmp_pathspec = xstrdup (pathspec); - char *p; - int has_symlinks = 0; - while (strlen (tmp_pathspec) && !has_symlinks) - { - lt_debugprintf (__FILE__, __LINE__, - "checking path component for symlinks: %s\n", - tmp_pathspec); - if (lstat (tmp_pathspec, &s) == 0) - { - if (S_ISLNK (s.st_mode) != 0) - { - has_symlinks = 1; - break; - } - - /* search backwards for last DIR_SEPARATOR */ - p = tmp_pathspec + strlen (tmp_pathspec) - 1; - while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) - p--; - if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) - { - /* no more DIR_SEPARATORS left */ - break; - } - *p = '\0'; - } - else - { - lt_fatal (__FILE__, __LINE__, - "error accessing file \"%s\": %s", - tmp_pathspec, nonnull (strerror (errno))); - } - } - XFREE (tmp_pathspec); - - if (!has_symlinks) - { - return xstrdup (pathspec); - } - - tmp_pathspec = realpath (pathspec, buf); - if (tmp_pathspec == 0) - { - lt_fatal (__FILE__, __LINE__, - "could not follow symlinks for %s", pathspec); - } - return xstrdup (tmp_pathspec); -#endif -} - -char * -strendzap (char *str, const char *pat) -{ - size_t len, patlen; - - assert (str != NULL); - assert (pat != NULL); - - len = strlen (str); - patlen = strlen (pat); - - if (patlen <= len) - { - str += len - patlen; - if (STREQ (str, pat)) - *str = '\0'; - } - return str; -} - -void -lt_debugprintf (const char *file, int line, const char *fmt, ...) -{ - va_list args; - if (lt_debug) - { - (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); - va_start (args, fmt); - (void) vfprintf (stderr, fmt, args); - va_end (args); - } -} - -static void -lt_error_core (int exit_status, const char *file, - int line, const char *mode, - const char *message, va_list ap) -{ - fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - - if (exit_status >= 0) - exit (exit_status); -} - -void -lt_fatal (const char *file, int line, const char *message, ...) -{ - va_list ap; - va_start (ap, message); - lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); - va_end (ap); -} - -static const char * -nonnull (const char *s) -{ - return s ? s : "(null)"; -} - -static const char * -nonempty (const char *s) -{ - return (s && !*s) ? "(empty)" : nonnull (s); -} - -void -lt_setenv (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_setenv) setting '%s' to '%s'\n", - nonnull (name), nonnull (value)); - { -#ifdef HAVE_SETENV - /* always make a copy, for consistency with !HAVE_SETENV */ - char *str = xstrdup (value); - setenv (name, str, 1); -#else - size_t len = strlen (name) + 1 + strlen (value) + 1; - char *str = XMALLOC (char, len); - sprintf (str, "%s=%s", name, value); - if (putenv (str) != EXIT_SUCCESS) - { - XFREE (str); - } -#endif - } -} - -char * -lt_extend_str (const char *orig_value, const char *add, int to_end) -{ - char *new_value; - if (orig_value && *orig_value) - { - size_t orig_value_len = strlen (orig_value); - size_t add_len = strlen (add); - new_value = XMALLOC (char, add_len + orig_value_len + 1); - if (to_end) - { - strcpy (new_value, orig_value); - strcpy (new_value + orig_value_len, add); - } - else - { - strcpy (new_value, add); - strcpy (new_value + add_len, orig_value); - } - } - else - { - new_value = xstrdup (add); - } - return new_value; -} - -void -lt_update_exe_path (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", - nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { - char *new_value = lt_extend_str (getenv (name), value, 0); - /* some systems can't cope with a ':'-terminated path #' */ - size_t len = strlen (new_value); - while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) - { - new_value[--len] = '\0'; - } - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -void -lt_update_lib_path (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", - nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { - char *new_value = lt_extend_str (getenv (name), value, 0); - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -EOF - case $host_os in - mingw*) - cat <<"EOF" - -/* Prepares an argument vector before calling spawn(). - Note that spawn() does not by itself call the command interpreter - (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : - ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&v); - v.dwPlatformId == VER_PLATFORM_WIN32_NT; - }) ? "cmd.exe" : "command.com"). - Instead it simply concatenates the arguments, separated by ' ', and calls - CreateProcess(). We must quote the arguments since Win32 CreateProcess() - interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a - special way: - - Space and tab are interpreted as delimiters. They are not treated as - delimiters if they are surrounded by double quotes: "...". - - Unescaped double quotes are removed from the input. Their only effect is - that within double quotes, space and tab are treated like normal - characters. - - Backslashes not followed by double quotes are not special. - - But 2*n+1 backslashes followed by a double quote become - n backslashes followed by a double quote (n >= 0): - \" -> " - \\\" -> \" - \\\\\" -> \\" - */ -#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" -#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" -char ** -prepare_spawn (char **argv) -{ - size_t argc; - char **new_argv; - size_t i; - - /* Count number of arguments. */ - for (argc = 0; argv[argc] != NULL; argc++) - ; - - /* Allocate new argument vector. */ - new_argv = XMALLOC (char *, argc + 1); - - /* Put quoted arguments into the new argument vector. */ - for (i = 0; i < argc; i++) - { - const char *string = argv[i]; - - if (string[0] == '\0') - new_argv[i] = xstrdup ("\"\""); - else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) - { - int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); - size_t length; - unsigned int backslashes; - const char *s; - char *quoted_string; - char *p; - - length = 0; - backslashes = 0; - if (quote_around) - length++; - for (s = string; *s != '\0'; s++) - { - char c = *s; - if (c == '"') - length += backslashes + 1; - length++; - if (c == '\\') - backslashes++; - else - backslashes = 0; - } - if (quote_around) - length += backslashes + 1; - - quoted_string = XMALLOC (char, length + 1); - - p = quoted_string; - backslashes = 0; - if (quote_around) - *p++ = '"'; - for (s = string; *s != '\0'; s++) - { - char c = *s; - if (c == '"') - { - unsigned int j; - for (j = backslashes + 1; j > 0; j--) - *p++ = '\\'; - } - *p++ = c; - if (c == '\\') - backslashes++; - else - backslashes = 0; - } - if (quote_around) - { - unsigned int j; - for (j = backslashes; j > 0; j--) - *p++ = '\\'; - *p++ = '"'; - } - *p = '\0'; - - new_argv[i] = quoted_string; - } - else - new_argv[i] = (char *) string; - } - new_argv[argc] = NULL; - - return new_argv; -} -EOF - ;; - esac - - cat <<"EOF" -void lt_dump_script (FILE* f) -{ -EOF - func_emit_wrapper yes | - $SED -n -e ' -s/^\(.\{79\}\)\(..*\)/\1\ -\2/ -h -s/\([\\"]\)/\\\1/g -s/$/\\n/ -s/\([^\n]*\).*/ fputs ("\1", f);/p -g -D' - cat <<"EOF" -} -EOF -} -# end: func_emit_cwrapperexe_src - -# func_win32_import_lib_p ARG -# True if ARG is an import lib, as indicated by $file_magic_cmd -func_win32_import_lib_p () -{ - $debug_cmd - - case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in - *import*) : ;; - *) false ;; - esac -} - -# func_suncc_cstd_abi -# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! -# Several compiler flags select an ABI that is incompatible with the -# Cstd library. Avoid specifying it if any are in CXXFLAGS. -func_suncc_cstd_abi () -{ - $debug_cmd - - case " $compile_command " in - *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) - suncc_use_cstd_abi=no - ;; - *) - suncc_use_cstd_abi=yes - ;; - esac -} - -# func_mode_link arg... -func_mode_link () -{ - $debug_cmd - - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - # It is impossible to link a dll without this setting, and - # we shouldn't force the makefile maintainer to figure out - # what system we are compiling for in order to pass an extra - # flag for every libtool invocation. - # allow_undefined=no - - # FIXME: Unfortunately, there are problems with the above when trying - # to make a dll that has undefined symbols, in which case not - # even a static library is built. For now, we need to specify - # -no-undefined on the libtool link line when we can be certain - # that all symbols are satisfied, otherwise we get a static library. - allow_undefined=yes - ;; - *) - allow_undefined=yes - ;; - esac - libtool_args=$nonopt - base_compile="$nonopt $@" - compile_command=$nonopt - finalize_command=$nonopt - - compile_rpath= - finalize_rpath= - compile_shlibpath= - finalize_shlibpath= - convenience= - old_convenience= - deplibs= - old_deplibs= - compiler_flags= - linker_flags= - dllsearchpath= - lib_search_path=`pwd` - inst_prefix_dir= - new_inherited_linker_flags= - - avoid_version=no - bindir= - dlfiles= - dlprefiles= - dlself=no - export_dynamic=no - export_symbols= - export_symbols_regex= - generated= - libobjs= - ltlibs= - module=no - no_install=no - objs= - os2dllname= - non_pic_objects= - precious_files_regex= - prefer_static_libs=no - preload=false - prev= - prevarg= - release= - rpath= - xrpath= - perm_rpath= - temp_rpath= - thread_safe=no - vinfo= - vinfo_number=no - weak_libs= - single_module=$wl-single_module - func_infer_tag $base_compile - - # We need to know -static, to get the right output filenames. - for arg - do - case $arg in - -shared) - test yes != "$build_libtool_libs" \ - && func_fatal_configuration "cannot build a shared library" - build_old_libs=no - break - ;; - -all-static | -static | -static-libtool-libs) - case $arg in - -all-static) - if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then - func_warning "complete static linking is impossible in this configuration" - fi - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - -static) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=built - ;; - -static-libtool-libs) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - esac - build_libtool_libs=no - build_old_libs=yes - break - ;; - esac - done - - # See if our shared archives depend on static archives. - test -n "$old_archive_from_new_cmds" && build_old_libs=yes - - # Go through the arguments, transforming them on the way. - while test "$#" -gt 0; do - arg=$1 - shift - func_quote_for_eval "$arg" - qarg=$func_quote_for_eval_unquoted_result - func_append libtool_args " $func_quote_for_eval_result" - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - output) - func_append compile_command " @OUTPUT@" - func_append finalize_command " @OUTPUT@" - ;; - esac - - case $prev in - bindir) - bindir=$arg - prev= - continue - ;; - dlfiles|dlprefiles) - $preload || { - # Add the symbol object into the linking commands. - func_append compile_command " @SYMFILE@" - func_append finalize_command " @SYMFILE@" - preload=: - } - case $arg in - *.la | *.lo) ;; # We handle these cases below. - force) - if test no = "$dlself"; then - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - self) - if test dlprefiles = "$prev"; then - dlself=yes - elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then - dlself=yes - else - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - *) - if test dlfiles = "$prev"; then - func_append dlfiles " $arg" - else - func_append dlprefiles " $arg" - fi - prev= - continue - ;; - esac - ;; - expsyms) - export_symbols=$arg - test -f "$arg" \ - || func_fatal_error "symbol file '$arg' does not exist" - prev= - continue - ;; - expsyms_regex) - export_symbols_regex=$arg - prev= - continue - ;; - framework) - case $host in - *-*-darwin*) - case "$deplibs " in - *" $qarg.ltframework "*) ;; - *) func_append deplibs " $qarg.ltframework" # this is fixed later - ;; - esac - ;; - esac - prev= - continue - ;; - inst_prefix) - inst_prefix_dir=$arg - prev= - continue - ;; - mllvm) - # Clang does not use LLVM to link, so we can simply discard any - # '-mllvm $arg' options when doing the link step. - prev= - continue - ;; - objectlist) - if test -f "$arg"; then - save_arg=$arg - moreargs= - for fil in `cat "$save_arg"` - do -# func_append moreargs " $fil" - arg=$fil - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file - func_source "$arg" - - if test -z "$pic_object" || - test -z "$non_pic_object" || - test none = "$pic_object" && - test none = "$non_pic_object"; then - func_fatal_error "cannot find name of object for '$arg'" - fi - - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir=$func_dirname_result - - if test none != "$pic_object"; then - # Prepend the subdirectory the object is found in. - pic_object=$xdir$pic_object - - if test dlfiles = "$prev"; then - if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then - func_append dlfiles " $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test dlprefiles = "$prev"; then - # Preload the old-style object. - func_append dlprefiles " $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg=$pic_object - fi - - # Non-PIC object. - if test none != "$non_pic_object"; then - # Prepend the subdirectory the object is found in. - non_pic_object=$xdir$non_pic_object - - # A standard non-PIC object - func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test none = "$pic_object"; then - arg=$non_pic_object - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object=$pic_object - func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if $opt_dry_run; then - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir=$func_dirname_result - - func_lo2o "$arg" - pic_object=$xdir$objdir/$func_lo2o_result - non_pic_object=$xdir$func_lo2o_result - func_append libobjs " $pic_object" - func_append non_pic_objects " $non_pic_object" - else - func_fatal_error "'$arg' is not a valid libtool object" - fi - fi - done - else - func_fatal_error "link input file '$arg' does not exist" - fi - arg=$save_arg - prev= - continue - ;; - os2dllname) - os2dllname=$arg - prev= - continue - ;; - precious_regex) - precious_files_regex=$arg - prev= - continue - ;; - release) - release=-$arg - prev= - continue - ;; - rpath | xrpath) - # We need an absolute path. - case $arg in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - if test rpath = "$prev"; then - case "$rpath " in - *" $arg "*) ;; - *) func_append rpath " $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; - *) func_append xrpath " $arg" ;; - esac - fi - prev= - continue - ;; - shrext) - shrext_cmds=$arg - prev= - continue - ;; - weak) - func_append weak_libs " $arg" - prev= - continue - ;; - xcclinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xcompiler) - func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xlinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $wl$qarg" - prev= - func_append compile_command " $wl$qarg" - func_append finalize_command " $wl$qarg" - continue - ;; - *) - eval "$prev=\"\$arg\"" - prev= - continue - ;; - esac - fi # test -n "$prev" - - prevarg=$arg - - case $arg in - -all-static) - if test -n "$link_static_flag"; then - # See comment for -static flag below, for more details. - func_append compile_command " $link_static_flag" - func_append finalize_command " $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. - func_fatal_error "'-allow-undefined' must not be used because it is the default" - ;; - - -avoid-version) - avoid_version=yes - continue - ;; - - -bindir) - prev=bindir - continue - ;; - - -dlopen) - prev=dlfiles - continue - ;; - - -dlpreopen) - prev=dlprefiles - continue - ;; - - -export-dynamic) - export_dynamic=yes - continue - ;; - - -export-symbols | -export-symbols-regex) - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - func_fatal_error "more than one -exported-symbols argument is not allowed" - fi - if test X-export-symbols = "X$arg"; then - prev=expsyms - else - prev=expsyms_regex - fi - continue - ;; - - -framework) - prev=framework - continue - ;; - - -inst-prefix-dir) - prev=inst_prefix - continue - ;; - - # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* - # so, if we see these flags be careful not to treat them like -L - -L[A-Z][A-Z]*:*) - case $with_gcc/$host in - no/*-*-irix* | /*-*-irix*) - func_append compile_command " $arg" - func_append finalize_command " $arg" - ;; - esac - continue - ;; - - -L*) - func_stripname "-L" '' "$arg" - if test -z "$func_stripname_result"; then - if test "$#" -gt 0; then - func_fatal_error "require no space between '-L' and '$1'" - else - func_fatal_error "need path for '-L' option" - fi - fi - func_resolve_sysroot "$func_stripname_result" - dir=$func_resolve_sysroot_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - absdir=`cd "$dir" && pwd` - test -z "$absdir" && \ - func_fatal_error "cannot determine absolute directory name of '$dir'" - dir=$absdir - ;; - esac - case "$deplibs " in - *" -L$dir "* | *" $arg "*) - # Will only happen for absolute or sysroot arguments - ;; - *) - # Preserve sysroot, but never include relative directories - case $dir in - [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; - *) func_append deplibs " -L$dir" ;; - esac - func_append lib_search_path " $dir" - ;; - esac - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$dir:"*) ;; - ::) dllsearchpath=$dir;; - *) func_append dllsearchpath ":$dir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac - continue - ;; - - -l*) - if test X-lc = "X$arg" || test X-lm = "X$arg"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) - # These systems don't actually have a C or math library (as such) - continue - ;; - *-*-os2*) - # These systems don't actually have a C library (as such) - test X-lc = "X$arg" && continue - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) - # Do not include libc due to us having libc/libc_r. - test X-lc = "X$arg" && continue - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework - func_append deplibs " System.ltframework" - continue - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - test X-lc = "X$arg" && continue - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - test X-lc = "X$arg" && continue - ;; - esac - elif test X-lc_r = "X$arg"; then - case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; - esac - fi - func_append deplibs " $arg" - continue - ;; - - -mllvm) - prev=mllvm - continue - ;; - - -module) - module=yes - continue - ;; - - # Tru64 UNIX uses -model [arg] to determine the layout of C++ - # classes, name mangling, and exception handling. - # Darwin uses the -arch flag to determine output architecture. - -model|-arch|-isysroot|--sysroot) - func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - prev=xcompiler - continue - ;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ - |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) - func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - case "$new_inherited_linker_flags " in - *" $arg "*) ;; - * ) func_append new_inherited_linker_flags " $arg" ;; - esac - continue - ;; - - -multi_module) - single_module=$wl-multi_module - continue - ;; - - -no-fast-install) - fast_install=no - continue - ;; - - -no-install) - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) - # The PATH hackery in wrapper scripts is required on Windows - # and Darwin in order for the loader to find any dlls it needs. - func_warning "'-no-install' is ignored for $host" - func_warning "assuming '-no-fast-install' instead" - fast_install=no - ;; - *) no_install=yes ;; - esac - continue - ;; - - -no-undefined) - allow_undefined=no - continue - ;; - - -objectlist) - prev=objectlist - continue - ;; - - -os2dllname) - prev=os2dllname - continue - ;; - - -o) prev=output ;; - - -precious-files-regex) - prev=precious_regex - continue - ;; - - -release) - prev=release - continue - ;; - - -rpath) - prev=rpath - continue - ;; - - -R) - prev=xrpath - continue - ;; - - -R*) - func_stripname '-R' '' "$arg" - dir=$func_stripname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - =*) - func_stripname '=' '' "$dir" - dir=$lt_sysroot$func_stripname_result - ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - case "$xrpath " in - *" $dir "*) ;; - *) func_append xrpath " $dir" ;; - esac - continue - ;; - - -shared) - # The effects of -shared are defined in a previous loop. - continue - ;; - - -shrext) - prev=shrext - continue - ;; - - -static | -static-libtool-libs) - # The effects of -static are defined in a previous loop. - # We used to do the same as -all-static on platforms that - # didn't have a PIC flag, but the assumption that the effects - # would be equivalent was wrong. It would break on at least - # Digital Unix and AIX. - continue - ;; - - -thread-safe) - thread_safe=yes - continue - ;; - - -version-info) - prev=vinfo - continue - ;; - - -version-number) - prev=vinfo - vinfo_number=yes - continue - ;; - - -weak) - prev=weak - continue - ;; - - -Wc,*) - func_stripname '-Wc,' '' "$arg" - args=$func_stripname_result - arg= - save_ifs=$IFS; IFS=, - for flag in $args; do - IFS=$save_ifs - func_quote_for_eval "$flag" - func_append arg " $func_quote_for_eval_result" - func_append compiler_flags " $func_quote_for_eval_result" - done - IFS=$save_ifs - func_stripname ' ' '' "$arg" - arg=$func_stripname_result - ;; - - -Wl,*) - func_stripname '-Wl,' '' "$arg" - args=$func_stripname_result - arg= - save_ifs=$IFS; IFS=, - for flag in $args; do - IFS=$save_ifs - func_quote_for_eval "$flag" - func_append arg " $wl$func_quote_for_eval_result" - func_append compiler_flags " $wl$func_quote_for_eval_result" - func_append linker_flags " $func_quote_for_eval_result" - done - IFS=$save_ifs - func_stripname ' ' '' "$arg" - arg=$func_stripname_result - ;; - - -Xcompiler) - prev=xcompiler - continue - ;; - - -Xlinker) - prev=xlinker - continue - ;; - - -XCClinker) - prev=xcclinker - continue - ;; - - # -msg_* for osf cc - -msg_*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result - ;; - - # Flags to be passed through unchanged, with rationale: - # -64, -mips[0-9] enable 64-bit mode for the SGI compiler - # -r[0-9][0-9]* specify processor for the SGI compiler - # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler - # +DA*, +DD* enable 64-bit mode for the HP compiler - # -q* compiler args for the IBM compiler - # -m*, -t[45]*, -txscale* architecture-specific flags for GCC - # -F/path path to uninstalled frameworks, gcc on darwin - # -p, -pg, --coverage, -fprofile-* profiling flags for GCC - # -fstack-protector* stack protector flags for GCC - # @file GCC response files - # -tp=* Portland pgcc target processor selection - # --sysroot=* for sysroot support - # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization - # -specs=* GCC specs files - # -stdlib=* select c++ std lib with clang - # -fsanitize=* Clang/GCC memory and address sanitizer - # -fuse-ld=* Linker select flags for GCC - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ - -specs=*|-fsanitize=*|-fuse-ld=*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result - func_append compile_command " $arg" - func_append finalize_command " $arg" - func_append compiler_flags " $arg" - continue - ;; - - -Z*) - if test os2 = "`expr $host : '.*\(os2\)'`"; then - # OS/2 uses -Zxxx to specify OS/2-specific options - compiler_flags="$compiler_flags $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - case $arg in - -Zlinker | -Zstack) - prev=xcompiler - ;; - esac - continue - else - # Otherwise treat like 'Some other compiler flag' below - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result - fi - ;; - - # Some other compiler flag. - -* | +*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result - ;; - - *.$objext) - # A standard object. - func_append objs " $arg" - ;; - - *.lo) - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file - func_source "$arg" - - if test -z "$pic_object" || - test -z "$non_pic_object" || - test none = "$pic_object" && - test none = "$non_pic_object"; then - func_fatal_error "cannot find name of object for '$arg'" - fi - - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir=$func_dirname_result - - test none = "$pic_object" || { - # Prepend the subdirectory the object is found in. - pic_object=$xdir$pic_object - - if test dlfiles = "$prev"; then - if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then - func_append dlfiles " $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test dlprefiles = "$prev"; then - # Preload the old-style object. - func_append dlprefiles " $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg=$pic_object - } - - # Non-PIC object. - if test none != "$non_pic_object"; then - # Prepend the subdirectory the object is found in. - non_pic_object=$xdir$non_pic_object - - # A standard non-PIC object - func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test none = "$pic_object"; then - arg=$non_pic_object - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object=$pic_object - func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if $opt_dry_run; then - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir=$func_dirname_result - - func_lo2o "$arg" - pic_object=$xdir$objdir/$func_lo2o_result - non_pic_object=$xdir$func_lo2o_result - func_append libobjs " $pic_object" - func_append non_pic_objects " $non_pic_object" - else - func_fatal_error "'$arg' is not a valid libtool object" - fi - fi - ;; - - *.$libext) - # An archive. - func_append deplibs " $arg" - func_append old_deplibs " $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - - func_resolve_sysroot "$arg" - if test dlfiles = "$prev"; then - # This library was specified with -dlopen. - func_append dlfiles " $func_resolve_sysroot_result" - prev= - elif test dlprefiles = "$prev"; then - # The library was specified with -dlpreopen. - func_append dlprefiles " $func_resolve_sysroot_result" - prev= - else - func_append deplibs " $func_resolve_sysroot_result" - fi - continue - ;; - - # Some other compiler argument. - *) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result - ;; - esac # arg - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi - done # argument parsing loop - - test -n "$prev" && \ - func_fatal_help "the '$prevarg' option requires an argument" - - if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi - - oldlibs= - # calculate the name of the file, without its directory - func_basename "$output" - outputname=$func_basename_result - libobjs_save=$libobjs - - if test -n "$shlibpath_var"; then - # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` - else - shlib_search_path= - fi - eval sys_lib_search_path=\"$sys_lib_search_path_spec\" - eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - - # Definition is injected by LT_CONFIG during libtool generation. - func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" - - func_dirname "$output" "/" "" - output_objdir=$func_dirname_result$objdir - func_to_tool_file "$output_objdir/" - tool_output_objdir=$func_to_tool_file_result - # Create the object directory. - func_mkdir_p "$output_objdir" - - # Determine the type of output - case $output in - "") - func_fatal_help "you must specify an output file" - ;; - *.$libext) linkmode=oldlib ;; - *.lo | *.$objext) linkmode=obj ;; - *.la) linkmode=lib ;; - *) linkmode=prog ;; # Anything else should be a program. - esac - - specialdeplibs= - - libs= - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do - if $opt_preserve_dup_deps; then - case "$libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append libs " $deplib" - done - - if test lib = "$linkmode"; then - libs="$predeps $libs $compiler_lib_search_path $postdeps" - - # Compute libraries that are listed more than once in $predeps - # $postdeps and mark them as special (i.e., whose duplicates are - # not to be eliminated). - pre_post_deps= - if $opt_duplicate_compiler_generated_deps; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in - *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; - esac - func_append pre_post_deps " $pre_post_dep" - done - fi - pre_post_deps= - fi - - deplibs= - newdependency_libs= - newlib_search_path= - need_relink=no # whether we're linking any uninstalled libtool libraries - notinst_deplibs= # not-installed libtool libraries - notinst_path= # paths that contain not-installed libtool libraries - - case $linkmode in - lib) - passes="conv dlpreopen link" - for file in $dlfiles $dlprefiles; do - case $file in - *.la) ;; - *) - func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" - ;; - esac - done - ;; - prog) - compile_deplibs= - finalize_deplibs= - alldeplibs=false - newdlfiles= - newdlprefiles= - passes="conv scan dlopen dlpreopen link" - ;; - *) passes="conv" - ;; - esac - - for pass in $passes; do - # The preopen pass in lib mode reverses $deplibs; put it back here - # so that -L comes before libs that need it for instance... - if test lib,link = "$linkmode,$pass"; then - ## FIXME: Find the place where the list is rebuilt in the wrong - ## order, and fix it there properly - tmp_deplibs= - for deplib in $deplibs; do - tmp_deplibs="$deplib $tmp_deplibs" - done - deplibs=$tmp_deplibs - fi - - if test lib,link = "$linkmode,$pass" || - test prog,scan = "$linkmode,$pass"; then - libs=$deplibs - deplibs= - fi - if test prog = "$linkmode"; then - case $pass in - dlopen) libs=$dlfiles ;; - dlpreopen) libs=$dlprefiles ;; - link) - libs="$deplibs %DEPLIBS%" - test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" - ;; - esac - fi - if test lib,dlpreopen = "$linkmode,$pass"; then - # Collect and forward deplibs of preopened libtool libs - for lib in $dlprefiles; do - # Ignore non-libtool-libs - dependency_libs= - func_resolve_sysroot "$lib" - case $lib in - *.la) func_source "$func_resolve_sysroot_result" ;; - esac - - # Collect preopened libtool deplibs, except any this library - # has declared as weak libs - for deplib in $dependency_libs; do - func_basename "$deplib" - deplib_base=$func_basename_result - case " $weak_libs " in - *" $deplib_base "*) ;; - *) func_append deplibs " $deplib" ;; - esac - done - done - libs=$dlprefiles - fi - if test dlopen = "$pass"; then - # Collect dlpreopened libraries - save_deplibs=$deplibs - deplibs= - fi - - for deplib in $libs; do - lib= - found=false - case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ - |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) - if test prog,link = "$linkmode,$pass"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - func_append compiler_flags " $deplib" - if test lib = "$linkmode"; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi - continue - ;; - -l*) - if test lib != "$linkmode" && test prog != "$linkmode"; then - func_warning "'-l' is ignored for archives/objects" - continue - fi - func_stripname '-l' '' "$deplib" - name=$func_stripname_result - if test lib = "$linkmode"; then - searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" - else - searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" - fi - for searchdir in $searchdirs; do - for search_ext in .la $std_shrext .so .a; do - # Search the libtool library - lib=$searchdir/lib$name$search_ext - if test -f "$lib"; then - if test .la = "$search_ext"; then - found=: - else - found=false - fi - break 2 - fi - done - done - if $found; then - # deplib is a libtool library - # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, - # We need to do some special things here, and not later. - if test yes = "$allow_libtool_libs_with_static_runtimes"; then - case " $predeps $postdeps " in - *" $deplib "*) - if func_lalib_p "$lib"; then - library_names= - old_library= - func_source "$lib" - for l in $old_library $library_names; do - ll=$l - done - if test "X$ll" = "X$old_library"; then # only static version available - found=false - func_dirname "$lib" "" "." - ladir=$func_dirname_result - lib=$ladir/$old_library - if test prog,link = "$linkmode,$pass"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - fi - ;; - *) ;; - esac - fi - else - # deplib doesn't seem to be a libtool library - if test prog,link = "$linkmode,$pass"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - ;; # -l - *.ltframework) - if test prog,link = "$linkmode,$pass"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - if test lib = "$linkmode"; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi - continue - ;; - -L*) - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test conv = "$pass" && continue - newdependency_libs="$deplib $newdependency_libs" - func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - prog) - if test conv = "$pass"; then - deplibs="$deplib $deplibs" - continue - fi - if test scan = "$pass"; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - *) - func_warning "'-L' is ignored for archives/objects" - ;; - esac # linkmode - continue - ;; # -L - -R*) - if test link = "$pass"; then - func_stripname '-R' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - dir=$func_resolve_sysroot_result - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; - *) func_append xrpath " $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; - *.la) - func_resolve_sysroot "$deplib" - lib=$func_resolve_sysroot_result - ;; - *.$libext) - if test conv = "$pass"; then - deplibs="$deplib $deplibs" - continue - fi - case $linkmode in - lib) - # Linking convenience modules into shared libraries is allowed, - # but linking other static libraries is non-portable. - case " $dlpreconveniencelibs " in - *" $deplib "*) ;; - *) - valid_a_lib=false - case $deplibs_check_method in - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then - valid_a_lib=: - fi - ;; - pass_all) - valid_a_lib=: - ;; - esac - if $valid_a_lib; then - echo - $ECHO "*** Warning: Linking the shared library $output against the" - $ECHO "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" - else - echo - $ECHO "*** Warning: Trying to link with static lib archive $deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because the file extensions .$libext of this argument makes me believe" - echo "*** that it is just a static archive that I should not use here." - fi - ;; - esac - continue - ;; - prog) - if test link != "$pass"; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - continue - ;; - esac # linkmode - ;; # *.$libext - *.lo | *.$objext) - if test conv = "$pass"; then - deplibs="$deplib $deplibs" - elif test prog = "$linkmode"; then - if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - func_append newdlprefiles " $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - func_append newdlfiles " $deplib" - fi - fi - continue - ;; - %DEPLIBS%) - alldeplibs=: - continue - ;; - esac # case $deplib - - $found || test -f "$lib" \ - || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$lib" \ - || func_fatal_error "'$lib' is not a valid libtool archive" - - func_dirname "$lib" "" "." - ladir=$func_dirname_result - - dlname= - dlopen= - dlpreopen= - libdir= - library_names= - old_library= - inherited_linker_flags= - # If the library was installed with an old release of libtool, - # it will not redefine variables installed, or shouldnotlink - installed=yes - shouldnotlink=no - avoidtemprpath= - - - # Read the .la file - func_source "$lib" - - # Convert "-framework foo" to "foo.ltframework" - if test -n "$inherited_linker_flags"; then - tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` - for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do - case " $new_inherited_linker_flags " in - *" $tmp_inherited_linker_flag "*) ;; - *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; - esac - done - fi - dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - if test lib,link = "$linkmode,$pass" || - test prog,scan = "$linkmode,$pass" || - { test prog != "$linkmode" && test lib != "$linkmode"; }; then - test -n "$dlopen" && func_append dlfiles " $dlopen" - test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" - fi - - if test conv = "$pass"; then - # Only check for convenience libraries - deplibs="$lib $deplibs" - if test -z "$libdir"; then - if test -z "$old_library"; then - func_fatal_error "cannot find name of link library for '$lib'" - fi - # It is a libtool convenience library, so add in its objects. - func_append convenience " $ladir/$objdir/$old_library" - func_append old_convenience " $ladir/$objdir/$old_library" - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_preserve_dup_deps; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done - elif test prog != "$linkmode" && test lib != "$linkmode"; then - func_fatal_error "'$lib' is not a convenience library" - fi - continue - fi # $pass = conv - - - # Get the name of the library we link against. - linklib= - if test -n "$old_library" && - { test yes = "$prefer_static_libs" || - test built,no = "$prefer_static_libs,$installed"; }; then - linklib=$old_library - else - for l in $old_library $library_names; do - linklib=$l - done - fi - if test -z "$linklib"; then - func_fatal_error "cannot find name of link library for '$lib'" - fi - - # This library was specified with -dlopen. - if test dlopen = "$pass"; then - test -z "$libdir" \ - && func_fatal_error "cannot -dlopen a convenience library: '$lib'" - if test -z "$dlname" || - test yes != "$dlopen_support" || - test no = "$build_libtool_libs" - then - # If there is no dlname, no dlopen support or we're linking - # statically, we need to preload. We also need to preload any - # dependent libraries so libltdl's deplib preloader doesn't - # bomb out in the load deplibs phase. - func_append dlprefiles " $lib $dependency_libs" - else - func_append newdlfiles " $lib" - fi - continue - fi # $pass = dlopen - - # We need an absolute path. - case $ladir in - [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; - *) - abs_ladir=`cd "$ladir" && pwd` - if test -z "$abs_ladir"; then - func_warning "cannot determine absolute directory name of '$ladir'" - func_warning "passing it literally to the linker, although it might fail" - abs_ladir=$ladir - fi - ;; - esac - func_basename "$lib" - laname=$func_basename_result - - # Find the relevant object directory and library name. - if test yes = "$installed"; then - if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - func_warning "library '$lib' was moved." - dir=$ladir - absdir=$abs_ladir - libdir=$abs_ladir - else - dir=$lt_sysroot$libdir - absdir=$lt_sysroot$libdir - fi - test yes = "$hardcode_automatic" && avoidtemprpath=yes - else - if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then - dir=$ladir - absdir=$abs_ladir - # Remove this search path later - func_append notinst_path " $abs_ladir" - else - dir=$ladir/$objdir - absdir=$abs_ladir/$objdir - # Remove this search path later - func_append notinst_path " $abs_ladir" - fi - fi # $installed = yes - func_stripname 'lib' '.la' "$laname" - name=$func_stripname_result - - # This library was specified with -dlpreopen. - if test dlpreopen = "$pass"; then - if test -z "$libdir" && test prog = "$linkmode"; then - func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" - fi - case $host in - # special handling for platforms with PE-DLLs. - *cygwin* | *mingw* | *cegcc* ) - # Linker will automatically link against shared library if both - # static and shared are present. Therefore, ensure we extract - # symbols from the import library if a shared library is present - # (otherwise, the dlopen module name will be incorrect). We do - # this by putting the import library name into $newdlprefiles. - # We recover the dlopen module name by 'saving' the la file - # name in a special purpose variable, and (later) extracting the - # dlname from the la file. - if test -n "$dlname"; then - func_tr_sh "$dir/$linklib" - eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" - func_append newdlprefiles " $dir/$linklib" - else - func_append newdlprefiles " $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - func_append dlpreconveniencelibs " $dir/$old_library" - fi - ;; - * ) - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - func_append newdlprefiles " $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - func_append dlpreconveniencelibs " $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - func_append newdlprefiles " $dir/$dlname" - else - func_append newdlprefiles " $dir/$linklib" - fi - ;; - esac - fi # $pass = dlpreopen - - if test -z "$libdir"; then - # Link the convenience library - if test lib = "$linkmode"; then - deplibs="$dir/$old_library $deplibs" - elif test prog,link = "$linkmode,$pass"; then - compile_deplibs="$dir/$old_library $compile_deplibs" - finalize_deplibs="$dir/$old_library $finalize_deplibs" - else - deplibs="$lib $deplibs" # used for prog,scan pass - fi - continue - fi - - - if test prog = "$linkmode" && test link != "$pass"; then - func_append newlib_search_path " $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=false - if test no != "$link_all_deplibs" || test -z "$library_names" || - test no = "$build_libtool_libs"; then - linkalldeplibs=: - fi - - tmp_libs= - for deplib in $dependency_libs; do - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - esac - # Need to link against all dependency_libs? - if $linkalldeplibs; then - deplibs="$deplib $deplibs" - else - # Need to hardcode shared library paths - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi - if $opt_preserve_dup_deps; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done # for deplib - continue - fi # $linkmode = prog... - - if test prog,link = "$linkmode,$pass"; then - if test -n "$library_names" && - { { test no = "$prefer_static_libs" || - test built,yes = "$prefer_static_libs,$installed"; } || - test -z "$old_library"; }; then - # We need to hardcode the library path - if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then - # Make sure the rpath contains only unique directories. - case $temp_rpath: in - *"$absdir:"*) ;; - *) func_append temp_rpath "$absdir:" ;; - esac - fi - - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac - fi # $linkmode,$pass = prog,link... - - if $alldeplibs && - { test pass_all = "$deplibs_check_method" || - { test yes = "$build_libtool_libs" && - test -n "$library_names"; }; }; then - # We only need to search for static libraries - continue - fi - fi - - link_static=no # Whether the deplib will be linked statically - use_static_libs=$prefer_static_libs - if test built = "$use_static_libs" && test yes = "$installed"; then - use_static_libs=no - fi - if test -n "$library_names" && - { test no = "$use_static_libs" || test -z "$old_library"; }; then - case $host in - *cygwin* | *mingw* | *cegcc* | *os2*) - # No point in relinking DLLs because paths are not encoded - func_append notinst_deplibs " $lib" - need_relink=no - ;; - *) - if test no = "$installed"; then - func_append notinst_deplibs " $lib" - need_relink=yes - fi - ;; - esac - # This is a shared library - - # Warn about portability, can't link against -module's on some - # systems (darwin). Don't bleat about dlopened modules though! - dlopenmodule= - for dlpremoduletest in $dlprefiles; do - if test "X$dlpremoduletest" = "X$lib"; then - dlopenmodule=$dlpremoduletest - break - fi - done - if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then - echo - if test prog = "$linkmode"; then - $ECHO "*** Warning: Linking the executable $output against the loadable module" - else - $ECHO "*** Warning: Linking the shared library $output against the loadable module" - fi - $ECHO "*** $linklib is not portable!" - fi - if test lib = "$linkmode" && - test yes = "$hardcode_into_libs"; then - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac - fi - - if test -n "$old_archive_from_expsyms_cmds"; then - # figure out the soname - set dummy $library_names - shift - realname=$1 - shift - libname=`eval "\\$ECHO \"$libname_spec\""` - # use dlname if we got it. it's perfectly good, no? - if test -n "$dlname"; then - soname=$dlname - elif test -n "$soname_spec"; then - # bleh windows - case $host in - *cygwin* | mingw* | *cegcc* | *os2*) - func_arith $current - $age - major=$func_arith_result - versuffix=-$major - ;; - esac - eval soname=\"$soname_spec\" - else - soname=$realname - fi - - # Make a new name for the extract_expsyms_cmds to use - soroot=$soname - func_basename "$soroot" - soname=$func_basename_result - func_stripname 'lib' '.dll' "$soname" - newlib=libimp-$func_stripname_result.a - - # If the library has no export list, then create one now - if test -f "$output_objdir/$soname-def"; then : - else - func_verbose "extracting exported symbol list from '$soname'" - func_execute_cmds "$extract_expsyms_cmds" 'exit $?' - fi - - # Create $newlib - if test -f "$output_objdir/$newlib"; then :; else - func_verbose "generating import library for '$soname'" - func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' - fi - # make sure the library variables are pointing to the new library - dir=$output_objdir - linklib=$newlib - fi # test -n "$old_archive_from_expsyms_cmds" - - if test prog = "$linkmode" || test relink != "$opt_mode"; then - add_shlibpath= - add_dir= - add= - lib_linked=yes - case $hardcode_action in - immediate | unsupported) - if test no = "$hardcode_direct"; then - add=$dir/$linklib - case $host in - *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; - *-*-sysv4*uw2*) add_dir=-L$dir ;; - *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ - *-*-unixware7*) add_dir=-L$dir ;; - *-*-darwin* ) - # if the lib is a (non-dlopened) module then we cannot - # link against it, someone is ignoring the earlier warnings - if /usr/bin/file -L $add 2> /dev/null | - $GREP ": [^:]* bundle" >/dev/null; then - if test "X$dlopenmodule" != "X$lib"; then - $ECHO "*** Warning: lib $linklib is a module, not a shared library" - if test -z "$old_library"; then - echo - echo "*** And there doesn't seem to be a static archive available" - echo "*** The link will probably fail, sorry" - else - add=$dir/$old_library - fi - elif test -n "$old_library"; then - add=$dir/$old_library - fi - fi - esac - elif test no = "$hardcode_minus_L"; then - case $host in - *-*-sunos*) add_shlibpath=$dir ;; - esac - add_dir=-L$dir - add=-l$name - elif test no = "$hardcode_shlibpath_var"; then - add_shlibpath=$dir - add=-l$name - else - lib_linked=no - fi - ;; - relink) - if test yes = "$hardcode_direct" && - test no = "$hardcode_direct_absolute"; then - add=$dir/$linklib - elif test yes = "$hardcode_minus_L"; then - add_dir=-L$absdir - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi - add=-l$name - elif test yes = "$hardcode_shlibpath_var"; then - add_shlibpath=$dir - add=-l$name - else - lib_linked=no - fi - ;; - *) lib_linked=no ;; - esac - - if test yes != "$lib_linked"; then - func_fatal_configuration "unsupported hardcode properties" - fi - - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; - *) func_append compile_shlibpath "$add_shlibpath:" ;; - esac - fi - if test prog = "$linkmode"; then - test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" - test -n "$add" && compile_deplibs="$add $compile_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - if test yes != "$hardcode_direct" && - test yes != "$hardcode_minus_L" && - test yes = "$hardcode_shlibpath_var"; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) func_append finalize_shlibpath "$libdir:" ;; - esac - fi - fi - fi - - if test prog = "$linkmode" || test relink = "$opt_mode"; then - add_shlibpath= - add_dir= - add= - # Finalize command for both is simple: just hardcode it. - if test yes = "$hardcode_direct" && - test no = "$hardcode_direct_absolute"; then - add=$libdir/$linklib - elif test yes = "$hardcode_minus_L"; then - add_dir=-L$libdir - add=-l$name - elif test yes = "$hardcode_shlibpath_var"; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) func_append finalize_shlibpath "$libdir:" ;; - esac - add=-l$name - elif test yes = "$hardcode_automatic"; then - if test -n "$inst_prefix_dir" && - test -f "$inst_prefix_dir$libdir/$linklib"; then - add=$inst_prefix_dir$libdir/$linklib - else - add=$libdir/$linklib - fi - else - # We cannot seem to hardcode it, guess we'll fake it. - add_dir=-L$libdir - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi - add=-l$name - fi - - if test prog = "$linkmode"; then - test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" - test -n "$add" && finalize_deplibs="$add $finalize_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - fi - fi - elif test prog = "$linkmode"; then - # Here we assume that one of hardcode_direct or hardcode_minus_L - # is not unsupported. This is valid on all known static and - # shared platforms. - if test unsupported != "$hardcode_direct"; then - test -n "$old_library" && linklib=$old_library - compile_deplibs="$dir/$linklib $compile_deplibs" - finalize_deplibs="$dir/$linklib $finalize_deplibs" - else - compile_deplibs="-l$name -L$dir $compile_deplibs" - finalize_deplibs="-l$name -L$dir $finalize_deplibs" - fi - elif test yes = "$build_libtool_libs"; then - # Not a shared library - if test pass_all != "$deplibs_check_method"; then - # We're trying link a shared library against a static one - # but the system doesn't support it. - - # Just print a warning and add the library to dependency_libs so - # that the program can be linked against the static library. - echo - $ECHO "*** Warning: This system cannot link to static lib archive $lib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." - if test yes = "$module"; then - echo "*** But as you try to build a module library, libtool will still create " - echo "*** a static module, that should work as long as the dlopening application" - echo "*** is linked with the -dlopen flag to resolve symbols at runtime." - if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using 'nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** 'nm' from GNU binutils and a full rebuild may help." - fi - if test no = "$build_old_libs"; then - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - else - deplibs="$dir/$old_library $deplibs" - link_static=yes - fi - fi # link shared/static library? - - if test lib = "$linkmode"; then - if test -n "$dependency_libs" && - { test yes != "$hardcode_into_libs" || - test yes = "$build_old_libs" || - test yes = "$link_static"; }; then - # Extract -R from dependency_libs - temp_deplibs= - for libdir in $dependency_libs; do - case $libdir in - -R*) func_stripname '-R' '' "$libdir" - temp_xrpath=$func_stripname_result - case " $xrpath " in - *" $temp_xrpath "*) ;; - *) func_append xrpath " $temp_xrpath";; - esac;; - *) func_append temp_deplibs " $libdir";; - esac - done - dependency_libs=$temp_deplibs - fi - - func_append newlib_search_path " $absdir" - # Link against this library - test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result";; - *) func_resolve_sysroot "$deplib" ;; - esac - if $opt_preserve_dup_deps; then - case "$tmp_libs " in - *" $func_resolve_sysroot_result "*) - func_append specialdeplibs " $func_resolve_sysroot_result" ;; - esac - fi - func_append tmp_libs " $func_resolve_sysroot_result" - done - - if test no != "$link_all_deplibs"; then - # Add the search paths of all dependency libraries - for deplib in $dependency_libs; do - path= - case $deplib in - -L*) path=$deplib ;; - *.la) - func_resolve_sysroot "$deplib" - deplib=$func_resolve_sysroot_result - func_dirname "$deplib" "" "." - dir=$func_dirname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - func_warning "cannot determine absolute directory name of '$dir'" - absdir=$dir - fi - ;; - esac - if $GREP "^installed=no" $deplib > /dev/null; then - case $host in - *-*-darwin*) - depdepl= - eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names"; then - for tmp in $deplibrary_names; do - depdepl=$tmp - done - if test -f "$absdir/$objdir/$depdepl"; then - depdepl=$absdir/$objdir/$depdepl - darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - if test -z "$darwin_install_name"; then - darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - fi - func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" - func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" - path= - fi - fi - ;; - *) - path=-L$absdir/$objdir - ;; - esac - else - eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - test -z "$libdir" && \ - func_fatal_error "'$deplib' is not a valid libtool archive" - test "$absdir" != "$libdir" && \ - func_warning "'$deplib' seems to be moved" - - path=-L$absdir - fi - ;; - esac - case " $deplibs " in - *" $path "*) ;; - *) deplibs="$path $deplibs" ;; - esac - done - fi # link_all_deplibs != no - fi # linkmode = lib - done # for deplib in $libs - if test link = "$pass"; then - if test prog = "$linkmode"; then - compile_deplibs="$new_inherited_linker_flags $compile_deplibs" - finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" - else - compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - fi - fi - dependency_libs=$newdependency_libs - if test dlpreopen = "$pass"; then - # Link the dlpreopened libraries before other libraries - for deplib in $save_deplibs; do - deplibs="$deplib $deplibs" - done - fi - if test dlopen != "$pass"; then - test conv = "$pass" || { - # Make sure lib_search_path contains only unique directories. - lib_search_path= - for dir in $newlib_search_path; do - case "$lib_search_path " in - *" $dir "*) ;; - *) func_append lib_search_path " $dir" ;; - esac - done - newlib_search_path= - } - - if test prog,link = "$linkmode,$pass"; then - vars="compile_deplibs finalize_deplibs" - else - vars=deplibs - fi - for var in $vars dependency_libs; do - # Add libraries to $var in reverse order - eval tmp_libs=\"\$$var\" - new_libs= - for deplib in $tmp_libs; do - # FIXME: Pedantically, this is the right thing to do, so - # that some nasty dependency loop isn't accidentally - # broken: - #new_libs="$deplib $new_libs" - # Pragmatically, this seems to cause very few problems in - # practice: - case $deplib in - -L*) new_libs="$deplib $new_libs" ;; - -R*) ;; - *) - # And here is the reason: when a library appears more - # than once as an explicit dependence of a library, or - # is implicitly linked in more than once by the - # compiler, it is considered special, and multiple - # occurrences thereof are not removed. Compare this - # with having the same library being listed as a - # dependency of multiple other libraries: in this case, - # we know (pedantically, we assume) the library does not - # need to be listed more than once, so we keep only the - # last copy. This is not always right, but it is rare - # enough that we require users that really mean to play - # such unportable linking tricks to link the library - # using -Wl,-lname, so that libtool does not consider it - # for duplicate removal. - case " $specialdeplibs " in - *" $deplib "*) new_libs="$deplib $new_libs" ;; - *) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$deplib $new_libs" ;; - esac - ;; - esac - ;; - esac - done - tmp_libs= - for deplib in $new_libs; do - case $deplib in - -L*) - case " $tmp_libs " in - *" $deplib "*) ;; - *) func_append tmp_libs " $deplib" ;; - esac - ;; - *) func_append tmp_libs " $deplib" ;; - esac - done - eval $var=\"$tmp_libs\" - done # for var - fi - - # Add Sun CC postdeps if required: - test CXX = "$tagname" && { - case $host_os in - linux*) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C++ 5.9 - func_suncc_cstd_abi - - if test no != "$suncc_use_cstd_abi"; then - func_append postdeps ' -library=Cstd -library=Crun' - fi - ;; - esac - ;; - - solaris*) - func_cc_basename "$CC" - case $func_cc_basename_result in - CC* | sunCC*) - func_suncc_cstd_abi - - if test no != "$suncc_use_cstd_abi"; then - func_append postdeps ' -library=Cstd -library=Crun' - fi - ;; - esac - ;; - esac - } - - # Last step: remove runtime libs from dependency_libs - # (they stay in deplibs) - tmp_libs= - for i in $dependency_libs; do - case " $predeps $postdeps $compiler_lib_search_path " in - *" $i "*) - i= - ;; - esac - if test -n "$i"; then - func_append tmp_libs " $i" - fi - done - dependency_libs=$tmp_libs - done # for pass - if test prog = "$linkmode"; then - dlfiles=$newdlfiles - fi - if test prog = "$linkmode" || test lib = "$linkmode"; then - dlprefiles=$newdlprefiles - fi - - case $linkmode in - oldlib) - if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then - func_warning "'-dlopen' is ignored for archives" - fi - - case " $deplibs" in - *\ -l* | *\ -L*) - func_warning "'-l' and '-L' are ignored for archives" ;; - esac - - test -n "$rpath" && \ - func_warning "'-rpath' is ignored for archives" - - test -n "$xrpath" && \ - func_warning "'-R' is ignored for archives" - - test -n "$vinfo" && \ - func_warning "'-version-info/-version-number' is ignored for archives" - - test -n "$release" && \ - func_warning "'-release' is ignored for archives" - - test -n "$export_symbols$export_symbols_regex" && \ - func_warning "'-export-symbols' is ignored for archives" - - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs=$output - func_append objs "$old_deplibs" - ;; - - lib) - # Make sure we only generate libraries of the form 'libNAME.la'. - case $outputname in - lib*) - func_stripname 'lib' '.la' "$outputname" - name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - ;; - *) - test no = "$module" \ - && func_fatal_help "libtool library '$output' must begin with 'lib'" - - if test no != "$need_lib_prefix"; then - # Add the "lib" prefix for modules if required - func_stripname '' '.la' "$outputname" - name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - else - func_stripname '' '.la' "$outputname" - libname=$func_stripname_result - fi - ;; - esac - - if test -n "$objs"; then - if test pass_all != "$deplibs_check_method"; then - func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" - else - echo - $ECHO "*** Warning: Linking the shared library $output against the non-libtool" - $ECHO "*** objects $objs is not portable!" - func_append libobjs " $objs" - fi - fi - - test no = "$dlself" \ - || func_warning "'-dlopen self' is ignored for libtool libraries" - - set dummy $rpath - shift - test 1 -lt "$#" \ - && func_warning "ignoring multiple '-rpath's for a libtool library" - - install_libdir=$1 - - oldlibs= - if test -z "$rpath"; then - if test yes = "$build_libtool_libs"; then - # Building a libtool convenience library. - # Some compilers have problems with a '.al' extension so - # convenience libraries should have the same extension an - # archive normally would. - oldlibs="$output_objdir/$libname.$libext $oldlibs" - build_libtool_libs=convenience - build_old_libs=yes - fi - - test -n "$vinfo" && \ - func_warning "'-version-info/-version-number' is ignored for convenience libraries" - - test -n "$release" && \ - func_warning "'-release' is ignored for convenience libraries" - else - - # Parse the version information argument. - save_ifs=$IFS; IFS=: - set dummy $vinfo 0 0 0 - shift - IFS=$save_ifs - - test -n "$7" && \ - func_fatal_help "too many parameters to '-version-info'" - - # convert absolute version numbers to libtool ages - # this retains compatibility with .la files and attempts - # to make the code below a bit more comprehensible - - case $vinfo_number in - yes) - number_major=$1 - number_minor=$2 - number_revision=$3 - # - # There are really only two kinds -- those that - # use the current revision as the major version - # and those that subtract age and use age as - # a minor version. But, then there is irix - # that has an extra 1 added just for fun - # - case $version_type in - # correct linux to gnu/linux during the next big refactor - darwin|freebsd-elf|linux|osf|windows|none) - func_arith $number_major + $number_minor - current=$func_arith_result - age=$number_minor - revision=$number_revision - ;; - freebsd-aout|qnx|sunos) - current=$number_major - revision=$number_minor - age=0 - ;; - irix|nonstopux) - func_arith $number_major + $number_minor - current=$func_arith_result - age=$number_minor - revision=$number_minor - lt_irix_increment=no - ;; - *) - func_fatal_configuration "$modename: unknown library version type '$version_type'" - ;; - esac - ;; - no) - current=$1 - revision=$2 - age=$3 - ;; - esac - - # Check that each of the things are valid numbers. - case $current in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "CURRENT '$current' must be a nonnegative integer" - func_fatal_error "'$vinfo' is not valid version information" - ;; - esac - - case $revision in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "REVISION '$revision' must be a nonnegative integer" - func_fatal_error "'$vinfo' is not valid version information" - ;; - esac - - case $age in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "AGE '$age' must be a nonnegative integer" - func_fatal_error "'$vinfo' is not valid version information" - ;; - esac - - if test "$age" -gt "$current"; then - func_error "AGE '$age' is greater than the current interface number '$current'" - func_fatal_error "'$vinfo' is not valid version information" - fi - - # Calculate the version variables. - major= - versuffix= - verstring= - case $version_type in - none) ;; - - darwin) - # Like Linux, but with the current version available in - # verstring for coding it into the library header - func_arith $current - $age - major=.$func_arith_result - versuffix=$major.$age.$revision - # Darwin ld doesn't like 0 for these options... - func_arith $current + 1 - minor_current=$func_arith_result - xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - # On Darwin other compilers - case $CC in - nagfor*) - verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" - ;; - *) - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - ;; - esac - ;; - - freebsd-aout) - major=.$current - versuffix=.$current.$revision - ;; - - freebsd-elf) - func_arith $current - $age - major=.$func_arith_result - versuffix=$major.$age.$revision - ;; - - irix | nonstopux) - if test no = "$lt_irix_increment"; then - func_arith $current - $age - else - func_arith $current - $age + 1 - fi - major=$func_arith_result - - case $version_type in - nonstopux) verstring_prefix=nonstopux ;; - *) verstring_prefix=sgi ;; - esac - verstring=$verstring_prefix$major.$revision - - # Add in all the interfaces that we are compatible with. - loop=$revision - while test 0 -ne "$loop"; do - func_arith $revision - $loop - iface=$func_arith_result - func_arith $loop - 1 - loop=$func_arith_result - verstring=$verstring_prefix$major.$iface:$verstring - done - - # Before this point, $major must not contain '.'. - major=.$major - versuffix=$major.$revision - ;; - - linux) # correct to gnu/linux during the next big refactor - func_arith $current - $age - major=.$func_arith_result - versuffix=$major.$age.$revision - ;; - - osf) - func_arith $current - $age - major=.$func_arith_result - versuffix=.$current.$age.$revision - verstring=$current.$age.$revision - - # Add in all the interfaces that we are compatible with. - loop=$age - while test 0 -ne "$loop"; do - func_arith $current - $loop - iface=$func_arith_result - func_arith $loop - 1 - loop=$func_arith_result - verstring=$verstring:$iface.0 - done - - # Make executables depend on our current version. - func_append verstring ":$current.0" - ;; - - qnx) - major=.$current - versuffix=.$current - ;; - - sco) - major=.$current - versuffix=.$current - ;; - - sunos) - major=.$current - versuffix=.$current.$revision - ;; - - windows) - # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 file systems. - func_arith $current - $age - major=$func_arith_result - versuffix=-$major - ;; - - *) - func_fatal_configuration "unknown library version type '$version_type'" - ;; - esac - - # Clear the version info if we defaulted, and they specified a release. - if test -z "$vinfo" && test -n "$release"; then - major= - case $version_type in - darwin) - # we can't check for "0.0" in archive_cmds due to quoting - # problems, so we reset it completely - verstring= - ;; - *) - verstring=0.0 - ;; - esac - if test no = "$need_version"; then - versuffix= - else - versuffix=.0.0 - fi - fi - - # Remove version info from name if versioning should be avoided - if test yes,no = "$avoid_version,$need_version"; then - major= - versuffix= - verstring= - fi - - # Check to see if the archive will have undefined symbols. - if test yes = "$allow_undefined"; then - if test unsupported = "$allow_undefined_flag"; then - if test yes = "$build_old_libs"; then - func_warning "undefined symbols not allowed in $host shared libraries; building static only" - build_libtool_libs=no - else - func_fatal_error "can't build $host shared library unless -no-undefined is specified" - fi - fi - else - # Don't allow undefined symbols. - allow_undefined_flag=$no_undefined_flag - fi - - fi - - func_generate_dlsyms "$libname" "$libname" : - func_append libobjs " $symfileobj" - test " " = "$libobjs" && libobjs= - - if test relink != "$opt_mode"; then - # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= - tempremovelist=`$ECHO "$output_objdir/*"` - for p in $tempremovelist; do - case $p in - *.$objext | *.gcno) - ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) - if test -n "$precious_files_regex"; then - if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 - then - continue - fi - fi - func_append removelist " $p" - ;; - *) ;; - esac - done - test -n "$removelist" && \ - func_show_eval "${RM}r \$removelist" - fi - - # Now set the variables for building old libraries. - if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then - func_append oldlibs " $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - #for path in $notinst_path; do - # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` - # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` - # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` - #done - - if test -n "$xrpath"; then - # If the user specified any rpath flags, then add them. - temp_xrpath= - for libdir in $xrpath; do - func_replace_sysroot "$libdir" - func_append temp_xrpath " -R$func_replace_sysroot_result" - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - done - if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then - dependency_libs="$temp_xrpath $dependency_libs" - fi - fi - - # Make sure dlfiles contains only unique files that won't be dlpreopened - old_dlfiles=$dlfiles - dlfiles= - for lib in $old_dlfiles; do - case " $dlprefiles $dlfiles " in - *" $lib "*) ;; - *) func_append dlfiles " $lib" ;; - esac - done - - # Make sure dlprefiles contains only unique files - old_dlprefiles=$dlprefiles - dlprefiles= - for lib in $old_dlprefiles; do - case "$dlprefiles " in - *" $lib "*) ;; - *) func_append dlprefiles " $lib" ;; - esac - done - - if test yes = "$build_libtool_libs"; then - if test -n "$rpath"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) - # these systems don't actually have a c library (as such)! - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework - func_append deplibs " System.ltframework" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - ;; - *) - # Add libc to deplibs on all other systems if necessary. - if test yes = "$build_libtool_need_lc"; then - func_append deplibs " -lc" - fi - ;; - esac - fi - - # Transform deplibs into only deplibs that can be linked in shared. - name_save=$name - libname_save=$libname - release_save=$release - versuffix_save=$versuffix - major_save=$major - # I'm not sure if I'm treating the release correctly. I think - # release should show up in the -l (ie -lgmp5) so we don't want to - # add it in twice. Is that correct? - release= - versuffix= - major= - newdeplibs= - droppeddeps=no - case $deplibs_check_method in - pass_all) - # Don't check for shared/static. Everything works. - # This might be a little naive. We might want to check - # whether the library exists or not. But this is on - # osf3 & osf4 and I'm not really sure... Just - # implementing what was already the behavior. - newdeplibs=$deplibs - ;; - test_compile) - # This code stresses the "libraries are programs" paradigm to its - # limits. Maybe even breaks it. We compile a program, linking it - # against the deplibs as a proxy for the library. Then we can check - # whether they linked in statically or dynamically with ldd. - $opt_dry_run || $RM conftest.c - cat > conftest.c </dev/null` - $nocaseglob - else - potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` - fi - for potent_lib in $potential_libs; do - # Follow soft links. - if ls -lLd "$potent_lib" 2>/dev/null | - $GREP " -> " >/dev/null; then - continue - fi - # The statement above tries to avoid entering an - # endless loop below, in case of cyclic links. - # We might still enter an endless loop, since a link - # loop can be closed while we follow links, - # but so what? - potlib=$potent_lib - while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | $SED 's/.* -> //'` - case $potliblink in - [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; - *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; - esac - done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | - $SED -e 10q | - $EGREP "$file_magic_regex" > /dev/null; then - func_append newdeplibs " $a_deplib" - a_deplib= - break 2 - fi - done - done - fi - if test -n "$a_deplib"; then - droppeddeps=yes - echo - $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib"; then - $ECHO "*** with $libname but no candidates were found. (...for file magic test)" - else - $ECHO "*** with $libname and none of the candidates passed a file format test" - $ECHO "*** using a file magic. Last file checked: $potlib" - fi - fi - ;; - *) - # Add a -L argument. - func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - for a_deplib in $deplibs; do - case $a_deplib in - -l*) - func_stripname -l '' "$a_deplib" - name=$func_stripname_result - if test yes = "$allow_libtool_libs_with_static_runtimes"; then - case " $predeps $postdeps " in - *" $a_deplib "*) - func_append newdeplibs " $a_deplib" - a_deplib= - ;; - esac - fi - if test -n "$a_deplib"; then - libname=`eval "\\$ECHO \"$libname_spec\""` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - potlib=$potent_lib # see symlink-check above in file_magic test - if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ - $EGREP "$match_pattern_regex" > /dev/null; then - func_append newdeplibs " $a_deplib" - a_deplib= - break 2 - fi - done - done - fi - if test -n "$a_deplib"; then - droppeddeps=yes - echo - $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib"; then - $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" - else - $ECHO "*** with $libname and none of the candidates passed a file format test" - $ECHO "*** using a regex pattern. Last file checked: $potlib" - fi - fi - ;; - *) - # Add a -L argument. - func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - none | unknown | *) - newdeplibs= - tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` - if test yes = "$allow_libtool_libs_with_static_runtimes"; then - for i in $predeps $postdeps; do - # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` - done - fi - case $tmp_deplibs in - *[!\ \ ]*) - echo - if test none = "$deplibs_check_method"; then - echo "*** Warning: inter-library dependencies are not supported in this platform." - else - echo "*** Warning: inter-library dependencies are not known to be supported." - fi - echo "*** All declared inter-library dependencies are being dropped." - droppeddeps=yes - ;; - esac - ;; - esac - versuffix=$versuffix_save - major=$major_save - release=$release_save - libname=$libname_save - name=$name_save - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library with the System framework - newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` - ;; - esac - - if test yes = "$droppeddeps"; then - if test yes = "$module"; then - echo - echo "*** Warning: libtool could not satisfy all declared inter-library" - $ECHO "*** dependencies of module $libname. Therefore, libtool will create" - echo "*** a static module, that should work as long as the dlopening" - echo "*** application is linked with the -dlopen flag." - if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using 'nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** 'nm' from GNU binutils and a full rebuild may help." - fi - if test no = "$build_old_libs"; then - oldlibs=$output_objdir/$libname.$libext - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - else - echo "*** The inter-library dependencies that have been dropped here will be" - echo "*** automatically added whenever a program is linked with this library" - echo "*** or is declared to -dlopen it." - - if test no = "$allow_undefined"; then - echo - echo "*** Since this library must not contain undefined symbols," - echo "*** because either the platform does not support them or" - echo "*** it was explicitly requested with -no-undefined," - echo "*** libtool will only create a static version of it." - if test no = "$build_old_libs"; then - oldlibs=$output_objdir/$libname.$libext - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - fi - fi - # Done checking deplibs! - deplibs=$newdeplibs - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - case $host in - *-*-darwin*) - newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - ;; - esac - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $deplibs " in - *" -L$path/$objdir "*) - func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) func_append new_libs " $deplib" ;; - esac - ;; - *) func_append new_libs " $deplib" ;; - esac - done - deplibs=$new_libs - - # All the library-specific variables (install_libdir is set above). - library_names= - old_library= - dlname= - - # Test again, we may have decided not to build it any more - if test yes = "$build_libtool_libs"; then - # Remove $wl instances when linking with ld. - # FIXME: should test the right _cmds variable. - case $archive_cmds in - *\$LD\ *) wl= ;; - esac - if test yes = "$hardcode_into_libs"; then - # Hardcode the library paths - hardcode_libdirs= - dep_rpath= - rpath=$finalize_rpath - test relink = "$opt_mode" || rpath=$compile_rpath$rpath - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - func_replace_sysroot "$libdir" - libdir=$func_replace_sysroot_result - if test -z "$hardcode_libdirs"; then - hardcode_libdirs=$libdir - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append dep_rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) func_append perm_rpath " $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir=$hardcode_libdirs - eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - func_append rpath "$dir:" - done - eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" - fi - test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" - fi - - shlibpath=$finalize_shlibpath - test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath - if test -n "$shlibpath"; then - eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" - fi - - # Get the real and link names of the library. - eval shared_ext=\"$shrext_cmds\" - eval library_names=\"$library_names_spec\" - set dummy $library_names - shift - realname=$1 - shift - - if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" - else - soname=$realname - fi - if test -z "$dlname"; then - dlname=$soname - fi - - lib=$output_objdir/$realname - linknames= - for link - do - func_append linknames " $link" - done - - # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` - test "X$libobjs" = "X " && libobjs= - - delfiles= - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" - export_symbols=$output_objdir/$libname.uexp - func_append delfiles " $export_symbols" - fi - - orig_export_symbols= - case $host_os in - cygwin* | mingw* | cegcc*) - if test -n "$export_symbols" && test -z "$export_symbols_regex"; then - # exporting using user supplied symfile - func_dll_def_p "$export_symbols" || { - # and it's NOT already a .def file. Must figure out - # which of the given symbols are data symbols and tag - # them as such. So, trigger use of export_symbols_cmds. - # export_symbols gets reassigned inside the "prepare - # the list of exported symbols" if statement, so the - # include_expsyms logic still works. - orig_export_symbols=$export_symbols - export_symbols= - always_export_symbols=yes - } - fi - ;; - esac - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then - func_verbose "generating symbol list for '$libname.la'" - export_symbols=$output_objdir/$libname.exp - $opt_dry_run || $RM $export_symbols - cmds=$export_symbols_cmds - save_ifs=$IFS; IFS='~' - for cmd1 in $cmds; do - IFS=$save_ifs - # Take the normal branch if the nm_file_list_spec branch - # doesn't work or if tool conversion is not needed. - case $nm_file_list_spec~$to_tool_file_cmd in - *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) - try_normal_branch=yes - eval cmd=\"$cmd1\" - func_len " $cmd" - len=$func_len_result - ;; - *) - try_normal_branch=no - ;; - esac - if test yes = "$try_normal_branch" \ - && { test "$len" -lt "$max_cmd_len" \ - || test "$max_cmd_len" -le -1; } - then - func_show_eval "$cmd" 'exit $?' - skipped_export=false - elif test -n "$nm_file_list_spec"; then - func_basename "$output" - output_la=$func_basename_result - save_libobjs=$libobjs - save_output=$output - output=$output_objdir/$output_la.nm - func_to_tool_file "$output" - libobjs=$nm_file_list_spec$func_to_tool_file_result - func_append delfiles " $output" - func_verbose "creating $NM input file list: $output" - for obj in $save_libobjs; do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" - done > "$output" - eval cmd=\"$cmd1\" - func_show_eval "$cmd" 'exit $?' - output=$save_output - libobjs=$save_libobjs - skipped_export=false - else - # The command line is too long to execute in one step. - func_verbose "using reloadable object file for export list..." - skipped_export=: - # Break out early, otherwise skipped_export may be - # set to false by a later but shorter cmd. - break - fi - done - IFS=$save_ifs - if test -n "$export_symbols_regex" && test : != "$skipped_export"; then - func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - fi - - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols=$export_symbols - test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols - $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test : != "$skipped_export" && test -n "$orig_export_symbols"; then - # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for '$libname.la' to tag DATA exports" - # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands, which not all seds can handle. GNU sed should be fine - # though. Also, the filter scales superlinearly with the number of - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - - tmp_deplibs= - for test_deplib in $deplibs; do - case " $convenience " in - *" $test_deplib "*) ;; - *) - func_append tmp_deplibs " $test_deplib" - ;; - esac - done - deplibs=$tmp_deplibs - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec" && - test yes = "$compiler_needs_object" && - test -z "$libobjs"; then - # extract the archives, so we have objects to list. - # TODO: could optimize this to just extract one archive. - whole_archive_flag_spec= - fi - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - else - gentop=$output_objdir/${outputname}x - func_append generated " $gentop" - - func_extract_archives $gentop $convenience - func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - fi - - if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - func_append linker_flags " $flag" - fi - - # Make a backup of the uninstalled library when relinking - if test relink = "$opt_mode"; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. - if test yes = "$module" && test -n "$module_cmds"; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - eval test_cmds=\"$module_expsym_cmds\" - cmds=$module_expsym_cmds - else - eval test_cmds=\"$module_cmds\" - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval test_cmds=\"$archive_expsym_cmds\" - cmds=$archive_expsym_cmds - else - eval test_cmds=\"$archive_cmds\" - cmds=$archive_cmds - fi - fi - - if test : != "$skipped_export" && - func_len " $test_cmds" && - len=$func_len_result && - test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else - # The command line is too long to link in one step, link piecewise - # or, if using GNU ld and skipped_export is not :, use a linker - # script. - - # Save the value of $output and $libobjs because we want to - # use them later. If we have whole_archive_flag_spec, we - # want to use save_libobjs as it was before - # whole_archive_flag_spec was expanded, because we can't - # assume the linker understands whole_archive_flag_spec. - # This may have to be revisited, in case too many - # convenience libraries get linked in and end up exceeding - # the spec. - if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - fi - save_output=$output - func_basename "$output" - output_la=$func_basename_result - - # Clear the reloadable object creation command queue and - # initialize k to one. - test_cmds= - concat_cmds= - objlist= - last_robj= - k=1 - - if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then - output=$output_objdir/$output_la.lnkscript - func_verbose "creating GNU ld script: $output" - echo 'INPUT (' > $output - for obj in $save_libobjs - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" >> $output - done - echo ')' >> $output - func_append delfiles " $output" - func_to_tool_file "$output" - output=$func_to_tool_file_result - elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then - output=$output_objdir/$output_la.lnk - func_verbose "creating linker input file list: $output" - : > $output - set x $save_libobjs - shift - firstobj= - if test yes = "$compiler_needs_object"; then - firstobj="$1 " - shift - fi - for obj - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" >> $output - done - func_append delfiles " $output" - func_to_tool_file "$output" - output=$firstobj\"$file_list_spec$func_to_tool_file_result\" - else - if test -n "$save_libobjs"; then - func_verbose "creating reloadable object files..." - output=$output_objdir/$output_la-$k.$objext - eval test_cmds=\"$reload_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 - - # Loop over the list of objects to be linked. - for obj in $save_libobjs - do - func_len " $obj" - func_arith $len + $func_len_result - len=$func_arith_result - if test -z "$objlist" || - test "$len" -lt "$max_cmd_len"; then - func_append objlist " $obj" - else - # The command $test_cmds is almost too long, add a - # command to the queue. - if test 1 -eq "$k"; then - # The first file doesn't have a previous command to add. - reload_objs=$objlist - eval concat_cmds=\"$reload_cmds\" - else - # All subsequent reloadable object files will link in - # the last one created. - reload_objs="$objlist $last_robj" - eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" - fi - last_robj=$output_objdir/$output_la-$k.$objext - func_arith $k + 1 - k=$func_arith_result - output=$output_objdir/$output_la-$k.$objext - objlist=" $obj" - func_len " $last_robj" - func_arith $len0 + $func_len_result - len=$func_arith_result - fi - done - # Handle the remaining objects by creating one last - # reloadable object file. All subsequent reloadable object - # files will link in the last one created. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - reload_objs="$objlist $last_robj" - eval concat_cmds=\"\$concat_cmds$reload_cmds\" - if test -n "$last_robj"; then - eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" - fi - func_append delfiles " $output" - - else - output= - fi - - ${skipped_export-false} && { - func_verbose "generating symbol list for '$libname.la'" - export_symbols=$output_objdir/$libname.exp - $opt_dry_run || $RM $export_symbols - libobjs=$output - # Append the command to create the export file. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" - if test -n "$last_robj"; then - eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" - fi - } - - test -n "$save_libobjs" && - func_verbose "creating a temporary reloadable object file: $output" - - # Loop through the commands generated above and execute them. - save_ifs=$IFS; IFS='~' - for cmd in $concat_cmds; do - IFS=$save_ifs - $opt_quiet || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" - } - $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test relink = "$opt_mode"; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit - } - done - IFS=$save_ifs - - if test -n "$export_symbols_regex" && ${skipped_export-false}; then - func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - - ${skipped_export-false} && { - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols=$export_symbols - test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols - $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test -n "$orig_export_symbols"; then - # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for '$libname.la' to tag DATA exports" - # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands, which not all seds can handle. GNU sed should be fine - # though. Also, the filter scales superlinearly with the number of - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - } - - libobjs=$output - # Restore the value of output. - output=$save_output - - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - fi - # Expand the library linking commands again to reset the - # value of $libobjs for piecewise linking. - - # Do each of the archive commands. - if test yes = "$module" && test -n "$module_cmds"; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - cmds=$module_expsym_cmds - else - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - cmds=$archive_expsym_cmds - else - cmds=$archive_cmds - fi - fi - fi - - if test -n "$delfiles"; then - # Append the command to remove temporary files to $cmds. - eval cmds=\"\$cmds~\$RM $delfiles\" - fi - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop=$output_objdir/${outputname}x - func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles - func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - - save_ifs=$IFS; IFS='~' - for cmd in $cmds; do - IFS=$sp$nl - eval cmd=\"$cmd\" - IFS=$save_ifs - $opt_quiet || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" - } - $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test relink = "$opt_mode"; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit - } - done - IFS=$save_ifs - - # Restore the uninstalled library and exit - if test relink = "$opt_mode"; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? - - if test -n "$convenience"; then - if test -z "$whole_archive_flag_spec"; then - func_show_eval '${RM}r "$gentop"' - fi - fi - - exit $EXIT_SUCCESS - fi - - # Create links to the real library. - for linkname in $linknames; do - if test "$realname" != "$linkname"; then - func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' - fi - done - - # If -module or -export-dynamic was specified, set the dlname. - if test yes = "$module" || test yes = "$export_dynamic"; then - # On all known operating systems, these are identical. - dlname=$soname - fi - fi - ;; - - obj) - if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then - func_warning "'-dlopen' is ignored for objects" - fi - - case " $deplibs" in - *\ -l* | *\ -L*) - func_warning "'-l' and '-L' are ignored for objects" ;; - esac - - test -n "$rpath" && \ - func_warning "'-rpath' is ignored for objects" - - test -n "$xrpath" && \ - func_warning "'-R' is ignored for objects" - - test -n "$vinfo" && \ - func_warning "'-version-info' is ignored for objects" - - test -n "$release" && \ - func_warning "'-release' is ignored for objects" - - case $output in - *.lo) - test -n "$objs$old_deplibs" && \ - func_fatal_error "cannot build library object '$output' from non-libtool objects" - - libobj=$output - func_lo2o "$libobj" - obj=$func_lo2o_result - ;; - *) - libobj= - obj=$output - ;; - esac - - # Delete the old objects. - $opt_dry_run || $RM $obj $libobj - - # Objects from convenience libraries. This assumes - # single-version convenience libraries. Whenever we create - # different ones for PIC/non-PIC, this we'll have to duplicate - # the extraction. - reload_conv_objs= - gentop= - # if reload_cmds runs $LD directly, get rid of -Wl from - # whole_archive_flag_spec and hope we can get by with turning comma - # into space. - case $reload_cmds in - *\$LD[\ \$]*) wl= ;; - esac - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` - reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags - else - gentop=$output_objdir/${obj}x - func_append generated " $gentop" - - func_extract_archives $gentop $convenience - reload_conv_objs="$reload_objs $func_extract_archives_result" - fi - fi - - # If we're not building shared, we need to use non_pic_objs - test yes = "$build_libtool_libs" || libobjs=$non_pic_objects - - # Create the old-style object. - reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs - - output=$obj - func_execute_cmds "$reload_cmds" 'exit $?' - - # Exit if we aren't doing a library object file. - if test -z "$libobj"; then - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS - fi - - test yes = "$build_libtool_libs" || { - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - # $show "echo timestamp > $libobj" - # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? - exit $EXIT_SUCCESS - } - - if test -n "$pic_flag" || test default != "$pic_mode"; then - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs $reload_conv_objs" - output=$libobj - func_execute_cmds "$reload_cmds" 'exit $?' - fi - - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS - ;; - - prog) - case $host in - *cygwin*) func_stripname '' '.exe' "$output" - output=$func_stripname_result.exe;; - esac - test -n "$vinfo" && \ - func_warning "'-version-info' is ignored for programs" - - test -n "$release" && \ - func_warning "'-release' is ignored for programs" - - $preload \ - && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ - && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` - finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` - ;; - esac - - case $host in - *-*-darwin*) - # Don't allow lazy linking, it breaks C++ global constructors - # But is supposedly fixed on 10.4 or later (yay!). - if test CXX = "$tagname"; then - case ${MACOSX_DEPLOYMENT_TARGET-10.0} in - 10.[0123]) - func_append compile_command " $wl-bind_at_load" - func_append finalize_command " $wl-bind_at_load" - ;; - esac - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - ;; - esac - - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $compile_deplibs " in - *" -L$path/$objdir "*) - func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $compile_deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) func_append new_libs " $deplib" ;; - esac - ;; - *) func_append new_libs " $deplib" ;; - esac - done - compile_deplibs=$new_libs - - - func_append compile_command " $compile_deplibs" - func_append finalize_command " $finalize_deplibs" - - if test -n "$rpath$xrpath"; then - # If the user specified any rpath flags, then add them. - for libdir in $rpath $xrpath; do - # This is the magic to use -rpath. - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - done - fi - - # Now hardcode the library paths - rpath= - hardcode_libdirs= - for libdir in $compile_rpath $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs=$libdir - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) func_append perm_rpath " $libdir" ;; - esac - fi - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$libdir:"*) ;; - ::) dllsearchpath=$libdir;; - *) func_append dllsearchpath ":$libdir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir=$hardcode_libdirs - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - compile_rpath=$rpath - - rpath= - hardcode_libdirs= - for libdir in $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs=$libdir - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; - *) func_append finalize_perm_rpath " $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir=$hardcode_libdirs - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - finalize_rpath=$rpath - - if test -n "$libobjs" && test yes = "$build_old_libs"; then - # Transform all the library objects into standard objects. - compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` - finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` - fi - - func_generate_dlsyms "$outputname" "@PROGRAM@" false - - # template prelinking step - if test -n "$prelink_cmds"; then - func_execute_cmds "$prelink_cmds" 'exit $?' - fi - - wrappers_required=: - case $host in - *cegcc* | *mingw32ce*) - # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. - wrappers_required=false - ;; - *cygwin* | *mingw* ) - test yes = "$build_libtool_libs" || wrappers_required=false - ;; - *) - if test no = "$need_relink" || test yes != "$build_libtool_libs"; then - wrappers_required=false - fi - ;; - esac - $wrappers_required || { - # Replace the output file specification. - compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - link_command=$compile_command$compile_rpath - - # We have no uninstalled library dependencies, so finalize right now. - exit_status=0 - func_show_eval "$link_command" 'exit_status=$?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - # Delete the generated files. - if test -f "$output_objdir/${outputname}S.$objext"; then - func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' - fi - - exit $exit_status - } - - if test -n "$compile_shlibpath$finalize_shlibpath"; then - compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" - fi - if test -n "$finalize_shlibpath"; then - finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" - fi - - compile_var= - finalize_var= - if test -n "$runpath_var"; then - if test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - func_append rpath "$dir:" - done - compile_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - if test -n "$finalize_perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $finalize_perm_rpath; do - func_append rpath "$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - fi - - if test yes = "$no_install"; then - # We don't need to create a wrapper script. - link_command=$compile_var$compile_command$compile_rpath - # Replace the output file specification. - link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - # Delete the old output file. - $opt_dry_run || $RM $output - # Link the executable and exit - func_show_eval "$link_command" 'exit $?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - exit $EXIT_SUCCESS - fi - - case $hardcode_action,$fast_install in - relink,*) - # Fast installation is not supported - link_command=$compile_var$compile_command$compile_rpath - relink_command=$finalize_var$finalize_command$finalize_rpath - - func_warning "this platform does not like uninstalled shared libraries" - func_warning "'$output' will be relinked during installation" - ;; - *,yes) - link_command=$finalize_var$compile_command$finalize_rpath - relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` - ;; - *,no) - link_command=$compile_var$compile_command$compile_rpath - relink_command=$finalize_var$finalize_command$finalize_rpath - ;; - *,needless) - link_command=$finalize_var$compile_command$finalize_rpath - relink_command= - ;; - esac - - # Replace the output file specification. - link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - - # Delete the old output files. - $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname - - func_show_eval "$link_command" 'exit $?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output_objdir/$outputname" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - # Now create the wrapper script. - func_verbose "creating $output" - - # Quote the relink command for shipping. - if test -n "$relink_command"; then - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi - done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - fi - - # Only actually do things if not in dry run mode. - $opt_dry_run || { - # win32 will think the script is a binary if it has - # a .exe suffix, so we strip it off here. - case $output in - *.exe) func_stripname '' '.exe' "$output" - output=$func_stripname_result ;; - esac - # test for cygwin because mv fails w/o .exe extensions - case $host in - *cygwin*) - exeext=.exe - func_stripname '' '.exe' "$outputname" - outputname=$func_stripname_result ;; - *) exeext= ;; - esac - case $host in - *cygwin* | *mingw* ) - func_dirname_and_basename "$output" "" "." - output_name=$func_basename_result - output_path=$func_dirname_result - cwrappersource=$output_path/$objdir/lt-$output_name.c - cwrapper=$output_path/$output_name.exe - $RM $cwrappersource $cwrapper - trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 - - func_emit_cwrapperexe_src > $cwrappersource - - # The wrapper executable is built using the $host compiler, - # because it contains $host paths and files. If cross- - # compiling, it, like the target executable, must be - # executed on the $host or under an emulation environment. - $opt_dry_run || { - $LTCC $LTCFLAGS -o $cwrapper $cwrappersource - $STRIP $cwrapper - } - - # Now, create the wrapper script for func_source use: - func_ltwrapper_scriptname $cwrapper - $RM $func_ltwrapper_scriptname_result - trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 - $opt_dry_run || { - # note: this script will not be executed, so do not chmod. - if test "x$build" = "x$host"; then - $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result - else - func_emit_wrapper no > $func_ltwrapper_scriptname_result - fi - } - ;; - * ) - $RM $output - trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 - - func_emit_wrapper no > $output - chmod +x $output - ;; - esac - } - exit $EXIT_SUCCESS - ;; - esac - - # See if we need to build an old-fashioned archive. - for oldlib in $oldlibs; do - - case $build_libtool_libs in - convenience) - oldobjs="$libobjs_save $symfileobj" - addlibs=$convenience - build_libtool_libs=no - ;; - module) - oldobjs=$libobjs_save - addlibs=$old_convenience - build_libtool_libs=no - ;; - *) - oldobjs="$old_deplibs $non_pic_objects" - $preload && test -f "$symfileobj" \ - && func_append oldobjs " $symfileobj" - addlibs=$old_convenience - ;; - esac - - if test -n "$addlibs"; then - gentop=$output_objdir/${outputname}x - func_append generated " $gentop" - - func_extract_archives $gentop $addlibs - func_append oldobjs " $func_extract_archives_result" - fi - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then - cmds=$old_archive_from_new_cmds - else - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop=$output_objdir/${outputname}x - func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles - func_append oldobjs " $func_extract_archives_result" - fi - - # POSIX demands no paths to be encoded in archives. We have - # to avoid creating archives with duplicate basenames if we - # might have to extract them afterwards, e.g., when creating a - # static archive out of a convenience library, or when linking - # the entirety of a libtool archive into another (currently - # not supported by libtool). - if (for obj in $oldobjs - do - func_basename "$obj" - $ECHO "$func_basename_result" - done | sort | sort -uc >/dev/null 2>&1); then - : - else - echo "copying selected object files to avoid basename conflicts..." - gentop=$output_objdir/${outputname}x - func_append generated " $gentop" - func_mkdir_p "$gentop" - save_oldobjs=$oldobjs - oldobjs= - counter=1 - for obj in $save_oldobjs - do - func_basename "$obj" - objbase=$func_basename_result - case " $oldobjs " in - " ") oldobjs=$obj ;; - *[\ /]"$objbase "*) - while :; do - # Make sure we don't pick an alternate name that also - # overlaps. - newobj=lt$counter-$objbase - func_arith $counter + 1 - counter=$func_arith_result - case " $oldobjs " in - *[\ /]"$newobj "*) ;; - *) if test ! -f "$gentop/$newobj"; then break; fi ;; - esac - done - func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - func_append oldobjs " $gentop/$newobj" - ;; - *) func_append oldobjs " $obj" ;; - esac - done - fi - func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 - tool_oldlib=$func_to_tool_file_result - eval cmds=\"$old_archive_cmds\" - - func_len " $cmds" - len=$func_len_result - if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - cmds=$old_archive_cmds - elif test -n "$archiver_list_spec"; then - func_verbose "using command file archive linking..." - for obj in $oldobjs - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" - done > $output_objdir/$libname.libcmd - func_to_tool_file "$output_objdir/$libname.libcmd" - oldobjs=" $archiver_list_spec$func_to_tool_file_result" - cmds=$old_archive_cmds - else - # the command line is too long to link in one step, link in parts - func_verbose "using piecewise archive linking..." - save_RANLIB=$RANLIB - RANLIB=: - objlist= - concat_cmds= - save_oldobjs=$oldobjs - oldobjs= - # Is there a better way of finding the last object in the list? - for obj in $save_oldobjs - do - last_oldobj=$obj - done - eval test_cmds=\"$old_archive_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 - for obj in $save_oldobjs - do - func_len " $obj" - func_arith $len + $func_len_result - len=$func_arith_result - func_append objlist " $obj" - if test "$len" -lt "$max_cmd_len"; then - : - else - # the above command should be used before it gets too long - oldobjs=$objlist - if test "$obj" = "$last_oldobj"; then - RANLIB=$save_RANLIB - fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" - objlist= - len=$len0 - fi - done - RANLIB=$save_RANLIB - oldobjs=$objlist - if test -z "$oldobjs"; then - eval cmds=\"\$concat_cmds\" - else - eval cmds=\"\$concat_cmds~\$old_archive_cmds\" - fi - fi - fi - func_execute_cmds "$cmds" 'exit $?' - done - - test -n "$generated" && \ - func_show_eval "${RM}r$generated" - - # Now create the libtool archive. - case $output in - *.la) - old_library= - test yes = "$build_old_libs" && old_library=$libname.$libext - func_verbose "creating $output" - - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi - done - # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - if test yes = "$hardcode_automatic"; then - relink_command= - fi - - # Only create the output if not a dry run. - $opt_dry_run || { - for installed in no yes; do - if test yes = "$installed"; then - if test -z "$install_libdir"; then - break - fi - output=$output_objdir/${outputname}i - # Replace all uninstalled libtool libraries with the installed ones - newdependency_libs= - for deplib in $dependency_libs; do - case $deplib in - *.la) - func_basename "$deplib" - name=$func_basename_result - func_resolve_sysroot "$deplib" - eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` - test -z "$libdir" && \ - func_fatal_error "'$deplib' is not a valid libtool archive" - func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" - ;; - -L*) - func_stripname -L '' "$deplib" - func_replace_sysroot "$func_stripname_result" - func_append newdependency_libs " -L$func_replace_sysroot_result" - ;; - -R*) - func_stripname -R '' "$deplib" - func_replace_sysroot "$func_stripname_result" - func_append newdependency_libs " -R$func_replace_sysroot_result" - ;; - *) func_append newdependency_libs " $deplib" ;; - esac - done - dependency_libs=$newdependency_libs - newdlfiles= - - for lib in $dlfiles; do - case $lib in - *.la) - func_basename "$lib" - name=$func_basename_result - eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - test -z "$libdir" && \ - func_fatal_error "'$lib' is not a valid libtool archive" - func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" - ;; - *) func_append newdlfiles " $lib" ;; - esac - done - dlfiles=$newdlfiles - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - *.la) - # Only pass preopened files to the pseudo-archive (for - # eventual linking with the app. that links it) if we - # didn't already link the preopened objects directly into - # the library: - func_basename "$lib" - name=$func_basename_result - eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - test -z "$libdir" && \ - func_fatal_error "'$lib' is not a valid libtool archive" - func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" - ;; - esac - done - dlprefiles=$newdlprefiles - else - newdlfiles= - for lib in $dlfiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; - *) abs=`pwd`"/$lib" ;; - esac - func_append newdlfiles " $abs" - done - dlfiles=$newdlfiles - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; - *) abs=`pwd`"/$lib" ;; - esac - func_append newdlprefiles " $abs" - done - dlprefiles=$newdlprefiles - fi - $RM $output - # place dlname in correct position for cygwin - # In fact, it would be nice if we could use this code for all target - # systems that can't hard-code library paths into their executables - # and that have no shared library path variable independent of PATH, - # but it turns out we can't easily determine that from inspecting - # libtool variables, so we have to hard-code the OSs to which it - # applies here; at the moment, that means platforms that use the PE - # object format with DLL files. See the long comment at the top of - # tests/bindir.at for full details. - tdlname=$dlname - case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) - # If a -bindir argument was supplied, place the dll there. - if test -n "$bindir"; then - func_relative_path "$install_libdir" "$bindir" - tdlname=$func_relative_path_result/$dlname - else - # Otherwise fall back on heuristic. - tdlname=../bin/$dlname - fi - ;; - esac - $ECHO > $output "\ -# $outputname - a libtool library file -# Generated by $PROGRAM (GNU $PACKAGE) $VERSION -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname='$tdlname' - -# Names of this library. -library_names='$library_names' - -# The name of the static archive. -old_library='$old_library' - -# Linker flags that cannot go in dependency_libs. -inherited_linker_flags='$new_inherited_linker_flags' - -# Libraries that this one depends upon. -dependency_libs='$dependency_libs' - -# Names of additional weak libraries provided by this library -weak_library_names='$weak_libs' - -# Version information for $libname. -current=$current -age=$age -revision=$revision - -# Is this an already installed library? -installed=$installed - -# Should we warn about portability when linking against -modules? -shouldnotlink=$module - -# Files to dlopen/dlpreopen -dlopen='$dlfiles' -dlpreopen='$dlprefiles' - -# Directory that this library needs to be installed in: -libdir='$install_libdir'" - if test no,yes = "$installed,$need_relink"; then - $ECHO >> $output "\ -relink_command=\"$relink_command\"" - fi - done - } - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. - func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' - ;; - esac - exit $EXIT_SUCCESS -} - -if test link = "$opt_mode" || test relink = "$opt_mode"; then - func_mode_link ${1+"$@"} -fi - - -# func_mode_uninstall arg... -func_mode_uninstall () -{ - $debug_cmd - - RM=$nonopt - files= - rmforce=false - exit_status=0 - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic=$magic - - for arg - do - case $arg in - -f) func_append RM " $arg"; rmforce=: ;; - -*) func_append RM " $arg" ;; - *) func_append files " $arg" ;; - esac - done - - test -z "$RM" && \ - func_fatal_help "you must specify an RM program" - - rmdirs= - - for file in $files; do - func_dirname "$file" "" "." - dir=$func_dirname_result - if test . = "$dir"; then - odir=$objdir - else - odir=$dir/$objdir - fi - func_basename "$file" - name=$func_basename_result - test uninstall = "$opt_mode" && odir=$dir - - # Remember odir for removal later, being careful to avoid duplicates - if test clean = "$opt_mode"; then - case " $rmdirs " in - *" $odir "*) ;; - *) func_append rmdirs " $odir" ;; - esac - fi - - # Don't error if the file doesn't exist and rm -f was used. - if { test -L "$file"; } >/dev/null 2>&1 || - { test -h "$file"; } >/dev/null 2>&1 || - test -f "$file"; then - : - elif test -d "$file"; then - exit_status=1 - continue - elif $rmforce; then - continue - fi - - rmfiles=$file - - case $name in - *.la) - # Possibly a libtool archive, so verify it. - if func_lalib_p "$file"; then - func_source $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do - func_append rmfiles " $odir/$n" - done - test -n "$old_library" && func_append rmfiles " $odir/$old_library" - - case $opt_mode in - clean) - case " $library_names " in - *" $dlname "*) ;; - *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; - esac - test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' - fi - # FIXME: should reinstall the best remaining shared library. - ;; - esac - fi - ;; - - *.lo) - # Possibly a libtool object, so verify it. - if func_lalib_p "$file"; then - - # Read the .lo file - func_source $dir/$name - - # Add PIC object to the list of files to remove. - if test -n "$pic_object" && test none != "$pic_object"; then - func_append rmfiles " $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" && test none != "$non_pic_object"; then - func_append rmfiles " $dir/$non_pic_object" - fi - fi - ;; - - *) - if test clean = "$opt_mode"; then - noexename=$name - case $file in - *.exe) - func_stripname '' '.exe' "$file" - file=$func_stripname_result - func_stripname '' '.exe' "$name" - noexename=$func_stripname_result - # $file with .exe has already been added to rmfiles, - # add $file without .exe - func_append rmfiles " $file" - ;; - esac - # Do a test to see if this is a libtool program. - if func_ltwrapper_p "$file"; then - if func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - relink_command= - func_source $func_ltwrapper_scriptname_result - func_append rmfiles " $func_ltwrapper_scriptname_result" - else - relink_command= - func_source $dir/$noexename - fi - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles - func_append rmfiles " $odir/$name $odir/${name}S.$objext" - if test yes = "$fast_install" && test -n "$relink_command"; then - func_append rmfiles " $odir/lt-$name" - fi - if test "X$noexename" != "X$name"; then - func_append rmfiles " $odir/lt-$noexename.c" - fi - fi - fi - ;; - esac - func_show_eval "$RM $rmfiles" 'exit_status=1' - done - - # Try to remove the $objdir's in the directories where we deleted files - for dir in $rmdirs; do - if test -d "$dir"; then - func_show_eval "rmdir $dir >/dev/null 2>&1" - fi - done - - exit $exit_status -} - -if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then - func_mode_uninstall ${1+"$@"} -fi - -test -z "$opt_mode" && { - help=$generic_help - func_fatal_help "you must specify a MODE" -} - -test -z "$exec_cmd" && \ - func_fatal_help "invalid operation mode '$opt_mode'" - -if test -n "$exec_cmd"; then - eval exec "$exec_cmd" - exit $EXIT_FAILURE -fi - -exit $exit_status - - -# The TAGs below are defined such that we never get into a situation -# where we disable both kinds of libraries. Given conflicting -# choices, we go for a static library, that is the most portable, -# since we can't tell whether shared libraries were disabled because -# the user asked for that or because the platform doesn't support -# them. This is particularly important on AIX, because we don't -# support having both static and shared libraries enabled at the same -# time on that platform, so we default to a shared-only configuration. -# If a disable-shared tag is given, we'll fallback to a static-only -# configuration. But we'll never go from static-only to shared-only. - -# ### BEGIN LIBTOOL TAG CONFIG: disable-shared -build_libtool_libs=no -build_old_libs=yes -# ### END LIBTOOL TAG CONFIG: disable-shared - -# ### BEGIN LIBTOOL TAG CONFIG: disable-static -build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` -# ### END LIBTOOL TAG CONFIG: disable-static - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/config/mkinstalldirs b/config/mkinstalldirs deleted file mode 100755 index 4f58503e..00000000 --- a/config/mkinstalldirs +++ /dev/null @@ -1,40 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman -# Created: 1993-05-16 -# Public domain - -# $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $ - -errstatus=0 - -for file -do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp= - for d - do - pathcomp="$pathcomp$d" - case "$pathcomp" in - -* ) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - fi - fi - - pathcomp="$pathcomp/" - done -done - -exit $errstatus - -# mkinstalldirs ends here diff --git a/config/parse-types.sh b/config/parse-types.sh deleted file mode 100755 index 24d2a990..00000000 --- a/config/parse-types.sh +++ /dev/null @@ -1,127 +0,0 @@ -#!/bin/sh - -cat > sed.script << "EOF" -/^#/d -/^$/d -s/__extension__ // -s/typedef \(.*\) __u\([1-9]*\);/#define __U\2_TYPEDEF \1/ -s/typedef \(.*\) __s\([1-9]*\);/#define __S\2_TYPEDEF \1/ -EOF - -if test -z "$CC"; then - CC=gcc -fi - -if test -z "$CPP"; then - CPP="$CC -E" -fi - -/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 ' | $CPP - 2> parse-types.log | \ - sed -f sed.script | grep '^#' > asm_types.h; then - echo "using " -else - echo "using generic types" -fi - -rm sed.script - -cp asm_types.h asm_types.c - -cat >> asm_types.c < -#include -int main(int argc, char **argv) -{ -#ifdef __U8_TYPEDEF - if (sizeof(__U8_TYPEDEF) != 1) { - printf("Sizeof(__U8__TYPEDEF) is %d should be 1\n", - (int) sizeof(__U8_TYPEDEF)); - exit(1); - } -#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", - (int) sizeof(__S8_TYPEDEF)); - exit(1); - } -#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", - (int) sizeof(__U16_TYPEDEF)); - exit(1); - } -#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", - (int) sizeof(__S16_TYPEDEF)); - exit(1); - } -#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", - (int) sizeof(__U32_TYPEDEF)); - exit(1); - } -#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", - (int) sizeof(__S32_TYPEDEF)); - exit(1); - } -#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", - (int) sizeof(__U64_TYPEDEF)); - exit(1); - } -#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", - (int) sizeof(__S64_TYPEDEF)); - exit(1); - } -#elif defined(__linux__) -#warning __S64_TYPEDEF not defined -#endif - return 0; -} -EOF - -${BUILD_CC-${CC-gcc}} -o asm_types asm_types.c -if ./asm_types -then - true -else - if [ "${CROSS_COMPILE}" != "1" ]; then - echo "Problem detected with asm_types.h" - echo "" > asm_types.h - fi -fi -rm asm_types.c asm_types - diff --git a/configure b/configure deleted file mode 100755 index 405b7303..00000000 --- a/configure +++ /dev/null @@ -1,14171 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69. -# -# -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, -$0: including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= -PACKAGE_URL= - -ac_unique_file="version.h" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -gt_needs= -ac_subst_vars='LTLIBOBJS -LIBOBJS -OS_IO_FILE -systemd_system_unit_dir -have_systemd -systemd_LIBS -systemd_CFLAGS -crond_dir -have_crond -pkg_udev_rules_dir -have_udev -udev_LIBS -udev_CFLAGS -LDFLAGS_SHLIB -CFLAGS_STLIB -CFLAGS_SHLIB -BUILD_LDFLAGS -BUILD_CFLAGS -INCLUDES -DO_TEST_SUITE -LDFLAGS_STATIC -root_sysconfdir -root_libdir -root_sbindir -root_bindir -root_prefix -E2SCRUB_CMT -UNIX_CMT -CYGWIN_CMT -LINUX_CMT -threadsan_ldflags -threadsan_cflags -have_threadsan -addrsan_ldflags -addrsan_cflags -have_addrsan -ubsan_ldflags -ubsan_cflags -have_ubsan -lto_ldflags -lto_cflags -have_lto -gcc_ranlib -gcc_ar -UNI_DIFF_OPTS -SEM_INIT_LIB -FUSE_CMT -FUSE_LIB -CLOCK_GETTIME_LIB -MAGIC_LIB -SOCKET_LIB -SIZEOF_TIME_T -SIZEOF_OFF_T -SIZEOF_LONG_LONG -SIZEOF_LONG -SIZEOF_INT -SIZEOF_SHORT -DD -BUILD_CC -MAKEINFO -STRIP -RANLIB -AR -LDCONFIG -PERL -AWK -CHMOD -RM -CP -MV -LN_S -mkdir_p -LN -ifNotGNUmake -ifGNUmake -BINARY_TYPE -POSUB -LTLIBINTL -LIBINTL -INTLLIBS -LTLIBICONV -LIBICONV -INTL_MACOSX_LIBS -XGETTEXT_EXTRA_OPTIONS -MSGMERGE_FOR_MSGFMT_OPTION -MSGMERGE -XGETTEXT_015 -XGETTEXT -GMSGFMT_015 -GMSGFMT -MSGFMT -GETTEXT_MACRO_VERSION -USE_NLS -MKDIR_P -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -SET_MAKE -VERSION -PACKAGE -GETTEXT_PACKAGE -TDB_MAN_COMMENT -TDB_CMT -UUIDD_CMT -PTHREAD_CFLAGS -PTHREAD_LIBS -PTHREAD_CC -ax_pthread_config -SED -E2INITRD_MAN -E2INITRD_PROG -FSCK_MAN -FSCK_PROG -DEFRAG_CMT -RESIZER_CMT -IMAGER_CMT -DEBUGFS_CMT -SUBSET_CMT -ALL_CMT -BLKID_CMT -DEPPROFILED_LIBBLKID -PROFILED_LIBBLKID -DEPSTATIC_LIBBLKID -STATIC_LIBBLKID -DEPLIBBLKID -LIBBLKID -UUID_CMT -DEPPROFILED_LIBUUID -PROFILED_LIBUUID -DEPSTATIC_LIBUUID -STATIC_LIBUUID -DEPLIBUUID -LIBUUID -PKG_CONFIG_LIBDIR -PKG_CONFIG_PATH -PKG_CONFIG -DEV_FEATURES_CMT -TEST_IO_CMT -PRIVATE_LIBS_CMT -LDFLAG_DYNAMIC -PROFILED_LIB_EXT -STATIC_LIB_EXT -LIB_EXT -PROFILE_CMT -BSDLIB_CMT -ELF_CMT -Q -ES -E -LINK_BUILD_FLAGS -SYMLINK_RELATIVE -LINK_INSTALL_FLAGS -MAINTAINER_CMT -EGREP -GREP -CPP -RDYNAMIC -DLOPEN_LIB -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -E2FSPROGS_DATE -E2FSPROGS_PKGVER -E2FSPROGS_VERSION -E2FSPROGS_DAY -E2FSPROGS_MONTH -E2FSPROGS_YEAR -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -runstatedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='MCONFIG -MAKEFILE_ELF -MAKEFILE_BSDLIB -MAKEFILE_PROFILE -MAKEFILE_LIBRARY -ASM_TYPES_HEADER -PUBLIC_CONFIG_HEADER' -ac_user_opts=' -enable_option_checking -with_diet_libc -with_cc -with_ccopts -with_ldopts -with_root_prefix -enable_maintainer_mode -enable_symlink_install -enable_relative_symlinks -enable_symlink_relative_symlinks -enable_symlink_build -enable_verbose_makecmds -enable_elf_shlibs -enable_bsd_shlibs -enable_profile -enable_gcov -enable_hardening -enable_jbd_debug -enable_blkid_debug -enable_testio_debug -enable_developer_features -enable_libuuid -enable_libblkid -enable_subset -enable_backtrace -enable_debugfs -enable_imager -enable_resizer -enable_defrag -enable_fsck -enable_e2initrd_helper -enable_tls -with_pthread -enable_uuidd -enable_mmp -enable_tdb -enable_bmap_stats -enable_bmap_stats_ops -enable_nls -with_gnu_ld -enable_rpath -with_libiconv_prefix -with_libintl_prefix -enable_fuse2fs -enable_lto -enable_ubsan -enable_addrsan -enable_threadsan -with_multiarch -with_udev_rules_dir -with_crond_dir -with_systemd_unit_dir -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP -PKG_CONFIG -PKG_CONFIG_PATH -PKG_CONFIG_LIBDIR -udev_CFLAGS -udev_LIBS -systemd_CFLAGS -systemd_LIBS' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -runstatedir='${localstatedir}/run' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -runstatedir | --runstatedir | --runstatedi | --runstated \ - | --runstate | --runstat | --runsta | --runst | --runs \ - | --run | --ru | --r) - ac_prev=runstatedir ;; - -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ - | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ - | --run=* | --ru=* | --r=*) - runstatedir=$ac_optarg ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir runstatedir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures this package to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-maintainer-mode - enable makefile rules useful for maintainers - --enable-symlink-install - use symlinks when installing instead of hard links - --enable-relative-symlinks - use relative symlinks when installing - - --enable-symlink-build use symlinks while building instead of hard links - --enable-verbose-makecmds - enable verbose make command output - --enable-elf-shlibs select ELF shared libraries - --enable-bsd-shlibs select BSD shared libraries - --enable-profile build profiling libraries - --enable-gcov build for coverage testing using gcov - --enable-hardening build for coverage testing using gcov - --enable-jbd-debug enable journal debugging - --enable-blkid-debug enable blkid debugging - --disable-testio-debug disable the use of the test I/O manager for - debugging - --enable-developer-features - enable features for use by ext4 developers - --enable-libuuid build and use private uuid library - --enable-libblkid build and use private blkid library - --enable-subset enable subset-only build - --disable-backtrace disable use backtrace - --disable-debugfs disable support of debugfs program - --disable-imager disable support of e2image program - --disable-resizer disable support of e2resize program - --disable-defrag disable support of e4defrag program - --enable-fsck build fsck wrapper program - --enable-e2initrd-helper - build e2initrd-helper program - --disable-tls disable use of thread local support - --disable-uuidd disable building the uuid daemon - --disable-mmp disable support mmp, Multi Mount Protection - --disable-tdb disable tdb support - --disable-bmap-stats disable collection of bitmap stats - --enable-bmap-stats-ops enable collection of additional bitmap stats - --disable-nls do not use Native Language Support - --disable-rpath do not hardcode runtime library paths - --disable-fuse2fs do not build fuse2fs - --enable-lto enable link time optimization - --enable-ubsan enable undefined behavior sanitizer - --enable-addrsan enable address sanitizer - --enable-threadsan enable thread sanitizer - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-diet-libc use diet libc - --with-cc no longer supported, use CC= instead - --with-ccopts no longer supported, use CFLAGS= instead - --with-ldopts no longer supported, use LDFLAGS= instead - --with-root-prefix=PREFIX - override prefix variable for files to be placed in - the root - --without-pthread disable use of pthread support - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib - --without-libiconv-prefix don't search for libiconv in includedir and libdir - --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib - --without-libintl-prefix don't search for libintl in includedir and libdir - --with-multiarch=ARCH specify the multiarch triplet - --with-udev-rules-dir[=DIR] - Install udev rules into DIR. - --with-crond-dir[=DIR] Install system crontabs into DIR. - --with-systemd-unit-dir[=DIR] - Install systemd system units into DIR. - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - PKG_CONFIG path to pkg-config utility - PKG_CONFIG_PATH - directories to add to pkg-config's search path - PKG_CONFIG_LIBDIR - path overriding pkg-config's built-in search path - udev_CFLAGS C compiler flags for udev, overriding pkg-config - udev_LIBS linker flags for udev, overriding pkg-config - systemd_CFLAGS - C compiler flags for systemd, overriding pkg-config - systemd_LIBS - linker flags for systemd, overriding pkg-config - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to the package provider. -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -configure -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link - -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_mongrel - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - -# ac_fn_c_check_func LINENO FUNC VAR -# ---------------------------------- -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_func - -# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES -# ---------------------------------------------------- -# Tries to find if the field MEMBER exists in type AGGR, after including -# INCLUDES, setting cache variable VAR accordingly. -ac_fn_c_check_member () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 -$as_echo_n "checking for $2.$3... " >&6; } -if eval \${$4+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$5 -int -main () -{ -static $2 ac_aggr; -if (ac_aggr.$3) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$4=yes" -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$5 -int -main () -{ -static $2 ac_aggr; -if (sizeof ac_aggr.$3) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$4=yes" -else - eval "$4=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$4 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_member - -# ac_fn_c_check_type LINENO TYPE VAR INCLUDES -# ------------------------------------------- -# Tests whether TYPE exists after having included INCLUDES, setting cache -# variable VAR accordingly. -ac_fn_c_check_type () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof ($2)) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof (($2))) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - eval "$3=yes" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_type - -# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES -# --------------------------------------------- -# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR -# accordingly. -ac_fn_c_check_decl () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - as_decl_name=`echo $2|sed 's/ *(.*//'` - as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 -$as_echo_n "checking whether $as_decl_name is declared... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -#ifndef $as_decl_name -#ifdef __cplusplus - (void) $as_decl_use; -#else - (void) $as_decl_name; -#endif -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_decl - -# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES -# -------------------------------------------- -# Tries to find the compile-time value of EXPR in a program that includes -# INCLUDES, setting VAR accordingly. Returns whether the value could be -# computed -ac_fn_c_compute_int () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=0 ac_mid=0 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid; break -else - as_fn_arith $ac_mid + 1 && ac_lo=$as_val - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=-1 ac_mid=-1 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=$ac_mid; break -else - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - ac_lo= ac_hi= -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid -else - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in #(( -?*) eval "$3=\$ac_lo"; ac_retval=0 ;; -'') ac_retval=1 ;; -esac - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -static long int longval () { return $2; } -static unsigned long int ulongval () { return $2; } -#include -#include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (($2) < 0) - { - long int i = longval (); - if (i != ($2)) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ($2)) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - echo >>conftest.val; read $3 config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by $as_me, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -gt_needs="$gt_needs " -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -ac_aux_dir= -for ac_dir in config "$srcdir"/config; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -ac_config_headers="$ac_config_headers lib/config.h" - - -MCONFIG=./MCONFIG - -BINARY_TYPE=bin -E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h \ - | awk '{print $3}' | tr \" " " | awk '{print $1}'` -E2FSPROGS_DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \ - | tr \" " " | awk '{print $1}'` -E2FSPROGS_DAY=$(echo $E2FSPROGS_DATE | awk -F- '{print $1}' | sed -e '/^[1-9]$/s/^/0/') -MONTH=`echo $E2FSPROGS_DATE | awk -F- '{print $2}'` -YEAR=`echo $E2FSPROGS_DATE | awk -F- '{print $3}'` - -if expr $YEAR ">" 1900 > /dev/null ; then - E2FSPROGS_YEAR=$YEAR -elif expr $YEAR ">" 90 >/dev/null ; then - E2FSPROGS_YEAR=19$YEAR -else - E2FSPROGS_YEAR=20$YEAR -fi - -case $MONTH in -Jan) MONTH_NUM=01; E2FSPROGS_MONTH="January" ;; -Feb) MONTH_NUM=02; E2FSPROGS_MONTH="February" ;; -Mar) MONTH_NUM=03; E2FSPROGS_MONTH="March" ;; -Apr) MONTH_NUM=04; E2FSPROGS_MONTH="April" ;; -May) MONTH_NUM=05; E2FSPROGS_MONTH="May" ;; -Jun) MONTH_NUM=06; E2FSPROGS_MONTH="June" ;; -Jul) MONTH_NUM=07; E2FSPROGS_MONTH="July" ;; -Aug) MONTH_NUM=08; E2FSPROGS_MONTH="August" ;; -Sep) MONTH_NUM=09; E2FSPROGS_MONTH="September" ;; -Oct) MONTH_NUM=10; E2FSPROGS_MONTH="October" ;; -Nov) MONTH_NUM=11; E2FSPROGS_MONTH="November" ;; -Dec) MONTH_NUM=12; E2FSPROGS_MONTH="December" ;; -*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unknown month $MONTH??" >&5 -$as_echo "$as_me: WARNING: Unknown month $MONTH??" >&2;} ;; -esac - -base_ver=`echo $E2FSPROGS_VERSION | \ - sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'` - -date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY} - -case $E2FSPROGS_VERSION in -*-WIP|pre-*) - E2FSPROGS_PKGVER="$base_ver~WIP.$date_spec" - ;; -*) - E2FSPROGS_PKGVER="$base_ver" - ;; -esac - -unset DATE MONTH YEAR base_ver pre_vers date_spec -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION" >&5 -$as_echo "Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}" >&5 -$as_echo "Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}" >&6; } - - - - - - -WITH_DIET_LIBC= - -# Check whether --with-diet-libc was given. -if test "${with_diet_libc+set}" = set; then : - withval=$with_diet_libc; CC="diet cc -nostdinc" -WITH_DIET_LIBC=yes -if test -z "$LIBS" -then - LIBS="-lcompat" -else - LIBS="$LIBS -lcompat" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: CC=$CC" >&5 -$as_echo "CC=$CC" >&6; } -fi -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - -DLOPEN_LIB='' -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - DLOPEN_LIB=-ldl -fi - - - -# Check whether --with-cc was given. -if test "${with_cc+set}" = set; then : - withval=$with_cc; as_fn_error $? "--with-cc no longer supported; use CC= instead" "$LINENO" 5 -fi - - -# Check whether --with-ccopts was given. -if test "${with_ccopts+set}" = set; then : - withval=$with_ccopts; as_fn_error $? "--with-ccopts no longer supported; use CFLAGS= instead" "$LINENO" 5 -fi - - -# Check whether --with-ldopts was given. -if test "${with_ldopts+set}" = set; then : - withval=$with_ldopts; as_fn_error $? "--with-ldopts no longer supported; use LDFLAGS= instead" "$LINENO" 5 -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -if test "$GCC" = yes; then - RDYNAMIC="-rdynamic" - -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for additional special compiler flags" >&5 -$as_echo_n "checking for additional special compiler flags... " >&6; } -if test "$GCC" = yes -then - case "$host_cpu" in - alpha) addcflags="-mieee" ;; - esac -fi -if test "x$addcflags" != x -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $addcflags" >&5 -$as_echo "$addcflags" >&6; } - CFLAGS="$addcflags $CFLAGS" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (none)" >&5 -$as_echo "(none)" >&6; } -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" -if test "x$ac_cv_header_minix_config_h" = xyes; then : - MINIX=yes -else - MINIX= -fi - - - if test "$MINIX" = yes; then - -$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h - - -$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h - - -$as_echo "#define _MINIX 1" >>confdefs.h - - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 -$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } -if ${ac_cv_safe_to_define___extensions__+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -# define __EXTENSIONS__ 1 - $ac_includes_default -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_safe_to_define___extensions__=yes -else - ac_cv_safe_to_define___extensions__=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 -$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } - test $ac_cv_safe_to_define___extensions__ = yes && - $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h - - $as_echo "#define _ALL_SOURCE 1" >>confdefs.h - - $as_echo "#define _GNU_SOURCE 1" >>confdefs.h - - $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h - - $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h - - -LIB_EXT=.a -STATIC_LIB_EXT=.a -PROFILED_LIB_EXT=.a - -# Check whether --with-root-prefix was given. -if test "${with_root_prefix+set}" = set; then : - withval=$with_root_prefix; root_prefix=$withval -else - root_prefix=NONE -fi -# Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : - enableval=$enable_maintainer_mode; if test "$enableval" = "no" -then - MAINTAINER_CMT=# - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling maintainer mode" >&5 -$as_echo "Disabling maintainer mode" >&6; } -else - MAINTAINER_CMT= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling maintainer mode" >&5 -$as_echo "Enabling maintainer mode" >&6; } -fi - -else - MAINTAINER_CMT=# -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling maintainer mode by default" >&5 -$as_echo "Disabling maintainer mode by default" >&6; } - -fi - - -# Check whether --enable-symlink-install was given. -if test "${enable_symlink_install+set}" = set; then : - enableval=$enable_symlink_install; if test "$enableval" = "no" -then - LINK_INSTALL_FLAGS=-f - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling symlinks for install" >&5 -$as_echo "Disabling symlinks for install" >&6; } -else - LINK_INSTALL_FLAGS=-sf - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling symlinks for install" >&5 -$as_echo "Enabling symlinks for install" >&6; } -fi - -else - LINK_INSTALL_FLAGS=-f -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling symlinks for install by default" >&5 -$as_echo "Disabling symlinks for install by default" >&6; } - -fi - - -relative_symlink_defined= -# Check whether --enable-relative-symlinks was given. -if test "${enable_relative_symlinks+set}" = set; then : - enableval=$enable_relative_symlinks; if test "$enableval" = "no" -then - SYMLINK_RELATIVE= - relative_symlink_defined=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling relative symlinks for install" >&5 -$as_echo "Disabling relative symlinks for install" >&6; } -else - SYMLINK_RELATIVE=--relative - relative_symlink_defined=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling relative symlinks for install" >&5 -$as_echo "Enabling relative symlinks for install" >&6; } -fi -fi - -# Check whether --enable-symlink-relative-symlinks was given. -if test "${enable_symlink_relative_symlinks+set}" = set; then : - enableval=$enable_symlink_relative_symlinks; if test "$enableval" = "no" -then - SYMLINK_RELATIVE=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling relative symlinks for install" >&5 -$as_echo "Disabling relative symlinks for install" >&6; } -else - SYMLINK_RELATIVE=--relative - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling relative symlinks for install" >&5 -$as_echo "Enabling relative symlinks for install" >&6; } -fi - -else - if test -z "$relative_symlink_defined" -then - SYMLINK_RELATIVE= -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling relative symlinks for install by default" >&5 -$as_echo "Disabling relative symlinks for install by default" >&6; } -fi - -fi - - -# Check whether --enable-symlink-build was given. -if test "${enable_symlink_build+set}" = set; then : - enableval=$enable_symlink_build; if test "$enableval" = "no" -then - LINK_BUILD_FLAGS= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling symlinks for build" >&5 -$as_echo "Disabling symlinks for build" >&6; } -else - LINK_BUILD_FLAGS=-s - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling symlinks for build" >&5 -$as_echo "Enabling symlinks for build" >&6; } -fi - -else - LINK_BUILD_FLAGS= -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling symlinks for build by default" >&5 -$as_echo "Disabling symlinks for build by default" >&6; } - -fi - - -# Check whether --enable-verbose-makecmds was given. -if test "${enable_verbose_makecmds+set}" = set; then : - enableval=$enable_verbose_makecmds; if test "$enableval" = "no" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling verbose make commands" >&5 -$as_echo "Disabling verbose make commands" >&6; } - E=@echo - ES=echo - Q=@ -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling verbose make commands" >&5 -$as_echo "Enabling verbose make commands" >&6; } - E=@\\# - ES=\\# - Q= -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling verbose make commands" >&5 -$as_echo "Disabling verbose make commands" >&6; } -E=@echo -ES=echo -Q=@ - -fi - - - - -E2_PKG_CONFIG_STATIC=--static -LDFLAG_DYNAMIC= -PRIVATE_LIBS_CMT= -# Check whether --enable-elf-shlibs was given. -if test "${enable_elf_shlibs+set}" = set; then : - enableval=$enable_elf_shlibs; if test "$enableval" = "no" -then - ELF_CMT=# - MAKEFILE_ELF=/dev/null - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling ELF shared libraries" >&5 -$as_echo "Disabling ELF shared libraries" >&6; } -else - E2_PKG_CONFIG_STATIC= - ELF_CMT= - MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib - case "$host_os" in - solaris2.*) - MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib - ;; - esac - BINARY_TYPE=elfbin - LIB_EXT=.so - PRIVATE_LIBS_CMT=# - LDFLAG_DYNAMIC='-Wl,-rpath-link,$(top_builddir)/lib' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling ELF shared libraries" >&5 -$as_echo "Enabling ELF shared libraries" >&6; } -fi - -else - MAKEFILE_ELF=/dev/null -ELF_CMT=# -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling ELF shared libraries by default" >&5 -$as_echo "Disabling ELF shared libraries by default" >&6; } - -fi - - - -# Check whether --enable-bsd-shlibs was given. -if test "${enable_bsd_shlibs+set}" = set; then : - enableval=$enable_bsd_shlibs; if test "$enableval" = "no" -then - BSDLIB_CMT=# - MAKEFILE_BSDLIB=/dev/null - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling BSD shared libraries" >&5 -$as_echo "Disabling BSD shared libraries" >&6; } -else - E2_PKG_CONFIG_STATIC= - BSDLIB_CMT= - MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib - LIB_EXT=.so - case "$host_os" in - darwin*) - MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib - LIB_EXT=.dylib - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling BSD shared libraries" >&5 -$as_echo "Enabling BSD shared libraries" >&6; } -fi - -else - MAKEFILE_BSDLIB=/dev/null -BSDLIB_CMT=# -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling BSD shared libraries by default" >&5 -$as_echo "Disabling BSD shared libraries by default" >&6; } - -fi - - - -# Check whether --enable-profile was given. -if test "${enable_profile+set}" = set; then : - enableval=$enable_profile; if test "$enableval" = "no" -then - PROFILE_CMT=# - MAKEFILE_PROFILE=/dev/null - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling profiling libraries" >&5 -$as_echo "Disabling profiling libraries" >&6; } -else - PROFILE_CMT= - MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile - PROFILED_LIB_EXT=_p.a - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Building profiling libraries" >&5 -$as_echo "Building profiling libraries" >&6; } -fi - -else - PROFILE_CMT=# -MAKEFILE_PROFILE=/dev/null -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling profiling libraries by default" >&5 -$as_echo "Disabling profiling libraries by default" >&6; } - -fi - - - -# Check whether --enable-gcov was given. -if test "${enable_gcov+set}" = set; then : - enableval=$enable_gcov; if test "$enableval" = "yes" -then - CFLAGS="-g -fprofile-arcs -ftest-coverage" - LDFLAGS="-fprofile-arcs -ftest-coverage" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling gcov support" >&5 -$as_echo "Enabling gcov support" >&6; } -fi - -fi - -CFLAGS_SHLIB="${CFLAGS_SHLIB:-$CFLAGS}" -CFLAGS_STLIB="${CFLAGS_STLIB:-$CFLAGS}" -LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS} -LDFLAGS_STATIC=${LDFLAGS_STATIC:-$LDFLAGS} -# Check whether --enable-hardening was given. -if test "${enable_hardening+set}" = set; then : - enableval=$enable_hardening; if test "$enableval" = "yes" -then - HARDEN_CFLAGS="-D_FORTIFY_SOURCE=2 -fstack-protector-strong" - HARDEN_LDFLAGS="-Wl,-z,relro -Wl,-z,now" - CFLAGS="$CFLAGS $HARDEN_CFLAGS -fPIE" - CFLAGS_SHLIB="$CFLAGS_SHLIB $HARDEN_CFLAGS" - CFLAGS_STLIB="$CFLAGS_STLIB $HARDEN_CFLAGS -fPIE" - LDFLAGS="$LDFLAGS $HARDEN_LDFLAGS -fPIE -pie" - LDFLAGS_STATIC="$LDFLAGS_STATIC $HARDEN_LDFLAGS" - LDFLAGS_SHLIB="$LDFLAGS_SHLIB $HARDEN_LDFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling hardening support" >&5 -$as_echo "Enabling hardening support" >&6; } -fi - -fi - - - - - - -# Check whether --enable-jbd-debug was given. -if test "${enable_jbd_debug+set}" = set; then : - enableval=$enable_jbd_debug; if test "$enableval" = "no" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling journal debugging" >&5 -$as_echo "Disabling journal debugging" >&6; } -else - -$as_echo "#define CONFIG_JBD_DEBUG 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling journal debugging" >&5 -$as_echo "Enabling journal debugging" >&6; } -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling journal debugging by default" >&5 -$as_echo "Disabling journal debugging by default" >&6; } - -fi - -# Check whether --enable-blkid-debug was given. -if test "${enable_blkid_debug+set}" = set; then : - enableval=$enable_blkid_debug; if test "$enableval" = "no" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling blkid debugging" >&5 -$as_echo "Disabling blkid debugging" >&6; } -else - -$as_echo "#define CONFIG_BLKID_DEBUG 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling blkid debugging" >&5 -$as_echo "Enabling blkid debugging" >&6; } -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling blkid debugging by default" >&5 -$as_echo "Disabling blkid debugging by default" >&6; } - -fi - -# Check whether --enable-testio-debug was given. -if test "${enable_testio_debug+set}" = set; then : - enableval=$enable_testio_debug; -if test "$enableval" = "no" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling testio debugging" >&5 -$as_echo "Disabling testio debugging" >&6; } - TEST_IO_CMT="#" -else - TEST_IO_CMT= - $as_echo "#define CONFIG_TESTIO_DEBUG 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling testio debugging" >&5 -$as_echo "Enabling testio debugging" >&6; } -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling testio debugging by default" >&5 -$as_echo "Enabling testio debugging by default" >&6; } -$as_echo "#define CONFIG_TESTIO_DEBUG 1" >>confdefs.h - -TEST_IO_CMT= - -fi - - -# Check whether --enable-developer-features was given. -if test "${enable_developer_features+set}" = set; then : - enableval=$enable_developer_features; -if test "$enableval" = "yes" -then - DEV_FEATURES_CMT= - $as_echo "#define CONFIG_DEVELOPER_FEATURES 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling ext4 developer features" >&5 -$as_echo "Enabling ext4 developer features" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling ext4 developer features" >&5 -$as_echo "Disabling ext4 developer features" >&6; } - DEV_FEATURES_CMT="#" -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling ext4 developer features by default" >&5 -$as_echo "Disabling ext4 developer features by default" >&6; } -DEV_FEATURES_CMT= - -fi - - - - - - - - - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -$as_echo "$ac_pt_PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 -$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - PKG_CONFIG="" - fi -fi -LIBUUID= -DEPLIBUUID= -STATIC_LIBUUID= -DEPSTATIC_LIBUUID= -PROFILED_LIBUUID= -DEPPROFILED_LIBUUID= -UUID_CMT= -# Check whether --enable-libuuid was given. -if test "${enable_libuuid+set}" = set; then : - enableval=$enable_libuuid; if test "$enableval" = "no" -then - if test -z "$PKG_CONFIG"; then - as_fn_error $? "pkg-config not installed; please install it." "$LINENO" 5 - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate in -luuid" >&5 -$as_echo_n "checking for uuid_generate in -luuid... " >&6; } -if ${ac_cv_lib_uuid_uuid_generate+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-luuid $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char uuid_generate (); -int -main () -{ -return uuid_generate (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_uuid_uuid_generate=yes -else - ac_cv_lib_uuid_uuid_generate=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate" >&5 -$as_echo "$ac_cv_lib_uuid_uuid_generate" >&6; } -if test "x$ac_cv_lib_uuid_uuid_generate" = xyes; then : - LIBUUID=`$PKG_CONFIG --libs uuid`; - STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid` -else - as_fn_error $? "external uuid library not found" "$LINENO" 5 -fi - - PROFILED_LIBUUID=$LIBUUID - UUID_CMT=# - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling private uuid library" >&5 -$as_echo "Disabling private uuid library" >&6; } -else - LIBUUID='$(LIB)/libuuid'$LIB_EXT - DEPLIBUUID=$LIBUUID - STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT - DEPSTATIC_LIBUUID=$STATIC_LIBUUID - PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT - DEPPROFILED_LIBUUID=$PROFILED_LIBUUID - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling private uuid library" >&5 -$as_echo "Enabling private uuid library" >&6; } -fi - -else - if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate in -luuid" >&5 -$as_echo_n "checking for uuid_generate in -luuid... " >&6; } -if ${ac_cv_lib_uuid_uuid_generate+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-luuid $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char uuid_generate (); -int -main () -{ -return uuid_generate (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_uuid_uuid_generate=yes -else - ac_cv_lib_uuid_uuid_generate=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate" >&5 -$as_echo "$ac_cv_lib_uuid_uuid_generate" >&6; } -if test "x$ac_cv_lib_uuid_uuid_generate" = xyes; then : - LIBUUID=`$PKG_CONFIG --libs uuid`; - STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid` -fi - -fi -if test -n "$LIBUUID"; then - PROFILED_LIBUUID=$LIBUUID - UUID_CMT=# - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using system uuid by default" >&5 -$as_echo "Using system uuid by default" >&6; } -else - LIBUUID='$(LIB)/libuuid'$LIB_EXT - DEPLIBUUID=$LIBUUID - STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT - DEPSTATIC_LIBUUID=$STATIC_LIBUUID - PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT - DEPPROFILED_LIBUUID=$PROFILED_LIBUUID - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling private uuid library by default" >&5 -$as_echo "Enabling private uuid library by default" >&6; } -fi - -fi - - - - - - - - - - - - - - - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -$as_echo "$ac_pt_PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 -$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - PKG_CONFIG="" - fi -fi -LIBBLKID= -DEPLIBBLKID= -STATIC_LIBBLKID= -DEPSTATIC_LIBBLKID= -PROFILED_LIBBLKID= -DEPPROFILED_LIBBLKID= -BLKID_CMT= - -# Check whether --enable-libblkid was given. -if test "${enable_libblkid+set}" = set; then : - enableval=$enable_libblkid; if test "$enableval" = "no" -then - if test -z "$PKG_CONFIG"; then - as_fn_error $? "pkg-config not installed; please install it." "$LINENO" 5 - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for blkid_get_cache in -lblkid" >&5 -$as_echo_n "checking for blkid_get_cache in -lblkid... " >&6; } -if ${ac_cv_lib_blkid_blkid_get_cache+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lblkid -luuid $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char blkid_get_cache (); -int -main () -{ -return blkid_get_cache (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_blkid_blkid_get_cache=yes -else - ac_cv_lib_blkid_blkid_get_cache=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blkid_blkid_get_cache" >&5 -$as_echo "$ac_cv_lib_blkid_blkid_get_cache" >&6; } -if test "x$ac_cv_lib_blkid_blkid_get_cache" = xyes; then : - LIBBLKID=`$PKG_CONFIG --libs blkid`; - STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid` -else - as_fn_error $? "external blkid library not found" "$LINENO" 5 -fi - - BLKID_CMT=# - PROFILED_LIBBLKID=$LIBBLKID - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling private blkid library" >&5 -$as_echo "Disabling private blkid library" >&6; } -else - LIBBLKID='$(LIB)/libblkid'$LIB_EXT - DEPLIBBLKID=$LIBBLKID - STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT - DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID - PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT - DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID - $as_echo "#define CONFIG_BUILD_FINDFS 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling private blkid library" >&5 -$as_echo "Enabling private blkid library" >&6; } -fi - -else - if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for blkid_get_cache in -lblkid" >&5 -$as_echo_n "checking for blkid_get_cache in -lblkid... " >&6; } -if ${ac_cv_lib_blkid_blkid_get_cache+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lblkid $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char blkid_get_cache (); -int -main () -{ -return blkid_get_cache (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_blkid_blkid_get_cache=yes -else - ac_cv_lib_blkid_blkid_get_cache=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blkid_blkid_get_cache" >&5 -$as_echo "$ac_cv_lib_blkid_blkid_get_cache" >&6; } -if test "x$ac_cv_lib_blkid_blkid_get_cache" = xyes; then : - LIBBLKID=`$PKG_CONFIG --libs blkid`; - STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid` -fi - -fi -if test -n "$LIBBLKID"; then - BLKID_CMT=# - PROFILED_LIBBLKID=$LIBBLKID - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using system blkid library by default" >&5 -$as_echo "Using system blkid library by default" >&6; } -else - LIBBLKID='$(LIB)/libblkid'$LIB_EXT - DEPLIBBLKID=$LIBBLKID - STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT - DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID - PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT - DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID - $as_echo "#define CONFIG_BUILD_FINDFS 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling private blkid library by default" >&5 -$as_echo "Enabling private blkid library by default" >&6; } -fi - -fi - - - - - - - - -ALL_CMT= -SUBSET_CMT= -# Check whether --enable-subset was given. -if test "${enable_subset+set}" = set; then : - enableval=$enable_subset; if test "$enableval" = "no" -then - SUBSET_CMT=# - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling subset-only build" >&5 -$as_echo "Disabling subset-only build" >&6; } -else - ALL_CMT=# - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling subset-only-build" >&5 -$as_echo "Enabling subset-only-build" >&6; } -fi - -fi - - - - -# Check whether --enable-backtrace was given. -if test "${enable_backtrace+set}" = set; then : - enableval=$enable_backtrace; if test "$enableval" = "no" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling use of backtrace" >&5 -$as_echo "Disabling use of backtrace" >&6; } - $as_echo "#define DISABLE_BACKTRACE 1" >>confdefs.h - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling use of backtrace" >&5 -$as_echo "Enabling use of backtrace" >&6; } -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling use of backtrace by default" >&5 -$as_echo "Enabling use of backtrace by default" >&6; } - -fi - -# Check whether --enable-debugfs was given. -if test "${enable_debugfs+set}" = set; then : - enableval=$enable_debugfs; if test "$enableval" = "no" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling debugfs support" >&5 -$as_echo "Disabling debugfs support" >&6; } - DEBUGFS_CMT="#" -else - DEBUGFS_CMT= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling debugfs support" >&5 -$as_echo "Enabling debugfs support" >&6; } -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling debugfs support by default" >&5 -$as_echo "Enabling debugfs support by default" >&6; } -DEBUGFS_CMT= - -fi - - -# Check whether --enable-imager was given. -if test "${enable_imager+set}" = set; then : - enableval=$enable_imager; if test "$enableval" = "no" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling e2image support" >&5 -$as_echo "Disabling e2image support" >&6; } - IMAGER_CMT="#" -else - IMAGER_CMT= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling e2image support" >&5 -$as_echo "Enabling e2image support" >&6; } -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling e2image support by default" >&5 -$as_echo "Enabling e2image support by default" >&6; } -IMAGER_CMT= - -fi - - -# Check whether --enable-resizer was given. -if test "${enable_resizer+set}" = set; then : - enableval=$enable_resizer; if test "$enableval" = "no" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling e2resize support" >&5 -$as_echo "Disabling e2resize support" >&6; } - RESIZER_CMT="#" -else - RESIZER_CMT= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling e2resize support" >&5 -$as_echo "Enabling e2resize support" >&6; } -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling e2resize support by default" >&5 -$as_echo "Enabling e2resize support by default" >&6; } -RESIZER_CMT= - -fi - - -# Check whether --enable-defrag was given. -if test "${enable_defrag+set}" = set; then : - enableval=$enable_defrag; if test "$enableval" = "no" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling e4defrag support" >&5 -$as_echo "Disabling e4defrag support" >&6; } - DEFRAG_CMT="#" -else - DEFRAG_CMT= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling e4defrag support" >&5 -$as_echo "Enabling e4defrag support" >&6; } -fi - -else - if test -z "$WITH_DIET_LIBC" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling e4defrag support by default" >&5 -$as_echo "Enabling e4defrag support by default" >&6; } - DEFRAG_CMT= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling e4defrag support by default" >&5 -$as_echo "Disabling e4defrag support by default" >&6; } - DEFRAG_CMT="#" -fi - -fi - - -# Check whether --enable-fsck was given. -if test "${enable_fsck+set}" = set; then : - enableval=$enable_fsck; if test "$enableval" = "no" -then - FSCK_PROG='' FSCK_MAN='' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Not building fsck wrapper" >&5 -$as_echo "Not building fsck wrapper" >&6; } -else - FSCK_PROG=fsck FSCK_MAN=fsck.8 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Building fsck wrapper" >&5 -$as_echo "Building fsck wrapper" >&6; } -fi - -else - case "$host_os" in - gnu*) - FSCK_PROG='' FSCK_MAN='' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Not building fsck wrapper by default" >&5 -$as_echo "Not building fsck wrapper by default" >&6; } - ;; - *) - FSCK_PROG=fsck FSCK_MAN=fsck.8 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Building fsck wrapper by default" >&5 -$as_echo "Building fsck wrapper by default" >&6; } -esac - -fi - - - -# Check whether --enable-e2initrd-helper was given. -if test "${enable_e2initrd_helper+set}" = set; then : - enableval=$enable_e2initrd_helper; if test "$enableval" = "no" -then - E2INITRD_PROG='' E2INITRD_MAN='' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Not building e2initrd helper" >&5 -$as_echo "Not building e2initrd helper" >&6; } -else - E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Building e2initrd helper" >&5 -$as_echo "Building e2initrd helper" >&6; } -fi - -else - E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Building e2initrd helper by default" >&5 -$as_echo "Building e2initrd helper by default" >&6; } - -fi - - - -# Check whether --enable-tls was given. -if test "${enable_tls+set}" = set; then : - enableval=$enable_tls; if test "$enableval" = "no" -then - try_tls="" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling thread local support" >&5 -$as_echo "Disabling thread local support" >&6; } -else - try_tls="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling thread local support" >&5 -$as_echo "Enabling thread local support" >&6; } -fi - -else - if test -n "$WITH_DIET_LIBC" -then - try_tls="" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Diet libc does not support thread local support" >&5 -$as_echo "Diet libc does not support thread local support" >&6; } -else - try_tls="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Try using thread local support by default" >&5 -$as_echo "Try using thread local support by default" >&6; } -fi - -fi - -if test "$try_tls" = "yes" -then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for thread local storage (TLS) class" >&5 -$as_echo_n "checking for thread local storage (TLS) class... " >&6; } - if ${ac_cv_tls+:} false; then : - $as_echo_n "(cached) " >&6 -else - - ax_tls_keywords="__thread __declspec(thread) none" - for ax_tls_keyword in $ax_tls_keywords; do - case $ax_tls_keyword in - none) ac_cv_tls=none ; break ;; - *) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - static void - foo(void) { - static $ax_tls_keyword int bar; - exit(1); - } -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_tls=$ax_tls_keyword ; break -else - ac_cv_tls=none - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - esac - done - -fi - - - if test "$ac_cv_tls" != "none"; then - -cat >>confdefs.h <<_ACEOF -#define TLS $ac_cv_tls -_ACEOF - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tls" >&5 -$as_echo "$ac_cv_tls" >&6; } - -fi - -# Check whether --with-pthread was given. -if test "${with_pthread+set}" = set; then : - withval=$with_pthread; if test "$withval" = "no" -then - try_pthread="" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling pthread support" >&5 -$as_echo "Disabling pthread support" >&6; } -else - try_pthread="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Testing for pthread support" >&5 -$as_echo "Testing for pthread support" >&6; } -fi - -else - try_pthread="yes" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Try testing for pthread support by default" >&5 -$as_echo "Try testing for pthread support by default" >&6; } - -fi - -if test "$try_pthread" = "yes" -then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if ${ac_cv_path_SED+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for ac_i in 1 2 3 4 5 6 7; do - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - { ac_script=; unset ac_script;} - if test -z "$SED"; then - ac_path_SED_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_SED" || continue -# Check for GNU ac_path_SED and select it if it is found. - # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in -*GNU*) - ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo '' >> "conftest.nl" - "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_SED_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_SED="$ac_path_SED" - ac_path_SED_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_SED_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_SED"; then - as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 - fi -else - ac_cv_path_SED=$SED -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -$as_echo "$ac_cv_path_SED" >&6; } - SED="$ac_cv_path_SED" - rm -f conftest.sed - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ax_pthread_ok=no - -# We used to check for pthread.h first, but this fails if pthread.h -# requires special compiler flags (e.g. on Tru64 or Sequent). -# It gets checked for in the link test anyway. - -# First of all, check if the user has set any of the PTHREAD_LIBS, -# etcetera environment variables, and if threads linking works using -# them: -if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then - ax_pthread_save_CC="$CC" - ax_pthread_save_CFLAGS="$CFLAGS" - ax_pthread_save_LIBS="$LIBS" - if test "x$PTHREAD_CC" != "x"; then : - CC="$PTHREAD_CC" -fi - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS" >&5 -$as_echo_n "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_join (); -int -main () -{ -return pthread_join (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ax_pthread_ok=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 -$as_echo "$ax_pthread_ok" >&6; } - if test "x$ax_pthread_ok" = "xno"; then - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" - fi - CC="$ax_pthread_save_CC" - CFLAGS="$ax_pthread_save_CFLAGS" - LIBS="$ax_pthread_save_LIBS" -fi - -# We must check for the threads library under a number of different -# names; the ordering is very important because some systems -# (e.g. DEC) have both -lpthread and -lpthreads, where one of the -# libraries is broken (non-POSIX). - -# Create a list of thread flags to try. Items starting with a "-" are -# C compiler flags, and other items are library names, except for "none" -# which indicates that we try without any flags at all, and "pthread-config" -# which is a program returning the flags for the Pth emulation library. - -ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" - -# The ordering *is* (sometimes) important. Some notes on the -# individual items follow: - -# pthreads: AIX (must check this before -lpthread) -# none: in case threads are in libc; should be tried before -Kthread and -# other compiler flags to prevent continual compiler warnings -# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) -# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64 -# (Note: HP C rejects this with "bad form for `-t' option") -# -pthreads: Solaris/gcc (Note: HP C also rejects) -# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it -# doesn't hurt to check since this sometimes defines pthreads and -# -D_REENTRANT too), HP C (must be checked before -lpthread, which -# is present but should not be used directly; and before -mthreads, -# because the compiler interprets this as "-mt" + "-hreads") -# -mthreads: Mingw32/gcc, Lynx/gcc -# pthread: Linux, etcetera -# --thread-safe: KAI C++ -# pthread-config: use pthread-config program (for GNU Pth library) - -case $host_os in - - freebsd*) - - # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) - # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) - - ax_pthread_flags="-kthread lthread $ax_pthread_flags" - ;; - - hpux*) - - # From the cc(1) man page: "[-mt] Sets various -D flags to enable - # multi-threading and also sets -lpthread." - - ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags" - ;; - - openedition*) - - # IBM z/OS requires a feature-test macro to be defined in order to - # enable POSIX threads at all, so give the user a hint if this is - # not set. (We don't define these ourselves, as they can affect - # other portions of the system API in unpredictable ways.) - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS) - AX_PTHREAD_ZOS_MISSING -# endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5 -$as_echo "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;} -fi -rm -f conftest* - - ;; - - solaris*) - - # On Solaris (at least, for some versions), libc contains stubbed - # (non-functional) versions of the pthreads routines, so link-based - # tests will erroneously succeed. (N.B.: The stubs are missing - # pthread_cleanup_push, or rather a function called by this macro, - # so we could check for that, but who knows whether they'll stub - # that too in a future libc.) So we'll check first for the - # standard Solaris way of linking pthreads (-mt -lpthread). - - ax_pthread_flags="-mt,pthread pthread $ax_pthread_flags" - ;; -esac - -# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC) - -if test "x$GCC" = "xyes"; then : - ax_pthread_flags="-pthread -pthreads $ax_pthread_flags" -fi - -# The presence of a feature test macro requesting re-entrant function -# definitions is, on some systems, a strong hint that pthreads support is -# correctly enabled - -case $host_os in - darwin* | hpux* | linux* | osf* | solaris*) - ax_pthread_check_macro="_REENTRANT" - ;; - - aix*) - ax_pthread_check_macro="_THREAD_SAFE" - ;; - - *) - ax_pthread_check_macro="--" - ;; -esac -if test "x$ax_pthread_check_macro" = "x--"; then : - ax_pthread_check_cond=0 -else - ax_pthread_check_cond="!defined($ax_pthread_check_macro)" -fi - -# Are we compiling with Clang? - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC is Clang" >&5 -$as_echo_n "checking whether $CC is Clang... " >&6; } -if ${ax_cv_PTHREAD_CLANG+:} false; then : - $as_echo_n "(cached) " >&6 -else - ax_cv_PTHREAD_CLANG=no - # Note that Autoconf sets GCC=yes for Clang as well as GCC - if test "x$GCC" = "xyes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Note: Clang 2.7 lacks __clang_[a-z]+__ */ -# if defined(__clang__) && defined(__llvm__) - AX_PTHREAD_CC_IS_CLANG -# endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1; then : - ax_cv_PTHREAD_CLANG=yes -fi -rm -f conftest* - - fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5 -$as_echo "$ax_cv_PTHREAD_CLANG" >&6; } -ax_pthread_clang="$ax_cv_PTHREAD_CLANG" - -ax_pthread_clang_warning=no - -# Clang needs special handling, because older versions handle the -pthread -# option in a rather... idiosyncratic way - -if test "x$ax_pthread_clang" = "xyes"; then - - # Clang takes -pthread; it has never supported any other flag - - # (Note 1: This will need to be revisited if a system that Clang - # supports has POSIX threads in a separate library. This tends not - # to be the way of modern systems, but it's conceivable.) - - # (Note 2: On some systems, notably Darwin, -pthread is not needed - # to get POSIX threads support; the API is always present and - # active. We could reasonably leave PTHREAD_CFLAGS empty. But - # -pthread does define _REENTRANT, and while the Darwin headers - # ignore this macro, third-party headers might not.) - - PTHREAD_CFLAGS="-pthread" - PTHREAD_LIBS= - - ax_pthread_ok=yes - - # However, older versions of Clang make a point of warning the user - # that, in an invocation where only linking and no compilation is - # taking place, the -pthread option has no effect ("argument unused - # during compilation"). They expect -pthread to be passed in only - # when source code is being compiled. - # - # Problem is, this is at odds with the way Automake and most other - # C build frameworks function, which is that the same flags used in - # compilation (CFLAGS) are also used in linking. Many systems - # supported by AX_PTHREAD require exactly this for POSIX threads - # support, and in fact it is often not straightforward to specify a - # flag that is used only in the compilation phase and not in - # linking. Such a scenario is extremely rare in practice. - # - # Even though use of the -pthread flag in linking would only print - # a warning, this can be a nuisance for well-run software projects - # that build with -Werror. So if the active version of Clang has - # this misfeature, we search for an option to squash it. - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread" >&5 -$as_echo_n "checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread... " >&6; } -if ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+:} false; then : - $as_echo_n "(cached) " >&6 -else - ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown - # Create an alternate version of $ac_link that compiles and - # links in two steps (.c -> .o, .o -> exe) instead of one - # (.c -> exe), because the warning occurs only in the second - # step - ax_pthread_save_ac_link="$ac_link" - ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g' - ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"` - ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)" - ax_pthread_save_CFLAGS="$CFLAGS" - for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do - if test "x$ax_pthread_try" = "xunknown"; then : - break -fi - CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS" - ac_link="$ax_pthread_save_ac_link" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int main(void){return 0;} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_link="$ax_pthread_2step_ac_link" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int main(void){return 0;} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - break -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done - ac_link="$ax_pthread_save_ac_link" - CFLAGS="$ax_pthread_save_CFLAGS" - if test "x$ax_pthread_try" = "x"; then : - ax_pthread_try=no -fi - ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5 -$as_echo "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; } - - case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in - no | unknown) ;; - *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;; - esac - -fi # $ax_pthread_clang = yes - -if test "x$ax_pthread_ok" = "xno"; then -for ax_pthread_try_flag in $ax_pthread_flags; do - - case $ax_pthread_try_flag in - none) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 -$as_echo_n "checking whether pthreads work without any flags... " >&6; } - ;; - - -mt,pthread) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with -mt -lpthread" >&5 -$as_echo_n "checking whether pthreads work with -mt -lpthread... " >&6; } - PTHREAD_CFLAGS="-mt" - PTHREAD_LIBS="-lpthread" - ;; - - -*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $ax_pthread_try_flag" >&5 -$as_echo_n "checking whether pthreads work with $ax_pthread_try_flag... " >&6; } - PTHREAD_CFLAGS="$ax_pthread_try_flag" - ;; - - pthread-config) - # Extract the first word of "pthread-config", so it can be a program name with args. -set dummy pthread-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ax_pthread_config+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ax_pthread_config"; then - ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ax_pthread_config="yes" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no" -fi -fi -ax_pthread_config=$ac_cv_prog_ax_pthread_config -if test -n "$ax_pthread_config"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5 -$as_echo "$ax_pthread_config" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "x$ax_pthread_config" = "xno"; then : - continue -fi - PTHREAD_CFLAGS="`pthread-config --cflags`" - PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" - ;; - - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$ax_pthread_try_flag" >&5 -$as_echo_n "checking for the pthreads library -l$ax_pthread_try_flag... " >&6; } - PTHREAD_LIBS="-l$ax_pthread_try_flag" - ;; - esac - - ax_pthread_save_CFLAGS="$CFLAGS" - ax_pthread_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - - # Check for various functions. We must include pthread.h, - # since some functions may be macros. (On the Sequent, we - # need a special flag -Kthread to make this header compile.) - # We check for pthread_join because it is in -lpthread on IRIX - # while pthread_create is in libc. We check for pthread_attr_init - # due to DEC craziness with -lpthreads. We check for - # pthread_cleanup_push because it is one of the few pthread - # functions on Solaris that doesn't have a non-functional libc stub. - # We try pthread_create on general principles. - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -# if $ax_pthread_check_cond -# error "$ax_pthread_check_macro must be defined" -# endif - static void routine(void *a) { a = 0; } - static void *start_routine(void *a) { return a; } -int -main () -{ -pthread_t th; pthread_attr_t attr; - pthread_create(&th, 0, start_routine, 0); - pthread_join(th, 0); - pthread_attr_init(&attr); - pthread_cleanup_push(routine, 0); - pthread_cleanup_pop(0) /* ; */ - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ax_pthread_ok=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - CFLAGS="$ax_pthread_save_CFLAGS" - LIBS="$ax_pthread_save_LIBS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 -$as_echo "$ax_pthread_ok" >&6; } - if test "x$ax_pthread_ok" = "xyes"; then : - break -fi - - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" -done -fi - -# Various other checks: -if test "x$ax_pthread_ok" = "xyes"; then - ax_pthread_save_CFLAGS="$CFLAGS" - ax_pthread_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - - # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 -$as_echo_n "checking for joinable pthread attribute... " >&6; } -if ${ax_cv_PTHREAD_JOINABLE_ATTR+:} false; then : - $as_echo_n "(cached) " >&6 -else - ax_cv_PTHREAD_JOINABLE_ATTR=unknown - for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int attr = $ax_pthread_attr; return attr /* ; */ - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5 -$as_echo "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; } - if test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \ - test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \ - test "x$ax_pthread_joinable_attr_defined" != "xyes"; then : - -cat >>confdefs.h <<_ACEOF -#define PTHREAD_CREATE_JOINABLE $ax_cv_PTHREAD_JOINABLE_ATTR -_ACEOF - - ax_pthread_joinable_attr_defined=yes - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether more special flags are required for pthreads" >&5 -$as_echo_n "checking whether more special flags are required for pthreads... " >&6; } -if ${ax_cv_PTHREAD_SPECIAL_FLAGS+:} false; then : - $as_echo_n "(cached) " >&6 -else - ax_cv_PTHREAD_SPECIAL_FLAGS=no - case $host_os in - solaris*) - ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS" - ;; - esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5 -$as_echo "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; } - if test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \ - test "x$ax_pthread_special_flags_added" != "xyes"; then : - PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS" - ax_pthread_special_flags_added=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5 -$as_echo_n "checking for PTHREAD_PRIO_INHERIT... " >&6; } -if ${ax_cv_PTHREAD_PRIO_INHERIT+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = PTHREAD_PRIO_INHERIT; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ax_cv_PTHREAD_PRIO_INHERIT=yes -else - ax_cv_PTHREAD_PRIO_INHERIT=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 -$as_echo "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } - if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \ - test "x$ax_pthread_prio_inherit_defined" != "xyes"; then : - -$as_echo "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h - - ax_pthread_prio_inherit_defined=yes - -fi - - CFLAGS="$ax_pthread_save_CFLAGS" - LIBS="$ax_pthread_save_LIBS" - - # More AIX lossage: compile with *_r variant - if test "x$GCC" != "xyes"; then - case $host_os in - aix*) - case "x/$CC" in #( - x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) : - #handle absolute path differently from PATH based program lookup - case "x$CC" in #( - x/*) : - if as_fn_executable_p ${CC}_r; then : - PTHREAD_CC="${CC}_r" -fi ;; #( - *) : - for ac_prog in ${CC}_r -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_PTHREAD_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$PTHREAD_CC"; then - ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_PTHREAD_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -PTHREAD_CC=$ac_cv_prog_PTHREAD_CC -if test -n "$PTHREAD_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 -$as_echo "$PTHREAD_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$PTHREAD_CC" && break -done -test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" - ;; -esac ;; #( - *) : - ;; -esac - ;; - esac - fi -fi - -test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" - - - - - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test "x$ax_pthread_ok" = "xyes"; then - -$as_echo "#define HAVE_PTHREAD 1" >>confdefs.h - - : -else - ax_pthread_ok=no - -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -else -test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" - -fi - -# Check whether --enable-uuidd was given. -if test "${enable_uuidd+set}" = set; then : - enableval=$enable_uuidd; if test "$enableval" = "no" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Not building uuidd" >&5 -$as_echo "Not building uuidd" >&6; } - UUIDD_CMT="#" -else - $as_echo "#define USE_UUIDD 1" >>confdefs.h - - UUIDD_CMT="" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Building uuidd" >&5 -$as_echo "Building uuidd" >&6; } -fi - -else - $as_echo "#define USE_UUIDD 1" >>confdefs.h - -if test -z "$UUID_CMT" -then - UUIDD_CMT="" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Building uuidd by default" >&5 -$as_echo "Building uuidd by default" >&6; } -else - UUIDD_CMT="#" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling uuidd by default" >&5 -$as_echo "Disabling uuidd by default" >&6; } -fi - -fi - - - -# Check whether --enable-mmp was given. -if test "${enable_mmp+set}" = set; then : - enableval=$enable_mmp; if test "$enableval" = "no" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling mmp support" >&5 -$as_echo "Disabling mmp support" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling mmp support" >&5 -$as_echo "Enabling mmp support" >&6; } - $as_echo "#define CONFIG_MMP 1" >>confdefs.h - -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling mmp support by default" >&5 -$as_echo "Enabling mmp support by default" >&6; } -$as_echo "#define CONFIG_MMP 1" >>confdefs.h - - -fi - - -# Check whether --enable-tdb was given. -if test "${enable_tdb+set}" = set; then : - enableval=$enable_tdb; if test "$enableval" = "no" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling tdb support" >&5 -$as_echo "Disabling tdb support" >&6; } - TDB_CMT="#" - TDB_MAN_COMMENT='.\"' -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling tdb support" >&5 -$as_echo "Enabling tdb support" >&6; } - $as_echo "#define CONFIG_TDB 1" >>confdefs.h - - TDB_CMT="" - TDB_MAN_COMMENT="" -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling mmp support by default" >&5 -$as_echo "Enabling mmp support by default" >&6; } -$as_echo "#define CONFIG_TDB 1" >>confdefs.h - -TDB_CMT="" -TDB_MAN_COMMENT="" - -fi - - - - -# Check whether --enable-bmap-stats was given. -if test "${enable_bmap_stats+set}" = set; then : - enableval=$enable_bmap_stats; if test "$enableval" = "no" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling bitmap statistics support" >&5 -$as_echo "Disabling bitmap statistics support" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling bitmap statistics support" >&5 -$as_echo "Enabling bitmap statistics support" >&6; } - $as_echo "#define ENABLE_BMAP_STATS 1" >>confdefs.h - -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling bitmap statistics support by default" >&5 -$as_echo "Enabling bitmap statistics support by default" >&6; } -$as_echo "#define ENABLE_BMAP_STATS 1" >>confdefs.h - - -fi - - -# Check whether --enable-bmap-stats-ops was given. -if test "${enable_bmap_stats_ops+set}" = set; then : - enableval=$enable_bmap_stats_ops; if test "$enableval" = "no" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling additional bitmap statistics" >&5 -$as_echo "Disabling additional bitmap statistics" >&6; } -else - if test "x${enable_bmap_stats}" = "xno"; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "Error --enable-bmap-stats-ops requires bmap-stats -See \`config.log' for more details" "$LINENO" 5; } -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling additional bitmap statistics" >&5 -$as_echo "Enabling additional bitmap statistics" >&6; } - $as_echo "#define ENABLE_BMAP_STATS_OPS 1" >>confdefs.h - -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling additional bitmap statistics by default" >&5 -$as_echo "Disabling additional bitmap statistics by default" >&6; } - -fi - -MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library - -GETTEXT_PACKAGE=e2fsprogs -PACKAGE=e2fsprogs -VERSION="$E2FSPROGS_VERSION" -VERSION=0.14.1 - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done - done -IFS=$as_save_IFS - -fi - - test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 -$as_echo_n "checking whether NLS is requested... " >&6; } - # Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then : - enableval=$enable_nls; USE_NLS=$enableval -else - USE_NLS=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$USE_NLS" >&6; } - - - - - GETTEXT_MACRO_VERSION=0.20 - - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which - # contains only /bin. Note that ksh looks also at the FPATH variable, - # so we have to set that as well for the test. - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - || PATH_SEPARATOR=';' - } -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - echo "$as_me: trying $ac_dir/$ac_word..." >&5 - if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; - *) GMSGFMT_015=$GMSGFMT ;; - esac - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which - # contains only /bin. Note that ksh looks also at the FPATH variable, - # so we have to set that as well for the test. - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - || PATH_SEPARATOR=';' - } -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$XGETTEXT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - echo "$as_me: trying $ac_dir/$ac_word..." >&5 - if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - rm -f messages.po - - case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; - *) XGETTEXT_015=$XGETTEXT ;; - esac - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which - # contains only /bin. Note that ksh looks also at the FPATH variable, - # so we have to set that as well for the test. - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - || PATH_SEPARATOR=';' - } -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGMERGE" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - echo "$as_me: trying $ac_dir/$ac_word..." >&5 - if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then - ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" - ;; -esac -fi -MSGMERGE="$ac_cv_path_MSGMERGE" -if test "$MSGMERGE" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then - MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt' - else - if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then - MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet' - else - MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet' - fi - fi - - - test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= - - - ac_config_commands="$ac_config_commands po-directories" - - - - if test "X$prefix" = "XNONE"; then - acl_final_prefix="$ac_default_prefix" - else - acl_final_prefix="$prefix" - fi - if test "X$exec_prefix" = "XNONE"; then - acl_final_exec_prefix='${prefix}' - else - acl_final_exec_prefix="$exec_prefix" - fi - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" - prefix="$acl_save_prefix" - - - -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which - # contains only /bin. Note that ksh looks also at the FPATH variable, - # so we have to set that as well for the test. - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - || PATH_SEPARATOR=';' - } -fi - -if test -n "$LD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld" >&5 -$as_echo_n "checking for ld... " >&6; } -elif test "$GCC" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 -$as_echo_n "checking for ld used by $CC... " >&6; } -elif test "$with_gnu_ld" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if test -n "$LD"; then - # Let the user override the test with a path. - : -else - if ${acl_cv_path_LD+:} false; then : - $as_echo_n "(cached) " >&6 -else - - acl_cv_path_LD= # Final result of this test - ac_prog=ld # Program to search in $PATH - if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - acl_output=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $acl_output in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` - while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do - acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` - done - # Got the pathname. No search in PATH is needed. - acl_cv_path_LD="$acl_output" - ac_prog= - ;; - "") - # If it fails, then pretend we aren't using GCC. - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac - fi - if test -n "$ac_prog"; then - # Search for $ac_prog in $PATH. - acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$acl_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$acl_cv_path_LD" -v 2>&1 conftest.$ac_ext -/* end confdefs.h. */ -#if defined __powerpc64__ || defined _ARCH_PPC64 - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # The compiler produces 64-bit code. Add option '-b64' so that the - # linker groks 64-bit object files. - case "$acl_cv_path_LD " in - *" -b64 "*) ;; - *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;; - esac - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - sparc64-*-netbsd*) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined __sparcv9 || defined __arch64__ - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - # The compiler produces 32-bit code. Add option '-m elf32_sparc' - # so that the linker groks 32-bit object files. - case "$acl_cv_path_LD " in - *" -m elf32_sparc "*) ;; - *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;; - esac - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - esac - -fi - - LD="$acl_cv_path_LD" -fi -if test -n "$LD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if ${acl_cv_prog_gnu_ld+:} false; then : - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 &5 -$as_echo "$acl_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$acl_cv_prog_gnu_ld - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 -$as_echo_n "checking for shared library run path origin... " >&6; } -if ${acl_cv_rpath+:} false; then : - $as_echo_n "(cached) " >&6 -else - - CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ - ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh - . ./conftest.sh - rm -f ./conftest.sh - acl_cv_rpath=done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 -$as_echo "$acl_cv_rpath" >&6; } - wl="$acl_cv_wl" - acl_libext="$acl_cv_libext" - acl_shlibext="$acl_cv_shlibext" - acl_libname_spec="$acl_cv_libname_spec" - acl_library_names_spec="$acl_cv_library_names_spec" - acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - acl_hardcode_direct="$acl_cv_hardcode_direct" - acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" - # Check whether --enable-rpath was given. -if test "${enable_rpath+set}" = set; then : - enableval=$enable_rpath; : -else - enable_rpath=yes -fi - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5 -$as_echo_n "checking 32-bit host C ABI... " >&6; } -if ${gl_cv_host_cpu_c_abi_32bit+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$gl_cv_host_cpu_c_abi"; then - case "$gl_cv_host_cpu_c_abi" in - i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc) - gl_cv_host_cpu_c_abi_32bit=yes ;; - x86_64 | alpha | arm64 | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 ) - gl_cv_host_cpu_c_abi_32bit=no ;; - *) - gl_cv_host_cpu_c_abi_32bit=unknown ;; - esac - else - case "$host_cpu" in - - # CPUs that only support a 32-bit ABI. - arc \ - | bfin \ - | cris* \ - | csky \ - | epiphany \ - | ft32 \ - | h8300 \ - | m68k \ - | microblaze | microblazeel \ - | nds32 | nds32le | nds32be \ - | nios2 | nios2eb | nios2el \ - | or1k* \ - | or32 \ - | sh | sh1234 | sh1234elb \ - | tic6x \ - | xtensa* ) - gl_cv_host_cpu_c_abi_32bit=yes - ;; - - # CPUs that only support a 64-bit ABI. - alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \ - | mmix ) - gl_cv_host_cpu_c_abi_32bit=no - ;; - - i[34567]86 ) - gl_cv_host_cpu_c_abi_32bit=yes - ;; - - x86_64 ) - # On x86_64 systems, the C compiler may be generating code in one of - # these ABIs: - # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. - # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 - # with native Windows (mingw, MSVC). - # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. - # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if (defined __x86_64__ || defined __amd64__ \ - || defined _M_X64 || defined _M_AMD64) \ - && !(defined __ILP32__ || defined _ILP32) - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi_32bit=no -else - gl_cv_host_cpu_c_abi_32bit=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - arm* | aarch64 ) - # Assume arm with EABI. - # On arm64 systems, the C compiler may be generating code in one of - # these ABIs: - # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. - # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. - # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32) - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi_32bit=no -else - gl_cv_host_cpu_c_abi_32bit=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) - # On hppa, the C compiler may be generating 32-bit code or 64-bit - # code. In the latter case, it defines _LP64 and __LP64__. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __LP64__ - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi_32bit=no -else - gl_cv_host_cpu_c_abi_32bit=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - ia64* ) - # On ia64 on HP-UX, the C compiler may be generating 64-bit code or - # 32-bit code. In the latter case, it defines _ILP32. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef _ILP32 - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi_32bit=yes -else - gl_cv_host_cpu_c_abi_32bit=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - mips* ) - # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this - # at 32. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi_32bit=no -else - gl_cv_host_cpu_c_abi_32bit=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - powerpc* ) - # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. - # No need to distinguish them here; the caller may distinguish - # them based on the OS. - # On powerpc64 systems, the C compiler may still be generating - # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may - # be generating 64-bit code. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined __powerpc64__ || defined _ARCH_PPC64 - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi_32bit=no -else - gl_cv_host_cpu_c_abi_32bit=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - rs6000 ) - gl_cv_host_cpu_c_abi_32bit=yes - ;; - - riscv32 | riscv64 ) - # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. - # Size of 'long' and 'void *': - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined __LP64__ - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi_32bit=no -else - gl_cv_host_cpu_c_abi_32bit=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - s390* ) - # On s390x, the C compiler may be generating 64-bit (= s390x) code - # or 31-bit (= s390) code. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined __LP64__ || defined __s390x__ - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi_32bit=no -else - gl_cv_host_cpu_c_abi_32bit=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - sparc | sparc64 ) - # UltraSPARCs running Linux have `uname -m` = "sparc64", but the - # C compiler still generates 32-bit code. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined __sparcv9 || defined __arch64__ - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi_32bit=no -else - gl_cv_host_cpu_c_abi_32bit=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - *) - gl_cv_host_cpu_c_abi_32bit=unknown - ;; - esac - fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5 -$as_echo "$gl_cv_host_cpu_c_abi_32bit" >&6; } - - HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit" - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ELF binary format" >&5 -$as_echo_n "checking for ELF binary format... " >&6; } -if ${gl_cv_elf+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __ELF__ - Extensible Linking Format - #endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Extensible Linking Format" >/dev/null 2>&1; then : - gl_cv_elf=yes -else - gl_cv_elf=no -fi -rm -f conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_elf" >&5 -$as_echo "$gl_cv_elf" >&6; } - if test $gl_cv_elf; then - # Extract the ELF class of a file (5th byte) in decimal. - # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header - if od -A x < /dev/null >/dev/null 2>/dev/null; then - # Use POSIX od. - func_elfclass () - { - od -A n -t d1 -j 4 -N 1 - } - else - # Use BSD hexdump. - func_elfclass () - { - dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' - echo - } - fi - case $HOST_CPU_C_ABI_32BIT in - yes) - # 32-bit ABI. - acl_is_expected_elfclass () - { - test "`func_elfclass | sed -e 's/[ ]//g'`" = 1 - } - ;; - no) - # 64-bit ABI. - acl_is_expected_elfclass () - { - test "`func_elfclass | sed -e 's/[ ]//g'`" = 2 - } - ;; - *) - # Unknown. - acl_is_expected_elfclass () - { - : - } - ;; - esac - else - acl_is_expected_elfclass () - { - : - } - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5 -$as_echo_n "checking for the common suffixes of directories in the library search path... " >&6; } -if ${acl_cv_libdirstems+:} false; then : - $as_echo_n "(cached) " >&6 -else - acl_libdirstem=lib - acl_libdirstem2= - acl_libdirstem3= - case "$host_os" in - solaris*) - if test $HOST_CPU_C_ABI_32BIT = no; then - acl_libdirstem2=lib/64 - case "$host_cpu" in - sparc*) acl_libdirstem3=lib/sparcv9 ;; - i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; - esac - fi - ;; - *) - searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ - | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test $HOST_CPU_C_ABI_32BIT != no; then - # 32-bit or unknown ABI. - if test -d /usr/lib32; then - acl_libdirstem2=lib32 - fi - fi - if test $HOST_CPU_C_ABI_32BIT != yes; then - # 64-bit or unknown ABI. - if test -d /usr/lib64; then - acl_libdirstem3=lib64 - fi - fi - if test -n "$searchpath"; then - acl_save_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; - */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; - */../ | */.. ) - # Better ignore directories of this form. They are misleading. - ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib32 ) acl_libdirstem2=lib32 ;; - */lib64 ) acl_libdirstem3=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_save_IFS" - if test $HOST_CPU_C_ABI_32BIT = yes; then - # 32-bit ABI. - acl_libdirstem3= - fi - if test $HOST_CPU_C_ABI_32BIT = no; then - # 64-bit ABI. - acl_libdirstem2= - fi - fi - ;; - esac - test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" - test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" - acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_libdirstems" >&5 -$as_echo "$acl_cv_libdirstems" >&6; } - acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` - acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` - acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` - - - - - - - - - - - - use_additional=yes - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" - eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - -# Check whether --with-libiconv-prefix was given. -if test "${with_libiconv_prefix+set}" = set; then : - withval=$with_libiconv_prefix; - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" - eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - additional_libdir2="$withval/$acl_libdirstem2" - additional_libdir3="$withval/$acl_libdirstem3" - fi - fi - -fi - - if test "X$additional_libdir2" = "X$additional_libdir"; then - additional_libdir2= - fi - if test "X$additional_libdir3" = "X$additional_libdir"; then - additional_libdir3= - fi - LIBICONV= - LTLIBICONV= - INCICONV= - LIBICONV_PREFIX= - HAVE_LIBICONV= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='iconv ' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" - else - : - fi - else - found_dir= - found_la= - found_so= - found_a= - eval libname=\"$acl_libname_spec\" # typically: libname=lib$name - if test -n "$acl_shlibext"; then - shrext=".$acl_shlibext" # typically: shrext=.so - else - shrext= - fi - if test $use_additional = yes; then - for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do - if test "X$found_dir" = "X"; then - eval dir=\$$additional_libdir_variable - if test -n "$dir"; then - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - fi - fi - done - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - if test "$enable_rpath" = no \ - || test "X$found_dir" = "X/usr/$acl_libdirstem" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - if test "$acl_hardcode_direct" = yes; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - haveit= - for x in $LDFLAGS $LIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" - fi - if test "$acl_hardcode_minus_L" != no; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" - fi - fi - additional_includedir= - case "$found_dir" in - */$acl_libdirstem | */$acl_libdirstem/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` - if test "$name" = 'iconv'; then - LIBICONV_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - */$acl_libdirstem2 | */$acl_libdirstem2/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` - if test "$name" = 'iconv'; then - LIBICONV_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - */$acl_libdirstem3 | */$acl_libdirstem3/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` - if test "$name" = 'iconv'; then - LIBICONV_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INCICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - if test -n "$found_la"; then - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - for dep in $dependency_libs; do - case "$dep" in - -L*) - dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ - && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ - && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then - haveit= - if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ - || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ - || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$dependency_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$dependency_libdir"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$dependency_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$dependency_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$dependency_libdir"; then - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$dependency_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $dir" - fi - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $dir" - fi - fi - ;; - -l*) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" - ;; - esac - done - fi - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$acl_hardcode_libdir_separator"; then - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" - else - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - for found_dir in $ltrpathdirs; do - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" - done - fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 -$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } -if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : - $as_echo_n "(cached) " >&6 -else - gt_save_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -CFPreferencesCopyAppValue(NULL, NULL) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_CFPreferencesCopyAppValue=yes -else - gt_cv_func_CFPreferencesCopyAppValue=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$gt_save_LIBS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 -$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } - if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then - -$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyPreferredLanguages" >&5 -$as_echo_n "checking for CFLocaleCopyPreferredLanguages... " >&6; } -if ${gt_cv_func_CFLocaleCopyPreferredLanguages+:} false; then : - $as_echo_n "(cached) " >&6 -else - gt_save_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -CFLocaleCopyPreferredLanguages(); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_CFLocaleCopyPreferredLanguages=yes -else - gt_cv_func_CFLocaleCopyPreferredLanguages=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$gt_save_LIBS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyPreferredLanguages" >&5 -$as_echo "$gt_cv_func_CFLocaleCopyPreferredLanguages" >&6; } - if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then - -$as_echo "#define HAVE_CFLOCALECOPYPREFERREDLANGUAGES 1" >>confdefs.h - - fi - INTL_MACOSX_LIBS= - if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ - || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then - INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" - fi - - - - - - - LIBINTL= - LTLIBINTL= - POSUB= - - case " $gt_needs " in - *" need-formatstring-macros "*) gt_api_version=3 ;; - *" need-ngettext "*) gt_api_version=2 ;; - *) gt_api_version=1 ;; - esac - gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" - gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" - - if test "$USE_NLS" = "yes"; then - gt_use_preinstalled_gnugettext=no - - - if test $gt_api_version -ge 3; then - gt_revision_test_code=' -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) -#endif -typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; -' - else - gt_revision_test_code= - fi - if test $gt_api_version -ge 2; then - gt_expression_test_code=' + * ngettext ("", "", 0)' - else - gt_expression_test_code= - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 -$as_echo_n "checking for GNU gettext in libc... " >&6; } -if eval \${$gt_func_gnugettext_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; -#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) -#else -#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 -#endif -$gt_revision_test_code - -int -main () -{ - -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$gt_func_gnugettext_libc=yes" -else - eval "$gt_func_gnugettext_libc=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$gt_func_gnugettext_libc - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - - if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then - - - - - - am_save_CPPFLAGS="$CPPFLAGS" - - for element in $INCICONV; do - haveit= - for x in $CPPFLAGS; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" - fi - done - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 -$as_echo_n "checking for iconv... " >&6; } -if ${am_cv_func_iconv+:} false; then : - $as_echo_n "(cached) " >&6 -else - - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_func_iconv=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_lib_iconv=yes - am_cv_func_iconv=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$am_save_LIBS" - fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 -$as_echo "$am_cv_func_iconv" >&6; } - if test "$am_cv_func_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 -$as_echo_n "checking for working iconv... " >&6; } -if ${am_cv_func_iconv_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - - am_save_LIBS="$LIBS" - if test $am_cv_lib_iconv = yes; then - LIBS="$LIBS $LIBICONV" - fi - am_cv_func_iconv_works=no - for ac_iconv_const in '' 'const'; do - if test "$cross_compiling" = yes; then : - case "$host_os" in - aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; - *) am_cv_func_iconv_works="guessing yes" ;; - esac -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -#ifndef ICONV_CONST -# define ICONV_CONST $ac_iconv_const -#endif - -int -main () -{ -int result = 0; - /* Test against AIX 5.1 bug: Failures are not distinguishable from successful - returns. */ - { - iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); - if (cd_utf8_to_88591 != (iconv_t)(-1)) - { - static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ - char buf[10]; - ICONV_CONST char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_utf8_to_88591, - &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - result |= 1; - iconv_close (cd_utf8_to_88591); - } - } - /* Test against Solaris 10 bug: Failures are not distinguishable from - successful returns. */ - { - iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); - if (cd_ascii_to_88591 != (iconv_t)(-1)) - { - static ICONV_CONST char input[] = "\263"; - char buf[10]; - ICONV_CONST char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_ascii_to_88591, - &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - result |= 2; - iconv_close (cd_ascii_to_88591); - } - } - /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ - { - iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); - if (cd_88591_to_utf8 != (iconv_t)(-1)) - { - static ICONV_CONST char input[] = "\304"; - static char buf[2] = { (char)0xDE, (char)0xAD }; - ICONV_CONST char *inptr = input; - size_t inbytesleft = 1; - char *outptr = buf; - size_t outbytesleft = 1; - size_t res = iconv (cd_88591_to_utf8, - &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) - result |= 4; - iconv_close (cd_88591_to_utf8); - } - } -#if 0 /* This bug could be worked around by the caller. */ - /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ - { - iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); - if (cd_88591_to_utf8 != (iconv_t)(-1)) - { - static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; - char buf[50]; - ICONV_CONST char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_88591_to_utf8, - &inptr, &inbytesleft, - &outptr, &outbytesleft); - if ((int)res > 0) - result |= 8; - iconv_close (cd_88591_to_utf8); - } - } -#endif - /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is - provided. */ - { - /* Try standardized names. */ - iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); - /* Try IRIX, OSF/1 names. */ - iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); - /* Try AIX names. */ - iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); - /* Try HP-UX names. */ - iconv_t cd4 = iconv_open ("utf8", "eucJP"); - if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) - && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) - result |= 16; - if (cd1 != (iconv_t)(-1)) - iconv_close (cd1); - if (cd2 != (iconv_t)(-1)) - iconv_close (cd2); - if (cd3 != (iconv_t)(-1)) - iconv_close (cd3); - if (cd4 != (iconv_t)(-1)) - iconv_close (cd4); - } - return result; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - am_cv_func_iconv_works=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - test "$am_cv_func_iconv_works" = no || break - done - LIBS="$am_save_LIBS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 -$as_echo "$am_cv_func_iconv_works" >&6; } - case "$am_cv_func_iconv_works" in - *no) am_func_iconv=no am_cv_lib_iconv=no ;; - *) am_func_iconv=yes ;; - esac - else - am_func_iconv=no am_cv_lib_iconv=no - fi - if test "$am_func_iconv" = yes; then - -$as_echo "#define HAVE_ICONV 1" >>confdefs.h - - fi - if test "$am_cv_lib_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 -$as_echo_n "checking how to link with libiconv... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 -$as_echo "$LIBICONV" >&6; } - else - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - - - - - - - - - - - use_additional=yes - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" - eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - -# Check whether --with-libintl-prefix was given. -if test "${with_libintl_prefix+set}" = set; then : - withval=$with_libintl_prefix; - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" - eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - additional_libdir2="$withval/$acl_libdirstem2" - additional_libdir3="$withval/$acl_libdirstem3" - fi - fi - -fi - - if test "X$additional_libdir2" = "X$additional_libdir"; then - additional_libdir2= - fi - if test "X$additional_libdir3" = "X$additional_libdir"; then - additional_libdir3= - fi - LIBINTL= - LTLIBINTL= - INCINTL= - LIBINTL_PREFIX= - HAVE_LIBINTL= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='intl ' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" - else - : - fi - else - found_dir= - found_la= - found_so= - found_a= - eval libname=\"$acl_libname_spec\" # typically: libname=lib$name - if test -n "$acl_shlibext"; then - shrext=".$acl_shlibext" # typically: shrext=.so - else - shrext= - fi - if test $use_additional = yes; then - for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do - if test "X$found_dir" = "X"; then - eval dir=\$$additional_libdir_variable - if test -n "$dir"; then - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - fi - fi - done - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - if test "$enable_rpath" = no \ - || test "X$found_dir" = "X/usr/$acl_libdirstem" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - else - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - if test "$acl_hardcode_direct" = yes; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - else - if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - haveit= - for x in $LDFLAGS $LIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" - fi - if test "$acl_hardcode_minus_L" != no; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - else - LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" - else - LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" - fi - fi - additional_includedir= - case "$found_dir" in - */$acl_libdirstem | */$acl_libdirstem/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` - if test "$name" = 'intl'; then - LIBINTL_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - */$acl_libdirstem2 | */$acl_libdirstem2/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` - if test "$name" = 'intl'; then - LIBINTL_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - */$acl_libdirstem3 | */$acl_libdirstem3/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` - if test "$name" = 'intl'; then - LIBINTL_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INCINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - if test -n "$found_la"; then - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - for dep in $dependency_libs; do - case "$dep" in - -L*) - dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ - && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ - && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then - haveit= - if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ - || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ - || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$dependency_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$dependency_libdir"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }-L$dependency_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$dependency_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$dependency_libdir"; then - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$dependency_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $dir" - fi - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $dir" - fi - fi - ;; - -l*) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" - ;; - esac - done - fi - else - LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$acl_hardcode_libdir_separator"; then - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" - else - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - for found_dir in $ltrpathdirs; do - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" - done - fi - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 -$as_echo_n "checking for GNU gettext in libintl... " >&6; } -if eval \${$gt_func_gnugettext_libintl+:} false; then : - $as_echo_n "(cached) " >&6 -else - gt_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $INCINTL" - gt_save_LIBS="$LIBS" - LIBS="$LIBS $LIBINTL" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (const char *); -#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) -#else -#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 -#endif -$gt_revision_test_code - -int -main () -{ - -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$gt_func_gnugettext_libintl=yes" -else - eval "$gt_func_gnugettext_libintl=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then - LIBS="$LIBS $LIBICONV" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (const char *); -#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) -#else -#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 -#endif -$gt_revision_test_code - -int -main () -{ - -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - LIBINTL="$LIBINTL $LIBICONV" - LTLIBINTL="$LTLIBINTL $LTLIBICONV" - eval "$gt_func_gnugettext_libintl=yes" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - CPPFLAGS="$gt_save_CPPFLAGS" - LIBS="$gt_save_LIBS" -fi -eval ac_res=\$$gt_func_gnugettext_libintl - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - fi - - if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ - || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ - && test "$PACKAGE" != gettext-runtime \ - && test "$PACKAGE" != gettext-tools; }; then - gt_use_preinstalled_gnugettext=yes - else - LIBINTL= - LTLIBINTL= - INCINTL= - fi - - - - if test -n "$INTL_MACOSX_LIBS"; then - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" - LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" - fi - fi - - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - -$as_echo "#define ENABLE_NLS 1" >>confdefs.h - - else - USE_NLS=no - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 -$as_echo_n "checking whether to use NLS... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$USE_NLS" >&6; } - if test "$USE_NLS" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 -$as_echo_n "checking where the gettext function comes from... " >&6; } - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then - gt_source="external libintl" - else - gt_source="libc" - fi - else - gt_source="included intl directory" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 -$as_echo "$gt_source" >&6; } - fi - - if test "$USE_NLS" = "yes"; then - - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 -$as_echo_n "checking how to link with libintl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 -$as_echo "$LIBINTL" >&6; } - - for element in $INCINTL; do - haveit= - for x in $CPPFLAGS; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" - fi - done - - fi - - -$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h - - -$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h - - fi - - POSUB=po - fi - - - - INTLLIBS="$LIBINTL" - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU make" >&5 -$as_echo_n "checking for GNU make... " >&6; } -if ${_cv_gnu_make_command+:} false; then : - $as_echo_n "(cached) " >&6 -else - _cv_gnu_make_command='' ; - if test -n "$FORCE_NATIVE_MAKE" ; then - MAKES="make" - else - MAKES="make gmake gnumake" - fi - for a in "$MAKE" $MAKES ; do - if test -z "$a" ; then continue ; fi ; - if ( sh -c "$a --version" 2> /dev/null | grep GNU 2>&1 > /dev/null ) ; then - _cv_gnu_make_command=$a ; - break; - fi - done ; - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_cv_gnu_make_command" >&5 -$as_echo "$_cv_gnu_make_command" >&6; } ; - if test "x$_cv_gnu_make_command" != "x" ; then - ifGNUmake='' ; - ifNotGNUmake='#' ; - else - ifGNUmake='#' ; - ifNotGNUmake='' ; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"Not found\"" >&5 -$as_echo "\"Not found\"" >&6; }; - fi - - - -# Extract the first word of "ln", so it can be a program name with args. -set dummy ln; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_LN+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $LN in - [\\/]* | ?:[\\/]*) - ac_cv_path_LN="$LN" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_LN="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_LN" && ac_cv_path_LN="ln" - ;; -esac -fi -LN=$ac_cv_path_LN -if test -n "$LN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LN" >&5 -$as_echo "$LN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - -mkdir_p=$MKDIR_P - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - -# Extract the first word of "mv", so it can be a program name with args. -set dummy mv; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MV+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MV in - [\\/]* | ?:[\\/]*) - ac_cv_path_MV="$MV" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_MV" && ac_cv_path_MV="mv" - ;; -esac -fi -MV=$ac_cv_path_MV -if test -n "$MV"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MV" >&5 -$as_echo "$MV" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "cp", so it can be a program name with args. -set dummy cp; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_CP+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $CP in - [\\/]* | ?:[\\/]*) - ac_cv_path_CP="$CP" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_CP" && ac_cv_path_CP="cp" - ;; -esac -fi -CP=$ac_cv_path_CP -if test -n "$CP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 -$as_echo "$CP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "rm", so it can be a program name with args. -set dummy rm; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_RM+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $RM in - [\\/]* | ?:[\\/]*) - ac_cv_path_RM="$RM" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_RM" && ac_cv_path_RM="rm" - ;; -esac -fi -RM=$ac_cv_path_RM -if test -n "$RM"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM" >&5 -$as_echo "$RM" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "chmod", so it can be a program name with args. -set dummy chmod; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_CHMOD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $CHMOD in - [\\/]* | ?:[\\/]*) - ac_cv_path_CHMOD="$CHMOD" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_CHMOD="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_CHMOD" && ac_cv_path_CHMOD=":" - ;; -esac -fi -CHMOD=$ac_cv_path_CHMOD -if test -n "$CHMOD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHMOD" >&5 -$as_echo "$CHMOD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -# Extract the first word of "sed", so it can be a program name with args. -set dummy sed; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_SED+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $SED in - [\\/]* | ?:[\\/]*) - ac_cv_path_SED="$SED" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_SED" && ac_cv_path_SED="sed" - ;; -esac -fi -SED=$ac_cv_path_SED -if test -n "$SED"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 -$as_echo "$SED" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "perl", so it can be a program name with args. -set dummy perl; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PERL+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PERL in - [\\/]* | ?:[\\/]*) - ac_cv_path_PERL="$PERL" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="perl" - ;; -esac -fi -PERL=$ac_cv_path_PERL -if test -n "$PERL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 -$as_echo "$PERL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "ldconfig", so it can be a program name with args. -set dummy ldconfig; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_LDCONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $LDCONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_LDCONFIG="$LDCONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_LDCONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_LDCONFIG" && ac_cv_path_LDCONFIG=":" - ;; -esac -fi -LDCONFIG=$ac_cv_path_LDCONFIG -if test -n "$LDCONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDCONFIG" >&5 -$as_echo "$LDCONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AR="ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_AR" = x; then - AR="ar" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_ct_AR - fi -else - AR="$ac_cv_prog_AR" -fi - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -# Extract the first word of "makeinfo", so it can be a program name with args. -set dummy makeinfo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MAKEINFO+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$MAKEINFO"; then - ac_cv_prog_MAKEINFO="$MAKEINFO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_MAKEINFO="makeinfo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -MAKEINFO=$ac_cv_prog_MAKEINFO -if test -n "$MAKEINFO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAKEINFO" >&5 -$as_echo "$MAKEINFO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test "_$MAKEINFO" = "_"; then - MAKEINFO="echo Makeinfo is missing. Info documentation will not be built." -else - case "$MAKEINFO" in - */missing.*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: -*** Makeinfo is missing. Info documentation will not be built." >&5 -$as_echo "$as_me: WARNING: -*** Makeinfo is missing. Info documentation will not be built." >&2;} - ;; - *) - ;; - esac -fi - - -# See if we need a separate native compiler. -if test $cross_compiling = no; then - BUILD_CC="$CC" - -else - for ac_prog in gcc cc -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_BUILD_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$BUILD_CC"; then - ac_cv_prog_BUILD_CC="$BUILD_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_BUILD_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -BUILD_CC=$ac_cv_prog_BUILD_CC -if test -n "$BUILD_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BUILD_CC" >&5 -$as_echo "$BUILD_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$BUILD_CC" && break -done - -fi -for ac_header in dirent.h errno.h execinfo.h getopt.h malloc.h mntent.h paths.h pthread.h semaphore.h setjmp.h signal.h stdarg.h stdint.h stdlib.h termios.h termio.h unistd.h utime.h attr/xattr.h linux/falloc.h linux/fd.h linux/fsmap.h linux/major.h linux/loop.h linux/types.h net/if_dl.h netinet/in.h sys/acl.h sys/disklabel.h sys/disk.h sys/file.h sys/ioctl.h sys/key.h sys/mkdev.h sys/mman.h sys/mount.h sys/prctl.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 sys/xattr.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a dd(1) program that supports iflag=fullblock" >&5 -$as_echo_n "checking for a dd(1) program that supports iflag=fullblock... " >&6; } -DD= -for i in dd gdd ; do - if "$i" if=/dev/null of=/dev/null count=1 bs=10k 2>/dev/null iflag=fullblock oflag=append ; then - DD=$i - break - fi -done -if test -n "$DD" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DD" >&5 -$as_echo "$DD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found, using dd" >&5 -$as_echo "not found, using dd" >&6; } - DD=dd - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No GNU-compatible dd(1) program found, expect some self-test failures." >&5 -$as_echo "$as_me: WARNING: No GNU-compatible dd(1) program found, expect some self-test failures." >&2;} -fi - - -for ac_header in net/if.h -do : - ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" " -#if HAVE_SYS_TYPES_H -#include -#endif -#if HAVE_SYS_SOCKET -#include -#endif - -" -if test "x$ac_cv_header_net_if_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_NET_IF_H 1 -_ACEOF - -fi - -done - -for ac_func in vprintf -do : - ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" -if test "x$ac_cv_func_vprintf" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_VPRINTF 1 -_ACEOF - -ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" -if test "x$ac_cv_func__doprnt" = xyes; then : - -$as_echo "#define HAVE_DOPRNT 1" >>confdefs.h - -fi - -fi -done - - -ac_fn_c_check_member "$LINENO" "struct dirent" "d_reclen" "ac_cv_member_struct_dirent_d_reclen" "#include -" -if test "x$ac_cv_member_struct_dirent_d_reclen" = xyes; then : - -$as_echo "#define HAVE_RECLEN_DIRENT 1" >>confdefs.h - -fi - -ac_fn_c_check_member "$LINENO" "struct stat" "st_atim" "ac_cv_member_struct_stat_st_atim" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_atim" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_ATIM 1 -_ACEOF - - -fi - -ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "#include -" -if test "x$ac_cv_type_ssize_t" = xyes; then : - -$as_echo "#define HAVE_TYPE_SSIZE_T 1" >>confdefs.h - -fi - -ac_fn_c_check_decl "$LINENO" "llseek" "ac_cv_have_decl_llseek" "#include -" -if test "x$ac_cv_have_decl_llseek" = xyes; then : - -$as_echo "#define HAVE_LLSEEK_PROTOTYPE 1" >>confdefs.h - -fi - -ac_fn_c_check_decl "$LINENO" "lseek64" "ac_cv_have_decl_lseek64" "#define _LARGEFILE_SOURCE - #define _LARGEFILE64_SOURCE - #include -" -if test "x$ac_cv_have_decl_lseek64" = xyes; then : - -$as_echo "#define HAVE_LSEEK64_PROTOTYPE 1" >>confdefs.h - -fi - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 -$as_echo_n "checking size of short... " >&6; } -if ${ac_cv_sizeof_short+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_short" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (short) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_short=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 -$as_echo "$ac_cv_sizeof_short" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_SHORT $ac_cv_sizeof_short -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 -$as_echo_n "checking size of int... " >&6; } -if ${ac_cv_sizeof_int+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_int" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 -$as_echo "$ac_cv_sizeof_int" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT $ac_cv_sizeof_int -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if ${ac_cv_sizeof_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 -$as_echo_n "checking size of long long... " >&6; } -if ${ac_cv_sizeof_long_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 -$as_echo "$ac_cv_sizeof_long_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5 -$as_echo_n "checking size of off_t... " >&6; } -if ${ac_cv_sizeof_off_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_off_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (off_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_off_t=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5 -$as_echo "$ac_cv_sizeof_off_t" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_OFF_T $ac_cv_sizeof_off_t -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5 -$as_echo_n "checking size of time_t... " >&6; } -if ${ac_cv_sizeof_time_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_time_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (time_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_time_t=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5 -$as_echo "$ac_cv_sizeof_time_t" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_TIME_T $ac_cv_sizeof_time_t -_ACEOF - - -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 -SIZEOF_TIME_T=$ac_cv_sizeof_time_t - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; - -int -main () -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no -else - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) - -$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac - -if test $cross_compiling = no; then - BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh -else - CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh -fi -ASM_TYPES_HEADER=./asm_types.h - -echo "/* These defines are needed for the public ext2fs.h header file */" \ - > public_config.h -if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then - uniq tmp_config.$$ >> public_config.h -else - echo "#undef HAVE_SYS_TYPES_H" >> public_config.h -fi -if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then - uniq tmp_config.$$ >> public_config.h -else - echo "#undef WORDS_BIGENDIAN" >> public_config.h -fi -rm -f tmp_config.$$ -PUBLIC_CONFIG_HEADER=./public_config.h - -for ac_header in inttypes.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default" -if test "x$ac_cv_header_inttypes_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_INTTYPES_H 1 -_ACEOF - -fi - -done - -ac_fn_c_check_type "$LINENO" "intptr_t" "ac_cv_type_intptr_t" "$ac_includes_default" -if test "x$ac_cv_type_intptr_t" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_INTPTR_T 1 -_ACEOF - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct stat has a st_flags field" >&5 -$as_echo_n "checking whether struct stat has a st_flags field... " >&6; } -if ${e2fsprogs_cv_struct_st_flags+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -struct stat stat; stat.st_flags = 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - e2fsprogs_cv_struct_st_flags=yes -else - e2fsprogs_cv_struct_st_flags=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $e2fsprogs_cv_struct_st_flags" >&5 -$as_echo "$e2fsprogs_cv_struct_st_flags" >&6; } -if test "$e2fsprogs_cv_struct_st_flags" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether st_flags field is useful" >&5 -$as_echo_n "checking whether st_flags field is useful... " >&6; } - if ${e2fsprogs_cv_struct_st_flags_immut+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -struct stat stat; stat.st_flags |= UF_IMMUTABLE; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - e2fsprogs_cv_struct_st_flags_immut=yes -else - e2fsprogs_cv_struct_st_flags_immut=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $e2fsprogs_cv_struct_st_flags_immut" >&5 -$as_echo "$e2fsprogs_cv_struct_st_flags_immut" >&6; } - if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then - -$as_echo "#define HAVE_STAT_FLAGS 1" >>confdefs.h - - fi -fi -ac_fn_c_check_member "$LINENO" "struct sockaddr" "sa_len" "ac_cv_member_struct_sockaddr_sa_len" "#include - #include -" -if test "x$ac_cv_member_struct_sockaddr_sa_len" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_SA_LEN 1 -_ACEOF - -fi - -if test -n "$BLKID_CMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for blkid_probe_get_topology in -lblkid" >&5 -$as_echo_n "checking for blkid_probe_get_topology in -lblkid... " >&6; } -if ${ac_cv_lib_blkid_blkid_probe_get_topology+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lblkid $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char blkid_probe_get_topology (); -int -main () -{ -return blkid_probe_get_topology (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_blkid_blkid_probe_get_topology=yes -else - ac_cv_lib_blkid_blkid_probe_get_topology=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blkid_blkid_probe_get_topology" >&5 -$as_echo "$ac_cv_lib_blkid_blkid_probe_get_topology" >&6; } -if test "x$ac_cv_lib_blkid_blkid_probe_get_topology" = xyes; then : - -$as_echo "#define HAVE_BLKID_PROBE_GET_TOPOLOGY 1" >>confdefs.h - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for blkid_topology_get_dax in -lblkid" >&5 -$as_echo_n "checking for blkid_topology_get_dax in -lblkid... " >&6; } -if ${ac_cv_lib_blkid_blkid_topology_get_dax+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lblkid $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char blkid_topology_get_dax (); -int -main () -{ -return blkid_topology_get_dax (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_blkid_blkid_topology_get_dax=yes -else - ac_cv_lib_blkid_blkid_topology_get_dax=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blkid_blkid_topology_get_dax" >&5 -$as_echo "$ac_cv_lib_blkid_blkid_topology_get_dax" >&6; } -if test "x$ac_cv_lib_blkid_blkid_topology_get_dax" = xyes; then : - -$as_echo "#define HAVE_BLKID_TOPOLOGY_GET_DAX 1" >>confdefs.h - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for blkid_probe_enable_partitions in -lblkid" >&5 -$as_echo_n "checking for blkid_probe_enable_partitions in -lblkid... " >&6; } -if ${ac_cv_lib_blkid_blkid_probe_enable_partitions+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lblkid $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char blkid_probe_enable_partitions (); -int -main () -{ -return blkid_probe_enable_partitions (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_blkid_blkid_probe_enable_partitions=yes -else - ac_cv_lib_blkid_blkid_probe_enable_partitions=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blkid_blkid_probe_enable_partitions" >&5 -$as_echo "$ac_cv_lib_blkid_blkid_probe_enable_partitions" >&6; } -if test "x$ac_cv_lib_blkid_blkid_probe_enable_partitions" = xyes; then : - -$as_echo "#define HAVE_BLKID_PROBE_ENABLE_PARTITIONS 1" >>confdefs.h - -fi - -fi -if test -n "$DLOPEN_LIB" ; then - ac_cv_func_dlopen=yes -fi -for ac_func in __secure_getenv add_key backtrace chflags dlopen fadvise64 fallocate fallocate64 fchown fcntl fdatasync fstat64 fsync ftruncate64 futimes getcwd getdtablesize gethostname getmntinfo getpwuid_r getrlimit getrusage jrand48 keyctl llistxattr llseek lseek64 mallinfo mbstowcs memalign mempcpy mmap msync nanosleep open64 pathconf posix_fadvise posix_fadvise64 posix_memalign prctl pread pwrite pread64 pwrite64 secure_getenv setmntent setresgid setresuid snprintf srandom stpcpy strcasecmp strdup strnlen strptime strtoull sync_file_range sysconf usleep utime utimes valloc -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -SOCKET_LIB='' -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5 -$as_echo_n "checking for socket in -lsocket... " >&6; } -if ${ac_cv_lib_socket_socket+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char socket (); -int -main () -{ -return socket (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_socket_socket=yes -else - ac_cv_lib_socket_socket=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5 -$as_echo "$ac_cv_lib_socket_socket" >&6; } -if test "x$ac_cv_lib_socket_socket" = xyes; then : - SOCKET_LIB=-lsocket -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for magic_file in -lmagic" >&5 -$as_echo_n "checking for magic_file in -lmagic... " >&6; } -if ${ac_cv_lib_magic_magic_file+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmagic $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char magic_file (); -int -main () -{ -return magic_file (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_magic_magic_file=yes -else - ac_cv_lib_magic_magic_file=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_magic_magic_file" >&5 -$as_echo "$ac_cv_lib_magic_magic_file" >&6; } -if test "x$ac_cv_lib_magic_magic_file" = xyes; then : - MAGIC_LIB=-lmagic -for ac_header in magic.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "magic.h" "ac_cv_header_magic_h" "$ac_includes_default" -if test "x$ac_cv_header_magic_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MAGIC_H 1 -_ACEOF - -fi - -done - -fi - -if test "$ac_cv_func_dlopen" = yes ; then - MAGIC_LIB=$DLOPEN_LIB -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5 -$as_echo_n "checking for clock_gettime in -lrt... " >&6; } -if ${ac_cv_lib_rt_clock_gettime+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lrt $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char clock_gettime (); -int -main () -{ -return clock_gettime (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_rt_clock_gettime=yes -else - ac_cv_lib_rt_clock_gettime=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5 -$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; } -if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then : - CLOCK_GETTIME_LIB=-lrt -fi - - -FUSE_CMT= -FUSE_LIB= -# Check whether --enable-fuse2fs was given. -if test "${enable_fuse2fs+set}" = set; then : - enableval=$enable_fuse2fs; if test "$enableval" = "no" -then - FUSE_CMT="#" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling fuse2fs" >&5 -$as_echo "Disabling fuse2fs" >&6; } -else - for ac_header in pthread.h fuse.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#define _FILE_OFFSET_BITS 64 -#define FUSE_USE_VERSION 29 -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "Cannot find fuse2fs headers. -See \`config.log' for more details" "$LINENO" 5; } -fi - -done - - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define FUSE_USE_VERSION 29 -#ifdef __linux__ -#include -#include -#include -#endif - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "Cannot find fuse2fs Linux headers. -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fuse_main in -losxfuse" >&5 -$as_echo_n "checking for fuse_main in -losxfuse... " >&6; } -if ${ac_cv_lib_osxfuse_fuse_main+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-losxfuse $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char fuse_main (); -int -main () -{ -return fuse_main (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_osxfuse_fuse_main=yes -else - ac_cv_lib_osxfuse_fuse_main=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_osxfuse_fuse_main" >&5 -$as_echo "$ac_cv_lib_osxfuse_fuse_main" >&6; } -if test "x$ac_cv_lib_osxfuse_fuse_main" = xyes; then : - FUSE_LIB=-losxfuse -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fuse_main in -lfuse" >&5 -$as_echo_n "checking for fuse_main in -lfuse... " >&6; } -if ${ac_cv_lib_fuse_fuse_main+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lfuse $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char fuse_main (); -int -main () -{ -return fuse_main (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_fuse_fuse_main=yes -else - ac_cv_lib_fuse_fuse_main=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fuse_fuse_main" >&5 -$as_echo "$ac_cv_lib_fuse_fuse_main" >&6; } -if test "x$ac_cv_lib_fuse_fuse_main" = xyes; then : - FUSE_LIB=-lfuse -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "Cannot find fuse library. -See \`config.log' for more details" "$LINENO" 5; } -fi - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling fuse2fs" >&5 -$as_echo "Enabling fuse2fs" >&6; } -fi - -else - for ac_header in pthread.h fuse.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#define _FILE_OFFSET_BITS 64 -#define FUSE_USE_VERSION 29 -#ifdef __linux__ -# include -# include -# include -#endif -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -else - FUSE_CMT="#" -fi - -done - -if test -z "$FUSE_CMT" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fuse_main in -losxfuse" >&5 -$as_echo_n "checking for fuse_main in -losxfuse... " >&6; } -if ${ac_cv_lib_osxfuse_fuse_main+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-losxfuse $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char fuse_main (); -int -main () -{ -return fuse_main (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_osxfuse_fuse_main=yes -else - ac_cv_lib_osxfuse_fuse_main=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_osxfuse_fuse_main" >&5 -$as_echo "$ac_cv_lib_osxfuse_fuse_main" >&6; } -if test "x$ac_cv_lib_osxfuse_fuse_main" = xyes; then : - FUSE_LIB=-losxfuse -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fuse_main in -lfuse" >&5 -$as_echo_n "checking for fuse_main in -lfuse... " >&6; } -if ${ac_cv_lib_fuse_fuse_main+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lfuse $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char fuse_main (); -int -main () -{ -return fuse_main (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_fuse_fuse_main=yes -else - ac_cv_lib_fuse_fuse_main=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fuse_fuse_main" >&5 -$as_echo "$ac_cv_lib_fuse_fuse_main" >&6; } -if test "x$ac_cv_lib_fuse_fuse_main" = xyes; then : - FUSE_LIB=-lfuse -else - FUSE_CMT="#" -fi - -fi - -fi -if test -z "$FUSE_CMT" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling fuse2fs by default." >&5 -$as_echo "Enabling fuse2fs by default." >&6; } -fi - -fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for optreset" >&5 -$as_echo_n "checking for optreset... " >&6; } -if ${ac_cv_have_optreset+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "optreset" >/dev/null 2>&1; then : - ac_cv_have_optreset=yes -else - ac_cv_have_optreset=no -fi -rm -f conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_optreset" >&5 -$as_echo "$ac_cv_have_optreset" >&6; } -if test $ac_cv_have_optreset = yes; then - -$as_echo "#define HAVE_OPTRESET 1" >>confdefs.h - -fi - -SEM_INIT_LIB='' -echo GL_THREADS_API: ${gl_threads_api} -if test "${gl_threads_api}" != none -then - ac_fn_c_check_func "$LINENO" "sem_init" "ac_cv_func_sem_init" -if test "x$ac_cv_func_sem_init" = xyes; then : - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sem_init in -lpthread" >&5 -$as_echo_n "checking for sem_init in -lpthread... " >&6; } -if ${ac_cv_lib_pthread_sem_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sem_init (); -int -main () -{ -return sem_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pthread_sem_init=yes -else - ac_cv_lib_pthread_sem_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_sem_init" >&5 -$as_echo "$ac_cv_lib_pthread_sem_init" >&6; } -if test "x$ac_cv_lib_pthread_sem_init" = xyes; then : - $as_echo "#define HAVE_SEM_INIT 1" >>confdefs.h - - SEM_INIT_LIB=-lpthread -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sem_init in -lrt" >&5 -$as_echo_n "checking for sem_init in -lrt... " >&6; } -if ${ac_cv_lib_rt_sem_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lrt $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sem_init (); -int -main () -{ -return sem_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_rt_sem_init=yes -else - ac_cv_lib_rt_sem_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sem_init" >&5 -$as_echo "$ac_cv_lib_rt_sem_init" >&6; } -if test "x$ac_cv_lib_rt_sem_init" = xyes; then : - $as_echo "#define HAVE_SEM_INIT 1" >>confdefs.h - - SEM_INIT_LIB=-lrt -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sem_init in -lposix4" >&5 -$as_echo_n "checking for sem_init in -lposix4... " >&6; } -if ${ac_cv_lib_posix4_sem_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lposix4 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sem_init (); -int -main () -{ -return sem_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_posix4_sem_init=yes -else - ac_cv_lib_posix4_sem_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sem_init" >&5 -$as_echo "$ac_cv_lib_posix4_sem_init" >&6; } -if test "x$ac_cv_lib_posix4_sem_init" = xyes; then : - $as_echo "#define HAVE_SEM_INIT 1" >>confdefs.h - - SEM_INIT_LIB=-lposix4 -fi - -fi - -fi - -fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unified diff option" >&5 -$as_echo_n "checking for unified diff option... " >&6; } -if diff -u $0 $0 > /dev/null 2>&1 ; then - UNI_DIFF_OPTS=-u -else - UNI_DIFF_OPTS=-c -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $UNI_DIFF_OPTS" >&5 -$as_echo "$UNI_DIFF_OPTS" >&6; } - -case "$host_os" in -linux*) - -$as_echo "#define HAVE_EXT2_IOCTLS 1" >>confdefs.h - - ;; -esac - - $as_echo_n "checking for mount 'nosuid' option... " - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -void *temp = (void *)(MS_NOSUID); (void) temp; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -$as_echo "#define HAVE_MOUNT_NOSUID 1" >>confdefs.h - - ac_cv_mount_nosuid=yes - $as_echo "yes" -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -void *temp = (void *)(MNT_NOSUID); (void) temp; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -$as_echo "#define HAVE_MOUNT_NOSUID 1" >>confdefs.h - - ac_cv_mount_nosuid=yes - $as_echo "yes" -else - ac_cv_mount_nosuid=no - $as_echo "no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - - $as_echo_n "checking for mount 'nodev' option... " - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -void *temp = (void *)(MS_NODEV); (void) temp; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -$as_echo "#define HAVE_MOUNT_NODEV 1" >>confdefs.h - - ac_cv_mount_nodev=yes - $as_echo "yes" -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -void *temp = (void *)(MNT_NODEV); (void) temp; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -$as_echo "#define HAVE_MOUNT_NODEV 1" >>confdefs.h - - ac_cv_mount_nodev=yes - $as_echo "yes" -else - ac_cv_mount_nodev=no - $as_echo "no" - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -# Check whether --enable-lto was given. -if test "${enable_lto+set}" = set; then : - enableval=$enable_lto; -else - enable_lto=no -fi - -if test "$enable_lto" = "yes" || test "$enable_lto" = "probe"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if C compiler supports LTO" >&5 -$as_echo_n "checking if C compiler supports LTO... " >&6; } - OLD_CFLAGS="$CFLAGS" - OLD_LDFLAGS="$LDFLAGS" - LTO_FLAGS="-g -flto -ffat-lto-objects" - CFLAGS="$CFLAGS $LTO_FLAGS" - LDFLAGS="$LDFLAGS $LTO_FLAGS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - lto_cflags=$LTO_FLAGS - lto_ldflags=$LTO_FLAGS - # Extract the first word of "gcc-ar", so it can be a program name with args. -set dummy gcc-ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_gcc_ar+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $gcc_ar in - [\\/]* | ?:[\\/]*) - ac_cv_path_gcc_ar="$gcc_ar" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_gcc_ar="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -gcc_ar=$ac_cv_path_gcc_ar -if test -n "$gcc_ar"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_ar" >&5 -$as_echo "$gcc_ar" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - # Extract the first word of "gcc-ranlib", so it can be a program name with args. -set dummy gcc-ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_gcc_ranlib+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $gcc_ranlib in - [\\/]* | ?:[\\/]*) - ac_cv_path_gcc_ranlib="$gcc_ranlib" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_gcc_ranlib="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -gcc_ranlib=$ac_cv_path_gcc_ranlib -if test -n "$gcc_ranlib"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_ranlib" >&5 -$as_echo "$gcc_ranlib" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test -x "$gcc_ar" && test -x "$gcc_ranlib"; then - have_lto=yes - AR="${gcc_ar}" - RANLIB="${gcc_ranlib}" - fi - CFLAGS="${OLD_CFLAGS}" - LDFLAGS="${OLD_LDFLAGS}" - - - -fi -if test "$enable_lto" = "yes" && test "$have_lto" != "yes"; then - as_fn_error $? "LTO not supported by compiler." "$LINENO" 5 -fi -# Check whether --enable-ubsan was given. -if test "${enable_ubsan+set}" = set; then : - enableval=$enable_ubsan; -else - enable_ubsan=no -fi - -if test "$enable_ubsan" = "yes" || test "$enable_ubsan" = "probe"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if C compiler supports UBSAN" >&5 -$as_echo_n "checking if C compiler supports UBSAN... " >&6; } - OLD_CFLAGS="$CFLAGS" - OLD_LDFLAGS="$LDFLAGS" - UBSAN_FLAGS="-fsanitize=undefined" - CFLAGS="$CFLAGS $UBSAN_FLAGS" - LDFLAGS="$LDFLAGS $UBSAN_FLAGS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ubsan_cflags=$UBSAN_FLAGS - ubsan_ldflags=$UBSAN_FLAGS - have_ubsan=yes -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="${OLD_CFLAGS}" - LDFLAGS="${OLD_LDFLAGS}" - - - -fi -if test "$enable_ubsan" = "yes" && test "$have_ubsan" != "yes"; then - as_fn_error $? "UBSAN not supported by compiler." "$LINENO" 5 -fi -# Check whether --enable-addrsan was given. -if test "${enable_addrsan+set}" = set; then : - enableval=$enable_addrsan; -else - enable_addrsan=no -fi - -if test "$enable_addrsan" = "yes" || test "$enable_addrsan" = "probe"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if C compiler supports ADDRSAN" >&5 -$as_echo_n "checking if C compiler supports ADDRSAN... " >&6; } - OLD_CFLAGS="$CFLAGS" - OLD_LDFLAGS="$LDFLAGS" - ADDRSAN_FLAGS="-fsanitize=address" - CFLAGS="$CFLAGS $ADDRSAN_FLAGS" - LDFLAGS="$LDFLAGS $ADDRSAN_FLAGS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - addrsan_cflags=$ADDRSAN_FLAGS - addrsan_ldflags=$ADDRSAN_FLAGS - have_addrsan=yes -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="${OLD_CFLAGS}" - LDFLAGS="${OLD_LDFLAGS}" - - - -fi -if test "$enable_addrsan" = "yes" && test "$have_addrsan" != "yes"; then - as_fn_error $? "ADDRSAN not supported by compiler." "$LINENO" 5 -fi -# Check whether --enable-threadsan was given. -if test "${enable_threadsan+set}" = set; then : - enableval=$enable_threadsan; -else - enable_threadsan=no -fi - -if test "$enable_threadsan" = "yes" || test "$enable_threadsan" = "probe"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if C compiler supports THREADSAN" >&5 -$as_echo_n "checking if C compiler supports THREADSAN... " >&6; } - OLD_CFLAGS="$CFLAGS" - OLD_LDFLAGS="$LDFLAGS" - THREADSAN_FLAGS="-fsanitize=thread" - CFLAGS="$CFLAGS $THREADSAN_FLAGS" - LDFLAGS="$LDFLAGS $THREADSAN_FLAGS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - threadsan_cflags=$THREADSAN_FLAGS - threadsan_ldflags=$THREADSAN_FLAGS - have_threadsan=yes -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="${OLD_CFLAGS}" - LDFLAGS="${OLD_LDFLAGS}" - - - -fi -if test "$enable_threadsan" = "yes" && test "$have_threadsan" != "yes"; then - as_fn_error $? "THREADSAN not supported by compiler." "$LINENO" 5 -fi -if test "$have_threadsan" = "yes" && test "$have_addrsan" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ADDRSAN and THREADSAN are not known to work together." >&5 -$as_echo "$as_me: WARNING: ADDRSAN and THREADSAN are not known to work together." >&2;} -fi -LINUX_CMT="#" -CYGWIN_CMT="#" -UNIX_CMT= -case "$host_os" in -linux*) - LINUX_CMT= - ;; -cygwin) - CYGWIN_CMT= - UNIX_CMT="#" - ;; -esac - - - -E2SCRUB_CMT="$LINUX_CMT" - -case "$host_os" in -linux* | gnu* | k*bsd*-gnu) - if test "$prefix" = NONE -a "$root_prefix" = NONE ; then - root_prefix=""; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: On $host_os systems, root_prefix defaults to ''" >&5 -$as_echo "On $host_os systems, root_prefix defaults to ''" >&6; } - fi - ;; -esac -case "$host_os" in -linux* | gnu* | k*bsd*-gnu) - if test "$prefix" = NONE ; then - prefix="/usr"; - { $as_echo "$as_me:${as_lineno-$LINENO}: result: On $host_os systems, prefix defaults to /usr" >&5 -$as_echo "On $host_os systems, prefix defaults to /usr" >&6; } - if test "$mandir" = '${prefix}/man' ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...and mandir defaults to /usr/share/man" >&5 -$as_echo "...and mandir defaults to /usr/share/man" >&6; } - mandir=/usr/share/man - fi - fi -;; -esac -if test "$root_prefix" = NONE ; then - if test "$prefix" = NONE ; then - root_prefix="$ac_default_prefix" - else - root_prefix="$prefix" - fi - root_bindir=$bindir - root_sbindir=$sbindir - root_libdir=$libdir - root_sysconfdir=$sysconfdir -else - root_bindir='${root_prefix}/bin' - root_sbindir='${root_prefix}/sbin' - root_libdir='${root_prefix}/lib' - root_sysconfdir='${root_prefix}/etc' -fi -if test "$bindir" != '${exec_prefix}/bin'; then - root_bindir=$bindir - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Setting root_bindir to $root_bindir" >&5 -$as_echo "Setting root_bindir to $root_bindir" >&6; } -fi -if test "$sbindir" != '${exec_prefix}/sbin'; then - root_sbindir=$sbindir - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Setting root_sbindir to $root_sbindir" >&5 -$as_echo "Setting root_sbindir to $root_sbindir" >&6; } -fi -if test "$libdir" != '${exec_prefix}/lib'; then - root_libdir=$libdir - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Setting root_libdir to $root_libdir" >&5 -$as_echo "Setting root_libdir to $root_libdir" >&6; } -fi -if test "$sysconfdir" != '${prefix}/etc'; then - root_sysconfdir=$sysconfdir - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Setting root_sysconfdir to $root_sysconfdir" >&5 -$as_echo "Setting root_sysconfdir to $root_sysconfdir" >&6; } -fi - - - - - - -# Check whether --with-multiarch was given. -if test "${with_multiarch+set}" = set; then : - withval=$with_multiarch; if test "$withval" = "lib64"; then - libdir=/usr/lib64 - root_libdir=/lib64 -else - libdir=$libdir/$withval - root_libdir=$root_libdir/$withval -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can link with -static" >&5 -$as_echo_n "checking whether we can link with -static... " >&6; } -if ${ac_cv_e2fsprogs_use_static+:} false; then : - $as_echo_n "(cached) " >&6 -else - SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS_STATIC -static" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -fflush(stdout); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_e2fsprogs_use_static=yes -else - ac_cv_e2fsprogs_use_static=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LDFLAGS=$SAVE_LDFLAGS -fi - -case "$host_os" in -solaris2.*) - ac_cv_e2fsprogs_use_static=no -;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_e2fsprogs_use_static" >&5 -$as_echo "$ac_cv_e2fsprogs_use_static" >&6; } -if test $ac_cv_e2fsprogs_use_static = yes; then - LDFLAGS_STATIC="$LDFLAGS_STATIC -static" -fi - -case "$host_os" in -darwin*) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using Apple Darwin / GNU libintl workaround" >&5 -$as_echo "Using Apple Darwin / GNU libintl workaround" >&6; } - -$as_echo "#define _INTL_REDIRECT_MACROS 1" >>confdefs.h - - ;; -esac -if test "$cross_compiling" = yes ; then - DO_TEST_SUITE= -else - DO_TEST_SUITE=check -fi - -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 - INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl' -fi -if test -n "$WITH_DIET_LIBC" ; then - INCLUDES="$INCLUDES -D_REENTRANT" -fi - -if test $cross_compiling = no; then - BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H" - BUILD_LDFLAGS="$LDFLAGS" -fi - - -CFLAGS_SHLIB=${CFLAGS_SHLIB:-$CFLAGS} -CFLAGS_STLIB=${CFLAGS_STLIB:-$CFLAGS} -LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS} - - - - - -# Check whether --with-udev_rules_dir was given. -if test "${with_udev_rules_dir+set}" = set; then : - withval=$with_udev_rules_dir; -else - with_udev_rules_dir=yes -fi - -if test "x${with_udev_rules_dir}" != "xno"; then : - - if test "x${with_udev_rules_dir}" = "xyes"; then : - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for udev" >&5 -$as_echo_n "checking for udev... " >&6; } - -if test -n "$udev_CFLAGS"; then - pkg_cv_udev_CFLAGS="$udev_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"udev\""; } >&5 - ($PKG_CONFIG --exists --print-errors "udev") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_udev_CFLAGS=`$PKG_CONFIG --cflags "udev" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$udev_LIBS"; then - pkg_cv_udev_LIBS="$udev_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"udev\""; } >&5 - ($PKG_CONFIG --exists --print-errors "udev") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_udev_LIBS=`$PKG_CONFIG --libs "udev" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - udev_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "udev" 2>&1` - else - udev_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "udev" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$udev_PKG_ERRORS" >&5 - - - with_udev_rules_dir="" - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - with_udev_rules_dir="" - -else - udev_CFLAGS=$pkg_cv_udev_CFLAGS - udev_LIBS=$pkg_cv_udev_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - with_udev_rules_dir="$($PKG_CONFIG --variable=udevdir udev)/rules.d" - -fi - -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for udev rules dir" >&5 -$as_echo_n "checking for udev rules dir... " >&6; } - pkg_udev_rules_dir="${with_udev_rules_dir}" - if test -n "${pkg_udev_rules_dir}"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${pkg_udev_rules_dir}" >&5 -$as_echo "${pkg_udev_rules_dir}" >&6; } - have_udev="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - have_udev="no" - -fi - -else - - have_udev="disabled" - -fi - - - - -# Check whether --with-crond_dir was given. -if test "${with_crond_dir+set}" = set; then : - withval=$with_crond_dir; -else - with_crond_dir=yes -fi - -if test "x${with_crond_dir}" != "xno"; then : - - if test "x${with_crond_dir}" = "xyes"; then : - - if test -d "/etc/cron.d"; then : - with_crond_dir="/etc/cron.d" -else - have_crond="no"; with_crond_dir="" -fi - -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for system crontab dir" >&5 -$as_echo_n "checking for system crontab dir... " >&6; } - crond_dir="${with_crond_dir}" - if test -n "${crond_dir}"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${crond_dir}" >&5 -$as_echo "${crond_dir}" >&6; } - have_crond="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - have_crond="no" - -fi - -else - - have_crond="disabled" - -fi - - - - -# Check whether --with-systemd_unit_dir was given. -if test "${with_systemd_unit_dir+set}" = set; then : - withval=$with_systemd_unit_dir; -else - with_systemd_unit_dir=yes -fi - -if test "x${with_systemd_unit_dir}" != "xno"; then : - - if test "x${with_systemd_unit_dir}" = "xyes"; then : - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for systemd" >&5 -$as_echo_n "checking for systemd... " >&6; } - -if test -n "$systemd_CFLAGS"; then - pkg_cv_systemd_CFLAGS="$systemd_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"systemd\""; } >&5 - ($PKG_CONFIG --exists --print-errors "systemd") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_systemd_CFLAGS=`$PKG_CONFIG --cflags "systemd" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$systemd_LIBS"; then - pkg_cv_systemd_LIBS="$systemd_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"systemd\""; } >&5 - ($PKG_CONFIG --exists --print-errors "systemd") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_systemd_LIBS=`$PKG_CONFIG --libs "systemd" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - systemd_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "systemd" 2>&1` - else - systemd_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "systemd" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$systemd_PKG_ERRORS" >&5 - - - with_systemd_unit_dir="" - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - with_systemd_unit_dir="" - -else - systemd_CFLAGS=$pkg_cv_systemd_CFLAGS - systemd_LIBS=$pkg_cv_systemd_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - with_systemd_unit_dir="$($PKG_CONFIG --variable=systemdsystemunitdir systemd)" - -fi - - -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for systemd system unit dir" >&5 -$as_echo_n "checking for systemd system unit dir... " >&6; } - systemd_system_unit_dir="${with_systemd_unit_dir}" - if test -n "${systemd_system_unit_dir}"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${systemd_system_unit_dir}" >&5 -$as_echo "${systemd_system_unit_dir}" >&6; } - have_systemd="yes" - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - have_systemd="no" - -fi - -else - - have_systemd="disabled" - -fi - - -OS_IO_FILE="" -case "$host_os" in - cigwin*|mingw*|msys*) - OS_IO_FILE=windows_io - ;; - *) - OS_IO_FILE=unix_io - ;; -esac - -test -d lib || mkdir lib -test -d include || mkdir include -test -d include/linux || mkdir include/linux -test -d include/asm || mkdir include/asm -if test -z "$UUID_CMT" ; then - uuid_out_list="lib/uuid/Makefile lib/uuid/uuid.pc \ - lib/uuid/uuid_types.h" -fi -if test -z "$BLKID_CMT" ; then - blkid_out_list="lib/blkid/Makefile lib/blkid/blkid.pc \ - lib/blkid/blkid_types.h" -fi -for i in MCONFIG Makefile \ - 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 \ - $uuid_out_list $blkid_out_list lib/support/Makefile \ - lib/ss/ss.pc lib/et/com_err.pc lib/e2p/e2p.pc lib/ext2fs/ext2fs.pc \ - misc/Makefile ext2ed/Makefile e2fsck/Makefile \ - debugfs/Makefile tests/Makefile tests/progs/Makefile \ - resize/Makefile doc/Makefile po/Makefile.in scrub/Makefile; do - if test -d `dirname ${srcdir}/$i` ; then - outlist="$outlist $i" - fi -done -ac_config_files="$ac_config_files $outlist" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by $as_me, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to the package provider." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2012 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -# Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. - OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS" - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "lib/config.h") CONFIG_HEADERS="$CONFIG_HEADERS lib/config.h" ;; - "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; - "$outlist") CONFIG_FILES="$CONFIG_FILES $outlist" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - -if $AWK 'BEGIN { getline <"/dev/null" }' /dev/null; then - ac_cs_awk_getline=: - ac_cs_awk_pipe_init= - ac_cs_awk_read_file=' - while ((getline aline < (F[key])) > 0) - print(aline) - close(F[key])' - ac_cs_awk_pipe_fini= -else - ac_cs_awk_getline=false - ac_cs_awk_pipe_init="print \"cat <<'|#_!!_#|' &&\"" - ac_cs_awk_read_file=' - print "|#_!!_#|" - print "cat " F[key] " &&" - '$ac_cs_awk_pipe_init - # The final `:' finishes the AND list. - ac_cs_awk_pipe_fini='END { print "|#_!!_#|"; print ":" }' -fi -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - -# Create commands to substitute file output variables. -{ - echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" && - echo 'cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&' && - echo "$ac_subst_files" | sed 's/.*/F["&"]="$&"/' && - echo "_ACAWK" && - echo "_ACEOF" -} >conf$$files.sh && -. ./conf$$files.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -rm -f conf$$files.sh - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - \$ac_cs_awk_pipe_init -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - if (nfields == 3 && !substed) { - key = field[2] - if (F[key] != "" && line ~ /^[ ]*@.*@[ ]*$/) { - \$ac_cs_awk_read_file - next - } - } - print line -} -\$ac_cs_awk_pipe_fini -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | -if $ac_cs_awk_getline; then - $AWK -f "$ac_tmp/subs.awk" -else - $AWK -f "$ac_tmp/subs.awk" | $SHELL -fi \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "po-directories":C) - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - # Treat a directory as a PO directory if and only if it has a - # POTFILES.in file. This allows packages to have multiple PO - # directories under different names or in different locations. - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - gt_tab=`printf '\t'` - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - POMAKEFILEDEPS="POTFILES.in" - # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$OBSOLETE_ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" - fi - ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` - POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" - else - # The set of available languages was given in configure.in. - ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS - fi - # Compute POFILES - # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) - # Compute UPDATEPOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) - # Compute DUMMYPOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) - # Compute GMOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - UPDATEPOFILES= - DUMMYPOFILES= - GMOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - -if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi diff --git a/configure.ac b/configure.ac deleted file mode 100644 index 824a93d5..00000000 --- a/configure.ac +++ /dev/null @@ -1,1830 +0,0 @@ -AC_INIT(version.h) -AC_PREREQ(2.69) -AC_CONFIG_AUX_DIR(config) -AC_CONFIG_HEADERS([lib/config.h]) -AH_BOTTOM([#include ]) -MCONFIG=./MCONFIG -AC_SUBST_FILE(MCONFIG) -BINARY_TYPE=bin -dnl -dnl This is to figure out the version number and the date.... -dnl -E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h \ - | awk '{print $3}' | tr \" " " | awk '{print $1}'` -E2FSPROGS_DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \ - | tr \" " " | awk '{print $1}'` -E2FSPROGS_DAY=$(echo $E2FSPROGS_DATE | awk -F- '{print $1}' | sed -e '/^[[1-9]]$/s/^/0/') -MONTH=`echo $E2FSPROGS_DATE | awk -F- '{print $2}'` -YEAR=`echo $E2FSPROGS_DATE | awk -F- '{print $3}'` - -if expr $YEAR ">" 1900 > /dev/null ; then - E2FSPROGS_YEAR=$YEAR -elif expr $YEAR ">" 90 >/dev/null ; then - E2FSPROGS_YEAR=19$YEAR -else - E2FSPROGS_YEAR=20$YEAR -fi - -case $MONTH in -Jan) MONTH_NUM=01; E2FSPROGS_MONTH="January" ;; -Feb) MONTH_NUM=02; E2FSPROGS_MONTH="February" ;; -Mar) MONTH_NUM=03; E2FSPROGS_MONTH="March" ;; -Apr) MONTH_NUM=04; E2FSPROGS_MONTH="April" ;; -May) MONTH_NUM=05; E2FSPROGS_MONTH="May" ;; -Jun) MONTH_NUM=06; E2FSPROGS_MONTH="June" ;; -Jul) MONTH_NUM=07; E2FSPROGS_MONTH="July" ;; -Aug) MONTH_NUM=08; E2FSPROGS_MONTH="August" ;; -Sep) MONTH_NUM=09; E2FSPROGS_MONTH="September" ;; -Oct) MONTH_NUM=10; E2FSPROGS_MONTH="October" ;; -Nov) MONTH_NUM=11; E2FSPROGS_MONTH="November" ;; -Dec) MONTH_NUM=12; E2FSPROGS_MONTH="December" ;; -*) AC_MSG_WARN([Unknown month $MONTH??]) ;; -esac - -base_ver=`echo $E2FSPROGS_VERSION | \ - sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'` - -date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY} - -case $E2FSPROGS_VERSION in -*-WIP|pre-*) - E2FSPROGS_PKGVER="$base_ver~WIP.$date_spec" - ;; -*) - E2FSPROGS_PKGVER="$base_ver" - ;; -esac - -unset DATE MONTH YEAR base_ver pre_vers date_spec -AC_MSG_RESULT([Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION]) -AC_MSG_RESULT([Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}]) -AC_SUBST(E2FSPROGS_YEAR) -AC_SUBST(E2FSPROGS_MONTH) -AC_SUBST(E2FSPROGS_DAY) -AC_SUBST(E2FSPROGS_VERSION) -AC_SUBST(E2FSPROGS_PKGVER) -AC_SUBST(E2FSPROGS_DATE) -dnl -dnl Use diet libc -dnl -WITH_DIET_LIBC= -AC_ARG_WITH([diet-libc], -AS_HELP_STRING([--with-diet-libc],[use diet libc]), -CC="diet cc -nostdinc" -WITH_DIET_LIBC=yes -if test -z "$LIBS" -then - LIBS="-lcompat" -else - LIBS="$LIBS -lcompat" -fi -AC_MSG_RESULT(CC=$CC))dnl -dnl -AC_CANONICAL_HOST -dnl -dnl Check to see if libdl exists for the sake of dlopen -dnl -DLOPEN_LIB='' -AC_CHECK_LIB(dl, dlopen,DLOPEN_LIB=-ldl) -AC_SUBST(DLOPEN_LIB) -dnl -AC_ARG_WITH([cc], -AS_HELP_STRING([--with-cc],[no longer supported, use CC= instead]), -AC_MSG_ERROR([--with-cc no longer supported; use CC= instead])) -dnl -AC_ARG_WITH([ccopts], -AS_HELP_STRING([--with-ccopts],[no longer supported, use CFLAGS= instead]), -AC_MSG_ERROR([--with-ccopts no longer supported; use CFLAGS= instead])) -dnl -AC_ARG_WITH([ldopts], -AS_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 -if test "$GCC" = yes; then - RDYNAMIC="-rdynamic" - AC_SUBST(RDYNAMIC) -fi -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. -AC_MSG_CHECKING(for additional special compiler flags) -if test "$GCC" = yes -then - case "$host_cpu" in - alpha) addcflags="-mieee" ;; - esac -fi -if test "x$addcflags" != x -then - AC_MSG_RESULT($addcflags) - CFLAGS="$addcflags $CFLAGS" -else - AC_MSG_RESULT([[(none)]]) -fi -AC_USE_SYSTEM_EXTENSIONS -dnl -dnl Set default values for library extensions. Will be dealt with after -dnl parsing configuration options, which may modify these -dnl -LIB_EXT=.a -STATIC_LIB_EXT=.a -PROFILED_LIB_EXT=.a -dnl -dnl Allow separate `root_prefix' to be specified -dnl -AC_ARG_WITH([root-prefix], -AS_HELP_STRING([--with-root-prefix=PREFIX],[override prefix variable for files to be placed in the root]), -root_prefix=$withval, -root_prefix=NONE)dnl -dnl -dnl handle --enable-maintainer-mode -dnl -AC_ARG_ENABLE([maintainer-mode], -AS_HELP_STRING([--enable-maintainer-mode],[enable makefile rules useful for maintainers]), -if test "$enableval" = "no" -then - MAINTAINER_CMT=# - AC_MSG_RESULT([Disabling maintainer mode]) -else - MAINTAINER_CMT= - AC_MSG_RESULT([Enabling maintainer mode]) -fi -, -MAINTAINER_CMT=# -AC_MSG_RESULT([Disabling maintainer mode by default]) -) -AC_SUBST(MAINTAINER_CMT) -dnl -dnl handle --enable-symlink-install -dnl -AC_ARG_ENABLE([symlink-install], -AS_HELP_STRING([--enable-symlink-install],[use symlinks when installing instead of hard links]), -if test "$enableval" = "no" -then - LINK_INSTALL_FLAGS=-f - AC_MSG_RESULT([Disabling symlinks for install]) -else - LINK_INSTALL_FLAGS=-sf - AC_MSG_RESULT([Enabling symlinks for install]) -fi -, -LINK_INSTALL_FLAGS=-f -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], -AS_HELP_STRING([--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], -AS_HELP_STRING([--enable-symlink-build],[use symlinks while building instead of hard links]), -if test "$enableval" = "no" -then - LINK_BUILD_FLAGS= - AC_MSG_RESULT([Disabling symlinks for build]) -else - LINK_BUILD_FLAGS=-s - AC_MSG_RESULT([Enabling symlinks for build]) -fi -, -LINK_BUILD_FLAGS= -AC_MSG_RESULT([Disabling symlinks for build by default]) -) -AC_SUBST(LINK_BUILD_FLAGS) -dnl -dnl handle --enable-verbose-makecmds -dnl -AC_ARG_ENABLE([verbose-makecmds], -AS_HELP_STRING([--enable-verbose-makecmds],[enable verbose make command output]), -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 This needs to be before all of the --enable-*-shlibs options -dnl -E2_PKG_CONFIG_STATIC=--static -LDFLAG_DYNAMIC= -PRIVATE_LIBS_CMT= -dnl -dnl handle --enable-elf-shlibs -dnl -AC_ARG_ENABLE([elf-shlibs], -AS_HELP_STRING([--enable-elf-shlibs],[select ELF shared libraries]), -if test "$enableval" = "no" -then - ELF_CMT=# - MAKEFILE_ELF=/dev/null - AC_MSG_RESULT([Disabling ELF shared libraries]) -else - E2_PKG_CONFIG_STATIC= - ELF_CMT= - MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib - [case "$host_os" in - solaris2.*) - MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib - ;; - esac] - BINARY_TYPE=elfbin - LIB_EXT=.so - PRIVATE_LIBS_CMT=# - LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib'] - AC_MSG_RESULT([Enabling ELF shared libraries]) -fi -, -MAKEFILE_ELF=/dev/null -ELF_CMT=# -AC_MSG_RESULT([Disabling ELF shared libraries by default]) -) -AC_SUBST(ELF_CMT) -AC_SUBST_FILE(MAKEFILE_ELF) -dnl -dnl handle --enable-bsd-shlibs -dnl -AC_ARG_ENABLE([bsd-shlibs], -AS_HELP_STRING([--enable-bsd-shlibs],[select BSD shared libraries]), -if test "$enableval" = "no" -then - BSDLIB_CMT=# - MAKEFILE_BSDLIB=/dev/null - AC_MSG_RESULT([Disabling BSD shared libraries]) -else - E2_PKG_CONFIG_STATIC= - BSDLIB_CMT= - MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib - LIB_EXT=.so - [case "$host_os" in - darwin*) - MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib - LIB_EXT=.dylib - ;; - esac] - AC_MSG_RESULT([Enabling BSD shared libraries]) -fi -, -MAKEFILE_BSDLIB=/dev/null -BSDLIB_CMT=# -AC_MSG_RESULT([Disabling BSD shared libraries by default]) -) -AC_SUBST(BSDLIB_CMT) -AC_SUBST_FILE(MAKEFILE_BSDLIB) -dnl -dnl handle --enable-profile -dnl -AC_ARG_ENABLE([profile], -AS_HELP_STRING([--enable-profile],[build profiling libraries]), -if test "$enableval" = "no" -then - PROFILE_CMT=# - MAKEFILE_PROFILE=/dev/null - AC_MSG_RESULT([Disabling profiling libraries]) -else - PROFILE_CMT= - MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile - PROFILED_LIB_EXT=_p.a - AC_MSG_RESULT([Building profiling libraries]) -fi -, -PROFILE_CMT=# -MAKEFILE_PROFILE=/dev/null -AC_MSG_RESULT([Disabling profiling libraries by default]) -) -AC_SUBST(PROFILE_CMT) -AC_SUBST_FILE(MAKEFILE_PROFILE) -dnl -dnl handle --enable-gcov -dnl -AC_ARG_ENABLE([gcov], -AS_HELP_STRING([--enable-gcov],[build for coverage testing using gcov]), -if test "$enableval" = "yes" -then - CFLAGS="-g -fprofile-arcs -ftest-coverage" - LDFLAGS="-fprofile-arcs -ftest-coverage" - AC_MSG_RESULT([Enabling gcov support]) -fi -) -dnl -dnl handle --enable-hardening -dnl -CFLAGS_SHLIB="${CFLAGS_SHLIB:-$CFLAGS}" -CFLAGS_STLIB="${CFLAGS_STLIB:-$CFLAGS}" -LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS} -LDFLAGS_STATIC=${LDFLAGS_STATIC:-$LDFLAGS} -AC_ARG_ENABLE([hardening], -AS_HELP_STRING([--enable-hardening],[build for coverage testing using gcov]), -if test "$enableval" = "yes" -then - HARDEN_CFLAGS="-D_FORTIFY_SOURCE=2 -fstack-protector-strong" - HARDEN_LDFLAGS=["-Wl,-z,relro -Wl,-z,now"] - CFLAGS="$CFLAGS $HARDEN_CFLAGS -fPIE" - CFLAGS_SHLIB="$CFLAGS_SHLIB $HARDEN_CFLAGS" - CFLAGS_STLIB="$CFLAGS_STLIB $HARDEN_CFLAGS -fPIE" - LDFLAGS="$LDFLAGS $HARDEN_LDFLAGS -fPIE -pie" - LDFLAGS_STATIC="$LDFLAGS_STATIC $HARDEN_LDFLAGS" - LDFLAGS_SHLIB="$LDFLAGS_SHLIB $HARDEN_LDFLAGS" - AC_MSG_RESULT([Enabling hardening support]) -fi -) -dnl -dnl Substitute library extensions -dnl -AC_SUBST(LIB_EXT) -AC_SUBST(STATIC_LIB_EXT) -AC_SUBST(PROFILED_LIB_EXT) -AC_SUBST(LDFLAG_DYNAMIC) -AC_SUBST(PRIVATE_LIBS_CMT) -dnl -dnl handle --enable-jbd-debug -dnl -AC_ARG_ENABLE([jbd-debug], -AS_HELP_STRING([--enable-jbd-debug],[enable journal debugging]), -if test "$enableval" = "no" -then - AC_MSG_RESULT([Disabling journal debugging]) -else - AC_DEFINE(CONFIG_JBD_DEBUG, 1, - [Define to 1 if debugging ext3/4 journal code]) - AC_MSG_RESULT([Enabling journal debugging]) -fi -, -AC_MSG_RESULT([Disabling journal debugging by default]) -) -dnl -dnl handle --enable-blkid-debug -dnl -AC_ARG_ENABLE([blkid-debug], -AS_HELP_STRING([--enable-blkid-debug],[enable blkid debugging]), -if test "$enableval" = "no" -then - AC_MSG_RESULT([Disabling blkid debugging]) -else - AC_DEFINE(CONFIG_BLKID_DEBUG, 1, - [Define to 1 if debugging the blkid library]) - AC_MSG_RESULT([Enabling blkid debugging]) -fi -, -AC_MSG_RESULT([Disabling blkid debugging by default]) -) -dnl -dnl handle --enable-testio-debug -dnl -AC_ARG_ENABLE([testio-debug], -AS_HELP_STRING([--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, 1) - AC_MSG_RESULT([Enabling testio debugging]) -fi -, -AC_MSG_RESULT([Enabling testio debugging by default]) -AC_DEFINE(CONFIG_TESTIO_DEBUG, 1) -TEST_IO_CMT= -) -AC_SUBST(TEST_IO_CMT) -dnl -dnl handle --enable-developer-features -dnl -AC_ARG_ENABLE([developer-features], -AS_HELP_STRING([--enable-developer-features],[enable features for use by ext4 developers]), -AH_TEMPLATE([CONFIG_DEVELOPER_FEATURES], - [Define to 1 for features for use by ext4 developers]) -if test "$enableval" = "yes" -then - DEV_FEATURES_CMT= - AC_DEFINE(CONFIG_DEVELOPER_FEATURES, 1) - AC_MSG_RESULT([Enabling ext4 developer features]) -else - AC_MSG_RESULT([Disabling ext4 developer features]) - DEV_FEATURES_CMT="#" -fi -, -AC_MSG_RESULT([Disabling ext4 developer features by default]) -DEV_FEATURES_CMT= -) -AC_SUBST(DEV_FEATURES_CMT) -dnl -dnl handle --disable-libuuid -dnl -PKG_PROG_PKG_CONFIG -LIBUUID= -DEPLIBUUID= -STATIC_LIBUUID= -DEPSTATIC_LIBUUID= -PROFILED_LIBUUID= -DEPPROFILED_LIBUUID= -UUID_CMT= -AC_ARG_ENABLE([libuuid], -AS_HELP_STRING([--enable-libuuid],[build and use private uuid library]), -if test "$enableval" = "no" -then - if test -z "$PKG_CONFIG"; then - AC_MSG_ERROR([pkg-config not installed; please install it.]) - fi - - AC_CHECK_LIB(uuid, uuid_generate, - [LIBUUID=`$PKG_CONFIG --libs uuid`; - STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`], - [AC_MSG_ERROR([external uuid library not found])]) - PROFILED_LIBUUID=$LIBUUID - UUID_CMT=# - AC_MSG_RESULT([Disabling private uuid library]) -else - LIBUUID='$(LIB)/libuuid'$LIB_EXT - DEPLIBUUID=$LIBUUID - STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT - DEPSTATIC_LIBUUID=$STATIC_LIBUUID - PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT - DEPPROFILED_LIBUUID=$PROFILED_LIBUUID - AC_MSG_RESULT([Enabling private uuid library]) -fi -, -if test -n "$PKG_CONFIG"; then - AC_CHECK_LIB(uuid, uuid_generate, - [LIBUUID=`$PKG_CONFIG --libs uuid`; - STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`]) -fi -if test -n "$LIBUUID"; then - PROFILED_LIBUUID=$LIBUUID - UUID_CMT=# - AC_MSG_RESULT([Using system uuid by default]) -else - LIBUUID='$(LIB)/libuuid'$LIB_EXT - DEPLIBUUID=$LIBUUID - STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT - DEPSTATIC_LIBUUID=$STATIC_LIBUUID - PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT - DEPPROFILED_LIBUUID=$PROFILED_LIBUUID - AC_MSG_RESULT([Enabling private uuid library by default]) -fi -) -AC_SUBST(LIBUUID) -AC_SUBST(DEPLIBUUID) -AC_SUBST(STATIC_LIBUUID) -AC_SUBST(DEPSTATIC_LIBUUID) -AC_SUBST(PROFILED_LIBUUID) -AC_SUBST(DEPPROFILED_LIBUUID) -AC_SUBST(UUID_CMT) -dnl -dnl handle --disable-libblkid -dnl -PKG_PROG_PKG_CONFIG -LIBBLKID= -DEPLIBBLKID= -STATIC_LIBBLKID= -DEPSTATIC_LIBBLKID= -PROFILED_LIBBLKID= -DEPPROFILED_LIBBLKID= -BLKID_CMT= -AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs]) -AC_ARG_ENABLE([libblkid], -AS_HELP_STRING([--enable-libblkid],[build and use private blkid library]), -if test "$enableval" = "no" -then - if test -z "$PKG_CONFIG"; then - AC_MSG_ERROR([pkg-config not installed; please install it.]) - fi - - AC_CHECK_LIB(blkid, blkid_get_cache, - [LIBBLKID=`$PKG_CONFIG --libs blkid`; - STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`], - [AC_MSG_ERROR([external blkid library not found])], -luuid) - BLKID_CMT=# - PROFILED_LIBBLKID=$LIBBLKID - AC_MSG_RESULT([Disabling private blkid library]) -else - LIBBLKID='$(LIB)/libblkid'$LIB_EXT - DEPLIBBLKID=$LIBBLKID - 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, 1) - AC_MSG_RESULT([Enabling private blkid library]) -fi -, -if test -n "$PKG_CONFIG"; then - AC_CHECK_LIB(blkid, blkid_get_cache, - [LIBBLKID=`$PKG_CONFIG --libs blkid`; - STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`]) -fi -if test -n "$LIBBLKID"; then - BLKID_CMT=# - PROFILED_LIBBLKID=$LIBBLKID - AC_MSG_RESULT([Using system blkid library by default]) -else - LIBBLKID='$(LIB)/libblkid'$LIB_EXT - DEPLIBBLKID=$LIBBLKID - 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, 1) - AC_MSG_RESULT([Enabling private blkid library by default]) -fi -) -AC_SUBST(LIBBLKID) -AC_SUBST(DEPLIBBLKID) -AC_SUBST(STATIC_LIBBLKID) -AC_SUBST(DEPSTATIC_LIBBLKID) -AC_SUBST(PROFILED_LIBBLKID) -AC_SUBST(DEPPROFILED_LIBBLKID) -AC_SUBST(BLKID_CMT) -dnl -dnl handle --enable-subset -dnl -ALL_CMT= -SUBSET_CMT= -AC_ARG_ENABLE([subset], -AS_HELP_STRING([--enable-subset],[enable subset-only build]), -if test "$enableval" = "no" -then - SUBSET_CMT=# - AC_MSG_RESULT([Disabling subset-only build]) -else - ALL_CMT=# - AC_MSG_RESULT([Enabling subset-only-build]) -fi -,) -AC_SUBST(ALL_CMT) -AC_SUBST(SUBSET_CMT) -dnl -dnl handle --disable-backtrace -dnl -AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace]) -AC_ARG_ENABLE([backtrace], -AS_HELP_STRING([--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], -AS_HELP_STRING([--disable-debugfs],[disable support of debugfs program]), -if test "$enableval" = "no" -then - AC_MSG_RESULT([Disabling debugfs support]) - DEBUGFS_CMT="#" -else - DEBUGFS_CMT= - AC_MSG_RESULT([Enabling debugfs support]) -fi -, -AC_MSG_RESULT([Enabling debugfs support by default]) -DEBUGFS_CMT= -) -AC_SUBST(DEBUGFS_CMT) -dnl -dnl handle --enable-imager -dnl -AC_ARG_ENABLE([imager], -AS_HELP_STRING([--disable-imager],[disable support of e2image program]), -if test "$enableval" = "no" -then - AC_MSG_RESULT([Disabling e2image support]) - IMAGER_CMT="#" -else - IMAGER_CMT= - AC_MSG_RESULT([Enabling e2image support]) -fi -, -AC_MSG_RESULT([Enabling e2image support by default]) -IMAGER_CMT= -) -AC_SUBST(IMAGER_CMT) -dnl -dnl handle --enable-resizer -dnl -AC_ARG_ENABLE([resizer], -AS_HELP_STRING([--disable-resizer],[disable support of e2resize program]), -if test "$enableval" = "no" -then - AC_MSG_RESULT([Disabling e2resize support]) - RESIZER_CMT="#" -else - RESIZER_CMT= - AC_MSG_RESULT([Enabling e2resize support]) -fi -, -AC_MSG_RESULT([Enabling e2resize support by default]) -RESIZER_CMT= -) -AC_SUBST(RESIZER_CMT) -dnl -dnl handle --enable-defrag -dnl -AC_ARG_ENABLE([defrag], -AS_HELP_STRING([--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 -, -if test -z "$WITH_DIET_LIBC" -then - AC_MSG_RESULT([Enabling e4defrag support by default]) - DEFRAG_CMT= -else - AC_MSG_RESULT([Disabling e4defrag support by default]) - DEFRAG_CMT="#" -fi -) -AC_SUBST(DEFRAG_CMT) -dnl -dnl See whether to install the `fsck' wrapper program (that calls e2fsck) -dnl -AC_ARG_ENABLE([fsck], -AS_HELP_STRING([--enable-fsck],[build fsck wrapper program]), -[if test "$enableval" = "no" -then - FSCK_PROG='' FSCK_MAN='' - AC_MSG_RESULT([Not building fsck wrapper]) -else - FSCK_PROG=fsck FSCK_MAN=fsck.8 - AC_MSG_RESULT([Building fsck wrapper]) -fi] -, -[case "$host_os" in - gnu*) - FSCK_PROG='' FSCK_MAN='' - AC_MSG_RESULT([Not building fsck wrapper by default]) - ;; - *) - FSCK_PROG=fsck FSCK_MAN=fsck.8 - AC_MSG_RESULT([Building fsck wrapper by default]) -esac] -) -AC_SUBST(FSCK_PROG) -AC_SUBST(FSCK_MAN) -dnl -dnl See whether to install the `e2initrd-helper' program -dnl -AC_ARG_ENABLE([e2initrd-helper], -AS_HELP_STRING([--enable-e2initrd-helper],[build e2initrd-helper program]), -[if test "$enableval" = "no" -then - E2INITRD_PROG='' E2INITRD_MAN='' - AC_MSG_RESULT([Not building e2initrd helper]) -else - E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8 - AC_MSG_RESULT([Building e2initrd helper]) -fi] -, -E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8 -AC_MSG_RESULT([Building e2initrd helper by default]) -) -AC_SUBST(E2INITRD_PROG) -AC_SUBST(E2INITRD_MAN) -dnl -dnl -dnl -AC_ARG_ENABLE([tls], -AS_HELP_STRING([--disable-tls],[disable use of thread local support]), -[if test "$enableval" = "no" -then - try_tls="" - AC_MSG_RESULT([Disabling thread local support]) -else - try_tls="yes" - AC_MSG_RESULT([Enabling thread local support]) -fi] -, -if test -n "$WITH_DIET_LIBC" -then - try_tls="" - AC_MSG_RESULT([Diet libc does not support thread local support]) -else - try_tls="yes" - AC_MSG_RESULT([Try using thread local support by default]) -fi -) -if test "$try_tls" = "yes" -then -AX_TLS -fi -dnl -dnl -dnl -AC_ARG_WITH([pthread], -AS_HELP_STRING([--without-pthread],[disable use of pthread support]), -[if test "$withval" = "no" -then - try_pthread="" - AC_MSG_RESULT([Disabling pthread support]) -else - try_pthread="yes" - AC_MSG_RESULT([Testing for pthread support]) -fi] -, -try_pthread="yes" -AC_MSG_RESULT([Try testing for pthread support by default]) -) -if test "$try_pthread" = "yes" -then -AX_PTHREAD -else -test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" -AC_SUBST([PTHREAD_CC]) -fi -dnl -dnl -dnl -AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd]) -AC_ARG_ENABLE([uuidd], -AS_HELP_STRING([--disable-uuidd],[disable building the uuid daemon]), -[if test "$enableval" = "no" -then - AC_MSG_RESULT([Not building uuidd]) - UUIDD_CMT="#" -else - AC_DEFINE(USE_UUIDD, 1) - UUIDD_CMT="" - AC_MSG_RESULT([Building uuidd]) -fi] -, -AC_DEFINE(USE_UUIDD, 1) -if test -z "$UUID_CMT" -then - UUIDD_CMT="" - AC_MSG_RESULT([Building uuidd by default]) -else - UUIDD_CMT="#" - AC_MSG_RESULT([Disabling uuidd by default]) -fi -) -AC_SUBST(UUIDD_CMT) -dnl -dnl handle --disable-mmp -dnl -AH_TEMPLATE([CONFIG_MMP], [Define to 1 to enable mmp support]) -AC_ARG_ENABLE([mmp], -AS_HELP_STRING([--disable-mmp],[disable support mmp, Multi Mount Protection]), -if test "$enableval" = "no" -then - AC_MSG_RESULT([Disabling mmp support]) -else - AC_MSG_RESULT([Enabling mmp support]) - AC_DEFINE(CONFIG_MMP, 1) -fi -, -AC_MSG_RESULT([Enabling mmp support by default]) -AC_DEFINE(CONFIG_MMP, 1) -) -dnl -dnl handle --disable-tdb -dnl -AH_TEMPLATE([CONFIG_TDB], [Define to 1 to enable tdb support]) -AC_ARG_ENABLE([tdb], -AS_HELP_STRING([--disable-tdb],[disable tdb support]), -if test "$enableval" = "no" -then - AC_MSG_RESULT([Disabling tdb support]) - TDB_CMT="#" - TDB_MAN_COMMENT='.\"' -else - AC_MSG_RESULT([Enabling tdb support]) - AC_DEFINE(CONFIG_TDB, 1) - TDB_CMT="" - TDB_MAN_COMMENT="" -fi -, -AC_MSG_RESULT([Enabling mmp support by default]) -AC_DEFINE(CONFIG_TDB, 1) -TDB_CMT="" -TDB_MAN_COMMENT="" -) -AC_SUBST(TDB_CMT) -AC_SUBST(TDB_MAN_COMMENT) -dnl -dnl handle --disable-bmap-stats -dnl -AH_TEMPLATE([ENABLE_BMAP_STATS], [Define to 1 to enable bitmap stats.]) -AC_ARG_ENABLE([bmap-stats], -AS_HELP_STRING([--disable-bmap-stats],[disable collection of bitmap stats]), -if test "$enableval" = "no" -then - AC_MSG_RESULT([Disabling bitmap statistics support]) -else - AC_MSG_RESULT([Enabling bitmap statistics support]) - AC_DEFINE(ENABLE_BMAP_STATS, 1) -fi -, -AC_MSG_RESULT([Enabling bitmap statistics support by default]) -AC_DEFINE(ENABLE_BMAP_STATS, 1) -) -dnl -dnl handle --enable-bmap-stats-ops -dnl -AH_TEMPLATE([ENABLE_BMAP_STATS_OPS], [Define to 1 to enable bitmap stats.]) -AC_ARG_ENABLE([bmap-stats-ops], -AS_HELP_STRING([--enable-bmap-stats-ops],[enable collection of additional bitmap stats]), -if test "$enableval" = "no" -then - AC_MSG_RESULT([Disabling additional bitmap statistics]) -else - dnl There has to be a better way! - AS_IF([test "x${enable_bmap_stats}" = "xno"], - AC_MSG_FAILURE([Error --enable-bmap-stats-ops requires bmap-stats])) - - AC_MSG_RESULT([Enabling additional bitmap statistics]) - AC_DEFINE(ENABLE_BMAP_STATS_OPS, 1) -fi -, -AC_MSG_RESULT([Disabling additional bitmap statistics by default]) -) -dnl -dnl -dnl -MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library -AC_SUBST_FILE(MAKEFILE_LIBRARY) -dnl -dnl Add internationalization support, using gettext. -dnl -GETTEXT_PACKAGE=e2fsprogs -PACKAGE=e2fsprogs -VERSION="$E2FSPROGS_VERSION" -VERSION=0.14.1 -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) - -AM_GNU_GETTEXT([external]) -dnl -dnl End of configuration options -dnl -AC_SUBST(BINARY_TYPE) -AC_PROG_MAKE_SET -CHECK_GNU_MAKE -AC_PATH_PROG(LN, ln, ln) -AC_PROG_MKDIR_P -dnl -dnl @mkdir_p@ is used by po's Makefile.in -dnl -mkdir_p=$MKDIR_P -AC_SUBST(mkdir_p) -AC_PROG_LN_S -AC_PATH_PROG(MV, mv, mv) -AC_PATH_PROG(CP, cp, cp) -AC_PATH_PROG(RM, rm, rm) -AC_PATH_PROG(CHMOD, chmod, :) -AC_PROG_AWK -AC_PROG_EGREP -AC_PATH_PROG(SED, sed, sed) -AC_PATH_PROG(PERL, perl, perl) -AC_PATH_PROG(LDCONFIG, ldconfig, :) -AC_CHECK_TOOL(AR, ar, ar) -AC_CHECK_TOOL(RANLIB, ranlib, :) -AC_CHECK_TOOL(STRIP, strip, :) -AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, ) -if test "_$MAKEINFO" = "_"; then - MAKEINFO="echo Makeinfo is missing. Info documentation will not be built." -else - case "$MAKEINFO" in - */missing.*) - AC_MSG_WARN([ -*** Makeinfo is missing. Info documentation will not be built.]) - ;; - *) - ;; - esac -fi -AC_SUBST(MAKEINFO) -AC_PROG_INSTALL -# See if we need a separate native compiler. -if test $cross_compiling = no; then - BUILD_CC="$CC" - AC_SUBST(BUILD_CC) -else - AC_CHECK_PROGS(BUILD_CC, gcc cc) -fi -AC_CHECK_HEADERS(m4_flatten([ - dirent.h - errno.h - execinfo.h - getopt.h - malloc.h - mntent.h - paths.h - pthread.h - semaphore.h - setjmp.h - signal.h - stdarg.h - stdint.h - stdlib.h - termios.h - termio.h - unistd.h - utime.h - attr/xattr.h - linux/falloc.h - linux/fd.h - linux/fsmap.h - linux/major.h - linux/loop.h - linux/types.h - net/if_dl.h - netinet/in.h - sys/acl.h - sys/disklabel.h - sys/disk.h - sys/file.h - sys/ioctl.h - sys/key.h - sys/mkdev.h - sys/mman.h - sys/mount.h - sys/prctl.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 - sys/xattr.h -])) -dnl Check where to find a dd(1) that supports iflag=fullblock -dnl and oflag=append -AC_MSG_CHECKING([for a dd(1) program that supports iflag=fullblock]) -DD= -for i in dd gdd ; do - if "$i" if=/dev/null of=/dev/null count=1 bs=10k 2>/dev/null iflag=fullblock oflag=append ; then - DD=$i - break - fi -done -if test -n "$DD" ; then - AC_MSG_RESULT([$DD]) -else - AC_MSG_RESULT([not found, using dd]) - DD=dd - AC_MSG_WARN([No GNU-compatible dd(1) program found, expect some self-test failures.]) -fi -AC_SUBST([DD]) - -AC_CHECK_HEADERS(net/if.h,,, -[[ -#if HAVE_SYS_TYPES_H -#include -#endif -#if HAVE_SYS_SOCKET -#include -#endif -]]) -AC_FUNC_VPRINTF -dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen -dnl is not declared. -AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1, - [Define to 1 if dirent has d_reclen])],, - [#include ]) -AC_CHECK_MEMBERS([struct stat.st_atim]) -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 ]) -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, 1, - [Define to 1 if llseek declared in unistd.h])],, - [#include ]) -dnl -dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files -dnl are so convoluted that I can't tell whether it will always be defined, -dnl and if it isn't defined while lseek64 is defined in the library, -dnl disaster will strike. -dnl -dnl Warning! Use of --enable-gcc-wall may throw off this test. -dnl -dnl -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 ]) -dnl -dnl Word sizes... -dnl -AC_CHECK_SIZEOF(short) -AC_CHECK_SIZEOF(int) -AC_CHECK_SIZEOF(long) -AC_CHECK_SIZEOF(long long) -AC_CHECK_SIZEOF(off_t) -AC_CHECK_SIZEOF(time_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 -SIZEOF_TIME_T=$ac_cv_sizeof_time_t -AC_SUBST(SIZEOF_SHORT) -AC_SUBST(SIZEOF_INT) -AC_SUBST(SIZEOF_LONG) -AC_SUBST(SIZEOF_LONG_LONG) -AC_SUBST(SIZEOF_OFF_T) -AC_SUBST(SIZEOF_TIME_T) -AC_C_BIGENDIAN -if test $cross_compiling = no; then - BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh -else - CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh -fi -ASM_TYPES_HEADER=./asm_types.h -AC_SUBST_FILE(ASM_TYPES_HEADER) -dnl -dnl Save the configuration #defines needed for the public ext2fs.h -dnl header file -dnl -echo "/* These defines are needed for the public ext2fs.h header file */" \ - > public_config.h -if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then - uniq tmp_config.$$ >> public_config.h -else - echo "#undef HAVE_SYS_TYPES_H" >> public_config.h -fi -if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then - uniq tmp_config.$$ >> public_config.h -else - echo "#undef WORDS_BIGENDIAN" >> public_config.h -fi -rm -f tmp_config.$$ -PUBLIC_CONFIG_HEADER=./public_config.h -AC_SUBST_FILE(PUBLIC_CONFIG_HEADER) -dnl -dnl See if we have inttypes.h and if intptr_t is defined -dnl -AC_CHECK_HEADERS([inttypes.h]) -AC_CHECK_TYPES(intptr_t) -dnl -dnl See if struct stat has a st_flags field, in which case we can get file -dnl flags somewhat portably. Also check for the analogous setter, chflags(). -dnl -AC_MSG_CHECKING(whether struct stat has a st_flags field) -AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags, - AC_TRY_COMPILE([#include ], - [struct stat stat; stat.st_flags = 0;], - [e2fsprogs_cv_struct_st_flags=yes], - [e2fsprogs_cv_struct_st_flags=no])) -AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags) -if test "$e2fsprogs_cv_struct_st_flags" = yes; then - AC_MSG_CHECKING(whether st_flags field is useful) - AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut, - AC_TRY_COMPILE([#include ], - [struct stat stat; stat.st_flags |= UF_IMMUTABLE;], - [e2fsprogs_cv_struct_st_flags_immut=yes], - [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, 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 to 1 if if struct sockaddr contains sa_len]),, - [#include - #include ]) -dnl -dnl If we are using the system-provided blkid library, check for -dnl the functions added after migrating that library to util-linux -dnl -if test -n "$BLKID_CMT"; then - AC_CHECK_LIB(blkid, blkid_probe_get_topology, - AC_DEFINE(HAVE_BLKID_PROBE_GET_TOPOLOGY, 1, - [Define to 1 if blkid has blkid_probe_get_topology])) - AC_CHECK_LIB(blkid, blkid_topology_get_dax, - AC_DEFINE(HAVE_BLKID_TOPOLOGY_GET_DAX, 1, - [Define to 1 if blkid has blkid_topology_get_dax])) - AC_CHECK_LIB(blkid, blkid_probe_enable_partitions, - AC_DEFINE(HAVE_BLKID_PROBE_ENABLE_PARTITIONS, 1, - [Define to 1 if blkid has blkid_probe_enable_partitions])) -fi -dnl -if test -n "$DLOPEN_LIB" ; then - ac_cv_func_dlopen=yes -fi -AC_CHECK_FUNCS(m4_flatten([ - __secure_getenv - add_key - backtrace - chflags - dlopen - fadvise64 - fallocate - fallocate64 - fchown - fcntl - fdatasync - fstat64 - fsync - ftruncate64 - futimes - getcwd - getdtablesize - gethostname - getmntinfo - getpwuid_r - getrlimit - getrusage - jrand48 - keyctl - llistxattr - llseek - lseek64 - mallinfo - mbstowcs - memalign - mempcpy - mmap - msync - nanosleep - open64 - pathconf - posix_fadvise - posix_fadvise64 - posix_memalign - prctl - pread - pwrite - pread64 - pwrite64 - secure_getenv - setmntent - setresgid - setresuid - snprintf - srandom - stpcpy - strcasecmp - strdup - strnlen - strptime - strtoull - sync_file_range - sysconf - usleep - utime - utimes - 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 -dnl -SOCKET_LIB='' -AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket]) -AC_SUBST(SOCKET_LIB) -dnl -dnl See if libmagic exists -dnl -AC_CHECK_LIB(magic, magic_file, [MAGIC_LIB=-lmagic -AC_CHECK_HEADERS([magic.h])]) -if test "$ac_cv_func_dlopen" = yes ; then - MAGIC_LIB=$DLOPEN_LIB -fi -AC_SUBST(MAGIC_LIB) -dnl -dnl Check to see if librt is required for clock_gettime() (glibc < 2.17) -dnl -AC_CHECK_LIB(rt, clock_gettime, [CLOCK_GETTIME_LIB=-lrt]) -AC_SUBST(CLOCK_GETTIME_LIB) -dnl -dnl Check to see if the FUSE library is -lfuse or -losxfuse -dnl -FUSE_CMT= -FUSE_LIB= -dnl osxfuse.dylib supersedes fuselib.dylib -AC_ARG_ENABLE([fuse2fs], -AS_HELP_STRING([--disable-fuse2fs],[do not build fuse2fs]), -if test "$enableval" = "no" -then - FUSE_CMT="#" - AC_MSG_RESULT([Disabling fuse2fs]) -else - AC_CHECK_HEADERS([pthread.h fuse.h], [], -[AC_MSG_FAILURE([Cannot find fuse2fs headers.])], -[#define _FILE_OFFSET_BITS 64 -#define FUSE_USE_VERSION 29]) - - AC_PREPROC_IFELSE( -[AC_LANG_PROGRAM([[#define FUSE_USE_VERSION 29 -#ifdef __linux__ -#include -#include -#include -#endif -]], [])], [], [AC_MSG_FAILURE([Cannot find fuse2fs Linux headers.])]) - - AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse], - [AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse], - [AC_MSG_FAILURE([Cannot find fuse library.])])]) - AC_MSG_RESULT([Enabling fuse2fs]) -fi -, -AC_CHECK_HEADERS([pthread.h fuse.h], [], [FUSE_CMT="#"], -[#define _FILE_OFFSET_BITS 64 -#define FUSE_USE_VERSION 29 -#ifdef __linux__ -# include -# include -# include -#endif]) -if test -z "$FUSE_CMT" -then - AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse], -[AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse], [FUSE_CMT="#"])]) -fi -if test -z "$FUSE_CMT" -then - AC_MSG_RESULT([Enabling fuse2fs by default.]) -fi -) -AC_SUBST(FUSE_LIB) -AC_SUBST(FUSE_CMT) -dnl -dnl See if optreset exists -dnl -AC_MSG_CHECKING(for optreset) -AC_CACHE_VAL(ac_cv_have_optreset, -[AC_EGREP_HEADER(optreset, unistd.h, - 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, 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='' -echo GL_THREADS_API: ${gl_threads_api} -if test "${gl_threads_api}" != none -then - AC_CHECK_FUNC(sem_init, , - AC_CHECK_LIB(pthread, sem_init, - AC_DEFINE(HAVE_SEM_INIT, 1) - SEM_INIT_LIB=-lpthread, - AC_CHECK_LIB(rt, sem_init, - AC_DEFINE(HAVE_SEM_INIT, 1) - SEM_INIT_LIB=-lrt, - AC_CHECK_LIB(posix4, sem_init, - AC_DEFINE(HAVE_SEM_INIT, 1) - SEM_INIT_LIB=-lposix4))))dnl -fi -AC_SUBST(SEM_INIT_LIB) -dnl -dnl Check for unified diff -dnl -AC_MSG_CHECKING(for unified diff option) -if diff -u $0 $0 > /dev/null 2>&1 ; then - UNI_DIFF_OPTS=-u -else - UNI_DIFF_OPTS=-c -fi -AC_MSG_RESULT($UNI_DIFF_OPTS) -AC_SUBST(UNI_DIFF_OPTS) -dnl -dnl We use the EXT2 ioctls only under Linux -dnl -case "$host_os" in -linux*) - AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present]) - ;; -esac -dnl -dnl Check the available mount options -dnl -AX_CHECK_MOUNT_OPT(nosuid) -AX_CHECK_MOUNT_OPT(nodev) -dnl Enable LTO for all packages -dnl -AC_ARG_ENABLE([lto], -AS_HELP_STRING([--enable-lto],[enable link time optimization]),, -enable_lto=no) -if test "$enable_lto" = "yes" || test "$enable_lto" = "probe"; then - AC_MSG_CHECKING([if C compiler supports LTO]) - OLD_CFLAGS="$CFLAGS" - OLD_LDFLAGS="$LDFLAGS" - LTO_FLAGS="-g -flto -ffat-lto-objects" - CFLAGS="$CFLAGS $LTO_FLAGS" - LDFLAGS="$LDFLAGS $LTO_FLAGS" - AC_LINK_IFELSE([AC_LANG_PROGRAM([])], - [AC_MSG_RESULT([yes])] - [lto_cflags=$LTO_FLAGS] - [lto_ldflags=$LTO_FLAGS] - [AC_PATH_PROG(gcc_ar, gcc-ar,,)] - [AC_PATH_PROG(gcc_ranlib, gcc-ranlib,,)], - [AC_MSG_RESULT([no])]) - if test -x "$gcc_ar" && test -x "$gcc_ranlib"; then - have_lto=yes - AR="${gcc_ar}" - RANLIB="${gcc_ranlib}" - fi - CFLAGS="${OLD_CFLAGS}" - LDFLAGS="${OLD_LDFLAGS}" - AC_SUBST(have_lto) - AC_SUBST(lto_cflags) - AC_SUBST(lto_ldflags) -fi -if test "$enable_lto" = "yes" && test "$have_lto" != "yes"; then - AC_MSG_ERROR([LTO not supported by compiler.]) -fi -dnl -dnl Enable UBSAN for all packages -dnl -AC_ARG_ENABLE([ubsan], -AS_HELP_STRING([--enable-ubsan],[enable undefined behavior sanitizer]),, -enable_ubsan=no) -if test "$enable_ubsan" = "yes" || test "$enable_ubsan" = "probe"; then - AC_MSG_CHECKING([if C compiler supports UBSAN]) - OLD_CFLAGS="$CFLAGS" - OLD_LDFLAGS="$LDFLAGS" - UBSAN_FLAGS="-fsanitize=undefined" - CFLAGS="$CFLAGS $UBSAN_FLAGS" - LDFLAGS="$LDFLAGS $UBSAN_FLAGS" - AC_LINK_IFELSE([AC_LANG_PROGRAM([])], - [AC_MSG_RESULT([yes])] - [ubsan_cflags=$UBSAN_FLAGS] - [ubsan_ldflags=$UBSAN_FLAGS] - [have_ubsan=yes], - [AC_MSG_RESULT([no])]) - CFLAGS="${OLD_CFLAGS}" - LDFLAGS="${OLD_LDFLAGS}" - AC_SUBST(have_ubsan) - AC_SUBST(ubsan_cflags) - AC_SUBST(ubsan_ldflags) -fi -if test "$enable_ubsan" = "yes" && test "$have_ubsan" != "yes"; then - AC_MSG_ERROR([UBSAN not supported by compiler.]) -fi -dnl -dnl Enable ADDRSAN for all packages -dnl -AC_ARG_ENABLE([addrsan], -AS_HELP_STRING([--enable-addrsan],[enable address sanitizer]),, -enable_addrsan=no) -if test "$enable_addrsan" = "yes" || test "$enable_addrsan" = "probe"; then - AC_MSG_CHECKING([if C compiler supports ADDRSAN]) - OLD_CFLAGS="$CFLAGS" - OLD_LDFLAGS="$LDFLAGS" - ADDRSAN_FLAGS="-fsanitize=address" - CFLAGS="$CFLAGS $ADDRSAN_FLAGS" - LDFLAGS="$LDFLAGS $ADDRSAN_FLAGS" - AC_LINK_IFELSE([AC_LANG_PROGRAM([])], - [AC_MSG_RESULT([yes])] - [addrsan_cflags=$ADDRSAN_FLAGS] - [addrsan_ldflags=$ADDRSAN_FLAGS] - [have_addrsan=yes], - [AC_MSG_RESULT([no])]) - CFLAGS="${OLD_CFLAGS}" - LDFLAGS="${OLD_LDFLAGS}" - AC_SUBST(have_addrsan) - AC_SUBST(addrsan_cflags) - AC_SUBST(addrsan_ldflags) -fi -if test "$enable_addrsan" = "yes" && test "$have_addrsan" != "yes"; then - AC_MSG_ERROR([ADDRSAN not supported by compiler.]) -fi -dnl -dnl Enable THREADSAN for all packages -dnl -AC_ARG_ENABLE([threadsan], -AS_HELP_STRING([--enable-threadsan],[enable thread sanitizer]),, -enable_threadsan=no) -if test "$enable_threadsan" = "yes" || test "$enable_threadsan" = "probe"; then - AC_MSG_CHECKING([if C compiler supports THREADSAN]) - OLD_CFLAGS="$CFLAGS" - OLD_LDFLAGS="$LDFLAGS" - THREADSAN_FLAGS="-fsanitize=thread" - CFLAGS="$CFLAGS $THREADSAN_FLAGS" - LDFLAGS="$LDFLAGS $THREADSAN_FLAGS" - AC_LINK_IFELSE([AC_LANG_PROGRAM([])], - [AC_MSG_RESULT([yes])] - [threadsan_cflags=$THREADSAN_FLAGS] - [threadsan_ldflags=$THREADSAN_FLAGS] - [have_threadsan=yes], - [AC_MSG_RESULT([no])]) - CFLAGS="${OLD_CFLAGS}" - LDFLAGS="${OLD_LDFLAGS}" - AC_SUBST(have_threadsan) - AC_SUBST(threadsan_cflags) - AC_SUBST(threadsan_ldflags) -fi -if test "$enable_threadsan" = "yes" && test "$have_threadsan" != "yes"; then - AC_MSG_ERROR([THREADSAN not supported by compiler.]) -fi -if test "$have_threadsan" = "yes" && test "$have_addrsan" = "yes"; then - AC_MSG_WARN([ADDRSAN and THREADSAN are not known to work together.]) -fi -dnl -dnl OS-specific uncomment control -dnl -LINUX_CMT="#" -CYGWIN_CMT="#" -UNIX_CMT= -case "$host_os" in -linux*) - LINUX_CMT= - ;; -cygwin) - CYGWIN_CMT= - UNIX_CMT="#" - ;; -esac -AC_SUBST(LINUX_CMT) -AC_SUBST(CYGWIN_CMT) -AC_SUBST(UNIX_CMT) -dnl -dnl e2scrub only builds on linux -dnl -E2SCRUB_CMT="$LINUX_CMT" -AC_SUBST(E2SCRUB_CMT) -dnl -dnl Linux and Hurd places root files in the / by default -dnl -case "$host_os" in -linux* | gnu* | k*bsd*-gnu) - if test "$prefix" = NONE -a "$root_prefix" = NONE ; then - root_prefix=""; - AC_MSG_RESULT([On $host_os systems, root_prefix defaults to '']) - fi - ;; -esac -dnl -dnl On Linux/hurd, force the prefix to be /usr -dnl -case "$host_os" in -linux* | gnu* | k*bsd*-gnu) - if test "$prefix" = NONE ; then - prefix="/usr"; - AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr]) - if test "$mandir" = '${prefix}/man' ; then - AC_MSG_RESULT([...and mandir defaults to /usr/share/man]) - mandir=/usr/share/man - fi - fi -;; -esac -if test "$root_prefix" = NONE ; then - if test "$prefix" = NONE ; then - root_prefix="$ac_default_prefix" - else - root_prefix="$prefix" - fi - root_bindir=$bindir - root_sbindir=$sbindir - root_libdir=$libdir - root_sysconfdir=$sysconfdir -else - root_bindir='${root_prefix}/bin' - root_sbindir='${root_prefix}/sbin' - root_libdir='${root_prefix}/lib' - root_sysconfdir='${root_prefix}/etc' -fi -if test "$bindir" != '${exec_prefix}/bin'; then - root_bindir=$bindir - AC_MSG_RESULT([Setting root_bindir to $root_bindir]) -fi -if test "$sbindir" != '${exec_prefix}/sbin'; then - root_sbindir=$sbindir - AC_MSG_RESULT([Setting root_sbindir to $root_sbindir]) -fi -if test "$libdir" != '${exec_prefix}/lib'; then - root_libdir=$libdir - AC_MSG_RESULT([Setting root_libdir to $root_libdir]) -fi -if test "$sysconfdir" != '${prefix}/etc'; then - root_sysconfdir=$sysconfdir - AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir]) -fi -AC_SUBST(root_prefix) -AC_SUBST(root_bindir) -AC_SUBST(root_sbindir) -AC_SUBST(root_libdir) -AC_SUBST(root_sysconfdir) -dnl -dnl Allow specification of the multiarch arch -dnl -AC_ARG_WITH([multiarch], -AS_HELP_STRING([--with-multiarch=ARCH],[specify the multiarch triplet]), -if test "$withval" = "lib64"; then - libdir=/usr/lib64 - root_libdir=/lib64 -else - libdir=$libdir/$withval - root_libdir=$root_libdir/$withval -fi -) -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 -static" -AC_TRY_LINK([#include ],[fflush(stdout);], - ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no) -LDFLAGS=$SAVE_LDFLAGS]) -dnl -dnl Regardless of how the test turns out, Solaris doesn't handle -static -dnl This is caused by the socket library requiring the nsl library, which -dnl requires the -dl library, which only works for dynamically linked -dnl programs. It basically means you can't have statically linked programs -dnl which use the network under Solaris. -dnl -case "$host_os" in -solaris2.*) - ac_cv_e2fsprogs_use_static=no -;; -esac -AC_MSG_RESULT($ac_cv_e2fsprogs_use_static) -if test $ac_cv_e2fsprogs_use_static = yes; then - LDFLAGS_STATIC="$LDFLAGS_STATIC -static" -fi -AC_SUBST(LDFLAGS_STATIC) -dnl -dnl Work around mysterious Darwin / GNU libintl problem -dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like -dnl Apple hacked gcc somehow?) -dnl -case "$host_os" in -darwin*) - AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround]) - AC_DEFINE(_INTL_REDIRECT_MACROS, 1, - [Define to 1 if Apple Darwin libintl workaround is needed]) - ;; -esac -dnl -dnl Only try to run the test suite if we're not cross compiling. -dnl -if test "$cross_compiling" = yes ; then - DO_TEST_SUITE= -else - DO_TEST_SUITE=check -fi -AC_SUBST(DO_TEST_SUITE) -dnl -dnl Only include the intl include files if we're building with them -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 - INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl' -fi -if test -n "$WITH_DIET_LIBC" ; then - INCLUDES="$INCLUDES -D_REENTRANT" -fi -AC_SUBST(INCLUDES) -dnl -dnl Build CFLAGS -dnl -if test $cross_compiling = no; then - BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H" - BUILD_LDFLAGS="$LDFLAGS" -fi -AC_SUBST(BUILD_CFLAGS) -AC_SUBST(BUILD_LDFLAGS) -dnl -dnl Define CFLAGS and LDFLAGS for shared libraries -dnl -CFLAGS_SHLIB=${CFLAGS_SHLIB:-$CFLAGS} -CFLAGS_STLIB=${CFLAGS_STLIB:-$CFLAGS} -LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS} -AC_SUBST(CFLAGS_SHLIB) -AC_SUBST(CFLAGS_STLIB) -AC_SUBST(LDFLAGS_SHLIB) - -dnl -dnl Where do udev rules go? -dnl -AC_ARG_WITH([udev_rules_dir], - [AS_HELP_STRING([--with-udev-rules-dir@<:@=DIR@:>@], - [Install udev rules into DIR.])], - [], - [with_udev_rules_dir=yes]) -AS_IF([test "x${with_udev_rules_dir}" != "xno"], - [ - AS_IF([test "x${with_udev_rules_dir}" = "xyes"], - [ - PKG_CHECK_MODULES([udev], [udev], - [ - with_udev_rules_dir="$($PKG_CONFIG --variable=udevdir udev)/rules.d" - ], [ - with_udev_rules_dir="" - ]) - ]) - AC_MSG_CHECKING([for udev rules dir]) - pkg_udev_rules_dir="${with_udev_rules_dir}" - AS_IF([test -n "${pkg_udev_rules_dir}"], - [ - AC_MSG_RESULT(${pkg_udev_rules_dir}) - have_udev="yes" - ], - [ - AC_MSG_RESULT(no) - have_udev="no" - ]) - ], - [ - have_udev="disabled" - ]) -AC_SUBST(have_udev) -AC_SUBST(pkg_udev_rules_dir) - -dnl -dnl Where do cron jobs go? -dnl -AC_ARG_WITH([crond_dir], - [AS_HELP_STRING([--with-crond-dir@<:@=DIR@:>@], - [Install system crontabs into DIR.])], - [], - [with_crond_dir=yes]) -AS_IF([test "x${with_crond_dir}" != "xno"], - [ - AS_IF([test "x${with_crond_dir}" = "xyes"], - [ - AS_IF([test -d "/etc/cron.d"], - [with_crond_dir="/etc/cron.d"], - [have_crond="no"; with_crond_dir=""]) - ]) - AC_MSG_CHECKING([for system crontab dir]) - crond_dir="${with_crond_dir}" - AS_IF([test -n "${crond_dir}"], - [ - AC_MSG_RESULT(${crond_dir}) - have_crond="yes" - ], - [ - AC_MSG_RESULT(no) - have_crond="no" - ]) - ], - [ - have_crond="disabled" - ]) -AC_SUBST(have_crond) -AC_SUBST(crond_dir) - -dnl -dnl Where do systemd services go? -dnl -AC_ARG_WITH([systemd_unit_dir], - [AS_HELP_STRING([--with-systemd-unit-dir@<:@=DIR@:>@], - [Install systemd system units into DIR.])], - [], - [with_systemd_unit_dir=yes]) -AS_IF([test "x${with_systemd_unit_dir}" != "xno"], - [ - AS_IF([test "x${with_systemd_unit_dir}" = "xyes"], - [ - PKG_CHECK_MODULES([systemd], [systemd], - [ - with_systemd_unit_dir="$($PKG_CONFIG --variable=systemdsystemunitdir systemd)" - ], [ - with_systemd_unit_dir="" - ]) - m4_pattern_allow([^PKG_(MAJOR|MINOR|BUILD|REVISION)$]) - ]) - AC_MSG_CHECKING([for systemd system unit dir]) - systemd_system_unit_dir="${with_systemd_unit_dir}" - AS_IF([test -n "${systemd_system_unit_dir}"], - [ - AC_MSG_RESULT(${systemd_system_unit_dir}) - have_systemd="yes" - ], - [ - AC_MSG_RESULT(no) - have_systemd="no" - ]) - ], - [ - have_systemd="disabled" - ]) -AC_SUBST(have_systemd) -AC_SUBST(systemd_system_unit_dir) -dnl Adjust the compiled files if we are on windows vs everywhere else -dnl -OS_IO_FILE="" -[case "$host_os" in - cigwin*|mingw*|msys*) - OS_IO_FILE=windows_io - ;; - *) - OS_IO_FILE=unix_io - ;; -esac] -AC_SUBST(OS_IO_FILE) -dnl -dnl Make our output files, being sure that we create the some miscellaneous -dnl directories -dnl -test -d lib || mkdir lib -test -d include || mkdir include -test -d include/linux || mkdir include/linux -test -d include/asm || mkdir include/asm -if test -z "$UUID_CMT" ; then - uuid_out_list="lib/uuid/Makefile lib/uuid/uuid.pc \ - lib/uuid/uuid_types.h" -fi -if test -z "$BLKID_CMT" ; then - blkid_out_list="lib/blkid/Makefile lib/blkid/blkid.pc \ - lib/blkid/blkid_types.h" -fi -for i in MCONFIG Makefile \ - 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 \ - $uuid_out_list $blkid_out_list lib/support/Makefile \ - lib/ss/ss.pc lib/et/com_err.pc lib/e2p/e2p.pc lib/ext2fs/ext2fs.pc \ - misc/Makefile ext2ed/Makefile e2fsck/Makefile \ - debugfs/Makefile tests/Makefile tests/progs/Makefile \ - resize/Makefile doc/Makefile po/Makefile.in scrub/Makefile; do - if test -d `dirname ${srcdir}/$i` ; then - outlist="$outlist $i" - fi -done -AC_OUTPUT($outlist) -if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi diff --git a/contrib/Android.bp b/contrib/Android.bp deleted file mode 100644 index 7f9cfe96..00000000 --- a/contrib/Android.bp +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2017 The Android Open Source Project - -package { - // See: http://go/android-license-faq - // A large-scale-change added 'default_applicable_licenses' to import - // all of the 'license_kinds' from "external_e2fsprogs_license" - // to get the below license kinds: - // SPDX-license-identifier-Apache-2.0 - // SPDX-license-identifier-GPL - default_applicable_licenses: ["external_e2fsprogs_license"], -} - -subdirs = ["android"] - -//######################################################################## -// Build add_ext4_encrypt - -cc_binary { - name: "add_ext4_encrypt", - host_supported: true, - defaults: ["e2fsprogs-defaults"], - - srcs: ["add_ext4_encrypt.c"], - shared_libs: [ - "libext2fs", - "libext2_com_err", - ], -} diff --git a/contrib/add_ext4_encrypt.c b/contrib/add_ext4_encrypt.c deleted file mode 100644 index 133fe253..00000000 --- a/contrib/add_ext4_encrypt.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Basic program to add ext4 encryption to a file system - * - * Copyright 2015, Google, Inc. - * - * %Begin-Header% - * This file may be redistributed under the terms of the GNU Public - * License. - * %End-Header% - */ - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -int main (int argc, char *argv[]) -{ - errcode_t retval = 0; - ext2_filsys fs; - - setbuf(stdout, NULL); - setbuf(stderr, NULL); - initialize_ext2_error_table(); - - if (argc != 2) { - fprintf(stderr, "%s: Usage \n", argv[0]); - exit(1); - } - - retval = ext2fs_open(argv[1], EXT2_FLAG_RW, 0, 0, - unix_io_manager, &fs); - - if (retval) { - com_err(argv[0], retval, "while trying to open '%s'", - argv[1]); - exit(1); - } - if (!ext2fs_has_feature_encrypt(fs->super)) { - ext2fs_set_feature_encrypt(fs->super); - fs->super->s_encrypt_algos[0] = - EXT4_ENCRYPTION_MODE_AES_256_XTS; - fs->super->s_encrypt_algos[1] = - EXT4_ENCRYPTION_MODE_AES_256_CTS; - ext2fs_mark_super_dirty(fs); - printf("Ext4 encryption enabled on %s\n", argv[1]); - } else - printf("Ext4 encryption already enabled on %s\n", argv[1]); - - retval = ext2fs_close(fs); - if (retval) { - com_err(argv[0], retval, "while trying to close '%s'", - argv[1]); - exit(1); - } - return (0); -} - diff --git a/contrib/android/Android.bp b/contrib/android/Android.bp deleted file mode 100644 index c33ebf49..00000000 --- a/contrib/android/Android.bp +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2017 The Android Open Source Project - -//########################################################################## -// Build e2fsdroid - -package { - // See: http://go/android-license-faq - // A large-scale-change added 'default_applicable_licenses' to import - // all of the 'license_kinds' from "external_e2fsprogs_license" - // to get the below license kinds: - // SPDX-license-identifier-Apache-2.0 - default_applicable_licenses: ["external_e2fsprogs_license"], -} - -cc_binary { - name: "e2fsdroid", - host_supported: true, - recovery_available: true, - defaults: ["e2fsprogs-defaults"], - - srcs: [ - "e2fsdroid.c", - "block_range.c", - "fsmap.c", - "block_list.c", - "base_fs.c", - "perms.c", - "basefs_allocator.c", - ], - target: { - host: { - static_libs: [ - "libext2_com_err", - "libext2_misc", - "libext2fs", - "libsparse", - "libz", - "libcutils", - "libbase", - "libselinux", - "libcrypto", - "liblog", - ], - sanitize: { - address: false, // http://b/68387795 - heap overflow in e2fsdroid - }, - }, - android: { - shared_libs: [ - "libext2fs", - "libext2_com_err", - "libext2_misc", - "libcutils", - "libbase", - "libselinux", - "libcrypto", - ], - }, - }, - stl: "libc++_static", -} - -//########################################################################## -// Build ext2simg - -cc_binary { - name: "ext2simg", - host_supported: true, - defaults: ["e2fsprogs-defaults"], - - srcs: ["ext2simg.c"], - shared_libs: [ - "libext2fs", - "libext2_com_err", - "libsparse", - "libz", - ], -} diff --git a/contrib/android/BUILD.gn b/contrib/android/BUILD.gn deleted file mode 100644 index 58cd3b1d..00000000 --- a/contrib/android/BUILD.gn +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright (c) 2021 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import("//build/ohos.gni") -import("//build/ohos_var.gni") -import("//developtools/profiler/build/config.gni") - -ohos_static_library("libdacconfig") { - output_name = "libdacconfig" - - sources = [ "dac_config.cpp" ] - - part_name = "e2fsprogs" - subsystem_name = "thirdparty" -} -config("e2fsprogs-defaults") { - cflags = [ - "-Wno-incompatible-pointer-types", - "-Wno-tautological-constant-out-of-range-compare", - ] -} - -###################################################### -##Build e2fsdroid -ohos_executable("e2fsdroid") { - configs = [ ":e2fsprogs-defaults" ] - - defines = [ "HAVE_SYS_TYPES_H" ] - sources = [ - "base_fs.c", - "basefs_allocator.c", - "block_list.c", - "block_range.c", - "e2fsdroid.c", - "fsmap.c", - "perms.c", - ] - - include_dirs = [ - ".", - "//third_party/e2fsprogs/lib", - "//third_party/e2fsprogs/lib/ext2fs", - "//third_party/e2fsprogs/misc", - "//third_party/selinux/libselinux/include", - ] - - deps = [ - "//third_party/e2fsprogs/contrib/android:libdacconfig", - "//third_party/e2fsprogs/lib/et:libext2_com_err", - "//third_party/e2fsprogs/lib/ext2fs:libext2fs", - "//third_party/e2fsprogs/misc:libext2_misc", - "//third_party/selinux:libselinux", - ] - - install_enable = true - subsystem_name = "thirdparty" - part_name = "e2fsprogs" - install_images = [ - "system", - "updater", - ] -} diff --git a/contrib/android/base_fs.c b/contrib/android/base_fs.c deleted file mode 100644 index d3e00d18..00000000 --- a/contrib/android/base_fs.c +++ /dev/null @@ -1,211 +0,0 @@ -#include "base_fs.h" -#include - -#define BASE_FS_VERSION "Base EXT4 version 1.0" - -struct base_fs { - FILE *file; - const char *mountpoint; - struct basefs_entry entry; -}; - -static FILE *basefs_open(const char *file) -{ - char *line = NULL; - size_t len; - FILE *f = fopen(file, "r"); - if (!f) - return NULL; - - if (getline(&line, &len, f) == -1 || !line) - goto err_getline; - - if (strncmp(line, BASE_FS_VERSION, strlen(BASE_FS_VERSION))) - goto err_header; - - free(line); - return f; - -err_header: - free(line); -err_getline: - fclose(f); - return NULL; -} - -static struct basefs_entry *basefs_readline(FILE *f, const char *mountpoint, - int *err) -{ - char *line = NULL, *saveptr1, *saveptr2, *block_range, *block; - int offset; - size_t len; - struct basefs_entry *entry = NULL; - blk64_t range_start, range_end; - - if (getline(&line, &len, f) == -1) { - if (feof(f)) - goto end; - goto err_getline; - } - - entry = calloc(1, sizeof(*entry)); - if (!entry) - goto err_alloc; - - /* - * With BASEFS version 1.0, a typical line looks like this: - * /bin/mke2fs 5000-5004,8000,9000-9990 - */ - if (sscanf(line, "%ms%n", &entry->path, &offset) != 1) - goto err_sscanf; - len = strlen(mountpoint); - memmove(entry->path, entry->path + len, strlen(entry->path) - len + 1); - - while (line[offset] == ' ') - ++offset; - - block_range = strtok_r(line + offset, ",\n", &saveptr1); - while (block_range) { - block = strtok_r(block_range, "-", &saveptr2); - if (!block) - break; - range_start = atoll(block); - block = strtok_r(NULL, "-", &saveptr2); - range_end = block ? atoll(block) : range_start; - add_blocks_to_range(&entry->blocks, range_start, range_end); - block_range = strtok_r(NULL, ",\n", &saveptr1); - } -end: - *err = 0; - free(line); - return entry; - -err_sscanf: - free(entry); -err_alloc: - free(line); -err_getline: - *err = 1; - return NULL; -} - -static void free_base_fs_entry(void *e) -{ - struct basefs_entry *entry = e; - if (entry) { - free(entry->path); - free(entry); - } -} - -struct ext2fs_hashmap *basefs_parse(const char *file, const char *mountpoint) -{ - int err; - struct ext2fs_hashmap *entries = NULL; - struct basefs_entry *entry; - FILE *f = basefs_open(file); - if (!f) - return NULL; - entries = ext2fs_hashmap_create(ext2fs_djb2_hash, free_base_fs_entry, 1024); - if (!entries) - goto end; - - while ((entry = basefs_readline(f, mountpoint, &err))) { - err = ext2fs_hashmap_add(entries, entry, entry->path, - strlen(entry->path)); - if (err) { - free_base_fs_entry(entry); - fclose(f); - ext2fs_hashmap_free(entries); - return NULL; - } - } - if (err) { - fclose(f); - ext2fs_hashmap_free(entries); - return NULL; - } -end: - fclose(f); - return entries; -} - -static void *init(const char *file, const char *mountpoint) -{ - struct base_fs *params = malloc(sizeof(*params)); - - if (!params) - return NULL; - params->mountpoint = mountpoint; - params->file = fopen(file, "w+"); - if (!params->file) { - free(params); - return NULL; - } - if (fwrite(BASE_FS_VERSION"\n", 1, strlen(BASE_FS_VERSION"\n"), - params->file) != strlen(BASE_FS_VERSION"\n")) { - fclose(params->file); - free(params); - return NULL; - } - return params; -} - -static int start_new_file(char *path, ext2_ino_t ino EXT2FS_ATTR((unused)), - struct ext2_inode *inode, void *data) -{ - struct base_fs *params = data; - - params->entry.path = LINUX_S_ISREG(inode->i_mode) ? path : NULL; - return 0; -} - -static int add_block(ext2_filsys fs EXT2FS_ATTR((unused)), blk64_t blocknr, - int metadata, void *data) -{ - struct base_fs *params = data; - - if (params->entry.path && !metadata) - add_blocks_to_range(¶ms->entry.blocks, blocknr, blocknr); - return 0; -} - -static int inline_data(void *inline_data EXT2FS_ATTR((unused)), - void *data EXT2FS_ATTR((unused))) -{ - return 0; -} - -static int end_new_file(void *data) -{ - struct base_fs *params = data; - - if (!params->entry.path) - return 0; - if (fprintf(params->file, "%s%s ", params->mountpoint, - params->entry.path) < 0 - || write_block_ranges(params->file, params->entry.blocks.head, ",") - || fwrite("\n", 1, 1, params->file) != 1) - return -1; - - delete_block_ranges(¶ms->entry.blocks); - return 0; -} - -static int cleanup(void *data) -{ - struct base_fs *params = data; - - fclose(params->file); - free(params); - return 0; -} - -struct fsmap_format base_fs_format = { - .init = init, - .start_new_file = start_new_file, - .add_block = add_block, - .inline_data = inline_data, - .end_new_file = end_new_file, - .cleanup = cleanup, -}; diff --git a/contrib/android/base_fs.h b/contrib/android/base_fs.h deleted file mode 100644 index f53f1ed8..00000000 --- a/contrib/android/base_fs.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef BASE_FS_H -# define BASE_FS_H - -# include "fsmap.h" -# include "hashmap.h" -# include "block_range.h" - -struct basefs_entry { - char *path; - struct block_range_list blocks; -}; - -extern struct fsmap_format base_fs_format; - -struct ext2fs_hashmap *basefs_parse(const char *file, const char *mountpoint); - -#endif /* !BASE_FS_H */ diff --git a/contrib/android/basefs_allocator.c b/contrib/android/basefs_allocator.c deleted file mode 100644 index 4f9f5c15..00000000 --- a/contrib/android/basefs_allocator.c +++ /dev/null @@ -1,388 +0,0 @@ -#include -#include -#include -#include "basefs_allocator.h" -#include "block_range.h" -#include "hashmap.h" -#include "base_fs.h" - -struct base_fs_allocator { - struct ext2fs_hashmap *entries; - struct basefs_entry *cur_entry; - /* The next expected logical block to allocate for cur_entry. */ - blk64_t next_lblk; - /* Blocks which are definitely owned by a single inode in BaseFS. */ - ext2fs_block_bitmap exclusive_block_map; - /* Blocks which are available to the first inode that requests it. */ - ext2fs_block_bitmap dedup_block_map; -}; - -static errcode_t basefs_block_allocator(ext2_filsys, blk64_t, blk64_t *, - struct blk_alloc_ctx *ctx); - -/* - * Free any reserved, but unconsumed block ranges in the allocator. This both - * frees the block_range_list data structure and unreserves exclusive blocks - * from the block map. - */ -static void fs_free_blocks_range(ext2_filsys fs, - struct base_fs_allocator *allocator, - struct block_range_list *list) -{ - ext2fs_block_bitmap exclusive_map = allocator->exclusive_block_map; - - blk64_t block; - while (list->head) { - block = consume_next_block(list); - if (ext2fs_test_block_bitmap2(exclusive_map, block)) { - ext2fs_unmark_block_bitmap2(fs->block_map, block); - ext2fs_unmark_block_bitmap2(exclusive_map, block); - } - } -} - -/* - * Free any blocks in the bitmap that were reserved but never used. This is - * needed to free dedup_block_map and ensure the free block bitmap is - * internally consistent. - */ -static void fs_free_blocks_bitmap(ext2_filsys fs, ext2fs_block_bitmap bitmap) -{ - blk64_t block = 0; - blk64_t start = fs->super->s_first_data_block; - blk64_t end = ext2fs_blocks_count(fs->super) - 1; - errcode_t retval; - - for (;;) { - retval = ext2fs_find_first_set_block_bitmap2(bitmap, start, end, - &block); - if (retval) - break; - ext2fs_unmark_block_bitmap2(fs->block_map, block); - start = block + 1; - } -} - -static void basefs_allocator_free(ext2_filsys fs, - struct base_fs_allocator *allocator) -{ - struct basefs_entry *e; - struct ext2fs_hashmap_entry *it = NULL; - struct ext2fs_hashmap *entries = allocator->entries; - - if (entries) { - while ((e = ext2fs_hashmap_iter_in_order(entries, &it))) { - fs_free_blocks_range(fs, allocator, &e->blocks); - delete_block_ranges(&e->blocks); - } - ext2fs_hashmap_free(entries); - } - fs_free_blocks_bitmap(fs, allocator->dedup_block_map); - ext2fs_free_block_bitmap(allocator->exclusive_block_map); - ext2fs_free_block_bitmap(allocator->dedup_block_map); - free(allocator); -} - -/* - * Build a bitmap of which blocks are definitely owned by exactly one file in - * Base FS. Blocks which are not valid or are de-duplicated are skipped. This - * is called during allocator initialization, to ensure that libext2fs does - * not allocate which we want to re-use. - * - * If a block was allocated in the initial filesystem, it can never be re-used, - * so it will appear in neither the exclusive or dedup set. If a block is used - * by multiple files, it will be removed from the owned set and instead added - * to the dedup set. - * - * The dedup set is not removed from fs->block_map. This allows us to re-use - * dedup blocks separately and not have them be allocated outside of file data. - * - * This function returns non-zero if the block was owned, and 0 otherwise. - */ -static int fs_reserve_block(ext2_filsys fs, - struct base_fs_allocator *allocator, - blk64_t block) -{ - ext2fs_block_bitmap exclusive_map = allocator->exclusive_block_map; - ext2fs_block_bitmap dedup_map = allocator->dedup_block_map; - - if (block >= ext2fs_blocks_count(fs->super)) - return 0; - - if (ext2fs_test_block_bitmap2(fs->block_map, block)) { - if (!ext2fs_test_block_bitmap2(exclusive_map, block)) - return 0; - ext2fs_unmark_block_bitmap2(exclusive_map, block); - ext2fs_mark_block_bitmap2(dedup_map, block); - return 0; - } else { - ext2fs_mark_block_bitmap2(fs->block_map, block); - ext2fs_mark_block_bitmap2(exclusive_map, block); - return 1; - } -} - -/* - * Walk the requested block list and reserve blocks, either into the owned - * pool or the dedup pool as appropriate. We stop once the file has enough - * owned blocks to satisfy |file_size|. This allows any extra blocks to be - * re-used, since otherwise a large block movement between files could - * trigger block allocation errors. - */ -static void fs_reserve_blocks_range(ext2_filsys fs, - struct base_fs_allocator *allocator, - struct block_range_list *list, - off_t file_size) -{ - blk64_t block; - off_t blocks_needed; - off_t blocks_acquired = 0; - struct block_range *blocks = list->head; - - blocks_needed = file_size + (fs->blocksize - 1); - blocks_needed /= fs->blocksize; - - while (blocks) { - for (block = blocks->start; block <= blocks->end; block++) { - if (fs_reserve_block(fs, allocator, block)) - blocks_acquired++; - if (blocks_acquired >= blocks_needed) - return; - } - blocks = blocks->next; - } -} - -/* - * For each file in the base FS map, ensure that its blocks are reserved in - * the actual block map. This prevents libext2fs from allocating them for - * general purpose use, and ensures that if the file needs data blocks, they - * can be re-acquired exclusively for that file. - * - * If a file in the base map is missing, or not a regular file in the new - * filesystem, then it's skipped to ensure that its blocks are reusable. - */ -static errcode_t fs_reserve_blocks(ext2_filsys fs, - struct base_fs_allocator *allocator, - const char *src_dir) -{ - int nbytes; - char full_path[PATH_MAX]; - const char *sep = "/"; - struct stat st; - struct basefs_entry *e; - struct ext2fs_hashmap_entry *it = NULL; - struct ext2fs_hashmap *entries = allocator->entries; - - if (strlen(src_dir) && src_dir[strlen(src_dir) - 1] == '/') - sep = ""; - - while ((e = ext2fs_hashmap_iter_in_order(entries, &it))) { - nbytes = snprintf(full_path, sizeof(full_path), "%s%s%s", - src_dir, sep, e->path); - if (nbytes >= sizeof(full_path)) - return ENAMETOOLONG; - if (lstat(full_path, &st) || !S_ISREG(st.st_mode)) - continue; - fs_reserve_blocks_range(fs, allocator, &e->blocks, st.st_size); - } - return 0; -} - -errcode_t base_fs_alloc_load(ext2_filsys fs, const char *file, - const char *mountpoint, const char *src_dir) -{ - errcode_t retval = 0; - struct base_fs_allocator *allocator; - - allocator = calloc(1, sizeof(*allocator)); - if (!allocator) { - retval = ENOMEM; - goto out; - } - - retval = ext2fs_read_bitmaps(fs); - if (retval) - goto err_load; - - allocator->cur_entry = NULL; - allocator->entries = basefs_parse(file, mountpoint); - if (!allocator->entries) { - retval = EIO; - goto err_load; - } - retval = ext2fs_allocate_block_bitmap(fs, "exclusive map", - &allocator->exclusive_block_map); - if (retval) - goto err_load; - retval = ext2fs_allocate_block_bitmap(fs, "dedup map", - &allocator->dedup_block_map); - if (retval) - goto err_load; - - retval = fs_reserve_blocks(fs, allocator, src_dir); - if (retval) - goto err_load; - - /* Override the default allocator */ - fs->get_alloc_block2 = basefs_block_allocator; - fs->priv_data = allocator; - - goto out; - -err_load: - basefs_allocator_free(fs, allocator); -out: - return retval; -} - -/* Try and acquire the next usable block from the Base FS map. */ -static errcode_t get_next_block(ext2_filsys fs, struct base_fs_allocator *allocator, - struct block_range_list* list, blk64_t *ret) -{ - blk64_t block; - ext2fs_block_bitmap exclusive_map = allocator->exclusive_block_map; - ext2fs_block_bitmap dedup_map = allocator->dedup_block_map; - - if (!list->head) - return EXT2_ET_BLOCK_ALLOC_FAIL; - - block = consume_next_block(list); - if (block >= ext2fs_blocks_count(fs->super)) - return EXT2_ET_BLOCK_ALLOC_FAIL; - if (ext2fs_test_block_bitmap2(exclusive_map, block)) { - ext2fs_unmark_block_bitmap2(exclusive_map, block); - *ret = block; - return 0; - } - if (ext2fs_test_block_bitmap2(dedup_map, block)) { - ext2fs_unmark_block_bitmap2(dedup_map, block); - *ret = block; - return 0; - } - return EXT2_ET_BLOCK_ALLOC_FAIL; -} - -/* - * BaseFS lists blocks in logical block order. However, the allocator hook is - * only called if a block needs to be allocated. In the case of a deduplicated - * block, or a hole, the hook is not invoked. This means the next block - * allocation request will be out of sequence. For example, consider if BaseFS - * specifies the following (0 being a hole): - * 1 2 3 0 4 5 - * - * If the new file has a hole at logical block 0, we could accidentally - * shift the entire expected block list as follows: - * 0 1 2 0 3 4 - * - * To account for this, we track the next expected logical block in the - * allocator. If the current request is for a later logical block, we skip and - * free the intermediate physical blocks that would have been allocated. This - * ensures the original block assignment is respected. - */ -static void skip_blocks(ext2_filsys fs, struct base_fs_allocator *allocator, - struct blk_alloc_ctx *ctx) -{ - blk64_t block; - struct block_range_list *list = &allocator->cur_entry->blocks; - ext2fs_block_bitmap exclusive_map = allocator->exclusive_block_map; - - while (list->head && allocator->next_lblk < ctx->lblk) { - block = consume_next_block(list); - if (block >= ext2fs_blocks_count(fs->super)) - continue; - if (ext2fs_test_block_bitmap2(exclusive_map, block)) { - ext2fs_unmark_block_bitmap2(exclusive_map, block); - ext2fs_unmark_block_bitmap2(fs->block_map, block); - } - allocator->next_lblk++; - } -} - -static errcode_t basefs_block_allocator(ext2_filsys fs, blk64_t goal, - blk64_t *ret, struct blk_alloc_ctx *ctx) -{ - errcode_t retval; - struct base_fs_allocator *allocator = fs->priv_data; - struct basefs_entry *e = allocator->cur_entry; - ext2fs_block_bitmap dedup_map = allocator->dedup_block_map; - - if (e && ctx && (ctx->flags & BLOCK_ALLOC_DATA)) { - if (allocator->next_lblk < ctx->lblk) - skip_blocks(fs, allocator, ctx); - allocator->next_lblk = ctx->lblk + 1; - - if (!get_next_block(fs, allocator, &e->blocks, ret)) - return 0; - } - - retval = ext2fs_new_block2(fs, goal, fs->block_map, ret); - if (!retval) { - ext2fs_mark_block_bitmap2(fs->block_map, *ret); - return 0; - } - if (retval != EXT2_ET_BLOCK_ALLOC_FAIL) - return retval; - - /* Try to steal a block from the dedup pool. */ - retval = ext2fs_find_first_set_block_bitmap2(dedup_map, - fs->super->s_first_data_block, - ext2fs_blocks_count(fs->super) - 1, ret); - if (!retval) { - ext2fs_unmark_block_bitmap2(dedup_map, *ret); - return 0; - } - - /* - * As a last resort, take any block from our file's list. This - * risks bloating the diff, but means we are more likely to - * successfully build an image. - */ - while (e->blocks.head) { - if (!get_next_block(fs, allocator, &e->blocks, ret)) - return 0; - } - return EXT2_ET_BLOCK_ALLOC_FAIL; -} - -void base_fs_alloc_cleanup(ext2_filsys fs) -{ - basefs_allocator_free(fs, fs->priv_data); - fs->priv_data = NULL; - fs->get_alloc_block2 = NULL; -} - -errcode_t base_fs_alloc_set_target(ext2_filsys fs, const char *target_path, - const char *name EXT2FS_ATTR((unused)), - ext2_ino_t parent_ino EXT2FS_ATTR((unused)), - ext2_ino_t root EXT2FS_ATTR((unused)), mode_t mode) -{ - struct base_fs_allocator *allocator = fs->priv_data; - - if (mode != S_IFREG) - return 0; - - if (allocator) { - allocator->cur_entry = ext2fs_hashmap_lookup(allocator->entries, - target_path, - strlen(target_path)); - allocator->next_lblk = 0; - } - return 0; -} - -errcode_t base_fs_alloc_unset_target(ext2_filsys fs, - const char *target_path EXT2FS_ATTR((unused)), - const char *name EXT2FS_ATTR((unused)), - ext2_ino_t parent_ino EXT2FS_ATTR((unused)), - ext2_ino_t root EXT2FS_ATTR((unused)), mode_t mode) -{ - struct base_fs_allocator *allocator = fs->priv_data; - - if (!allocator || !allocator->cur_entry || mode != S_IFREG) - return 0; - - fs_free_blocks_range(fs, allocator, &allocator->cur_entry->blocks); - delete_block_ranges(&allocator->cur_entry->blocks); - return 0; -} diff --git a/contrib/android/basefs_allocator.h b/contrib/android/basefs_allocator.h deleted file mode 100644 index 6d1c65e3..00000000 --- a/contrib/android/basefs_allocator.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef BASE_FS_ALLOCATOR_H -# define BASE_FS_ALLOCATOR_H - -# include -# include - -errcode_t base_fs_alloc_load(ext2_filsys fs, const char *file, - const char *mountpoint, const char *src_dir); -void base_fs_alloc_cleanup(ext2_filsys fs); - -errcode_t base_fs_alloc_set_target(ext2_filsys fs, const char *target_path, - const char *name, ext2_ino_t parent_ino, ext2_ino_t root, mode_t mode); -errcode_t base_fs_alloc_unset_target(ext2_filsys fs, const char *target_path, - const char *name, ext2_ino_t parent_ino, ext2_ino_t root, mode_t mode); - -#endif /* !BASE_FS_ALLOCATOR_H */ diff --git a/contrib/android/block_list.c b/contrib/android/block_list.c deleted file mode 100644 index 63cc1a22..00000000 --- a/contrib/android/block_list.c +++ /dev/null @@ -1,89 +0,0 @@ -#include "block_list.h" -#include "block_range.h" -#include -#include -#include -#include - -struct block_list { - FILE *f; - const char *mountpoint; - - const char *filename; - struct block_range_list blocks; -}; - -static void *init(const char *file, const char *mountpoint) -{ - struct block_list *params = calloc(1, sizeof(*params)); - - if (!params) - return NULL; - params->mountpoint = mountpoint; - params->f = fopen(file, "w+"); - if (!params->f) { - free(params); - return NULL; - } - return params; -} - -static int start_new_file(char *path, ext2_ino_t ino EXT2FS_ATTR((unused)), - struct ext2_inode *inode EXT2FS_ATTR((unused)), - void *data) -{ - struct block_list *params = data; - - params->filename = LINUX_S_ISREG(inode->i_mode) ? path : NULL; - return 0; -} - -static int add_block(ext2_filsys fs EXT2FS_ATTR((unused)), blk64_t blocknr, - int metadata, void *data) -{ - struct block_list *params = data; - - if (params->filename && !metadata) - add_blocks_to_range(¶ms->blocks, blocknr, blocknr); - return 0; -} - -static int inline_data(void *inline_data EXT2FS_ATTR((unused)), - void *data EXT2FS_ATTR((unused))) -{ - return 0; -} - -static int end_new_file(void *data) -{ - struct block_list *params = data; - - if (!params->filename || !params->blocks.head) - return 0; - if (fprintf(params->f, "%s%s ", params->mountpoint, - params->filename) < 0 - || write_block_ranges(params->f, params->blocks.head, " ") - || fwrite("\n", 1, 1, params->f) != 1) - return -1; - - delete_block_ranges(¶ms->blocks); - return 0; -} - -static int cleanup(void *data) -{ - struct block_list *params = data; - - fclose(params->f); - free(params); - return 0; -} - -struct fsmap_format block_list_format = { - .init = init, - .start_new_file = start_new_file, - .add_block = add_block, - .inline_data = inline_data, - .end_new_file = end_new_file, - .cleanup = cleanup, -}; diff --git a/contrib/android/block_list.h b/contrib/android/block_list.h deleted file mode 100644 index 47041e40..00000000 --- a/contrib/android/block_list.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef BLOCK_LIST_H -# define BLOCK_LIST_H - -# include "fsmap.h" - -extern struct fsmap_format block_list_format; - -#endif /* !BLOCK_LIST_H */ diff --git a/contrib/android/block_range.c b/contrib/android/block_range.c deleted file mode 100644 index 5a45bca0..00000000 --- a/contrib/android/block_range.c +++ /dev/null @@ -1,82 +0,0 @@ -#ifndef _GNU_SOURCE -#define _GNU_SOURCE -#endif - -#include "block_range.h" -#include - -struct block_range *new_block_range(blk64_t start, blk64_t end) -{ - struct block_range *range = malloc(sizeof(*range)); - range->start = start; - range->end = end; - range->next = NULL; - return range; -} - -void add_blocks_to_range(struct block_range_list *list, blk64_t blk_start, - blk64_t blk_end) -{ - if (list->head == NULL) - list->head = list->tail = new_block_range(blk_start, blk_end); - else if (list->tail->end + 1 == blk_start) - list->tail->end += (blk_end - blk_start + 1); - else { - struct block_range *range = new_block_range(blk_start, blk_end); - list->tail->next = range; - list->tail = range; - } -} - -static void remove_head(struct block_range_list *list) -{ - struct block_range *next_range = list->head->next; - - free(list->head); - if (next_range == NULL) - list->head = list->tail = NULL; - else - list->head = next_range; -} - -void delete_block_ranges(struct block_range_list *list) -{ - while (list->head) - remove_head(list); -} - -int write_block_ranges(FILE *f, struct block_range *range, - char *sep) -{ - int len; - char *buf; - - while (range) { - if (range->start == range->end) - len = asprintf(&buf, "%llu%s", range->start, sep); - else - len = asprintf(&buf, "%llu-%llu%s", range->start, - range->end, sep); - if (fwrite(buf, 1, len, f) != (size_t)len) { - free(buf); - return -1; - } - free(buf); - range = range->next; - } - - len = strlen(sep); - if (fseek(f, -len, SEEK_CUR) == -len) - return -1; - return 0; -} - -blk64_t consume_next_block(struct block_range_list *list) -{ - blk64_t ret = list->head->start; - - list->head->start += 1; - if (list->head->start > list->head->end) - remove_head(list); - return ret; -} diff --git a/contrib/android/block_range.h b/contrib/android/block_range.h deleted file mode 100644 index cf7971e8..00000000 --- a/contrib/android/block_range.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef BLOCK_RANGE_H -# define BLOCK_RANGE_H - -# include -# include - -struct block_range { - blk64_t start; - blk64_t end; - struct block_range *next; -}; - -struct block_range_list { - struct block_range *head; - struct block_range *tail; -}; - -void add_blocks_to_range(struct block_range_list *list, blk64_t blk_start, - blk64_t blk_end); -void delete_block_ranges(struct block_range_list *list); -int write_block_ranges(FILE *f, struct block_range *range, char *sep); - -/* - * Given a non-empty range list, return the next block and remove it from the - * list. - */ -blk64_t consume_next_block(struct block_range_list *list); - -#endif /* !BLOCK_RANGE_H */ diff --git a/contrib/android/dac_config.cpp b/contrib/android/dac_config.cpp deleted file mode 100644 index 1c76dfd7..00000000 --- a/contrib/android/dac_config.cpp +++ /dev/null @@ -1,235 +0,0 @@ -/* - * Copyright (c) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define __cpluscplus -#include "dac_config.h" - -#include -#include -#include -#include -#include -#include -#include - -using namespace std; - -namespace { -struct DacConfig { - unsigned int uid; - unsigned int gid; - unsigned int mode; - uint64_t capabilities; - string path; - - DacConfig() : uid(0), gid(0), mode(0), capabilities(0), path("") {} - DacConfig(unsigned int m, unsigned int u, unsigned int g, uint64_t c, const string &p) : - uid(u), - gid(g), - mode(m), - capabilities(c), - path(p) {} - - void SetDefault(unsigned int m, unsigned int u, unsigned int g, uint64_t c, const string &p) - { - this->uid = u; - this->gid = g; - this->mode = m; - this->capabilities = c; - this->path = p; - } -}; - -unordered_map g_configMap; - -static string Trim(const string& s) -{ - if (s.size() == 0) { - return s; - } - - size_t start = 0; - size_t end = s.size() - 1; - - while (start < s.size() && isspace(s[start])) { - start++; - } - - while (end >= start && isspace(s[end])) { - end--; - } - - if (end < start) { - return ""; - } - - return s.substr(start, end - start + 1); -} - -unordered_map g_capStrCapNum = { - { "CAP_CHOWN", CAP_CHOWN }, - { "CAP_DAC_OVERRIDE", CAP_DAC_OVERRIDE }, - { "CAP_DAC_READ_SEARCH", CAP_DAC_READ_SEARCH }, - { "CAP_FOWNER", CAP_FOWNER }, - { "CAP_FSETID", CAP_FSETID }, - { "CAP_KILL", CAP_KILL }, - { "CAP_SETGID", CAP_SETGID }, - { "CAP_SETUID", CAP_SETUID }, - { "CAP_LINUX_IMMUTABLE", CAP_LINUX_IMMUTABLE }, - { "CAP_NET_BIND_SERVICE", CAP_NET_BIND_SERVICE }, - { "CAP_NET_BROADCAST", CAP_NET_BROADCAST }, - { "CAP_NET_ADMIN", CAP_NET_ADMIN }, - { "CAP_NET_RAW", CAP_NET_RAW }, - { "CAP_IPC_LOCK", CAP_IPC_LOCK }, - { "CAP_IPC_OWNER", CAP_IPC_OWNER }, - { "CAP_SYS_MODULE", CAP_SYS_MODULE }, - { "CAP_SYS_RAWIO", CAP_SYS_RAWIO }, - { "CAP_SYS_CHROOT", CAP_SYS_CHROOT }, - { "CAP_SYS_PTRACE", CAP_SYS_PTRACE }, - { "CAP_SYS_PACCT", CAP_SYS_PACCT }, - { "CAP_SYS_ADMIN", CAP_SYS_ADMIN }, - { "CAP_SYS_ROOT", CAP_SYS_BOOT }, - { "CAP_SYS_NICE", CAP_SYS_NICE }, - { "CAP_SYS_RESOURCE", CAP_SYS_RESOURCE }, - { "CAP_SYS_TIME", CAP_SYS_TIME }, - { "CAP_SYS_TTY_CONFIG", CAP_SYS_TTY_CONFIG }, - { "CAP_MKNOD", CAP_MKNOD }, - { "CAP_LEASE", CAP_LEASE }, - { "CAP_AUDIT_WRITE", CAP_AUDIT_WRITE }, - { "CAP_AUDIT_CONTROL", CAP_AUDIT_CONTROL }, - { "CAP_SETFCAP", CAP_SETFCAP }, - { "CAP_MAC_OVERRIDE", CAP_MAC_OVERRIDE }, - { "CAP_MAC_ADMIN", CAP_MAC_ADMIN }, - { "CAP_SYSLOG", CAP_SYSLOG }, - { "CAP_WAKE_ALARM", CAP_WAKE_ALARM }, - { "CAP_BLOCK_SUSPEND", CAP_BLOCK_SUSPEND }, -}; - -static uint64_t GetCap(string cap) -{ - if (isdigit(cap[0])) { - return stoll(cap); - } - - stringstream ss(cap); - string value; - uint64_t c = 0; - while (getline(ss, value, '|')) { - value = Trim(value); - if (g_capStrCapNum.count(value)) { - c |= (1ULL << g_capStrCapNum[value]); - } - } - - return c; -} - -enum { - DAC_PATH_IDX = 0, - DAC_MODE_IDX, - DAC_UID_IDX, - DAC_GID_IDX, - DAC_CAP_IDX, - DAC_NUM -}; - -extern "C" { - int LoadDacConfig(const char* fn) - { - ifstream readFile(fn); - if (readFile.fail()) { - return -1; - } - - string str; - vector values(DAC_NUM, ""); // path, mode, uid, gid, cap - while (getline(readFile, str)) { - str = Trim(str); - if (str.empty() || str[0] == '#') { - continue; - } - - stringstream ss(str); - string value; - int i = 0; - while (getline(ss, value, ',')) { - if (i >= DAC_NUM) { - break; - } - - value = Trim(value); - if (value.empty()) { - continue; - } - values[i++] = value; - } - - if (i != DAC_NUM) { - continue; - } - - int uid = 0; - if (isdigit(values[DAC_UID_IDX][0])) { - uid = stoi(values[DAC_UID_IDX]); - } - - int gid = 0; - if (isdigit(values[DAC_GID_IDX][0])) { - uid = stoi(values[DAC_GID_IDX]); - } - - uint64_t cap = GetCap(values[DAC_CAP_IDX]); - DacConfig dacConfig(stoi(values[DAC_MODE_IDX], 0, 8), uid, gid, cap, values[DAC_PATH_IDX]); // 8 oct - g_configMap[dacConfig.path] = dacConfig; - } - - return 0; - } - - void GetDacConfig(const char* path, int dir, char*, - unsigned* uid, unsigned* gid, unsigned* mode, - uint64_t* capabilities) - { - string str = (path != nullptr && *path == '/') ? path + 1 : path; - DacConfig dacConfig(00755, 0, 0, 0, ""); - - if (dir == 0) { - dacConfig.SetDefault(00644, 0, 0, 0, ""); - } - - auto it = g_configMap.find(str); - if (it != g_configMap.end()) { - dacConfig = it->second; - } else if (dir == 0 && !str.empty()) { - for (int i = static_cast(str.size()) - 1; i >= 0; i--) { - if (str[i] == '/') { - break; - } else { - it = g_configMap.find(str.substr(0, i) + "*"); - if (it != g_configMap.end()) { - dacConfig = it->second; - break; - } - } - } - } - - *uid = dacConfig.uid; - *gid = dacConfig.gid; - *mode = dacConfig.mode; - *capabilities = dacConfig.capabilities; - } -} -} diff --git a/contrib/android/dac_config.h b/contrib/android/dac_config.h deleted file mode 100644 index 45b89393..00000000 --- a/contrib/android/dac_config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __DAC_CONFIG -#define __DAC_CONFIG -#include - -#ifdef __cpluscplus -extern "C" { -#endif - -int LoadDacConfig(const char* fn); -void GetDacConfig(const char* path, int dir, char* targetOutPath, - unsigned* uid, unsigned* gid, unsigned* mode, - uint64_t* capabilities); - -#ifdef __cpluscplus -} -#endif -#endif diff --git a/contrib/android/e2fsdroid.c b/contrib/android/e2fsdroid.c deleted file mode 100644 index 1237dccb..00000000 --- a/contrib/android/e2fsdroid.c +++ /dev/null @@ -1,379 +0,0 @@ -#ifndef _GNU_SOURCE -#define _GNU_SOURCE -#endif - -#include -#include -#include -#include -#include -#include - -#include "perms.h" -#include "base_fs.h" -#include "block_list.h" -#include "basefs_allocator.h" -#include "create_inode.h" - -#ifndef UID_GID_MAP_MAX_EXTENTS -/* - * The value is defined in linux/user_namspace.h. - * The value is (arbitrarily) 5 in 4.14 and earlier, or 340 in 4.15 and later. - * Here, the bigger value is taken. See also man user_namespace(7). - */ -#define UID_GID_MAP_MAX_EXTENTS 340 -#endif - -static char *prog_name = "e2fsdroid"; -static char *in_file; -static char *block_list; -static char *basefs_out; -static char *basefs_in; -static char *mountpoint = ""; -static time_t fixed_time = -1; -static char *fs_config_file; -static struct selinux_opt seopt_file[8]; -static int max_nr_opt = (int)sizeof(seopt_file) / sizeof(seopt_file[0]); -static char *product_out; -static char *src_dir; -static int android_configure; -static int android_sparse_file = 1; - -static void usage(int ret) -{ - fprintf(stderr, "%s [-B block_list] [-D basefs_out] [-T timestamp]\n" - "\t[-C fs_config] [-S file_contexts] [-p product_out]\n" - "\t[-a mountpoint] [-d basefs_in] [-f src_dir] [-e] [-s]\n" - "\t[-u uid-mapping] [-g gid-mapping] image\n", - prog_name); - exit(ret); -} - -static char *absolute_path(const char *file) -{ - char *ret; - char cwd[PATH_MAX]; - - if (file[0] != '/') { - if (getcwd(cwd, PATH_MAX) == NULL) { - fprintf(stderr, "Failed to getcwd\n"); - exit(EXIT_FAILURE); - } - ret = malloc(strlen(cwd) + 1 + strlen(file) + 1); - if (ret) - sprintf(ret, "%s/%s", cwd, file); - } else - ret = strdup(file); - return ret; -} - -static int parse_ugid_map_entry(char* line, struct ugid_map_entry* result) -{ - char *token, *token_saveptr; - size_t num_tokens; - unsigned int *parsed[] = {&result->child_id, - &result->parent_id, - &result->length}; - for (token = strtok_r(line, " ", &token_saveptr), num_tokens = 0; - token && num_tokens < 3; - token = strtok_r(NULL, " ", &token_saveptr), ++num_tokens) { - char* endptr = NULL; - unsigned long t = strtoul(token, &endptr, 10); - if ((t == ULONG_MAX && errno) || (t > UINT_MAX) || *endptr) { - fprintf(stderr, "Malformed u/gid mapping line\n"); - return 0; - } - *parsed[num_tokens] = (unsigned int) t; - } - if (num_tokens < 3 || strtok_r(NULL, " ", &token_saveptr) != NULL) { - fprintf(stderr, "Malformed u/gid mapping line\n"); - return 0; - } - if (result->child_id + result->length < result->child_id || - result->parent_id + result->length < result->parent_id) { - fprintf(stderr, "u/gid mapping overflow\n"); - return 0; - } - return 1; -} - -/* - * Returns 1 if [begin1, begin1+length1) and [begin2, begin2+length2) have - * overlapping range. Otherwise 0. - */ -static int is_overlapping(unsigned int begin1, unsigned int length1, - unsigned int begin2, unsigned int length2) -{ - unsigned int end1 = begin1 + length1; - unsigned int end2 = begin2 + length2; - return !(end1 <= begin2 || end2 <= begin1); -} - -/* - * Verifies if the given mapping works. - * - Checks if the number of entries is less than or equals to - * UID_GID_MAP_MAX_EXTENTS. - * - Checks if there is no overlapped ranges. - * Returns 1 if valid, otherwise 0. - */ -static int is_valid_ugid_map(const struct ugid_map* mapping) -{ - size_t i, j; - - if (mapping->size > UID_GID_MAP_MAX_EXTENTS) { - fprintf(stderr, "too many u/gid mapping entries\n"); - return 0; - } - - for (i = 0; i < mapping->size; ++i) { - const struct ugid_map_entry *entry1 = &mapping->entries[i]; - for (j = i + 1; j < mapping->size; ++j) { - const struct ugid_map_entry *entry2 = - &mapping->entries[j]; - if (is_overlapping(entry1->child_id, entry1->length, - entry2->child_id, entry2->length)) { - fprintf(stderr, - "Overlapping child u/gid: [%d %d %d]," - " [%d %d %d]\n", - entry1->child_id, entry1->parent_id, - entry1->length, entry2->child_id, - entry2->parent_id, entry2->length); - return 0; - } - if (is_overlapping(entry1->parent_id, entry1->length, - entry2->parent_id, entry2->length)) { - fprintf(stderr, - "Overlapping parent u/gid: [%d %d %d]," - " [%d %d %d]\n", - entry1->child_id, entry1->parent_id, - entry1->length, entry2->child_id, - entry2->parent_id, entry2->length); - return 0; - } - } - } - return 1; -} - -/* - * Parses the UID/GID mapping argument. The argument could be a multi-line - * string (separated by '\n', no trailing '\n' is allowed). Each line must - * contain exact three integer tokens; the first token is |child_id|, - * the second is |parent_id|, and the last is |length| of the mapping range. - * See also user_namespace(7) man page. - * On success, the parsed entries are stored in |result|, and it returns 1. - * Otherwise, returns 0. - */ -static int parse_ugid_map(char* arg, struct ugid_map* result) -{ - int i; - char *line, *line_saveptr; - size_t current_index; - - /* Count the number of lines. */ - result->size = 1; - for (i = 0; arg[i]; ++i) { - if (arg[i] == '\n') - ++result->size; - } - - /* Allocate memory for entries. */ - result->entries = malloc(sizeof(struct ugid_map_entry) * result->size); - if (!result->entries) { - result->size = 0; - return 0; - } - - /* Parse each line */ - for (line = strtok_r(arg, "\n", &line_saveptr), current_index = 0; - line; - line = strtok_r(NULL, "\n", &line_saveptr), ++current_index) { - if (!parse_ugid_map_entry( - line, &result->entries[current_index])) { - return 0; - } - } - - return is_valid_ugid_map(result); -} - -int main(int argc, char *argv[]) -{ - int c; - char *p; - int flags = EXT2_FLAG_RW; - errcode_t retval; - io_manager io_mgr; - ext2_filsys fs = NULL; - struct fs_ops_callbacks fs_callbacks = { NULL, NULL }; - char *token; - int nr_opt = 0; - ext2_ino_t inodes_count; - ext2_ino_t free_inodes_count; - blk64_t blocks_count; - blk64_t free_blocks_count; - struct ugid_map uid_map = { 0, NULL }, gid_map = { 0, NULL }; - - add_error_table(&et_ext2_error_table); - - while ((c = getopt (argc, argv, "T:C:S:p:a:D:d:B:f:esu:g:")) != EOF) { - switch (c) { - case 'T': - fixed_time = strtoul(optarg, &p, 0); - android_configure = 1; - break; - case 'C': - fs_config_file = absolute_path(optarg); - android_configure = 1; - break; - case 'S': - token = strtok(optarg, ","); - while (token) { - if (nr_opt == max_nr_opt) { - fprintf(stderr, "Expected at most %d selinux opts\n", - max_nr_opt); - exit(EXIT_FAILURE); - } - seopt_file[nr_opt].type = SELABEL_OPT_PATH; - seopt_file[nr_opt].value = absolute_path(token); - nr_opt++; - token = strtok(NULL, ","); - } - android_configure = 1; - break; - case 'p': - product_out = absolute_path(optarg); - android_configure = 1; - break; - case 'a': - mountpoint = strdup(optarg); - break; - case 'D': - basefs_out = absolute_path(optarg); - break; - case 'd': - basefs_in = absolute_path(optarg); - break; - case 'B': - block_list = absolute_path(optarg); - break; - case 'f': - src_dir = absolute_path(optarg); - break; - case 'e': - android_sparse_file = 0; - break; - case 's': - flags |= EXT2_FLAG_SHARE_DUP; - break; - case 'u': - if (!parse_ugid_map(optarg, &uid_map)) - exit(EXIT_FAILURE); - android_configure = 1; - break; - case 'g': - if (!parse_ugid_map(optarg, &gid_map)) - exit(EXIT_FAILURE); - android_configure = 1; - break; - default: - usage(EXIT_FAILURE); - } - } - if (optind >= argc) { - fprintf(stderr, "Expected filename after options\n"); - exit(EXIT_FAILURE); - } - - if (android_sparse_file) { - io_mgr = sparse_io_manager; - if (asprintf(&in_file, "(%s)", argv[optind]) == -1) { - fprintf(stderr, "Failed to allocate file name\n"); - exit(EXIT_FAILURE); - } - } else { - io_mgr = unix_io_manager; - in_file = strdup(argv[optind]); - } - retval = ext2fs_open(in_file, flags, 0, 0, io_mgr, &fs); - if (retval) { - com_err(prog_name, retval, "while opening file %s\n", in_file); - return retval; - } - - if (src_dir) { - ext2fs_read_bitmaps(fs); - if (basefs_in) { - retval = base_fs_alloc_load(fs, basefs_in, mountpoint, - src_dir); - if (retval) { - com_err(prog_name, retval, "%s", - "while reading base_fs file"); - exit(1); - } - fs_callbacks.create_new_inode = - base_fs_alloc_set_target; - fs_callbacks.end_create_new_inode = - base_fs_alloc_unset_target; - } - retval = populate_fs2(fs, EXT2_ROOT_INO, src_dir, - EXT2_ROOT_INO, &fs_callbacks); - if (retval) { - com_err(prog_name, retval, "%s", - "while populating file system"); - exit(1); - } - if (basefs_in) - base_fs_alloc_cleanup(fs); - } - - if (android_configure) { - retval = android_configure_fs( - fs, src_dir, product_out, mountpoint, seopt_file, - nr_opt, fs_config_file, fixed_time, &uid_map, &gid_map); - if (retval) { - com_err(prog_name, retval, "%s", - "while configuring the file system"); - exit(1); - } - } - - if (block_list) { - retval = fsmap_iter_filsys(fs, &block_list_format, block_list, - mountpoint); - if (retval) { - com_err(prog_name, retval, "%s", - "while creating the block_list"); - exit(1); - } - } - - if (basefs_out) { - retval = fsmap_iter_filsys(fs, &base_fs_format, - basefs_out, mountpoint); - if (retval) { - com_err(prog_name, retval, "%s", - "while creating the basefs file"); - exit(1); - } - } - - inodes_count = fs->super->s_inodes_count; - free_inodes_count = fs->super->s_free_inodes_count; - blocks_count = ext2fs_blocks_count(fs->super); - free_blocks_count = ext2fs_free_blocks_count(fs->super); - - retval = ext2fs_close_free(&fs); - if (retval) { - com_err(prog_name, retval, "%s", - "while writing superblocks"); - exit(1); - } - - printf("Created filesystem with %u/%u inodes and %llu/%llu blocks\n", - inodes_count - free_inodes_count, inodes_count, - blocks_count - free_blocks_count, blocks_count); - - remove_error_table(&et_ext2_error_table); - return 0; -} diff --git a/contrib/android/ext2simg.c b/contrib/android/ext2simg.c deleted file mode 100644 index 017e16ff..00000000 --- a/contrib/android/ext2simg.c +++ /dev/null @@ -1,224 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -struct { - int crc; - int sparse; - int gzip; - char *in_file; - char *out_file; - bool overwrite_input; -} params = { - .crc = 0, - .sparse = 1, - .gzip = 0, -}; - -#define ext2fs_fatal(Retval, Format, ...) \ - do { \ - com_err("error", Retval, Format, __VA_ARGS__); \ - exit(EXIT_FAILURE); \ - } while(0) - -#define sparse_fatal(Format) \ - do { \ - fprintf(stderr, "sparse: "Format); \ - exit(EXIT_FAILURE); \ - } while(0) - -static void usage(char *path) -{ - char *progname = basename(path); - - fprintf(stderr, "%s [ options ] \n" - " -c include CRC block\n" - " -z gzip output\n" - " -S don't use sparse output format\n", progname); -} - -static struct buf_item { - struct buf_item *next; - void *buf[0]; -} *buf_list; - -static void add_chunk(ext2_filsys fs, struct sparse_file *s, blk_t chunk_start, blk_t chunk_end) -{ - int retval; - unsigned int nb_blk = chunk_end - chunk_start; - size_t len = nb_blk * fs->blocksize; - int64_t offset = (int64_t)chunk_start * (int64_t)fs->blocksize; - - if (params.overwrite_input == false) { - if (sparse_file_add_file(s, params.in_file, offset, len, chunk_start) < 0) - sparse_fatal("adding data to the sparse file"); - } else { - /* - * The input file will be overwritten, make a copy of - * the blocks - */ - struct buf_item *bi = calloc(1, sizeof(struct buf_item) + len); - if (buf_list == NULL) - buf_list = bi; - else { - bi->next = buf_list; - buf_list = bi; - } - - retval = io_channel_read_blk64(fs->io, chunk_start, nb_blk, bi->buf); - if (retval < 0) - ext2fs_fatal(retval, "reading block %u - %u", chunk_start, chunk_end); - - if (sparse_file_add_data(s, bi->buf, len, chunk_start) < 0) - sparse_fatal("adding data to the sparse file"); - } -} - -static void free_chunks(void) -{ - struct buf_item *bi; - - while (buf_list) { - bi = buf_list->next; - free(buf_list); - buf_list = bi; - } -} - -static struct sparse_file *ext_to_sparse(const char *in_file) -{ - errcode_t retval; - ext2_filsys fs; - struct sparse_file *s; - int64_t chunk_start = -1; - blk_t first_blk, last_blk, nb_blk, cur_blk; - - retval = ext2fs_open(in_file, 0, 0, 0, unix_io_manager, &fs); - if (retval) - ext2fs_fatal(retval, "while reading %s", in_file); - - retval = ext2fs_read_block_bitmap(fs); - if (retval) - ext2fs_fatal(retval, "while reading block bitmap of %s", in_file); - - first_blk = ext2fs_get_block_bitmap_start2(fs->block_map); - last_blk = ext2fs_get_block_bitmap_end2(fs->block_map); - nb_blk = last_blk - first_blk + 1; - - s = sparse_file_new(fs->blocksize, (uint64_t)fs->blocksize * (uint64_t)nb_blk); - if (!s) - sparse_fatal("creating sparse file"); - - /* - * The sparse format encodes the size of a chunk (and its header) in a - * 32-bit unsigned integer (UINT32_MAX) - * When writing the chunk, the library uses a single call to write(). - * Linux's implementation of the 'write' syscall does not allow transfers - * larger than INT32_MAX (32-bit _and_ 64-bit systems). - * Make sure we do not create chunks larger than this limit. - */ - int64_t max_blk_per_chunk = (INT32_MAX - 12) / fs->blocksize; - - /* Iter on the blocks to merge contiguous chunk */ - for (cur_blk = first_blk; cur_blk <= last_blk; ++cur_blk) { - if (ext2fs_test_block_bitmap2(fs->block_map, cur_blk)) { - if (chunk_start == -1) { - chunk_start = cur_blk; - } else if (cur_blk - chunk_start + 1 == max_blk_per_chunk) { - add_chunk(fs, s, chunk_start, cur_blk); - chunk_start = -1; - } - } else if (chunk_start != -1) { - add_chunk(fs, s, chunk_start, cur_blk); - chunk_start = -1; - } - } - if (chunk_start != -1) - add_chunk(fs, s, chunk_start, cur_blk - 1); - - ext2fs_free(fs); - return s; -} - -static bool same_file(const char *in, const char *out) -{ - struct stat st1, st2; - - if (access(out, F_OK) == -1) - return false; - - if (lstat(in, &st1) == -1) - ext2fs_fatal(errno, "stat %s\n", in); - if (lstat(out, &st2) == -1) - ext2fs_fatal(errno, "stat %s\n", out); - return st1.st_ino == st2.st_ino; -} - -int main(int argc, char *argv[]) -{ - int opt; - int out_fd; - struct sparse_file *s; - - while ((opt = getopt(argc, argv, "czS")) != -1) { - switch(opt) { - case 'c': - params.crc = 1; - break; - case 'z': - params.gzip = 1; - break; - case 'S': - params.sparse = 0; - break; - default: - usage(argv[0]); - exit(EXIT_FAILURE); - } - } - if (optind + 1 >= argc) { - usage(argv[0]); - exit(EXIT_FAILURE); - } - params.in_file = strdup(argv[optind++]); - params.out_file = strdup(argv[optind]); - params.overwrite_input = same_file(params.in_file, params.out_file); - - s = ext_to_sparse(params.in_file); - - out_fd = open(params.out_file, O_WRONLY | O_CREAT | O_TRUNC, 0664); - if (out_fd == -1) - ext2fs_fatal(errno, "opening %s\n", params.out_file); - if (sparse_file_write(s, out_fd, params.gzip, params.sparse, params.crc) < 0) - sparse_fatal("writing sparse file"); - - sparse_file_destroy(s); - - free(params.in_file); - free(params.out_file); - free_chunks(); - close(out_fd); - - return 0; -} diff --git a/contrib/android/fsmap.c b/contrib/android/fsmap.c deleted file mode 100644 index 9ee8472d..00000000 --- a/contrib/android/fsmap.c +++ /dev/null @@ -1,169 +0,0 @@ -#include "fsmap.h" -#include -#include -#include -#include -#include "support/nls-enable.h" - -struct walk_ext_priv_data { - char *path; - ext2_filsys fs; - struct fsmap_format *format; -}; - -static int walk_block(ext2_filsys fs EXT2FS_ATTR((unused)), blk64_t *blocknr, - e2_blkcnt_t blockcnt, - blk64_t ref64_blk EXT2FS_ATTR((unused)), - int ref_offset EXT2FS_ATTR((unused)), - void *priv) -{ - struct walk_ext_priv_data *pdata = priv; - struct fsmap_format *format = pdata->format; - - return format->add_block(fs, *blocknr, blockcnt < 0, format->private); -} - -static errcode_t ino_iter_extents(ext2_filsys fs, ext2_ino_t ino, - ext2_extent_handle_t extents, - struct walk_ext_priv_data *pdata) -{ - blk64_t block; - errcode_t retval; - blk64_t next_lblk = 0; - int op = EXT2_EXTENT_ROOT; - struct ext2fs_extent extent; - struct fsmap_format *format = pdata->format; - - for (;;) { - retval = ext2fs_extent_get(extents, op, &extent); - if (retval) - break; - - op = EXT2_EXTENT_NEXT; - - if ((extent.e_flags & EXT2_EXTENT_FLAGS_SECOND_VISIT) || - !(extent.e_flags & EXT2_EXTENT_FLAGS_LEAF)) - continue; - - for (; next_lblk < extent.e_lblk; next_lblk++) - format->add_block(fs, 0, 0, format->private); - - block = extent.e_pblk; - for (; next_lblk < extent.e_lblk + extent.e_len; next_lblk++) - format->add_block(fs, block++, 0, format->private); - } - - if (retval == EXT2_ET_EXTENT_NO_NEXT) - retval = 0; - if (retval) { - com_err(__func__, retval, ("getting extents of ino \"%u\""), - ino); - } - return retval; -} - -static errcode_t ino_iter_blocks(ext2_filsys fs, ext2_ino_t ino, - struct walk_ext_priv_data *pdata) -{ - errcode_t retval; - struct ext2_inode inode; - ext2_extent_handle_t extents; - struct fsmap_format *format = pdata->format; - - retval = ext2fs_read_inode(fs, ino, &inode); - if (retval) - return retval; - - if (!ext2fs_inode_has_valid_blocks2(fs, &inode)) - return format->inline_data(&(inode.i_block[0]), - format->private); - - retval = ext2fs_extent_open(fs, ino, &extents); - if (retval == EXT2_ET_INODE_NOT_EXTENT) { - retval = ext2fs_block_iterate3(fs, ino, BLOCK_FLAG_READ_ONLY, - NULL, walk_block, pdata); - if (retval) { - com_err(__func__, retval, _("listing blocks of ino \"%u\""), - ino); - } - return retval; - } - - retval = ino_iter_extents(fs, ino, extents, pdata); - - ext2fs_extent_free(extents); - return retval; -} - -static int is_dir(ext2_filsys fs, ext2_ino_t ino) -{ - struct ext2_inode inode; - - if (ext2fs_read_inode(fs, ino, &inode)) - return 0; - return S_ISDIR(inode.i_mode); -} - -static int walk_ext_dir(ext2_ino_t dir EXT2FS_ATTR((unused)), - int flags EXT2FS_ATTR((unused)), - struct ext2_dir_entry *de, - int offset EXT2FS_ATTR((unused)), - int blocksize EXT2FS_ATTR((unused)), - char *buf EXT2FS_ATTR((unused)), void *priv_data) -{ - errcode_t retval; - struct ext2_inode inode; - char *filename, *cur_path, *name = de->name; - int name_len = de->name_len & 0xff; - struct walk_ext_priv_data *pdata = priv_data; - struct fsmap_format *format = pdata->format; - - if (!strncmp(name, ".", name_len) - || !strncmp(name, "..", name_len) - || !strncmp(name, "lost+found", 10)) - return 0; - - if (asprintf(&filename, "%s/%.*s", pdata->path, name_len, name) < 0) - return -ENOMEM; - - retval = ext2fs_read_inode(pdata->fs, de->inode, &inode); - if (retval) { - com_err(__func__, retval, _("reading ino \"%u\""), de->inode); - goto end; - } - format->start_new_file(filename, de->inode, &inode, format->private); - retval = ino_iter_blocks(pdata->fs, de->inode, pdata); - if (retval) - return retval; - format->end_new_file(format->private); - - retval = 0; - if (is_dir(pdata->fs, de->inode)) { - cur_path = pdata->path; - pdata->path = filename; - retval = ext2fs_dir_iterate2(pdata->fs, de->inode, 0, NULL, - walk_ext_dir, pdata); - pdata->path = cur_path; - } - -end: - free(filename); - return retval; -} - -errcode_t fsmap_iter_filsys(ext2_filsys fs, struct fsmap_format *format, - const char *file, const char *mountpoint) -{ - struct walk_ext_priv_data pdata; - errcode_t retval; - - format->private = format->init(file, mountpoint); - pdata.fs = fs; - pdata.path = ""; - pdata.format = format; - - retval = ext2fs_dir_iterate2(fs, EXT2_ROOT_INO, 0, NULL, walk_ext_dir, &pdata); - - format->cleanup(format->private); - return retval; -} diff --git a/contrib/android/fsmap.h b/contrib/android/fsmap.h deleted file mode 100644 index 9f84a718..00000000 --- a/contrib/android/fsmap.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef FSMAP_H -# define FSMAP_H - -# ifndef _GNU_SOURCE -# define _GNU_SOURCE // asprintf -# endif -# include -# include -# include -# include -# include - -struct fsmap_format { - void* (* init)(const char *file, const char *mountpoint); - int (* start_new_file)(char *path, ext2_ino_t ino, - struct ext2_inode *inode, void *data); - int (* add_block)(ext2_filsys fs, blk64_t blocknr, int metadata, - void *data); - int (* inline_data)(void *inline_data, void *data); - int (* end_new_file)(void *data); - int (* cleanup)(void *data); - - void *private; -}; - -errcode_t fsmap_iter_filsys(ext2_filsys fs, struct fsmap_format *format, - const char *file, const char *mountpoint); - -#endif /* !FSMAP_H */ diff --git a/contrib/android/perms.c b/contrib/android/perms.c deleted file mode 100644 index bfe06ca3..00000000 --- a/contrib/android/perms.c +++ /dev/null @@ -1,385 +0,0 @@ -#ifndef _GNU_SOURCE -# define _GNU_SOURCE //asprintf -#endif -#include "perms.h" -#include "support/nls-enable.h" -#include -#include -#include - -#ifndef XATTR_SELINUX_SUFFIX -# define XATTR_SELINUX_SUFFIX "selinux" -#endif -#ifndef XATTR_CAPS_SUFFIX -# define XATTR_CAPS_SUFFIX "capability" -#endif - -struct inode_params { - ext2_filsys fs; - char *path; - char *filename; - char *src_dir; - char *target_out; - char *mountpoint; - fs_config_f fs_config_func; - struct selabel_handle *sehnd; - time_t fixed_time; - const struct ugid_map* uid_map; - const struct ugid_map* gid_map; - errcode_t error; -}; - -static errcode_t ino_add_xattr(ext2_filsys fs, ext2_ino_t ino, const char *name, - const void *value, int value_len) -{ - errcode_t retval, close_retval; - struct ext2_xattr_handle *xhandle; - - retval = ext2fs_xattrs_open(fs, ino, &xhandle); - if (retval) { - com_err(__func__, retval, _("while opening inode %u"), ino); - return retval; - } - retval = ext2fs_xattrs_read(xhandle); - if (retval) { - com_err(__func__, retval, - _("while reading xattrs of inode %u"), ino); - goto xattrs_close; - } - retval = ext2fs_xattr_set(xhandle, name, value, value_len); - if (retval) { - com_err(__func__, retval, - _("while setting xattrs of inode %u"), ino); - goto xattrs_close; - } -xattrs_close: - close_retval = ext2fs_xattrs_close(&xhandle); - if (close_retval) { - com_err(__func__, close_retval, - _("while closing xattrs of inode %u"), ino); - return retval ? retval : close_retval; - } - return retval; -} - -static errcode_t set_selinux_xattr(ext2_filsys fs, ext2_ino_t ino, - struct inode_params *params) -{ - errcode_t retval; - char *secontext = NULL; - struct ext2_inode inode; - - if (params->sehnd == NULL) - return 0; - - retval = ext2fs_read_inode(fs, ino, &inode); - if (retval) { - com_err(__func__, retval, - _("while reading inode %u"), ino); - return retval; - } - - retval = selabel_lookup(params->sehnd, &secontext, params->filename, - inode.i_mode); - if (retval < 0) { - int saved_errno = errno; - com_err(__func__, errno, - _("searching for label \"%s\""), params->filename); - return saved_errno; - } - - retval = ino_add_xattr(fs, ino, "security." XATTR_SELINUX_SUFFIX, - secontext, strlen(secontext) + 1); - - freecon(secontext); - return retval; -} - -/* - * Returns mapped UID/GID if there is a corresponding entry in |mapping|. - * Otherwise |id| as is. - */ -static unsigned int resolve_ugid(const struct ugid_map* mapping, - unsigned int id) -{ - size_t i; - for (i = 0; i < mapping->size; ++i) { - const struct ugid_map_entry* entry = &mapping->entries[i]; - if (entry->parent_id <= id && - id < entry->parent_id + entry->length) { - return id + entry->child_id - entry->parent_id; - } - } - - /* No entry is found. */ - return id; -} - -static errcode_t set_perms_and_caps(ext2_filsys fs, ext2_ino_t ino, - struct inode_params *params) -{ - errcode_t retval; - uint64_t capabilities = 0; - struct ext2_inode inode; - struct vfs_cap_data cap_data; - unsigned int uid = 0, gid = 0, imode = 0; - - retval = ext2fs_read_inode(fs, ino, &inode); - if (retval) { - com_err(__func__, retval, _("while reading inode %u"), ino); - return retval; - } - - /* Permissions */ - if (params->fs_config_func != NULL) { - const char *filename = params->filename; - if (strcmp(filename, params->mountpoint) == 0) { - /* The root of the filesystem needs to be an empty string. */ - filename = ""; - } - params->fs_config_func(filename, S_ISDIR(inode.i_mode), - params->target_out, &uid, &gid, &imode, - &capabilities); - uid = resolve_ugid(params->uid_map, uid); - gid = resolve_ugid(params->gid_map, gid); - inode.i_uid = (__u16) uid; - inode.i_gid = (__u16) gid; - ext2fs_set_i_uid_high(inode, (__u16) (uid >> 16)); - ext2fs_set_i_gid_high(inode, (__u16) (gid >> 16)); - inode.i_mode = (inode.i_mode & S_IFMT) | (imode & 0xffff); - retval = ext2fs_write_inode(fs, ino, &inode); - if (retval) { - com_err(__func__, retval, - _("while writing inode %u"), ino); - return retval; - } - } - - /* Capabilities */ - if (!capabilities) - return 0; - memset(&cap_data, 0, sizeof(cap_data)); - cap_data.magic_etc = VFS_CAP_REVISION_2 | VFS_CAP_FLAGS_EFFECTIVE; - cap_data.data[0].permitted = (uint32_t) (capabilities & 0xffffffff); - cap_data.data[1].permitted = (uint32_t) (capabilities >> 32); - return ino_add_xattr(fs, ino, "security." XATTR_CAPS_SUFFIX, - &cap_data, sizeof(cap_data)); -} - -static errcode_t set_timestamp(ext2_filsys fs, ext2_ino_t ino, - struct inode_params *params) -{ - errcode_t retval; - struct ext2_inode inode; - struct stat stat; - char *src_filename = NULL; - - retval = ext2fs_read_inode(fs, ino, &inode); - if (retval) { - com_err(__func__, retval, - _("while reading inode %u"), ino); - return retval; - } - - if (params->fixed_time == -1 && params->src_dir) { - /* replace mountpoint from filename with src_dir */ - if (asprintf(&src_filename, "%s/%s", params->src_dir, - params->filename + strlen(params->mountpoint)) < 0) { - return -ENOMEM; - } - retval = lstat(src_filename, &stat); - if (retval < 0) { - com_err(__func__, errno, - _("while lstat file %s"), src_filename); - goto end; - } - inode.i_atime = inode.i_ctime = inode.i_mtime = stat.st_mtime; - } else { - inode.i_atime = inode.i_ctime = inode.i_mtime = params->fixed_time; - } - - retval = ext2fs_write_inode(fs, ino, &inode); - if (retval) { - com_err(__func__, retval, - _("while writing inode %u"), ino); - goto end; - } - -end: - free(src_filename); - return retval; -} - -static int is_dir(ext2_filsys fs, ext2_ino_t ino) -{ - struct ext2_inode inode; - - if (ext2fs_read_inode(fs, ino, &inode)) - return 0; - return S_ISDIR(inode.i_mode); -} - -static errcode_t androidify_inode(ext2_filsys fs, ext2_ino_t ino, - struct inode_params *params) -{ - errcode_t retval; - - retval = set_timestamp(fs, ino, params); - if (retval) - return retval; - - retval = set_selinux_xattr(fs, ino, params); - if (retval) - return retval; - - return set_perms_and_caps(fs, ino, params); -} - -static int walk_dir(ext2_ino_t dir EXT2FS_ATTR((unused)), - int flags EXT2FS_ATTR((unused)), - struct ext2_dir_entry *de, - int offset EXT2FS_ATTR((unused)), - int blocksize EXT2FS_ATTR((unused)), - char *buf EXT2FS_ATTR((unused)), void *priv_data) -{ - __u16 name_len; - errcode_t retval; - struct inode_params *params = (struct inode_params *)priv_data; - - name_len = de->name_len & 0xff; - if (!strncmp(de->name, ".", name_len) - || (!strncmp(de->name, "..", name_len))) - return 0; - - if (asprintf(¶ms->filename, "%s/%.*s", params->path, name_len, - de->name) < 0) { - params->error = ENOMEM; - return -ENOMEM; - } - - if (!strncmp(de->name, "lost+found", 10)) { - retval = set_selinux_xattr(params->fs, de->inode, params); - if (retval) - goto end; - } else { - retval = androidify_inode(params->fs, de->inode, params); - if (retval) - goto end; - if (is_dir(params->fs, de->inode)) { - char *cur_path = params->path; - char *cur_filename = params->filename; - params->path = params->filename; - retval = ext2fs_dir_iterate2(params->fs, de->inode, 0, NULL, - walk_dir, params); - if (retval) - goto end; - params->path = cur_path; - params->filename = cur_filename; - } - } - -end: - free(params->filename); - params->error |= retval; - return retval; -} - -errcode_t __android_configure_fs(ext2_filsys fs, char *src_dir, - char *target_out, - char *mountpoint, - fs_config_f fs_config_func, - struct selabel_handle *sehnd, - time_t fixed_time, - const struct ugid_map* uid_map, - const struct ugid_map* gid_map) -{ - errcode_t retval; - struct inode_params params = { - .fs = fs, - .src_dir = src_dir, - .target_out = target_out, - .fs_config_func = fs_config_func, - .sehnd = sehnd, - .fixed_time = fixed_time, - .path = mountpoint, - .filename = mountpoint, - .mountpoint = mountpoint, - .uid_map = uid_map, - .gid_map = gid_map, - .error = 0 - }; - - /* walk_dir will add the "/". Don't add it twice. */ - if (strlen(mountpoint) == 1 && mountpoint[0] == '/') - params.path = ""; - - retval = androidify_inode(fs, EXT2_ROOT_INO, ¶ms); - if (retval) - return retval; - - retval = ext2fs_dir_iterate2(fs, EXT2_ROOT_INO, 0, NULL, walk_dir, - ¶ms); - if (retval) - return retval; - return params.error; -} - -errcode_t android_configure_fs(ext2_filsys fs, char *src_dir, char *target_out, - char *mountpoint, - struct selinux_opt *seopts EXT2FS_ATTR((unused)), - unsigned int nopt EXT2FS_ATTR((unused)), - char *fs_config_file, time_t fixed_time, - const struct ugid_map* uid_map, - const struct ugid_map* gid_map) -{ - errcode_t retval; - fs_config_f fs_config_func = NULL; - struct selabel_handle *sehnd = NULL; - - /* Retrieve file contexts */ -#if !defined(__ANDROID__) - if (nopt > 0) { - sehnd = selabel_open(SELABEL_CTX_FILE, seopts, nopt); - if (!sehnd) { - int saved_errno = errno; - com_err(__func__, errno, - _("while opening file contexts \"%s\""), - seopts[0].value); - return saved_errno; - } - } -#else - sehnd = selinux_android_file_context_handle(); - if (!sehnd) { - com_err(__func__, EINVAL, - _("while opening android file_contexts")); - return EINVAL; - } -#endif - - /* Load the FS config */ - if (fs_config_file) { -#if defined(__ANDROID__) - retval = load_canned_fs_config(fs_config_file); -#else - retval = LoadDacConfig(fs_config_file); -#endif - if (retval < 0) { - com_err(__func__, retval, - _("while loading fs_config \"%s\""), - fs_config_file); - return retval; - } -#if defined(__ANDROID__) - fs_config_func = canned_fs_config; - } else if (mountpoint) - fs_config_func = fs_config; -#else - fs_config_func = GetDacConfig; - } -#endif - - return __android_configure_fs(fs, src_dir, target_out, mountpoint, - fs_config_func, sehnd, fixed_time, - uid_map, gid_map); -} diff --git a/contrib/android/perms.h b/contrib/android/perms.h deleted file mode 100644 index 3de007ef..00000000 --- a/contrib/android/perms.h +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef ANDROID_PERMS_H -# define ANDROID_PERMS_H - -# include "config.h" -# include - -typedef void (*fs_config_f)(const char *path, int dir, - const char *target_out_path, - unsigned *uid, unsigned *gid, - unsigned *mode, uint64_t *capabilities); - -/* - * Represents a range of UID/GID mapping. - * This maps the id in [|parent_id|, |parent_id| + |length|) into - * [|child_id|, |child_id| + |length|) - */ -struct ugid_map_entry { - unsigned int child_id; - unsigned int parent_id; - unsigned int length; -}; - -struct ugid_map { - /* The number of elements in |entries|. */ - size_t size; - - /* An array of entries. If |size| is 0, this is a null pointer. */ - struct ugid_map_entry* entries; -}; - -# ifdef _WIN32 -struct selabel_handle; -static inline errcode_t android_configure_fs(ext2_filsys fs, - char *src_dir, - char *target_out, - char *mountpoint, - void *seopts, - unsigned int nopt, - char *fs_config_file, - time_t fixed_time, - const struct ugid_map* uid_map, - const struct ugdi_map* gid_map) -{ - return 0; -} -# else -# include -# include -# if defined(__ANDROID__) -# include -# include -# include -# include -# else /* !__ANDROID__ */ -#include "dac_config.h" -# endif - -errcode_t android_configure_fs(ext2_filsys fs, char *src_dir, - char *target_out, - char *mountpoint, - struct selinux_opt *seopts, - unsigned int nopt, - char *fs_config_file, time_t fixed_time, - const struct ugid_map* uid_map, - const struct ugid_map* gid_map); - -# endif -#endif /* !ANDROID_PERMS_H */ diff --git a/contrib/build-rpm b/contrib/build-rpm deleted file mode 100644 index 0b060715..00000000 --- a/contrib/build-rpm +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh - -# enable xtrace output if requested -if [ -n ${ENABLE_XTRACE:-''} ]; then - set -x -fi - -# Build an e2fsprogs RPM from cvs - -pwd=`pwd` -currdir=`basename $pwd` -pkgname=`grep Name: e2fsprogs.spec | awk '{print $2;}'` -pkgvers=`grep Version: e2fsprogs.spec | awk '{print $2;}'` -builddir=${pkgname}-${pkgvers} - -# ensure that $TMP is set to something -TMP=${TMP:-'/tmp'} - -cd .. -tmpdir=`mktemp -d ${RPM_TMPDIR:-$TMP}/rpmtmp.XXXXXX` - -# We need to build a tarball for the SRPM using $builddir as the -# directory name (since that's what RPM will expect it to unpack -# into). That may require a symlink. - -# Make a recursive-symlink copy of the source dir -cp -sR `pwd`/$currdir $tmpdir/$builddir || exit 1 - -# Remove any build files from the temporary tarball directory -[ -f $tmpdir/$builddir/Makefile ] && make -C $tmpdir/$builddir distclean - -EXCLUDE="--exclude .hg* --exclude .pc*" -(cd $tmpdir && tar czfh ${builddir}.tar.gz $EXCLUDE $builddir) - -[ "`rpmbuild --version 2> /dev/null`" ] && RPM=rpmbuild || RPM=rpm - -$RPM --define "_sourcedir $tmpdir" \ - --define "_topdir ${RPM_TOPDIR:-$(rpm -E %_topdir)}" \ - --define "_tmpdir ${RPM_TMPDIR:-$TMP}" \ - --define "extra_config_flags ${EXTRA_CONFIG_FLAGS:-''}" \ - -ba $currdir/e2fsprogs.spec - -rpm_exit=$? -rm -rf $tmpdir -exit $rpm_exit diff --git a/contrib/dconf b/contrib/dconf deleted file mode 100644 index cef4cc68..00000000 --- a/contrib/dconf +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/sh -#$Id$ -# Create Adobe-PostScript file that graphically displays the output of -# dumpe2fs(8). Use "dumpe2fs | dconf" to create a PostScript file on stdout. -# Developed and tested for Linux 1.0. -# Copyright (c) 1994 -# Ulrich Windl -# ALte Regensburger Strasse 11a -# D-93149 Nittenau, Germany -# -SELF=`basename $0` -AWKFILE=/tmp/${SELF}.awk -TEMPFILE=/tmp/${SELF}.tmp -echo ' -BEGIN { - print "B" -} -/^Inode count:/ { - ic=$3; next -} -/^Block count:/ { - bc=$3; next -} -/^First block:/ { - fb=$3; next -} -/^Block size:/ { - bs=$3; next -} -/^Blocks per group:/ { - bpg=$4 - printf("BC %d\n", bpg) - printf("GC %d\n", (bc + bpg - 1) / bpg) - next -} -/^Inodes per group:/ { - ipg=$4; next -} -/^Last write time:/ { - lwtime=$0; gsub("Last write time:[ ]+", "", lwtime) - printf("T %s\n", lwtime) - next -} -/^Group [0-9]+:/ { - group=$2; gsub(":", "", group) - block="" - group_start=group*bpg+fb - group_end=group_start+bpg - printf("G %d : %d - %d\n", group, group_start, group_end) - next -} -/^[ ]+Free blocks: / { - for ( i=3; i < NF; ++i ) { - block=$i; gsub(",", "", block) - if ( index(block, "-") == 0 ) block=block "-" block - pos=index(block, "-") - printf("FB %d-%d\n", - substr(block, 0, pos) - group_start, - substr(block, pos + 1) - group_start) - } - if ( block == "" ) printf("Group %d is full\n", group) - print "----" - next -} -END { - printf("E %s\n", lwtime) -}' >$AWKFILE -awk -f $AWKFILE $* >$TEMPFILE -echo ' -BEGIN { - printf("%%!PS-Adobe\n") - printf("%%%%BoundingBox: 0 0 1 1\n") - printf("/rect {/y2 exch def /x2 exch def /y1 exch def /x1 exch def\n") - printf(" newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto\n") - printf(" x1 y2 lineto closepath} def\n") - printf("/fb {rect gsave 1.0 setgray fill grestore} def\n") - printf("/dg {rect gsave gsave 0.0 setgray fill grestore\n") - printf(" 0.5 setgray stroke grestore} def\n") - printf("/textxy {moveto show} bind def\n") - printf("0.0001 setlinewidth\n") -} -$1 == "GC" && NF == 2 { - number_of_groups=$2 - printf("/Times-Roman findfont %g scalefont setfont\n", - 1.0 / number_of_groups) - next -} -$1 == "BC" && NF == 2 { - blocks_per_group=$2; next -} -$1 == "T" && NF > 1 { - printf("(%s) %g %g textxy\n", - substr($0, 2), 0, 1.02) - next -} -$1 == "G" && NF == 6 && $3 == ":" && $5 == "-" { - group_index=$2 - gs=$4 - ge=$6 - height=1.0 / number_of_groups - vstart=group_index * height - printf("%% group %d of %d:\n0 %g 1 %g dg\n", - group_index, number_of_groups, vstart, vstart + height) - printf("(Group %s) 1.02 %g textxy\n", group_index, vstart) - next -} -$1 == "FB" && NF == 2 { - pos = index($2, "-") - printf("%% hole %s\n%g %g %g %g fb\n", - $2, substr($2, 0, pos) / blocks_per_group, vstart, - (substr($2, pos + 1) + 1) / blocks_per_group, vstart + height) - next -} -END { - printf("%%%%EOF\n") -} -' >$AWKFILE -awk -f $AWKFILE $TEMPFILE diff --git a/contrib/dir2fs b/contrib/dir2fs deleted file mode 100755 index abcecb36..00000000 --- a/contrib/dir2fs +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/sh - -dir="$1" -dev="$2" - -if [ "$1" = "--help" ] || [ ! -d "${dir}" ]; then - echo "Usage: $0 dir [mke2fs args] dev" - exit 1 -fi - -shift - -# Goal: Put all the files at the beginning (which mke2fs does) and minimize -# the number of free inodes given the minimum number of blocks required. -# Hence all this math to get the inode ratio just right. - -bytes="$(du -ks "${dir}" | awk '{print $1}')" -bytes="$((bytes * 1024))" -inodes="$(find "${dir}" -print0 | xargs -0 stat -c '%i' | sort -g | uniq | wc -l)" -block_sz=4096 -inode_sz=256 -sb_overhead=4096 -blocks_per_group="$((block_sz * 8))" -bytes_per_group="$((blocks_per_group * block_sz))" -inode_bytes="$((inodes * inode_sz))" - -# Estimate overhead with the minimum number of groups... -nr_groups="$(( (bytes + inode_bytes + bytes_per_group - 1) / bytes_per_group))" -inode_bytes_per_group="$((inode_bytes / nr_groups))" -inode_blocks_per_group="$(( (inode_bytes_per_group + (block_sz - 1)) / block_sz ))" -per_grp_overhead="$(( ((3 + inode_blocks_per_group) * block_sz) + 64 ))" -overhead="$(( sb_overhead + (per_grp_overhead * nr_groups) ))" -used_bytes="$((bytes + overhead))" - -# Then do it again with the real number of groups. -nr_groups="$(( (used_bytes + (bytes_per_group - 1)) / bytes_per_group))" -tot_blocks="$((nr_groups * blocks_per_group))" -tot_bytes="$((tot_blocks * block_sz))" - -ratio="$((bytes / inodes))" -mkfs_blocks="$((tot_blocks * 4 / 3))" - -mke2fs -i "${ratio}" -T ext4 -d "${dir}" -O ^resize_inode,sparse_super2,metadata_csum,64bit,^has_journal -E packed_meta_blocks=1,num_backup_sb=0 -b "${block_sz}" -I "${inodesz}" -F "${dev}" "${mkfs_blocks}" || exit - -e2fsck -fyD "${dev}" - -blocks="$(dumpe2fs -h "${dev}" 2>&1 | grep 'Block count:' | awk '{print $3}')" -while resize2fs -f -M "${dev}"; do - new_blocks="$(dumpe2fs -h "${dev}" 2>&1 | grep 'Block count:' | awk '{print $3}')" - if [ "${new_blocks}" -eq "${blocks}" ]; then - break; - fi - blocks="${new_blocks}" -done - -if [ ! -b "${dev}" ]; then - truncate -s "$((blocks * block_sz))" "${dev}" || (e2image -ar "${dev}" "${dev}.min"; mv "${dev}.min" "${dev}") -fi - -e2fsck -fy "${dev}" - -dir_blocks="$((bytes / block_sz))" -overhead="$((blocks - dir_blocks))" -echo "Minimized image overhead: $((100 * overhead / dir_blocks))%" - -exit 0 diff --git a/contrib/e2croncheck b/contrib/e2croncheck deleted file mode 100755 index de0b41f7..00000000 --- a/contrib/e2croncheck +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh -# -# e2croncheck -- run e2fsck automatically out of /etc/cron.weekly -# -# This script is intended to be run by the system administrator -# periodically from the command line, or to be run once a week -# or so by the cron daemon to check a mounted filesystem (normally -# the root filesystem, but it could be used to check other filesystems -# that are always mounted when the system is booted). -# -# Make sure you customize "VG" so it is your LVM volume group name, -# "VOLUME" so it is the name of the filesystem's logical volume, -# and "EMAIL" to be your e-mail address -# -# Written by Theodore Ts'o, Copyright 2007, 2008, 2009. -# -# This file may be redistributed under the terms of the -# GNU Public License, version 2. -# - -VG=ssd -VOLUME=root -SNAPSIZE=100m -EMAIL=sysadmin@example.com - -TMPFILE=`mktemp ${TMPDIR:-/tmp}/e2fsck.log.XXXXXXXXXX` - -OPTS="-Fttv -C0" -#OPTS="-Fttv -E fragcheck" - -set -e -START="$(date +'%Y%m%d%H%M%S')" -lvcreate -s -L ${SNAPSIZE} -n "${VOLUME}-snap" "${VG}/${VOLUME}" -if nice logsave -as $TMPFILE e2fsck -p $OPTS "/dev/${VG}/${VOLUME}-snap" && \ - nice logsave -as $TMPFILE e2fsck -fy $OPTS "/dev/${VG}/${VOLUME}-snap" ; then - echo 'Background scrubbing succeeded!' - tune2fs -C 0 -T "${START}" "/dev/${VG}/${VOLUME}" -else - echo 'Background scrubbing failed! Reboot to fsck soon!' - tune2fs -C 16000 -T "19000101" "/dev/${VG}/${VOLUME}" - if test -n "$RPT-EMAIL"; then - mail -s "E2fsck of /dev/${VG}/${VOLUME} failed!" $EMAIL < $TMPFILE - fi -fi -lvremove -f "${VG}/${VOLUME}-snap" -rm $TMPFILE - diff --git a/contrib/ext4-ioc.c b/contrib/ext4-ioc.c deleted file mode 100644 index 42f022d5..00000000 --- a/contrib/ext4-ioc.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Test program to trigger various ext4 ioctl's - */ - -#include -#include -#include -#include -#include -#include - -#if (!defined(EXT4_IOC_ALLOC_DA_BLKS) && defined(__linux__)) -#define EXT4_IOC_ALLOC_DA_BLKS _IO('f', 12) -#endif - -#if (!defined(EXT4_IOC_SWAP_BOOT) && defined(__linux__)) -#define EXT4_IOC_SWAP_BOOT _IO('f', 17) -#endif - -#if (!defined(EXT4_IOC_PRECACHE_EXTENTS) && defined(__linux__)) -#define EXT4_IOC_PRECACHE_EXTENTS _IO('f', 18) -#endif - -#if (!defined(EXT4_IOC_CLEAR_ES_CACHE) && defined(__linux__)) -#define EXT4_IOC_CLEAR_ES_CACHE _IO('f', 40) -#endif - - -#define EXT4_F_RW 0x0001 - -struct cmd { - const char *cmd; - unsigned long ioc; - int flags; -}; - -struct cmd cmds[] = { - { "alloc_da_blks", EXT4_IOC_ALLOC_DA_BLKS, EXT4_F_RW }, - { "precache", EXT4_IOC_PRECACHE_EXTENTS, 0 }, - { "swap_boot", EXT4_IOC_SWAP_BOOT, EXT4_F_RW }, - { "clear_es_cache", EXT4_IOC_CLEAR_ES_CACHE, EXT4_F_RW }, - { NULL, 0 } -}; - -const char *progname; - -void usage() -{ - struct cmd *p; - - fprintf(stderr, "Usage: %s \n\n", progname); - fprintf(stderr, "Available commands:\n"); - for (p = cmds; p->cmd; p++) { - fprintf(stderr, "\t%s\n", p->cmd); - } - exit(1); -} - -int do_single_cmd(const char *fn, struct cmd *p) -{ - int fd; - int oflags = O_RDONLY; - - if (p->flags & EXT4_F_RW) - oflags = O_RDWR; - fd = open(fn, oflags, 0); - if (fd < 0) { - perror("open"); - return 1; - } - if (ioctl(fd, p->ioc) < 0) { - perror("ioctl"); - return 1; - } - close(fd); - return 0; -} - -int main(int argc, char **argv) -{ - int i, fails = 0; - struct cmd *p; - - progname = argv[0]; - if (argc < 3 || strcmp(argv[1], "help") == 0) - usage(); - for (p = cmds; p->cmd; p++) { - if (strcmp(argv[1], p->cmd) == 0) - break; - } - if (p->cmd == NULL) { - fprintf(stderr, "Invalid command: %s\n", argv[1]); - usage(); - } - for (i = 2; i < argc; i++) - fails += do_single_cmd(argv[i], p); - return fails; -} diff --git a/contrib/fallocate.c b/contrib/fallocate.c deleted file mode 100644 index 16c08ab3..00000000 --- a/contrib/fallocate.c +++ /dev/null @@ -1,190 +0,0 @@ -/* - * fallocate - utility to use the fallocate system call - * - * Copyright (C) 2008 Red Hat, Inc. All rights reserved. - * Written by Eric Sandeen - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef _LARGEFILE_SOURCE -#define _LARGEFILE_SOURCE -#endif -#ifndef _LARGEFILE64_SOURCE -#define _LARGEFILE64_SOURCE -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -// #include -#define FALLOC_FL_KEEP_SIZE 0x01 -#define FALLOC_FL_PUNCH_HOLE 0x02 /* de-allocates range */ -#define FALLOC_FL_COLLAPSE_RANGE 0x08 -#define FALLOC_FL_ZERO_RANGE 0x10 - -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; - ext2_loff_t length = -2LL; - ext2_loff_t offset = 0; - int falloc_mode = 0; - int error; - int tflag = 0; - - while ((opt = getopt(argc, argv, "npl:o:tzc")) != -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 'c': - /* collapse range mode */ - falloc_mode = (FALLOC_FL_COLLAPSE_RANGE | - FALLOC_FL_KEEP_SIZE); - break; - case 'z': - /* zero range mode */ - falloc_mode = (FALLOC_FL_ZERO_RANGE | - 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; -} diff --git a/contrib/fsstress.c b/contrib/fsstress.c deleted file mode 100644 index 2136a903..00000000 --- a/contrib/fsstress.c +++ /dev/null @@ -1,2708 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 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. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/ - */ - -#define NO_XFS -#define HAVE_SYS_PRCTL_H -#define _LARGEFILE64_SOURCE - -#define MAXNAMELEN 1024 -struct dioattr { - int d_miniosz, d_maxiosz, d_mem; -}; - -#define MIN(a,b) ((a)<(b) ? (a):(b)) -#define MAX(a,b) ((a)>(b) ? (a):(b)) - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef O_DIRECT -#define O_DIRECT 040000 -#endif - -#ifdef HAVE_SYS_PRCTL_H -# include -#endif - -#define XFS_ERRTAG_MAX 17 - -typedef enum { -#ifndef NO_XFS - OP_ALLOCSP, - OP_ATTR_REMOVE, - OP_ATTR_SET, - OP_BULKSTAT, - OP_BULKSTAT1, -#endif - OP_CHOWN, - OP_CREAT, - OP_DREAD, - OP_DWRITE, - OP_FDATASYNC, -#ifndef NO_XFS - OP_FREESP, -#endif - OP_FSYNC, - OP_GETDENTS, - OP_LINK, - OP_MKDIR, - OP_MKNOD, - OP_READ, - OP_READLINK, - OP_RENAME, -#ifndef NO_XFS - OP_RESVSP, -#endif - OP_RMDIR, - OP_STAT, - OP_SYMLINK, - OP_SYNC, - OP_TRUNCATE, - OP_UNLINK, -#ifndef NO_XFS - OP_UNRESVSP, -#endif - OP_WRITE, - OP_LAST -} opty_t; - -typedef void (*opfnc_t) (int, long); - -typedef struct opdesc { - opty_t op; - char *name; - opfnc_t func; - int freq; - int iswrite; - int isxfs; -} opdesc_t; - -typedef struct fent { - int id; - int parent; -} fent_t; - -typedef struct flist { - int nfiles; - int nslots; - int tag; - fent_t *fents; -} flist_t; - -typedef struct pathname { - int len; - char *path; -} pathname_t; - -#define FT_DIR 0 -#define FT_DIRm (1 << FT_DIR) -#define FT_REG 1 -#define FT_REGm (1 << FT_REG) -#define FT_SYM 2 -#define FT_SYMm (1 << FT_SYM) -#define FT_DEV 3 -#define FT_DEVm (1 << FT_DEV) -#define FT_RTF 4 -#define FT_RTFm (1 << FT_RTF) -#define FT_nft 5 -#define FT_ANYm ((1 << FT_nft) - 1) -#define FT_REGFILE (FT_REGm | FT_RTFm) -#define FT_NOTDIR (FT_ANYm & ~FT_DIRm) - -#define FLIST_SLOT_INCR 16 -#define NDCACHE 64 - -#define MAXFSIZE ((1ULL << 63) - 1ULL) -#define MAXFSIZE32 ((1ULL << 40) - 1ULL) - -void allocsp_f(int, long); -void attr_remove_f(int, long); -void attr_set_f(int, long); -void bulkstat_f(int, long); -void bulkstat1_f(int, long); -void chown_f(int, long); -void creat_f(int, long); -void dread_f(int, long); -void dwrite_f(int, long); -void fdatasync_f(int, long); -void freesp_f(int, long); -void fsync_f(int, long); -void getdents_f(int, long); -void link_f(int, long); -void mkdir_f(int, long); -void mknod_f(int, long); -void read_f(int, long); -void readlink_f(int, long); -void rename_f(int, long); -void resvsp_f(int, long); -void rmdir_f(int, long); -void stat_f(int, long); -void symlink_f(int, long); -void sync_f(int, long); -void truncate_f(int, long); -void unlink_f(int, long); -void unresvsp_f(int, long); -void write_f(int, long); - -opdesc_t ops[] = { -#ifndef NO_XFS - {OP_ALLOCSP, "allocsp", allocsp_f, 1, 1, 1}, - {OP_ATTR_REMOVE, "attr_remove", attr_remove_f, /* 1 */ 0, 1, 1}, - {OP_ATTR_SET, "attr_set", attr_set_f, /* 2 */ 0, 1, 1}, - {OP_BULKSTAT, "bulkstat", bulkstat_f, 1, 0, 1}, - {OP_BULKSTAT1, "bulkstat1", bulkstat1_f, 1, 0, 1}, -#endif - {OP_CHOWN, "chown", chown_f, 3, 1, 0}, - {OP_CREAT, "creat", creat_f, 4, 1, 0}, - {OP_DREAD, "dread", dread_f, 4, 0, 0}, - {OP_DWRITE, "dwrite", dwrite_f, 4, 1, 0}, - {OP_FDATASYNC, "fdatasync", fdatasync_f, 1, 1, 0}, -#ifndef NO_XFS - {OP_FREESP, "freesp", freesp_f, 1, 1, 1}, -#endif - {OP_FSYNC, "fsync", fsync_f, 1, 1, 0}, - {OP_GETDENTS, "getdents", getdents_f, 1, 0, 0}, - {OP_LINK, "link", link_f, 1, 1, 0}, - {OP_MKDIR, "mkdir", mkdir_f, 2, 1, 0}, - {OP_MKNOD, "mknod", mknod_f, 2, 1, 0}, - {OP_READ, "read", read_f, 1, 0, 0}, - {OP_READLINK, "readlink", readlink_f, 1, 0, 0}, - {OP_RENAME, "rename", rename_f, 2, 1, 0}, -#ifndef NO_XFS - {OP_RESVSP, "resvsp", resvsp_f, 1, 1, 1}, -#endif - {OP_RMDIR, "rmdir", rmdir_f, 1, 1, 0}, - {OP_STAT, "stat", stat_f, 1, 0, 0}, - {OP_SYMLINK, "symlink", symlink_f, 2, 1, 0}, - {OP_SYNC, "sync", sync_f, 1, 0, 0}, - {OP_TRUNCATE, "truncate", truncate_f, 2, 1, 0}, - {OP_UNLINK, "unlink", unlink_f, 1, 1, 0}, -#ifndef NO_XFS - {OP_UNRESVSP, "unresvsp", unresvsp_f, 1, 1, 1}, -#endif - {OP_WRITE, "write", write_f, 4, 1, 0}, -}, *ops_end; - -flist_t flist[FT_nft] = { - {0, 0, 'd', NULL}, - {0, 0, 'f', NULL}, - {0, 0, 'l', NULL}, - {0, 0, 'c', NULL}, - {0, 0, 'r', NULL}, -}; - -int dcache[NDCACHE]; -int errrange; -int errtag; -opty_t *freq_table; -int freq_table_size; -#ifndef NO_XFS -xfs_fsop_geom_t geom; -#endif -char *homedir; -int *ilist; -int ilistlen; -off64_t maxfsize; -char *myprog; -int namerand; -int nameseq; -int nops; -int nproc = 1; -int operations = 1; -int procid; -int rtpct; -unsigned long seed = 0; -ino_t top_ino; -int verbose = 0; -#ifndef NO_XFS -int no_xfs = 0; -#else -int no_xfs = 1; -#endif -sig_atomic_t should_stop = 0; - -void add_to_flist(int, int, int); -void append_pathname(pathname_t *, char *); -#ifndef NO_XFS -int attr_list_path(pathname_t *, char *, const int, int, attrlist_cursor_t *); -int attr_remove_path(pathname_t *, const char *, int); -int attr_set_path(pathname_t *, const char *, const char *, const int, int); -#endif -void check_cwd(void); -int creat_path(pathname_t *, mode_t); -void dcache_enter(int, int); -void dcache_init(void); -fent_t *dcache_lookup(int); -void dcache_purge(int); -void del_from_flist(int, int); -int dirid_to_name(char *, int); -void doproc(void); -void fent_to_name(pathname_t *, flist_t *, fent_t *); -void fix_parent(int, int); -void free_pathname(pathname_t *); -int generate_fname(fent_t *, int, pathname_t *, int *, int *); -int get_fname(int, long, pathname_t *, flist_t **, fent_t **, int *); -void init_pathname(pathname_t *); -int lchown_path(pathname_t *, uid_t, gid_t); -int link_path(pathname_t *, pathname_t *); -int lstat64_path(pathname_t *, struct stat64 *); -void make_freq_table(void); -int mkdir_path(pathname_t *, mode_t); -int mknod_path(pathname_t *, mode_t, dev_t); -void namerandpad(int, char *, int); -int open_path(pathname_t *, int); -DIR *opendir_path(pathname_t *); -void process_freq(char *); -int readlink_path(pathname_t *, char *, size_t); -int rename_path(pathname_t *, pathname_t *); -int rmdir_path(pathname_t *); -void separate_pathname(pathname_t *, char *, pathname_t *); -void show_ops(int, char *); -int stat64_path(pathname_t *, struct stat64 *); -int symlink_path(const char *, pathname_t *); -int truncate64_path(pathname_t *, off64_t); -int unlink_path(pathname_t *); -void usage(void); -void write_freq(void); -void zero_freq(void); - -void sg_handler(int signum) -{ - should_stop = 1; -} - -int main(int argc, char **argv) -{ - char buf[10]; - int c; - char *dirname = NULL; - int fd; - int i; - int cleanup = 0; - int loops = 1; - int loopcntr = 1; - char cmd[256]; -#ifndef NO_XFS - int j; -#endif - char *p; - int stat; - struct timeval t; -#ifndef NO_XFS - ptrdiff_t srval; -#endif - int nousage = 0; -#ifndef NO_XFS - xfs_error_injection_t err_inj; -#endif - struct sigaction action; - - errrange = errtag = 0; - umask(0); - nops = sizeof(ops) / sizeof(ops[0]); - ops_end = &ops[nops]; - myprog = argv[0]; - while ((c = getopt(argc, argv, "cd:e:f:i:l:n:p:rs:vwzHSX")) != -1) { - switch (c) { - case 'c': - /*Don't cleanup */ - cleanup = 1; - break; - case 'd': - dirname = optarg; - break; - case 'e': - sscanf(optarg, "%d", &errtag); - if (errtag < 0) { - errtag = -errtag; - errrange = 1; - } else if (errtag == 0) - errtag = -1; - if (errtag >= XFS_ERRTAG_MAX) { - fprintf(stderr, - "error tag %d too large (max %d)\n", - errtag, XFS_ERRTAG_MAX - 1); - exit(1); - } - break; - case 'f': - process_freq(optarg); - break; - case 'i': - ilist = realloc(ilist, ++ilistlen * sizeof(*ilist)); - ilist[ilistlen - 1] = strtol(optarg, &p, 16); - break; - case 'l': - loops = atoi(optarg); - break; - case 'n': - operations = atoi(optarg); - break; - case 'p': - nproc = atoi(optarg); - break; - case 'r': - namerand = 1; - break; - case 's': - seed = strtoul(optarg, NULL, 0); - break; - case 'v': - verbose = 1; - break; - case 'w': - write_freq(); - break; - case 'z': - zero_freq(); - break; - case 'S': - show_ops(0, NULL); - printf("\n"); - nousage = 1; - break; - case '?': - fprintf(stderr, "%s - invalid parameters\n", myprog); - /* fall through */ - case 'H': - usage(); - exit(1); - case 'X': - no_xfs = 1; - break; - } - } - - if (no_xfs && errtag) { - fprintf(stderr, "error injection only works on XFS\n"); - exit(1); - } - - if (no_xfs) { - int i; - for (i = 0; ops + i < ops_end; ++i) { - if (ops[i].isxfs) - ops[i].freq = 0; - } - } - - make_freq_table(); - - while (((loopcntr <= loops) || (loops == 0)) && !should_stop) { - if (!dirname) { - /* no directory specified */ - if (!nousage) - usage(); - exit(1); - } - - (void)mkdir(dirname, 0777); - if (chdir(dirname) < 0) { - perror(dirname); - exit(1); - } - sprintf(buf, "fss%x", getpid()); - fd = creat(buf, 0666); - if (lseek64(fd, (off64_t) (MAXFSIZE32 + 1ULL), SEEK_SET) < 0) - maxfsize = (off64_t) MAXFSIZE32; - else - maxfsize = (off64_t) MAXFSIZE; - dcache_init(); - setlinebuf(stdout); - if (!seed) { - gettimeofday(&t, NULL); - seed = (int)t.tv_sec ^ (int)t.tv_usec; - printf("seed = %ld\n", seed); - } -#ifndef NO_XFS - if (!no_xfs) { - memset(&geom, 0, sizeof(geom)); - i = ioctl(fd, XFS_IOC_FSGEOMETRY, &geom); - if (i >= 0 && geom.rtblocks) - rtpct = MIN(MAX(geom.rtblocks * 100 / - (geom.rtblocks + - geom.datablocks), 1), 99); - else - rtpct = 0; - } - if (errtag != 0) { - if (errrange == 0) { - if (errtag <= 0) { - srandom(seed); - j = random() % 100; - - for (i = 0; i < j; i++) - (void)random(); - - errtag = - (random() % (XFS_ERRTAG_MAX - 1)) + - 1; - } - } else { - srandom(seed); - j = random() % 100; - - for (i = 0; i < j; i++) - (void)random(); - - errtag += - (random() % (XFS_ERRTAG_MAX - errtag)); - } - printf("Injecting failure on tag #%d\n", errtag); - memset(&err_inj, 0, sizeof(err_inj)); - err_inj.errtag = errtag; - err_inj.fd = fd; - srval = ioctl(fd, XFS_IOC_ERROR_INJECTION, &err_inj); - if (srval < -1) { - perror - ("fsstress - XFS_SYSSGI error injection call"); - close(fd); - unlink(buf); - exit(1); - } - } else -#endif - close(fd); - unlink(buf); - - - if (nproc == 1) { - procid = 0; - doproc(); - } else { - setpgid(0, 0); - action.sa_handler = sg_handler; - sigemptyset(&action.sa_mask); - action.sa_flags = 0; - if (sigaction(SIGTERM, &action, 0)) { - perror("sigaction failed"); - exit(1); - } - - for (i = 0; i < nproc; i++) { - if (fork() == 0) { - - action.sa_handler = SIG_DFL; - sigemptyset(&action.sa_mask); - if (sigaction(SIGTERM, &action, 0)) - return 1; -#ifdef HAVE_SYS_PRCTL_H - prctl(PR_SET_PDEATHSIG, SIGKILL); - if (getppid() == 1) /* parent died already? */ - return 0; -#endif - procid = i; - doproc(); - return 0; - } - } - while (wait(&stat) > 0 && !should_stop) { - continue; - } - if (should_stop) { - action.sa_flags = SA_RESTART; - sigaction(SIGTERM, &action, 0); - kill(-getpid(), SIGTERM); - while (wait(&stat) > 0) - continue; - } - } -#ifndef NO_XFS - if (errtag != 0) { - memset(&err_inj, 0, sizeof(err_inj)); - err_inj.errtag = 0; - err_inj.fd = fd; - if ((srval = - ioctl(fd, XFS_IOC_ERROR_CLEARALL, - &err_inj)) != 0) { - fprintf(stderr, "Bad ej clear on %d (%d).\n", - fd, errno); - perror - ("fsstress - XFS_SYSSGI clear error injection call"); - close(fd); - exit(1); - } - close(fd); - } -#endif - if (cleanup == 0) { - sprintf(cmd, "rm -rf %s/*", dirname); - system(cmd); - for (i = 0; i < FT_nft; i++) { - flist[i].nslots = 0; - flist[i].nfiles = 0; - free(flist[i].fents); - flist[i].fents = NULL; - } - } - loopcntr++; - } - return 0; -} - -void add_to_flist(int ft, int id, int parent) -{ - fent_t *fep; - flist_t *ftp; - - ftp = &flist[ft]; - if (ftp->nfiles == ftp->nslots) { - ftp->nslots += FLIST_SLOT_INCR; - ftp->fents = realloc(ftp->fents, ftp->nslots * sizeof(fent_t)); - } - fep = &ftp->fents[ftp->nfiles++]; - fep->id = id; - fep->parent = parent; -} - -void append_pathname(pathname_t * name, char *str) -{ - int len; - char *path; - - len = strlen(str); -#ifdef DEBUG - if (len && *str == '/' && name->len == 0) { - fprintf(stderr, "fsstress: append_pathname failure\n"); - chdir(homedir); - abort(); - - } -#endif - path = realloc(name->path, name->len + 1 + len); - if (path == NULL) { - fprintf(stderr, "fsstress: append_pathname realloc failed\n"); - chdir(homedir); - abort(); - } - name->path = path; - strcpy(&name->path[name->len], str); - name->len += len; -} - -#ifndef NO_XFS -int -attr_list_path(pathname_t * name, char *buffer, const int buffersize, int flags, - attrlist_cursor_t * cursor) -{ - char buf[MAXNAMELEN]; - pathname_t newname; - int rval; - - rval = attr_list(name->path, buffer, buffersize, flags, cursor); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name, buf, &newname); - if (chdir(buf) == 0) { - rval = attr_list_path(&newname, buffer, buffersize, flags, - cursor); - chdir(".."); - } - free_pathname(&newname); - return rval; -} - -int attr_remove_path(pathname_t * name, const char *attrname, int flags) -{ - char buf[MAXNAMELEN]; - pathname_t newname; - int rval; - - rval = attr_remove(name->path, attrname, flags); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name, buf, &newname); - if (chdir(buf) == 0) { - rval = attr_remove_path(&newname, attrname, flags); - chdir(".."); - } - free_pathname(&newname); - return rval; -} - -int -attr_set_path(pathname_t * name, const char *attrname, const char *attrvalue, - const int valuelength, int flags) -{ - char buf[MAXNAMELEN]; - pathname_t newname; - int rval; - - rval = attr_set(name->path, attrname, attrvalue, valuelength, flags); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name, buf, &newname); - if (chdir(buf) == 0) { - rval = attr_set_path(&newname, attrname, attrvalue, valuelength, - flags); - chdir(".."); - } - free_pathname(&newname); - return rval; -} -#endif - -void check_cwd(void) -{ -#ifdef DEBUG - struct stat64 statbuf; - - if (stat64(".", &statbuf) == 0 && statbuf.st_ino == top_ino) - return; - chdir(homedir); - fprintf(stderr, "fsstress: check_cwd failure\n"); - abort(); - -#endif -} - -int creat_path(pathname_t * name, mode_t mode) -{ - char buf[MAXNAMELEN]; - pathname_t newname; - int rval; - - rval = creat(name->path, mode); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name, buf, &newname); - if (chdir(buf) == 0) { - rval = creat_path(&newname, mode); - chdir(".."); - } - free_pathname(&newname); - return rval; -} - -void dcache_enter(int dirid, int slot) -{ - dcache[dirid % NDCACHE] = slot; -} - -void dcache_init(void) -{ - int i; - - for (i = 0; i < NDCACHE; i++) - dcache[i] = -1; -} - -fent_t *dcache_lookup(int dirid) -{ - fent_t *fep; - int i; - - i = dcache[dirid % NDCACHE]; - if (i >= 0 && (fep = &flist[FT_DIR].fents[i])->id == dirid) - return fep; - return NULL; -} - -void dcache_purge(int dirid) -{ - int *dcp; - - dcp = &dcache[dirid % NDCACHE]; - if (*dcp >= 0 && flist[FT_DIR].fents[*dcp].id == dirid) - *dcp = -1; -} - -void del_from_flist(int ft, int slot) -{ - flist_t *ftp; - - ftp = &flist[ft]; - if (ft == FT_DIR) - dcache_purge(ftp->fents[slot].id); - if (slot != ftp->nfiles - 1) { - if (ft == FT_DIR) - dcache_purge(ftp->fents[ftp->nfiles - 1].id); - ftp->fents[slot] = ftp->fents[--ftp->nfiles]; - } else - ftp->nfiles--; -} - -fent_t *dirid_to_fent(int dirid) -{ - fent_t *efep; - fent_t *fep; - flist_t *flp; - - if ((fep = dcache_lookup(dirid))) - return fep; - flp = &flist[FT_DIR]; - for (fep = flp->fents, efep = &fep[flp->nfiles]; fep < efep; fep++) { - if (fep->id == dirid) { - dcache_enter(dirid, fep - flp->fents); - return fep; - } - } - return NULL; -} - -void doproc(void) -{ - struct stat64 statbuf; - char buf[10]; - int opno; - int rval; - opdesc_t *p; - - sprintf(buf, "p%x", procid); - (void)mkdir(buf, 0777); - if (chdir(buf) < 0 || stat64(".", &statbuf) < 0) { - perror(buf); - _exit(1); - } - top_ino = statbuf.st_ino; - homedir = getcwd(NULL, -1); - seed += procid; - srandom(seed); - if (namerand) - namerand = random(); - for (opno = 0; opno < operations; opno++) { - p = &ops[freq_table[random() % freq_table_size]]; - if ((unsigned long)p->func < 4096) - abort(); - - p->func(opno, random()); - /* - * test for forced shutdown by stat'ing the test - * directory. If this stat returns EIO, assume - * the forced shutdown happened. - */ - if (errtag != 0 && opno % 100 == 0) { - rval = stat64(".", &statbuf); - if (rval == EIO) { - fprintf(stderr, "Detected EIO\n"); - return; - } - } - } -} - -void fent_to_name(pathname_t * name, flist_t * flp, fent_t * fep) -{ - char buf[MAXNAMELEN]; - int i; - fent_t *pfep; - - if (fep == NULL) - return; - if (fep->parent != -1) { - pfep = dirid_to_fent(fep->parent); - fent_to_name(name, &flist[FT_DIR], pfep); - append_pathname(name, "/"); - } - i = sprintf(buf, "%c%x", flp->tag, fep->id); - namerandpad(fep->id, buf, i); - append_pathname(name, buf); -} - -void fix_parent(int oldid, int newid) -{ - fent_t *fep; - flist_t *flp; - int i; - int j; - - for (i = 0, flp = flist; i < FT_nft; i++, flp++) { - for (j = 0, fep = flp->fents; j < flp->nfiles; j++, fep++) { - if (fep->parent == oldid) - fep->parent = newid; - } - } -} - -void free_pathname(pathname_t * name) -{ - if (name->path) { - free(name->path); - name->path = NULL; - name->len = 0; - } -} - -int generate_fname(fent_t * fep, int ft, pathname_t * name, int *idp, int *v) -{ - char buf[MAXNAMELEN]; - flist_t *flp; - int id; - int j; - int len; - - flp = &flist[ft]; - len = sprintf(buf, "%c%x", flp->tag, id = nameseq++); - namerandpad(id, buf, len); - if (fep) { - fent_to_name(name, &flist[FT_DIR], fep); - append_pathname(name, "/"); - } - append_pathname(name, buf); - *idp = id; - *v = verbose; - for (j = 0; !*v && j < ilistlen; j++) { - if (ilist[j] == id) { - *v = 1; - break; - } - } - return 1; -} - -int -get_fname(int which, long r, pathname_t * name, flist_t ** flpp, fent_t ** fepp, - int *v) -{ - int c; - fent_t *fep; - flist_t *flp; - int i; - int j; - int x; - - for (i = 0, c = 0, flp = flist; i < FT_nft; i++, flp++) { - if (which & (1 << i)) - c += flp->nfiles; - } - if (c == 0) { - if (flpp) - *flpp = NULL; - if (fepp) - *fepp = NULL; - *v = verbose; - return 0; - } - x = (int)(r % c); - for (i = 0, c = 0, flp = flist; i < FT_nft; i++, flp++) { - if (which & (1 << i)) { - if (x < c + flp->nfiles) { - fep = &flp->fents[x - c]; - if (name) - fent_to_name(name, flp, fep); - if (flpp) - *flpp = flp; - if (fepp) - *fepp = fep; - *v = verbose; - for (j = 0; !*v && j < ilistlen; j++) { - if (ilist[j] == fep->id) { - *v = 1; - break; - } - } - return 1; - } - c += flp->nfiles; - } - } -#ifdef DEBUG - fprintf(stderr, "fsstress: get_fname failure\n"); - abort(); -#endif - return -1; - -} - -void init_pathname(pathname_t * name) -{ - name->len = 0; - name->path = NULL; -} - -int lchown_path(pathname_t * name, uid_t owner, gid_t group) -{ - char buf[MAXNAMELEN]; - pathname_t newname; - int rval; - - rval = lchown(name->path, owner, group); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name, buf, &newname); - if (chdir(buf) == 0) { - rval = lchown_path(&newname, owner, group); - chdir(".."); - } - free_pathname(&newname); - return rval; -} - -int link_path(pathname_t * name1, pathname_t * name2) -{ - char buf1[MAXNAMELEN]; - char buf2[MAXNAMELEN]; - int down1; - pathname_t newname1; - pathname_t newname2; - int rval; - - rval = link(name1->path, name2->path); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name1, buf1, &newname1); - separate_pathname(name2, buf2, &newname2); - if (strcmp(buf1, buf2) == 0) { - if (chdir(buf1) == 0) { - rval = link_path(&newname1, &newname2); - chdir(".."); - } - } else { - if (strcmp(buf1, "..") == 0) - down1 = 0; - else if (strcmp(buf2, "..") == 0) - down1 = 1; - else if (strlen(buf1) == 0) - down1 = 0; - else if (strlen(buf2) == 0) - down1 = 1; - else - down1 = MAX(newname1.len, 3 + name2->len) <= - MAX(3 + name1->len, newname2.len); - if (down1) { - free_pathname(&newname2); - append_pathname(&newname2, "../"); - append_pathname(&newname2, name2->path); - if (chdir(buf1) == 0) { - rval = link_path(&newname1, &newname2); - chdir(".."); - } - } else { - free_pathname(&newname1); - append_pathname(&newname1, "../"); - append_pathname(&newname1, name1->path); - if (chdir(buf2) == 0) { - rval = link_path(&newname1, &newname2); - chdir(".."); - } - } - } - free_pathname(&newname1); - free_pathname(&newname2); - return rval; -} - -int lstat64_path(pathname_t * name, struct stat64 *sbuf) -{ - char buf[MAXNAMELEN]; - pathname_t newname; - int rval; - - rval = lstat64(name->path, sbuf); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name, buf, &newname); - if (chdir(buf) == 0) { - rval = lstat64_path(&newname, sbuf); - chdir(".."); - } - free_pathname(&newname); - return rval; -} - -void make_freq_table(void) -{ - int f; - int i; - opdesc_t *p; - - for (p = ops, f = 0; p < ops_end; p++) - f += p->freq; - freq_table = malloc(f * sizeof(*freq_table)); - freq_table_size = f; - for (p = ops, i = 0; p < ops_end; p++) { - for (f = 0; f < p->freq; f++, i++) - freq_table[i] = p->op; - } -} - -int mkdir_path(pathname_t * name, mode_t mode) -{ - char buf[MAXNAMELEN]; - pathname_t newname; - int rval; - - rval = mkdir(name->path, mode); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name, buf, &newname); - if (chdir(buf) == 0) { - rval = mkdir_path(&newname, mode); - chdir(".."); - } - free_pathname(&newname); - return rval; -} - -int mknod_path(pathname_t * name, mode_t mode, dev_t dev) -{ - char buf[MAXNAMELEN]; - pathname_t newname; - int rval; - - rval = mknod(name->path, mode, dev); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name, buf, &newname); - if (chdir(buf) == 0) { - rval = mknod_path(&newname, mode, dev); - chdir(".."); - } - free_pathname(&newname); - return rval; -} - -void namerandpad(int id, char *buf, int i) -{ - int bucket; - static int buckets[] = { 2, 4, 8, 16, 32, 64, 128, MAXNAMELEN - 1 }; - int padlen; - int padmod; - - if (namerand == 0) - return; - bucket = (id ^ namerand) % (sizeof(buckets) / sizeof(buckets[0])); - padmod = buckets[bucket] + 1 - i; - if (padmod <= 0) - return; - padlen = (id ^ namerand) % padmod; - if (padlen) { - memset(&buf[i], 'X', padlen); - buf[i + padlen] = '\0'; - } -} - -int open_path(pathname_t * name, int oflag) -{ - char buf[MAXNAMELEN]; - pathname_t newname; - int rval; - - rval = open(name->path, oflag); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name, buf, &newname); - if (chdir(buf) == 0) { - rval = open_path(&newname, oflag); - chdir(".."); - } - free_pathname(&newname); - return rval; -} - -DIR *opendir_path(pathname_t * name) -{ - char buf[MAXNAMELEN]; - pathname_t newname; - DIR *rval; - - rval = opendir(name->path); - if (rval || errno != ENAMETOOLONG) - return rval; - separate_pathname(name, buf, &newname); - if (chdir(buf) == 0) { - rval = opendir_path(&newname); - chdir(".."); - } - free_pathname(&newname); - return rval; -} - -void process_freq(char *arg) -{ - opdesc_t *p; - char *s; - - s = strchr(arg, '='); - if (s == NULL) { - fprintf(stderr, "bad argument '%s'\n", arg); - exit(1); - } - *s++ = '\0'; - for (p = ops; p < ops_end; p++) { - if (strcmp(arg, p->name) == 0) { - p->freq = atoi(s); - return; - } - } - fprintf(stderr, "can't find op type %s for -f\n", arg); - exit(1); -} - -int readlink_path(pathname_t * name, char *lbuf, size_t lbufsiz) -{ - char buf[MAXNAMELEN]; - pathname_t newname; - int rval; - - rval = readlink(name->path, lbuf, lbufsiz); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name, buf, &newname); - if (chdir(buf) == 0) { - rval = readlink_path(&newname, lbuf, lbufsiz); - chdir(".."); - } - free_pathname(&newname); - return rval; -} - -int rename_path(pathname_t * name1, pathname_t * name2) -{ - char buf1[MAXNAMELEN]; - char buf2[MAXNAMELEN]; - int down1; - pathname_t newname1; - pathname_t newname2; - int rval; - - rval = rename(name1->path, name2->path); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name1, buf1, &newname1); - separate_pathname(name2, buf2, &newname2); - if (strcmp(buf1, buf2) == 0) { - if (chdir(buf1) == 0) { - rval = rename_path(&newname1, &newname2); - chdir(".."); - } - } else { - if (strcmp(buf1, "..") == 0) - down1 = 0; - else if (strcmp(buf2, "..") == 0) - down1 = 1; - else if (strlen(buf1) == 0) - down1 = 0; - else if (strlen(buf2) == 0) - down1 = 1; - else - down1 = MAX(newname1.len, 3 + name2->len) <= - MAX(3 + name1->len, newname2.len); - if (down1) { - free_pathname(&newname2); - append_pathname(&newname2, "../"); - append_pathname(&newname2, name2->path); - if (chdir(buf1) == 0) { - rval = rename_path(&newname1, &newname2); - chdir(".."); - } - } else { - free_pathname(&newname1); - append_pathname(&newname1, "../"); - append_pathname(&newname1, name1->path); - if (chdir(buf2) == 0) { - rval = rename_path(&newname1, &newname2); - chdir(".."); - } - } - } - free_pathname(&newname1); - free_pathname(&newname2); - return rval; -} - -int rmdir_path(pathname_t * name) -{ - char buf[MAXNAMELEN]; - pathname_t newname; - int rval; - - rval = rmdir(name->path); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name, buf, &newname); - if (chdir(buf) == 0) { - rval = rmdir_path(&newname); - chdir(".."); - } - free_pathname(&newname); - return rval; -} - -void separate_pathname(pathname_t * name, char *buf, pathname_t * newname) -{ - char *slash; - - init_pathname(newname); - slash = strchr(name->path, '/'); - if (slash == NULL) { - buf[0] = '\0'; - return; - } - *slash = '\0'; - strcpy(buf, name->path); - *slash = '/'; - append_pathname(newname, slash + 1); -} - -#define WIDTH 80 - -void show_ops(int flag, char *lead_str) -{ - opdesc_t *p; - - if (flag < 0) { - /* print in list form */ - int x = WIDTH; - - for (p = ops; p < ops_end; p++) { - if (lead_str != NULL - && x + strlen(p->name) >= WIDTH - 5) - x = printf("%s%s", (p == ops) ? "" : "\n", - lead_str); - x += printf("%s ", p->name); - } - printf("\n"); - } else { - int f; - for (f = 0, p = ops; p < ops_end; p++) - f += p->freq; - - if (f == 0) - flag = 1; - - for (p = ops; p < ops_end; p++) { - if (flag != 0 || p->freq > 0) { - if (lead_str != NULL) - printf("%s", lead_str); - printf("%20s %d/%d %s\n", - p->name, p->freq, f, - (p->iswrite == 0) ? " " : "write op"); - } - } - } -} - -int stat64_path(pathname_t * name, struct stat64 *sbuf) -{ - char buf[MAXNAMELEN]; - pathname_t newname; - int rval; - - rval = stat64(name->path, sbuf); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name, buf, &newname); - if (chdir(buf) == 0) { - rval = stat64_path(&newname, sbuf); - chdir(".."); - } - free_pathname(&newname); - return rval; -} - -int symlink_path(const char *name1, pathname_t * name) -{ - char buf[MAXNAMELEN]; - pathname_t newname; - int rval; - - if (!strcmp(name1, name->path)) { - printf("yikes! %s %s\n", name1, name->path); - return 0; - } - - rval = symlink(name1, name->path); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name, buf, &newname); - if (chdir(buf) == 0) { - rval = symlink_path(name1, &newname); - chdir(".."); - } - free_pathname(&newname); - return rval; -} - -int truncate64_path(pathname_t * name, off64_t length) -{ - char buf[MAXNAMELEN]; - pathname_t newname; - int rval; - - rval = truncate64(name->path, length); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name, buf, &newname); - if (chdir(buf) == 0) { - rval = truncate64_path(&newname, length); - chdir(".."); - } - free_pathname(&newname); - return rval; -} - -int unlink_path(pathname_t * name) -{ - char buf[MAXNAMELEN]; - pathname_t newname; - int rval; - - rval = unlink(name->path); - if (rval >= 0 || errno != ENAMETOOLONG) - return rval; - separate_pathname(name, buf, &newname); - if (chdir(buf) == 0) { - rval = unlink_path(&newname); - chdir(".."); - } - free_pathname(&newname); - return rval; -} - -void usage(void) -{ - printf("Usage: %s -H or\n", myprog); - printf - (" %s [-c][-d dir][-e errtg][-f op_name=freq][-l loops][-n nops]\n", - myprog); - printf(" [-p nproc][-r len][-s seed][-v][-w][-z][-S]\n"); - printf("where\n"); - printf - (" -c specifies not to remove files(cleanup) after execution\n"); - printf - (" -d dir specifies the base directory for operations\n"); - printf(" -e errtg specifies error injection stuff\n"); - printf - (" -f op_name=freq changes the frequency of option name to freq\n"); - printf(" the valid operation names are:\n"); - show_ops(-1, " "); - printf - (" -l loops specifies the no. of times the testrun should loop.\n"); - printf(" *use 0 for infinite (default 1)\n"); - printf - (" -n nops specifies the no. of operations per process (default 1)\n"); - printf - (" -p nproc specifies the no. of processes (default 1)\n"); - printf(" -r specifies random name padding\n"); - printf - (" -s seed specifies the seed for the random generator (default random)\n"); - printf(" -v specifies verbose mode\n"); - printf - (" -w zeros frequencies of non-write operations\n"); - printf(" -z zeros frequencies of all operations\n"); - printf - (" -S prints the table of operations (omitting zero frequency)\n"); - printf(" -H prints usage and exits\n"); - printf - (" -X don't do anything XFS specific (default with -DNO_XFS)\n"); -} - -void write_freq(void) -{ - opdesc_t *p; - - for (p = ops; p < ops_end; p++) { - if (!p->iswrite) - p->freq = 0; - } -} - -void zero_freq(void) -{ - opdesc_t *p; - - for (p = ops; p < ops_end; p++) - p->freq = 0; -} - -#ifndef NO_XFS - -void allocsp_f(int opno, long r) -{ - int e; - pathname_t f; - int fd; - struct xfs_flock64 fl; - __s64 lr; - __s64 off; - struct stat64 stb; - int v; - - init_pathname(&f); - if (!get_fname(FT_REGFILE, r, &f, NULL, NULL, &v)) { - if (v) - printf("%d/%d: allocsp - no filename\n", procid, opno); - free_pathname(&f); - return; - } - fd = open_path(&f, O_RDWR); - e = fd < 0 ? errno : 0; - check_cwd(); - if (fd < 0) { - if (v) - printf("%d/%d: allocsp - open %s failed %d\n", - procid, opno, f.path, e); - free_pathname(&f); - return; - } - if (fstat64(fd, &stb) < 0) { - if (v) - printf("%d/%d: allocsp - fstat64 %s failed %d\n", - procid, opno, f.path, errno); - free_pathname(&f); - close(fd); - return; - } - lr = ((__s64) random() << 32) + random(); - off = lr % MIN(stb.st_size + (1024 * 1024), MAXFSIZE); - off %= maxfsize; - memset(&fl, 0, sizeof(fl)); - fl.l_whence = SEEK_SET; - fl.l_start = off; - fl.l_len = 0; - e = ioctl(fd, XFS_IOC_ALLOCSP64, &fl) < 0 ? errno : 0; - if (v) - printf("%d/%d: ioctl(XFS_IOC_ALLOCSP64) %s %lld 0 %d\n", - procid, opno, f.path, (long long)off, e); - free_pathname(&f); - close(fd); -} - -void attr_remove_f(int opno, long r) -{ - attrlist_ent_t *aep; - attrlist_t *alist; - char *aname; - char buf[4096]; - attrlist_cursor_t cursor; - int e; - int ent; - pathname_t f; - int total; - int v; - int which; - - init_pathname(&f); - if (!get_fname(FT_ANYm, r, &f, NULL, NULL, &v)) - append_pathname(&f, "."); - total = 0; - memset(&cursor, 0x00, sizeof(cursor)); - do { - e = attr_list_path(&f, buf, sizeof(buf), ATTR_DONTFOLLOW, - &cursor); - check_cwd(); - if (e) - break; - alist = (attrlist_t *) buf; - total += alist->al_count; - } while (alist->al_more); - if (total == 0) { - if (v) - printf("%d/%d: attr_remove - no attrs for %s\n", - procid, opno, f.path); - free_pathname(&f); - return; - } - which = (int)(random() % total); - memset(&cursor, 0x00, sizeof(cursor)); - ent = 0; - aname = NULL; - do { - e = attr_list_path(&f, buf, sizeof(buf), ATTR_DONTFOLLOW, - &cursor); - check_cwd(); - if (e) - break; - alist = (attrlist_t *) buf; - if (which < ent + alist->al_count) { - aep = (attrlist_ent_t *) - & buf[alist->al_offset[which - ent]]; - aname = aep->a_name; - break; - } - ent += alist->al_count; - } while (alist->al_more); - if (aname == NULL) { - if (v) - printf("%d/%d: attr_remove - name %d not found at %s\n", - procid, opno, which, f.path); - free_pathname(&f); - return; - } - e = attr_remove_path(&f, aname, ATTR_DONTFOLLOW) < 0 ? errno : 0; - check_cwd(); - if (v) - printf("%d/%d: attr_remove %s %s %d\n", - procid, opno, f.path, aname, e); - free_pathname(&f); -} - -void attr_set_f(int opno, long r) -{ - char aname[10]; - char *aval; - int e; - pathname_t f; - int len; - static int lengths[] = { 10, 100, 1000, 10000 }; - int li; - int v; - - init_pathname(&f); - if (!get_fname(FT_ANYm, r, &f, NULL, NULL, &v)) - append_pathname(&f, "."); - sprintf(aname, "a%x", nameseq++); - li = (int)(random() % (sizeof(lengths) / sizeof(lengths[0]))); - len = (int)(random() % lengths[li]); - if (len == 0) - len = 1; - aval = malloc(len); - memset(aval, nameseq & 0xff, len); - e = attr_set_path(&f, aname, aval, len, ATTR_DONTFOLLOW) < 0 ? - errno : 0; - check_cwd(); - free(aval); - if (v) - printf("%d/%d: attr_set %s %s %d\n", procid, opno, f.path, - aname, e); - free_pathname(&f); -} - -void bulkstat_f(int opno, long r) -{ - __s32 count; - int fd; - __u64 last; - __s32 nent; - xfs_bstat_t *t; - __int64_t total; - xfs_fsop_bulkreq_t bsr; - - last = 0; - nent = (r % 999) + 2; - t = malloc(nent * sizeof(*t)); - fd = open(".", O_RDONLY); - total = 0; - - memset(&bsr, 0, sizeof(bsr)); - bsr.lastip = &last; - bsr.icount = nent; - bsr.ubuffer = t; - bsr.ocount = &count; - - while (ioctl(fd, XFS_IOC_FSBULKSTAT, &bsr) == 0 && count > 0) - total += count; - free(t); - if (verbose) - printf("%d/%d: bulkstat nent %d total %lld\n", - procid, opno, (int)nent, (long long)total); - close(fd); -} - -void bulkstat1_f(int opno, long r) -{ - int e; - pathname_t f; - int fd; - int good; - __u64 ino; - struct stat64 s; - xfs_bstat_t t; - int v; - xfs_fsop_bulkreq_t bsr; - - good = random() & 1; - if (good) { - /* use an inode we know exists */ - init_pathname(&f); - if (!get_fname(FT_ANYm, r, &f, NULL, NULL, &v)) - append_pathname(&f, "."); - ino = stat64_path(&f, &s) < 0 ? (ino64_t) r : s.st_ino; - check_cwd(); - free_pathname(&f); - } else { - /* - * pick a random inode - * - * note this can generate kernel warning messages - * since bulkstat_one will read the disk block that - * would contain a given inode even if that disk - * block doesn't contain inodes. - * - * this is detected later, but not until after the - * warning is displayed. - * - * "XFS: device 0x825- bad inode magic/vsn daddr 0x0 #0" - * - */ - ino = (ino64_t) r; - v = verbose; - } - fd = open(".", O_RDONLY); - - memset(&bsr, 0, sizeof(bsr)); - bsr.lastip = &ino; - bsr.icount = 1; - bsr.ubuffer = &t; - bsr.ocount = NULL; - - e = ioctl(fd, XFS_IOC_FSBULKSTAT_SINGLE, &bsr) < 0 ? errno : 0; - if (v) - printf("%d/%d: bulkstat1 %s ino %lld %d\n", - procid, opno, good ? "real" : "random", - (long long)ino, e); - close(fd); -} - -#endif - -void chown_f(int opno, long r) -{ - int e; - pathname_t f; - int nbits; - uid_t u; - int v; - - init_pathname(&f); - if (!get_fname(FT_ANYm, r, &f, NULL, NULL, &v)) - append_pathname(&f, "."); - u = (uid_t) random(); - nbits = (int)(random() % 32); - u &= (1 << nbits) - 1; - e = lchown_path(&f, u, -1) < 0 ? errno : 0; - check_cwd(); - if (v) - printf("%d/%d: chown %s %d %d\n", procid, opno, f.path, u, e); - free_pathname(&f); -} - -void creat_f(int opno, long r) -{ - int e; - int e1; - int extsize; - pathname_t f; - int fd; - fent_t *fep; - int id; - int parid; - int type; - int v; - int v1; - int esz = 0; - - if (!get_fname(FT_DIRm, r, NULL, NULL, &fep, &v1)) - parid = -1; - else - parid = fep->id; - init_pathname(&f); - type = rtpct ? ((random() % 100) > rtpct ? FT_REG : FT_RTF) : FT_REG; - if (type == FT_RTF) - extsize = (random() % 10) + 1; - else - extsize = 0; - e = generate_fname(fep, type, &f, &id, &v); - v |= v1; - if (!e) { - if (v) { - fent_to_name(&f, &flist[FT_DIR], fep); - printf("%d/%d: creat - no filename from %s\n", - procid, opno, f.path); - } - free_pathname(&f); - return; - } - fd = creat_path(&f, 0666); - e = fd < 0 ? errno : 0; - e1 = 0; - check_cwd(); - esz = 0; - if (fd >= 0) { -#ifndef NO_XFS - struct fsxattr a; - memset(&a, 0, sizeof(a)); - if (extsize && ioctl(fd, XFS_IOC_FSGETXATTR, &a) >= 0) { - a.fsx_xflags |= XFS_XFLAG_REALTIME; - a.fsx_extsize = - geom.rtextsize * geom.blocksize * extsize; - if (ioctl(fd, XFS_IOC_FSSETXATTR, &a) < 0) - e1 = errno; - esz = a.fsx_extsize; - - } -#endif - add_to_flist(type, id, parid); - close(fd); - } - if (v) - printf("%d/%d: creat %s x:%d %d %d\n", procid, opno, f.path, - esz, e, e1); - free_pathname(&f); -} - -int setdirect(int fd) -{ - static int no_direct; - int flags; - - if (no_direct) - return 0; - - flags = fcntl(fd, F_GETFL, 0); - if (flags < 0) - return 0; - - if (fcntl(fd, F_SETFL, flags | O_DIRECT) < 0) { - if (no_xfs) { - no_direct = 1; - return 0; - } - printf("cannot set O_DIRECT: %s\n", strerror(errno)); - return 0; - } - - return 1; -} - -void dread_f(int opno, long r) -{ - __int64_t align; - char *buf = NULL; - struct dioattr diob; - int e; - pathname_t f; - int fd; - size_t len; - __int64_t lr; - off64_t off; - struct stat64 stb; - int v; - - init_pathname(&f); - if (!get_fname(FT_REGFILE, r, &f, NULL, NULL, &v)) { - if (v) - printf("%d/%d: dread - no filename\n", procid, opno); - free_pathname(&f); - return; - } - fd = open_path(&f, O_RDONLY); - - e = fd < 0 ? errno : 0; - check_cwd(); - if (fd < 0) { - if (v) - printf("%d/%d: dread - open %s failed %d\n", - procid, opno, f.path, e); - free_pathname(&f); - return; - } - - if (!setdirect(fd)) { - close(fd); - free_pathname(&f); - return; - } - - if (fstat64(fd, &stb) < 0) { - if (v) - printf("%d/%d: dread - fstat64 %s failed %d\n", - procid, opno, f.path, errno); - free_pathname(&f); - close(fd); - return; - } - if (stb.st_size == 0) { - if (v) - printf("%d/%d: dread - %s zero size\n", procid, opno, - f.path); - free_pathname(&f); - close(fd); - return; - } - - memset(&diob, 0, sizeof(diob)); - if (no_xfs) { - diob.d_miniosz = stb.st_blksize; - diob.d_maxiosz = stb.st_blksize * 256; /* good number ? */ - diob.d_mem = stb.st_blksize; - } -#ifndef NO_XFS - else if (ioctl(fd, XFS_IOC_DIOINFO, &diob) < 0) { - if (v) - printf - ("%d/%d: dread - ioctl(fd, XFS_IOC_DIOINFO) %s failed %d\n", - procid, opno, f.path, errno); - free_pathname(&f); - close(fd); - return; - } -#endif - align = (__int64_t) diob.d_miniosz; - lr = ((__int64_t) random() << 32) + random(); - off = (off64_t) (lr % stb.st_size); - off -= (off % align); - lseek64(fd, off, SEEK_SET); - len = (random() % (getpagesize() * 32)) + 1; - len -= (len % align); - if (len <= 0) - len = align; - else if (len > diob.d_maxiosz) - len = diob.d_maxiosz; - if ((e = posix_memalign((void **)&buf, diob.d_mem, len)) != 0) { - fprintf(stderr, "posix_memalign: %s\n", strerror(e)); - exit(1); - } - if (buf == NULL) { - fprintf(stderr, "posix_memalign: buf is NULL\n"); - exit(1); - } - e = read(fd, buf, len) < 0 ? errno : 0; - free(buf); - if (v) - printf("%d/%d: dread %s [%lld,%ld] %d\n", - procid, opno, f.path, (long long int)off, (long)len, e); - free_pathname(&f); - close(fd); -} - -void dwrite_f(int opno, long r) -{ - __int64_t align; - char *buf = NULL; - struct dioattr diob; - int e; - pathname_t f; - int fd; - size_t len; - __int64_t lr; - off64_t off; - struct stat64 stb; - int v; - - init_pathname(&f); - if (!get_fname(FT_REGFILE, r, &f, NULL, NULL, &v)) { - if (v) - printf("%d/%d: dwrite - no filename\n", procid, opno); - free_pathname(&f); - return; - } - fd = open_path(&f, O_WRONLY); - e = fd < 0 ? errno : 0; - check_cwd(); - if (fd < 0) { - if (v) - printf("%d/%d: dwrite - open %s failed %d\n", - procid, opno, f.path, e); - free_pathname(&f); - return; - } - - if (!setdirect(fd)) { - close(fd); - free_pathname(&f); - return; - } - if (fstat64(fd, &stb) < 0) { - if (v) - printf("%d/%d: dwrite - fstat64 %s failed %d\n", - procid, opno, f.path, errno); - free_pathname(&f); - close(fd); - return; - } - memset(&diob, 0, sizeof(diob)); - if (no_xfs) { - diob.d_miniosz = stb.st_blksize; - diob.d_maxiosz = stb.st_blksize * 256; /* good number ? */ - diob.d_mem = stb.st_blksize; - } -#ifndef NO_XFS - else if (ioctl(fd, XFS_IOC_DIOINFO, &diob) < 0) { - if (v) - printf - ("%d/%d: dwrite - ioctl(fd, XFS_IOC_DIOINFO) %s failed %d\n", - procid, opno, f.path, errno); - free_pathname(&f); - close(fd); - return; - } -#endif - align = (__int64_t) diob.d_miniosz; - lr = ((__int64_t) random() << 32) + random(); - off = (off64_t) (lr % MIN(stb.st_size + (1024 * 1024), MAXFSIZE)); - off -= (off % align); - lseek64(fd, off, SEEK_SET); - len = (random() % (getpagesize() * 32)) + 1; - len -= (len % align); - if (len <= 0) - len = align; - else if (len > diob.d_maxiosz) - len = diob.d_maxiosz; - if ((e = posix_memalign((void **)&buf, diob.d_mem, len)) != 0) { - fprintf(stderr, "posix_memalign: %s\n", strerror(e)); - exit(1); - } - if (buf == NULL) { - fprintf(stderr, "posix_memalign: buf is NULL\n"); - exit(1); - } - off %= maxfsize; - lseek64(fd, off, SEEK_SET); - memset(buf, nameseq & 0xff, len); - e = write(fd, buf, len) < 0 ? errno : 0; - free(buf); - if (v) - printf("%d/%d: dwrite %s [%lld,%ld] %d\n", - procid, opno, f.path, (long long)off, (long int)len, e); - free_pathname(&f); - close(fd); -} - -void fdatasync_f(int opno, long r) -{ - int e; - pathname_t f; - int fd; - int v; - - init_pathname(&f); - if (!get_fname(FT_REGFILE, r, &f, NULL, NULL, &v)) { - if (v) - printf("%d/%d: fdatasync - no filename\n", - procid, opno); - free_pathname(&f); - return; - } - fd = open_path(&f, O_WRONLY); - e = fd < 0 ? errno : 0; - check_cwd(); - if (fd < 0) { - if (v) - printf("%d/%d: fdatasync - open %s failed %d\n", - procid, opno, f.path, e); - free_pathname(&f); - return; - } - e = fdatasync(fd) < 0 ? errno : 0; - if (v) - printf("%d/%d: fdatasync %s %d\n", procid, opno, f.path, e); - free_pathname(&f); - close(fd); -} - -#ifndef NO_XFS -void freesp_f(int opno, long r) -{ - int e; - pathname_t f; - int fd; - struct xfs_flock64 fl; - __s64 lr; - __s64 off; - struct stat64 stb; - int v; - - init_pathname(&f); - if (!get_fname(FT_REGFILE, r, &f, NULL, NULL, &v)) { - if (v) - printf("%d/%d: freesp - no filename\n", procid, opno); - free_pathname(&f); - return; - } - fd = open_path(&f, O_RDWR); - e = fd < 0 ? errno : 0; - check_cwd(); - if (fd < 0) { - if (v) - printf("%d/%d: freesp - open %s failed %d\n", - procid, opno, f.path, e); - free_pathname(&f); - return; - } - if (fstat64(fd, &stb) < 0) { - if (v) - printf("%d/%d: freesp - fstat64 %s failed %d\n", - procid, opno, f.path, errno); - free_pathname(&f); - close(fd); - return; - } - lr = ((__s64) random() << 32) + random(); - off = lr % MIN(stb.st_size + (1024 * 1024), MAXFSIZE); - off %= maxfsize; - memset(&fl, 0, sizeof(fl)); - fl.l_whence = SEEK_SET; - fl.l_start = off; - fl.l_len = 0; - e = ioctl(fd, XFS_IOC_FREESP64, &fl) < 0 ? errno : 0; - if (v) - printf("%d/%d: ioctl(XFS_IOC_FREESP64) %s %lld 0 %d\n", - procid, opno, f.path, (long long)off, e); - free_pathname(&f); - close(fd); -} - -#endif - -void fsync_f(int opno, long r) -{ - int e; - pathname_t f; - int fd; - int v; - - init_pathname(&f); - if (!get_fname(FT_REGFILE, r, &f, NULL, NULL, &v)) { - if (v) - printf("%d/%d: fsync - no filename\n", procid, opno); - free_pathname(&f); - return; - } - fd = open_path(&f, O_WRONLY); - e = fd < 0 ? errno : 0; - check_cwd(); - if (fd < 0) { - if (v) - printf("%d/%d: fsync - open %s failed %d\n", - procid, opno, f.path, e); - free_pathname(&f); - return; - } - e = fsync(fd) < 0 ? errno : 0; - if (v) - printf("%d/%d: fsync %s %d\n", procid, opno, f.path, e); - free_pathname(&f); - close(fd); -} - -void getdents_f(int opno, long r) -{ - DIR *dir; - pathname_t f; - int v; - - init_pathname(&f); - if (!get_fname(FT_DIRm, r, &f, NULL, NULL, &v)) - append_pathname(&f, "."); - dir = opendir_path(&f); - check_cwd(); - if (dir == NULL) { - if (v) - printf("%d/%d: getdents - can't open %s\n", - procid, opno, f.path); - free_pathname(&f); - return; - } - while (readdir64(dir) != NULL) - continue; - if (v) - printf("%d/%d: getdents %s 0\n", procid, opno, f.path); - free_pathname(&f); - closedir(dir); -} - -void link_f(int opno, long r) -{ - int e; - pathname_t f; - fent_t *fep; - flist_t *flp; - int id; - pathname_t l; - int parid; - int v; - int v1; - - init_pathname(&f); - if (!get_fname(FT_NOTDIR, r, &f, &flp, NULL, &v1)) { - if (v1) - printf("%d/%d: link - no file\n", procid, opno); - free_pathname(&f); - return; - } - if (!get_fname(FT_DIRm, random(), NULL, NULL, &fep, &v)) - parid = -1; - else - parid = fep->id; - v |= v1; - init_pathname(&l); - e = generate_fname(fep, flp - flist, &l, &id, &v1); - v |= v1; - if (!e) { - if (v) { - fent_to_name(&l, &flist[FT_DIR], fep); - printf("%d/%d: link - no filename from %s\n", - procid, opno, l.path); - } - free_pathname(&l); - free_pathname(&f); - return; - } - e = link_path(&f, &l) < 0 ? errno : 0; - check_cwd(); - if (e == 0) - add_to_flist(flp - flist, id, parid); - if (v) - printf("%d/%d: link %s %s %d\n", procid, opno, f.path, l.path, - e); - free_pathname(&l); - free_pathname(&f); -} - -void mkdir_f(int opno, long r) -{ - int e; - pathname_t f; - fent_t *fep; - int id; - int parid; - int v; - int v1; - - if (!get_fname(FT_DIRm, r, NULL, NULL, &fep, &v)) - parid = -1; - else - parid = fep->id; - init_pathname(&f); - e = generate_fname(fep, FT_DIR, &f, &id, &v1); - v |= v1; - if (!e) { - if (v) { - fent_to_name(&f, &flist[FT_DIR], fep); - printf("%d/%d: mkdir - no filename from %s\n", - procid, opno, f.path); - } - free_pathname(&f); - return; - } - e = mkdir_path(&f, 0777) < 0 ? errno : 0; - check_cwd(); - if (e == 0) - add_to_flist(FT_DIR, id, parid); - if (v) - printf("%d/%d: mkdir %s %d\n", procid, opno, f.path, e); - free_pathname(&f); -} - -void mknod_f(int opno, long r) -{ - int e; - pathname_t f; - fent_t *fep; - int id; - int parid; - int v; - int v1; - - if (!get_fname(FT_DIRm, r, NULL, NULL, &fep, &v)) - parid = -1; - else - parid = fep->id; - init_pathname(&f); - e = generate_fname(fep, FT_DEV, &f, &id, &v1); - v |= v1; - if (!e) { - if (v) { - fent_to_name(&f, &flist[FT_DIR], fep); - printf("%d/%d: mknod - no filename from %s\n", - procid, opno, f.path); - } - free_pathname(&f); - return; - } - e = mknod_path(&f, S_IFCHR | 0444, 0) < 0 ? errno : 0; - check_cwd(); - if (e == 0) - add_to_flist(FT_DEV, id, parid); - if (v) - printf("%d/%d: mknod %s %d\n", procid, opno, f.path, e); - free_pathname(&f); -} - -void read_f(int opno, long r) -{ - char *buf; - int e; - pathname_t f; - int fd; - size_t len; - __int64_t lr; - off64_t off; - struct stat64 stb; - int v; - - init_pathname(&f); - if (!get_fname(FT_REGFILE, r, &f, NULL, NULL, &v)) { - if (v) - printf("%d/%d: read - no filename\n", procid, opno); - free_pathname(&f); - return; - } - fd = open_path(&f, O_RDONLY); - e = fd < 0 ? errno : 0; - check_cwd(); - if (fd < 0) { - if (v) - printf("%d/%d: read - open %s failed %d\n", - procid, opno, f.path, e); - free_pathname(&f); - return; - } - if (fstat64(fd, &stb) < 0) { - if (v) - printf("%d/%d: read - fstat64 %s failed %d\n", - procid, opno, f.path, errno); - free_pathname(&f); - close(fd); - return; - } - if (stb.st_size == 0) { - if (v) - printf("%d/%d: read - %s zero size\n", procid, opno, - f.path); - free_pathname(&f); - close(fd); - return; - } - lr = ((__int64_t) random() << 32) + random(); - off = (off64_t) (lr % stb.st_size); - lseek64(fd, off, SEEK_SET); - len = (random() % (getpagesize() * 32)) + 1; - buf = malloc(len); - e = read(fd, buf, len) < 0 ? errno : 0; - free(buf); - if (v) - printf("%d/%d: read %s [%lld,%ld] %d\n", - procid, opno, f.path, (long long)off, (long int)len, e); - free_pathname(&f); - close(fd); -} - -void readlink_f(int opno, long r) -{ - char buf[PATH_MAX]; - int e; - pathname_t f; - int v; - - init_pathname(&f); - if (!get_fname(FT_SYMm, r, &f, NULL, NULL, &v)) { - if (v) - printf("%d/%d: readlink - no filename\n", procid, opno); - free_pathname(&f); - return; - } - e = readlink_path(&f, buf, PATH_MAX) < 0 ? errno : 0; - check_cwd(); - if (v) - printf("%d/%d: readlink %s %d\n", procid, opno, f.path, e); - free_pathname(&f); -} - -void rename_f(int opno, long r) -{ - fent_t *dfep; - int e; - pathname_t f; - fent_t *fep; - flist_t *flp; - int id; - pathname_t newf; - int oldid; - int parid; - int v; - int v1; - - init_pathname(&f); - if (!get_fname(FT_ANYm, r, &f, &flp, &fep, &v1)) { - if (v1) - printf("%d/%d: rename - no filename\n", procid, opno); - free_pathname(&f); - return; - } - if (!get_fname(FT_DIRm, random(), NULL, NULL, &dfep, &v)) - parid = -1; - else - parid = dfep->id; - v |= v1; - init_pathname(&newf); - e = generate_fname(dfep, flp - flist, &newf, &id, &v1); - v |= v1; - if (!e) { - if (v) { - fent_to_name(&f, &flist[FT_DIR], dfep); - printf("%d/%d: rename - no filename from %s\n", - procid, opno, f.path); - } - free_pathname(&newf); - free_pathname(&f); - return; - } - e = rename_path(&f, &newf) < 0 ? errno : 0; - check_cwd(); - if (e == 0) { - if (flp - flist == FT_DIR) { - oldid = fep->id; - fix_parent(oldid, id); - } - del_from_flist(flp - flist, fep - flp->fents); - add_to_flist(flp - flist, id, parid); - } - if (v) - printf("%d/%d: rename %s to %s %d\n", procid, opno, f.path, - newf.path, e); - free_pathname(&newf); - free_pathname(&f); -} - -#ifndef NO_XFS -void resvsp_f(int opno, long r) -{ - int e; - pathname_t f; - int fd; - struct xfs_flock64 fl; - __s64 lr; - __s64 off; - struct stat64 stb; - int v; - - init_pathname(&f); - if (!get_fname(FT_REGFILE, r, &f, NULL, NULL, &v)) { - if (v) - printf("%d/%d: resvsp - no filename\n", procid, opno); - free_pathname(&f); - return; - } - fd = open_path(&f, O_RDWR); - e = fd < 0 ? errno : 0; - check_cwd(); - if (fd < 0) { - if (v) - printf("%d/%d: resvsp - open %s failed %d\n", - procid, opno, f.path, e); - free_pathname(&f); - return; - } - if (fstat64(fd, &stb) < 0) { - if (v) - printf("%d/%d: resvsp - fstat64 %s failed %d\n", - procid, opno, f.path, errno); - free_pathname(&f); - close(fd); - return; - } - lr = ((__s64) random() << 32) + random(); - off = lr % MIN(stb.st_size + (1024 * 1024), MAXFSIZE); - off %= maxfsize; - memset(&fl, 0, sizeof(fl)); - fl.l_whence = SEEK_SET; - fl.l_start = off; - fl.l_len = (__s64) (random() % (1024 * 1024)); - e = ioctl(fd, XFS_IOC_RESVSP64, &fl) < 0 ? errno : 0; - if (v) - printf("%d/%d: ioctl(XFS_IOC_RESVSP64) %s %lld %lld %d\n", - procid, opno, f.path, (long long)off, - (long long)fl.l_len, e); - free_pathname(&f); - close(fd); -} -#endif - -void rmdir_f(int opno, long r) -{ - int e; - pathname_t f; - fent_t *fep; - int v; - - init_pathname(&f); - if (!get_fname(FT_DIRm, r, &f, NULL, &fep, &v)) { - if (v) - printf("%d/%d: rmdir - no directory\n", procid, opno); - free_pathname(&f); - return; - } - e = rmdir_path(&f) < 0 ? errno : 0; - check_cwd(); - if (e == 0) - del_from_flist(FT_DIR, fep - flist[FT_DIR].fents); - if (v) - printf("%d/%d: rmdir %s %d\n", procid, opno, f.path, e); - free_pathname(&f); -} - -void stat_f(int opno, long r) -{ - int e; - pathname_t f; - struct stat64 stb; - int v; - - init_pathname(&f); - if (!get_fname(FT_ANYm, r, &f, NULL, NULL, &v)) { - if (v) - printf("%d/%d: stat - no entries\n", procid, opno); - free_pathname(&f); - return; - } - e = lstat64_path(&f, &stb) < 0 ? errno : 0; - check_cwd(); - if (v) - printf("%d/%d: stat %s %d\n", procid, opno, f.path, e); - free_pathname(&f); -} - -void symlink_f(int opno, long r) -{ - int e; - pathname_t f; - fent_t *fep; - int i; - int id; - int len; - int parid; - int v; - int v1; - char *val; - - if (!get_fname(FT_DIRm, r, NULL, NULL, &fep, &v)) - parid = -1; - else - parid = fep->id; - init_pathname(&f); - e = generate_fname(fep, FT_SYM, &f, &id, &v1); - v |= v1; - if (!e) { - if (v) { - fent_to_name(&f, &flist[FT_DIR], fep); - printf("%d/%d: symlink - no filename from %s\n", - procid, opno, f.path); - } - free_pathname(&f); - return; - } - len = (int)(random() % PATH_MAX); - val = malloc(len + 1); - if (len) - memset(val, 'x', len); - val[len] = '\0'; - for (i = 10; i < len - 1; i += 10) - val[i] = '/'; - e = symlink_path(val, &f) < 0 ? errno : 0; - check_cwd(); - if (e == 0) - add_to_flist(FT_SYM, id, parid); - free(val); - if (v) - printf("%d/%d: symlink %s %d\n", procid, opno, f.path, e); - free_pathname(&f); -} - -/* ARGSUSED */ -void sync_f(int opno, long r) -{ - sync(); - if (verbose) - printf("%d/%d: sync\n", procid, opno); -} - -void truncate_f(int opno, long r) -{ - int e; - pathname_t f; - __int64_t lr; - off64_t off; - struct stat64 stb; - int v; - - init_pathname(&f); - if (!get_fname(FT_REGFILE, r, &f, NULL, NULL, &v)) { - if (v) - printf("%d/%d: truncate - no filename\n", procid, opno); - free_pathname(&f); - return; - } - e = stat64_path(&f, &stb) < 0 ? errno : 0; - check_cwd(); - if (e > 0) { - if (v) - printf("%d/%d: truncate - stat64 %s failed %d\n", - procid, opno, f.path, e); - free_pathname(&f); - return; - } - lr = ((__int64_t) random() << 32) + random(); - off = lr % MIN(stb.st_size + (1024 * 1024), MAXFSIZE); - off %= maxfsize; - e = truncate64_path(&f, off) < 0 ? errno : 0; - check_cwd(); - if (v) - printf("%d/%d: truncate %s %lld %d\n", procid, opno, f.path, - (long long)off, e); - free_pathname(&f); -} - -void unlink_f(int opno, long r) -{ - int e; - pathname_t f; - fent_t *fep; - flist_t *flp; - int v; - - init_pathname(&f); - if (!get_fname(FT_NOTDIR, r, &f, &flp, &fep, &v)) { - if (v) - printf("%d/%d: unlink - no file\n", procid, opno); - free_pathname(&f); - return; - } - e = unlink_path(&f) < 0 ? errno : 0; - check_cwd(); - if (e == 0) - del_from_flist(flp - flist, fep - flp->fents); - if (v) - printf("%d/%d: unlink %s %d\n", procid, opno, f.path, e); - free_pathname(&f); -} - -#ifndef NO_XFS -void unresvsp_f(int opno, long r) -{ - int e; - pathname_t f; - int fd; - struct xfs_flock64 fl; - __s64 lr; - __s64 off; - struct stat64 stb; - int v; - - init_pathname(&f); - if (!get_fname(FT_REGFILE, r, &f, NULL, NULL, &v)) { - if (v) - printf("%d/%d: unresvsp - no filename\n", procid, opno); - free_pathname(&f); - return; - } - fd = open_path(&f, O_RDWR); - e = fd < 0 ? errno : 0; - check_cwd(); - if (fd < 0) { - if (v) - printf("%d/%d: unresvsp - open %s failed %d\n", - procid, opno, f.path, e); - free_pathname(&f); - return; - } - if (fstat64(fd, &stb) < 0) { - if (v) - printf("%d/%d: unresvsp - fstat64 %s failed %d\n", - procid, opno, f.path, errno); - free_pathname(&f); - close(fd); - return; - } - lr = ((__s64) random() << 32) + random(); - off = lr % MIN(stb.st_size + (1024 * 1024), MAXFSIZE); - off %= maxfsize; - memset(&fl, 0, sizeof(fl)); - fl.l_whence = SEEK_SET; - fl.l_start = off; - fl.l_len = (__s64) (random() % (1 << 20)); - e = ioctl(fd, XFS_IOC_UNRESVSP64, &fl) < 0 ? errno : 0; - if (v) - printf("%d/%d: ioctl(XFS_IOC_UNRESVSP64) %s %lld %lld %d\n", - procid, opno, f.path, (long long)off, - (long long)fl.l_len, e); - free_pathname(&f); - close(fd); -} -#endif - -void write_f(int opno, long r) -{ - char *buf; - int e; - pathname_t f; - int fd; - size_t len; - __int64_t lr; - off64_t off; - struct stat64 stb; - int v; - - init_pathname(&f); - if (!get_fname(FT_REGm, r, &f, NULL, NULL, &v)) { - if (v) - printf("%d/%d: write - no filename\n", procid, opno); - free_pathname(&f); - return; - } - fd = open_path(&f, O_WRONLY); - e = fd < 0 ? errno : 0; - check_cwd(); - if (fd < 0) { - if (v) - printf("%d/%d: write - open %s failed %d\n", - procid, opno, f.path, e); - free_pathname(&f); - return; - } - if (fstat64(fd, &stb) < 0) { - if (v) - printf("%d/%d: write - fstat64 %s failed %d\n", - procid, opno, f.path, errno); - free_pathname(&f); - close(fd); - return; - } - lr = ((__int64_t) random() << 32) + random(); - off = (off64_t) (lr % MIN(stb.st_size + (1024 * 1024), MAXFSIZE)); - off %= maxfsize; - lseek64(fd, off, SEEK_SET); - len = (random() % (getpagesize() * 32)) + 1; - buf = malloc(len); - memset(buf, nameseq & 0xff, len); - e = write(fd, buf, len) < 0 ? errno : 0; - free(buf); - if (v) - printf("%d/%d: write %s [%lld,%ld] %d\n", - procid, opno, f.path, (long long)off, (long int)len, e); - free_pathname(&f); - close(fd); -} diff --git a/contrib/make-sparse.c b/contrib/make-sparse.c deleted file mode 100644 index 98b86b06..00000000 --- a/contrib/make-sparse.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * make-sparse.c --- make a sparse file from stdin - * - * Copyright 2004 by Theodore Ts'o. - * - * %Begin-Header% - * This file may be redistributed under the terms of the GNU Public - * License. - * %End-Header% - */ - -#ifndef _LARGEFILE_SOURCE -#define _LARGEFILE_SOURCE -#endif -#ifndef _LARGEFILE64_SOURCE -#define _LARGEFILE64_SOURCE -#endif - -#include -#include -#include -#include -#include -#include -#include - -int full_read(int fd, char *buf, size_t count) -{ - int got, total = 0; - int pass = 0; - - while (count > 0) { - got = read(fd, buf, count); - if (got == -1) { - if ((errno == EINTR) || (errno == EAGAIN)) - continue; - return total ? total : -1; - } - if (got == 0) { - if (pass++ >= 3) - return total; - continue; - } - pass = 0; - buf += got; - total += got; - count -= got; - } - return total; -} - -int main(int argc, char **argv) -{ - int fd, got, i; - int zflag = 0; - char buf[1024]; - - if (argc != 2) { - fprintf(stderr, "Usage: make-sparse out-file\n"); - exit(1); - } - fd = open(argv[1], O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0777); - if (fd < 0) { - perror(argv[1]); - exit(1); - } - while (1) { - got = full_read(0, buf, sizeof(buf)); - if (got == 0) - break; - if (got == sizeof(buf)) { - for (i=0; i < sizeof(buf); i++) - if (buf[i]) - break; - if (i == sizeof(buf)) { - lseek(fd, sizeof(buf), SEEK_CUR); - zflag = 1; - continue; - } - } - zflag = 0; - write(fd, buf, got); - } - if (zflag) { - lseek(fd, -1, SEEK_CUR); - buf[0] = 0; - write(fd, buf, 1); - } - return 0; -} - diff --git a/contrib/populate-extfs.sh b/contrib/populate-extfs.sh deleted file mode 100755 index 173b0a56..00000000 --- a/contrib/populate-extfs.sh +++ /dev/null @@ -1,166 +0,0 @@ -#!/bin/sh -# -# This script uses debugfs command to populate the ext2/3/4 filesystem -# from a given directory. -# -# Added mode, uid and gid config function by OpenHarmony team. -export LANG=en_US.UTF-8 -export LANGUAGE=en_US:en - -do_usage () { - cat << _EOF -Usage: populate-extfs.sh -Create an ext2/ext3/ext4 filesystem from a directory or file - - source: The source directory or file - device: The target device - -_EOF - exit 1 -} - -CFGFILE_CNT=5 -FILEMODE_IDX=2 -FILEU_IDX=3 -FILEG_IDX=4 -_NEW_FILEMODE=0 -_NEW_FILEUID=0 -_NEW_FILEGID=0 - -declare -a CONFIG_ARRAY - -do_parsecfgfile () { - i=0 - while read _BINFILE_ _FILETYPE_ _FILEMODE_ _FILEUID_ _FILEGID_ - do - CONFIG_ARRAY[${i}]=${_BINFILE_} - i=$[$i+1] - CONFIG_ARRAY[${i}]=${_FILETYPE_} - i=$[$i+1] - CONFIG_ARRAY[${i}]=${_FILEMODE_} - i=$[$i+1] - CONFIG_ARRAY[${i}]=${_FILEUID_} - i=$[$i+1] - CONFIG_ARRAY[${i}]=${_FILEGID_} - i=$[$i+1] - done < ${CFGFILE} -} - -do_getfilecfgmode () { - i=0 - _NEW_FILEMODE_=$2 - _NEW_FILEUID_=0 - _NEW_FILEGID_=0 - while [ $i -lt ${#CONFIG_ARRAY[@]} ] - do - if [ "$1" == "${CONFIG_ARRAY[$i]}" ]; then - # Change file mode from OCT to HEX. - _NEW_FILEMODE_=$(echo "obase=16;$((0x$MODE & (~07777) | 0${CONFIG_ARRAY[$i+${FILEMODE_IDX}]}))"|bc) - _NEW_FILEUID_=${CONFIG_ARRAY[$i+${FILEU_IDX}]} - _NEW_FILLEGID_=${CONFIG_ARRAY[$i+${FILEG_IDX}]} - return 0 - fi - i=$[$i+${CFGFILE_CNT}] - done -} - -[ $# -ne 3 ] && do_usage - -SRCDIR=${1%%/} -DEVICE=$2 -CFGFILE=$3 - -# parse config file -do_parsecfgfile - -# 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" - DEBUGFS=debugfs -fi - -# "debugfs" command check. -command -v debugfs >/dev/null 2>&1 || \ -{ echo >&2 "debugfs is required, please install by \"apt-get install e2fsprogs\". Aborting."; exit 1; } - -{ - 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 - - do_getfilecfgmode ${FILE#$SRCDIR} $MODE $U $G - MODE=${_NEW_FILEMODE_} - U=${_NEW_FILEUID_} - G=${_NEW_FILEGID_} - # 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 diff --git a/contrib/python-uuid/setup.py b/contrib/python-uuid/setup.py deleted file mode 100755 index 3934d170..00000000 --- a/contrib/python-uuid/setup.py +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/python -from distutils.core import setup, Extension - -uuid = Extension('e2fsprogs_uuid', - sources = ['uuid.c'], - libraries = ['uuid']) - -setup (name = 'e2fsprogs_uuid', - version = '1.0', - description = 'This is python uuid interface', - ext_modules = [uuid]) diff --git a/contrib/python-uuid/test.py b/contrib/python-uuid/test.py deleted file mode 100755 index 2264f623..00000000 --- a/contrib/python-uuid/test.py +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/python -import e2fsprogs_uuid -import time - -print "Generating uuid...", -try: - time = time.time() - u = e2fsprogs_uuid.generate() -except: - u = "FAIL" -print u, "...", time - -print "Calling generate with param...", -try: - e2fsprogs_uuid.generate("param") - print "FAIL." -except: - print "OK" diff --git a/contrib/python-uuid/uuid.c b/contrib/python-uuid/uuid.c deleted file mode 100644 index 34dd56a0..00000000 --- a/contrib/python-uuid/uuid.c +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include -#include - -static PyObject * _uuid_generate(PyObject *self, PyObject *args) -{ - uuid_t u; - char uuid[37]; - if (!PyArg_ParseTuple(args, "")) return NULL; - uuid_generate(u); - uuid_unparse(u, uuid); - return Py_BuildValue("s", uuid); -} - -static PyMethodDef _uuid_methods[] = { - {"generate", _uuid_generate, METH_VARARGS, "Generate UUID"}, - {NULL, NULL, 0, NULL} -}; - -void inite2fsprogs_uuid(void) -{ - (void) Py_InitModule("e2fsprogs_uuid", _uuid_methods); -} diff --git a/contrib/setup-schroot b/contrib/setup-schroot deleted file mode 100755 index a6b6afda..00000000 --- a/contrib/setup-schroot +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -# -# This script sets up a schroot suitable for building e2fsprogs -# on a Debian portable box - -while [ "$1" != "" ]; -do - case "$1" in - --base) shift - BASE_CHROOT="$1" - ;; - --chroot) shift - CHROOT="$1" - ;; - --help|help) - echo "Usage: setup-schroot [--base ] [--chroot ]" - exit 0 - ;; - *) - echo "unknown option: $1" - exit 1 - ;; - esac - shift -done - -if test -z "$BASE_CHROOT" ; then - BASE_CHROOT=sid -fi - -if test -z "$CHROOT" ; then - CHROOT="$USER-$BASE_CHROOT" -fi - -echo "Setting up $CHROOT using $BASE_CHROOT..." -schroot -b -n "$CHROOT" -c "$BASE_CHROOT" -dd-schroot-cmd -c "$CHROOT" apt-get update -dd-schroot-cmd -c "$CHROOT" -y apt-get upgrade -dd-schroot-cmd -c "$CHROOT" -y apt-get build-dep e2fsprogs -dd-schroot-cmd -c "$CHROOT" -y apt-get install git gdb emacs-nox lintian acl libreadline-dev -echo " " -echo "Start chroot by running: " -echo "schroot -r -c $CHROOT" -echo " " diff --git a/contrib/spd_readdir.c b/contrib/spd_readdir.c deleted file mode 100644 index 8345fa1a..00000000 --- a/contrib/spd_readdir.c +++ /dev/null @@ -1,458 +0,0 @@ -/* - * readdir accelerator - * - * (C) Copyright 2003, 2004, 2008 by Theodore Ts'o. - * - * 2008-06-08 Modified by Ross Boylan - * 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 -#include -#include -#include -#include -#include -#include -#include -#include -#ifdef HAVE_SYS_PRCTL_H -#include -#else -#define PR_GET_DUMPABLE 3 -#endif -#include - -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; -} diff --git a/debian/.gitignore b/debian/.gitignore deleted file mode 100644 index 91d84822..00000000 --- a/debian/.gitignore +++ /dev/null @@ -1 +0,0 @@ -!patches diff --git a/debian/attic/comerrg-dev.info b/debian/attic/comerrg-dev.info deleted file mode 100644 index 8bd344b7..00000000 --- a/debian/attic/comerrg-dev.info +++ /dev/null @@ -1,4 +0,0 @@ -DESCR="The Common Error Description library." -SECTION_MATCH="Development" -SECTION_NAME="Development" -FILE=com_err.info diff --git a/debian/attic/comerrg-dev.menu b/debian/attic/comerrg-dev.menu deleted file mode 100644 index 7dddab30..00000000 --- a/debian/attic/comerrg-dev.menu +++ /dev/null @@ -1,7 +0,0 @@ -?package(comerrg-dev):needs="dwww" section="Apps/Programming"\ - title="The com_err library" \ - longtitle="The Common Error Description library"\ - description="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 \ - have the problems identified with mechanisms commonly in use." \ - command="/usr/doc/comerrg-dev/html-info/com_err_toc.html" diff --git a/debian/attic/e2fslibsg-dev.info b/debian/attic/e2fslibsg-dev.info deleted file mode 100644 index e1be9503..00000000 --- a/debian/attic/e2fslibsg-dev.info +++ /dev/null @@ -1,4 +0,0 @@ -DESCR="Library of routines to manipulate an ext2 filesystem." -SECTION_MATCH="Development" -SECTION_NAME="Development" -FILE=libext2fs.info diff --git a/debian/attic/e2fslibsg-dev.menu b/debian/attic/e2fslibsg-dev.menu deleted file mode 100644 index 7ace8c09..00000000 --- a/debian/attic/e2fslibsg-dev.menu +++ /dev/null @@ -1,4 +0,0 @@ -?package(e2fslibsg-dev):needs="dwww" section="Apps/Programming"\ - title="The ext2fs library." \ - longtitle="A library to handle low-level structures in an ext2 filesystem"\ - command="/usr/doc/e2fslibsg-dev/html-info/libext2fs_toc.html" diff --git a/debian/attic/libs/comerr2g.files b/debian/attic/libs/comerr2g.files deleted file mode 100644 index 4f1f552c..00000000 --- a/debian/attic/libs/comerr2g.files +++ /dev/null @@ -1,2 +0,0 @@ -lib/libcom_err.so.?.* -lib/libcom_err.so.? diff --git a/debian/attic/libs/control b/debian/attic/libs/control deleted file mode 100644 index 42051205..00000000 --- a/debian/attic/libs/control +++ /dev/null @@ -1,114 +0,0 @@ -Source: e2fsprogs -Section: base -Priority: required -Maintainer: Yann Dirson -Standards-Version: 2.4.0.0 - -Package: e2fsprogs -Essential: yes -Depends: ${shlibs:Depends} -Conflicts: e2fsprogsg, dump (<< 0.4b4-4), quota (<< 1.55-8.1) -Architecture: any -Description: The EXT2 file system utilities. - EXT2 stands for "Extended Filesystem", version 2. It's the main - filesystem type used for hard disks on Debian and other Linux systems. - . - This package contains programs for creating, checking, and maintaining EXT2 - filesystems, and the generic `fsck' wrapper. - . - This release may break older versions of dump and quota. - -Package: comerr2g -Depends: ${shlibs:Depends} -Conflicts: e2fsprogs (<< 1.10-6), comerr2 -Architecture: any -Description: The Common Error Description library - shared libraries. - 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 - have the problems identified with mechanisms commonly in use. - . - It is mainly used by the EXT2-filesystem tools. - -Package: ss2g -Depends: ${shlibs:Depends} -Conflicts: e2fsprogs (<< 1.10-6), ss2 -Architecture: any -Description: "Sub-System" library for simple command-line interface parsing - shared libs - This package contains the shared libs to support command-line - interface parsers generated with the ssg-dev package. - . - It was originally inspired by the Multics SubSystem library. - -Package: e2fslibsg -Depends: ${shlibs:Depends} -Provides: ext2fs2g, e2p2g, uuid1g -Conflicts: e2fsprogs (<= 1.10-7) -Architecture: any -Description: The EXT2 file system shared libs. - EXT2 stands for "Extended Filesystem", version 2. It's the filesystem type - used for hard disks on Debian and other Linux systems. - . - This package contains shared libraries needed by the utility programs. - -Package: comerrg-dev -Section: devel -Priority: extra -Depends: ${libcdev:Depends}, comerr2g -Suggests: doc-base -Conflicts: e2fsprogs (<< 1.10-6), comerr-dev -Architecture: any -Description: The Common Error Description library - headers and static libraries. - 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 - have the problems identified with mechanisms commonly in use. - -Package: ssg-dev -Section: devel -Priority: extra -Depends: ${libcdev:Depends}, ss2g -Conflicts: e2fsprogs (<< 1.10-6), ss-dev -Architecture: any -Description: "Sub-System" library for simple command-line interface parsing - devel. files - 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. - . - It was originally inspired by the Multics SubSystem library. - -Package: e2fslibsg-dev -Section: devel -Priority: extra -Depends: ${libcdev:Depends}, e2fslibsg, comerrg-dev -Suggests: doc-base -Provides: ext2fsg-dev, e2pg-dev, uuidg-dev -Conflicts: e2fsprogs (<< 1.10-6), e2fslibs-dev -Architecture: any -Description: The headers and static libraries for ext2fs-aware tools-development. - EXT2FS stands for "Extended Filesystem", version 2. It's the filesystem - type used for hard disks on Debian and other Linux systems. - . - This package contains the headers and shared libraries needed to compile - ext2fs-aware programs. Only programmers that really manipulate - features specific to the ext2 filesystem will need this. Most - programmers will use the generic filesystem-independent interface - from libc. - . - It also contains dev files for 2 other libs (e2p and uuid) used by - the e2fsprogs, but which are not yet packaged all by themselves - because they lack documentation. They may also lack some support - files, by I can't really know until someone uses them... - . - libe2p is for user-level e2fsprogs commands. It's used by dumpe2fs, - chattr, and lsattr. Functions in libe2p typically have two - characteristics (a) don't require that block device containing the - filesystem be opened directly (functions in libext2fs do), and (b) - libe2p typically contains printf statements or parse user input, and so - have more internationalization issues. - . - libuuid generates and parses 128-bit universally unique id's (UUID's), - using a standard which is blessed by both Microsoft and DCE, and is - being proposed as an internet standard. See the internet-draft: - . - draft-leach-uuids-guids-01.txt - . - for more information. diff --git a/debian/attic/libs/e2fslibsg.files b/debian/attic/libs/e2fslibsg.files deleted file mode 100644 index c7770846..00000000 --- a/debian/attic/libs/e2fslibsg.files +++ /dev/null @@ -1,3 +0,0 @@ -lib/*.so.?.* -lib/*.so.? -usr/doc/e2fslibsg/* diff --git a/debian/attic/libs/rules b/debian/attic/libs/rules deleted file mode 100644 index 3cf3c8d0..00000000 --- a/debian/attic/libs/rules +++ /dev/null @@ -1,182 +0,0 @@ -#! /usr/bin/make -f -# -*- makefile -*- -# -# Invoke each target with `./debian/rules '. All targets should be -# invoked with the package root as the current directory. -# -# The `binary' target must be run as root, as it needs to install files with -# specific ownerships. - -# Uncomment this to turn on verbose mode. -export DH_VERBOSE=1 - -package = e2fsprogs -ARCH = $(shell dpkg --print-architecture) - -# find the version for the main package, from changelog file -MAIN_VERSION = $(shell head -1 debian/changelog | cut '-d ' -f 2 | sed 's/[()]//g') -# find versions for libraries going into their own packages, from their Makefile.in's -COMERR_VERSION = $(shell grep ELF_VERSION lib/et/Makefile.in | cut '-d ' -f3) -COMERR_MAJOR = $(word 1,$(subst ., ,$(COMERR_VERSION))) -SS_VERSION = $(shell grep ELF_VERSION lib/ss/Makefile.in | cut '-d ' -f3) -SS_MAJOR = $(word 1,$(subst ., ,$(SS_VERSION))) - -topdir = $(shell pwd) -debdir = $(topdir)/debian -maindir = $(debdir)/tmp -builddir = $(topdir)/builddir -docdir = $(maindir)/usr/doc/$(package) - -SUBPACKAGES_DIRS = tmp e2fslibsg e2fslibsg-dev comerr$(COMERR_MAJOR)g comerrg-dev \ - ss$(SS_MAJOR)g ssg-dev - -installdoc = install -m 644 -installbin = install -m 755 - -ifeq ($(ARCH),alpha) -CCOPTS = -g -O2 -fsigned-char -DHAVE_NETINET_IN_H -LIBC-DEV = libc6.1-dev -else -CCOPTS = -g -O2 -fsigned-char -LIBC-DEV = libc6-dev -endif - -build: configured - dh_testdir - make -C $(builddir) - make -C $(builddir)/misc findsuper - cd doc && texi2html -split_chapter libext2fs.texinfo - cd lib/et && texi2html -split_chapter -expandinfo com_err.texinfo - touch build - -configured: - dh_testdir - mkdir -p $(builddir) - cd $(builddir) && CFLAGS="$(CFLAGS)" \ - ../configure --enable-elf-shlibs --enable-dynamic-e2fsck \ - --with-ccopts="$(CCOPTS)" - touch configured - -clean: - dh_testdir - rm -f build configured install - -make -C $(builddir) -i distclean - rm -rf $(builddir) - rm -f doc/libext2fs_*.html lib/et/com_err_*.html - dh_clean - -binary-indep: build - # no arch-independant debs. - -binary-arch: build - dh_testversion 0.56 # == 0.53 + fixes - dh_testdir -a - dh_testroot -a - dh_clean -a -k - dh_installdirs -a - - make -C $(builddir) install DESTDIR=$(maindir) - install -m 755 $(builddir)/misc/findsuper $(maindir)/sbin - # static libs and .h files - make -C $(builddir) install-libs DESTDIR=$(maindir) - install -m 644 $(builddir)/lib/ss/ss_err.h $(maindir)/usr/include/ss/ - -# fix and install compile_et script - sed s%$(topdir)/lib/et%/usr/share/comerr% \ - <$(builddir)/lib/et/compile_et \ - >$(debdir)/comerrg-dev/usr/bin/compile_et - chmod 755 $(debdir)/comerrg-dev/usr/bin/compile_et -# add support files for compile_et - install -m 644 lib/et/et_c.awk lib/et/et_h.awk \ - $(debdir)/comerrg-dev/usr/share/comerr/ - -# fix and install mk_cmds script - sed s%$(topdir)/lib/ss%/usr/share/ss% \ - <$(builddir)/lib/ss/mk_cmds \ - >$(debdir)/ssg-dev/usr/bin/mk_cmds - chmod 755 $(debdir)/ssg-dev/usr/bin/mk_cmds -# add support files for mk_cmds - install -m 644 lib/ss/ct_c.awk lib/ss/ct_c.sed \ - $(debdir)/ssg-dev/usr/share/ss/ - -# docs - mkdir -p $(debdir)/e2fslibsg-dev/usr/doc/e2fslibsg - ln -sf e2fslibsg $(debdir)/e2fslibsg-dev/usr/doc/e2fslibsg-dev - mkdir -p $(maindir)/usr/doc/e2fslibsg - ln -sf e2fslibsg $(maindir)/usr/doc/e2fsprogs - mkdir -p $(debdir)/comerrg-dev/usr/doc/comerr$(COMERR_MAJOR)g - ln -sf comerr$(COMERR_MAJOR)g $(debdir)/comerrg-dev/usr/doc/comerrg-dev - mkdir -p $(debdir)/ssg-dev/usr/doc/ss$(SS_MAJOR)g - ln -sf ss$(SS_MAJOR)g $(debdir)/ssg-dev/usr/doc/ssg-dev - dh_installdocs -a - - # HTML docs - install -d $(debdir)/e2fslibsg-dev/usr/doc/e2fslibsg-dev/html-info/ - install -p $(topdir)/doc/libext2fs_*.html \ - $(debdir)/e2fslibsg-dev/usr/doc/e2fslibsg-dev/html-info/ - install -d $(debdir)/comerrg-dev/usr/doc/comerrg-dev/html-info/ - install -p $(topdir)/lib/et/com_err_*.html \ - $(debdir)/comerrg-dev/usr/doc/comerrg-dev/html-info/ - - # texinfo docs - install -p $(topdir)/doc/libext2fs.texinfo \ - $(debdir)/e2fslibsg-dev/usr/doc/e2fslibsg/libext2fs.texi - install -p $(topdir)/lib/et/com_err.texinfo \ - $(debdir)/comerrg-dev/usr/doc/comerr2g/com_err.texi - - # doc-base support - install -d $(debdir)/e2fslibsg-dev/usr/share/doc-base/ - install -p -m 644 $(debdir)/libext2fs.docbase \ - $(debdir)/e2fslibsg-dev/usr/share/doc-base/libext2fs - install -d $(debdir)/comerrg-dev/usr/share/doc-base/ - install -p -m 644 $(debdir)/com_err.docbase \ - $(debdir)/comerrg-dev/usr/share/doc-base/com_err - - # examples - dh_installexamples -a - - # dh_installmanpages still makes a mess as of 0.54 (see below dh_movefiles) - install -p $(topdir)/lib/et/compile_et.1 $(maindir)/usr/man/man1/ - install -d $(maindir)/usr/man/man3/ - install -p $(topdir)/lib/et/com_err.3 $(maindir)/usr/man/man3/ - ln -s e2fsck.8 $(maindir)/usr/man/man8/fsck.ext2.8 - ln -s mke2fs.8 $(maindir)/usr/man/man8/mkfs.ext2.8 - - dh_movefiles -a - # cleanup empty dirs - cd $(maindir) && rmdir usr/man/cat? bin lib usr/include/* usr/include \ - usr/info usr/lib usr/man/man3 usr/doc/e2fslibsg - -# dh_installmenu -a - - # broken + useless in 0.52 - # dh_installmanpages -a - - dh_undocumented -a - - dh_installchangelogs -pe2fslibsg -pcomerr$(COMERR_MAJOR)g -pss$(SS_MAJOR)g ChangeLog - - dh_strip -a - dh_compress -a - dh_fixperms -a - - echo "libcdev:Depends=$(LIBC-DEV)" > debian/comerrg-dev.substvars - echo "libcdev:Depends=$(LIBC-DEV)" > debian/ssg-dev.substvars - echo "libcdev:Depends=$(LIBC-DEV)" > debian/e2fslibsg-dev.substvars - - dh_installdeb -a - LD_LIBRARY_PATH=$(builddir)/lib:/lib:/usr/lib \ - dh_shlibdeps -a - dh_gencontrol -u '-isp' -pe2fsprogs -pe2fslibsg -pe2fslibsg-dev - dh_gencontrol -u '-isp' -pcomerr$(COMERR_MAJOR)g -pcomerrg-dev \ - -u '-v$(COMERR_VERSION)-$(MAIN_VERSION)' - dh_gencontrol -u '-isp' -pss$(SS_MAJOR)g -pssg-dev \ - -u '-v$(SS_VERSION)-$(MAIN_VERSION)' - dh_makeshlibs -a -# dh_du -a - dh_md5sums -a - dh_builddeb -a - -binary: binary-indep binary-arch - -.PHONY: binary binary-arch binary-indep clean checkroot diff --git a/debian/attic/libs/ss2g.files b/debian/attic/libs/ss2g.files deleted file mode 100644 index 5b717cb7..00000000 --- a/debian/attic/libs/ss2g.files +++ /dev/null @@ -1,2 +0,0 @@ -lib/libss.so.?.* -lib/libss.so.? diff --git a/debian/changelog b/debian/changelog deleted file mode 100644 index 9f87a750..00000000 --- a/debian/changelog +++ /dev/null @@ -1,4798 +0,0 @@ -e2fsprogs (1.46.4-1) unstable; urgency=medium - - * New upstream release - * Mke2fs now creates 256 byte inodes by default for all non-GNU Hurd - file systems. (Previously small file systems would be created - using 128 byte inodes.) - * The bigalloc feature is now considered supported when the cluster - size is no more than 16 times the block size. - * E2fsck now checks to make sure directory entries do not reference - internal quota inodes. - * E2image now includes the quota inodes when creating file system image, - since they are part of the file system metadata. - * E2fsck now properly accounts the quota usage of the project quota file. - * Fix a regression so mke2fs can create a file system into non-existent - file (Closes: #992094) - * Fix mke2fs to correctly create Posix ACL's on big-endian systems when - copying files from a directory hierarchy. - * Fix FTBFS caused by test failures on big-endian systems. - (Closes: #991922) - * Fix FTBFS on GNU Hurd - * Use WantedBy=multi-user.target in e2scrub_reap.service. - (Closes: #991349) - * Updated and clarified the resize2fs man pages. (Closes: #979411) - * Update Czech, Dutch, French, Polish, Portuguese, and Swedish - translations. - - -- Theodore Y. Ts'o Wed, 18 Aug 2021 22:47:40 -0400 - -e2fsprogs (1.46.3-1) experimental; urgency=medium - - * New upstream release - * Fix resize2fs bug when performing an off-line file system expansion - with MMP and there isn't sufficient reserved block group descriptor - blocks could lead to file system corruption. (Closes: #984472) - * Teach the filefrag program the -V option, which will print the version - of the tool, or if -V option is specified twice, will print the list - of supported FIEMAP flags. - * Fix fast_commit portability problems on sparc64 and arm64 - architectures (the latter when running e2fsprogs compiled for arm32). - (Closes: #987641) - * Fix missing mutex unlock in an error path in the Unix I/O manager. - * Fix Direct I/O support in the Unix I/O manager (this was a regression - introduced in v1.46.2). - * Fix mke2fs to avoid discarding blocks beyond the end of the file - system to be created when creating a file system which is smaller than - 16MB and the file system size was explicitly specified and smaller - than the size of the block device. (Closes: #989630) - * Teach mke2fs to avoid giving a spurious warning about a pre-existing - partition table and it is creating a file system at a non-zero offset - (so the partition table wouldn't be overwritten in any case). - (Closes: #989612) - * Fix e2image -Q to prevent a multiplication overflow could corrupt - the generated QCOW2 output file for very large file systems. - * When e2fsck repairs '.' and '..' entries in corrupted directories, set - the file type in the directory entry to be EXT2_FT_DIR and do not - leave the file type as EXT2_FT_UNKNOWN. - * Fix e2fsck so that the if the s_interval is zero, and the last mount - or write time is in the future, it will fix invalid last mount/write - timestamps in the superblock. (This was a regression introduced in - v1.45.5.) - * Fix lsattr and chattr to avoid opening or calling EXT2_IOC_[GS]ETFLAGS - on devices, since this can cause some devices to react badly as a - result. (This fixes a regression introduced in v1.46.2.) - (Closes: #986332) - * Fix potential memory leaks and seg faults when memory allocations fail. - * Fix various compiler and valgrind warnings - * Updated and clarified the e2image and filefrag man pages. - * Update Dutch, Malay, and Serbian translations. - - -- Theodore Y. Ts'o Tue, 27 Jul 2021 11:04:05 -0400 - -e2fsprogs (1.46.2-1) unstable; urgency=medium - - * New upstream release - * Add support for the FS_NOCOMP_FL flag to chattr and lsattr. - * Fix Direct I/O support on block devices where the logical block size is - greater 1k. - * Fix debugfs's logdump so it works on file systems whose block size is - greater than 8k. - * Fix the debugfs rdump and ls commands so they will work correctly for - uid's and gid's => 65536. - * Teach the tune2fs program to support "random" as an argument to the -c - option, which sets the maximum mount count. (Closes: #926293) - * Fix a where e2fsck could a crash when there is error while e2fsck is - trying to open the file system, and e2fsck calls ext2fs_mmp_stop() - before MMP has been initialized. (Closes: #696609) - * Fix the debugfs write and symlink commands so they support targets which - contain a pathname (instead of only working when writing a file or - creating a symlink in the current directory). - * When resizing a small file systems to a super-large file system size, - avoid issuing some scary bitmap operation warnings. - * Improved error checking in the fast commit replay code in e2fsck. - * Updated and clarified the chattr man page. - * Update the Spanish translation from the translation project. - - -- Theodore Y. Ts'o Sun, 28 Feb 2021 21:24:34 -0500 - -e2fsprogs (1.46.1-1) unstable; urgency=medium - - * Drop transitional packages libcomerr2, e2fslibs, and e2fslibs-dev - * Fix a bug in libext2fs and debugfs when trying to set an extended - attribute will result in a seg fault. - * Fix e2fsck so it properly accepts large_dir directories which are - greater than 4GB in size. - * Fix mke2fs -d so it correctly handles important a directory or small - file which is stored using inline_data and contains an ACL or extended - attribute. (Closes: #971014) - * Add build profiles noudeb and pkg.e2fsprogs.no-static (Closes: #966686) - * Update the Czech, French, Malay, Polish, Portuguese, Swedish, and - Ukrainian translations from the translation project. - - -- Theodore Y. Ts'o Tue, 09 Feb 2021 17:36:02 -0500 - -e2fsprogs (1.46.0-1) experimental; urgency=medium - - * New upstream release - * Add support for the new fast_commit feature. (Requires Linux version - 5.10 or higher) - * Add support for the new stable_inodes feature which is needed to - support some the fscrypt siphash algorithm. - * Add support for file systems that have both case folding and - encryption enabled. (Not yet upstream, but used in some Android handsets.) - * The fuse2fs program now supports the "norecovery" which omits replying - the journal and mounts the file system read-only. (Closes: #878927) - * Bitmap loading is now done using multiple threads which can speed up - debugfs, dumpe2fs, and e2fsck on very large file systems. - * E2fsck now will check file names on file systems with case folding - enabled to make sure the characters are valid UTF-8 characters. - This is done for file systems which enforce strict encodings, and - optionally if the extended "check_encoding" option is requested. - * E2fsck will properly handle checking for duplicated file names when - case folding is enabled. - * E2fsck will now find and fix file system corruptions when the encrypted - files have a different policy from their containing directory. - * The "htree" command in debugfs now displays the metadata checksums for - hash tree index blocks. - * Fix various bugs where a maliciously corrupted file systems could case - e2fsck and other e2fsprogs programs to crash. - * Dumpe2fs will print the error code that Linux kernels newer than v5.6 - will save to indicate the class of error which triggered the ext4_error - event. - * E2fsprogs programs (in particular, fuse2fs) can now update htree - directories without clearing the htree index. - * Tune2fs will properly recalculate directory block checksums when - clearing the dir_index feature. - * Fix a bug in e2fsck directory rehashing which could fail with ENOSPC - because it doesn't take into account the space needed for the metadata - checksum, and doesn't create a sufficiently deep index tree. - * Clarify the e2fsck messages when it resets the directory link count when - it is set to the overflow value but it is no longer needed. - * Mke2fs now sets the s_overhead_cluster field, so that the kernel doesn't - need to calculate it at mount time. This speeds up mounting very large - file systems. - * Speed up mke2fs when creating large bigalloc file systems by optimizing - ext2fs_convert_subcluster_bitmap(). - * The filefrag program can now request the kernel to display the extent - status cache by using "filefrag -E". (This requires Linux version 5.4 - or newer.) - - -- Theodore Y. Ts'o Fri, 29 Jan 2021 16:24:41 -0500 - -e2fsprogs (1.45.7-1) unstable; urgency=medium - - * New upstream release - * Mke2fs will now warn when creating a file system on a DAX-capable - device and the block size is incompatible with DAX. - * The chattr and lsattr programs now support using the 'x' attribute - to set/get dax support on a particular file. - * E2fsprogs now supports the gnu.* extended attribute namespace, which - allows mke2fs -d to import the gnu.translator extended attributes. - * Add support for the simultaneous enablement of the casefold and - encryption features, which ext4 supports starting with the v5.5 - Linux kernel. - * Debugfs will now retry opening the superblock if it finds that the - superblock has an invalid checksum, since this could happen when - opening a mounted file system. - * Fix an off-by-one error when validating the depth of an htree which - caused e2fsck to potentially fail to notice an invalid htree. - * Fix potential buffer overrun in e2fsck when scanning directory blocks - in pass 2. (Addresses Google Bug: #158564737) - * Fix tune2fs so that it unlocks the MMP block if it can't perform the - requested operation. - * Fix mke2fs so it can import the contents of a directory using the -d - option when it has inode numbers that are greater than 2**32. Also - fix an omission where the extended attributes on the top-level directory - was not getting copied to the root directory. - * Fix e4crypt so that the add_key operation uses the explicitly provided - salt if it is provided. - * Fix resize2fs to prevent it from overflowing the block group descriptors - from overflowing the first block group. (This can only happen when the - block size is 1k and the file system is very large.) - * Fix debugfs's set_super_value command so it can set 64-bit integer - fields, such as s_kbytes_written. - * Fix filefrag so that it won't crash if the kernel returns zero for - statfs(2)'s device id or if it returns a blocksize of zero the device's - blocksize. - * Fix a few bad error code returns in the unix and sparse I/O managers. - * E2fsck will no longer try to fix duplicate file names in an encrypted - directory by mutating the encrypted file name. - * Updated and clarified various man pages. - * Update the Dutch, Malay, and Serbian translations from the translation - project. - * Update the Debian policy compliance to 4.5.1 - - -- Theodore Y. Ts'o Fri, 29 Jan 2021 00:19:52 -0500 - -e2fsprogs (1.45.6-1) unstable; urgency=medium - - * New upstream release - * Fixed a number of potential out of bounds memory accesses caused by - fuzzed / malicious file systems. - * Fix a spurious complaint from e2fsck when a directory which previously - had more than 32000 subdirectories has the number of subdirectories - drops below 32000. - * Improve e2fsck's ability to deal with file systems with a *very* large - number of directories. - * Debugfs will ignore lines in its command files which start with a - comment character ("#"). - * Fix debugfs so it correctly prints inode numbers > 2**31. - * Filefrag now supports very large files (with > 4 billion blocks), as - well as block sizes up to 1 GiB. - * Mke2fs -d now correctly sets permission with files where the owner - permissions are not rwx. - * Updated and clarified various man pages - (Closes: #953493, #953494, #951808) - * Drop as unneeded libattr1-dev as a build dependency (Closes: #953926) - * Update the Malay translation from the translation project. - - -- Theodore Y. Ts'o Fri, 20 Mar 2020 23:49:33 -0400 - -e2fsprogs (1.45.5-2) unstable; urgency=medium - - * Fix com_err support on Hurd, which has POSIX E* error code starting at - 0x40000000. Otherwise the regression tests will fail since the - expected output for various error cases will not have the correct - error text. - - -- Theodore Y. Ts'o Wed, 08 Jan 2020 15:58:44 -0500 - -e2fsprogs (1.45.5-1) unstable; urgency=medium - - * New upstream release - * E2fsck will no longer force a full file system check if time-based - forced checks are disabled and the last mount time or last write time in - the superblock are in the future. - * Fix spurious weekly e-mails when e2scrub_all is run via a cron job - on non-systemd systems. (Closes: #944033) - * Remove an unnecessary sleep in e2scrub which could add up to an - additional two second delay during the boot up. Also, avoid - trying to reap aborted snapshots if it has been disabled via - e2scrub.conf. (Closes: #948193) - * Resize2fs -M's estimates are now more accurate on mounted file systems. - * Tune2fs prohibits enabling or disabling the uninit_bg feature on - mounted file systems, since this is unsafe. - * Fix support of 32-bit uid's and gid's in fuse2fs and in mke2fs -d. - * Fix mke2fs's setting bad blocks to bigalloc file systems. - * Fix a bug where fuse2fs would incorrectly report the i_blocks fields for - bigalloc file systems. - * Fix potential crash in e2fsck when rebuilding very large directories on - file systems which have the new large_dir feature enable. - * Fix FTBFS problem hurd/i386. (Closes: #944649) - * Fix CVE-2019-5188: potential a out of bounds write in mutate_name() - when checking a maliciously corrupted file systems - * Add autopkgtest tests smoke and fuse2fs - * Updated and clarified various man pages - * Update the debhelper compatibility level to 12 - * Update the Chinese and Malay translations - * Update the Debian policy compliance to 4.4.1 - - -- Theodore Y. Ts'o Tue, 07 Jan 2020 09:18:39 -0500 - -e2fsprogs (1.46~WIP.2019.10.09-1) experimental; urgency=medium - - * Add (minimal) support to enable the fast commit feature. This is just - enough to enable kernel development work; e2fsck replay of journals - with the fast commit feature is *not* available. - * E2fsck will now check encryption policies for consistency - - -- Theodore Y. Ts'o Wed, 09 Oct 2019 20:22:50 -0400 - -e2fsprogs (1.45.4-1) unstable; urgency=medium - - * New upstream feature - * Fix CVE-2019-5094: A maliciously corrupted file systems can trigger - buffer overruns in the quota code used by e2fsck. - * E2fsck will now check to make sure the casefold flag is only set on - directories, and only when the casefold feature is enabled. - * E2fsck will not disable the low dtime checks when using a backup - superblock where the last mount time is zero to fix a failure in - xfstests ext4/007 - * Fix e2fsck so that when it needs to recreate the root directory, the - quota counts are correctly updated - * Update the man pages to document the new fsverity feature, and improve - the documentation for the casefold and encrypt features - * Allow e2scrub_all to work when the VG free space is exactly the - snapshot size (Closes: #935009) - * Avoid spurious lvm warnings when e2scrub_all is run out of cron on - non-systemd systems (Closes: #940240) - * Update the Dutch, German, Malay, Spanish, and Vietnamese translations - - -- Theodore Y. Ts'o Mon, 23 Sep 2019 15:31:27 -0400 - -e2fsprogs (1.45.3-4) unstable; urgency=medium - - * stop using Link Time Optimization; it breaks reproducible builds - * skip "make check" if DEB_BUILD_OPTIONS contains nocheck; this is - needed for some ports builds to complete successfully (Closes: #933247) - * fix e2fsprogs build problems on non-Linux ports - - -- Theodore Y. Ts'o Tue, 06 Aug 2019 15:22:30 -0400 - -e2fsprogs (1.45.3-3) unstable; urgency=medium - - * Fix Breaks/Replace dependency for logsave (Closes: #932874) - * Mark logsave as Multi-Arch: foreign (Closes: #932876) - * Fix test bug on the x32 architecture (Closes: #932906) - * Fix FTBFS problem on FreeBSD and Hurd since they don't have systemd - * Fix blhc problem when running "make check" - - -- Theodore Y. Ts'o Thu, 25 Jul 2019 15:35:01 -0400 - -e2fsprogs (1.45.3-2) unstable; urgency=medium - - * Add a hard dependency on logsave to e2fsprogs to fix initramfs issues - (Closes: #932855, #932859, #932861, #932881, #932888) - * Add check in e2scrub_all.cron so that it doesn't fail if the package - is removed, since e2scrub_all.cron is marked as a config file. - (Closes: #932622) - * Update the Debian policy compliance to 4.4.0 - * Update Czech, French, German, Polish, Portuguese, Swedish, and - Ukrainian translations - - -- Theodore Y. Ts'o Wed, 24 Jul 2019 12:56:52 -0400 - -e2fsprogs (1.45.3-1) unstable; urgency=medium - - * New upstream version - * Automatic online file system scrubs is now disabled by default. - They can be enabled by editing /etc/e2scrub.conf. - * fuse2fs is now installed in /usr/bin instead of /usr/sbin - * Fix fuse2fs compatibility with fuse3; but specifying the - nonempty option may be necessary if fusermount with fuse v2 is in use. - See NEWS.gz for more details. - * Fixed e2fsck support of file systems using large_dir and inline - directories at the same time. - * Fixed a bug in e2scrub_all so it correctly handles an LUKS volume - stacked on top of an LV. (Closes: #931387) - * Fixed a bug in e2scrub_all so it correctly specifies the volumes to - clean up when using "e2scrub_all -r". (Closes: #931679) - * Fixed improper use of positional markers in the Czech, Dutch, - German, and Vietnamese translations. (Closes: #892173) - * Remove ancient special-case CFLAGS for Alpha and Powermac platforms - * Drop packaging support for Debian Jessie - * Use the same build tree for the e2fsprogs udeb package - * Restructure rules file to use dh - * Only require the udev, systemd, and cron build dependencies when - building on Linux. (Closes: #931266) - * Move logsave to its own package. (Closes: #923372) - * Update the Czech and Dutch translations - - -- Theodore Y. Ts'o Sun, 14 Jul 2019 21:01:11 -0400 - -e2fsprogs (1.45.2-1) unstable; urgency=medium - - * New upstream version - * When mke2fs asks the user if she should proceed, fall back to the - English 'y' or 'Y' characters since there could be a missing - translation prompting the use of the English 'y' character. - (Closes: #907034) - * Fix spurious complaint of blocks beyond i_size for verity files. - * Update the Czech, Malay, Polish, Spanish, Swedish, and Ukrainian - translations. Add the new Portuguese translation. (Closes: #912185) - - -- Theodore Y. Ts'o Mon, 27 May 2019 21:46:31 -0400 - -e2fsprogs (1.45.1-3) unstable; urgency=medium - - * Fix e2scrub_all cron failures (Closes: #929287) - - -- Theodore Y. Ts'o Mon, 20 May 2019 21:48:40 -0400 - -e2fsprogs (1.45.1-2) unstable; urgency=medium - - * Avoid spurious e2scrub_all error messages spamming administrators from - cron/systemd timer units when lvm2 is not installed and/or there are - no lvm devices present in the system (Closes: #928977, #929186, #929254) - - -- Theodore Y. Ts'o Mon, 20 May 2019 11:02:09 -0400 - -e2fsprogs (1.45.1-1) unstable; urgency=medium - - * New upstream feature - * Drop lvm2 from the recommends line (Closes: #924275) - * Add the -n flag to the e2scrub and e2scrub_all commands - * Teach e2scrub to issue more useful error messages - * Update support for the case-folding file system feature to match what - finally will be landing in the kernel. - * Teach e2scrub_all to skip scrubbing a file system if there is not - enough free space to create a snapshot. (Closes: #924301) - * Fixed debugfs so it correctly prints ea_in_inode xattr values. - * Debugfs now prints non-printing characters using C-style hex escape - sequences. - * E2fsck now checks the unused portions of the bitmap blocks when the - number of blocks/inodes is less than the full blocksize to make sure - they are properly set. - * Fixed mke2fs's insanely large file system check, so that creating a - 900TB file system will succeed. - * E2scrub now tags its temp snapshot volumes with UDISK_IGNORE to avoid - them showing up in GUI's. (Closes: #926112) - * Mark the e2scrub systemd service files to indicate that it requires - CAP_SYS_ADMIN and CAP_SYS_RAWIO so e2scrub will get skipped when run - in containers that don't give root these capabilities. (Closes: #926138) - * E2fsck can now save a problem code log for debugging or monitoring - purposes. - - -- Theodore Y. Ts'o Sun, 12 May 2019 21:23:25 -0400 - -e2fsprogs (1.45.0-1) unstable; urgency=medium - - * New upstream feature - * tune2fs can now set the file system error bit to force a check at the - next fsck by using the extended option "force_fsck". - * There is now an e2scrub script which will allow e2fsck to be run - on mounted file systems using an LVM device. There will be a systemd - script to automatically run e2scrub on all ext4* file systems where it - can be supported. - * mke2fs will attempt avoid discarding pre-allocated blocks when - initializing a file system on a file. - * The fuse2fs command now supports a "fakeroot" option to allow an - unprivileged user to fuse2fs to modify rootfs images. - * Add initial support for the character set and case-folding file system - feature. - * Debugfs can now set the inode's checksum field - * E2image now accepts the -b and -B options to allow the user to specify - the superblock location when creating a raw or qcow2 image. - * Update the debhelper compatibility level to 11 - * Update the Debian policy compliance to 4.3.0 - - -- Theodore Y. Ts'o Wed, 06 Mar 2019 12:55:18 -0500 - -e2fsprogs (1.44.6-1) unstable; urgency=medium - - * New upstream version - * Fix e4defrag overflow problem when files are being created while it is - running (Closes: #888899) - * Fix e2fsck so it can correctly handle directories > 2 GiB when the - largedir feature is enabled. - * Fix mke2fs's hugefile creation so it works correctly for certain - unfortunately sized disks/partitions. - * Fix the libext2fs library to be more robust against - invalid/maliciously corrupted block group descriptors. - * Fix mke2fs and debugfs so they can correctly copy in files > 2 GiB. - * Fix debugfs so its stat command can correctly display directory - sizes > 2 GiB. - * Fix memory leaks in debugfs, mke2fs, and e2freefrag. - * Avoid unnecessarily linking badblocks with the libblkid shared library. - (Closes: #919958) - - -- Theodore Y. Ts'o Tue, 05 Mar 2019 15:10:40 -0500 - -e2fsprogs (1.44.5-1) unstable; urgency=medium - - * New upstream version - * Avoid overflows when tracking the number of files defragged - by e4defrag (Closes: #888899) - * Fix groff formatting nits in various man pages (Closes: #916188) - * Fix location of libext2fs documentation (Closes: #915942) - * Fix regression so we are correctly translating Posix ACL's - in libext2fs - * Use the online free block counts so e2freefrag's percentages - are correct - * Fix a false warning that tune2fs will take long time to change - a UUID if the metadata_csum feature is not enabled - * Fix mk_cmds so it works on a non-usrmerge system when e2fsprogs - is built on a usrmerge system (Closes: #914087) - * E2fsck will avoid offering to set the inline_data feature flag - unnecessarily - * E4defrag will handle the case where it is running as root and it can't - find the file system to open more gracefully (Closes: #907634) - * Fix a bug where resize2fs was failing to update the extent tree - checksums in an corner case - * Fix fuse2fs's command line parsing when options are specified after - the target device/image - * Fix a bug which could cause e2fsprogs tools to segfault on a corrupted - file system where the journal's s_nr_users is impossibly large. - * E2image now includes the mmp block (if needed) when creating a - metadata-only image. - * When e2fsck notices it could optimize an extent tree, it will now ask - "Optimize?" instead of "Fix?", which was confusing some users since it - implied that something was broken. - - -- Theodore Y. Ts'o Sat, 15 Dec 2018 22:46:49 -0500 - -e2fsprogs (1.44.4-2) unstable; urgency=medium - - * tune2fs fix dereference of freed memory after journal - * fix verity support - * Generate NEWS.gz for e2fsprogs's package documentation directory - * Update Debian policy compliance to 4.2.0 - * Improve version dependency for libcom-err and ss2 for e2fsprogs - - -- Theodore Y. Ts'o Wed, 22 Aug 2018 19:30:17 -0400 - -e2fsprogs (1.44.4-1) unstable; urgency=medium - - * New upstream release - * Add basic support for the ext4 verity (fsverity) feature - * E2fsck will fix file systems that have both the resize_inode - and meta_bg feature enabled - * Debugfs's ncheck command will now correctly inodes that have - multiple hard links - * Remove kilo/kibi rant (Closes: #757831) - * Update Danish, Spanish, and Swedish translations - * Fix symlink to directory conversions (Closes: #905195) - - -- Theodore Y. Ts'o Sat, 18 Aug 2018 20:46:29 -0400 - -e2fsprogs (1.44.3-1) unstable; urgency=medium - - * New upstream release - * Include hashmap.h in the libext2fs2 package - * Update debian policy compliance to 4.1.5 - - -- Theodore Y. Ts'o Tue, 10 Jul 2018 01:23:17 -0400 - -e2fsprogs (1.44.3~rc2-1) unstable; urgency=low - - * New upstream release - * Debugfs's inode_dump and xattr_dump commands have new options to - display the low-level contents of an inode's i_blocks and extra - space, and to better be able to debug corrupted extended attributes. - * The dumpe2fs command now will show information about the Multi-Mount - Protection (MMP) block, if present - * E2fsck, dumpe2fs, and debugfs is now much more robust at handling - badly (or maliciously) corrupted file systems. - * E2fsck will now offer to enable the dir_nlink feature if it is - required by the file system - * The project id field in the inode is now properly byte-swapped on - big-endian systems - * E2fsprogs better handles recent kernels which reports old error - conditions via the first fsync() after the file is opened - * Updated/fixed various man pages - * Update Czech, Dutch, Spanish, French, Polish, Swedish, Ukrainian, and - Vietnamese translations - * Update debian policy compliance to 4.1.4 - - -- Theodore Y. Ts'o Tue, 3 Jul 2018 23:31:40 -0400 - -e2fsprogs (1.44.2-1) unstable; urgency=medium - - * New upstream release - * Demote e2fsprogs from Essential: yes to XB-Important: yes - (Closes: #474540) - * Fix mke2fs to print a more useful/correct error message if - ext2fs_close_free() fails at the end of the file system - creation process - * Improve chattr's man page - * Update Polish translation - - -- Theodore Y. Ts'o Mon, 14 May 2018 19:59:27 -0400 - -e2fsprogs (1.44.1-2) unstable; urgency=medium - - * Fix e2image handling of e2i files on big endian systems - * Add sanity checks for inodes containing xattr values to prevent - maliciously crafted file systems from causing crashes caused by - infinite recursion - * Fix e2fsck so that quota usage is adjusted when clearing orphaned - inodes - * Fix filefrag so that unknown flags returned by FIEMAP won't cause a - buffer overrun - - -- Theodore Y. Ts'o Tue, 10 Apr 2018 11:04:36 -0400 - -e2fsprogs (1.44.1-1) unstable; urgency=medium - - * New upstream release - * Fix FTBFS problem on Hurd (Closes: #893590) - * Fix e2fsck support of HTree directories on big-endian systems - * Fix miscellaneous e2image image handling for file systems with bigalloc - and meta_bg features enabled. - * Fix orphan list handling of inodes on bigalloc file systems (and other - situations where inodes need to be deleted or truncated) in e2fsck. - * Update Swedish translation. - * Add Vcs-* headers in Debian packaging (Closes: #887512) - * Speed up reading bitmap blocks in debugfs when opening large file - systems. - * Add clarifications to chattr's man page. (Closes: #890390) - - -- Theodore Y. Ts'o Sat, 24 Mar 2018 15:13:28 -0400 - -e2fsprogs (1.44.0-1) unstable; urgency=medium - - * New upstream release - * Update Czech, Spanish, French, Malay, and Ukrainian translations. - - -- Theodore Y. Ts'o Wed, 07 Mar 2018 14:39:52 -0500 - -e2fsprogs (1.44.0~rc2-1) experimental; urgency=medium - - * New upstream release - * Fix FTBFS problem on Hurd - * Improved e2fsck's consistency checking for symlink. - - -- Theodore Y. Ts'o Sun, 04 Mar 2018 15:57:21 -0500 - -e2fsprogs (1.44.0~rc1-1) experimental; urgency=low - - * New upstream release - * Add support for the large_dir feature - * Add support for the ea_data feature - * Resize2fs will not complain about online resizes of bigalloc file - systems - * Debugfs's ls command will now print the high bits of the mode bits - * Fix some corner cases with tune2fs and journal replay - * Add support for libreadline.so.7 - * E2freefrag will now use the GETFSMAP ioctl for mounted file systems - * E2fsck is now much faster when scanning extents on bigalloc file systems - * Fix various compiler and UBSAN warnings - - -- Theodore Y. Ts'o Tue, 27 Feb 2018 16:56:32 -0500 - -e2fsprogs (1.43.9-2) unstable; urgency=medium - - * Fix upgrade when there are two installations of a library (for - different architectures) that we are transitioning to the new package - name. (Closes: #890590) - * Add support for libreadline.so.7 to libss - * Fix tune2fs's journal recovery support - * Fix tune2fs to require a freshly checked file system if turning off - the metadata_csum feature and UUID has been changed. - - -- Theodore Y. Ts'o Sat, 24 Feb 2018 20:48:29 -0500 - -e2fsprogs (1.43.9-1) unstable; urgency=medium - - * Remove some obsolete flags and add document new flags in the chattr - man page - * Remove misplaced "MNP is unsupported" message from debugfs - * Suppress false positive lintian warning about "new essential - package" (caused by preparatory work to make the e2fsprogs - package no longer essential) - * Fixing missing "General" in "GNU General Public License" in - copyright files. - * Fix whitespace issue in the debian control file - * Update the Hungarian translation. - * Rename the packages e2fslibs* to libext2fs* and libcomerr2* to - libcom-err2* to conform with the standard Debian library package - naming conventions. (Closes: #269569) - - -- Theodore Y. Ts'o Thu, 08 Feb 2018 13:09:49 -0500 - -e2fsprogs (1.43.8-2) unstable; urgency=medium - - * Update debian policy version to 4.1.3 - * Mark library packages as priority: optional - * Simplify the debian/rules file and don't build e2fsprogs-l10n - unnecessarily - * Fix FTBFS on big-endian systems (Closes: #886119) - * Add support for the build profile: noudeb - * Add support for the build profile: pkg.e2fsprogs.no-fuse2fs - * Add support for the build profile: pkg.e2fsprogs.no-static-e2fsck - - -- Theodore Y. Ts'o Wed, 03 Jan 2018 16:18:40 -0500 - -e2fsprogs (1.43.8-1) unstable; urgency=medium - - * New upstream version - * Fix a bug where updated bitmap checks might not be written to disk. - (Closes: #883869) - * Add missing byte swaps for newly added fields in the superblock - * Fix a potential use after free bug in e2fsck when fixing a corrupted - root node in directory hash tree. - * Fix a bug in e2fsck where a badly/maliciously corrupted superblock - (which is not fixed due to the -n option, for example) can cause a - floating point exception when printing the summary statistics. - (Closes: #879220) - * Fix debugfs's ncheck command so that it correctly prints the inode - number when printing an error message. - * Fix a bug in e2freefrag where it could print an incorrect free blocks - count on a file system with the 64-bit block number feature. - * Update the German, Serbian, Spanish, and Ukrainian translations. - * Fix a bug where resize2fs's free blocks sanity check could fail with a - false positive and refuse to check a file system with the 64-bit block - number feature. - * Fix and clarify various man pages and documentations. Also fixed up - some random usage texts that were incorrect. (Closes: #880483) - * Add missing copyright file for the e2fsprogs-l10 package. (Closes: - #880207) - * Add missing Multi-arch hints (Closes: #881408, #881590, #881591) - - -- Theodore Y. Ts'o Mon, 01 Jan 2018 19:44:41 -0500 - -e2fsprogs (1.43.7-1) unstable; urgency=medium - - * New upstream version - * Fix error handling in debugfs, fuse2fs, and tune2fs so errors while - replaying the journal will not cause a segfault in some corner cases - * Fix resize2fs to avoid it from either failing or corrupting the file - system image in certain corner cases when doing an off-line resize - * Fix many spelling mistakes in various man pages, code comments, and - program messages. - * Fix e2fsck and debugfs so that maliciously corrupted file systems will - not cause buffer overflows (Closes: #873757, #878104) - * Update German translation (Closes: #833514) - * Update debian policy version to 4.1.1 - * Fix FTBFS caused by debhelper/10.9 and references to obsolete packages - in the rules file (Closes: #876551) - * Promote e2fsprogs-l10n from suggests to recommends (Closes: #873812) - * Make e2fsprogs-l10n be arch:all (Closes: #873813) - - -- Theodore Y. Ts'o Mon, 16 Oct 2017 01:20:54 -0400 - -e2fsprogs (1.43.6-1) unstable; urgency=medium - - * New upstream version - * Break out the locale files to a separate package (e2fsprogs-l10n) to - reduce the size of the e2fsprogs package, since it is an - essential/required package. - * Remove support for building uuid/blkid packages on pre-Wheezy - distributions (which are no longer supported). - * Remove support for pre-Multiarch versions of Debian (which are no - longer supported). - * Fixed the printing of quota inconsistency messages in e2fsck on 32-bit - platforms. Also fixed a bug which caused project quota problems to be - labelled as group quota problems. - * Fixed a UI problem with yes/no questions when there are fuzzy - translation entries which caused some messages to be printed in English - and some in the language specified by the locale. (Closes: #856586) - * Fix some out-of-bounds memory accesses in e2fsck caused by (usually - maliciously) corrupted file systems. (Closes: #871539, 871540) - * Optimize CPU usage in e2fsck for very large, very fragmented sparse - files. - * Avoid creating file systems that use project quotas and 128 byte - inodes. - * Improve tune2fs's message when a file system needs to be checked using - e2fsck -f before running certain complex tune2fs operations. (Closes: - #857336) - * Improve e2fsck's message when the proceed_delay option in - /etc/e2fsck.conf is enabled. (Closes: #857336) - * Fix an LFS bug in e2image. (Closes: #855246) - * Fix portability problem caused by the fact that disks are character - mode devices systems with FreeBSD kernels. - * Update the Czech, French, Polish, Swedish, and Vietnamese translations. - - -- Theodore Y. Ts'o Tue, 29 Aug 2017 00:58:29 -0400 - -e2fsprogs (1.43.5-1) unstable; urgency=medium - - * New upstream version - * Fix ext2fs_sync_device() so it returns the proper error code if the - BLKFLSBUF ioctl fails for some reason. - * Fix a potential crash in tune2fs when enabling project quota when the - file system has no inodes by fixing error handling in the - quota_write_inode() in libsupport. - * Fix a bug in debugfs's "ls -p" handling which could cause it to print - garbage after a file name in a directory entry. - * Fix a number of bugs in debugfs, dumpe2fs, e2fsck, tune2fs, and - resize2fs where a carefully/maliciously corrupted file systems (found - by American Fuzzy Lop) could these programs to crash or hang. - (Closes: #868489) - * E2fsck no longer issues some harmless bitmap warnings caused by a - corrupted file system; since those corruptions will be fixed up by - e2fsck later, there's no point issuing these internal warnings. - * E2fsck will now notice invalid quota inode numbers, and offer to fix - them. - * Fix a regression introduced in e2fsprogs 1.43 which broke mke2fs's - hugefile creation so that they aren't contiguous. - * Fix how backup superblocks are written in big endian systems so they - are all correctly byte swapped. - * Fixed tune2fs's support for enabling and disabling project quota. - * The badblocks program now properly handles languages which have - multi-column wide character such as Chinese. (Closes: #860926) - * The mke2fs -U option now accepts "null", "clear", "random", or "time" - just as tune2fs's -U option. - * Fix e2fsck's -E bmap2extent feature (which converts a file to use - extents from indirect block maps) so that it handles sparse files - correctly. - * Fix libext2fs to correctly handle accounting for an external xattr - block on bigalloc file systems. - * Fix e2fsck to correctly handle quota accounting when deleting files - that have multiply-claimed blocks pass 1b. - * Fix potential buffer overrun bug in e2fsck when using 128 byte inodes. - * E2fsck's extent tree optimization can now be disabled via an - command-line extended option or via an e2fsck.conf configuration - parameter. - * The e2fsck program now properly updates the quota accounting when - optimizing the extent tree. - * Fix some error handling in e4crypt when operating on keyring ID's. - * Fix e2fsck's quota handling when the bigalloc feature is enabled. - * The libext2fs file system now uses readahead when opening file systems - to speed up opening very large file systems with the meta_bg option. - * If e2fsck logging is enabled, e2fsck will report the exit code in the - last line of the log file. - * Debugfs can now open file systems with a bad superblock checksum, and - the show_super_stats command will print the expected checksum. - * Fix a regression introduced in e2fsprogs 1.43.4 where tune2fs was not - able to correctly enable the quota feature. (Closes: #855417) - * E2fsck will only return an exit status code of 1 if it has fixed a - file system corruption. If it only performed an optimal optimization - of internal file system metadata, it will now return 0. - * Fix e2fsck so it won't check inode fields of deleted inodes. - * Removed a debugging printf in libsupport which could result to some - extraneous and confusing output if the user specifies a quota type. - * The debugfs logdump command now accepts a new -S option which will - cause it to print information about the journal superblock. - * Added a missing space in debugfs's ls -l output to separate the size - and date fields. - * Update the Czech, Danish, Dutch, French, Hungarian, Polish, Serbian, - Spanish, Swedish, Ukrainian, and Vietnamese translations. (Closes: #862482) - * Update various man pages. (Closes: #867895, #865584) - * Fix various compiler and UBSAN warnings. - * Remove obsolete Conflict/Replaces headers in control file (Closes: #866623) - * Remove obsolete mips libraries used to build arcboot (Closes: #864144) - - -- Theodore Y. Ts'o Fri, 04 Aug 2017 01:13:34 -0400 - -e2fsprogs (1.43.4-2) unstable; urgency=medium - - * Re-enable metadata_csum for Debian (which was accidentally disabled - for 1.43.4-1) - - -- Theodore Y. Ts'o Tue, 31 Jan 2017 19:54:55 -0500 - -e2fsprogs (1.43.4-1) unstable; urgency=medium - - * New upstream version - * Fix e2fsck to require that the system.data extended attribute is - always present even for files smaller than 60 bytes, to be - consistent with the kernel - * Drop the hard links for mkfs.ext4dev and fsck.ext4dev - * Clarify/update various man pages (Closes: #852726) - * Clarify the default for the "proceed?" question printed by mke2fs - and tune2fs. (Closes: #852727) - * Fix various Coverity warnings and other memory leaks in fuse2fs and - extended attribute manipulation functions. - * Add Finnish and Malay translations - * Update Chinese, Czech, Polish, Serbian, and Spanish translations - (Closes: #774379) - - -- Theodore Y. Ts'o Tue, 31 Jan 2017 17:31:52 -0500 - -e2fsprogs (1.43.4~WIP.2017.01.30-1) unstable; urgency=medium - - * Fix a bug which was causing mke2fs -d and fuse2fs to improperly - handle Posix ACL's. - * Fix a bug which could cause mke2fs -d to fail if there is an - zero-length file in source directory tree. - * Debugfs will now display project quota information. - * Debugfs has a more friendly and powerful to print and set extended - attributes. - * Fix a bug in mke2fs where I/O errors weren't getting properly - reported to the user. - * Fix a bug in resize2fs when operating on very large file systems - which have a block size different from the VM page size. - * If the reported device size is absurdly large, mke2fs will now - report an error instead looping forever or crashing. - * Replace a test file in the sources with an updated version which has - a DFSG-compliant copyright license. This was making lawyers - nervous, even though the file was only used in regression tests and - was never used when building any binaries. (Closes: #840733) - - -- Theodore Y. Ts'o Mon, 30 Jan 2017 22:14:07 -0500 - -e2fsprogs (1.43.3-1) unstable; urgency=medium - - * Fix e2fsck's handling of timestamps on 32-bit system (Closes: #836559) - * E2fsck will sanity check and repair the extra isize fields in inodes - and the superblock. - * Fix sparc64 crashes when dereferencing unaligned integers in journal - blocks when metadata checksums are enabled. - - -- Theodore Y. Ts'o Sun, 04 Sep 2016 20:41:21 -0400 - -e2fsprogs (1.43.2-2) unstable; urgency=medium - - * Fix build reproducibility problems - * Don't hide the linker flags for e2fsck.static - - -- Theodore Y. Ts'o Thu, 01 Sep 2016 23:30:55 -0400 - -e2fsprogs (1.43.2-1) unstable; urgency=medium - - * Change the default journal size to be larger for file systems larger - than 128 GB to improve performance on metadata-heavy workloads - * Clarify tune2fs's message when the user needs to run e2fsck - (Closes: #828022) - * Fix an alignment bug in e2fsck which caused sparc64 architectures to - crash when replaying the journal on file systems with a 64-bit block - number - * Fix a typo in debugfs when printing out the dtime field on file - systems with an extended timestamp - * Fix the logic in e2fsck which decides when to repair legacy negative - timestamp encodings. - * Add a command to debugfs to copy the inode structure from one inode - to another - * Fix resize2fs so it will not crash if there is an extended - attribute block but it doesn't need to migrate any blocks during - an off-line resize - * Fix a crash when mke2fs or debugfs tries to copy in a directory - hierarchy containing an empty directory - * Fix a bug in e2fsck caused by a power failure during e2fsck's journal - replay could leave the file system in a state where if the file - system is mounted without doing a full e2fsck scan, the file system - could get corrupted - * Fix big endian bugs in the e2undo program - * Fix debugfs's logdump so command so it can correctly handle journals - which are larger than 2GB - * Add new translations: Hungarian and Serbian - * Update the Catalan, Chinese, Danish, Dutch, French, German, Polish, - Swedish, Ukrainian translations - - -- Theodore Y. Ts'o Thu, 01 Sep 2016 00:55:13 -0400 - -e2fsprogs (1.43.1-1) unstable; urgency=medium - - * New upstream version - * Fix the Direct I/O fallback code in the Unix I/O manager so it - implements read-modify-write correctly. - * The mke2fs program will now warn if the user specifies a label which - is too long. (Closes: #791630) - * Clean up various man pages (Closes: #766379, #761144, #770750, - #428361, #766127) - * Fix bug so that debugfs's rdump command works on the root directory - (Closes: #766125) - * Fix various Debian packaging issues (Closes: #825868) - * Build fully security hardened binaries - - -- Theodore Y. Ts'o Tue, 07 Jun 2016 23:09:55 -0400 - -e2fsprogs (1.43-3) unstable; urgency=medium - - * Fix various debian packaging nits - * Fix spelling mistakes in the copyright files - * Fix various spelling mistakes in man pages - * Fix project quota bugs in e2fsck and mke2fs - * Build binaries with hardening support - * Improve e2fsck messages when the journal superblock is corrupt and - the user declines to fix the journal. (Closes: #768162) - * Fix debugfs's handling of "set_bg checksum calc" on 64-bit file - systems. - * Simplify the debian rules file - - -- Theodore Y. Ts'o Wed, 25 May 2016 00:51:33 -0400 - -e2fsprogs (1.43-2) unstable; urgency=medium - - * Update watch file to check for the GPG signatures - * Use dh_update_autotools_control to update config.{guess,sub} - automatically when building the package. - * Only try to run update-initramfs if it exists - * Transition to dbgsym packages - - -- Theodore Y. Ts'o Fri, 20 May 2016 14:07:40 -0400 - -e2fsprogs (1.43-1) unstable; urgency=medium - - * New upstream version - * Fix or improve offset support in mke2fs, e2undo, and libext2fs - * Update debian policy version to 3.9.8 - - -- Theodore Y. Ts'o Tue, 17 May 2016 01:04:28 -0400 - -e2fsprogs (1.43~WIP.2016.03.15-2) sid; urgency=low - - * Fix FTBFS on big-endian systems - - -- Theodore Y. Ts'o Thu, 17 Mar 2016 22:55:52 -0400 - -e2fsprogs (1.43~WIP.2016.05.12-1) unstable; urgency=medium - - * New upstream version - * Clean up various man pages and usage messages - * Fix up gcc and Coverity warnings - * Stop building static binaries using dietlibc - * Fix potential out-of-boundary memory access in resize2fs - * Fix sparse_super2 bugs in mke2fs and resize2fs - * The mke2fs program will now support multiple -O options - * The e2image program now ignores checksum error so that debugging - snapshots of a file system can be taken of a broken file system - * E2fsck now more cleanly handles checksum errors while replaying the - journal - * Fix e2fsck to not try to set a UUID if the metadata_csum feature is - enabled since this will break the checksums - * Fix e2image so progress information won't get leaked to stdout - * Fix bugs in "mke2fs -E offset=NNNN" (Closes: #803629) - * Fix Hurd portability issues (Closes: #822576) - * Update initramfs in e2fsprogs's postinst script so the initial - ramdisk gets the updated e2fsprogs binaries (Closes: #804237) - * Work around texi2dvi bug which can cause build failures (Closes: #822227) - * E2fsck now prints "REBOOT SYSTEM" instead of "REBOOT LINUX" to - assuage the sensibilities of Hurd users (Closes: #769838) - - -- Theodore Y. Ts'o Thu, 12 May 2016 00:18:45 -0400 - -e2fsprogs (1.43~WIP.2016.03.15-1) unstable; urgency=low - - * New upstream release - * Fix resize2fs bug that could leave block allocation bitmaps - uninitialized - * The tune2fs program will ask the user for confirmation before - starting dangerous operations if the terminal is available, and it - will replay the journal if necessary - * Fix a bug which in rare cases would cause e2fsck -fD to corrupt an - extent-mapped directory. - * E2fsck will now check for extent mapped inodes with no extent header - and clear them if found - * E2fsck now checks to make sure the extended attribute header doesn't - result in the xattr extending beyond the bounds of the inode - * Teach mke2fs to parse a human-readable argument for -i option - * Teach mke2fs to automatically handle creating file systems > 500T by - automatically enable the meta_bg feature - * Mke2fs will now prompt for user verification before rewriting a file - system's superblock using the -S option - * Mke2fs no longer complains if the user tries to create a file system - using the entire block device (e.g., without using a partition). - The minor number convention is not used by all block devices, and - it's quite normal in some circumstances to create a file system - on /dev/sdc instead of /dev/sdc1 - * Debugfs now can properly display and set extended timestamps - * Add an ext2/3/4 FUSE server - * Fix an "mke2fs -d" bug which could create inodes with invalid - extended attribute blocks - * Fix miscellaneous file encryption bugs - * Fix miscellaneous MMP bugs in debugfs - * The e2fsck program will no longer update the quota inodes when it is - interrupted - * The filefrag program now accounts for holes in sparse files created - by the file punch operation as an expected/optimal mapping - * Clean up gcc/clang warnings - * Add support for the checksum seed feature - * Add support for the project quota feature - * Add fallocate support to libext2fs and to debugfs - * Clean up various man pages (Closes: #798425) - * Update debian policy compliance to 3.9.7 - - -- Theodore Y. Ts'o Tue, 15 Mar 2016 01:34:14 -0400 - -e2fsprogs (1.43~WIP.2015.05.18-1) unstable; urgency=low - - * Merge in updates from the maint branch (changes from 1.42.13) - * Add support for file encryption feature - * Mke2fs will now create file systems with metadata_csum and 64bit - enabled by default. - * The resize2fs command can now convert file systems between 64-bit - and 32-bit mode. - * The new undo file format is much faster/efficient than before - * E2fsck now has readahead support to speed up its behavior on RAID - arrays. - * E2fsck can now rebuild/optimize inode extent trees - - -- Theodore Y. Ts'o Mon, 18 May 2015 01:47:43 -0400 - -e2fsprogs (1.42.13-1) unstable; urgency=low - - * New upstream version - * NMU acknowledge (Closes: #778948) - * Fixed a bug which could cause e2fsck to corrupt Hurd file systems. - (Closes: #760275) - * Fixed a deadlock which occurs when using systemd and e2fsck.conf's - logging feature. (Closes: #775234) - * Fixed a bug which could cause programs using libext2's inode table - scanning functions from crashing on certain corrupted file systems. - (Closes: #773795) - * Fixed dumpe2fs so it won't crash if the user doesn't specify a block - device (file system). (Closes: #764293) - * Fixed e2fsck so if it notices unexpected HTREE blocks in pass 2, it - will report the correct directory inode containing the inconsistency. - * If e2fsck fails to grow the dir_info structure due realloc(3) not - having enough memory, it will now fail with explanatory message - instead of staggering on failing with a confusing internal error - messages. - * The tune2fs program will zero out the superblock journal backup - information when removing a journal from a file system. - * The mke2fs program now enables the large_file feature by default. - * Fixed a bug which could cause badblocks to crash if there are millions - and millions of bad blocks. - * Fixed some use-after-free bug in resize2fs and e2fsck. - * Fixed some bigendian bugs that had crept into both indirect and extent - handling inside libext2fs. - * Updated/fixed various man pages. - * Update Esperanto, German, and Spanish translations. Added Danish - translation. - - -- Theodore Y. Ts'o Sun, 17 May 2015 20:38:27 -0400 - -e2fsprogs (1.43~WIP-2015-03-29-1) unstable; urgency=low - - * Merge in updates from the maint branch (changes from 1.42.12-1) - * Add support for inline directories - * Add support for the jbd2 checksum v3 format - * New dumpe2fs format - * Add support for file encryption feature - - -- Theodore Y. Ts'o Sun, 14 Dec 2014 22:49:03 -0500 - -e2fsprogs (1.42.12-1.1) unstable; urgency=high - - * Non-maintainer upload by the Security Team. - * Fix CVE-2015-1572: incomplete fix for CVE-2015-0247 (closes: #778948). - - -- Michael Gilbert Sun, 22 Feb 2015 01:50:57 +0000 - -e2fsprogs (1.42.12-1) unstable; urgency=low - - * New upstream version - * Fix various e2fsck bugs when trying to repair bigalloc file systems. - * E2fsck can now repair a file system with an overly large - s_first_meta_bg field, which had previously caused all e2fsprogs - programs to crash when trying to open such a file system. - * Fix e2fsck so that it can correctly fix a number of rare file system - corruptions that were discovered when using a file system fuzzer. - * Fix e2fsck so it does not try to write back block group descriptors - if they have not been modified. - * The mke2fs program will now place metadata blocks in the last - flex_bg so they are contiguous. This reduces free space - fragmentation in a freshly created file system, as well as allowing - mke2fs commands which request extremely large flex_bg size to succeed. - * Mke2fs now creates hugefiles more efficiently (with fewer extent - tree blocks). - * Fix a 32/64-bit overflow bug that could cause resize2fs to loop - forever. - * Reduce the memory consumption of resize2fs for very large file - systems. - * Fix a bug that could cause resize2fs to create a corrupted file - system when shrinking a very large file system (typically > 16TB) - that had been previously grown using resize2fs. (Closes: #756922) - * Fix tune2fs updating UUID's when manipulating file systems with - external journals (both the file system and journal UUID). - * Fix tune2fs so it can remove an external journal for file systems - with a 1k block size. - * Add a new debugfs command, "inode_dump", which prints the inode in - hex and ASCII format. - * The debugfs command "set_inode_field" will now automatically - allocate blocks for indirect blocks and extent tree blocks. - * Fix debugfs's "set_inode_field" so can properly handle - "block[IND|DIND|TIND]". - * The debugfs "rdump" command will now take multiple source arguments. - * Fix debugfs's argument parsing for the freefrag command. - * Fixed a double close(2) bug in "rdump" and "rdump -p". - * Fix filefrag to properly handle using the FIBMAP ioctl (with -B). - * e4defrag will now defrag backwards-allocated files - * Clarified messages that were confusing users in debugfs, e2fsck, - mke2fs, and resize2fs (Closes: #758029, #757543, #757544) - * Dumpe2fs will now complain if extra arguments are given to it. - (Closes: #758074) - * Update/clarify various man pages (Closes: #726760) - * Update Czech, Dutch, French, Polish, Spanish, Swedish, Ukrainian, - and Vietnamese translations - - -- Theodore Y. Ts'o Fri, 29 Aug 2014 08:50:48 -0400 - -e2fsprogs (1.42.11-2) unstable; urgency=low - - * Don't try to build lib/ext2fs/tst_ext2fs unless running "make - check"; this fixes a MIPS FTBFS problem because mips has a special - no-pics build needed for bootloaders where we only build libext2fs - but not libss or other libraries (Closes: #754605) - * Update French translation - - -- Theodore Y. Ts'o Sun, 13 Jul 2014 16:18:27 -0400 - -e2fsprogs (1.42.11-1) unstable; urgency=medium - - * New upstream version - * NMU acknowledge (Closes: #752107) - * mke2fs can now create hugefiles which are aligned to the beginning - of the disk (instead of relative to the beginning of the partition), - controlled via a mke2fs.conf configuration parameter. - * Fix a bug which caused e2fsck to abort a journal replay on a file - system with bigalloc enabled. (Closes: #744953) - * Fix mke2fs so it more correctly handles large flex_bg counts - * Mke2fs will check the kernel version number and not just the sysfs - feature flag to determine whether it is safe to enable lazy - inode table initialization, so it won't get faked out if the ext4 is - compiled as a module which hasn't happened to be loaded yet. - * E2fsck will now automatically fix a last mount time or last write time - which is in the future in preen mode. - * Mke2fs will now check the file system revision number requested by the - command line, and reject it if it is too large. - * If filefrag runs into an error, it will continue processing the rest - of the files specified on the command line, but then exit with an - error code. - * Filefrag now prints some additional new flags (such as - FIEMAP_EXTENT_ENCODED), and print unknown flags as hex values. - * Fixed support in filefrag for files with > 2**32 blocks on 32-bit - platforms. - * Fixed a file descriptor leak in debugfs when copying files. - * Add Esperanto and Ukrainian translations, and update Czech, Dutch, - French, German, Italian, Polish, Swedish, and Vietnamese translations. - * Fixed cross-compilation support. (Closes: #753375) - * Update/fix various man pages - - -- Theodore Y. Ts'o Wed, 9 Jul 2014 23:43:27 -0400 - -e2fsprogs (1.42.10-1.1) unstable; urgency=medium - - * Non-maintainer upload. - * Add patch from upstream git that fixes creating filesystems in files - larger than 2GB on 32 bit architectures (Closes: #752107) - - -- Hilko Bengen Sat, 21 Jun 2014 12:57:25 +0200 - -e2fsprogs (1.43~WIP-2014-02-04-1) unstable; urgency=low - - * Merge in updates from the maint branch (changes from 1.42.10-1) - - -- Theodore Y. Ts'o Wed, 04 Feb 2014 23:31:56 -0500 - -e2fsprogs (1.42.10-1) unstable; urgency=medium - - * New upstream version - * The mke2fs program no longer requires a force (-F) option when - when creating a file system in a regular file, since this is a very - common use case when managing virtual machine images - * The mke2fs program will now ask for confirmation before wiping out a - pre-existing file system, partition label, or physical volume - * Fix e2fsck so that it properly handles an inconsistent quota inode. - Previously the quota inode could be completely corrupted, and - missing quota records could be not noticed - * Fix mke2fs so if packed metadata blocks are enabled that the block - group checksum are set correctly - * Debugfs has new commands to allow the quota inode to be queried directly - * Tune2fs will allow removal of dirty journal with two "-f" options - (Closes: #559301) - * Fixed some off-line resize2fs bugs when relocating metadata blocks - when growing or shrinking bigalloc file systems - * Fixed resize2fs's calculation of the minimum required file system - size. This allows resize2fs -M to shrink the file system more - aggressively - * Fixed resize2fs to properly handle shrinking a very large and empty - file system to a very very small size - * Fixed e4defrag to work with 64-bit and bigalloc file systems - * Fixed e2fsck to not issue a large number of very scary (but - harmless) corruption messages when checking very large file systems - when the file system has more inodes than the number of seconds - since January 1, 1970. - * E2fsck will now check the whole file system if file system problems - are detected during its initial "pass 0" sanity check - * Filefrag now prints the "shared extent" flag which is used by some - file systems such as btrfs - * The mke2fs program would previously correctly omit the resize_inode - feature when creating a file system > 16TB when the fs size was - determined automatically. It will now also do the right thing when - the user explicitly specifies the file system size. - * The message printed by logsave is now much less scary (Closes: #468821) - * Fix spelling typo in the package descriptions - * Update Czech, Dutch, French, German, Polish, Spanish, Swedish, and - Vietnamese translations (Closes: #703048) - * Update/fix various man pages - * Fix debian/rules compatibility problem with GNU make 4.0 - - -- Theodore Y. Ts'o Sun, 18 May 2014 22:54:38 -0400 - -e2fsprogs (1.42.9-3) unstable; urgency=medium - - * Add the ability for mke2fs to create hugefiles - * Add support for the sparse_super2 compat feature - * Mke2fs can now force all of the metadata blocks to be at the - beginning of the file system - * Fix loopback mount detection (Closes: #497984) - * Add support to mke2fs to create a file system at an offset - (Closes: #417385) - * Mention badblocks in the package description (Closes: #718725) - * Update/fix various man pages (Closes: #719184, #719189) - * Improve e2fsck's "superblock corrupt" message (Closes: #719185) - * Miscellaneous Coverity clean ups - - -- Theodore Y. Ts'o Tue, 04 Feb 2014 22:17:22 -0500 - -e2fsprogs (1.42.9-2) unstable; urgency=low - - * Fix lintian warning: debian-changelog-has-wrong-weekday - * Fix lintian warning: non-standard-dir-perm by using dh_strip's - --dbg-package option instead of manually managing the debug files - * Fix printf type format mismatch in e2image - * Improved debugfs's error reporting when parsing block numbers - * Use consistent configure options across the multiple e2fsprogs - builds; this means that e2fsck.static will now use the blkid library - shipped with util-linux, instead of the internal one shipped with - the e2fsprogs sources. - - -- Theodore Y. Ts'o Mon, 30 Dec 2013 16:56:50 -0500 - -e2fsprogs (1.42.9-1) unstable; urgency=low - - * New upstream version - * NMU ack (Closes: #698879) - * Fix cross-build support (Closes: #721365) - * mke2fs will detect an attempt to create a file system on a - loop-mounted image file - * Fixed a large number of bugs in resize2fs, e2fsck, debugfs, to - handle bigalloc and 64-bit file systems. - * Tune2fs will no longer allow changing the uuid on a mounted file - system with the uninit_bg feature enabled. - * E2fsck will properly allocate a new extent tree block in the rare - case where one is needed when rehashing an extent-mapped directory. - * Mke2fs will now properly set the LARGE_FILE feature when creating a - journal > 2GB. - * Debugfs will now correctly handle free a range of inodes using the - freei command. - * E2fsck will no longer complain if an external journal was exactly - 2**32 blocks. - * E2fsck will not longer try to add a missing lost+found directory - when run in read-only mode. - * Fixed some buffer overrun bugs when creating standard e2image files - * Mke2fs will not try to set both the meta_bg and resize_inode feature - when the extended option "-E resize=NNN" is specified by the user. - * Dumpe2fs will no longer abort when trying to print the journal - information from an e2image-created image file. - * Debugfs's "write" command can now create a sparse files - * Debugfs can now support a command line which is up to 8k long - * E2image will refuse to create a raw or qcow2 image using a mounted - file system unless the -f option is given. - * E2image has been made more useful for efficiently copying file - systems using the -ra options. New options to help with this use - case that were added: -o, -O, -p, and -c. - * Fixed a regression introduced in 1.42.8 which would cause e2fsck to - erroneously report uninitialized extents past i_size to be invalid. - * Fixed cases where resize2fs could corrupt a file system, especially - when shrinking a file system. (Closes: #660793) - * Fixed resize2fs and e2fsck to not crash when operating on a file - system with the MMP feature enabled. - * Fixed debugfs's write command to properly create a zero-length file - (instead of creating an invalid inode). - * Fixed e2fsck to not crash when trying to delete an invalid - extent-mapped symlink. - * Improved debugfs's help texts - * Fixed a potential integer overflow problem in e2freefrag - (Closes: #718205) - * The config.guess and config.sub files have been updated to the - latest to help with the ppcle port. (Closes: #732076) - * Updated/fixed various man pages. (Closes: #586218, #669730, - #698076, #731329) - - -- Theodore Y. Ts'o Sat, 28 Dec 2013 23:18:36 -0500 - -e2fsprogs (1.42.8-1) unstable; urgency=low - - * New upstream version - * Work around Debian Bug #712530 (Closes: #708307) - * Fix e2fsck so it can check a read-only root file system with an - external journal. (Closes: #707030) - * Fix off-line resizing of file systems with flex_bg && !resize_inode - (Closes: #696746) - * Change mke2fs so that it does not set the root directory to the real - uid/gid of the mke2fs process. Add the extended option root_owner to - override this behavior. - * If an invalid journal size is given to mke2fs, it will now complain - and exit sooner. - * Fix resize2fs when shrinking file systems to make sure that bitmap - blocks aren't left outside the bounds of the shrunken file system. - This could happen with flex_bg file systems that were grown using - the old online resizing algorithm. - * E2fsck will now detect and repair corrupted extent trees which contain - invalid extents at the end of the extent tree leaf block. - * E2fsck will now longer complain about zero length extended attribute values. - * Fix a regression introduced in e2fsprogs v1.42 which caused e2image -s - to crash. - * Add safety check so tune2fs will not attempt to set the inode size to - be larger than the block size. - * Enhance chattr to allow clearing the extent flag if the kernel allows it - * Fix e2image with large (> 32-bit) file systems (Closes: #703067) - * Mke2fs will not give warnings about the bigalloc and quota options in - quiet mode. - * Debugfs was erroneously giving spurious error messages for certain - extent_inode subcommands which take arguments (split_node, - replace_node, and insert_node). This has been fixed. - * Fix the parsing of the 's' (sectors) in parse_num_blocks2, which among - other programs is used by mke2fs. - * Fix texinfo incompatibilities (Closes: #712365) - * Updated/fixed various man pages (Closes: #712429, #712430, #707609) - * Update German translation - - -- Theodore Y. Ts'o Thu, 20 Jun 2013 23:09:25 -0500 - -e2fsprogs (1.42.7-1) unstable; urgency=low - - * New upstream version - * Add warning indicating that the quota and bigalloc features are - still under development. - * Added new options to filefrag to be consistent with the version from - Lustre - * Optimized e2fsck's CPU utilization - * Fixed e2fsck so it detects and fixes inconsistencies in the interior - nodes of an inode's extent tree - * Fixed a potential memory corruption failure in e2fsck's error path if - the call to ext2fs_open2() fails. - * Fixed e2fsck if its logging function is enabled in e2fsck.conf, and - the resulting file name for the log file is longer than 100 bytes, - that it properly handles this situation instead of crashing. - * E2fsck will now report the amount of memory that it attempted to - allocate when a memory allocation request fails, to make it easier to - track down the problem. - * Fixed a bug in resize2fs which could cause severe file system - corruption when growing an ext4 file system which was formatted with - fewer-than-normal reserved gdt blocks - * Fixed resize2fs to be able to handle off-line resizes of file - systems with the flex_bg feature and without any reserved gdt - blocks or if the file system did not have the resize_inode feature - * Further optimize resize2fs so it doesn't use quite as much CPU when - resizing very large file systems. - * Fixed 32-bit overflow bugs which could cause resize2fs to fail and - possibly corrupt the file system while resizing 64-bit file systems. - * Fixed a big which could cause resize2fs to corrupt bigalloc file systems. - * Fix a crash while mke2fs is parsing "-E resize=NNN" with the 64bit - file system feature enabled - * Added better error checking to mke2fs to check for invalid - parameters when creating bigalloc file system. - * When creating bigalloc filesystems, the -g option to mke2fs will now - specify the number of clusters per block group. - * Added the "symlink", "zap_block", "block_dump", and "extent_open" - commands to debugfs - * Fixed debugfs's htree command so that all its messages are sent - through the pager. - * Fixed debugfs's dump_file and cat functions so they work correctly - on file systems with a block size greater than 8k. - * Fixed mke2fs's handling of the mmp_update_interval option - * Fixed e2freefrag so it works on 64-bit file systems, and so it uses - much less memory. - * E2image can now include all data blocks in the e2image output - file when the user specifies the -a option. - * Fixed debugfs's mknod command so that it updates the block group - statistics - * Document the bigalloc feature in the mke2fs man page. - (Closes: #669730) - * Update Czech, Dutch, French, German, Polish, Swedish, and - Vietnamese translations - - -- Theodore Y. Ts'o Tue, 21 Jan 2013 21:52:58 -0500 - -e2fsprogs (1.43~WIP-2012-09-22-1) unstable; urgency=low - - * Add metadata checksum feature - - -- Theodore Y. Ts'o Sat, 22 Sep 2012 21:50:20 -0400 - -e2fsprogs (1.42.6-1) unstable; urgency=low - - * New upstream version - * Fix build dependencies to avoid requiring dc, and to allow - cross-building to work (Closes: #677497) - * Updated/fixed various man pages - * Mke2fs will now update its progress indicators at most once a second - to avoid overwhelming serial consoles. - * Resize2fs will support lazy_itable_init, speeding up off-line growth - of uninit_bg file systems. - * Resize2fs now supports on-line resizing 64-bit file systems beyond - 16TB. A number of bugs in resize2fs which prevented this have been - fixed. - * Resize2fs now correctly handles resizing 32-bit file systems to 16TB. - * Fixed a potential segfault in e2fsck when there is an I/O error - while reading the superblock. - - -- Theodore Y. Ts'o Fri, 21 Sep 2012 12:14:41 -0400 - -e2fsprogs (1.42.5-1.1) unstable; urgency=low - - * Non-maintainer upload. - * e2fsck-static, e2fsprogs: let preinst remove a symbolic link in - /usr/share/doc, that should have been replaced with a directory since - 1.39+1.40-WIP-2006.10.02+dfsg-1. (Closes: #698879). - - -- Nicolas Boulenguez Fri, 22 Feb 2013 23:14:59 +0100 - -e2fsprogs (1.42.5-1) unstable; urgency=low - - * New upstream version - * Mark the e2fsprogs package as Multi-Arch: foreign, so if a package - foo:i386 depends on e2fsprogs and is installed on an amd64 system, - the native e2fsprogs will satisfy the dependency. (Closes: #678395) - * Fix a fd leak which could cause logsave (and hence a boot-time rc - init script) to hang (Closes: #682592) - * Fix a problem if e2fsck where if the root file system is mounted - read-only, e2fsck would not clear an error indication in the journal - superblock. Combined with a kernel bug, this would cause the e2fsck - to check the file system after every single boot - * Fixed filefrag so it would not seg fault on virtual filesystems such - as /proc: e.g., "filefrag /proc/partitions" - * Fix filefrag so that it correctly reports the number of extents - * Fixed a bug which caused "mke2fs -N 256 -t ext4 /tmp/foo.img 256m" - to write blocks out until /tmp filled - * Fixed a bug in how e2fsck would uniquify directory entry names - * Change e2fsck so it will allow file systems mounted read-only to be - checked with the -f option. - * Fix e2fsck so that the file system is marked as containing an - error if the user chooses not to fix the quota usage information. - * Fix tune2fs so that it correctly removes the quota feature when - the last quota inode is removed. - * Fix tune2fs so that after removing a quota inode, the block bitmap - is updated; otherwise, e2fsck would complain after running 'tune2fs - -O ^quota '. - * Fix tune2fs so that when converting a file system from using legacy - quota files to the new quota file system feature with hidden quota - files, the accounting for these files is handled correctly so that - e2fsck doesn't complain. - * The e4defrag program now allows device symlinks, such as - /dev/mapper/testvg-testlv, instead of insisting on less - human-friendly names such as /dev/dm-2 - * Updated/fixed various man pages (Closes: #680114) - - -- Theodore Y. Ts'o Sun, 29 Jul 2012 19:59:56 -0400 - -e2fsprogs (1.42.4-3) unstable; urgency=medium - - * Add the -C option to chattr's usage message - * Fix e2fsprogs so it is blhc (build log hardening check) clean. This - fixed e2fsck.static which previously was not getting built with the - security hardening flags. - - -- Theodore Y. Ts'o Wed, 13 Jun 2012 16:03:24 -0400 - -e2fsprogs (1.42.4-2) unstable; urgency=medium - - * Fix FTBFS problem on the hurd and freebsd platforms - - -- Theodore Y. Ts'o Tue, 12 Jun 2012 18:26:40 -0400 - -e2fsprogs (1.42.4-1) unstable; urgency=medium - - * New upstream version - * Fix 64-bit block number bugs in e2fsck, dumpe2fs, and debugfs which - could corrupt file systems - * Fixed e2fsck's handling of how errors propagate from the journal to - the file system superblock - * Fixed a false positive complaint from e2fsck if all of the extents - in the last extent block are uninitialized and located after the - end of the file. - * dumpe2fs will display the journal's error indicator in the - superblock if it is set - * Fixed a bug which caused e2fsck to incorrectly use O_EXCLUSIVE in - some corner cases. - * Fix truncation of extent-mapped inodes in e2fsck and libext2fs - * Fixed i_blocks accounting in bigalloc file systems. - * Add support for btrfs's No_COW flag to lsattr and chattr - * Debugfs interprets the date strings of the form "@ddd" as ddd - seconds after the epoch - * Updated/fixed various man pages (Closes: #674453, #674694) - - -- Theodore Y. Ts'o Tue, 12 Jun 2012 18:20:55 -0400 - -e2fsprogs (1.42.3-1) unstable; urgency=low - - * New upstream version - * Fix bugs on 32-bit systems which could corrupt > 16TB file systems - * Quiet complaints in e2fsck when the total free blocks or inodes are - incorrect in the superblock after an system crash, since we don't - update nor depend on the superblock summaries at each commit boundary - * Fixed support for (hidden) quota files built into ext4; in - particular, don't rewrite the quota inode unless the quotas are - inconsistent - * Optimized reading and writing bitmaps if direct I/O was enabled - * Update Czech, Dutch, French, German, Polish, Swedish, and - Vietnamese translations - * Fixed incorrect indentation in tune2fs man page - * Update debian policy compliance to 3.9.3 - - -- Theodore Y. Ts'o Mon, 14 May 2012 14:43:09 -0400 - -e2fsprogs (1.42.2-2) unstable; urgency=low - - * Fixed e2fsck.conf's man page (Closes: #646963) - * Fixed 32-bit binary compatibility problem for the libext2fs shared - library introduced in 1.42.2 - * mke2fs will no longer fail if the /etc/mtab file is not present - - -- Theodore Y. Ts'o Mon, 09 Apr 2012 14:54:33 -0400 - -e2fsprogs (1.42.2-1) unstable; urgency=low - - * New upstream version - * Fixed various man pages (Closes: #665427) - * Speed up resize2fs for large file systems (Closes: #663237) - * Be less strict about the EXT4_EOFBLOCKS_FL flag (which will - eventually be going away in the ext4 file system format) - * Teach mke2fs to use direct I/O if the -D option is given - * Print errors returned by ext2fs_open2() and ext2fs_check_desc() so - we can more easily diagnose memory allocation failures caused by - insufficient memory and abort on memory allocation failures - * E2fsck can now write log files containing the details of the - problems that were found and fixed directly. - * E2fsck can now limit the number of messages issued and printed on - the console - * The dumpe2fs, debugfs, and tune2fs now use rbtree bitmaps, which - cause them to use much less memory for large file systems. - * E2fsck will now check for zero-length extents, since older kernels will - OOPS if they comes across one - * Fix e2fsck's discard behavior so it does not discard too many - blocks, and it will not use discard if the device advertises - that discard does not persistently zero data. Also, if e2fsck is - run in read-only mode, do not try to discard data. - * Fix mke2fs -S so it does not corrupt the first block group's - information. - * Add pointer for e2fsprogs-udeb to libcomerr2.shlibs (Closes: #665885) - - -- Theodore Y. Ts'o Tue, 27 Mar 2012 15:55:57 -0700 - -e2fsprogs (1.42.1-2) unstable; urgency=low - - * Fix the fact that dpkg-buildflags was being ignored due to a - bash'ism in debian/rules. - * Check the new /sys/class/power_supply/AC/online since - /proc/acpi/ac_adapter/... is deprecated and may not be present on - newer kernels. - - -- Theodore Y. Ts'o Mon, 20 Feb 2012 19:12:20 -0500 - -e2fsprogs (1.42.1-1) unstable; urgency=low - - * New upstream release - * dpkg-buildflags is now used if it is present. This allows Debian - Wheezy to build with security hardened build flags. (Closes: #654457) - * mke2fs and e2fsck now use much less memory for large file systems - * Fixed mke2fs -S so it can be usefully used as a last ditch recovery - command when for ext4 filesystems that have the uninit_bg feature enabled. - * The mke4fs argv[0] is now recognized by mke2fs. - * Fixed usage and help messages for mke2fs. - * Eliminated spurious bad block group checksum warnings when e2fsck - falls back to using the backup group descriptors. - * Debugfs's ncheck command is now much more useful when used to - diagnose badly corrupted file system. Added a new -c option. - * Fixed bug in e2image which could cause it to fail to set i_size - correctly if the last hole in the file is an exact multiple of a - megabyte. - * Fixed a bug with resize2fs where for 1k and 2k file systems, the - minimum file size used for resize2fs -M could be a block too small. - * Fixed the badblocks program to honor the -s flag when in read-only -t - mode. (Closes: #646629) - * Update Czech, Dutch, French, Polish, and Swedish translations - - -- Theodore Y. Ts'o Fri, 17 Feb 2012 15:07:13 -0500 - -e2fsprogs (1.42-1) unstable; urgency=low - - * New upstream release - * Fixed hurd FTBFS (Closes: #649689) - * Optimized e2fsck speed on large file systems when using [scratch_files] - * Fixed e2fsck handling of blocks claimed by multiple inodes in - bigalloc file systems - * Fixed e2fsck's calculation of max file size for non-extent based - files when huge_file is enabled - * Update Czech and Swedish translations - - -- Theodore Y. Ts'o Tue, 29 Nov 2011 15:50:07 -0500 - -e2fsprogs (1.42~WIP-2011-11-20-1) unstable; urgency=low - - * New upstream release - * Fix error checking so resize2fs works when using a 32-bit userspace - and a 64-bit kernel (Closes: #644989) - * e2fsck now returns additional status bits in its exit code if it - aborts early in the e2fsck run - * Fix potential stack overflow in debugfs - * Avoid an infinite loop in ext2fs_find_block_device() if there are - symlink loops in /dev caused by a buggy udev - * Fix test failures on big-endian systems - * Fix gcc -Wall complaints - * Add freefrag and e2freefrag commands to debugfs - * Add a read-only, metadata-only debugfs command called rdebugfs - * Improve first-class quota support - * Fix bigalloc support in e2freefrag - * Clean up mmp handling - * Fix a regression which caused mke2fs to not work correctly on files - > 2GB. (Closes: #647245) - * Fix a namespace leak in libext2fs (tdb_null) - - -- Theodore Y. Ts'o Sun, 20 Nov 2011 21:32:49 -0500 - -e2fsprogs (1.42~WIP-2011-10-16-1) unstable; urgency=low - - * New upstream release - * Fix online resizing with resize2fs (Closes: #644989) - * Fix bug which caused shrinking an empty file system file system to - its minimal size to sometimes fail. - * Don't look at the high 16 bits of i_file_acl if the 64-bit feature - is not enabled; this fixes a Hurd compatibility field since this is - used for the high 16 bits of i_mode on Hurd. - * Update Swedish, Polish, French, German, and Czech translations - - -- Theodore Y. Ts'o Sun, 16 Oct 2011 22:07:03 -0400 - -e2fsprogs (1.42~WIP-2011-10-09-1) unstable; urgency=low - - * New upstream release - * Fixed infinite loop in filefrag (Closes: #644792) - * Fixed various spelling and translation problems - * Fixed various man pages - * Fixed 64-bit block numbers in e2fsck's journal replay - * Fixed mipsel FTBFS that was fixed for mips - * Update Swedish, French, and Czech translations - * Convert to debian source 3.0 (quilt) format - - -- Theodore Y. Ts'o Sun, 09 Oct 2011 22:24:31 -0400 - -e2fsprogs (1.42~WIP-2011-10-05-2) unstable; urgency=low - - * Fix portability issues with non-Linux platforms and for the mips - platform, which does some really strange things vis-a-vis - 32/64-bit support without actually having a 64-bit version of - the architecture (Closes: #644502) - * Fix dependency problem which causes the newer version of libcom_err2 - to get pulled in when upgrading to e2fsprogs, which needs the new - interface exported by libcom_err2. (Closes: #644425, #644584) - - -- Theodore Y. Ts'o Fri, 07 Oct 2011 18:27:06 -0400 - -e2fsprogs (1.42~WIP-2011-10-05-1) unstable; urgency=low - - * Update translations: German (Closes: #520985) - * Fixed usage and error text for mke2fs -C option - * Updated e2fsprogs.pot file for translators - * Added support for internationalized error strings for libcom_err - * Fixed various portability nits that were causing FTBFS problems on - Hurd and FreeBSD - * Added "big" and "huge" types to mke2fs.conf, since they are needed - for very large file systems - * Fixed on-line resizing which had been broken in the 1.42 series - (Closes: #451388) - - -- Theodore Y. Ts'o Wed, 05 Oct 2011 02:10:53 -0400 - -e2fsprogs (1.42~WIP-2011-10-01-2) unstable; urgency=low - - * Update translations: French, German (Closes: #620659) - * Fix compilation problems in hermetic environments - * Fix on-line resizing in resize2fs (Closes: #451388) - * Add definitions for "big" and "huge" filesystems to /etc/mke2fs.conf - * Fix mke2fs when there are more than 2**32 block groups - - -- Theodore Y. Ts'o Tue, 04 Oct 2011 00:04:25 -0400 - -e2fsprogs (1.42~WIP-2011-10-01-1) unstable; urgency=low - - * New upstream release - * Avoid unnecessary reboots when checking the root fs in some special cases - * Fix an off-by-one error in filefrag -v's output - * Make filefrag display the number of contiguous (not physical) - extents (Closes: #631498) - * Clarify the mke2fs.conf.5 man page (Closes: #634883) - * Add a hurd-specific mke2fs.conf file (Closes: #629355) - * mke2fs will set s_max_mnt_count to -1 instead of 0 by default to - work around a bug in pre-3.0 kernels which caused a spurious - message to be printed when the file system was mounted (Closes: #632637) - * Fixed portability problems which was causing build failures on - non-Linux/non-x86 systems. - * Verify that the bad block inode looks sane before trusting it, to - avoid it causing more harm than good. - * Fixed the debian/rules file so that it build successfully if - DEB_BUILD_OPTIONS contains "nostrip" (Closes: #627535) - * Fixed some big-endian bugs in the MMP code - - -- Theodore Y. Ts'o Fri, 30 Sep 2011 22:33:41 -0400 - -e2fsprogs (1.42~WIP-2011-09-25-1) unstable; urgency=low - - * New upstream release - * Fix FTBFS on big-endian architectures (Closes: #641838) - * Add support for multiarch (Closes: #632169) - * Clarify and update debian/copyright file (Closes: #614662) - * Add support for Multi-Mount Protection (MMP) - * Allow tune2fs to remove the external journal if the device is not found - * Updated/clarified man pages (Closes: #642193) - * Fix a potential FTBFS caused by overly long compile lines (Closes: #629883) - - -- Theodore Y. Ts'o Sun, 25 Sep 2011 01:28:34 -0400 - -e2fsprogs (1.42~WIP-2011-09-16-1) unstable; urgency=low - - * New upstream release - * Added support for the integrated quota feature - * Improved 64-bit and bigalloc support - * Mke2fs and tune2fs now allows setting the stride and stripe width to zero - * Fixed tune2fs's mount options parsing (Closes: #641667) - * Fixed an ABI compatibility problem which broke the dump program - (Closes: #636418) - * Resize2fs has forward compatibility for a new on-line resize ioctl - for > 16TB file systems. - * Fixed a (very hard to hit) bug that could cause e2fsck to crash in - pass 1 or pass 2 - * Debugfs has a new 'blocks' command - * Mke2fs now gives a warning if the auto-detected block size exceeds - the page size - * Mke2fs and e2fsck now tries to use the punch hole command as a - "discard" when operating on normal files - * Mke2fs will not try to do any discard operations if -n is specified - on the command line - * Updated/clarified man pages (Closes: #639411) - * Fixed parsing of MNTOPT_ options for tune2fs and debugfs (Closes: #641667) - - -- Theodore Y. Ts'o Fri, 16 Sep 2011 10:33:59 -0400 - -e2fsprogs (1.42~WIP-2011-07-02-1) unstable; urgency=low - - * New upstream release - * Add support for 64-bit file systems - * Add support for bigalloc file systems - * Fixed an e2fsck bug which caused "*** FILE SYSTEM WAS MODIFIED ***" - without an explanation of what was fixed. - * E2fsck will no longer attempt to clone an extended attribute block - in pass1b handling if the file system does not support extended - attributes. - * E2fsck will be more careful accidentally asking the user to continue - if the file system is mounted, so that an escape sequence won't - cause a false positive. (Closes: #619859) - * E2fsck now uses less cpu time in pass 5 - * E2fsck will no longer segfault when a corrupted file system has a bad - extent, and removing it leads to a block needing to be deallocated. - * E2fsck now supports an extended "discard" option which will cause - e2fsck to attempt discard all unused blocks after a full check - * The e2image program now supports the qcow2 format, a more efficient - way of capturing file system metadata snapshots. - * Mke2fs now supports the [devices] stanza in mke2fs.conf. - * Mke2fs now supports the reserved_ratio relation in mke2fs.conf. - * Mke2fs now creates extent-mapped directories for the root and - lost+found directories. - * Mke2fs will skip zero'ing the journal if the extended option - "lazy_journal_init" is specified. - * Mke2fs will now create file systems that enable user namespace - extended attributes and with time- and mount count-based file - system checks disabled. - * Mke2fs will not set a stride or strip size of one block based on - block device attributes obtained from sysfs. - * Mke2fs now displays a progress report during the discard process. - * Mke2fs now handles extreme file system parameters correctly which - previously caused the inodes per group to drop below 8, leading - to a segfault. - * Debugfs's icheck will now correctly find inodes which use the - searched-for block as an extended attribute block. - * Debugfs now has a new "punch" command which remove blocks from the - middle of an inode. - * The badblocks program now correctly recovers from I/O errors when - direct I/O is being used. The badblocks command now also - supports a -B option which forces the use of buffered I/O, and - the -v option will provide a more detailed breakdown of read, - write, and failed comparison errors. - * Added e4defrag tool which uses the EXT4_IOC_MOVE_EXT ioctl. - * Added support for journals larger than 2GB. - * Support using both hard links and symlinks when installing e2fsprogs. - * Add overflow checking to tune2fs -i's fsck interval, which must fit - in a 32-bit field. - * Filefrag will report 0 extents correctly in verbose mode. - * Logsave's usage message has been fixed. (Closes: #619788) - * Update translations: French, Chinese, Germany, Indonesian, Swedish, - Vietnamese, Polish, Dutch, Czech. - * Updated/clarified man pages. - - -- Theodore Y. Ts'o Sat, 02 Jul 2011 22:38:57 -0400 - -e2fsprogs (1.41.14-1) experimental; urgency=low - - * New upstream release - * Fixed a FTBFS on big-endian architectures - * Fixed spurious warning in mke2fs - * resize2fs now works correctly on devices exactly 16TB - * resize2fs will no longer clear the resize_inode feature when the - number of reserved GDT blocks reaches 0. This allows a file - system with the flex_bg feature to be subsequently shrunk. - * e2fsck will no longer use the extended rec_len encoding for file - systems whose blocksize is less than 64k, to catch fs inconsistencies - which the kernel will complain about. - - -- Theodore Y. Ts'o Wed, 22 Dec 2010 18:39:19 -0500 - -e2fsprogs (1.41.13-1) unstable; urgency=low - - * New upstream release - * E2fsck can now do journal-only replays via "e2fsck -E journal_only" - * E2fsck now understands UUID= and LABEL= specifiers for the -j option - (Closes: #559315) - * E2fsck.conf now supports a new config option, which forces the - problem not to be fixed: problems/ Mon, 22 Nov 2010 16:00:50 -0400 - -e2fsprogs (1.41.12-2) unstable; urgency=high - - * Allow tune2fs to set uninit_bg without requiring an fsck - * Fix test in e2fsck to correctly check for EOFBLOCKS files - * Fix dependencies for libuuid and libblkid (Closes: #583551) - - -- Theodore Y. Ts'o Thu, 03 Jun 2010 09:30:36 -0400 - -e2fsprogs (1.41.12-1) unstable; urgency=low - - * New upstream release - * mke2fs now gives the correct error message if the external journal - is device is not found - * The resize2fs program will refuse to print the minimum size needed - for a file system if it is not clean. - * E2fsck now tests for extents that begin at physical block 0 and - rejects them as invalid. - * Fixed a bug in e2fsck which could cause it to crash when trying to - remove an invalid extent and the block bitmaps hadn't yet been loaded. - * E2fsck will now completely skip time-based checks if the system - clock looks insane or if the broken_system_clock option is set - in /etc/e2fsck.conf. (Closes: #549861, #540152) - * Fixed a bug in e2fsck which caused e2fsck to complain about i_blocks - with a 4T file created using posix_fallocate() - * E2fsck will now correctly mark a sparse journal as invalid and will - delete and recreate the journal to address the problem. - * Fixed e2fsck not to ask permission from the user to abort if it's - going to abort regardless of what the user is going to say... - * E2fsck can now continue even if it fails to recreate the resize inode - * E2fsck will now avoid removing directory entries for inodes found in - the unused region of the inode table until after it restarts the fs - check to avoid removing valid data. - * E2fsck will now longer try to set the block group checksums if it - is interrupted. - * Mke2fs will check both the physical and logical blocksizes of a - device to better support 4k sector drives. - * Mke2fs will accept the valid (but rarely useful) flex_bg size of 1 - * E2fsck will check for cases where the EOFBLOCKS_FL is set when it is - not needed, and offer to clear it. - * The com_err library will now only output a CR character if the - stderr is connected to a tty in raw mode. - * Update Czech, Chinese, Dutch, French, Germany, Indonesian, Polish, - and Vietnamese translations (from the Translation Project) - * Add an fsck.ext4 symlink in the e2fsprogs-udeb package (Closes: #571247) - * Fix makefile dependency so dpkg-buildpackage -j2 works (Closes: #563487) - - -- Theodore Y. Ts'o Mon, 17 May 2010 19:43:52 -0400 - -e2fsprogs (1.41.11-1) unstable; urgency=medium - - * New upstream release - * Add Heimdal function com_right_r() to libcom_err (Closes: #558910) - * Allow e2fsck to run even if the physical device has more than 2**32 blocks - * Debugfs's "logdump -b " now properly shows the allocation status - of the block . (Closes: #564084) - * Make e2fsck's "the filesystem is mounted" message is now more scary - to hopefully dissuade users from thinking, "surely that message - doesn't apply to *me*" :-( - * e2fsck -n will now always open the file system read-only. We now - disallow certain combination of options which previously were manual - exceptions; this is bad because it causes users to think they are - smarter than they really are. So "-n -c", "-n -l", "-n -L", and - "-n -D" are no longer supported. - * If the partition is badly aligned, have mke2fs just print a warning - message and continue. Previously mke2fs would ask to confirm, and - this broke distro installation scripts. - * Fix a bug in libext2fs caused the creation of very large journals - for ext4 to be _very_ slow. - * E2fsck now understands the EOFBLOCKS_FL flag which will be used in - 2.6.34 kernels to make e2fsck not complain about blocks deliberately - fallocated() beyond an inode's i_size. - * Fix a bug in e2fsck which could cause e2fsck -D to corrupt - non-indexed directories. (Closes: #572453) - * debian/rules: can be compiled statically with stack protector now. - (Closes: #573923) - * Update debian policy compliance to 3.8.4 - - -- Theodore Y. Ts'o Mon, 15 Mar 2010 00:16:35 -0400 - -e2fsprogs (1.41.10-1) unstable; urgency=low - - * New upstream release - * Fix resize2fs bug which causes it to access invalid memory - * Add libss support for libreadline.so.6 - * Fix e2fsck's check for extent-mapped directory with an incorrect file type - * Add new e2fsck.conf configuration option: - default/broken_system_clock for system with broken CMOS hardware - clocks. (Closes: #559776) - * Fix flex_bg inode table placement algorithm used by mke2fs for - certain specific file system sizes - * Add source lintian overrides for weak-library-dev-dependency - * Fix FTBFS problem caused by texi2html changing (again) its output - location. (Closes: #552934) - * Make e2fsck to avoid rehashing directories which can fit in a - single directory block. - * Fix how e2fsck fixes sparse directories which are extent-mapped. - * Fix some big-endian bugs in e2fsck and libext2fs - * Teach e2fsck to detect and fix sparse extent-mapped directories - * Fix filefrag from core dumping on file systems with 8k block sizes - * E2fsck was depending on i_size to be correct to detect and fix - certain directory problems before actually fixing the - directory's i_size. This caused certain rare corruptions to - require two runs of e2fsck to address. - * Update Czech, Indonesian, Polish and Vietnamese translations - (from the Translation Project) - * Fix e2fsck to find and correct duplicate directory entries in - non-indexed directories. - * Add support for calling BLKDISCARD to mke2fs. - * Enhance libext2fs so it works around bug in Linux version 2.6.19 - and earlier where the /proc/swaps file was missing the header on - the first line. - * Fix resize2fs so it works correctly on file systems with external journals - * Fix libss so that it does not seg fault when using a readline - library which does not supply a readline_shutdown() function. - * Add a pre-depends for util-linux-ng (Closes: #551795) - * Update and clarify various man pages. - * Corrected dumpe2fs's usage message - * Teach libext2fs to ignore the high 32 bits of the i_blocks field - when huge_file file system feature is set, but the inode does not - have the HUGE_FILE_FL flag set. - * Change e2fsck to accept superblock times to be fudged by up to 24 - hours by default. Most distributions have fixed their init scripts, - but apparently now they have buggy virtualization scripts. :-( I - give up, too many buggy user space set ups out there. (Closes: #557636) - * Fix e2fsck to correctly print > 32-bit i_blocks numbers in problem reports - * Improve e2fsck so it prints "Illegal indirect block" instead of - "Illegal block #-1" - * Teach mke2fs to get device topology information from blkid and use - it to populate the superblock stride and stripe sizes and warn if - the block device is misaligned - * Fix a file descriptor leak in debugfs when sourcing a command file - * Fix a file descriptor leak in fsck - * Round up the bitmap size to prevent spurious segmentation faults on - BSD platforms. - * Fix resize2fs to correctly calculate the minimum size needed, when - flex_bg is enabled, to prevent resize2fs -M from failing. - * Dumpe2fs now displays more information about the contents of the journal - * Make sure the libblkid1 and libblkid1-dbg packages have changelogs - * On low memory systems, e2fsck can print some very scary looking - error messages. Clean up them up to avoid user panic. (Closes: #509529) - * Enhance blkid to support .ko.gz files in the modules.dep parser - * Fix tune2fs -j for mounted exted-enabled file systems - * Use the feature name "extent" instead of "extents" in mke2fs.conf. - Both work, but the latter is what is documented in the man page. - (Closes: #540111) - - -- Theodore Y. Ts'o Sun, 07 Feb 2010 20:56:47 -0500 - -e2fsprogs (1.41.9-1) unstable; urgency=low - - * New upstream release - * Fix tune2fs -I to work correctly in the face of bad blocks and - filesystems formatted for RAID arrays, and ENOSPC errors - * Require the user to only answer one question instead of multiple - ones for multiple bad block group checksums, or when an inode - table needs to be moved. - * Fix e2fsck to handle moving inode tables in FLEX_BG filesystems more - gracefully by looking in the entire flex_bg for space, instead of - just in the block group; if that doesn't work, try looking for - space in the entire filesystem. - * Fix the filefrag code to avoid printing the extent header if it - needs to fallback to using the FIBMAP ioctl. - * Fix filefrag to print the correct number of extents for zero-length - files when using FIBMAP. (Closes: #540376) - * Add a filefrag -B option to make it easier to debug the FIBMAP - support. - * Allow e2fsprogs programs to allocate from uninitialized block groups. - * Add a new program, e2freefrag, which displays information about the - free space fragmentation in an ext2/3/4 filesystem. - * E2fsck will now print much fuller information when the last mount - time or last written time is in the future, since most people can't - seem to believe their distribution has buggy init scripts, or they - have a failed CMOS/RTS clock battery. - * Update French, Polish, Czech, and Swedish translation from the - Translation Project. - * Enhance debugfs's 'stat' command to print basic extent information - for extent-mapped inodes, and add a new command, 'dump_extents' - which prints detailed information about an inode's extent tree. - - -- Theodore Y. Ts'o Sun, 23 Aug 2009 10:08:52 -0400 - -e2fsprogs (1.41.8-2) unstable; urgency=low - - * Fix regression in ext2fs_extent_set_bmap() which caused e2fsck -fD - to fail on ext4 filesystems if the directory needs to shrink by more - than a block (Closes: #537510) - * Fixed filefrag for non-extent based files - * Fix use of apostrophe's in package descriptions - * Don't use dietlibc when building for mips and mipsel architectures - - -- Theodore Y. Ts'o Mon, 20 Jul 2009 09:38:21 -0400 - -e2fsprogs (1.41.8-1) unstable; urgency=low - - * New upstream release - * Fix resize2fs bugs when shrinking ext4 filesystems - * Update debian policy compliance to 3.8.2 - * Update package descriptions to mention ext3 and ext4 filesystems - (Closes: #535530) - * Update French, Polish, Czech, Indonesian, and Swedish translation - from the Translation Project. - * If the resize2fs operation fails, the user will be told to fix up - the filesystem using e2fsck -fy. - - -- Theodore Y. Ts'o Sat, 11 Jul 2009 17:26:16 -0400 - -e2fsprogs (1.41.7-2) unstable; urgency=low - - * Fix online resizing using resize2fs (Closes: #535452) - * Fix the filefrag program for files with more than 144 extents - * Update and clarify various man pages. - * Fix potential filesystem corruptions caused by using resize2fs to - shrink filesystems with extents enabled. - - -- Theodore Y. Ts'o Tue, 07 Jul 2009 23:21:46 -0400 - -e2fsprogs (1.41.7-1) unstable; urgency=low - - * New upstream release - * Fix memory leaks in e2fsprogs, including a very large memory leak - which can cause e2fsck to run out of memory when checking very large - filesystems using extents. - * Fix a bug in libext2fs which can cause e2fsck and resize2fs to write - uninitialized data into the portion of the inode beyond the first 128 - bytes when operating on extents; potentially corrupting filesystems. - * The logsave program will now filter out the ^A and ^B characters when - writing to the console. - * Update/clarify man pages (Closes: #531385, #523063) - * Fix filefrag program so it correctly checks for errors from the - fiemap ioctl. - * Change badblocks to allow block sizes larger than 4k. - * Fix libext2fs to properly initialize i_extra_size when creating the - journal and resize inodes. - * Resize2fs will now update the journal backup fields in the - superblock if the journal is moved; this avoids an unnecessary full - fsck after resizing the filesystem. - * Use the same encoding as the kernel for rec_len == 64k in 64k block - filesystems. - * Fix lsattr to exit with a non-zero status when it encounters errors. - * Enhance badblocks to print the currently tested block number when - interrupted with ^C. - * Fix debugfs from core dumping if the logdump command fails to open the - output file. - * Harden ext2fs_validate_entry() so that lsdel will not read beyond the - end of the block even if the directory block is corrupted. - * Update Chinese and Czech translation from the Translation Project. - - -- Theodore Y. Ts'o Mon, 29 Jun 2009 15:12:14 -0400 - -e2fsprogs (1.41.6-1) unstable; urgency=low - - * New upstream release - * Update and clarify man pages - * Fix a number of Lintian warnings, including to updating to debian - policy 3.8.1 - * Update config.guess and config.sub to the latest (2009-04-17) - version so that e2fsprogs will build on the avr32 platform - (Closes: #528330) - * Add an explicit error message if the /etc/mtab file is missing - when running e2fsck or resize2fs (Closes: #527859) - * Enhance e2fsck to handle the case where the primary block group - descriptors need fixing, and the backup superblock is corrupt. - (Closes: #516820) - * Add an "-a" option to debugfs's close_filesys command - * e2fsck will no longer abort a preen operation if an inode's - i_file_acl_hi field is non-zero. (Closes: #526524) - * The chattr program can now migrate inodes from using direct/indirect - blocks to extent trees. - * Speed up e2fsck if there are multiple block groups with inodes in - use in the unused portion of the block group's inode table. - * Update Chinese translation from the translation project - * Fix resize2fs so it won't corrupt ext4 filesystem when asked to - shrink a filesystem smaller than the minimum suggested size. - * Fix e2fsck regression which can corrupt ext4 filesystems when - replaying the journal. - * Add support to e2fsck for handling I/O errors while replaying the - journal - * Fix a bug in e2fsck which could cause it to crash if an inode has a - corrupt extent header, and the user declines to clear the inode. - * Fix blkid to prefer the /dev/mapper/ device names over the - private /dev/dm-N device names. - * Add support for the FIEMAP ioctl to the filefrag program - * Further speed up e2fsck by skipping journal checks if the filesystem - is mounted read-only and is marked as not needing journal replay. - * Add a build depends in the control file indicating that dietlibc - must be newer than version 0.30 (Closes: #506064) - - -- Theodore Y. Ts'o Fri, 30 May 2009 13:26:23 -0400 - -e2fsprogs (1.41.5-1) unstable; urgency=low - - * New upstream release - * E2fsck will now detect and fix inodes that have a non-zero - i_file_acl_high field on 32-bit filesystems. - * Update build-depends to indicate that dietlibc 0.30 doesn't work. - (Closes: #506064) - - -- Theodore Y. Ts'o Fri, 24 Apr 2009 08:52:47 -0400 - -e2fsprogs (1.41.4-3) unstable; urgency=low - - * Update/clarify man pages (Closes: #365619) - * Fix a problem where the 'device names' for pseudo-filesystems in - /proc/mounts could confuse the e2fsprogs into thinking that a - filesystem image stored in a regular file was mounted when it was not - * Remove whole-disk entries from the blkid cache when partitions are found - * Reduce the number of disk reads needed when the filesystem is clean - * Add Chinese (simplified) translation from the Translation Project - - -- Theodore Y. Ts'o Thu, 23 Apr 2009 01:35:22 -0400 - -e2fsprogs (1.41.4-2) unstable; urgency=low - - * Update the debian copyright files to point at the version-specific - GPL and LGPL files. - * Update the debhelper compat level to 7 - * Fix a number of filesystem corruption bugs in resize2fs when growing - or shrinking ext4 filesystems off-line (i.e., when the ext4 - filesystem is not mounted). - * Clarify tune2fs man page (Closes: #515693) - * Add homepage field to the debian control file (Closes: #506279) - * Fix Hurd compilation problem (Closes: #521602) - * Debugfs can now set i_file_acl_high via the set_inodes_field command - * Debugfs will now display a 64-bit file acl block - * Fix various gcc compilation warnings and other programming cleanups - * Make sure libuuid closes all file descriptors before starting the - uuidd daemon. - * Avoid running e2fsck unnecessarily after doing an online resize - * Mke2fs -S will now avoid trying to create the journal - * Update the Czech translation from the translation project. - * Fix support for external journals (which was broken in e2fsprogs 1.41.4) - * Fix a compatibility issue with libext2fs info page and makeinfo 4.12 - * Fix a segfault in debugfs when running stat without an open filesystem - * Teach the blkid library that starting in 2.6.29, ext4 can support - filesystems without journals. - * Add error check preventing the reserved_ratio argument to mke2fs and - tune2fs from being negative. (Closes: #517015) - * Add support for tracking the number kilobytes written to the - filesystem via the superblock field s_kbytes_written - - -- Theodore Y. Ts'o Sun, 19 Apr 2009 23:05:53 -0400 - -e2fsprogs (1.41.4-1) unstable; urgency=low - - * New upstream release - * Fix bug which could sometimes cause blkid to return an exit value of - zero for a non-existent device (Closes: #502541) - * Fix spelling mistake in Debian changelog (Closes: #502323) - * Fix blkid to deal with an ext3 filesystem with the test_fs flag - * Fix debugfs's ncheck output to suppress extra characters at the end - of the file name - * Tune2fs now updates the block group checksums after changing the - filesystem's UUID - * Speed up tune2fs's inode resizing code so it is no longer vastly - inefficient for moderate to large filesystems - * Fix dumpe2fs so it doesn't attempt to print the inline journal - information on filesystems with an external journal - * Update the Catalan translation - * Filter out linux-vdso.so lines when determining the library - dependencies while building the initial ramdisk (Closes: #503057) - * Fix e2fsck so an errant INODE_UNINIT flag set in a block group - doesn't cause e2fsck to abort. - * E2fsck now distinguishes between fragmented directories and - fragmented files in verbose mode statistics and in the fragcheck - report. - * Avoid double-counting non-contiguous extent-based inodes in the - verbose mode statistics. - * E2fsck now leaves slack space when repacking directories so that a - few new directory entries won't cause leaf nodes to become split - right away. - * E2fsck was previously not handling the case of a corrupted interior - node in the extent tree, and would crash in that case. It now will - handle this and related failures robustly. - * E2fsck problem descriptions involving the journal are no longer - referred to as "ext3" problems, since ext4 filesystems also have - journals. - * Fix a long-standing bug in e2fsck which would cause it to crash when - replying journals for filesystems with block sizes greater than 8k. - * Fix a regression in debugfs's logdump command so it works for - filesystems with 32-bit block numbers. This was accidentally broken - when the header files were changed to support the 64-bit block numbers. - * Fix resize2fs for ext4 filesystems. Some blocks that that need moving - when shrinking filesystems with uninit_bg feature would not be - moved. In addition, blocks and inode table blocks were not being - correctly freed when shrinking filesystems with the flex_bg feable, - which caused resize2fs -M to fail. Finally, when blocks are moved, - make sure the uninitialized flag in extents is preserved. - * Add mkfs.ext4 symlink to the e2fsprogs-udeb package (Closes: #511207) - * Resize2fs now reserves some extra block when calculating the minimum - size to shrink the filesystem in case some extent allocation trees - * Add a "set -e" to uuid-runtime's prerm script to make Lintian happy - * The blkid library will now recognize btrfs filesystems and swap - devices currently used by user-level software suspend. - * tune2fs will not allow changing the inode size for filesystems that - have the flex_bg feature enabled, since the code currently assumes - the each block group's portion inode table is located in its own - block group. - * Fix tune2fs -I so it won't corrupt ext3/ext4 filesystem configured - for RAID storage devices. - * Mke2fs now understands a -U option which allows the UUID to be - specified for the new filesystem. - * Mke2fs will now treat devices with exactly 16TB as if they have 16TB - minus one block, since many users expect ext4 to support 16TB - devices, and the true maximum size is 16TB-1. - * E2fsck will now flag filesystems that have an insane s_first_ino - field in their superblock. - - -- Theodore Y. Ts'o Tue, 27 Jan 2009 11:50:49 -0500 - -e2fsprogs (1.41.3-1) unstable; urgency=low - - * New upstream release - * Fix e2fsck so it prints the correct inode number for uinit_bg - related problems. - * E2fsck will offer to clear the test_fs flag if the ext4 filesystem - is available. - * Fix a file descriptor leak in libblkid - * Avoid a potential infinite loop in e2fsck when there are disk I/O - errors while trying to close a filesystem. - * Fix a potential infinite loop in resize2fs when a bogus new size of - 0 blocks is specified on the command line. - * Add an early check to see if a device is read-only to avoid lots of - confusing error messages. - * Fix debugfs's ncheck command so it prints all of the names of - hardlinks in the same directories. - * Fix a bug in libblkid so it correctly detects whether the ext4 and - ext4dev filesystems are available, so that the ext4dev->ext4 - fallback code works correctly. - - -- Theodore Y. Ts'o Sun, 12 Oct 2008 22:45:34 -0400 - -e2fsprogs (1.41.2-1) unstable; urgency=low - - * New upstream release - * Fix e2fsck's automatic blocksize detection. This fixes a regression - added in e2fsprogs 1.40.7 where e2fsck's -b option would not - work if a blocksize wasn't also specified via the -B option. - * Fix a potential file descriptor leak in libcom_err if the - application exec's another program. - * Fixed badblocks output for "badblocks -sw" - * debugfs: Fix ncheck to print all pathnames for all of the specified inodes - * Use dietlibc when possible for building e2fsck.static, to reduce the - size of the static binary. - * debugfs: Add the ability to specify the hash seed and to specify the - hash algorithm by name to the "hash" command. - * Add documentation for the file I/O functions to libext2fs.texinfo. - (Closes: #484877) - * Fix a bug in e2fsck where if a translation file is being used and - e2fsck needs to print problem report with a custom question (such as - "Run journal anyway?"), the PO file's header would get spewed onto - the terminal. - * Update Swedish, Vietnamese, Dutch, Indonesian, German, Czech translations - * Fixed spelling mistakes in man pages (Closes: #498100, #498101, - #498102, #498103) - - -- Theodore Y. Ts'o Thu, 02 Oct 2008 08:54:16 -0400 - -e2fsprogs (1.41.1-3) unstable; urgency=low - - * badblocks -v will now display the time and percentage complete - (Closes: #429739) - * Reordered debian/rules when building udebs to avoid a Lintian warning - * Fixed dependencies fields in the udeb packages (Closes: #497619) - * Avoid linking various programs with unneeded libraries - * Fixed a typo'ed bold font specifier in mke2fs's man page - * Fixed the pkg-config files so the include directory needed by the - various libraries is included, and to use Requires.private to - avoid unnecessary linking of dynamic libraries. - * Add more historical information to the debian/*.symbol files - - -- Theodore Y. Ts'o Fri, 05 Sep 2008 11:11:03 -0400 - -e2fsprogs (1.41.1-2) unstable; urgency=low - - * Make sure ext4_swab64() is defined on all platforms (Closes: #497515) - * Badlocks: Use O_LARGEFILE so it will run on files greater than 2GB - - -- Theodore Y. Ts'o Tue, 02 Sep 2008 09:53:46 -0400 - -e2fsprogs (1.41.1-1) unstable; urgency=low - - * New upstream release - * mke2fs and tune2fs now use half-md4 as the default hash algorithm - In addition the default hash algorithm can be via mke2fs.conf for - mke2fs, and via a command-line option for tune2fs. - * Add support for on-line resizing of ext4 filesystems with the - flex_bg filesystem feature. - * e2fsck now creates the journal in the middle of the filesystem, - which can speed up fsync-heavy workloads. - * Make the blkid library more efficient for devicemapper devices, - mostly by no longer using the libdevmapper library. - * Fix various namespace leakages by the libblkid, libe2p and libext2fs - libraries. - * Fix support for empty directories in 64k blocksize filesystems. - * Add supported_features command to debugfs - * Improve libblkid detection of JFS and HPFS filesystems - * The test I/O manager is now compiled in by default, but to avoid its - overhead, it is only enabled when the TEST_IO_FLAGS or TEST_IO_BLOCK - environment variables are set. - * Fix filefrag's ideal extent calculation (Closes: #458306) - * Fix postinstall scripts when the user/group is in LDAP (Closes: #497010) - * Add Indonesian and update French, Polish, Dutch, German, Swedish, - Czech, and Vietnamese Translations. (Closes: #313697, #401092) - * Update/clarified man pages - * Add dpkg-gensymbols support to track ABI changes to the libraries - * Add lintian overrides for uuid-runtime and libuuid1 - * Remove (no longer needed) lintian overrides for e2fsck-static - * Add debian/watch file - - -- Theodore Y. Ts'o Mon, 01 Sep 2008 11:30:21 -0400 - -e2fsprogs (1.41.0-4) unstable; urgency=low - - * mke2fs will issue a warning if mke2fs.conf hasn't been updated and - the user tries to create an ext3, ext4, or ext4dev filesystem, - since it depends on the mke2fs.conf file in order to create the - filesystem properly with the appropriate features. - * Fix the maximum journal size message in mke2fs and tune2fs to be - consistent/correct. (Closes: #491620) - * Add detection for hfsx filesystem and add label and uuid detection - for hfs, hfsplus, and hfsx filesystems in libblkid. - * Fix cosmetic issue in resize2fs when a progress bar doesn't finish - with a newline for pass 4 (when the inode references are updated). - * Teach resize2fs to move blocks when extents are present (when - shrinking a filesystem and/or if resize_inode is not present). - * Teach resize2fs to work correctly with the uninit_bg when blocks - need to be moved or allocated. - * Fix and optimize extent manipulation in libext2fs for resize2fs. - * Fix "dumpe2fs -i" and "debugfs -i". (Closes: #495830) - * Fix resize2fs incorrectly managing directory in-use counts when - shrinking filesystems and directory inodes need to be moved. - * Fix spurious e2fsck complaints with i_size with extents and large - files and preallocated blocks. - * Make sure the creation timestamp is set by mke2fs and by new inodes - created by the libext2fs in general. - * Fix ind/dind/tind statistics when extents are present, and add - extent tree depth statistics. - * Add a fragmentation report extended option to e2fsck. - * Fix blkid cache validation and some possible blkid crashes - (Closes: #493216) - * Teach debugfs's htree command to work with extent-based directories. - * Improve the error message for "tune2fs -I". - * Fix miscellaneous strings and usage messages pointed out by the - translators. (Thanks, translators!) - * Enforce that mke2fs won't allow features for revision 0 filesystems. - * Optimize inode table allocation in mke2fs for flex_bg filesystems. - * Update/clarified man pages - * Fix minor typo in uuid-runtime's debian package description - * Wrap debian/copyright files to avoid "line too long" lintian warnings - - -- Theodore Y. Ts'o Sat, 23 Aug 2008 08:56:47 -0400 - -e2fsprogs (1.41.0-3) unstable; urgency=medium - - * Fix mips-specific FTBFS problem in debian/rules file - * Synchronize section and priority levels in control file with the - FTP masters' override file. - - -- Theodore Y. Ts'o Tue, 15 Jul 2008 11:38:59 -0400 - -e2fsprogs (1.41.0-2) unstable; urgency=medium - - * Don't try to check the group descriptor checksum if the GDT_CSUM - feature is not present. (Closes: #490637) - * Add a new blkid -L option which pretty-prints the currently - available block devices. (Closes: #490527) - - -- Theodore Y. Ts'o Sun, 13 Jul 2008 19:18:08 -0400 - -e2fsprogs (1.41.0-1) unstable; urgency=medium - - * New upstream version - * Make e2fsck detect corrupted block group descriptors that would - cause it to relocate inode tables, causing more damage to the - filesystem, and make it try the backup superblock/block group - descriptors first. - * Fix resize2fs to clean up the resize_inode if all of the reserved - gdt blocks are consumed during an off-line resize. - * Enable huge_file, dir_nlink, extra_isize features for mke2fs and tune2fs. - * Enable huge_file, dir_nlink, extra_isize, and uninit_bg by default - in mke2fs.conf. - * Fix badblocks terminology in man page and program output. - (Closes: #440983, #440981) - * Clarify stripe-width and stride-size in mke2fs man page. (Closes: #487849) - * mke2fs: Dumb down filesystems for GNU Hurd (Closes: #471977) - * Add bash-static to the list of shells recommended for e2fsck-static - (Closes: #490003) - * mke2fs: Fix flex_bg metadata default layout to avoid a hole between - the bitmaps and inode tables. - - -- Theodore Y. Ts'o Thu, 10 Jul 2008 17:25:32 -0400 - -e2fsprogs (1.41~WIP-2008-07-07-1) experimental; urgency=low - - * New upstream version (pre-release for e2sprogs 1.41) - * Update to indicate compliance with debian policy version 3.8.0.0. - * Fix e2fsck to not truncate valid extent files that are larger than - what is supported by indirect files. - * Add -dbg packages which contain the debugging information. - * mke2fs: Print a better error message when a device is too big. - (Closes: #488663) - * Create external journal devices with a default blocksize of 4k - * Fix bug in badblocks which caused crash when lots of -t patterns are - given. (Closes: #487298) - * Fix blkid handling of stale entries. (Closes: #487758, #487783) - * Update Vietnamese, Polish, French, Spanish, German, Catalan, - Dutch, Czech translations from the translation project. - * Fix FTBFS problem on MIPS (Closes: #487675) - * Fix bug in libuuid1.postinst which would cause it to blow up if - there were spaces around the equals sign in /etc/adduser.conf. - (Closes: #487443) - * Update/clarified man pages. (Closes: #393313) - - -- Theodore Y. Ts'o Mon, 07 Jul 2008 16:30:43 -0400 - -e2fsprogs (1.41~WIP-2008-06-17-1) experimental; urgency=low - - * New upstream version (pre-release for e2fsprogs 1.41) - * New options to badblocks allow it to limit how quickly it reads - from disk (for background scrubbing) and abort after a finding - giving a number of errors. - * Add support for ext4 filesystem features. (Closes: #388452, #425477) - * Tune2fs can migrate a filesystem from using 128 byte inodes to - larger inode sizes so the user can take full advantage of ext4) - * E2fsck and mke2fs can optionally record an undo log which can be - replayed by the e2undo program. - * E2fsck will display a less cryptic message when the last check field - in the superblock is in the future. (Closes: #446005) - * Improve blkid probes for LVM volumes and swap partitions - * Mke2fs has a much more sophisticated system for controlling the - parameters of newly created filesystems. The -t option now is used - to specify the filesystem type. See the mke2fs and mke2fs.conf man - pages for more details. - * Resize2fs will now print the minimum needed filesystem size if given - the -P option, and will resize the filesystem to the smallest possible - size if given the -M option. - * E2fsck now performs more extensive and careful checks of extended - attributes stored in the inode. - * Mke2fs will always make sure that lost+found always has at least 2 - blocks, even for filesystems with very large blocksizes (i.e., 64kb). - * The debugfs "ls" command now supports the -p option, which causes - filenames to be printed surrounded by double quotes. - * Fix a potential off-by-one buffer overflow in e2image - * The chattr program will now return a non-zero exit code in case of - failures. - * This version of e2fsprogs removes support for legacy big-endian - filesystems and for MASIX filesystems. - * Add I/O statistics reporting to e2fsck. - - -- Theodore Y. Ts'o Tue, 17 Jun 2008 23:57:08 -0400 - -e2fsprogs (1.40.11-1) unstable; urgency=low - - * Change mke2fs, tune2fs and resize2fs to use floating point precision - when calculating the number of reserved blocks. (Closes: #452639) - * Update Spanish and Catalan translations. - * Fix ext2fs_swap{16,32,64} for external applications. (Closes: #484879) - * Improve uuid-runtime package description. (Closes: #483962) - * Improve e2fsprogs package description. (Closes: #483023) - * Add support for detecting ZFS volumes to libblkid. - * Clarify debugfs man page. (Closes: #486463) - - -- Theodore Y. Ts'o Tue, 17 Jun 2008 21:59:21 -0400 - -e2fsprogs (1.40.10-1) unstable; urgency=low - - * Fix a very rare potential data corruption bug in e2fsck's journal - replay. - * Updated German, Dutch, Swedish, and Vietnamese translations. - * Force blkid to revalidate a device if its mtime is newer than the - last validation time in the cache. - - -- Theodore Y. Ts'o Wed, 21 May 2008 13:35:12 -0400 - -e2fsprogs (1.40.9-1) unstable; urgency=low - - * Fix fsck so that if multiple filesystems are being checked in - parallel, the progress bar for subsequent filesystems will be - correctly displayed. (Closes: #432865) - * Fix fsck -Cn for n!=0 for better Ubuntu boot-time support - * debugfs: Don't bother using a pager of stdout is not a tty - * Fix tune2fs and debugfs to correctly parse time strings during - daylight savings time. (Closes: #471882) - * Teach fsck to treat ext4 and ext4 filesystems as ext* filesystems - * Logsave will now propagate SIGINT and SIGTERM signals to its child - process. - * Mke2fs will not allow the illogical combination of the resize_inode - and meta_bg filesystem features. - * Use UID/GID ranges from adduser.conf if present, even though we - don't use adduser to add users/groups. (Closes: #473179) - * Updated German, Czech, Dutch, French, Polish, Swedish, and - Vietnamese translations. - * Update/clarified the mke2fs man page - - -- Theodore Y. Ts'o Sun, 27 Apr 2008 00:35:20 -0400 - -e2fsprogs (1.40.8-2) unstable; urgency=low - - * One more big-endian swap fix needed for resize2fs to work correctly - with in-inode extended attributes. - * Fix minor security issues identified in uuidd. - * Remove e2fsprogs preinstall script which contained stuff not needed - in well over two stable releases. - - -- Theodore Y. Ts'o Fri, 14 Mar 2008 14:25:54 -0400 - -e2fsprogs (1.40.8-1) unstable; urgency=low - - * Fix e2image -I so it works on image files which are larger than 2GB. - * Fix e2fsck's handling of directory inodes with a corrupt size field. - * Fully fix a resize2fs bug where extended attributes in large inodes - could get dropped on big-endian systems. - * Update Czech, Dutch, Polish, Swedish, and Vietnamese translations. - * Significantly updated German translation! Thanks to Philipp Thomas - from Novell for stepping up to be our new German translation - maintainer! (Closes: #302512, #370247, #401092, #412882) - * Fixed mke2fs man page to document new default inode size. - - -- Theodore Y. Ts'o Thu, 13 Mar 2008 20:00:09 -0400 - -e2fsprogs (1.40.7-1) unstable; urgency=low - - * New upstream release - * tune2fs no longer will remove the sparse_super feature, as it is dangerous - * Update/clarified various man pages - * Fix bug where large nodes were not getting fully copied when - shrinking a filesystem using resize2fs. - * Allow mke2fs and tune2fs to manipulate the large_file feature flag - * Suppress fsck's warning message about an old-style fstab if the - fstab file is empty. (Closes: #468176) - * E2fsck will no longer clear the large_files feature flag - automatically when there are no more large files in the system. - * Fix blkid code to avoid segfaulting when a device mapper volume - disappears out from under it. - * Enhance e2fsck's reporting of unsupported filesystem features - * Fix dumpe2fs command syntax for explicit superblock/blocksize parameters - * Teach tune2fs to clear the resize_inode feature flag - * Fix libuuid1 postinstall script to explicitly pass 100 to UID_MIN - and GID_MIN, to make it clear we are not trying to allocate an - uid/gid in the globally reserved range. (Closes: #466929) - * Fix memory leak in ext2fs_alloc_block() - * Teach blkid to recognize LVM2 physical volumes - * Add support to dumpe2fs, mke2fs, and tune2fs for specifying and - printing the RAID stride and stripe width. - * Add support for new superblock fields to debugfs's set_super_value command - * Teach debugfs to print "mostly-printable" xattr strings, such as is - used by SELinux. - * Add support in fsck to ignore mounted filesystems when given the -M option - * Fix uuidd so it creates the pid file with the correct pid number - * Update Czech, Dutch, Polish, Swedish, and Vietnamese translations - from the Translation Project. - - -- Theodore Y. Ts'o Thu, 28 Feb 2008 22:27:39 -0500 - -e2fsprogs (1.40.6-1) unstable; urgency=low - - * New upstream release - * Add support for returning labels for UDF filesystems in the blkid - library. - * Fix bug in the blkid library where cached filesystems was not being - flushed when opening USB devices returned the error ENOMEDIUM. - (Closes: #463787) - * Add logic to the blkid library to automatically choose whether a - filesystem should be mounted as ext4 or ext4dev, as appropriate. - * Allow tune2fs to set and clear the test_fs flag on ext4 filesystems. - * Document the BLKID_FILE environment variable in the libblkid man page - * Update Vietnamese and Czech translations from the translation project - * Fix dependency problem caused by dpkg 1.14.16 (Closes: #436058) - * Use thread local storage to fix a theoretical race condition if two - threads try to format an unknown error code at the same time in - the com_err library. - - -- Theodore Y. Ts'o Sun, 10 Feb 2008 00:06:02 -0500 - -e2fsprogs (1.40.5-2) unstable; urgency=low - - * Fix debian/control and debian/rules so that they work correctly - after a change in dpkg-gencontrol's behavior after version 1.14.16 - of dpkg. This fixes bad version dependencies for comerr-dev, - uuid-dev and ss-dev. Thanks to Don Armstrong for the explanation and - Margarity Manterola for a proposed patch. (Closes: #463058) - - -- Theodore Y. Ts'o Wed, 30 Jan 2008 07:17:27 -0500 - -e2fsprogs (1.40.5-1) unstable; urgency=low - - * New upstream release. - * Mke2fs will now create new filesystems with 256 byte inodes and the - ext_attr feature flag by default. This allows for much better - future compatibility with ext4 and speeds up extended attributes - even on ext3 filesystems. - * Teach mke2fs and tune2fs to set a "test_fs" flag, which indicates - that it is ok to use the filesystem on in-development kernel - code (i.e., ext4dev) - * E2fsck now optimizes non-htree directories by sorting them by inode - number. - * Add support for detecting HFS+ and ext4/ext4dev filesystems in blkid - * Fix blkid's ntfs UUID handling so it is compatible with vol_id - * Avoid a floating point exception when blkid tries to probe a corrupt - reiserfs filesystem. - * Fix potential overflow problem in e2image if the device name is - too long. - * Cause e2image to exit immediately with an error message on a disk - full situation. - * Fix a minor typos in the resize2fs and uuidd manpages. - * E2fsck will no longer backup superblocks when the kernel makes - certain "safe" feature set changes behind the user's back. - * Fix debugfs's lsdel command so it works on large files - * Allow a user to undelete an inode with linking to a destination - directory. - * Update Swedish translation file from the Translation Project - * The libuuid1 and uuid-runtime packages requires passwd package, so - declare it as a dependency. (Closes: #459403) - * Fix a FTBFS problem on x86_64 caused by the fact that dietlibc - doesn't provide llseek on the x86_64. (Closes: #459614) - * Don't use dietlibc on platforms that don't support it (Closes: #459475) - - -- Theodore Y. Ts'o Sun, 27 Jan 2008 16:57:34 -0500 - -e2fsprogs (1.40.4-1) unstable; urgency=low - - * Make sure that programs like tune2fs, when modifying a mounted - filesystem do not write the backup superblocks with the - NEEDS_RECOVERY flag, to avoid e2fsck from needlessly forcing a - full fsck because it thinks the feature flags need to be backed up - from the master to the backup superblocks. (Closes: #454926) - * Improve time-based UUID generation to guarantee uniqueness even when - UUID's are being generated at very high rates on SMP systems. To - do this we use an optional setuid helper daemon (uuidd) which is - started by libuuid when it is needed. The uuidd daemon is - packaged in the (new) uuid-runtime package, which now also includes - the uuidgen program (which had been previously been included as - part of the e2fsprogs package). - * Fix fsck to only treat '#' characters at the beginning of /etc/fstab - lines as starting a comment. This avoids spurious warnings printed - for filesystems such as fuse that often use '#' as part of the - filesystem specifier (i.e., wdfs#https://dav.hoster.com/foo). - * Enhance the blkid program to pretty-print control and meta - characters to avoid garbage filesystem labels from screwing up the - user's terminal - * Fix potential integer overflows passed to malloc() in resize2fs - * Update Dutch, Polish, and Vietnamese translations from the - Translation Project. Remove the Rwandan translation upon advice - of the Translation Project. - * Fix cross-compilation support for non-Linux architectures - (Closes: #451172, #437720) - * Clarified and improved man pages (Closes: #444883, #441872) - * Fix potential divide by zero error when libblkid tried probing an - invalid FAT filesystem. - * Make error_message() in libcom_err DTRT when when a 64-bit sign-extended - error code is passed to it. - * Build the e2fsck-static package so that e2fsck.static will not use - TLS and hence will run correctly on back-level Debian systems - using a 2.4 Linux kernel. (Closes: #458017) - - -- Theodore Y. Ts'o Mon, 31 Dec 2007 22:40:42 -0500 - -e2fsprogs (1.40.3-1) unstable; urgency=medium - - * New upstream release - * libext2fs: Add checks to prevent integer overflows passed to - malloc(). Fixes security issue related to Xen's pygrub: CVE-2007-5497 - * libss: Fix parallel build failure - * e2fsprogs: fix blkid whole-disk scanning heuristics - * libext2fs: Fix a corner case bug in ext2fs_unlink - * fix check_mntent_file() to pass mode for open(O_CREAT) - * Fix errors in test_ss.c so it can be an example application and test case - * e2image in raw-mode appends an extra byte to image-file - * Fix typo in the summary section of the blkid man page - * mke2fs: Change usage message to use -E instead -R, which is deprecated - * libblkid: recognize squashfs filesystems on BE systems. - * libblkid: detect squashfs - * e2fsck: backup superblocks if key constants have changed - * e2fsck: update the backup superblocks if the feature bitmasks are changed - * ext2fs_dblist_dir_iterate: Fix ABORT propagation logic - * libblkid: Add more magic numbers that might mean there is a FAT filesystem - * e2fsck: Don't mark the filesystem invalid because of time errors - * Work around lame Ubuntu init scripts / installer bugs - * fsck: Ignore /etc/fstab entries for bind mounts - * e2fsck: If the superblock is corrupt, automatically retry with the backup sb - * Don't crash if s_inode_size is zero - * Use sscanf instead of atoi when parsing e2fsck options - * Add Catalan translation and update Spanish, French, and Dutch - translations from the Translation Project. (Closes: #411562) - * Fix typo and clarify the uuidgen man page - * Make sure $prefix/etc is created before installing mke2fs.conf - * e2fsck: Allow i_size to be rounded up to the size of a VM page - * Fix a bug in ext2fs_initialize() which causes mke2fs to fail while - allocating inode tables for some relatively rare odd disk sizes. - * Fix big-endian byte-swapping bug in ext2fs_swap_inode_full() - - -- Theodore Y. Ts'o Wed, 05 Dec 2007 20:04:28 -0500 - -e2fsprogs (1.40.2-1) unstable; urgency=low - - * New upstream release - * e2fsck: Fix salvage_directory when the last entry's rec_len is too big - * Update Turkish, Polish, Dutch, and Vietnamese PO files from the - Translation Project - * Fix a bug which would cause e2fsck segfault on very badly damaged - filesystems - * Update tune2fs man page to include more discussion of reserved - blocks (Addresses Ubuntu Launchpad bug #47817) - - -- Theodore Y. Ts'o Thu, 12 Jul 2007 22:18:51 -0400 - -e2fsprogs (1.40.1-1) unstable; urgency=low - - * New upstream release - * Clarify mk_cmds' error reporting - * e2fsck: Detect recursive loops in @-expansions - * Compile the default mke2fs.conf into mke2fs program - * Fix bogus strip permission errors when building under Debian - * Update Vietnamese, French, and Dutch PO files from the Translation Project - * Fix bug which could cause libblkid to loop forever (Closes: #432052) - - -- Theodore Y. Ts'o Sun, 8 Jul 2007 20:25:08 -0400 - -e2fsprogs (1.40-1) unstable; urgency=low - - * New upstream release - * Remove RFC-4122 logic from Debian build rules (Closes: #407107) - * Fix com_err.texinfo so that the install-info command will remove - the com_err info file from the /usr/share/info/dir file when the - comerr-dev package is removed and purged (Closes: #401711) - * Fix divide-by-zero error in blkid's NTFS proving logic - * Add new blkid -g option which causes the blkid cache to be garbage - collected - * libblkid: Fix bug which could cause bid_type to be corrupted - * mke2fs: Add sanity check to make sure inode_size * num_inodes isn't too big - * Fix additional Coverity bugs in mke2fs and e2fsck - * Improve sanity check in e2fsck's algorithm for finding a backup superblock - * Fix e2fsck get_size logic so that it will work with the Linux floppy - driver (Closes: #410569) - * Fix error checking of badblock's last-block and start-block arguments - (Closes: #416477) - * e2fsck: avoid writing overwriting the backup superblocks until the - master superblock is confirmed to be sane - * Make the blkid library more paranoid about concluding a partition - contains a NTFS filesystem. (Addresses Launchpad Bug: #110138) - * Enhance e2fsck so it will recreate the ext3 journal if the original - journal inode was cleared to due being corrupt - * Fix e2fsck so that if the backup journal information is used, that - this is written out to the journal inode - * Make e2fsck check all of the blocks in the journal inode for validity - * blkid: Add support for detecting LUKS encrypted partitions - * e2fsck: added sanity check for xattr validation - * Fix byte-swapping bug for filesystems with large inodes - * Clarify the copyright licenses used by the various libraries in COPYING - * Remove RFC-4122 from upstream (Closes: #407107) - * Fix info-dir line which prevented install-info from removing - com_err entry from from /usr/share/info/dir when the comerr-dev - package is purged (Closes: #401711) - - -- Theodore Y. Ts'o Sun, 29 Jun 2007 22:40:27 -0400 - -e2fsprogs (1.39+1.40-WIP-2007.04.07+dfsg-2) unstable; urgency=low - - * Allow the journal to up to 10,240,000 blocks - * Fix blkid library to recognize MD 0.90 superblock on little endian - systems - * Fix blkid library to report the correct UUID from MD superblocks - * Fix signed vs. unsigned problem in debugfs' setb/testb/freeb commands - * Enhance debugfs's date parser so it accepts integer values - * Fix e2fsck's pass1c accounting so it doesn't terminate too early - if a file with multiply claimed blocks is hard linked. or not at - all if the root directory contains shared blocks - * Enhance debugfs so it can modify the block group descriptors using - the command set_block_group_descriptor - * Improve e2fsck's reporting of I/O errors so it's clearer what it - was trying to do when an error happens - * Fix a bug in how e2fsprogs byte swaps inodes containing fast - symlinks that have extended attributes. - * Fix potential file descriptor leak in ext2fs_get_device_size() - * Fix minor typo in e2fsck.conf.5 man page - * Cleanup udeb dependency (Closes: #419605) - * Rebuilding with libdevmapper 1.02.1 (Closes: #421022 and #421668) - * Add dependency on comerr-dev to ss-dev (Closes: #408352) - * Make mke2fs use sane defaults when /etc/mke2fs.conf doesn't exist - * Fix mke2fs and debugfs to support large (> 16 bit) uid's and gid's - * Fix spelling typo in debian package description for libblkid1 - (Closes: #399155) - * Remove -WIP language from the debian copyright file. (Closes: #415560) - * Remove check in e2fsck which required EA's in inodes to be sorted - (We should get this back-ported to the stable branch since - filesystems with large inodes will have EA's erroneously - removed, which will for example toast an SELinux system.) - - -- Theodore Y. Ts'o Sun, 6 May 2007 19:44:35 -0400 - -e2fsprogs (1.39+1.40-WIP-2007.04.07+dfsg-1) unstable; urgency=low - - * Add libreadline.so.5 support to libss. - * Improve badblocks -n/-w exclusive usage message. - * Add debugging code (via the COMERR_DEBUG env. variable) to the - com_err library - * Fix dump_unused segfault in debugfs when a filesystem is not open - * Add versioned dependency in Debian's shlibs for libblkid. - (Closes: #413208) - * Fix memory leak in blkid library. (Closes: #413661) - * Let the debugfs lcd command work even if a filesystem is not open - * Fix large number of miscellaneous Coverity bugs. (None were - security-security). - * Fix e2fsck to clear i_size for special devices with a bogus i_blocks - field on the first pass. - * Fix e2fsck to set the file type of the '..' entry when connecting - a directory to lost+found. - * Enhance e2fsck to recover directories whose modes field were - corrupted to look like special files. - * Allow debugfs to dump > 2GB files. (Closes: #412614) - * Misc. man page cleanups. (Closes: #379695) - * Fix resize2fs parsing of size parameter (Closes: #408298) - * Fix infinite loop in e2fsck on really big filesystems (Closes: #411838) - * Fix memory leak in ext2fs_write_new_inode() - * Add support for using a scratch files directory to reduce e2fsck's - memory utilization on really big filesystems. - - -- Theodore Y. Ts'o Sat, 7 Apr 2007 10:38:40 -0400 - -e2fsprogs (1.39+1.40-WIP-2006.11.14+dfsg-1) unstable; urgency=low - - * Fix spurious error from e2fsck -c and mke2fs -c caused by the fix - to #386475. - * Add dirhash signed/unsigned hint to superblock. (Closes: #389772) - * Allow unix_io offsets greater than 2 gigabytes - * Make sure mk_cmds and compile_et work even in strange locales - * Fix type-punning bug which caused dumpe2fs to crash on the Arm platform - (Closes: #397044) - * Add explanatory message to badblocks that -n and -w are mutually - exclusive. (Closes: #371869) - * New +dfsg source tarball that has useful documentation REALLY - removed to satisfy the DFSG License Nazi's. (Closes: #390664) - - -- Theodore Y. Ts'o Tue, 14 Nov 2006 23:45:34 -0500 - -e2fsprogs (1.39+1.40-WIP-2006.10.02+dfsg-2) unstable; urgency=low - - * Add failsafes against duplicate UUID generation caused by threads - * Fix potential e2fsck -n crash caused by corrupt htrees - * Reorder the library line for static linking, to fix undefined - references to pthreads on amd64. (Closes: #393680) - * Fix mke2fs's error checking when creating revision 0 filesystems. - (Closes: #392107) - - -- Theodore Y. Ts'o Sun, 22 Oct 2006 00:19:44 -0400 - -e2fsprogs (1.39+1.40-WIP-2006.10.02+dfsg-1) unstable; urgency=low - - * New +dfsg source tarball that has useful documentation removed to - satisfy the DFSG License Nazi's. (Closes: #390664) - * Remove dependency on e2fsprogs from the e2fsck-static package - (Closes: #383521) - * Fix badblocks interpretation of its first optional argument (last-block) - (Closes: #386475) - - -- Theodore Y. Ts'o Tue, 3 Oct 2006 23:36:05 -0400 - -e2fsprogs (1.39+1.40-WIP-2006.10.02-2) unstable; urgency=low - - * Build using the sid version of libc, not experimental! - - -- Theodore Y. Ts'o Mon, 2 Oct 2006 21:43:44 -0400 - -e2fsprogs (1.39+1.40-WIP-2006.10.02-1) unstable; urgency=low - - * Previous NMU acknowledged (Closes: #388718) - * Fix debugfs to print unsigned values for EA's - * Minor man page fixes (Closes: #373004, #369761) - * Allow the default inode size to be specified in mke2fs.conf - * Require mke2fs -F -F for really dangerous operations - * Add Vietnamese translation - * Update French and Dutch translations - * Fix debugfs coredump when lsdel is run without an open filesystem - (Closes: #378335) - * Fix spelling error in e2fsck output - * Fix overflow problems when the number of inodes and blocks is - close to 2**32-1 - * Add GFS/GFS2 support to the blkid library. - * Fix blkid support of empty FAT filesystem labels - * Avoid recursing forever due to symlinks in /dev by the blkid library - * Fix bogus error messages from resize2fs caused by the filesystem - not containing a resize inode. (Closes: #380548) - * Fixed device-mapper probing (it was failing due to an extra '/dev' being - added to the device pathname) - * Make sure the default minimum size journal is big enough to support - on-line resizing. - * Add a versioned build-dep on texi2html (Closes: #389554) - * Remove useful UUID specification thanks to License Nazi's (Closes: #390664) - - -- Theodore Y. Ts'o Mon, 2 Oct 2006 13:04:27 -0400 - -e2fsprogs (1.39-1.1) unstable; urgency=low - - * Non-maintainer upload - * Added -pthreads to devmapper libraries (Closes: #388718) - - -- Ben Hutchings Sat, 30 Sep 2006 12:49:47 +0100 - -e2fsprogs (1.39-1) unstable; urgency=low - - * New upstream version - * Fix debugfs's dump_unused command so it will not core dump on - filesystems with a 64k blocksize - * Clarified and improved man pages, including spelling errors - (Closes: #368392, #368393, #368394, #368179) - * New filesystems are now created with directory indexing and - on-line resizing enabled by default - * Fix previously mangled wording in an older Debian changelog entry - * Fix doc-base pointer to the top-level html file (Closes: #362544, #362970) - - -- Theodore Y. Ts'o Mon, 29 May 2006 11:07:53 -0400 - -e2fsprogs (1.38+1.39-WIP-2006.04.09-2) unstable; urgency=low - - * Resize2fs automatically detects the previously used RAID stride - parameter so that resized filesystems can be more optimally laid - out for RAID filesystems. - * Fix mke2fs -cc and e2fsck -cc (Closes: #366017) - * Fix initrd script to fix failure with 2.4 kernels (Closes: #364516) - * Mke2fs now uses an improved layout for RAID filesystems when the - stride parameter is specified. - * Fix the debugfs commands htree_dump, dx_hash, and list_dir so they - print a usage message when an illegal option character is given. - * Speed up mke2fs and e2fsck by writing inode and block bitmaps in one pass - * Fix filefrag to be 32-bit clean by using unsigned long instead of - a signed integer for block numbers. - * Fix a bug in the e2p library which could cause dumpe2fs to - (rarely) fail to print out the journal or hash seed UUID. - * Fix memory leak in e2fsck's error paths. - * Fix comerr-dev's doc-base pointer to the top-level html file - - -- Theodore Y. Ts'o Sun, 14 May 2006 18:09:20 -0400 - -e2fsprogs (1.38+1.39-WIP-2006.04.09-1) unstable; urgency=low - - * Update config.guess and config.sub to latest version (2006-02-23) from FSF - * Update French, Dutch, Polish, Swedish, and Turkish translations - * Fix asm/types.h type conflicts on AMD64 to fix FTBFS problems. - (Closes: #360661, #360317) - * Fix bug which caused mke2fs -j to fail with an EBUSY error. (Closes - #360652) - - -- Theodore Y. Ts'o Sun, 9 Apr 2006 23:04:15 -0400 - -e2fsprogs (1.38+1.39-WIP-2006.03.29-2) unstable; urgency=low - - * Added missing build dependency on libdevmapper-dev. (Closes: #360046) - - -- Theodore Y. Ts'o Thu, 30 Mar 2006 12:33:30 -0500 - -e2fsprogs (1.38+1.39-WIP-2006.03.29-1) unstable; urgency=low - - * Add udeb: lines to the Debian's shlibs files (Closes: #356293) - * Enhance dumpe2fs to print the size of the journal - * Fix e2sprogs so that it is 32-bit clean on x86 platforms. - * Fix mklost+ound so that it creates a full-sized directory on 4k and - larger block sizes. - * Add mke2fs.conf configuration file to configure mke2fs's defaults - * Add devmapper support to the blkid library. - * E2fsck, resize2fs and mke2fs will now open the filesystem device in - exclusive mode - * Fix documentation and man pages. (Closes: #351268, #357951, #347295, - #316040) - * Cix "mke2fs -O resize_inode" for very large filesystems (Closes: #346580) - * Add on-line resizing support into resize2fs - * Fix blkid's handling of verification timeouts when the system clock is - insane - * Fix library Makefiles so they work with GNU make 3.81 as well as GNU - make 3.80. - * Enhance the blkid library to display the uuid of external journals for - ext3 filesystems - * Enhance e2fsck so it will fix the external journal hint in the - superblock if it is out of date. - * Fix debugfs's icheck to correctly report the owner of an EA block - * Update Swedish translation - * Add a configuration parameter to e2fsck.conf to control whether or not - filesystem checks are done when the system is running on battery power. - * Print an explanation when skipping a check due being on battery - (Closes: #350306) - * Update French translation (Closes: #341911, #300871, #316604, #316782, - #330789) - - -- Theodore Y. Ts'o Wed, 29 Mar 2006 20:37:27 -0500 - -e2fsprogs (1.38+1.39-WIP-2005.12.31-1) unstable; urgency=medium - - * New upstream version - * Update profile library code base - - Allow tag and section names to have quoted strings - - Make the profile library support reading files in a conf.d directory - - Slightly change the parser to support comments at the end of all lines - - Add syntax error reporting - - Simplify profile code - - Add E2FSCK_CONFIG environment variable which overrides where to - find /etc/e2fsck.conf - - Make e2fsck's filesystem problem handing configurable - - Fix FTBFS bug if comerr-dev is not installed. (Closes: #345519) - * Update Dutch, Polish, and Swedish translations. (Closes: #343149) - * Fix a fd leak across an exec in libuuid. (Closes: #345832) - * Address override file disparities - * Make urgency be medium to accelerate a workaround to Debian's buggy - initscripts (See Debian bugs: #343662, #343645) - - -- Theodore Y. Ts'o Fri, 6 Jan 2006 21:41:06 -0500 - -e2fsprogs (1.38+1.39-WIP-2005.12.10-2) unstable; urgency=low - - * Make resize2fs expand or truncate a file containing a filesystem. - (Closes: #271607) - * Add support for lib64ext2fs-nopic.a for the mips architecture - (Closes: #329074) - * Deal with the fact that Debian's boot sequence bogusly doesn't set the - time correctly until very late in the boot process; so if the - superblock's last mount or write time is in the future, don't treat - this as a fatal error. (Closes: #343662, #343645) - * Move the blkid and uuidgen binaries out of libblkid1 and libuuid1 and - into the e2fsprogs package to support soname transitions and - simultaneous installs of multiarch flavors to coexist. (It's not worth - creating two whole new packages for two separate binaries, so we just - fold them into e2fsprogs.) (Closes: #330737, #330736) - * Optionally allow the user to interrupt e2fsck "safely" during a boot - sequence without causing the boot scripts to abort. (Closes: #150295) - * Update and clarify man pages (Closes: #312515) - - -- Theodore Y. Ts'o Sat, 31 Dec 2005 01:05:35 -0500 - -e2fsprogs (1.38+1.39-WIP-2005.12.10-1) unstable; urgency=low - - * Update and clarify man pages (Closes: #329859, #322188, #316811) - * Fix bug creating external journals on big-endian machines. - * Detect if the superblock's last mount time or last write time is in - the future, and offer to fix it if this is the case (Closes: #327580) - * Add new debugfs command, set_current_time which sets the time used to - update the filesystem's time fields. - * Fix display bug in badblocks -sw when printing the "done" message. - (Closes: #322231) - * Improve blkid's FAT/VFAT filesystem detection code so that it can find - labels stored the root directory and to be more correct/paranoid. - * Add support to extract iso9660 label information to the blkid library. - * Add support to detect the reiser4 filesystem to the blkid library. - * Add support for detecting software suspend partitions to the blkid library. - * Fix the blkid library to notice when an ext2 filesystem is upgraded to - ext3. - * Fix debugfs's set_inode_field so that successfully sets the i_size field - * Updated Dutch translation - * E2fsck will stop and print a warning if the user tries running a - read/write badblocks test on a read-only mounted root filesystem. - * Add resize2fs and badblocks to the e2fsprogs udeb - (Closes: #290429, #310950) - * Avoid trying to mount the root device if it is an NFS device. - (Closes: #310428) - - -- Theodore Y. Ts'o Sat, 10 Dec 2005 22:49:47 -0500 - -e2fsprogs (1.38-2) unstable; urgency=low - - * Previous NMU acknowledged (Closes: #317862, #320389) - * Fix debugfs's set_inode_fields command so it doesn't silently fail - when setting certain inode fields. - * Fix e2fsck from segfaulting on disconnected inodes that contain one or - more extended attributes. (Closes: #316736, #318463) - * Allow mke2fs and tune2fs to take fractional percentages to the -m - option in mke2fs and tune2fs. (Closes: #80205) - * Fix a compile_et bug which miscount the number of error messages if - continuations are used in the .et file, and fix compatibility problems - with MIT Kerberos 1.4 - * Add extra sanity checks to protect users from unusual circumstances - where /etc/mtab may not be sane, by checking to see if the device is - reported busy (works on Linux 2.6) kernels. (Closes: #319002) - * Fix use-after-free bug in e2fsck when finishing up the use of the - e2fsck context structure. - - -- Theodore Y. Ts'o Sun, 21 Aug 2005 23:35:29 -0400 - -e2fsprogs (1.38-1.1) unstable; urgency=low - - * NMU for RC bug during bug squishing party - * Fix for changes to texi2html, patch by Matt Kraai - (Closes: #317862, #320389) - * version build-depend on texi2html, won't work with older one anymore - - -- Blars Blarson Fri, 5 Aug 2005 04:46:54 +0000 - -e2fsprogs (1.38-1) unstable; urgency=low - - * New upstream version - * Fix ia64 core dump bug caused by e2fsprogs running afoul of C99 strict - type aliasing rules on newer gcc compilers. (Addresses Red Hat - Bugzilla ##161183.) - * Fix minor typo's in tune2fs man page. - * Mke2fs will refuse to create filesystems greater than 2**31-1 blocks, - unless forced, to avoid kernel bugs that still need to be fixed as - of this release. - * Update French, Dutch, Polish, Swedish, and Turkish translations. - - -- Theodore Y. Ts'o Wed, 30 Jun 2005 20:02:42 -0400 - -e2fsprogs (1.37+1.38-WIP-0620-1) unstable; urgency=low - - * Update and clarify man pages. - * Clarify and clean up e2fsck's problem descriptions - * Add Dutch translation, and update French, Polish, Swedish, and - Turkish translation. - * mke2fs and badblocks will check to see if the device appears to be - busy and abort if so; this feature only works on Linux 2.6 systems. - (Closes: #308594) - * Fix filefrag so that it works on 64-bit platforms where the size of - an integer != the size of a long. (Closes: #309655) - * Change the default journal size to be bigger for larger filesystems, - given modern memory sizes. - * Fix com_err library so it is compatible with MIT krb5 1.4. - - -- Theodore Y. Ts'o Mon, 20 Jun 2005 17:11:29 -0400 - -e2fsprogs (1.37+1.38-WIP-0509-1) unstable; urgency=low - - * Make the blkid library much more efficient when a new device is added - on systems with a huge number of disks. - * Fix handling of the PAGER and SS_READLINE_PATH environment variables - in the ss library, and the TEST_IO_* environment variables for the - test_io io_manager, which was accidentally broken in 1.37-1. - * Fix libblkid's recognition of cramfs filesystems, and add support for - cramfs labels. - * Fix filefrag to give correct results when the first block found is an - indirect block. (Closes: #307607) - * Fix debugfs seg fault when the stat command is given and a filesystem - is not open. - * Improve environment variable paranoia checks. - * Fix e2fsck's handling of multiply claimed blocks involving the resize - inode. - * When determining the libraries needed for the initrd, unset LD_PRELOAD - and LD_LIBRARY_PATH and filter out libraries found in - /etc/ld.so.preload. (Closes: #304003) - * Update Swedish translation, and added translation for Rwanda. - * Minor man page spelling/typo fixes. (Closes: #304591, #304592, - #304594, #304597, #304593) - - -- Theodore Y. Ts'o Mon, 9 May 2005 09:10:20 -0400 - -e2fsprogs (1.37-2) unstable; urgency=low - - * Fix filefrag so that it works non ext2/3 filesystems again. - (Closes: #303509) - * Make sure we include stdlib.h to fix a core dump bug in mke2fs on the - IA64 architecture (or other platforms where sizeof(ptr) > sizeof(int)) - (Closes: #302200) - * Add missing return values so that we don't return garbage in certain - error cases in ext2fs_write_new_inode() and ext2fs_read_int_block(). - * Fix minor spelling typo in the mke2fs man page - * Avoid doing the LOW_DTIME checks if the superblock last mount time - indicates that the system clock may not be set correctly. - * Add further paranoia checks to the blkid, ext2fs, and ss libraries to - make them safe to call from setuid or setgid applications. - - -- Theodore Y. Ts'o Sat, 9 Apr 2005 11:08:04 -0400 - -e2fsprogs (1.37-1) unstable; urgency=low - - * New upstream release. - * Fixed a bug in e2fsck so it would notice if a file with an extended - attribute block was exactly 2**32 blocks, such that i_blocks wrapped - to zero. - * Fixed a bug in filefrag which caused it to falsely report a - discontinuity when there are one or more unallocated blocks at the - beginning of a file. - * Fix the missing translations (caused by a bug in the gen-tarball - script). (Closes: #296769) - * Add support in e2fsck and debugfs for extended attributes in inodes. - * Fix the missing translations (caused by a bug in the gen-tarball script). - (Closes: #296769) - * Force compile_et and mk_cmds to use /usr/bin/awk so that we will work - on any Debian system regardless of which version of awk is installed. - (Closes: #299341) - - -- Theodore Y. Ts'o Thu, 21 Mar 2005 22:31:08 -0500 - -e2fsprogs (1.36release-1) unstable; urgency=low - - * New upstream release. - * Make filefrag print the first and last blocks when in verbose mode. - * Drop sparc assembly bitops; it's less efficient than gcc 3.4's - generated code, and it triggers compiler warnings on sparc 64. - (Closes: #232326) - - -- Theodore Y. Ts'o Fri, 4 Feb 2005 20:58:35 -0500 - -e2fsprogs (1.36rc5-1) unstable; urgency=low - - * Make blkid -t work more consistently even when the cache file is not - available or set to /dev/null. (Closes: #292425) - * Don't ever use a blocksize greater than 4k, since not all 2.6 kernels - will support this. - * Fix bug where mke2fs would not correctly create filesystems greater - than 4TB. - * Fix e2fsck so it won't delete symlinks that contain an extended - attribute after the ext_attr feature flag has been cleared. - * Fix e2fsck's resize inode handling in some additional corner cases. - - -- Theodore Y. Ts'o Thu, 27 Jan 2005 22:44:31 -0500 - -e2fsprogs (1.36rc4-1) unstable; urgency=low - - * Fix a bug in resize2fs where we don't release the blocks belonging to - the old inode table blocks when we move the inode table. - (Closes: #290894) - * Make sure that we don't write garbage when writing a large inode. - * Check NTFS ahead of other filesystems since Windows doesn't always - clearing enough of the partition to avoid false positives with older - filesystems. (Closes: #291990) - * E2fsck now checks the summary filesystem accounting information, and - if any of the information is obviously wrong, it will force a full - filesystem check. (Closes: #291571) - * Clarified and updated tune2fs and blkid man pages - * Fix e2fsck to not complain when the resize_inode feature is enabled, - s_reserved_gdt_blocks is zero, and there is no DIND block allocated in - the resize inode. - * Fix blkid -t to display all devices that match the specified criteria, - not just the first one. (Closes: #290530) - * Add support for the blkid library to recognize Oracle ASM volumes. - * Add set_super_value jnl_blocks[] in debugfs. - * Fix the filefrag program so that it works correctly with sparse files. - * Fix portability problems with FreeBSD, Solaris, and Intel C++ 8.1. - * Add support for FreeBSD and Lites as OS Creator values. - - -- Theodore Y. Ts'o Wed, 26 Jan 2005 10:22:02 -0500 - -e2fsprogs (1.36rc3-2) unstable; urgency=low - - * Remove debugging printf's from e2image's -s code. - - -- Theodore Y. Ts'o Wed, 19 Jan 2005 02:25:53 -0500 - -e2fsprogs (1.36rc3-1) unstable; urgency=low - - * New upstream release - * Update Italian, French, and Turkish translations - * Fixed file descriptor leak in the filefrag program - * Add -s option to e2image which scrambles directory entries when making - raw image files - * Make sure e2fsck doesn't crash if /proc/acpi/ac_adapter does not - exist - * Added Solaris, FreeBSD portability fixes - - -- Theodore Y. Ts'o Wed, 19 Jan 2005 00:33:31 -0500 - -e2fsprogs (1.36rc2-1) unstable; urgency=low - - * New upstream release - * Update Italian translation - * Add support for swap partition labels and uuid's - - -- Theodore Y. Ts'o Tue, 11 Jan 2005 14:12:17 -0500 - -e2fsprogs (1.36rc1-1) unstable; urgency=low - - * Fix a FTBFS bug for amd64/gcc-3.0 (Closes: #289133) - * Minor man page clarifications. (Closes: #273679) - * Add support for online resizing via the resize inode. - * Badblocks will now correctly display block numbers greater than - 999,999,999 in its progress display. - * tune2fs will not allow the user from setting a ridiculous number of - reserved blocks which would cause e2fsck to assume the superblock - was corrupt. E2fsck's standards for what is a ridiculous number - of reserved blocks has also been relaxed to 50% of the blocks in - the filesystem. - * The blkid library will return vfat in preference to msdos, and ext3 in - preference to ext2 (if the journalling flag is set) so that mount - will do the right thing. (Closes: #287455) - * The fsck program will now accept an optional filedescriptor argument - to the -C option. - * Mke2fs will now use the -E option for extended options; the old -R - (raid options) option is still accepted for backwards compatibility. - * Fix a double-free problem in resize2fs. (Red Hat Bugzilla #132707) - * Mke2fs will now accept a size in megabytes or gigabytes (via "32m" or - "4g" on the command line) if the user finds this more convenient - than specifying a block count. - * Fix an obscure, hard-to find bug in "e2fsck -S" caused by an inode - cache coherency problem. - * Debugfs now supports a new command, set_inode_field, which allows a - user to manually set a specific inode field more conveniently, as - well as set entries in the indirect block map. - * Debugfs's set_super_value command has been enhanced so that the user - can set most superblock fields, including the date/time fields and - some of the more newly added superblock fields. - * E2fsprogs programs now accept an offset to be passed to the file - specifiers, via the syntax: "/tmp/test.img?offset=1024" - * E2fsprogs will now accept blocksizes up to 65536; kernel support on - the x86 doesn't exist, but it is useful on other architectures. - * Fix bug in debugfs where kill_file would lead to errors when deleting - devices and symlinks. (Sourceforge Bugs #954741 and #957244) - * Fix bug in the blkid library when detecting the ocfs1 filesystem - * Updated Italian translation file - * E2fsck will now recover from a journal containing illegal blocks. - - -- Theodore Y. Ts'o Fri, 7 Jan 2005 20:22:36 -0500 - -e2fsprogs (1.35-9) unstable; urgency=low - - * Minor man page clarifications. (Closes: #273679) - - -- Theodore Y. Ts'o Tue, 28 Sep 2004 10:29:29 -0400 - -e2fsprogs (1.35-8) unstable; urgency=low - - * Remove double "//" when listing attributes in the root directory or - when there is a trailing '/' in the directory name. (Closes: #272943) - * Make sure the configure files are newer than configure.in the - debian/rules file so that a dpkg-source created patch won't - trigger an attempt rebuild of the configure script. - (Closes: #272558, #273242) - * Make sure /usr/lib/e2initrd_helper is in the e2fsprogs package. - (Closes: #272698, #272728, #273161, #273163) - * Only use blocksizes > 4k on Linux 2.6 and newer systems. (Closes: #271064) - - -- Theodore Y. Ts'o Sat, 25 Sep 2004 07:37:52 -0400 - -e2fsprogs (1.35-7) unstable; urgency=low - - * Make sure "done" gets correctly translated in badblocks(8), and update - French translation (Closes: #252836) - * Always build the fsck wrapper on Debian systems (Closes: #248050) - * Filter out linux-gate.so, which is a pseudo entry for the 32->64bit - translation for amd64 systems, in the initrd creation script. - (Closes: #253595) - * Change the initrd scripts to be use a helper program which avoids - needing to mount the root filesystem and use awk to query the - /etc/fstab file. (Closes: #247775) - * Add support for the ocfs2 filesystem to the blkid library. - * Various portability fixes for Hurd and FreeBsd, as well as - removing XSI:isms. (Closes: #256669, #264630, #269044, #255589) - * Update config.guess and config.sub from the FSF. - * Minor manual page clarifications (Closes: #268148) - * Fix write ordering problems to make e2fsck more robust in the face - of system crashes while replaying the journal, etc. - * Fix debugging printf in resize2fs. (Closes: #271605) - * Add debugfs -d option to use a separate source of data blocks when - reading from an e2image file. - * Add e2image -I option which allows the e2image metadata to be - installed into a filesystem. - * Change e2fsck to accept directories greater than 32MB. - * Add test_io mechanisms to abort after reading or writing to a - particular block. - * Fix blkid file descriptor and memory leak. - - -- Theodore Y. Ts'o Sat, 18 Sep 2004 09:58:46 -0400 - -e2fsprogs (1.35-6) unstable; urgency=low - - * In the mkinitrd script, make sure the directories exist before - trying to copy in the needed shared libraries. (Closes: #244058, #246480) - * In the mkinitrd script, use LD_ASSUME_KERNEL=2.4 if necessary. - (Closes: #245931) - * In the mkinitrd script copy in /usr/bin/awk instead of /usr/bin/mawk. - (Closes: #245670) - * In the initrd script, fail quietly if /mnt/etc/fstab does not exist. - (Closes: #246917) - * Minor updates to German translation (Closes: #244105) - * Since woody's sysvinit package is before the initscripts were broken out - we need an explict Conflict: sysvinit (<< 2.85-4) header. (Closes: #243829) - * Update the UUID library man pages - * Fix a Y8.8888K potential problem with the uuid library - * Minor updates to the German translation - * Clarified/corrected the copyright statements of the UUID and blkid - libraries in the Debian copyright files. - * Added sanity check to the blkid library so that if current time is - less than last time a device is verified, force a reverification since - it means the system time is not trustworthy. - - -- Theodore Y. Ts'o Tue, 4 May 2004 16:23:06 -0400 - -e2fsprogs (1.35-5) unstable; urgency=low - - * Add uuid_unparse_upper() and uuid_unparse_lower() functions to the - uuid library. - * Address GNU/KFreeBSD portability issues (Closes: #239934) - * Use unsigned for 1 bit wide bitfields in header files to avoid - Intel C++ compiler warnings. - * Use C99 stdint.h types in the uuid library - * Fix up and cleanup uuid man pages - * Change the licensing of the uuid man pages to be 3-clause BSD. - * Fix the initrd scripts so that the automatic ext3 journal - conversion actually works correctly; also allow conversion of the root - filesystem from ext3 back to ext2 (Closes: #241183) - * Minor man page fixes (Closes: #241940, 242995) - * Use the DEBUGFS_PAGER environment variable in preference to PAGER - (Closes: #239547) - * Added French translation - * Be flexible about the name of the ACPI device that corresponds to - the AC adapter (Closes: #242136) - - -- Theodore Y. Ts'o Mon, 12 Apr 2004 12:38:34 -0400 - -e2fsprogs (1.35-4) unstable; urgency=low - - * Fix bug in the blkid library (introduced in 1.35-3) which caused - the probe function to completely malfunction. (Closes: #239191) - * Make the debugfs command's link command set the filetype information - correctly. - * Update the Polish, Swedish, and Turkish translations - * Add an -o option to the blkid program which allows the user to - control the output format of blkid. - * Fixed and cleaned up the tune2fs and blkid man pages (Closes: #238741) - * Improve UUID generation algorithm (use all 14 bits in the clock sequence) - * Change the license on the UUID library to be 3-clause BSD. - * Remove the only-partially-implemented -p option to blkid. - - -- Theodore Y. Ts'o Sun, 21 Mar 2004 20:17:03 -0500 - -e2fsprogs (1.35-3) unstable; urgency=low - - * Mention e2image's limitation in writing a normal image file to - stdout (Closes: #236383) - * Only use BLKGETSIZE64 on Linux 2.6 since it is unreliable on Linux 2.4. - (Closes: #236528) - - -- Theodore Y. Ts'o Mon, 8 Mar 2004 14:19:15 -0500 - -e2fsprogs (1.35-2) unstable; urgency=low - - * Use 64-bit ioctl's if present to determine the 64-bit size of a device - * Add tune2fs to the e2fsprogs udeb package (Closes: #235639) - - -- Theodore Y. Ts'o Tue, 2 Mar 2004 10:13:39 -0500 - -e2fsprogs (1.35-1) unstable; urgency=low - - * New upstream version. - * Fix "badblocks -t random". (Closes: #234828) - * Fix "e2fsck -k". (Closes: #234993) - * Change badblock's default number of blocks tested at once from - 16 to 64. (Closes: #232240) - * ss-dev and comerr-dev now use a versioned dependency for libss2 and - libcomerr2, respectively. (Closes: #235280) - - -- Theodore Y. Ts'o Sat, 28 Feb 2004 10:14:19 -0500 - -e2fsprogs (1.34+1.35-WIP-2004.01.31-2) unstable; urgency=low - - * Add a new -k option to e2fsck which keeps the existing badblocks - list when using the -c option. (Closes: #229103) - * Update debugfs to support new large major/minor device numbers - supported by Linux 2.6. (Closes: #865289) - * Fix makefiles so that it will build correctly with --enable-profile. - * Add -mieee when compiling with GCC on an Alpha. - * Fix e2fsck preen mode messages using pass 1B/C/D. - * Fix the debugfs man page. (Closes: #232406) - * Fix the ext2fs.h header file to work correctly with C++. - * e2fsck and debugfs now correctly deals with symlinks that have - extended attribute information, such as those created by SE Linux. - (Closes: #232328) - * Make sure filefrag actually gets compiled under Linux (Closes: #230992) - - -- Theodore Y. Ts'o Tue, 24 Feb 2004 00:16:43 -0500 - -e2fsprogs (1.34+1.35-WIP-2004.01.31-1) unstable; urgency=medium - - * Fix byte swap bugs in e2fsck that caused the journal backup location - in the superblock and symlinks created by SE Linux to be cleared - by e2fsck on big-endian machines. (Closes: #228723) - * Chattr now stops processing options when it sees '--'. (Closes: #225188) - * Add FreeBSD port fixups - * Use the DEBUGFS_PAGER environment variable in preference to PAGER. - Document that less is a really, really, really bad pager to use - for debugfs (unfortunately, Debian policy says we must use - /usr/bin/pager even if it results in very annoying behaviour for - the user since 'less' is used in preference to 'more' unless it is - globally overridden via update-alternatives(8). Oh, well. Debian - users are encouraged to set DEBUGFS_PAGER to be "more" in their - dot files to avoid this brain damage). - * Fix libuuid1-udeb so that it provides libuuid1. (Closes: #229633) - * Fix bug in uuid library when there is no network card and the - library is generating a time-based uuid. The random MAC address - was not correctly generated to be a multicast address. - * Install the filefrag program. - * Don't try to compile filefrag on non-Linux platforms. (Closes: #226456) - * Minor manual page clarifications (Closes: #222606, #214920) - - -- Theodore Y. Ts'o Sat, 31 Jan 2004 20:57:35 -0500 - -e2fsprogs (1.34+1.35-WIP-2003.12.07-2) unstable; urgency=low - - * Fix test for /etc/mkinitrd/scripts/e2fsprogs to make sure it gets - removed. (Closes: #213275) - * Debugfs now searches for the appropriate pager to use, beginning - with /usr/bin/pager, and then falling back to 'less' and 'more'. - (Closes: #221977) - * Fixed mangled encoding in Czech locale file. (Closes: #214633) - * Fix bug where using debugfs to copy a file from /dev/null caused - in correct mode bits. (Closes: #217456) - * Fixed a bug where e2fsck would bomb out if a journal needed to be - replayed when using an alternate superblock. - * Minor manual page fixups/cleanups. - * Debugfs's mkdir command will automatically expand the directory if - necessary. (Closes: #217892) - * Fix a bug in e2fsck which caused it to incorrectly fix a filesystem - when reconnecting a directory requires creating a lost+found - directory. (Closes: #219640) - * Add Spanish translation. - - -- Theodore Y. Ts'o Wed, 24 Dec 2003 14:24:14 -0500 - -e2fsprogs (1.34+1.35-WIP-2003.12.07-1) unstable; urgency=medium - - * Added regression tests for mke2fs and dumpe2fs. - * Support 2.6 kernel header files. (Closes: #221778) - * Fix bug which could a core dump if a non-existent LABEL or UUID - specifier is passed to e2fsck or tune2fs. - * Fix handling of corrupted indirect blocks in the bad block inode. - * If the number of mounts until the next forced filesystem check is less - than 6, mention this to the user. (Closes: #157194) - * E2fsck will try to avoid doing a forced filesystem check if a system - is running on batteries according to APM or ACPI. (Closes: #205177) - * Fix problems in the German translation. (Closes: #2000086) - * Updated Swedish translation and added Polish translation. - * Fix signed vs unsigned bug which could cause the com_right function to - seg fault. (Closes: #213450) - * Add libuuid1-udeb (Closes: #221777) - - -- Theodore Y. Ts'o Sat, 22 Nov 2003 11:51:13 -0500 - -e2fsprogs (1.34+1.35-WIP-2003.08.21-3) unstable; urgency=low - - * Adjust the man page descriptions so that "apropos ext2" or - "apropos ext3" will find all of the e2fsprogs man pages. - (Closes: #206845) - * Protect against a potential core dump in e2fsck when printing a - message about a backup superblock. - * Fix a bug in mke2fs which caused -T largefile or -T largefile4 to - core dump due to a division by zero error. (Closes: #207082) - * Force e2fsprogs to use the matched version of e2fslibs. (Closes: #208103) - - -- Theodore Y. Ts'o Sun, 31 Aug 2003 21:49:52 -0400 - -e2fsprogs (1.34+1.35-WIP-2003.08.21-2) unstable; urgency=low - - * When moving the journal or backing up the journal inode - information, make sure e2fsck updates all the superblocks, and not - just the master superblock. - * Change the priority of libblkid1-udeb to be required instead of - standard, to match the override file. - - -- Theodore Y. Ts'o Thu, 21 Aug 2003 08:50:34 -0400 - -e2fsprogs (1.34+1.35-WIP-2003.08.21-1) unstable; urgency=low - - * Fix compile_et to output the correct prototype for - initialize_xxx_err_table_r() in the header file. (Closes: #204332) - * E2fsck will avoid printing ^A and ^B characters bracketing the - progress bar when stdout is a tty device. (Closes: #204137) - * Add support for storing the journal inode location in the superblock - so that e2fsck can recover from a corrupted inode table after a power - failure. - * Move the initrd script from /etc/mkinitrd/scripts to - /usr/share/initrd-tools/scripts so that mkinitrd will not remove - the file when it is uninstalled. (Closes: #204019) - * Remove unneeded files in debian directory: blkid-dev.substvars and - e2fsprogs-bf.lintian-overrides. (Closes: #203914) - * Support "noopt" in DEB_BUILD_OPTIONS instead of "debug". - (Closes: #203914) - - -- Theodore Y. Ts'o Thu, 21 Aug 2003 01:47:58 -0400 - -e2fsprogs (1.34+1.35-WIP-2003.08.01-1) unstable; urgency=low - - * Fix O_DIRECT test to prevent badblocks from screwing up after - finding a bad block. (Closes: #203713) - * Add Heimdal compile_et extensions from Philipp Thomas (pthomas@suse.de) - * Fix potential pointer aliasing bugs caused by type-punning and gcc 3.x - - -- Theodore Y. Ts'o Fri, 1 Aug 2003 13:44:58 -0400 - -e2fsprogs (1.34-2) unstable; urgency=low - - * Fix erroneous reference to /usr/share/doc/e2fsprogs/html-info in - /usr/share/doc-base/libext2fs (Closes: #203157) - * Explicitly specify the version of libblkid1 needed in - e2fsprogs.shlibs.local in order to avoid picking up the wrong dependency. - (Closes: #203157) - * Changed priority of libblkid1-udeb to be standard, not required. - - -- Theodore Y. Ts'o Wed, 30 Jul 2003 19:47:32 -0400 - -e2fsprogs (1.34-1.1) unstable; urgency=low - - * Non-maintainer upload. - * don't call ldconfig in udebs. - * fix dependencies of e2fsprogs-udeb. - - -- Bastian Blank Tue, 29 Jul 2003 12:11:54 +0200 - -e2fsprogs (1.34-1) unstable; urgency=low - - * New upstream version. - * Fixed bug in fsck which caused it to waste CPU by spinning while - waiting for a child fsck process under some circumstances. - * Fixed bug in blkid library which would cause it to spin forever if - /proc is not mounted and /etc/blkid.tab is not present. - * Improved the blkid library's UDF's probing functions. - * Fixed the blkid library so it will remove delete the LABEL - attribute from its cache when a filesystem that previously had a - label no longer has one. - * Added Swedish translation. - * Remove debugging printf in badblocks program (Closes: #201499) - * Split shared libraries out of the e2fsprogs package into separate - packages: libss2, libcomerr2, libuuid1, and e2fslibs. (Closes: #201155, - #201164) - * Warn the user when creating a filesystem with a journal and a blocksize - greater than 4096, since some kernels don't support ext3 with large - block sizes. (Closes: #193773) - - -- Theodore Y. Ts'o Sat, 26 Jul 2003 01:01:55 -0400 - -e2fsprogs (1.33+1.34-WIP-2003.05.21-2) unstable; urgency=low - - * Set up FreeBSD configuration defaults (Closes: #195274) - * Clarify resize2fs man page (Closes: #195616) - * Fix resize2fs to deal with filesystem with bad blocks - * Fix spelling error in e2fsck - * Add workaround for intl library on Darwin - * Fix gcc -Wall nitpicks - * Round down the default size of the filesystem for mke2fs and - resize2fs to be a multiple of the pagesize to work around a potential - Linux kernel bug - * Fix bug in mke2fs where it could die with a floating exception if - the device does not support the BLKSSZGET ioctl (Closes: #196734) - * Add conflicts against older versions of sysvinit that don't correctly - handle an exit code that has the bit #2 set. (Closes: #183675) - * Badblocks will attempt to use O_DIRECT if it is safe to do so. - (Closes: #198006) - * Use symbolic links for fsck.ext{2,3} and mkfs.ext{2,3} in the udeb - package since busybox tar can't deal with hard links. (Closes: #196508) - - -- Theodore Y. Ts'o Sat, 12 Jul 2003 03:16:08 -0400 - -e2fsprogs (1.33+1.34-WIP-2003.05.21-1) unstable; urgency=low - - * Fix problems with compiling e2fsprogs with NLS support on woody - (Closes: #193372) - * Remove the extraneous de-utf.po file. - * Add get-text to build-depends. - * Use ngettext (abbreviated with P_()) to simplify the statistics reporting. - * Fix badblocks to be able to support arbitrary 4 byte test patterns. - * Fix bug which caused us to accidentally include the EVMS plugin in - the e2fsprogs package (which doesn't work, but causes confusing messages - to show up when the evms client is started). - * If the hardware sector size of a device is larger than the default - blocksize, use the hardware sector size as the blocksize when creating - a filesystem, to solve problems with s/390 DASD's. - * Add a shared library dependency to libuuid to libblkid (Closes: #194094) - * Add initial implementation of a dump_unused command (Closes: #79164) - - -- Theodore Y. Ts'o Sun, 18 May 2003 01:24:16 -0400 - -e2fsprogs (1.33-5) unstable; urgency=low - - * Clarify blocksize units when displaying messages in resize2fs, and - support using suffixes (sectors, kilobytes, megabytes, gigabytes) - to the size parameter to indicate units. (Closes: #189814) - * Fix debugfs core-dumping problem caused by getopt. (Works around: #192834) - * Add package dependency to shlibs for comerr to indicate support - for kth compatibility. (Closes: #193096) - - -- Theodore Y. Ts'o Tue, 13 May 2003 23:45:08 -0400 - -e2fsprogs (1.33-4) unstable; urgency=low - - * Add replaces field to comerr-dev to resolve a file conflict with - /usr/include/com_err.h and the libkrb5-dev package. (Closes: #192277) - * Add -t option to badblocks to control the test pattern used. - * Remove e2fsprogs-bf package, as it is obsolete. (Closes: #183453) - * Remove NLS support from e2fsprogs-udeb. Save 5.5k on the boot - floppies / install media. - - -- Theodore Y. Ts'o Thu, 8 May 2003 10:25:05 -0400 - -e2fsprogs (1.33-3) unstable; urgency=low - - * Add full Heimdall/Kerberos4-kth compatibility to com_err routines. - * Declare comerr-dev as replacing << e2fslibs-dev 1.33-2, to avoid - errors when upgrading to the new versions of comerr-dev and - e2fslibs-dev - - -- Theodore Y. Ts'o Tue, 6 May 2003 00:29:47 -0400 - -e2fsprogs (1.33-2) unstable; urgency=low - - * Fix up NLS support - - Fix message abbreviations support (i.e., @g --> group) - - Update to gettext 0.11.5 - - Add Czech translation - - Install message catalogs - - Other miscellaneous NLS bug fixes - * Add new debugfs command, imap, which prints the location of a - specified inode in the inode table. - * Put /usr/include/com_err.h in comerr-dev instead of e2fslibs-dev. - (Closes: #191899) - * Add support for OV-style continuations in compile_et. (Closes: #191900) - - -- Theodore Y. Ts'o Mon, 5 May 2003 18:13:12 -0400 - -e2fsprogs (1.33-1) unstable; urgency=low - - * New upstream version (Closes: #189687) - - -- Theodore Y. Ts'o Mon, 21 Apr 2003 13:49:52 -0400 - -e2fsprogs (1.32+1.33-WIP-2003.04.14-1) unstable; urgency=low - - * New upstream version - - Add new utility program, logsave, to capture the output of fsck - during the boot sequence - * Add support for the -a and -s options to logsave. - * Change e2fsck to bracket its progress bar output with ctrl-A and ctrl-B - characters, so that logsave -s can omit writing the progress bar output - to the log file. - * Avoid printing the version banner for mke2fs if the -q option is - specified. (Closes: #172716) - - -- Theodore Y. Ts'o Wed, 16 Apr 2003 15:27:20 -0400 - -e2fsprogs (1.32+1.33-WIP-2003.03.30-3) unstable; urgency=low - - * Provide /usr/include/com_err.h, which was previously provided by the - libkrb5-dev package - * Change the section of com_err-dev, ss-dev, uuid-dev, libblkid-dev, - e2fslibs-dev to libdevel - * Add libblkid1-udeb package for the Debian Installer. - * Use the SS_READLINE_PATH environment variable to control the search - for a suitable readline library. - * Fix bug in mke2fs, which was was incorrectly checking the argument - to the -g option if the default block size is used. (Closes: #188319) - * Update man pages. (Closes: #188318) - * Mke2fs can be given a minimum block size by passing in a negative - number to the -b option. - * Update to standards 3.5.9 - - -- Theodore Y. Ts'o Sat, 12 Apr 2003 02:52:17 -0400 - -e2fsprogs (1.32+1.33-WIP-2003.03.30-2) unstable; urgency=low - - * Fix XFS superblock definition. Add support to extract UUID and - labels for JFS and ROMFS. - * Make the random number generator more paranoid about potentially buggy - /dev/random devices. - * The badblocks program now flushes its output as it discovers bad blocks. - * Imported bug fixes to EVMS driver from the EVMS 2.0 tree. Fixed a - few potential hangs, and eliminated a file descriptor leak. - * E2fsck now updates the global free block and inode counters from - the block group specific counters quietly. This is needed for an - experimental kernel patch which improves SMP scalability by not - locking the entire filesystem during block or inode allocation; if - the filesystem is not unmounted cleanly, the global counts may not - be accurate. - * Fix a bug in fsck which can cause it to hang trying to access the - floppy disk if there the floppy drive has filesystem type of - 'auto'. (Closes: #187812) - - -- Theodore Y. Ts'o Sun, 6 Apr 2003 23:13:50 -0400 - -e2fsprogs (1.32+1.33-WIP-2003.03.30-1) unstable; urgency=low - - * Change compile_et to generate header files that use - instead of , so the current version of the header file - is used. Remove legacy K&R, varargs, and pre-POSIX signal support. - * Fix (one more time!) Apple Darwin port in blkid/getsize.c - - -- Theodore Y. Ts'o Sun, 30 Mar 2003 23:34:55 -0500 - -e2fsprogs (1.32+1.33-WIP-2003.03.25-1) unstable; urgency=low - - * New maintainer - * New upstream release (Closes: #176814, #174766, #166048, #179671, - #173612, #175233, #175113, #170497, #185945) - - -- Theodore Y. Ts'o Sun, 16 Mar 2003 18:05:08 -0500 - -e2fsprogs (1.32-2) unstable; urgency=high - - * Applied upstream patch to fix htree problems, and to deactivate it by - default in mke2fs (Closes: #181615, #179043) - * Be sure removal of libe2fsim doesn't fail, as it's not built on hurd - (Closes: #164117). - - -- Yann Dirson Fri, 21 Feb 2003 00:21:44 +0100 - -e2fsprogs (1.32-1) unstable; urgency=low - - * New upstream release (Closes: #167108). - - -- Yann Dirson Tue, 19 Nov 2002 00:18:09 +0100 - -e2fsprogs (1.29+1.30-WIP-0930-2) unstable; urgency=low - - * Made mkinitrd script to skip commented-out lines (Closes: #163251). - - -- Yann Dirson Tue, 15 Oct 2002 00:16:08 +0200 - -e2fsprogs (1.29+1.30-WIP-0930-1) unstable; urgency=low - - * New upstream prerelease. - * Replaced in mkinitrd script "tune2fs -j" with "tune2fs -O - has_journal", as suggested by Theodore Ts'o (Closes: #162949). - * Remove --disable-debugfs from mips-nopic flags (Closes: #162674). - - -- Yann Dirson Thu, 3 Oct 2002 00:05:36 +0200 - -e2fsprogs (1.29-1) unstable; urgency=low - - * New upstream release (Closes: #159423). - * Fixed typo in chattr manpage (Philipp Matthias Hahn, Closes: - #162297). - * Generate udeb package for debian-installer (Martin Sjoegren, Closes: - #162212). - * Fixed installation of mkinitrd script (don't use dh_install). Remove - it from the wrong location where it was, in preinst. Hopefully no one - noticed. - * Also have old scripts/e2fsprogs.mkinitrd removed. - * Bumped Standards-Version to 3.5.6, no change. 3.5.7 will need a bit - of work but not tonight. - - -- Yann Dirson Thu, 26 Sep 2002 01:46:25 +0200 - -e2fsprogs (1.28-5) unstable; urgency=low - - * The "this time it will work ! (famous last words)" release. - * Now that it builds, ensure the dir in which we install this damn mips - non-pic lib exists. - - -- Yann Dirson Tue, 17 Sep 2002 00:04:49 +0200 - -e2fsprogs (1.28-4) unstable; urgency=low - - * Moved setting of CFLAGS to the correct place when building the special - mips non-pic lib (Closes: #159757 again). - - -- Yann Dirson Sun, 15 Sep 2002 21:19:19 +0200 - -e2fsprogs (1.28-3) unstable; urgency=low - - * Don't use special cflags at configure time when building the special - mips non-pic lib, in yet another attempt to fix my adaptation of the - patch from the mips team. Also added --disable-nls which was present - in the original patch. - * Remove debian/BUILD-MIPS on clean. - * Install mkinitrd script as scripts/e2fsprogs, not as - scripts/e2fsprogs.mkinitrd. - - -- Yann Dirson Mon, 9 Sep 2002 23:01:31 +0200 - -e2fsprogs (1.28-2) unstable; urgency=low - - * Fixed my adaption of the mips non-pic build (Closes: #159757). - - -- Yann Dirson Fri, 6 Sep 2002 00:03:45 +0200 - -e2fsprogs (1.28-1) unstable; urgency=low - - * New upstream release. - - -- Yann Dirson Mon, 2 Sep 2002 23:34:55 +0200 - -e2fsprogs (1.27+1.28-WIP-0817-1) unstable; urgency=low - - * New upstream pre-release. Closes: #138003, #144621, #145044, #151990, - #152029, #152891, #155007, #131350, #147256, #153102. - * New binary: findfs. - * Added execute permissions to the mkinitrd script (thanks lintian). - * Don't ship FSIM for EVMS for now. - - -- Yann Dirson Sun, 25 Aug 2002 19:32:12 +0200 - -e2fsprogs (1.27+1.28-WIP-0626-2) experimental; urgency=low - - * Remove bogus shlibs deps on "e2fsprogs (>= )" - - -- Theodore Y. Ts'o Sat, 17 Aug 2002 17:59:17 -0400 - -e2fsprogs (1.27+1.28-WIP-0626-1) experimental; urgency=low - - * New upstream pre-release: - ** Supports v2 ACL format (Closes: #138160). - * Removed explicit --mandir flag, as it now uses FHS man location by - default. - * Added mkinitrd script, "upstream-contributed" ;) by Ted Ts'o (Closes: - #148064). - * Build a no-pic version of libext2fs.a on mips and mipsel, patch by - Florian Lohoff, adapted for style consistency (Closes: #145432). - * Removed presumably-useless and presumably-broken CFLAGS propagation. - If someone misses that, I'll add ${CFLAGS} to --ccopts. - - * Switched to debhelper v4. - * Added ${misc:Depends} to all packages' Depends field. - - * Fixed typos in fsck.8, added an example for clarity (Closes: - #145044). - * Fixed typo in chattr manpage (Closes: #141938). - * Fixed typo in tune2fs manpage (Closes: #148514). - - -- Yann Dirson Tue, 23 Jul 2002 00:12:33 +0200 - -e2fsprogs (1.27-2) unstable; urgency=medium - - * Urgency medium since this fixes a RC bug. - * Generate the shlibs file instead of just copying it in place, and make - it produce deps on "e2fsprogs (>= )" as well, to cope with - new functions introduced in the libs (Closes: #139274). - * Added a note on this in README.Debian. - - -- Yann Dirson Thu, 21 Mar 2002 23:58:48 +0100 - -e2fsprogs (1.27-1) unstable; urgency=low - - * New upstream release (Closes: #136737). - * No more use for dh_link'ing *.ext[23], it's now done by upstream - Makefiles. - * Only include (new) inode_io.o from libext2fs when fileio.o is, or the - BF build fails because of this additional (unused) member (upstream - hint). - - -- Yann Dirson Mon, 11 Mar 2002 00:17:32 +0100 - -e2fsprogs (1.26-3) unstable; urgency=low - - * Simple rebuild after fixing the settings of my computer's clock, so - that katie accepts to install the package. - - -- Yann Dirson Sat, 23 Feb 2002 14:53:15 +0100 - -e2fsprogs (1.26-2) unstable; urgency=low - - * Applied upstream patch dealing with the rlimit filesize variation - among archs and kernel versions (Closes: #133909). - * Create fsck.ext3.8 symlink (Closes: #121526). - - -- Yann Dirson Sat, 23 Feb 2002 06:44:02 +0100 - -e2fsprogs (1.26-1) unstable; urgency=low - - * This uploads fixes 10 bugs, including data-corruption problems, and - adds much to the ease of maintenance and problem tracking. Good - choice for woody. - - * New upstream release (Closes: #106622, #116975, #118443, #119624, - #120171, #120077, #129828, #132764). - ** Fixes for data-corruption bugs not reported to the BTS: e2fsck - trashed external journals needing to be replayed, e2fsck now hides - visible journal files (data corruption problems when not excluded from - a backup and then restored) (Closes: #132654). - ** Other noticeable bugs fixed include: e2fsck null pointer - dereferencing, fsck did not finds LVM volumes by UUID or by label, - largefile support (ie. dealing with filesystems inside 2GB+ files) was - broken in several programs. - * Switch to debhelper v3 to get ldconfig automatically handled - (lintian reported that it was broken). Now call dh_makeshlibs, but - still override its generated shlibs file with ours, to get compiled - packages depend of the correct virtual packages, which include - full sonames. - * Removed call do dh_installman (Closes: #115526). - * Cleaned up maintainer scripts with dead code - most things are now - more properly handled by debhelper. Removed an "exit 0" lurking in - preinst - can't find a reason for it in the changelog, it was probably - here for ages. - * Remove obsolete maint-scripts in binary-arch, as they are provided by - upstream. - * Also remove upstream-shipped config.cache before configuring. That - shouldn't impact us, but well, that makes lintian happy :) - - -- Yann Dirson Fri, 8 Feb 2002 06:12:35 +0100 - -e2fsprogs (1.25-1) unstable; urgency=high - - * New upstream bugfix release (Closes: #112414), targeted to woody. - * com_err.info provided again now that it was fixed upstream. - * Added metainfo to com_err.texinfo so that it gets indexed correctly - (thanks lintian). Moved @setfilename and @settitle to the top so that - things get output as expected. - * Added lintian overrides for -bf and -static packages. - * Put all stamp files in debian/stampdir. - - -- Yann Dirson Sat, 22 Sep 2001 16:22:47 +0200 - -e2fsprogs (1.24a-1) unstable; urgency=high - - * New upstream release (Closes: #109577). - ** The only new code in there is in codepaths that - are only visited when previously unsupported features are used, so - they add virtually no risk. Support for raw image files will be of - great help to debug users' problems. Urgency set to "high" to make - sure this version gets released with woody. - - ** Fsck prints a warning message if now valid filesystems are passed to - it. (Closes: #107458). - ** Fsck -A will not try to interpret device names for filesystems which - have a pass number is 0. (Closes: #106696). - ** If -O none is passed to mke2fs, it will now not set the sparse_super - feature (Closes: #108165). - ** Tune2fs has been fixed to make sure that only error messages go to - stderr, and normal message go to stdout (Closes: #108555). - ** Minor man pages updates (Closes: #30833, #108174). - ** Doc fixes (Closes: #110621). - - -- Yann Dirson Tue, 4 Sep 2001 23:44:56 +0200 - -e2fsprogs (1.22-2) unstable; urgency=medium - - * This is only a trivial patch to stop some user confusion, and would be - great to have in woody, hence the urgency. - * Applied upstream patch to e2fsck to warn user when some errors were - not corrected due to user answering "no" (Closes: #104502). - - -- Yann Dirson Sat, 28 Jul 2001 23:01:49 +0200 - -e2fsprogs (1.22-1) unstable; urgency=low - - * Final 1.22 release: - ** Fixes build problems on big-endian (Closes: #101686, #101798). - - -- Yann Dirson Sat, 23 Jun 2001 14:03:17 +0200 - -e2fsprogs (1.21+1.22-WIP-0620-1) unstable; urgency=low - - * New upstream pre-release, critical for big-endian platforms - (Closes: #101752). - * Re-applied hurd fix again. - * Build e2fsprogs-bf with -Os to gain more space. - - -- Yann Dirson Fri, 22 Jun 2001 00:18:40 +0200 - -e2fsprogs (1.21-1) unstable; urgency=low - - * Final 1.21 release. - * Re-applied hurd fix that did not came quickly enough to make it in - 1.21. - * Fixed name of copyright file in e2fsprogs-bf. - - -- Yann Dirson Wed, 20 Jun 2001 22:32:08 +0200 - -e2fsprogs (1.20+1.21-WIP-0614-2) unstable; urgency=low - - * Don't build PIC libs, build a reduced version of the libs instead, in - package e2fsprogs-bf. Made this new package conflict with e2fsprogs. - * Compilation fix for the Hurd (Closes: #101361). - - -- Yann Dirson Tue, 19 Jun 2001 23:33:25 +0200 - -e2fsprogs (1.20+1.21-WIP-0614-1) unstable; urgency=low - - * New upstream pre-release (Closes: #100559, #100304). - * Fixed lib/ext2fs/Makefile.in for installation of new generated .h - file. - - -- Yann Dirson Thu, 14 Jun 2001 16:14:11 +0200 - -e2fsprogs (1.20+1.21-WIP-0608-1) unstable; urgency=low - - * New upstream pre-release (critical ext3 bugfix mostly). - * Correctly use dh_installinfo. - * Adjusted various things accordingly. - - -- Yann Dirson Sat, 9 Jun 2001 00:25:51 +0200 - -e2fsprogs (1.20-4) unstable; urgency=low - - * Cleanup generated substvars files now that debhelper uses other - names (may cause problems on other archs). Build-dep on debhelper - 3.0.30 or newer to be sure it won't cause broken uploads. Allows to - get rid of hairy dep, but cannot build straightforwardly on potato any - more... - - -- Yann Dirson Wed, 6 Jun 2001 02:33:32 +0200 - -e2fsprogs (1.20-3) unstable; urgency=low - - * Create all symlinks to uuid-generate.3 (Closes: #99573). - * Somewhat modernized debian/rules (debhelper v2, etc.). - * Fixed libss2 copyright file. - * Fixed e2fslibs-pic short description. - - -- Yann Dirson Wed, 6 Jun 2001 01:19:19 +0200 - -e2fsprogs (1.20-2) unstable; urgency=low - - * Added support for building pic libs to Makefile.elf-lib. - * New package e2fslibs-pic for boot-floppies team (Closes: #99285). - * Use -N on dh_gencontrol instead of lots of -p. - - -- Yann Dirson Thu, 31 May 2001 23:59:51 +0200 - -e2fsprogs (1.20-1) unstable; urgency=low - - * Final 1.20 release. - * Added new zsh-static to the list of possible static shells recommended - by e2fsck-static. - - -- Yann Dirson Mon, 28 May 2001 21:39:06 +0200 - -e2fsprogs (1.19+1.20-WIP-0520-1) unstable; urgency=low - - * New upstream pre-release snapshot: - ** Extended "fsck -t" syntax (Closes: #89483). - ** Fix handling of devices for which fsck can't determine a physical - spindal, causing lockup when checking LVM volumes (Closes: #98103). - ** Fixed typo in e2fsck-static description - thanks Ted :). - * Fixed small compilation bug in fsck.c - - -- Yann Dirson Mon, 21 May 2001 20:47:10 +0200 - -e2fsprogs (1.19+1.20-WIP-0514-2) unstable; urgency=low - - * Tighten dependency on debhelper. - - -- Yann Dirson Tue, 15 May 2001 21:38:47 +0200 - -e2fsprogs (1.19+1.20-WIP-0514-1) unstable; urgency=low - - * New upstream pre-release snapshot: - ** new program: e2image. - ** e2fsck validates file descriptor specified in -C (Closes: #55220) - ** Fix multiple progress bar fsck bug (Closes: #65267) - ** Add devfs support to fsck (Closes: #94159) - ** Fix debugfs dump cmd looping on disk errors (Closes: #79163) - ** Miscellaneous manual page clarifications (Closes: #63442, #67446, - #87216) - ** Compilation fixes for Hurd (Closes: #52045). - ** New config.{guess,sub} for parisc support (Closes: #94690). - ** Improved ext3 support - ** tune2fs can now safely modify mounted filesystems - * Added missing @dircategory entry to libext2fs.info (lintian) - * Moved debugfs back from /usr/sbin/ to /sbin/ (Closes: #97035). - * Moved e2label back to /sbin/ as well, as it is now a hard link to - tune2fs. - * New binary package with statically linked e2fsck, recommending a - statically linked shell (Closes: #62611). - * All deps against e2fsprogs itself now versioned (lintian). - * Updated copyright file (upstream location, packaging copyright notice - for previous maintainers and for Alcove). - * Remove call to dh_testversion, use versioned build-dep instead - (lintian). - * Support for DEB_BUILD_OPTIONS debug/nostrip for policy 3.2 - compliance. - * Use dh_shlibdeps -l instead of setting LD_LIBRARY_PATH explicitly - - necessary for new versions of fakeroot, and requires debhelper 3.0.23 - for a fix. Well finally 3.0.23 is buggy, leave this for later. - * Avoid to call ldconfig at "make install" time, too costly. - * Get rid in control files of references to never-released standalone - lib files (split attempted in 1997/98). - * Bumped Standards-Version to 3.5.4. - - -- Yann Dirson Tue, 15 May 2001 14:28:39 +0200 - -e2fsprogs (1.19-4) unstable; urgency=medium - - * Added texinfo to build-deps (Closes: #87685). - - -- Yann Dirson Tue, 3 Apr 2001 09:03:13 +0200 - -e2fsprogs (1.19-3) unstable; urgency=low - - * Drop findsuper binary, and suggest gpart (Closes: #74034). - * Drop flushb and extend at upstream request (Closes: #39506). - * Applied upstream fix for chattr on large files (Closes: #72690). - * Applied clarification patch to tune2fs.8 (Closes: #67446). - * Applied typo patch to compile_et.1 (Closes: #63786). - * Include in e2fsck/journal.c (Closes: #71775). - * Suggest parted. - - -- Yann Dirson Mon, 4 Dec 2000 22:08:06 +0100 - -e2fsprogs (1.19-2) unstable; urgency=low - - * Clarified libuuid copyright to LGPL-2, excluding LGPL-2.1. - * Added build-dependency on debhelper (Closes: #67532). - * Don't parallelize fsck runs on same drive for hd[efgh] (Closes: - #59103). - * Upload pristine source, -1 was erroneously uploaded as a - debian-specific package. - - -- Yann Dirson Thu, 3 Aug 2000 00:30:49 +0200 - -e2fsprogs (1.19-1) unstable; urgency=low - - * New upstream release: - ** new program: resize2fs. - ** ext3 support. - ** NLS support (non-default, activated). - ** Compression support (non-default, activated). - ** Progress bar nice to serial console (Closes: #66079) - ** Ensure filetype feature is turned off for Hurd filesystems (Closes: - #61863) - * Updated main copyright file for a number of things. - * Fixed NLS support for flushb and extend. - * Started to add build-depends. - * Include new e2p header. - - -- Yann Dirson Wed, 19 Jul 2000 01:55:27 +0200 - -e2fsprogs (1.18-3) frozen unstable; urgency=medium - - * Fix Y2K display-only bug in debugfs - "ls -l" displayed raw tm_year, - causing 2000 to be displayed as "100" (Closes: #57135). Potato should - be y2k-clean. - * Remove empty dirs /usr/share/et/ and /usr/share/ss/ from package - e2fsprogs (Closes: #52900). - - -- Yann Dirson Mon, 21 Feb 2000 23:06:47 +0100 - -e2fsprogs (1.18-2) unstable; urgency=low - - * Test for "__sparc__" instead of "sparc" as a cpp macro in mke2fs.c - (tests in other places are correct) (Closes: #50012). - - -- Yann Dirson Fri, 12 Nov 1999 21:40:27 +0100 - -e2fsprogs (1.18-1) unstable; urgency=low - - * New upstream (bugfix) release. - - -- Yann Dirson Fri, 12 Nov 1999 17:27:20 +0100 - -e2fsprogs (1.17-2) unstable; urgency=low - - * Applied upstream patch to fix segfault (Closes: #49535). - - -- Yann Dirson Tue, 9 Nov 1999 22:14:53 +0100 - -e2fsprogs (1.17-1) unstable; urgency=low - - * New upstream (bugfix) release. - - -- Yann Dirson Wed, 27 Oct 1999 23:46:39 +0200 - -e2fsprogs (1.16-2) unstable; urgency=low - - * Fixed build of a link list in fsck.c (Closes: #48312). - - -- Yann Dirson Tue, 26 Oct 1999 01:17:36 +0200 - -e2fsprogs (1.16-1) unstable; urgency=low - - * New upstream release. - * Re-applied Hurd patches that did not seem to have been received - upstream. - - -- Yann Dirson Sun, 24 Oct 1999 16:11:59 +0200 - -e2fsprogs (1.15-3) unstable; urgency=low - - * Fixed minor typo for the Hurd. - * Fixed various Hurd defines to __GNU__ (Closes: #44407). - * Switched doc/ and info/ to FHS. - * Cleaned up debian/rules to use new debhelper features. - * Bounced Standards-Version to 3.0.1. - * Do not install buggy com_err.info, shipped as HTML. - * Removed partinfo from the package, following the wish of upstream - author, because of duplicate functionality with "fdisk -l" (Closes: - #42139). - - -- Yann Dirson Mon, 20 Sep 1999 23:04:06 +0200 - -e2fsprogs (1.15-2) unstable; urgency=medium - - * Changed build directory do debian/BUILD/ - related cleanups in - debian/rules. - * Fixed partinfo.c to have it compiled, and fixed display of partition - device in error messages. - * Added /usr/sbin/partinfo to the package (Closes: #42139). - * Added note about uuidgen(1) in README.Debian. - * Documented in manpage that default mke2fs behaviour is now -r1 -s1 - (Closes: #44478). - * Documented in mke2fs.8 that -r1 forces -s1, thus ignoring -s0. - * Added warning message when -s0 is ignored because of -r1. - * Documented -n option of mke2fs. - * Fixed display buglet causing trailing commas in list of superblock - backups when sparse flag is on and last group has no superblock - backup. - * Closes: #42434, #43134. - - -- Yann Dirson Wed, 8 Sep 1999 00:46:38 +0200 - -e2fsprogs (1.15-1) unstable; urgency=low - - * New upstream release (Closes: Bug#41763). - * All changes to upstream files in 1.14-3 were integrated upstream. - * Separated libuuid-dev from e2fslibs-dev because it now has manpages. - * Fixed debian/rules for POSIX "rmdir -p" - * Corrected the location of the GPL in copyright file. - * Moved the manpages to /usr/share/. - * Bumped Standards-Version to 3.0.0. - - -- Yann Dirson Fri, 23 Jul 1999 01:37:51 +0200 - -e2fsprogs (1.14-3) unstable; urgency=low - - * Fail with error message when /dev/null cannot be opened (Fixes: - Bug#35595). - * Fixed typo in e2fsck/unix.c (Fixes: Bug#36960). - * Added "emergency help" options summary to e2fsck (Fixes: Bug#11372). - * Prepared debian/rules for usr/share/man/. - - -- Yann Dirson Tue, 1 Jun 1999 23:37:12 +0200 - -e2fsprogs (1.14-2) unstable; urgency=low - - * Fixed fsck(1) not to coredump when it does not find its argument in - /etc/fstab (Fixes: Bug#33533, Bug#34320, part of Bug#34131). - * Fixed spelling of upstream author's name. - * Cleaned debian/*.files up. - * Undid the changes. - * Changed "rmdir -p" invocations in debian/rules into "-rmdir -p" to - turn around changed behaviour in fileutils_4.0. - - -- Yann Dirson Fri, 12 Mar 1999 23:50:47 +0100 - -e2fsprogs (1.14-1) unstable; urgency=low - - * New upstream release (Fixes: Bug#33113). - * All patches we used for 1.12 are obsoleted by 1.14. - * Still have to install com_err.info from debian/rules though. - * Incorporated patches from Gordon Matzigkeit for hurd cross-compilation: - * - configure.in: Change cross-compile default for sizeof (long - long) to 8, so that __s64 and __u64 get defined in ext2fs.h. - (BUILD_CC): Discover a native compiler if we are cross-compiling - (used for util/subst). - - Include linux/types.h instead of asm/types.h, so that - non-Linux platforms use the stubbed version provided with this - package. - - misc/Makefile.in (findsuper): Add a rule so that findsuper gets built - with the right compiler flags. - - etc. - - -- Yann Dirson Wed, 10 Feb 1999 23:23:03 +0100 - -e2fsprogs (1.12-4) frozen unstable; urgency=low - - * Ship flushb(8) and extend(8) were missing in all 1.12 packages - (Fixes: Bug#28771). - * Add extend.8 link to undocumented.7. - * Replaced my (ad-hoc) fix for Bug#25684 with (really better) one - from upstream. - - -- Yann Dirson Mon, 2 Nov 1998 20:53:28 +0100 - -e2fsprogs (1.12-3) frozen unstable; urgency=low - - * Fixed to use angle brackets instead of double - quotes when including files from /usr/include/. - * Made e2fslibs-dev depend on comerr-dev (Fixes: Bug#26282, - Bug#27497). - * Fixed mke2fs' display with inode numbers > 9999 (Fixes: Bug#25684). - * Use -D__NO_STRING_INLINES on powerpc to allow building the boot - blocks in QUIK, the powermac boot loader - reported by Matt - McLean. - * Removed unsupported info and texi entries from docbase files. - - -- Yann Dirson Mon, 19 Oct 1998 23:32:41 +0200 - -e2fsprogs (1.12-2.1) unstable; urgency=low - - * Non-maintainer upload - config.guess and config.sub files modified, to recognize a Arm - architecture. - - -- Turbo Fredriksson Thu, 13 Aug 1998 19:15:56 -0400 - -e2fsprogs (1.12-2) unstable; urgency=low - - * Really install e2label.8 manpage. - * Removed path from ldconfig invocation, obeying packaging manual. - * Improved the subst.c patch (thanks to Peter Moulder). - - -- Yann Dirson Thu, 14 Jul 1998 14:10:06 +0200 - -e2fsprogs (1.12-1) unstable; urgency=low - - * New upstream release - at last out of alpha status ! - * Removed some obsolete files from debian/attic. - * Patched util/subst.c to expand env variables, and MCONFIG.in to - have ${prefix} exported to the `subst' process, so that we get - correct paths in mk_cmds and compile_et. Forwarded upstream. - * Debian-specific /usr/share/comerr/ renamed to /usr/share/et/, now - installed upstream. - * Removed -isp from dh_gencontrol invocation - now the default. - * Passed lintian 0.5.0. - - -- Yann Dirson Fri, 10 Jul 1998 22:49:18 +0200 - -e2fsprogs (1.10-17) frozen unstable; urgency=low - - * Commented out obsolete code in fsck.c that assumed fstab entries - declared `noauto' should not be checked - successfully forwarded - upstream (Fixes: Bug#17244). - - -- Yann Dirson Fri, 15 May 1998 01:14:54 +0200 - -e2fsprogs (1.10-16) frozen unstable; urgency=low - - * Changed to in lib/uuid/uuidP.h to - allow compilation with glibc 2.0.7pre1 (Fixes: Bug#22039). - * Use "build-stamp" as a stamp file instead of "build". - * Restored "Provides: e2fslibsg" in order to allow upgrade from - unstable hamm. Documented in README.Debian so that it does not - get removed again (Fixes: Bug#22019). - - -- Yann Dirson Mon, 4 May 1998 21:11:38 +0200 - -e2fsprogs (1.10-15) frozen unstable; urgency=low - - * Added call to ldconfig in e2fsprogs.postinst. - * Fixes checks for install-docs in postinst/prerm (Fixes: Bug#20303, - Bug#20304, Bug#20590). - * Removed e2fslibsg from what e2fsprogs provides (was just forgotten). - * Passed lintian 0.4.2. - - -- Yann Dirson Sun, 26 Apr 1998 22:27:11 +0200 - -e2fsprogs (1.10-14) frozen unstable; urgency=low - - * Fixed checks for install-docs to use -x. - * Applied patch for sparc from Juan to fsck.c to compile with glibc - 2.1 (Fixes: Bug#20841). - - -- Yann Dirson Tue, 14 Apr 1998 17:12:19 +0200 - -e2fsprogs (1.10-13) frozen unstable; urgency=low - - * test for /usr/sbin/install-docs before trying to run it in - postinst and prerm (Fixes: Bug#19461, Bug#19469, Bug#19949, - Bug#20006). - * comerrg-dev now suggests doc-base. - * moved binary packages ss2g, comerr2g and e2fslibsg back into - binary package e2fsprogs. - * use new virtual packages libcomerr2, libss2, libext2fs2, libe2p2, - libuuid1 in shlibs and dependencies. - * Changed e2fsprogs dependency on libs to a Pre-Depends (Fixes: - Bug#18221). - * Not conflicting with old ss2g and comerr2g - these will have to be - removed by hand. - * Turned around dpkg's bug #17624 in e2fsprogs.preinst. - * Updated README.Debian to explain the new package architecture. - * Passed lintian 0.3.4. - - -- Yann Dirson Fri, 20 Mar 1998 13:03:11 +0100 - -e2fsprogs (1.10-12) unstable; urgency=low - - * Corrected doc menu entries to point to the real documents' places. - * Fixed mk_cmds to really find its support scripts (Fixes: Bug#18779). - * Made mk_cmds and compile_et use "sh -e". - * Have missing file /usr/include/ss/ss_err.h installed (Fixes: Bug#18778). - * Corrected typo in Description (Fixes: Bug#18890). - * Fixed descriptions for ss* packages, thanks to Greg Stark (Fixes: - Bug#18373, Bug#18447). - * Added description of e2p and uuid libs in e2fslibsg-dev description. - * Included texinfo sources. - * Added doc-base support - suppressed direct menu/dwww support. - * Complies with standards version 2.4.0.0. - * Passed lintian 0.3.0: - * removed .du control file. - * updated FSF address. - * fixed in *.files nasty ldconfig-symlink-before-shlib-in-deb's. - * turned relative links from /usr/lib into /lib into absolute ones. - - -- Yann Dirson Sun, 8 Mar 1998 19:42:58 +0100 - -e2fsprogs (1.10-11) unstable; urgency=low - - * Switched to debhelper (Fixes:Bug#16307). - * Updated standards to 2.3.0.1 - * Changed maintainer's mail address. - * Added conflicts with old versions of dump and quota. - * Added html-converted texi docs for libs, with menu(dwww) support. - * Added findsuper.8 link to undocumented. - * Changed version number of lib packages to reflect the lib versions. - * Moved libss into its own packages; added mk_cmds script and - support files for libss development (Fixes:Bug#17233). - * Added README.Debian file documenting all those dependency stuff. - * Included example error tables from libext2fs and libss in - comerr-dev. - * Included example command tables from debugfs in ss-dev. - * Added section/priority files in packages (-isp). - * Changed names/relations for doc dirs to comply with policy. - * Removed call to ldconfig from e2fsprogs.postinst. - - -- Yann Dirson Thu, 29 Jan 1998 18:10:03 +0100 - -e2fsprogs (1.10-10) unstable; urgency=low - - * Added patch from Michael Alan Dorman for compilation on alpha-Linux - (Closes:Bug#15596). - * Added '-fsigned-char' to COPTS to allow compilation on ppc-Linux - (Closes:Bug#15976). - * Suppressed Essential flag on libs, as well as useless Replaces - (Closes: Bug#16480). - * Suppressed reference to obsolete package `e2fsprogsg' in control - info, but Conflicts for security (Closes:Bug#16791). - - -- Yann Dirson Wed, 7 Jan 1998 22:35:08 +0100 - -e2fsprogs (1.10-9) unstable; urgency=low - - * Fixed comerr2g.shlibs to reflect package-name change. - * Fixed problem with ss include files being removed from /usr on make - install (indeed fixed in 1.10-8). - * Added changelog file to comerr2g package (indeed fixed in 1.10-8). - * Corrected link from flushb.8 to undocumented (Closes:Bug#15335,Bug#15660,Bug#15675). - * Added /sbin/findsuper (Closes:Bug#15224). - * Fixed /usr/bin/compile_et script (Closes:Bug#15487). - * Included awk scripts in /usr/share/comerr, for use by compile_et. - * Changed back the name from "e2fsprogsg" to "e2fsprogs" to get better - dependencies. - * Strip libraries (Closes:Bug#15667). - - -- Yann Dirson Tue, 9 Dec 1997 22:52:42 +0100 - -e2fsprogs (1.10-8) unstable; urgency=low - - * Added latest patch from Ted for autodetection of llseek() proto. - * Switched to libc6, without libc5 compatibility (yet ?). - * Turned Pre-Depends into Depends to allow installation. Dirty - though. But what were Pre-Depends for anyway ? - - -- Yann Dirson Sun, 23 Nov 1997 23:03:02 +0100 - -e2fsprogs (1.10-7) unstable; urgency=HIGH - - * Turned "#if (__GLIBC__ == 2)" into "#if 1" to turn around missing llseek() - prototype in libc_5.4.33-5 as well as libc6. - - -- Yann Dirson Tue, 21 Oct 1997 12:53:27 +0200 - -e2fsprogs (1.10-6) unstable; urgency=low - - * Official libc6 patches from Ted. - * Converted to debstd - let it do the stripping stuff. - * Separated libcomerr into a standalone lib - includes full doc and tools. - * Separated development files into e2fslibs-dev, which Provides the 4 other - -dev packages. - * Now Provides the 4 other lib packages, to make it possible not to depend - upon e2fsprogs itself. These libs WILL be taken out of "progs" in the - next release. - - -- Yann Dirson Wed, 24 Sep 1997 10:46:00 +0200 - -e2fsprogs (1.10-5.1) experimental; urgency=low - - * Applied patch from Ted for libc6 compatibility, for test purpose. - - -- Yann Dirson Thu, 11 Sep 1997 09:09:42 +0200 - -e2fsprogs (1.10-5) unstable; urgency=medium - - * Switched back to libc5 because of possible bug in libc6-2.0.4-provided - llseek() causing problem with partitions > 2Gb. - * Switched back to libc-provided llseek(). - - -- Yann Dirson Tue, 5 Aug 1997 16:54:40 +0200 - -e2fsprogs (1.10-4.1) unstable; urgency=low - - * Make use of shipped llseek instead of glibc's which seems buggy - [unreleased - could not compile due to possible gcc bug]. - * Corrected compiler-options handling in debian/rules (use CCOPTS instead - of CFLAGS which is messed with in configure.in). - - -- Yann Dirson Mon, 28 Jul 1997 19:47:02 +0200 - -e2fsprogs (1.10-4) unstable; urgency=low - - * Switched to libc6. - * Added calls to update-info in postins/prerm. - * Misc changes to debian/rules; some cleanup in Makefiles. - - -- Yann Dirson Thu, 10 Jul 1997 19:42:54 +0200 - -e2fsprogs (1.10-3) stable unstable; urgency=low - - * New maintainer (closed many obsolete bug-reports). - * updated "copyright" to show new location on tsx-11. - * started debian/rules cleanup, towards new policy conformance. - * Added flushb.8 link to undocumented.7 (bug #8644). - * Added {fsck,mkfs}.ext2.8 links to existing manpages (bugs #5598, - #6286). - - -- Yann Dirson Wed, 25 Jun 1997 14:59:58 +0200 - -e2fsprogs (1.10-2) frozen unstable; urgency=low - - * Add 'ldconfig' to postinst (should fix #9020). - * Define HAVE_NETINET_IN_H on alpha/glibc. - - -- Klee Dienes Tue, 29 Apr 1997 17:24:12 -0400 - -e2fsprogs (1.10-1) frozen unstable; urgency=medium - - * Upstream bug-fix release. - - -- Klee Dienes Thu, 24 Apr 1997 14:54:12 -0400 - -e2fsprogs (1.09-1) frozen; urgency=medium - - * Upstream bug-fix release. - - -- Klee Dienes Thu, 24 Apr 1997 14:54:12 -0400 - -e2fsprogs (1.06-4) unstable; urgency=low - - * Added empty entries to shlibs.local, to neatly solve the pre-depends - problem, as suggested by Ian Jackson. - - -- Michael Nonweiler Wed, 13 Nov 1996 08:13:28 +0000 - -e2fsprogs (1.06-3) unstable; urgency=low - - * Hard coded Pre-Depends line, as a temporary fix for the pre-depends - contains e2fsprogs problem. - - -- Michael Nonweiler Sat, 9 Nov 1996 12:57:44 +0000 - -e2fsprogs (1.06-2) unstable; urgency=low - - * New packaging format - * Fixes packaging bugs - - Files in /lib are now stripped of all unneeded symbols (Bug#5121) - Calls to ldconfig in maintainer scripts have been removed (Bug#4247) - - -- Michael Nonweiler Tue, 5 Nov 1996 21:14:54 +0000 - -e2fsprogs (1.01-1) unstable; urgency=low - - * upgraded to latest upstream version, to 1.06 from 1.05 - * upgraded to latest upstream version, to 1.05 from 1.04 - * gzip manpages - * minor changes to debian.rules - - -- Michael Meskes Fri, 18 Oct 1996 00:00:00 +0000 - -e2fsprogs (1.04-1) unstable; urgency=low - - * upgraded to latest upstream version, to 1.04 from 1.02 - * another tidy-up of debian.rules - * section and priority added to debian.control, since this is an - essential base package. - - -- Michael Nonweiler Sun, 23 Jun 1996 00:00:00 +0000 - -e2fsprogs (1.02-1) unstable; urgency=low - - * upgraded to latest upstream version, to 1.02 from 1.01 - * copied "configure" usr_prefix change (see below), into configure.in - * updated debian.control file, added Pre-Depends field - created preinst script to check dpkg --assert-predepends - tidied and fixed debian.rules - * set e2fsck to link shared, as suggested by Bruce Perens in Bug#2332 - * corrected problem in e2fsck error message, Bug#2534 - * added Architecture field - * very minor correction to expected output of a build time test - - -- Michael Nonweiler Tue, 5 Mar 1996 00:00:00 +0000 - -e2fsprogs (1.01-1) unstable; urgency=low - - * removed debugging symbols from libs and enabled more optimization - as suggested by Rolf Rossius - * also removed the /var/catman pages - * changed to elf compilation - - -- Andrew D. Fernandes Mon, 20 Nov 1995 00:00:00 +0000 - -e2fsprogs (0.5b-2) unstable; urgency=low - - * Upgraded to latest version, to 1.01 from 0.5b. - * changed the installation groups from bin to root in MCONFIG.in - * changed configure to set usr_prefix="\${prefix}/usr" - * moved the cat pages to /var/catman in MCONFIG.in - - -- Andrew D. Fernandes Sat, 7 Oct 1995 00:00:00 +0000 - -e2fsprogs (0.5b-1) unstable; urgency=low - - * Made "fsck -t " work correctly. Formerly - the -t argument was overridden by the filesystem type listed for the - device in /etc/fstab. - * added Debian GNU/Linux package maintenance system files - - -- Bruce Perens Thu, 3 Aug 1995 00:00:00 +0000 diff --git a/debian/comerr-dev.doc-base b/debian/comerr-dev.doc-base deleted file mode 100644 index 463eb767..00000000 --- a/debian/comerr-dev.doc-base +++ /dev/null @@ -1,12 +0,0 @@ -Document: comerr-manual -Title: The com_err library -Author: Ken Raeburn and Bill Sommerfeld -Abstract: A library, and associated utilities, - which allow a more uniform way for libraries - to return errors to their callers, and for programs - to describe errors and exceptional conditions to their users. -Section: Programming - -Format: HTML -Index: /usr/share/doc/comerr-dev/html-info/com_err.html -Files: /usr/share/doc/comerr-dev/html-info/*.html diff --git a/debian/comerr-dev.examples b/debian/comerr-dev.examples deleted file mode 100644 index aff20cc9..00000000 --- a/debian/comerr-dev.examples +++ /dev/null @@ -1,2 +0,0 @@ -lib/ss/ss_err.et -debian/BUILD-STD/lib/ext2fs/ext2_err.et diff --git a/debian/comerr-dev.install b/debian/comerr-dev.install deleted file mode 100644 index a3b8b0e4..00000000 --- a/debian/comerr-dev.install +++ /dev/null @@ -1,9 +0,0 @@ -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 diff --git a/debian/comerr-dev.postinst b/debian/comerr-dev.postinst deleted file mode 100644 index aae743af..00000000 --- a/debian/comerr-dev.postinst +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh - -# Abort on error. -set -e - -symlink_match() -{ - local SYMLINK="$1" - local SYMLINK_TARGET="$2" - - [ "$(readlink "$SYMLINK")" = "$SYMLINK_TARGET" ] || \ - [ "$(readlink -f "$SYMLINK")" = "$SYMLINK_TARGET" ] -} - -SYMLINK=/usr/share/doc/comerr-dev -SYMLINK_TARGET=libcomerr2 -SYMLINK_TARGET2=libcom-err2 - -if [ "$1" = "configure" ] && [ -h "${SYMLINK}.dpkg-backup" ] -then - if symlink_match "${SYMLINK}.dpkg-backup" "$SYMLINK_TARGET" || - symlink_match "${SYMLINK}.dpkg-backup" "$SYMLINK_TARGET2" - then - rm -f "${SYMLINK}.dpkg-backup" - fi -fi - -#DEBHELPER# - -exit 0 diff --git a/debian/comerr-dev.postrm b/debian/comerr-dev.postrm deleted file mode 100644 index 8f9e679b..00000000 --- a/debian/comerr-dev.postrm +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh - -# Abort on error. -set -e - -symlink_match() -{ - local SYMLINK="$1" - local SYMLINK_TARGET="$2" - - [ "$(readlink "$SYMLINK")" = "$SYMLINK_TARGET" ] || \ - [ "$(readlink -f "$SYMLINK")" = "$SYMLINK_TARGET" ] -} - -SYMLINK=/usr/share/doc/comerr-dev -SYMLINK_TARGET=libcomerr2 -SYMLINK_TARGET2=libcom-err2 - -if [ "$1" = "purge" ] && [ -h "${SYMLINK}.dpkg-backup" ] -then - rm -f "${SYMLINK}.dpkg-backup" -fi -if [ "$1" = "abort-install" -o "$1" = "abort-upgrade" ] && - [ -n "$2" ] && [ ! -e "$SYMLINK" ] && [ -h "${SYMLINK}.dpkg-backup" ] -then - if symlink_match "${SYMLINK}.dpkg-backup" "$SYMLINK_TARGET" || - symlink_match "${SYMLINK}.dpkg-backup" "$SYMLINK_TARGET2" - then - echo "Restoring backup of $SYMLINK ..." - mv "${SYMLINK}.dpkg-backup" "$SYMLINK" - fi -fi - -#DEBHELPER# - -exit 0 diff --git a/debian/comerr-dev.preinst b/debian/comerr-dev.preinst deleted file mode 100644 index 5d8090aa..00000000 --- a/debian/comerr-dev.preinst +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh - -# Abort on error. -set -e - -symlink_match() -{ - local SYMLINK="$1" - local SYMLINK_TARGET="$2" - - [ "$(readlink "$SYMLINK")" = "$SYMLINK_TARGET" ] || \ - [ "$(readlink -f "$SYMLINK")" = "$SYMLINK_TARGET" ] -} - -SYMLINK=/usr/share/doc/comerr-dev -SYMLINK_TARGET=libcomerr2 -SYMLINK_TARGET2=libcom-err2 - -if [ "$1" = "install" -o "$1" = "upgrade" ] && - [ -n "$2" ] && [ -h "$SYMLINK" ] -then - if symlink_match "$SYMLINK" "$SYMLINK_TARGET" || - symlink_match "$SYMLINK" "$SYMLINK_TARGET2" - then - mv -f "$SYMLINK" "${SYMLINK}.dpkg-backup" - fi -fi - -#DEBHELPER# - -exit 0 diff --git a/debian/control b/debian/control deleted file mode 100644 index 84cf9d8f..00000000 --- a/debian/control +++ /dev/null @@ -1,193 +0,0 @@ -Source: e2fsprogs -Section: admin -Priority: required -Maintainer: Theodore Y. Ts'o -Build-Depends: gettext, texinfo, pkg-config, libfuse-dev [linux-any kfreebsd-any] , debhelper-compat (= 12), dh-exec, libblkid-dev, uuid-dev, m4, udev [linux-any], systemd [linux-any], cron [linux-any] -Rules-Requires-Root: no -Standards-Version: 4.5.1 -Homepage: http://e2fsprogs.sourceforge.net -Vcs-Browser: https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git -Vcs-Git: https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git -b debian/master - -Package: fuse2fs -Build-Profiles: -Priority: optional -Depends: ${shlibs:Depends}, ${misc:Depends} -Architecture: linux-any kfreebsd-any -Description: ext2 / ext3 / ext4 file system driver for FUSE - fuse2fs is a FUSE file system client that supports reading and - writing from devices or image files containing ext2, ext3, and ext4 - file systems. - -Package: logsave -Priority: optional -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: e2fsprogs (<< 1.45.3-1) -Breaks: e2fsprogs (<< 1.45.3-1) -Architecture: any -Multi-Arch: foreign -Description: save the output of a command in a log file - The logsave program will execute cmd_prog with the specified - argument(s), and save a copy of its output to logfile. If the - containing directory for logfile does not exist, logsave will - accumulate the output in memory until it can be written out. A copy - of the output will also be written to standard output. - -Package: e2fsck-static -Build-Profiles: -Priority: optional -Depends: ${misc:Depends} -Recommends: sash | bash-static | zsh-static | busybox-static -Architecture: any -Description: statically-linked version of the ext2/ext3/ext4 filesystem checker - This may be of some help to you if your filesystem gets corrupted enough - to break the shared libraries used by the dynamically linked checker. - . - This binary takes much more space than its dynamic counterpart located - in e2fsprogs, though. - . - 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. - -Package: e2fsprogs-l10n -Section: localization -Priority: optional -Depends: e2fsprogs (>= ${binary:Version}), e2fsprogs (<< ${binary:Version}+c~), ${misc:Depends} -Replaces: e2fsprogs (<< 1.43.5-1) -Architecture: all -Multi-Arch: foreign -Description: ext2/ext3/ext4 file system utilities - translations - 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 - hard disks on Debian and other Linux systems. - . - This package provides translations for messages for programs found in - the 'e2fsprogs' package. - -Package: libcom-err2 -Section: libs -Priority: optional -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: libcomerr2 (<< 1.43.9-1~) -Breaks: libcomerr2 (<< 1.43.9-1~) -Provides: libcomerr2 (= ${binary:Version}) -Architecture: any -Multi-Arch: same -Pre-Depends: ${misc:Pre-Depends} -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 - have the problems identified with mechanisms commonly in use. - -Package: comerr-dev -Section: libdevel -Priority: optional -Depends: libc6-dev | libc-dev, libcom-err2 (= ${mainBinary}), ${misc:Depends} -Suggests: doc-base -Replaces: e2fslibs-dev (<< 1.33-2), libkrb5-dev (<< 1.3) -Architecture: any -Multi-Arch: same -Description: common error description library - headers and static libraries - libcom_err 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 - have the problems identified with mechanisms commonly in use. - . - This package contains the development environment for the com_err library. - -Package: libss2 -Section: libs -Priority: optional -Depends: libcom-err2, ${shlibs:Depends}, ${misc:Depends} -Replaces: e2fsprogs (<< 1.34-1) -Architecture: any -Multi-Arch: same -Pre-Depends: ${misc:Pre-Depends} -Description: command-line interface parsing library - 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. - -Package: ss-dev -Section: libdevel -Priority: optional -Depends: libc6-dev | libc-dev, libss2 (= ${mainBinary}), comerr-dev, ${misc:Depends} -Architecture: any -Multi-Arch: same -Description: command-line interface parsing library - headers and static libraries - 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. - . - It was originally inspired by the Multics SubSystem library. - . - This package contains the development environment for the ss library. - -Package: e2fsprogs-udeb -Build-Profiles: -Package-Type: udeb -Section: debian-installer -Priority: optional -Depends: ${shlibs:Depends}, ${misc:Depends} -Architecture: any -Description: stripped-down versions of e2fsprogs, for debian-installer - This package is an e2fsprogs package built for a reduced size, so that - it can help to save space in debian-installer. - . - Don't attempt to install this package, it has no support for a couple of - features you surely want. Anyway it should refuse to install. - -Package: libext2fs2 -Section: libs -Priority: optional -Depends: ${shlibs:Depends}, ${misc:Depends} -Replaces: e2fslibs (<< 1.43.9-1~) -Breaks: e2fslibs (<< 1.43.9-1~) -Provides: e2fslibs (= ${binary:Version}) -Architecture: any -Multi-Arch: same -Pre-Depends: ${misc:Pre-Depends} -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 - hard disks on Debian and other Linux systems. - . - This package provides the ext2fs and e2p libraries, for userspace software - that directly accesses extended file systems. Programs that use libext2fs - include e2fsck, mke2fs, and tune2fs. Programs that use libe2p include - dumpe2fs, chattr, and lsattr. - -Package: libext2fs-dev -Section: libdevel -Priority: optional -Depends: libc6-dev | libc-dev, comerr-dev, libext2fs2 (= ${binary:Version}), ${misc:Depends} -Replaces: e2fslibs-dev (<< 1.43.9-1~) -Breaks: e2fslibs-dev (<< 1.43.9-1~) -Provides: e2fslibs-dev (= ${binary:Version}) -Suggests: doc-base -Architecture: any -Description: ext2/ext3/ext4 file system libraries - headers and static 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 - hard disks on Debian and other Linux systems. - . - This package contains the development environment for the ext2fs and e2p - libraries. - -Package: e2fsprogs -XB-Important: yes -Pre-Depends: ${shlibs:Depends}, ${misc:Depends}, libblkid1, libuuid1 -Depends: logsave -Multi-Arch: foreign -Suggests: gpart, parted, fuse2fs, e2fsck-static -Recommends: e2fsprogs-l10n -Architecture: any -Description: ext2/ext3/ext4 file system utilities - 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 - hard disks on Debian and other Linux systems. - . - This package contains programs for creating, checking, and maintaining - ext2/3/4-based file systems. It also includes the "badblocks" program, - which can be used to scan for bad blocks on a disk or other storage device. diff --git a/debian/copyright b/debian/copyright deleted file mode 100644 index e6f46761..00000000 --- a/debian/copyright +++ /dev/null @@ -1,73 +0,0 @@ -This is the Debian GNU/Linux prepackaged version of the EXT2 file -system utilities (e2fsck, mke2fs, etc.). The EXT2 utilities were -written by Theodore Ts'o and Remy Card . - -Sources were obtained from http://sourceforge.net/projects/e2fsprogs - -Packaging is Copyright (c) 2003-2007 Theodore Ts'o - Copyright (c) 1997-2003 Yann Dirson - Copyright (c) 2001 Alcove - Copyright (c) 1997 Klee Dienes - Copyright (c) 1995-1996 Michael Nonweiler - -Upstream Author: Theodore Ts'o - -Copyright notice: - -This package, the EXT2 filesystem utilities, are made available under -the GNU General Public License version 2, with the exception of the -lib/ext2fs and lib/e2p libraries, which are made available under the -GNU Library General Public License Version 2, the lib/uuid library -which is made available under a BSD-style license and the lib/et and -lib/ss libraries which are made available under an MIT-style license. - - Copyright (c) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by Theodore Ts'o - -On Debian GNU systems, the complete text of the GNU General Public -License can be found in `/usr/share/common-licenses/GPL-2'. The -complete text of the GNU Library General Public License can be found -in '/usr/share/common-licenses/LGPL-2'. - - -The license used for lib/et and lib/ss libraries is: - - Copyright 1987 by the Student Information Processing Board - of the Massachusetts Institute of Technology - - Permission to use, copy, modify, and distribute this software and - its documentation for any purpose is hereby granted, provided that - the names of M.I.T. and the M.I.T. S.I.P.B. not be used in - advertising or publicity pertaining to distribution of the software - without specific, written prior permission. M.I.T. and the - M.I.T. S.I.P.B. make no representations about the suitability of - this software for any purpose. It is provided "as is" without - express or implied warranty. - -The license used for lib/uuid is: - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, and the entire permission notice in its entirety, - including the disclaimer of warranties. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. The name of the author may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF - WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE - USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH - DAMAGE. diff --git a/debian/e2fsck-static.copyright b/debian/e2fsck-static.copyright deleted file mode 100644 index b5b5d3fd..00000000 --- a/debian/e2fsck-static.copyright +++ /dev/null @@ -1,26 +0,0 @@ -This is the Debian GNU/Linux prepackaged version of the static EXT2 -file system consistency checker (e2fsck.static). The EXT2 utilities -were written by Theodore Ts'o and Remy Card -. - -Sources were obtained from http://sourceforge.net/projects/e2fsprogs - -Packaging is Copyright (c) 2003-2006 Theodore Ts'o - Copyright (c) 1997-2003 Yann Dirson - Copyright (c) 2001 Alcove - Copyright (c) 1997 Klee Dienes - Copyright (c) 1995-1996 Michael Nonweiler - -Upstream Author: Theodore Ts'o - -Copyright notice: - -This package, the EXT2 filesystem utilities, is protected by the GNU -General Public License. - - Copyright (c) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by Theodore Ts'o - -On Debian GNU systems, the complete text of the GNU General -Public License can be found in `/usr/share/common-licenses/GPL-2'. - diff --git a/debian/e2fsck-static.install b/debian/e2fsck-static.install deleted file mode 100644 index 15a7716e..00000000 --- a/debian/e2fsck-static.install +++ /dev/null @@ -1,2 +0,0 @@ -/sbin/e2fsck.static -/usr/share/man/man8/e2fsck.static* diff --git a/debian/e2fsck-static.preinst b/debian/e2fsck-static.preinst deleted file mode 100644 index e756adea..00000000 --- a/debian/e2fsck-static.preinst +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# Abort on error. -set -e - -PKG=e2fsck-static -DOCLNK=/usr/share/doc/$PKG -if test "$1" = upgrade \ - -a -L $DOCLNK -then - rm $DOCLNK -fi - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 diff --git a/debian/e2fsprogs-l10n.copyright b/debian/e2fsprogs-l10n.copyright deleted file mode 100644 index 9dbe5c00..00000000 --- a/debian/e2fsprogs-l10n.copyright +++ /dev/null @@ -1,26 +0,0 @@ -This is the Debian GNU/Linux prepackaged version of the translation -files of the EXT2 file system utilities. The EXT2 utilities were -written by Theodore Ts'o and Remy Card -. - -Sources were obtained from http://sourceforge.net/projects/e2fsprogs - -Packaging is Copyright (c) 2003-2006 Theodore Ts'o - Copyright (c) 1997-2003 Yann Dirson - Copyright (c) 2001 Alcove - Copyright (c) 1997 Klee Dienes - Copyright (c) 1995-1996 Michael Nonweiler - -Upstream Author: Theodore Ts'o - -Copyright notice: - -This package, the EXT2 filesystem utilities, is protected by the GNU -General Public License. - - Copyright (c) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by Theodore Ts'o - -On Debian GNU systems, the complete text of the GNU General -Public License can be found in `/usr/share/common-licenses/GPL-2'. - diff --git a/debian/e2fsprogs-l10n.install b/debian/e2fsprogs-l10n.install deleted file mode 100644 index 36354806..00000000 --- a/debian/e2fsprogs-l10n.install +++ /dev/null @@ -1 +0,0 @@ -usr/share/locale diff --git a/debian/e2fsprogs-udeb.install b/debian/e2fsprogs-udeb.install deleted file mode 100644 index a6d68678..00000000 --- a/debian/e2fsprogs-udeb.install +++ /dev/null @@ -1,11 +0,0 @@ -etc/mke2fs.conf -lib/*/lib*.so.* -sbin/badblocks -sbin/e2fsck -sbin/mke2fs -sbin/resize2fs -sbin/tune2fs -sbin/e2label -sbin/e2mmpstatus -sbin/fsck.ext? -sbin/mkfs.ext? diff --git a/debian/e2fsprogs-udeb.lintian-overrides b/debian/e2fsprogs-udeb.lintian-overrides deleted file mode 100644 index 683a11fc..00000000 --- a/debian/e2fsprogs-udeb.lintian-overrides +++ /dev/null @@ -1,2 +0,0 @@ -e2fsprogs-udeb udeb: package-name-doesnt-match-sonames libcom-err2 libe2p2 libext2fs2 libss2 - diff --git a/debian/e2fsprogs-udeb.shlibs.local b/debian/e2fsprogs-udeb.shlibs.local deleted file mode 100644 index b41b583e..00000000 --- a/debian/e2fsprogs-udeb.shlibs.local +++ /dev/null @@ -1,6 +0,0 @@ -libblkid 1 libblkid1-udeb -# force the dependency to libblkid1-udeb, even if it don't include the lib -libcom_err 2 libblkid1-udeb -libuuid 1 libuuid1-udeb -libext2fs 2 libblkid1-udeb -libe2p 2 libblkid1-udeb diff --git a/debian/e2fsprogs.docs b/debian/e2fsprogs.docs deleted file mode 100644 index e845566c..00000000 --- a/debian/e2fsprogs.docs +++ /dev/null @@ -1 +0,0 @@ -README diff --git a/debian/e2fsprogs.install b/debian/e2fsprogs.install deleted file mode 100755 index 8cf07a6f..00000000 --- a/debian/e2fsprogs.install +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/dh-exec -sbin/badblocks -sbin/debugfs -sbin/dumpe2fs -sbin/e2fsck -sbin/e2image -sbin/e2label -sbin/e2mmpstatus -[linux-any] sbin/e2scrub -[linux-any] sbin/e2scrub_all -sbin/e2undo -sbin/fsck.ext? -sbin/mke2fs -sbin/mkfs.ext? -sbin/resize2fs -sbin/tune2fs -usr/bin/chattr -usr/bin/lsattr -[linux-any] usr/lib/*/e2fsprogs/e2scrub_all_cron -[linux-any] usr/lib/*/e2fsprogs/e2scrub_fail -usr/sbin/e2freefrag -[linux-any] usr/sbin/e4crypt -[linux-any] usr/sbin/e4defrag -usr/sbin/filefrag -usr/sbin/mklost+found -usr/share/man/man1/chattr.1 -usr/share/man/man1/lsattr.1 -usr/share/man/man5/e2fsck.conf.5 -usr/share/man/man5/ext?.5 -usr/share/man/man5/mke2fs.conf.5 -usr/share/man/man8/badblocks.8 -usr/share/man/man8/debugfs.8 -usr/share/man/man8/dumpe2fs.8 -usr/share/man/man8/e2freefrag.8 -usr/share/man/man8/e2fsck.8 -usr/share/man/man8/e2image.8 -usr/share/man/man8/e2label.8 -usr/share/man/man8/e2mmpstatus.8 -[linux-any] usr/share/man/man8/e2scrub.8 -[linux-any] usr/share/man/man8/e2scrub_all.8 -usr/share/man/man8/e2undo.8 -[linux-any] usr/share/man/man8/e4crypt.8 -[linux-any] usr/share/man/man8/e4defrag.8 -usr/share/man/man8/filefrag.8 -usr/share/man/man8/fsck.ext?.8 -usr/share/man/man8/mke2fs.8 -usr/share/man/man8/mkfs.ext?.8 -usr/share/man/man8/mklost+found.8 -usr/share/man/man8/resize2fs.8 -usr/share/man/man8/tune2fs.8 -etc -[linux-any] lib/udev/rules.d -[linux-any] lib/systemd/system diff --git a/debian/e2fsprogs.lintian-overrides b/debian/e2fsprogs.lintian-overrides deleted file mode 100644 index b40d1139..00000000 --- a/debian/e2fsprogs.lintian-overrides +++ /dev/null @@ -1 +0,0 @@ -e2fsprogs: package-supports-alternative-init-but-no-init.d-script diff --git a/debian/e2fsprogs.postinst b/debian/e2fsprogs.postinst deleted file mode 100644 index 00ac363d..00000000 --- a/debian/e2fsprogs.postinst +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -# Abort on error. -set -e - -if [ -x /usr/sbin/update-initramfs -a \ - -e /etc/initramfs-tools/initramfs.conf ]; then - update-initramfs -u -fi - -#DEBHELPER# - -exit 0 diff --git a/debian/e2fsprogs.postinst.dh9 b/debian/e2fsprogs.postinst.dh9 deleted file mode 100644 index e7acb0ea..00000000 --- a/debian/e2fsprogs.postinst.dh9 +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh - -# Abort on error. -set -e - -if [ -x /usr/sbin/update-initramfs -a \ - -e /etc/initramfs-tools/initramfs.conf ]; then - update-initramfs -u -fi - -#DEBHELPER# - -# debhelper doesn't know what timers are... -update_svc() { - deb-systemd-helper unmask "$1" >/dev/null || true - - if deb-systemd-helper --quiet was-enabled "$1"; then - deb-systemd-helper enable "$1" >/dev/null || true - else - deb-systemd-helper update-state "$1" >/dev/null || true - fi -} -update_svc e2scrub_all.timer -update_svc e2scrub_reap.service - -# Start our new services -if [ -d /run/systemd/system ]; then - systemctl --system daemon-reload >/dev/null || true - deb-systemd-invoke start e2scrub_all.timer >/dev/null || true -fi - -exit 0 diff --git a/debian/e2fsprogs.postrm.dh9 b/debian/e2fsprogs.postrm.dh9 deleted file mode 100644 index 32cb6426..00000000 --- a/debian/e2fsprogs.postrm.dh9 +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh - -update_svc() { - deb-systemd-helper mask "$1" >/dev/null || true - - if deb-systemd-helper --quiet was-enabled "$1"; then - # Enables the unit on first installation, creates new - # symlinks on upgrades if the unit file has changed. - deb-systemd-helper disable "$1" >/dev/null || true - fi -} - -if [ "$1" != "upgrade" ]; then - # Abort on error. - set -e - - if [ -x /usr/sbin/update-initramfs -a \ - -e /etc/initramfs-tools/initramfs.conf ]; then - update-initramfs -u - fi - - #DEBHELPER# - - # debhelper doesn't know what timers are... - update_svc e2scrub_all.timer - update_svc e2scrub_reap.service - - # Start our new services - if [ -d /run/systemd/system ]; then - deb-systemd-invoke stop e2scrub_all.timer >/dev/null || true - fi -fi - -exit 0 - diff --git a/debian/e2fsprogs.preinst b/debian/e2fsprogs.preinst deleted file mode 100644 index bfa9f6b0..00000000 --- a/debian/e2fsprogs.preinst +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# Abort on error. -set -e - -PKG=e2fsprogs -DOCLNK=/usr/share/doc/$PKG -if test "$1" = upgrade \ - -a -L $DOCLNK -then - rm $DOCLNK -fi - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 diff --git a/debian/e2fsprogs.shlibs.local b/debian/e2fsprogs.shlibs.local deleted file mode 100644 index a99d2a0a..00000000 --- a/debian/e2fsprogs.shlibs.local +++ /dev/null @@ -1,2 +0,0 @@ -libext2fs 2 libext2fs2 (= ${binary:Version}) -libe2p 2 libext2fs2 (= ${binary:Version}) diff --git a/debian/fuse2fs.install b/debian/fuse2fs.install deleted file mode 100644 index 2ed4c3c0..00000000 --- a/debian/fuse2fs.install +++ /dev/null @@ -1,2 +0,0 @@ -/usr/bin/fuse2fs -/usr/share/man/man1/fuse2fs.1 diff --git a/debian/gbp.conf b/debian/gbp.conf deleted file mode 100644 index c974add9..00000000 --- a/debian/gbp.conf +++ /dev/null @@ -1,4 +0,0 @@ -[DEFAULT] -pristine-tar = True -upstream-tag='v%(version)s' -debian-branch=debian/master diff --git a/debian/libblkid-dev.install b/debian/libblkid-dev.install deleted file mode 100644 index 7b3da368..00000000 --- a/debian/libblkid-dev.install +++ /dev/null @@ -1,4 +0,0 @@ -usr/lib/*/libblkid*.so.* -usr/include/blkid -usr/share/man/man3/libblkid.3 -usr/lib/*/pkgconfig/blkid.pc diff --git a/debian/libblkid.copyright b/debian/libblkid.copyright deleted file mode 100644 index 8be818b5..00000000 --- a/debian/libblkid.copyright +++ /dev/null @@ -1,19 +0,0 @@ -This package was added to the e2fsprogs debian source package by -Theodore Ts'o on Sat Mar 15 15:33:37 EST 2003 - -It is part of the main e2fsprogs distribution, which can be found at: - - http://sourceforge.net/projects/e2fsprogs - -Upstream Author: Theodore Ts'o - -Copyright: - -Copyright (C) 1999, 2001 by Andries Brouwer -Copyright (C) 1999, 2000, 2003 by Theodore Ts'o - -You are free to distribute this software under the terms of the GNU -Lesser (Library) General Public License. - -On Debian systems, the complete text of the GNU Lesser (Library) -General Public License can be found in /usr/share/common-licenses/LGPL-2. diff --git a/debian/libblkid1.install b/debian/libblkid1.install deleted file mode 100644 index 54ef86de..00000000 --- a/debian/libblkid1.install +++ /dev/null @@ -1 +0,0 @@ -lib/*/libblkid*.so.* diff --git a/debian/libblkid1.symbols b/debian/libblkid1.symbols deleted file mode 100644 index 5ab91f5e..00000000 --- a/debian/libblkid1.symbols +++ /dev/null @@ -1,41 +0,0 @@ -libblkid.so.1 libblkid1 #MINVER# - blkid__scan_dir@Base 1.41.1 - blkid_debug_mask@Base 1.33 - blkid_dev_devname@Base 1.33 - blkid_dev_has_tag@Base 1.38 - blkid_dev_iterate_begin@Base 1.33 - blkid_dev_iterate_end@Base 1.33 - blkid_dev_next@Base 1.33 - blkid_dev_set_search@Base 1.38 -#MISSING: 1.41.1# blkid_devdirs@Base 1.34 - blkid_devno_to_devname@Base 1.33 - blkid_find_dev_with_tag@Base 1.33 - blkid_find_tag_dev@Base 1.33 - blkid_flush_cache@Base 1.33 - blkid_free_dev@Base 1.33 - blkid_free_tag@Base 1.33 - blkid_gc_cache@Base 1.40 - blkid_get_cache@Base 1.33 - blkid_get_dev@Base 1.33 - blkid_get_dev_size@Base 1.33 - blkid_get_devname@Base 1.33 - blkid_get_library_version@Base 1.37 - blkid_get_tag_value@Base 1.33 - blkid_known_fstype@Base 1.34 - blkid_llseek@Base 1.33 - blkid_new_dev@Base 1.33 - blkid_parse_tag_string@Base 1.33 - blkid_parse_version_string@Base 1.37 - blkid_probe_all@Base 1.33 - blkid_probe_all_new@Base 1.38 - blkid_put_cache@Base 1.33 - blkid_read_cache@Base 1.33 - blkid_set_tag@Base 1.33 - blkid_strdup@Base 1.33 - blkid_strndup@Base 1.33 - blkid_tag_iterate_begin@Base 1.33 - blkid_tag_iterate_end@Base 1.33 - blkid_tag_next@Base 1.33 - blkid_verify@Base 1.37 -#MISSING: 1.40.7# check_for_modules@Base 1.40.6 -#MISSING: 1.40.7# fs_proc_check@Base 1.40.6 diff --git a/debian/libcom-err2.copyright b/debian/libcom-err2.copyright deleted file mode 100644 index 578628a5..00000000 --- a/debian/libcom-err2.copyright +++ /dev/null @@ -1,24 +0,0 @@ -This is the Debian GNU/Linux prepackaged version of the Common Error -Description library. It is currently distributed together with the EXT2 file -system utilities, which are otherwise packaged as "e2fsprogs". - -This package was put together by Yann Dirson , -from sources obtained from a mirror of: - tsx-11.mit.edu:/pub/linux/packages/ext2fs/ - -From the original distribution: - -Copyright 1987, 1988 by the Student Information Processing Board - of the Massachusetts Institute of Technology - -Permission to use, copy, modify, and distribute this software -and its documentation for any purpose and without fee is -hereby granted, provided that the above copyright notice -appear in all copies and that both that copyright notice and -this permission notice appear in supporting documentation, -and that the names of M.I.T. and the M.I.T. S.I.P.B. not be -used in advertising or publicity pertaining to distribution -of the software without specific, written prior permission. -M.I.T. and the M.I.T. S.I.P.B. make no representations about -the suitability of this software for any purpose. It is -provided "as is" without express or implied warranty. diff --git a/debian/libcom-err2.install b/debian/libcom-err2.install deleted file mode 100644 index 16b039ef..00000000 --- a/debian/libcom-err2.install +++ /dev/null @@ -1 +0,0 @@ -lib/*/libcom_err*.so.* diff --git a/debian/libcom-err2.symbols b/debian/libcom-err2.symbols deleted file mode 100644 index 1c96fa57..00000000 --- a/debian/libcom-err2.symbols +++ /dev/null @@ -1,22 +0,0 @@ -libcom_err.so.2 libcom-err2 #MINVER# -* Build-Depends-Package: comerr-dev - _et_dynamic_list@Base 1.43.9 - _et_list@Base 1.43.9 - add_error_table@Base 1.43.9 - add_to_error_table@Base 1.43.9 - com_err@Base 1.43.9 - com_err_hook@Base 1.43.9 - com_err_va@Base 1.43.9 - com_right@Base 1.43.9 - com_right_r@Base 1.43.9 - error_message@Base 1.43.9 - error_table_name@Base 1.43.9 - et_list_lock@Base 1.43.9 - et_list_unlock@Base 1.43.9 - free_error_table@Base 1.43.9 - init_error_table@Base 1.43.9 - initialize_error_table_r@Base 1.43.9 - remove_error_table@Base 1.43.9 - reset_com_err_hook@Base 1.43.9 - set_com_err_gettext@Base 1.43.9 - set_com_err_hook@Base 1.43.9 diff --git a/debian/libext2fs-dev.doc-base b/debian/libext2fs-dev.doc-base deleted file mode 100644 index b1151171..00000000 --- a/debian/libext2fs-dev.doc-base +++ /dev/null @@ -1,10 +0,0 @@ -Document: libext2fs -Title: The EXT2FS library -Author: Theodore Ts'o -Abstract: The EXT2FS library is designed to allow - user-level programs to manipulate an ext2 filesystem. -Section: Programming - -Format: HTML -Index: /usr/share/doc/libext2fs2/html-info/libext2fs.html -Files: /usr/share/doc/libext2fs2/html-info/*.html diff --git a/debian/libext2fs-dev.install b/debian/libext2fs-dev.install deleted file mode 100644 index b2cd6c92..00000000 --- a/debian/libext2fs-dev.install +++ /dev/null @@ -1,9 +0,0 @@ -usr/lib/*/libext2fs*.so -usr/lib/*/libext2fs*.a -usr/lib/*/libe2p*.so -usr/lib/*/libe2p*.a -usr/include/ext2fs -usr/include/e2p -usr/share/info/libext2fs.info* -usr/lib/*/pkgconfig/e2p.pc -usr/lib/*/pkgconfig/ext2fs.pc diff --git a/debian/libext2fs2.install b/debian/libext2fs2.install deleted file mode 100644 index 11198f76..00000000 --- a/debian/libext2fs2.install +++ /dev/null @@ -1,2 +0,0 @@ -lib/*/libext2fs*.so.* -lib/*/libe2p*.so.* diff --git a/debian/libext2fs2.symbols b/debian/libext2fs2.symbols deleted file mode 100644 index c1b284c5..00000000 --- a/debian/libext2fs2.symbols +++ /dev/null @@ -1,696 +0,0 @@ -libe2p.so.2 libext2fs2 #MINVER# -* Build-Depends-Package: libext2fs-dev - e2p_edit_feature2@Base 1.40.7 - e2p_edit_feature@Base 1.37 - e2p_edit_mntopts@Base 1.37 - e2p_encmode2string@Base 1.43 - e2p_encoding2str@Base 1.45.1 - e2p_errcode2str@Base 1.46.0 - e2p_feature2string@Base 1.37 - e2p_feature_to_string@Base 1.45.6 - e2p_get_encoding_flags@Base 1.45 - e2p_hash2string@Base 1.37 - e2p_is_null_uuid@Base 1.37 - e2p_jrnl_feature2string@Base 1.41.1 - e2p_jrnl_string2feature@Base 1.41.1 - e2p_list_journal_super@Base 1.43.5 - e2p_mntopt2string@Base 1.37 - e2p_os2string@Base 1.37 - e2p_percent@Base 1.40 - e2p_str2encoding@Base 1.45 - e2p_str2encoding_flags@Base 1.45 - e2p_string2encmode@Base 1.43 - e2p_string2feature@Base 1.37 - e2p_string2hash@Base 1.37 - e2p_string2mntopt@Base 1.37 - e2p_string2os@Base 1.37 - e2p_uuid2str@Base 1.37 - e2p_uuid_to_str@Base 1.37 - fgetflags@Base 1.37 - fgetproject@Base 1.43 - fgetversion@Base 1.37 - fsetflags@Base 1.37 - fsetproject@Base 1.43 - fsetversion@Base 1.37 - getflags@Base 1.37 - getversion@Base 1.37 - iterate_on_dir@Base 1.37 - list_super2@Base 1.37 - list_super@Base 1.37 - parse_num_blocks2@Base 1.42 - parse_num_blocks@Base 1.37 - print_flags@Base 1.37 - print_fs_errors@Base 1.37 - print_fs_state@Base 1.37 - setflags@Base 1.37 - setversion@Base 1.37 -libext2fs.so.2 libext2fs2 #MINVER# -* Build-Depends-Package: libext2fs-dev - badblocks_list_add@Base 1.37 - badblocks_list_create@Base 1.37 - badblocks_list_free@Base 1.37 - badblocks_list_iterate@Base 1.37 - badblocks_list_iterate_begin@Base 1.37 - badblocks_list_iterate_end@Base 1.37 - badblocks_list_test@Base 1.37 - et_ext2_error_table@Base 1.37 - ext2fs_add_dir_block2@Base 1.42 - ext2fs_add_dir_block@Base 1.37 - ext2fs_add_exit_fn@Base 1.43 - ext2fs_add_journal_device@Base 1.37 - ext2fs_add_journal_inode2@Base 1.42.9-3~ - ext2fs_add_journal_inode3@Base 1.46.0 - ext2fs_add_journal_inode@Base 1.37 - ext2fs_adjust_ea_refcount2@Base 1.42 - ext2fs_adjust_ea_refcount3@Base 1.43 - ext2fs_adjust_ea_refcount@Base 1.37 - ext2fs_alloc_block2@Base 1.42 - ext2fs_alloc_block3@Base 1.44.0~rc1 - ext2fs_alloc_block@Base 1.37 - ext2fs_alloc_generic_bmap@Base 1.42 - ext2fs_alloc_range@Base 1.43 - ext2fs_allocate_block_bitmap@Base 1.37 - ext2fs_allocate_generic_bitmap@Base 1.37 - ext2fs_allocate_group_table@Base 1.37 - ext2fs_allocate_inode_bitmap@Base 1.37 - ext2fs_allocate_subcluster_bitmap@Base 1.42 - ext2fs_allocate_tables@Base 1.37 - ext2fs_badblocks_copy@Base 1.37 - ext2fs_badblocks_equal@Base 1.37 - ext2fs_badblocks_list_add@Base 1.37 - ext2fs_badblocks_list_create@Base 1.37 - ext2fs_badblocks_list_del@Base 1.37 - ext2fs_badblocks_list_free@Base 1.37 - ext2fs_badblocks_list_iterate@Base 1.37 - ext2fs_badblocks_list_iterate_begin@Base 1.37 - ext2fs_badblocks_list_iterate_end@Base 1.37 - ext2fs_badblocks_list_test@Base 1.37 - ext2fs_bg_checksum@Base 1.42 - ext2fs_bg_checksum_set@Base 1.42 - ext2fs_bg_flags@Base 1.42 - ext2fs_bg_flags_clear@Base 1.42 - ext2fs_bg_flags_set@Base 1.42 - ext2fs_bg_flags_test@Base 1.42 - ext2fs_bg_flags_zap@Base 1.42 - ext2fs_bg_free_blocks_count@Base 1.42 - ext2fs_bg_free_blocks_count_set@Base 1.42 - ext2fs_bg_free_inodes_count@Base 1.42 - ext2fs_bg_free_inodes_count_set@Base 1.42 - ext2fs_bg_has_super@Base 1.37 - ext2fs_bg_itable_unused@Base 1.42 - ext2fs_bg_itable_unused_set@Base 1.42 - ext2fs_bg_used_dirs_count@Base 1.42 - ext2fs_bg_used_dirs_count_set@Base 1.42 - ext2fs_bitcount@Base 1.42.7 - ext2fs_blkmap64_bitarray@Base 1.42 - ext2fs_blkmap64_rbtree@Base 1.42.1 - ext2fs_block_alloc_stats2@Base 1.42 - ext2fs_block_alloc_stats@Base 1.37 - ext2fs_block_alloc_stats_range@Base 1.42.9-3~ - ext2fs_block_bitmap_checksum@Base 1.43 - ext2fs_block_bitmap_csum_set@Base 1.43 - ext2fs_block_bitmap_csum_verify@Base 1.43 - ext2fs_block_bitmap_loc@Base 1.42 - ext2fs_block_bitmap_loc_set@Base 1.42 - ext2fs_block_iterate2@Base 1.37 - ext2fs_block_iterate3@Base 1.42 - ext2fs_block_iterate@Base 1.37 - ext2fs_blocks_count@Base 1.42 - ext2fs_blocks_count_add@Base 1.42 - ext2fs_blocks_count_set@Base 1.42 - ext2fs_bmap2@Base 1.41.0 - ext2fs_bmap@Base 1.37 - ext2fs_calculate_summary_stats@Base 1.46.0 - ext2fs_casefold_cmp@Base 1.46.0 - ext2fs_check_desc@Base 1.37 - ext2fs_check_directory@Base 1.37 - ext2fs_check_encoded_name@Base 1.46.0 - ext2fs_check_if_mounted@Base 1.37 - ext2fs_check_mount_point@Base 1.37 - ext2fs_clear_bit64@Base 1.42 - ext2fs_clear_bit@Base 1.37 - ext2fs_clear_block_bitmap@Base 1.37 - ext2fs_clear_block_uninit@Base 1.43 - ext2fs_clear_generic_bitmap@Base 1.41.0 - ext2fs_clear_generic_bmap@Base 1.42 - ext2fs_clear_inode_bitmap@Base 1.37 - ext2fs_close2@Base 1.42 - ext2fs_close@Base 1.37 - ext2fs_close_free@Base 1.42.11 - ext2fs_close_inode_scan@Base 1.37 - ext2fs_compare_block_bitmap@Base 1.37 - ext2fs_compare_generic_bitmap@Base 1.41.0 - ext2fs_compare_generic_bmap@Base 1.42 - ext2fs_compare_inode_bitmap@Base 1.37 - ext2fs_const_inode@Base 1.43 - ext2fs_convert_subcluster_bitmap@Base 1.42 - ext2fs_copy_bitmap@Base 1.37 - ext2fs_copy_dblist@Base 1.37 - ext2fs_copy_generic_bitmap@Base 1.41.0 - ext2fs_copy_generic_bmap@Base 1.42 - ext2fs_count_blocks@Base 1.46.0 - ext2fs_count_used_clusters@Base 1.46.0 - ext2fs_crc16@Base 1.41.1 - ext2fs_crc32_be@Base 1.43 - ext2fs_crc32c_le@Base 1.42 - ext2fs_create_icount2@Base 1.37 - ext2fs_create_icount@Base 1.37 - ext2fs_create_icount_tdb@Base 1.40 - ext2fs_create_inode_cache@Base 1.43 - ext2fs_create_journal_superblock2@Base 1.46.0 - ext2fs_create_journal_superblock@Base 1.37 - ext2fs_create_resize_inode@Base 1.37 - ext2fs_dblist_count2@Base 1.42 - ext2fs_dblist_count@Base 1.37 - ext2fs_dblist_dir_iterate@Base 1.37 - ext2fs_dblist_drop_last@Base 1.40.8 - ext2fs_dblist_get_last2@Base 1.42 - ext2fs_dblist_get_last@Base 1.40.8 - ext2fs_dblist_iterate2@Base 1.42 - ext2fs_dblist_iterate3@Base 1.43 - ext2fs_dblist_iterate@Base 1.37 - ext2fs_dblist_sort2@Base 1.42 - ext2fs_dblist_sort@Base 1.37 - ext2fs_decode_extent@Base 1.46.0 - ext2fs_default_journal_size@Base 1.40 - ext2fs_descriptor_block_loc2@Base 1.42 - ext2fs_descriptor_block_loc@Base 1.37 - ext2fs_dir_block_csum_set@Base 1.43 - ext2fs_dir_block_csum_verify@Base 1.43 - ext2fs_dir_iterate2@Base 1.37 - ext2fs_dir_iterate@Base 1.37 - ext2fs_dirent_csum_verify@Base 1.43 - ext2fs_dirent_file_type@Base 1.43 - ext2fs_dirent_has_tail@Base 1.43 - ext2fs_dirent_name_len@Base 1.43 - ext2fs_dirent_set_file_type@Base 1.43 - ext2fs_dirent_set_name_len@Base 1.43 - ext2fs_dirent_swab_in2@Base 1.43 - ext2fs_dirent_swab_in@Base 1.43 - ext2fs_dirent_swab_out2@Base 1.43 - ext2fs_dirent_swab_out@Base 1.43 - ext2fs_dirhash2@Base 1.45 - ext2fs_dirhash@Base 1.37 - ext2fs_div64_ceil@Base 1.42 - ext2fs_div_ceil@Base 1.40 - ext2fs_djb2_hash@Base 1.44.3~rc1 - ext2fs_dup_handle@Base 1.37 - ext2fs_dx_csum@Base 1.46~WIP.2019.10.09 - ext2fs_expand_dir@Base 1.37 - ext2fs_ext_attr_block_csum_set@Base 1.43 - ext2fs_ext_attr_block_csum_verify@Base 1.43 - ext2fs_ext_attr_block_rehash@Base 1.44.0~rc1 - ext2fs_ext_attr_hash_entry2@Base 1.44.0~rc1 - ext2fs_ext_attr_hash_entry@Base 1.41.0 - ext2fs_extent_block_csum_set@Base 1.43 - ext2fs_extent_block_csum_verify@Base 1.43 - ext2fs_extent_delete@Base 1.41.0 - ext2fs_extent_fix_parents@Base 1.42.7 - ext2fs_extent_free@Base 1.41.0 - ext2fs_extent_get@Base 1.41.0 - ext2fs_extent_get_info@Base 1.41.0 - ext2fs_extent_goto2@Base 1.42.7 - ext2fs_extent_goto@Base 1.41.0 - ext2fs_extent_header_verify@Base 1.41.0 - ext2fs_extent_insert@Base 1.41.0 - ext2fs_extent_node_split@Base 1.42.7 - ext2fs_extent_open2@Base 1.41.6 - ext2fs_extent_open@Base 1.41.0 - ext2fs_extent_replace@Base 1.41.0 - ext2fs_extent_set_bmap@Base 1.41.0 - ext2fs_fallocate@Base 1.43 - ext2fs_fast_clear_bit64@Base 1.42 - ext2fs_fast_clear_bit@Base 1.39 - ext2fs_fast_mark_block_bitmap2@Base 1.42 - ext2fs_fast_mark_block_bitmap@Base 1.37 - ext2fs_fast_mark_block_bitmap_range2@Base 1.42 - ext2fs_fast_mark_block_bitmap_range@Base 1.37 - ext2fs_fast_mark_inode_bitmap2@Base 1.42 - ext2fs_fast_mark_inode_bitmap@Base 1.37 - ext2fs_fast_set_bit64@Base 1.42 - ext2fs_fast_set_bit@Base 1.39 - ext2fs_fast_test_block_bitmap2@Base 1.42 - ext2fs_fast_test_block_bitmap@Base 1.37 - ext2fs_fast_test_block_bitmap_range2@Base 1.42 - ext2fs_fast_test_block_bitmap_range@Base 1.37 - ext2fs_fast_test_inode_bitmap2@Base 1.42 - ext2fs_fast_test_inode_bitmap@Base 1.37 - ext2fs_fast_unmark_block_bitmap2@Base 1.42 - ext2fs_fast_unmark_block_bitmap@Base 1.37 - ext2fs_fast_unmark_block_bitmap_range2@Base 1.42 - ext2fs_fast_unmark_block_bitmap_range@Base 1.37 - ext2fs_fast_unmark_inode_bitmap2@Base 1.42 - ext2fs_fast_unmark_inode_bitmap@Base 1.37 - ext2fs_file_acl_block@Base 1.42 - ext2fs_file_acl_block_set@Base 1.42 - ext2fs_file_block_offset_too_big@Base 1.42.9 - ext2fs_file_close@Base 1.37 - ext2fs_file_flush@Base 1.37 - ext2fs_file_get_fs@Base 1.37 - ext2fs_file_get_inode@Base 1.42 - ext2fs_file_get_inode_num@Base 1.42.1 - ext2fs_file_get_lsize@Base 1.37 - ext2fs_file_get_size@Base 1.37 - ext2fs_file_llseek@Base 1.37 - ext2fs_load_nls_table@Base 1.45.1 - ext2fs_file_lseek@Base 1.37 - ext2fs_file_open2@Base 1.37 - ext2fs_file_open@Base 1.37 - ext2fs_file_read@Base 1.37 - ext2fs_file_set_size2@Base 1.42 - ext2fs_file_set_size@Base 1.37 - ext2fs_file_write@Base 1.37 - ext2fs_find_block_device@Base 1.37 - ext2fs_find_first_set_block_bitmap2@Base 1.42.9-3~ - ext2fs_find_first_set_generic_bitmap@Base 1.42.9-3~ - ext2fs_find_first_set_generic_bmap@Base 1.42.9-3~ - ext2fs_find_first_set_inode_bitmap2@Base 1.42.9-3~ - ext2fs_find_first_zero_block_bitmap2@Base 1.42.2 - ext2fs_find_first_zero_generic_bitmap@Base 1.42.3 - ext2fs_find_first_zero_generic_bmap@Base 1.42.2 - ext2fs_find_first_zero_inode_bitmap2@Base 1.42.2 - ext2fs_find_inode_goal@Base 1.43 - ext2fs_fix_extents_checksums@Base 1.45 - ext2fs_flush2@Base 1.42 - ext2fs_flush@Base 1.37 - ext2fs_flush_icache@Base 1.37 - ext2fs_follow_link@Base 1.37 - ext2fs_free@Base 1.37 - ext2fs_free_block_bitmap@Base 1.37 - ext2fs_free_blocks_count@Base 1.42 - ext2fs_free_blocks_count_add@Base 1.42 - ext2fs_free_blocks_count_set@Base 1.42 - ext2fs_free_dblist@Base 1.37 - ext2fs_free_ext_attr@Base 1.43 - ext2fs_free_generic_bitmap@Base 1.37 - ext2fs_free_generic_bmap@Base 1.42 - ext2fs_free_icount@Base 1.37 - ext2fs_free_inode_bitmap@Base 1.37 - ext2fs_free_inode_cache@Base 1.43 - ext2fs_free_mem@Base 1.37 - ext2fs_fstat@Base 1.42 - ext2fs_fudge_block_bitmap_end2@Base 1.42 - ext2fs_fudge_block_bitmap_end@Base 1.37 - ext2fs_fudge_generic_bitmap_end@Base 1.41.0 - ext2fs_fudge_generic_bmap_end@Base 1.42 - ext2fs_fudge_inode_bitmap_end@Base 1.37 - ext2fs_get_array@Base 1.40.3 - ext2fs_get_arrayzero@Base 1.42 - ext2fs_get_bitmap_granularity@Base 1.42 - ext2fs_get_block_bitmap_end2@Base 1.42 - ext2fs_get_block_bitmap_end@Base 1.37 - ext2fs_get_block_bitmap_range2@Base 1.42 - ext2fs_get_block_bitmap_range@Base 1.41.0 - ext2fs_get_block_bitmap_start2@Base 1.42 - ext2fs_get_block_bitmap_start@Base 1.37 - ext2fs_get_blocks@Base 1.37 - ext2fs_get_data_io@Base 1.37 - ext2fs_get_device_phys_sectsize@Base 1.41.12 - ext2fs_get_device_sectsize@Base 1.37 - ext2fs_get_device_size2@Base 1.41.4 - ext2fs_get_device_size@Base 1.37 - ext2fs_get_dio_alignment@Base 1.42.3 - ext2fs_get_dx_countlimit@Base 1.43 - ext2fs_get_ea_inode_hash@Base 1.44.0~rc1 - ext2fs_get_ea_inode_ref@Base 1.44.0~rc1 - ext2fs_get_free_blocks2@Base 1.42 - ext2fs_get_free_blocks@Base 1.37 - ext2fs_get_generic_bitmap_end@Base 1.41.0 - ext2fs_get_generic_bitmap_range@Base 1.41.0 - ext2fs_get_generic_bitmap_start@Base 1.41.0 - ext2fs_get_generic_bmap_end@Base 1.42 - ext2fs_get_generic_bmap_range@Base 1.42 - ext2fs_get_generic_bmap_start@Base 1.42 - ext2fs_get_icount_size@Base 1.37 - ext2fs_get_inode_bitmap_end2@Base 1.42 - ext2fs_get_inode_bitmap_end@Base 1.37 - ext2fs_get_inode_bitmap_range2@Base 1.42 - ext2fs_get_inode_bitmap_range@Base 1.41.0 - ext2fs_get_inode_bitmap_start2@Base 1.42 - ext2fs_get_inode_bitmap_start@Base 1.37 - ext2fs_get_journal_params@Base 1.46.0 - ext2fs_get_library_version@Base 1.37 - ext2fs_get_mem@Base 1.37 - ext2fs_get_memalign@Base 1.41.13 - ext2fs_get_memzero@Base 1.42 - ext2fs_get_next_inode@Base 1.37 - ext2fs_get_next_inode_full@Base 1.37 - ext2fs_get_num_dirs@Base 1.37 - ext2fs_get_pathname@Base 1.37 - ext2fs_get_rec_len@Base 1.41.7 - ext2fs_get_stat_i_blocks@Base 1.45.5 - ext2fs_group_blocks_count@Base 1.42 - ext2fs_group_desc@Base 1.42 - ext2fs_group_desc_csum@Base 1.42.2 - ext2fs_group_desc_csum_set@Base 1.41.0 - ext2fs_group_desc_csum_verify@Base 1.41.0 - ext2fs_group_first_block2@Base 1.42 - ext2fs_group_first_block@Base 1.40 - ext2fs_group_last_block2@Base 1.42 - ext2fs_group_last_block@Base 1.40 - ext2fs_group_of_blk2@Base 1.42 - ext2fs_group_of_blk@Base 1.37 - ext2fs_group_of_ino@Base 1.37 - ext2fs_hashmap_add@Base 1.44.3~rc1 - ext2fs_hashmap_create@Base 1.44.3~rc1 - ext2fs_hashmap_free@Base 1.44.3~rc1 - ext2fs_hashmap_iter_in_order@Base 1.44.3~rc1 - ext2fs_hashmap_lookup@Base 1.44.3~rc1 - ext2fs_htree_intnode_maxrecs@Base 1.44.0~rc1 - ext2fs_iblk_add_blocks@Base 1.41.0 - ext2fs_iblk_set@Base 1.41.0 - ext2fs_iblk_sub_blocks@Base 1.41.0 - ext2fs_icount_decrement@Base 1.37 - ext2fs_icount_fetch@Base 1.37 - ext2fs_icount_increment@Base 1.37 - ext2fs_icount_store@Base 1.37 - ext2fs_icount_validate@Base 1.37 - ext2fs_image_bitmap_read@Base 1.37 - ext2fs_image_bitmap_write@Base 1.37 - ext2fs_image_inode_read@Base 1.37 - ext2fs_image_inode_write@Base 1.37 - ext2fs_image_super_read@Base 1.37 - ext2fs_image_super_write@Base 1.37 - ext2fs_init_csum_seed@Base 1.43 - ext2fs_init_dblist@Base 1.37 - ext2fs_initialize@Base 1.37 - ext2fs_initialize_dirent_tail@Base 1.43 - ext2fs_inline_data_dir_iterate@Base 1.43 - ext2fs_inline_data_ea_remove@Base 1.43 - ext2fs_inline_data_expand@Base 1.43 - ext2fs_inline_data_get@Base 1.43 - ext2fs_inline_data_init@Base 1.43 - ext2fs_inline_data_set@Base 1.43 - ext2fs_inline_data_size@Base 1.43 - ext2fs_inode@Base 1.43 - ext2fs_inode_alloc_stats2@Base 1.37 - ext2fs_inode_alloc_stats@Base 1.37 - ext2fs_inode_bitmap_checksum@Base 1.43 - ext2fs_inode_bitmap_csum_set@Base 1.43 - ext2fs_inode_bitmap_csum_verify@Base 1.43 - ext2fs_inode_bitmap_loc@Base 1.42 - ext2fs_inode_bitmap_loc_set@Base 1.42 - ext2fs_inode_csum_set@Base 1.43 - ext2fs_inode_csum_verify@Base 1.43 - ext2fs_inode_data_blocks2@Base 1.42 - ext2fs_inode_data_blocks@Base 1.37 - ext2fs_inode_has_valid_blocks2@Base 1.42 - ext2fs_inode_has_valid_blocks@Base 1.37 - ext2fs_inode_i_blocks@Base 1.42 - ext2fs_inode_io_intern2@Base 1.37 - ext2fs_inode_io_intern@Base 1.37 - ext2fs_inode_scan_flags@Base 1.37 - ext2fs_inode_scan_goto_blockgroup@Base 1.37 - ext2fs_inode_size_set@Base 1.42.12 - ext2fs_inode_table_loc@Base 1.42 - ext2fs_inode_table_loc_set@Base 1.42 - ext2fs_is_fast_symlink@Base 1.44.0~rc1 - ext2fs_journal_sb_start@Base 1.42.12 - ext2fs_link@Base 1.37 - ext2fs_llseek@Base 1.37 - ext2fs_lookup@Base 1.37 - ext2fs_make_generic_bitmap@Base 1.41.0 - ext2fs_map_cluster_block@Base 1.42.9 - ext2fs_mark_bb_dirty@Base 1.37 - ext2fs_mark_block_bitmap2@Base 1.42 - ext2fs_mark_block_bitmap@Base 1.37 - ext2fs_mark_block_bitmap_range2@Base 1.42 - ext2fs_mark_block_bitmap_range@Base 1.37 - ext2fs_mark_changed@Base 1.37 - ext2fs_mark_generic_bitmap@Base 1.37 - ext2fs_mark_generic_bmap@Base 1.42 - ext2fs_mark_ib_dirty@Base 1.37 - ext2fs_mark_inode_bitmap2@Base 1.42 - ext2fs_mark_inode_bitmap@Base 1.37 - ext2fs_mark_super_dirty@Base 1.37 - ext2fs_mark_valid@Base 1.37 - ext2fs_max_extent_depth@Base 1.43 - ext2fs_mem_is_zero@Base 1.42 - ext2fs_mkdir@Base 1.37 - ext2fs_mmp_clear@Base 1.42 - ext2fs_mmp_csum_set@Base 1.43 - ext2fs_mmp_csum_verify@Base 1.43 - ext2fs_mmp_init@Base 1.42 - ext2fs_mmp_new_seq@Base 1.42 - ext2fs_mmp_read@Base 1.42 - ext2fs_mmp_start@Base 1.42 - ext2fs_mmp_stop@Base 1.42 - ext2fs_mmp_update2@Base 1.43 - ext2fs_mmp_update@Base 1.42 - ext2fs_mmp_write@Base 1.42 - ext2fs_namei@Base 1.37 - ext2fs_namei_follow@Base 1.37 - ext2fs_native_flag@Base 1.37 - ext2fs_new_block2@Base 1.42 - ext2fs_new_block3@Base 1.44.0~rc1 - ext2fs_new_block@Base 1.37 - ext2fs_new_dir_block@Base 1.37 - ext2fs_new_dir_inline_data@Base 1.43 - ext2fs_new_inode@Base 1.37 - ext2fs_new_range@Base 1.43 - ext2fs_numeric_progress_close@Base 1.42 - ext2fs_numeric_progress_init@Base 1.42 - ext2fs_numeric_progress_ops@Base 1.43 - ext2fs_numeric_progress_update@Base 1.42 - ext2fs_open2@Base 1.37 - ext2fs_open@Base 1.37 - ext2fs_open_file@Base 1.42 - ext2fs_open_inode_scan@Base 1.37 - ext2fs_parse_version_string@Base 1.37 - ext2fs_process_dir_block@Base 1.37 - ext2fs_punch@Base 1.42 - ext2fs_r_blocks_count@Base 1.42 - ext2fs_r_blocks_count_add@Base 1.42 - ext2fs_r_blocks_count_set@Base 1.42 - ext2fs_rb_erase@Base 1.42.1 - ext2fs_rb_first@Base 1.42.1 - ext2fs_rb_insert_color@Base 1.42.1 - ext2fs_rb_last@Base 1.42.1 - ext2fs_rb_next@Base 1.42.1 - ext2fs_rb_prev@Base 1.42.1 - ext2fs_rb_replace_node@Base 1.42.1 - ext2fs_read_bb_FILE2@Base 1.37 - ext2fs_read_bb_FILE@Base 1.37 - ext2fs_read_bb_inode@Base 1.37 - ext2fs_read_bitmaps@Base 1.37 - ext2fs_read_block_bitmap@Base 1.37 - ext2fs_read_dir_block2@Base 1.37 - ext2fs_read_dir_block3@Base 1.42 - ext2fs_read_dir_block4@Base 1.43 - ext2fs_read_dir_block@Base 1.37 - ext2fs_read_ext_attr2@Base 1.42 - ext2fs_read_ext_attr3@Base 1.43 - ext2fs_read_ext_attr@Base 1.37 - ext2fs_read_ind_block@Base 1.37 - ext2fs_read_inode2@Base 1.45 - ext2fs_read_inode@Base 1.37 - ext2fs_read_inode_bitmap@Base 1.37 - ext2fs_read_inode_full@Base 1.37 - ext2fs_remove_exit_fn@Base 1.43 - ext2fs_reserve_super_and_bgd@Base 1.37 - ext2fs_resize_array@Base 1.45.6 - ext2fs_resize_block_bitmap2@Base 1.42 - ext2fs_resize_block_bitmap@Base 1.37 - ext2fs_resize_generic_bitmap@Base 1.37 - ext2fs_resize_generic_bmap@Base 1.42 - ext2fs_resize_inode_bitmap2@Base 1.42 - ext2fs_resize_inode_bitmap@Base 1.37 - ext2fs_resize_mem@Base 1.37 - ext2fs_rewrite_to_io@Base 1.37 - ext2fs_rw_bitmaps@Base 1.46.0 - ext2fs_set_alloc_block_callback@Base 1.41.0 - ext2fs_set_bit64@Base 1.42 - ext2fs_set_bit@Base 1.37 - ext2fs_set_bitmap_padding@Base 1.37 - ext2fs_set_block_alloc_stats_callback@Base 1.41.0 - ext2fs_set_block_alloc_stats_range_callback@Base 1.43 - ext2fs_set_block_bitmap_range2@Base 1.42 - ext2fs_set_block_bitmap_range@Base 1.41.0 - ext2fs_set_data_io@Base 1.37 - ext2fs_set_dir_block2@Base 1.42 - ext2fs_set_dir_block@Base 1.37 - ext2fs_set_ea_inode_hash@Base 1.44.0~rc1 - ext2fs_set_ea_inode_ref@Base 1.44.0~rc1 - ext2fs_set_gdt_csum@Base 1.41.0 - ext2fs_set_generic_bitmap_padding@Base 1.41.0 - ext2fs_set_generic_bitmap_range@Base 1.41.0 - ext2fs_set_generic_bmap_padding@Base 1.42 - ext2fs_set_generic_bmap_range@Base 1.42 - ext2fs_set_inode_bitmap_range2@Base 1.42 - ext2fs_set_inode_bitmap_range@Base 1.41.0 - ext2fs_set_inode_callback@Base 1.37 - ext2fs_set_new_range_callback@Base 1.43 - ext2fs_set_rec_len@Base 1.41.7 - ext2fs_sha512@Base 1.43 - ext2fs_stat@Base 1.42 - ext2fs_super_and_bgd_loc2@Base 1.42 - ext2fs_super_and_bgd_loc@Base 1.37 - ext2fs_superblock_csum_set@Base 1.43 - ext2fs_superblock_csum_verify@Base 1.43 - ext2fs_swab16@Base 1.37 - ext2fs_swab32@Base 1.37 - ext2fs_swab64@Base 1.40 - ext2fs_swap_ext_attr@Base 1.40 - ext2fs_swap_ext_attr_entry@Base 1.41 - ext2fs_swap_ext_attr_header@Base 1.41 - ext2fs_swap_group_desc2@Base 1.42 - ext2fs_swap_group_desc@Base 1.37 - ext2fs_swap_inode@Base 1.37 - ext2fs_swap_inode_full@Base 1.40 - ext2fs_swap_mmp@Base 1.42 - ext2fs_swap_super@Base 1.37 - ext2fs_symlink@Base 1.42.7 - ext2fs_sync_device@Base 1.37 - ext2fs_tdb_append@Base 1.40 - ext2fs_tdb_chainlock@Base 1.40 - ext2fs_tdb_chainlock_mark@Base 1.40.7 - ext2fs_tdb_chainlock_nonblock@Base 1.40.7 - ext2fs_tdb_chainlock_read@Base 1.40 - ext2fs_tdb_chainlock_unmark@Base 1.40.7 - ext2fs_tdb_chainunlock@Base 1.40 - ext2fs_tdb_chainunlock_read@Base 1.40 - ext2fs_tdb_close@Base 1.40 - ext2fs_tdb_delete@Base 1.40 - ext2fs_tdb_dump_all@Base 1.40 - ext2fs_tdb_enable_seqnum@Base 1.40.7 - ext2fs_tdb_error@Base 1.40 - ext2fs_tdb_errorstr@Base 1.40 - ext2fs_tdb_exists@Base 1.40 - ext2fs_tdb_fd@Base 1.40 - ext2fs_tdb_fetch@Base 1.40 - ext2fs_tdb_firstkey@Base 1.40 - ext2fs_tdb_flush@Base 1.43 - ext2fs_tdb_get_flags@Base 1.40 - ext2fs_tdb_get_logging_private@Base 1.40 - ext2fs_tdb_get_seqnum@Base 1.40 - ext2fs_tdb_hash_size@Base 1.40 - ext2fs_tdb_increment_seqnum_nonblock@Base 1.40.7 - ext2fs_tdb_lock_nonblock@Base 1.40.7 - ext2fs_tdb_lockall@Base 1.40 - ext2fs_tdb_lockall_mark@Base 1.40.7 - ext2fs_tdb_lockall_nonblock@Base 1.40.7 - ext2fs_tdb_lockall_read@Base 1.40 - ext2fs_tdb_lockall_read_nonblock@Base 1.40.7 - ext2fs_tdb_lockall_unmark@Base 1.40.7 - ext2fs_tdb_log_fn@Base 1.40 - ext2fs_tdb_map_size@Base 1.40 - ext2fs_tdb_name@Base 1.40 - ext2fs_tdb_nextkey@Base 1.40 - ext2fs_tdb_open@Base 1.40 - ext2fs_tdb_open_ex@Base 1.40 - ext2fs_tdb_parse_record@Base 1.40 - ext2fs_tdb_printfreelist@Base 1.40 - ext2fs_tdb_reopen@Base 1.40 - ext2fs_tdb_reopen_all@Base 1.40 - ext2fs_tdb_set_logging_function@Base 1.40 - ext2fs_tdb_set_max_dead@Base 1.40 - ext2fs_tdb_store@Base 1.40 - ext2fs_tdb_transaction_cancel@Base 1.40 - ext2fs_tdb_transaction_commit@Base 1.40 - ext2fs_tdb_transaction_recover@Base 1.40 - ext2fs_tdb_transaction_start@Base 1.40 - ext2fs_tdb_traverse@Base 1.40 - ext2fs_tdb_traverse_read@Base 1.40 - ext2fs_tdb_unlockall@Base 1.40 - ext2fs_tdb_unlockall_read@Base 1.40 - ext2fs_tdb_validate_freelist@Base 1.40 - ext2fs_test_bb_dirty@Base 1.37 - ext2fs_test_bit64@Base 1.42 - ext2fs_test_bit@Base 1.37 - ext2fs_test_block_bitmap2@Base 1.42 - ext2fs_test_block_bitmap@Base 1.37 - ext2fs_test_block_bitmap_range2@Base 1.42 - ext2fs_test_block_bitmap_range@Base 1.37 - ext2fs_test_changed@Base 1.37 - ext2fs_test_generic_bitmap@Base 1.37 - ext2fs_test_generic_bmap@Base 1.42 - ext2fs_test_ib_dirty@Base 1.37 - ext2fs_test_inode_bitmap2@Base 1.42 - ext2fs_test_inode_bitmap@Base 1.37 - ext2fs_test_inode_bitmap_range@Base 1.41.8 - ext2fs_test_valid@Base 1.37 - ext2fs_u32_copy@Base 1.37 - ext2fs_u32_list_add@Base 1.37 - ext2fs_u32_list_count@Base 1.37 - ext2fs_u32_list_create@Base 1.37 - ext2fs_u32_list_del@Base 1.37 - ext2fs_u32_list_equal@Base 1.37 - ext2fs_u32_list_find@Base 1.37 - ext2fs_u32_list_free@Base 1.37 - ext2fs_u32_list_iterate@Base 1.37 - ext2fs_u32_list_iterate_begin@Base 1.37 - ext2fs_u32_list_iterate_end@Base 1.37 - ext2fs_u32_list_test@Base 1.37 - ext2fs_unlink@Base 1.37 - ext2fs_unmark_block_bitmap2@Base 1.42 - ext2fs_unmark_block_bitmap@Base 1.37 - ext2fs_unmark_block_bitmap_range2@Base 1.42 - ext2fs_unmark_block_bitmap_range@Base 1.37 - ext2fs_unmark_generic_bitmap@Base 1.37 - ext2fs_unmark_generic_bmap@Base 1.42 - ext2fs_unmark_inode_bitmap2@Base 1.42 - ext2fs_unmark_inode_bitmap@Base 1.37 - ext2fs_unmark_valid@Base 1.37 - ext2fs_update_bb_inode@Base 1.37 - ext2fs_update_dynamic_rev@Base 1.37 - ext2fs_verify_csum_type@Base 1.43 - ext2fs_warn_bitmap2@Base 1.37 - ext2fs_warn_bitmap32@Base 1.42 - ext2fs_warn_bitmap@Base 1.37 - ext2fs_write_bb_FILE@Base 1.37 - ext2fs_write_bitmaps@Base 1.37 - ext2fs_write_block_bitmap@Base 1.37 - ext2fs_write_dir_block2@Base 1.37 - ext2fs_write_dir_block3@Base 1.42 - ext2fs_write_dir_block4@Base 1.43 - ext2fs_write_dir_block@Base 1.37 - ext2fs_write_ext_attr2@Base 1.42 - ext2fs_write_ext_attr3@Base 1.43 - ext2fs_write_ext_attr@Base 1.37 - ext2fs_write_ind_block@Base 1.37 - ext2fs_write_inode2@Base 1.45 - ext2fs_write_inode@Base 1.37 - ext2fs_write_inode_bitmap@Base 1.37 - ext2fs_write_inode_full@Base 1.37 - ext2fs_write_new_inode@Base 1.37 - ext2fs_xattr_get@Base 1.43 - ext2fs_xattr_inode_max_size@Base 1.43 - ext2fs_xattr_remove@Base 1.43 - ext2fs_xattr_set@Base 1.43 - ext2fs_xattrs_close@Base 1.43 - ext2fs_xattrs_count@Base 1.43 - ext2fs_xattrs_flags@Base 1.43.4~WIP.2017.01.30 - ext2fs_xattrs_iterate@Base 1.43 - ext2fs_xattrs_open@Base 1.43 - ext2fs_xattrs_read@Base 1.43 - ext2fs_xattrs_write@Base 1.43 - ext2fs_zero_blocks2@Base 1.42 - ext2fs_zero_blocks@Base 1.41.0 - initialize_ext2_error_table@Base 1.37 - initialize_ext2_error_table_r@Base 1.37 - inode_io_manager@Base 1.37 - io_channel_alloc_buf@Base 1.42.3 - io_channel_cache_readahead@Base 1.43 - io_channel_discard@Base 1.42 - io_channel_read_blk64@Base 1.41.1 - io_channel_set_options@Base 1.37 - io_channel_write_blk64@Base 1.41.1 - io_channel_write_byte@Base 1.37 - io_channel_zeroout@Base 1.43 - qcow2_read_header@Base 1.42 - qcow2_write_raw_image@Base 1.42 - set_undo_io_backing_manager@Base 1.41.0 - set_undo_io_backup_file@Base 1.41.0 - sparse_io_manager@Base 1.44.0~rc1 - sparsefd_io_manager@Base 1.44.0~rc1 - test_io_backing_manager@Base 1.37 - test_io_cb_read_blk64@Base 1.41.0 - test_io_cb_read_blk@Base 1.37 - test_io_cb_set_blksize@Base 1.37 - test_io_cb_write_blk64@Base 1.41.0 - test_io_cb_write_blk@Base 1.37 - test_io_cb_write_byte@Base 1.37 - test_io_manager@Base 1.37 - undo_io_manager@Base 1.41.0 - unix_io_manager@Base 1.37 - unixfd_io_manager@Base 1.43.2 diff --git a/debian/libss2.copyright b/debian/libss2.copyright deleted file mode 100644 index f0398324..00000000 --- a/debian/libss2.copyright +++ /dev/null @@ -1,25 +0,0 @@ -This is the Debian GNU/Linux prepackaged version of the ss -command-line interface parsing library. It is currently -distributed together with the EXT2 file system utilities, which are -otherwise packaged as "e2fsprogs". - -This package was put together by Yann Dirson , -from sources obtained from a mirror of: - tsx-11.mit.edu:/pub/linux/packages/ext2fs/ - -From the original distribution: - -Copyright 1987, 1988 by the Student Information Processing Board - of the Massachusetts Institute of Technology - -Permission to use, copy, modify, and distribute this software -and its documentation for any purpose and without fee is -hereby granted, provided that the above copyright notice -appear in all copies and that both that copyright notice and -this permission notice appear in supporting documentation, -and that the names of M.I.T. and the M.I.T. S.I.P.B. not be -used in advertising or publicity pertaining to distribution -of the software without specific, written prior permission. -M.I.T. and the M.I.T. S.I.P.B. make no representations about -the suitability of this software for any purpose. It is -provided "as is" without express or implied warranty. diff --git a/debian/libss2.install b/debian/libss2.install deleted file mode 100644 index 386e1854..00000000 --- a/debian/libss2.install +++ /dev/null @@ -1 +0,0 @@ -lib/*/libss*.so.* diff --git a/debian/libss2.symbols b/debian/libss2.symbols deleted file mode 100644 index 74358eb4..00000000 --- a/debian/libss2.symbols +++ /dev/null @@ -1,36 +0,0 @@ -libss.so.2 libss2 #MINVER# -* Build-Depends-Package: ss-dev - _ss_pager_name@Base 1.01 - _ss_table@Base 1.01 - et_ss_error_table@Base 1.35 - initialize_ss_error_table@Base 1.01 - initialize_ss_error_table_r@Base 1.34 - ss_abort_subsystem@Base 1.01 - ss_add_info_dir@Base 1.01 - ss_add_request_table@Base 1.01 - ss_create_invocation@Base 1.01 - ss_delete_info_dir@Base 1.01 - ss_delete_invocation@Base 1.01 - ss_delete_request_table@Base 1.01 - ss_error@Base 1.01 - ss_execute_command@Base 1.01 - ss_execute_line@Base 1.01 - ss_get_prompt@Base 1.01 - ss_get_readline@Base 1.34 - ss_help@Base 1.01 - ss_list_requests@Base 1.01 - ss_listen@Base 1.01 - ss_name@Base 1.01 - ss_page_stdin@Base 1.01 - ss_pager_create@Base 1.01 - ss_parse@Base 1.01 - ss_perror@Base 1.01 - ss_quit@Base 1.01 - ss_rl_completion@Base 1.34 - ss_safe_getenv@Base 1.38 - ss_self_identify@Base 1.01 - ss_set_prompt@Base 1.01 - ss_std_requests@Base 1.01 - ss_subsystem_name@Base 1.01 - ss_subsystem_version@Base 1.01 - ss_unimplemented@Base 1.01 diff --git a/debian/libuuid1.copyright b/debian/libuuid1.copyright deleted file mode 100644 index f346739f..00000000 --- a/debian/libuuid1.copyright +++ /dev/null @@ -1,38 +0,0 @@ -This package was added to the e2fsprogs debian source package by -Theodore Ts'o on Sat Mar 15 15:33:37 EST 2003 - -It is part of the main e2fsprogs distribution, which can be found at: - - http://sourceforge.net/projects/e2fsprogs - -Upstream Author: Theodore Ts'o - -Copyright: - -Copyright (C) 1999, 2000, 2003, 2004 by Theodore Ts'o - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, and the entire permission notice in its entirety, - including the disclaimer of warranties. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. The name of the author may not be used to endorse or promote - products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF -WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. diff --git a/debian/libuuid1.install b/debian/libuuid1.install deleted file mode 100644 index 0761f3b8..00000000 --- a/debian/libuuid1.install +++ /dev/null @@ -1 +0,0 @@ -lib/*/libuuid*.so.* diff --git a/debian/libuuid1.postinst b/debian/libuuid1.postinst deleted file mode 100644 index 5336fcfd..00000000 --- a/debian/libuuid1.postinst +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh - -set -e - -ADDUSERCONF='/etc/adduser.conf' - -if test -f $ADDUSERCONF; then - FIRST_SYSTEM_UID=$(sed -n "s/^[[:space:]]*FIRST_SYSTEM_UID[[:space:]]*=[[:space:]]*[\"']\?\([^\"']*\)[\"']\?/\1/p" $ADDUSERCONF) - LAST_SYSTEM_UID=$(sed -n "s/^[[:space:]]*LAST_SYSTEM_UID[[:space:]]*=[[:space:]]*[\"']\?\([^\"']*\)[\"']\?/\1/p" $ADDUSERCONF) - FIRST_SYSTEM_GID=$(sed -n "s/^[[:space:]]*FIRST_SYSTEM_GID[[:space:]]*=[[:space:]]*[\"']\?\([^\"']*\)[\"']\?/\1/p" $ADDUSERCONF) - LAST_SYSTEM_GID=$(sed -n "s/^[[:space:]]*LAST_SYSTEM_GID[[:space:]]*=[[:space:]]*[\"']\?\([^\"']*\)[\"']\?/\1/p" $ADDUSERCONF) -fi - -if test -z "$FIRST_SYSTEM_UID"; then - FIRST_SYSTEM_UID=100 -fi -if test -z "$LAST_SYSTEM_UID"; then - LAST_SYSTEM_UID=999 -fi -if test -z "$FIRST_SYSTEM_GID"; then - FIRST_SYSTEM_GID=100 -fi -if test -z "$LAST_SYSTEM_GID"; then - LAST_SYSTEM_GID=999 -fi - -if ! getent group | grep -q libuuid; then - groupadd -f -K GID_MIN=$FIRST_SYSTEM_GID -K GID_MAX=$LAST_SYSTEM_GID libuuid -fi -if ! getent passwd | grep -q libuuid; then - useradd -d /var/lib/libuuid -K UID_MIN=$FIRST_SYSTEM_UID -K UID_MAX=$LAST_SYSTEM_UID -g libuuid libuuid -fi - -mkdir -p /var/lib/libuuid -chown libuuid:libuuid /var/lib/libuuid -chmod 2775 /var/lib/libuuid - -#DEBHELPER# - -exit 0 diff --git a/debian/libuuid1.postrm b/debian/libuuid1.postrm deleted file mode 100644 index 8c286eea..00000000 --- a/debian/libuuid1.postrm +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -set -e -if [ "$1" = purge ] -then - rm -rf /var/lib/libuuid -fi - -#DEBHELPER# - -exit 0 diff --git a/debian/libuuid1.symbols b/debian/libuuid1.symbols deleted file mode 100644 index 5a00431a..00000000 --- a/debian/libuuid1.symbols +++ /dev/null @@ -1,19 +0,0 @@ -libuuid.so.1 libuuid1 #MINVER# - uuid__generate_random@Base 1.40.4 - uuid__generate_time@Base 1.40.4 - uuid_clear@Base 1.05 - uuid_compare@Base 1.05 - uuid_copy@Base 1.05 - uuid_generate@Base 1.05 - uuid_generate_random@Base 1.15 - uuid_generate_time@Base 1.15 - uuid_is_null@Base 1.05 - uuid_pack@Base 1.05 - uuid_parse@Base 1.05 - uuid_time@Base 1.15 - uuid_type@Base 1.15 - uuid_unpack@Base 1.05 - uuid_unparse@Base 1.05 - uuid_unparse_lower@Base 1.36 - uuid_unparse_upper@Base 1.36 - uuid_variant@Base 1.15 diff --git a/debian/logsave.install b/debian/logsave.install deleted file mode 100644 index dd5b065f..00000000 --- a/debian/logsave.install +++ /dev/null @@ -1,2 +0,0 @@ -sbin/logsave -usr/share/man/man8/logsave.8 diff --git a/debian/rules b/debian/rules deleted file mode 100755 index 25c03b8d..00000000 --- a/debian/rules +++ /dev/null @@ -1,186 +0,0 @@ -#! /usr/bin/make -f - -# export DH_VERBOSE=1 - -export DEB_BUILD_MAINT_OPTIONS ?= hardening=+all - -DPKG_EXPORT_BUILDFLAGS = 1 -include /usr/share/dpkg/default.mk - -# be paranoid -export LC_ALL ?= C - -ifeq ($(DEB_HOST_ARCH_OS), hurd) -SKIP_FUSE2FS=yes -endif - -ifneq ($(filter pkg.e2fsprogs.no-fuse2fs,$(DEB_BUILD_PROFILES)),) -SKIP_FUSE2FS=yes -endif - -COMERR_VERSION ?= $(shell grep ELF_VERSION lib/et/Makefile.in | cut '-d ' -f3) -SS_VERSION ?= $(shell grep ELF_VERSION lib/ss/Makefile.in | cut '-d ' -f3) - -topdir ?= $(shell pwd) -tmpdir ?= ${topdir}/debian/tmp -udebdir ?= ${topdir}/debian/e2fsprogs-udeb -stdbuilddir ?= ${topdir}/debian/BUILD-STD - -INSTALL ?= install -INSTALL_PROGRAM ?= $(INSTALL) -p -m 0755 - -ifneq (,$(findstring update-symbols,$(DEB_BUILD_OPTIONS))) -SYMBOL_LIBS := libext2fs libcomerr2 libss2 -endif - -CFLAGS_SHLIB = $(CFLAGS) -CFLAGS_STLIB = $(CFLAGS) -LDFLAGS_SHLIB = $(LDFLAGS) -LDFLAGS_STATIC = $(filter-out -fPIE -fpie -pie,$(LDFLAGS)) - -BACKTRACE_CONF_FLAGS ?= $(shell if debian/scripts/test-backtrace ; then echo --disable-backtrace ; fi) - -COMMON_CONF_FLAGS = --enable-elf-shlibs --disable-ubsan \ - --disable-addrsan --disable-threadsan --disable-e2initrd-helper \ - --disable-fsck --disable-libblkid --disable-libuuid --disable-uuidd \ - --infodir=/usr/share/info --enable-symlink-install \ - --with-multiarch=$(DEB_HOST_MULTIARCH) \ - $(BACKTRACE_CONF_FLAGS) ${EXTRA_CONF_FLAGS} - -ifneq ($(SKIP_FUSE2FS),) -COMMON_CONF_FLAGS += --disable-fuse2fs -endif - -ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) -CC ?= $(DEB_HOST_GNU_TYPE)-gcc -COMMON_CONF_FLAGS += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) -endif - -%: - dh $@ -B${stdbuilddir} - -override_dh_autoreconf: - -override_dh_auto_configure: - mkdir -p ${stdbuilddir} - cd ${stdbuilddir} && AWK=/usr/bin/awk \ - ../../configure ${COMMON_CONF_FLAGS} - -override_dh_auto_build: - $(MAKE) -C ${stdbuilddir} V=1 all -ifeq (,$(filter pkg.e2fsprogs.no-static,$(DEB_BUILD_PROFILES))) - $(MAKE) -C ${stdbuilddir}/e2fsck V=1 e2fsck.static -endif - if ! test -d debian/orig-gmo ; then \ - mkdir debian/orig-gmo ; \ - mv po/*.gmo po/*.po debian/orig-gmo ; \ - cp debian/orig-gmo/*.po po ; \ - fi - $(MAKE) -C ${stdbuilddir}/po V=1 update-gmo - - $(MAKE) -C ${stdbuilddir}/doc V=1 libext2fs.html - $(MAKE) -C ${stdbuilddir}/lib/et V=1 com_err.info com_err.html - cat $(shell /bin/ls -1 ./doc/RelNotes/*.txt | tac) | \ - gzip -9n > ${stdbuilddir}/NEWS.gz - -override_dh_auto_clean: - if test -d debian/orig-gmo ; then \ - rm -f po/*.gmo po/*.po ; \ - mv debian/orig-gmo/* po ; \ - rmdir debian/orig-gmo ; \ - fi - rm -rf ${stdbuilddir} - -override_dh_auto_install: - mkdir -p ${tmpdir}/sbin - $(MAKE) -C ${stdbuilddir} V=1 install DESTDIR=${tmpdir} \ - INSTALL_PROGRAM="${INSTALL_PROGRAM}" LDCONFIG=true - # static libs and .h files - $(MAKE) -C ${stdbuilddir} V=1 install-libs DESTDIR=${tmpdir} LDCONFIG=true - -ifeq (,$(filter pkg.e2fsprogs.no-static,$(DEB_BUILD_PROFILES))) - # statically-linked fsck - ${INSTALL_PROGRAM} ${stdbuilddir}/e2fsck/e2fsck.static ${tmpdir}/sbin - (cd debian/tmp/usr/share/man/man8 ; cp e2fsck.8 e2fsck.static.8) -endif - -ifeq ($(DEB_HOST_ARCH_OS), hurd) - ${INSTALL} -m 0644 misc/mke2fs-hurd.conf ${tmpdir}/etc/mke2fs.conf -endif - -override_dh_install: - dh_install -p e2fsprogs --sourcedir=${stdbuilddir} NEWS.gz \ - usr/share/doc/e2fsprogs - dh_install - dh_missing --fail-missing - -ifeq (,$(filter noudeb,$(DEB_BUILD_PROFILES))) -override_dh_lintian: - dh_lintian - $(INSTALL) -D -p -m644 debian/e2fsprogs-udeb.lintian-overrides \ - debian/e2fsprogs-udeb/usr/share/lintian/overrides/e2fsprogs-udeb -endif - -override_dh_installinfo: - # HTML docs - $(INSTALL) -d debian/libext2fs-dev/usr/share/doc/libext2fs2/html-info/ - $(INSTALL) -p -m 0644 ${stdbuilddir}/doc/*.html \ - debian/libext2fs-dev/usr/share/doc/libext2fs2/html-info/ - $(INSTALL) -d debian/comerr-dev/usr/share/doc/comerr-dev/html-info/ - $(INSTALL) -p -m 0644 ${stdbuilddir}/lib/et/*.html \ - debian/comerr-dev/usr/share/doc/comerr-dev/html-info/ - - # texinfo docs - mkdir -p debian/comerr-dev/usr/share/doc/comerr-dev - $(INSTALL) -p -m 0644 ${topdir}/doc/libext2fs.texinfo \ - debian/libext2fs-dev/usr/share/doc/libext2fs2/libext2fs.texi - $(INSTALL) -p -m 0644 ${topdir}/lib/et/com_err.texinfo \ - debian/comerr-dev/usr/share/doc/comerr-dev/com_err.texi - - $(INSTALL) -d debian/comerr-dev/usr/share/doc/comerr-dev/examples - $(INSTALL) -p -m 0644 lib/ss/ss_err.et \ - ${stdbuilddir}/lib/ext2fs/ext2_err.et \ - debian/comerr-dev/usr/share/doc/comerr-dev/examples - $(INSTALL) -d debian/ss-dev/usr/share/doc/ss-dev/examples - $(INSTALL) -p -m 0644 debugfs/debug_cmds.ct \ - debian/ss-dev/usr/share/doc/ss-dev/examples - - dh_installinfo -pcomerr-dev ${stdbuilddir}/lib/et/com_err.info - dh_installinfo -plibext2fs-dev ${stdbuilddir}/doc/libext2fs.info - -override_dh_makeshlibs: - for i in $(SYMBOL_LIBS); \ - do \ - echo "Generating symbols for $$i..."; \ - dpkg-gensymbols -p$$i -Pdebian/$$i > debian/$$i.tmp-patch; \ - cat debian/$$i.tmp-patch; \ - patch debian/$$i.symbols < debian/$$i.tmp-patch; \ - /bin/rm debian/$$i.tmp-patch; \ - done - dh_makeshlibs $(if $(filter noudeb,$(DEB_BUILD_PROFILES)),,--add-udeb=e2fsprogs-udeb) - -override_dh_shlibdeps: - dh_shlibdeps -pe2fsprogs -l${stdbuilddir}/lib \ - -- -Ldebian/e2fsprogs.shlibs.local -ifeq (,$(filter noudeb,$(DEB_BUILD_PROFILES))) - dh_shlibdeps -pe2fsprogs-udeb -l${stdbuilddir}/lib \ - -- -Ldebian/e2fsprogs-udeb.shlibs.local -endif -ifeq ($(SKIP_FUSE2FS),) - dh_shlibdeps -pfuse2fs -l${stdbuilddir}/lib \ - -- -Ldebian/e2fsprogs.shlibs.local -endif - dh_shlibdeps --remaining-packages -l${stdbuilddir}/lib - -override_dh_gencontrol: - dh_gencontrol -pcomerr-dev -- -v${COMERR_VERSION}-${DEB_VERSION} -VmainBinary=${DEB_VERSION} - dh_gencontrol -pss-dev -- -v${SS_VERSION}-${DEB_VERSION} -VmainBinary=${DEB_VERSION} - dh_gencontrol --remaining-packages - -override_dh_auto_test: -ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) - $(MAKE) -C ${stdbuilddir} V=1 check -endif - -test_printenv: - printenv | sort diff --git a/debian/scripts/test-backtrace b/debian/scripts/test-backtrace deleted file mode 100755 index d90486a0..00000000 --- a/debian/scripts/test-backtrace +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -# -# Test to see if backtrace requires a library in /usr/lib -# Returns true if the backtrace command works and requires a library in /usr/lib -# This is a nasty workaround for Debian bug #708307, which is really a glibc bug -# - -cat > /tmp/backtrace$$.c << EOF - -#include - -int main(int argc, char **argv) -{ - void *stack_syms[32]; - int frames; - - frames = backtrace(stack_syms, 32); - backtrace_symbols_fd(stack_syms, frames, 0); -} -EOF - -if ! cc -o /tmp/backtrace$$ /tmp/backtrace$$.c; then - exit 1 -fi - -if ! ldd /tmp/backtrace$$ > /tmp/backtrace$$.ldd 2>&1 ; then - exit 1 -fi - -grep -q /usr/lib /tmp/backtrace$$.ldd -ret=$? - -/bin/rm -f /tmp/backtrace$$* -exit $ret diff --git a/debian/shlibs.local b/debian/shlibs.local deleted file mode 100644 index e678de0b..00000000 --- a/debian/shlibs.local +++ /dev/null @@ -1,6 +0,0 @@ -libext2fs 2 -libe2p 2 -libuuid 1 -libcom_err 2 -libss 2 -libblkid 1 diff --git a/debian/source/format b/debian/source/format deleted file mode 100644 index 163aaf8d..00000000 --- a/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (quilt) diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides deleted file mode 100644 index 52e733e3..00000000 --- a/debian/source/lintian-overrides +++ /dev/null @@ -1,2 +0,0 @@ -e2fsprogs source: weak-library-dev-dependency ss-dev on libss2 (= ${mainBinary}) -e2fsprogs source: weak-library-dev-dependency comerr-dev on libcom-err2 (= ${mainBinary}) diff --git a/debian/ss-dev.examples b/debian/ss-dev.examples deleted file mode 100644 index b7930bb7..00000000 --- a/debian/ss-dev.examples +++ /dev/null @@ -1 +0,0 @@ -debugfs/debug_cmds.ct diff --git a/debian/ss-dev.install b/debian/ss-dev.install deleted file mode 100644 index d0c788ee..00000000 --- a/debian/ss-dev.install +++ /dev/null @@ -1,7 +0,0 @@ -usr/lib/*/libss.so -usr/lib/*/libss.a -usr/include/ss/* -usr/bin/mk_cmds -usr/share/ss/* -usr/share/man/man1/mk_cmds* -usr/lib/*/pkgconfig/ss.pc diff --git a/debian/ss-dev.postinst b/debian/ss-dev.postinst deleted file mode 100644 index bf49c9d9..00000000 --- a/debian/ss-dev.postinst +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# Abort on error. -set -e - -symlink_match() -{ - local SYMLINK="$1" - local SYMLINK_TARGET="$2" - - [ "$(readlink "$SYMLINK")" = "$SYMLINK_TARGET" ] || \ - [ "$(readlink -f "$SYMLINK")" = "$SYMLINK_TARGET" ] -} - -SYMLINK=/usr/share/doc/ss-dev -SYMLINK_TARGET=libss2 - -if [ "$1" = "configure" ] && [ -h "${SYMLINK}.dpkg-backup" ] && - symlink_match "${SYMLINK}.dpkg-backup" "$SYMLINK_TARGET" -then - rm -f "${SYMLINK}.dpkg-backup" -fi - -#DEBHELPER# - -exit 0 diff --git a/debian/ss-dev.postrm b/debian/ss-dev.postrm deleted file mode 100644 index c625aae9..00000000 --- a/debian/ss-dev.postrm +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh - -# Abort on error. -set -e - -symlink_match() -{ - local SYMLINK="$1" - local SYMLINK_TARGET="$2" - - [ "$(readlink "$SYMLINK")" = "$SYMLINK_TARGET" ] || \ - [ "$(readlink -f "$SYMLINK")" = "$SYMLINK_TARGET" ] -} - -SYMLINK=/usr/share/doc/ss-dev -SYMLINK_TARGET=libss2 - -if [ "$1" = "purge" ] && [ -h "${SYMLINK}.dpkg-backup" ] -then - rm -f "${SYMLINK}.dpkg-backup" -fi -if [ "$1" = "abort-install" -o "$1" = "abort-upgrade" ] && - [ -n "$2" ] && [ ! -e "$SYMLINK" ] && [ -h "${SYMLINK}.dpkg-backup" ] && - symlink_match "${SYMLINK}.dpkg-backup" "$SYMLINK_TARGET" -then - echo "Restoring backup of $SYMLINK ..." - mv "${SYMLINK}.dpkg-backup" "$SYMLINK" -fi - -#DEBHELPER# - -exit 0 diff --git a/debian/ss-dev.preinst b/debian/ss-dev.preinst deleted file mode 100644 index 8da566ed..00000000 --- a/debian/ss-dev.preinst +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -# Abort on error. -set -e - -symlink_match() -{ - local SYMLINK="$1" - local SYMLINK_TARGET="$2" - - [ "$(readlink "$SYMLINK")" = "$SYMLINK_TARGET" ] || \ - [ "$(readlink -f "$SYMLINK")" = "$SYMLINK_TARGET" ] -} - -SYMLINK=/usr/share/doc/ss-dev -SYMLINK_TARGET=libss2 - -if [ "$1" = "install" -o "$1" = "upgrade" ] && - [ -n "$2" ] && [ -h "$SYMLINK" ] && - symlink_match "$SYMLINK" "$SYMLINK_TARGET" -then - mv -f "$SYMLINK" "${SYMLINK}.dpkg-backup" -fi - -#DEBHELPER# - -exit 0 diff --git a/debian/tests/control b/debian/tests/control deleted file mode 100644 index e149342f..00000000 --- a/debian/tests/control +++ /dev/null @@ -1,6 +0,0 @@ -Tests: smoke -Depends: e2fsprogs - -Tests: fuse2fs -Depends: fuse2fs, fuse3 -Restrictions: isolation-machine diff --git a/debian/tests/fuse2fs b/debian/tests/fuse2fs deleted file mode 100755 index 8b4e08af..00000000 --- a/debian/tests/fuse2fs +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh - -TDIR=${AUTOPKGTEST_TMP:-/tmp/fuse_dir} -LOGDIR=${AUTOPKGTEST_ARTIFACTS:-/tmp/fuse_dir_log} -IMG=$TDIR/test-image.img -MNT=$TDIR/mnt - -# some autopkgtest environments may not have /etc/mtab and/or /proc/mounts -EXT2FS_NO_MTAB_OK=yes -export EXT2FS_NO_MTAB_OK - -mkdir -p $LOGDIR $TDIR $MNT - -/sbin/mke2fs -E root_owner -q -t ext4 -d e2fsck $IMG 8M -/sbin/e2label $IMG test -fuse2fs $IMG $MNT > $LOGDIR/fuse2fs.log 2>&1 -if test $? -ne 0 ; then - echo "fuse2fs failed; see $LOGDIR/fuse2fs.log" - exit 1 -fi -diff e2fsck/pass1.c $MNT/pass1.c -echo foobar > $MNT/testfile -fusermount -u $MNT > $LOGDIR/fusermount.log 2>&1 -if test $? -ne 0 ; then - echo "fusermount failed; see $LOGDIR/fusermount.log" - exit 1 -fi -/sbin/e2fsck -fy $IMG > $LOGDIR/e2fsck.log 2>&1 -if test $? -ne 0 ; then - echo "e2fsck failed; see $LOGDIR/e2fsck.log" - exit 1 -fi -contents=$(/sbin/debugfs -R "cat testfile" $IMG 2> $LOGDIR/debugfs.log) -if test "$contents" != foobar ; then - echo "testfile does not contain expected output" - exit 1 -fi diff --git a/debian/tests/smoke b/debian/tests/smoke deleted file mode 100755 index 966be966..00000000 --- a/debian/tests/smoke +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh - -TDIR=${AUTOPKGTEST_TMP:-/tmp/test_dir} -LOGDIR=${AUTOPKGTEST_ARTIFACTS:-/tmp/test_dir_log} -IMG=$TDIR/test-image.img - -# some autopkgtest environments may not have /etc/mtab and/or /proc/mounts -EXT2FS_NO_MTAB_OK=yes -export EXT2FS_NO_MTAB_OK - -mkdir -p $LOGDIR $TDIR - -/sbin/mke2fs -q -t ext4 -d e2fsck $IMG 8M -/sbin/e2label $IMG test -/sbin/e2fsck -fy $IMG > $LOGDIR/e2fsck.1.log 2>&1 -if test $? -ne 0 ; then - echo "First e2fsck failed; see $LOGDIR/e2fsck.1.log" - exit 1 -fi -/sbin/resize2fs $IMG 16M > $LOGDIR/resize2fs.log 2>&1 -if test $? -ne 0 ; then - echo "Resize2fs failed; see $LOGDIR/e2fsck.1.log" - exit 1 -fi -/sbin/e2fsck -fy $IMG > $LOGDIR/e2fsck.2.log 2>&1 -if test $? -ne 0 ; then - echo "Second e2fsck failed; see $LOGDIR/e2fsck.2.log" - exit 1 -fi -/sbin/debugfs -R "dump pass1.c $TDIR/pass1.c" $IMG > $LOGDIR/debugfs.log 2>&1 -diff $TDIR/pass1.c e2fsck/pass1.c - diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc deleted file mode 100644 index e225998d..00000000 --- a/debian/upstream/signing-key.asc +++ /dev/null @@ -1,156 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1 - -mQINBEz4F48BEADrt5DOsqL84FrVCYnI3MPZV9cEwvQSZmTyoSyU90Vl16Es7XuF -y45WhR5tQG6W6iKTnQpIEcxKpTdLG8cxGwc5gOsCzmoEBgHGA23Itx7BVqkB8vSA -aQDNAsQ4sFUUFBhkHa0d+N6RsrT0EHpK9gUP0paTiybqGn/yIOZ5tyw+jzN5Iae/ -RLbIH5UQ8+XWV7MAFWLBahPJJTVNcASK8h/ZxvNLkIRb5SFO2oqew26VuRi3R0sT -Pvue14K0JP5KsZ2HEQ8nNWyFhRbMJR32lqFNGNzPgupAdWzXKQT2R/UZ1WsMeQ1i -TM+HfN3idrJ+u2STXVv1oTkKGFsyhq2gdUcv5o/tpqgkQ8F9K8rKZI/EHzh3ZU0o -qYAgXECQsoS2hS1qc38EcrE3tKJsXztGpWujf8gbJivs1/pz7bEQiCxtF//Ze2dn -19CSf7r/WKTecxbkx+eupme3ThqsKWR6v6qaSCA223kiUMb8b8zpJ5+NOxhmgssl -PPU5EHJaBwZrfritjgwOiEAlyjYZZ4IkA88tAimtYU3nbpn099zSfmvaD8lQUK+e -NzzUlszJFGEqna4/+nGc0m2rgfbSvyWO4MQz85Fh5cSeUxiWCPNjWTJpRoPPXSIQ -D+GteZ1rlvA2VmBKLSA8F7BL/lvuUrfjNF2OyLqhOI3TtGe3N+89Q1qsywARAQAB -tB1UaGVvZG9yZSBUcydvIDx0eXRzb0BtaXQuZWR1PokCOgQTAQgAJAIbAwIeAQIX -gAIZAQUCVRr3hgULCQgHAwUVCgkICwUWAgMBAAAKCRDTb3abwRgE8LAwD/9B/KUj -0KpAe2ooXEinS380mkiGzWDJIncEynubiNm5Nl8Zo8hwtjXfagTqucUmnnu8NJ1O -lwigw5/vJXpTo7maSeyJImaRZaYyzoh8Bv11t1ymbTvr5ab7ZgSGmaak3IjIM8cW -vv/Wx+yf+LYS03+6GOMdGLq1mF2KgXpHBdK2Wpl/8jlOmry+wccgXBekZP7ZIF0V -wNFq/q8c6zW2yHs2w6i/pkVHJJm3kyaBe+6U6njq1/HBCnlGin7iYfpxZ0d8FoiL -4CEUAHfpFP2DKTO+KJJjphZctya0nCBRzQI3Zk8a0/ITCWJr/pw77yysIRiMO0s4 -BjHzzM7edlJA7dILutX8XrnAAkIOdfzWvHuLtLpEcDRP+gowYYO7PjMfb61zsP9L -dXS1bDrXI2pn2SdRFmaodSBaaAaJoTj55ZbjM2Ckv4lpGYGozreav9suLrYiZIeI -QRcqL1QIKM9WZPUkfbNSMiLLccOmEpKcqyauh3QJiKdT+lFpRBZY34TSI4R5EKMm -dJqD/xaZ4nDpfOxbqocEXDGgstmsCgxzLrYc7lVB+1IRnTW2rFlQteFAZucq8Dwb -xvkOdVY1pJo1vf8UkMPxoexMt7xSSLDQxxRzEtfQSzKLw7Iyf2eTm4OgCN8PocFI -J7LaqOvyq0YvxCVGrPD9bSCU/H5CAuPJa4WuzrQgVGhlb2RvcmUgVHMnbyA8dHl0 -c29AZGViaWFuLm9yZz6JAjcEEwEIACECGwMCHgECF4AFAlUa95gFCwkIBwMFFQoJ -CAsFFgIDAQAACgkQ0292m8EYBPBqVg/+JrVNl+yoGyIJ3e85Ts7Ko65UQ+xM71Ad -OecDUUSx3beSe/Trc76ElvzGu/zMtstu9uH8DnmnjscN1CfqpHK6Rhck69RQDCy+ -c114Q8pa/bzAuWPH4vGHE5BvPZjIc67cZ3T5kHpAaew5ltZG6YhpOBRTRr55ZfO3 -hHQCxOdTmqKWXB1HRXRTu7hlI4WmRpSBf9y4sVwIaraSgtNRhKb/Ff1iPHFCVdoK -+UtfWJrbpJ+HpHAcboNsfC1PQZ8E6eHYiaG0EUlSrpjeCH66kBgkIkbt4RZf+R23 -ZNonE8Hddw6ZR5zMxOfIbK5pBkcEUgOFogwwHL3b/lFdj0t1ggN6eRDVsk9kYYga -kXypR4DYKSs484Y4OroFccw/M69gFjI3f5AIb3HQzb1cV9ocDnqJtzPLAQJTUiIb -OJlFUjsvlg8romKV9lodzdS7zO/t2iQF4Hm2ThuS7R93MZEi4Z7WRgKueIBEhHm7 -WBbtnWzlKZDdsILyIUn7L6WE1iT+d+zvUHz6rYY/b1b7VQzH0UXWtwzPKCyLSLuM -g9q7rm5PMuaMn05zjN2gVy8rfbC7NTTo8f256YT0kmZmO5Kx9fpGYoPIMJp8aiDY -fUfg2rwWkMxO6uxiEe3xCOVzgQcK7NPZS0NbhdRcrmqN3vyiVLY8Qi2a+xQjesJG -RAgdhyJkESC0IFRoZW9kb3JlIFRzJ28gPHR5dHNvQGdvb2dsZS5jb20+iQI3BBMB -CAAhAhsDAh4BAheABQJVGvebBQsJCAcDBRUKCQgLBRYCAwEAAAoJENNvdpvBGATw -kB0P+wQj8exoDTL8/m+Wuju1CMvHty1i4eBKqzM04OdcBQI3/0zOFmub/VnJVB2L -92UhEvqclbwWsijz7G1Vr7wsUPkftCoJICYqjPpZf3BKvyGXkatrMUs0ry1xZ15Q -A4f/9YuiUOykIQiROS+lUa7HqS6dkEj+/2xXheZKcnrv0pz0PayzWbonukRY7Jxe -UcTAXnX1p9fM7+Y9xx5mkwwe4lN02zGextCw1C77EDGhH8GtgnhyfsFkDLjWmNg8 -xjbGKvYYRU18uu0DYTj7ERrDhYy+Aft91F1ZUN9xPgyMx1uWcuyWPV57L3hdwxUX -i64TV4CzMOsolytdUikw57pcjyjdn7kPJlgg+1clrtnrCsmwWQYDMfap3pTOCoj5 -8YVjF+j8ngORLw1tNYZdwPVdeTmuWEv0ufgxDjQtD01yHI2PyGYtZBcTZurdYxth -1Z1+aDyi3kyi6JN8dteA4rUrTxPCI/6GspXQKOlXPKeSijBAG2KdNNNgkWPSVC7q -xwhGruYYq5QA98nA8Hhe89KTwz3fbTCqr59QfEmpKaB9Uvmx6p0Bvj/zL7+N9VpN -vIyxRcG9cfbBWkq18TC6cZMeHUHjwh8ttC7sq/GxdhEW4Qn4ZsvbevozAhd2sMQP -FUUAH0IA1zzIL+UG1AvyQ69kWpoG8Fr9ttIZc5mYUDwL2m1KuQINBEz4GJ4BEADM -e5nhgwGPH9Ti2TSBlADnsZ3ygrA1UEaTUBxPHm0IYdfqMflqbw+XkxHQqRQzYyah -Bc1EBj1Fdl907ozRPnm4VzMgEzXZlN2wjmgUhz1gHZmMcCBxnC/p/FdWmEQwJLNg -TsmnS/seFRw2pwkFtiDYlqXUwU1pDjTLztOMVheQpBlLOg/oHGcZB+llLNPRzCok -mfNv4ShTygDpYtniQdVg57Qyriz3tvCDE+va8HL96SuCNV1vy+ZJa42KNhhMrHqY -C5t7hTNaJTyk25Lmwd5aKrSZjS4goHJcP9Ry3Sit467TRGEaqOi3fO0qTiTnW2Gz -9Cq0xDCOdd3CEbLajMwxM9+UKh+65/nGzh5bYC6zSitXMC1tWUvDEQpk/tiGV8E3 -c2YYbIRcCvOHBoqqIZryi4HqXFyatijEfA9yYc3J8IgmHG9Vc7rBgwdeLGQs9hfp -6IAFtmZHdupYLOUZk+HVNITESgiT6zICFoxNM0jrhkjqdK4ZtlTAiOTIidr1zVTd -je0Hr/Su3H/FluG5cXOZJqqcwQak98Li/Qe4dZl0t99V1s7NafDadSAtNOyMUplt -wSHWzx6PiA3oYMWbQO9S5D7/QK2scNFf7QnWFWYEcuhMlfKAodowI8swljrtgsir -7ZxRZ4YhSlBx1fgs1W09lIxmW7nufZAce/OzPgQsmQARAQABiQIfBBgBCAAJBQJM -+BieAhsMAAoJENNvdpvBGATwjq0P/1ZkCLDRvERSHvLZw2dYMSVNZalQq5MO689B -pcFF9M4CB0IRG+fSf7EkvTrlHnv9euhWAtucs6BITWPdtUORKl/jVcUme+QFBO/n -usVKVr0G0IJrz3Db0IVAC7I0uFttuANX0oc0Z3C1J9RukGapYbKDQF9RizdiqFPP -q/o700sDTnAroib1q3bDqOSrg0ewuJKpgUxLSiQ+GoZMX/8zWKMsadyguBvQl4fi -RSso075/WpzjjkHgZ/TRv/hX4cBpXJLK12yv4P6mEHlwp+FXmH/KRqsyQQaQouUZ -iD8tUK1hAsPB8xYrIZNSbLqsNHjLjtXsFsJU+7jSntVX2XB1nvyaoE8XNKudGoWN -xbUDaBmFozvK5uBRBFogNZuw+8kCYcVi8iuIHrQMjWwL4zq7CpLxQCKfYlhXasIM -p+ggwKewfOA10g5QvYCcqcFtWkIsF9dxOSkfJFY31CMQkxHKc5MF1LsGTRv5HIAm -rb3XAztlmQ0936Zp8+h9DDLV5LF17oiKDYQygHFcYDgBudH78bwYw8hZ2Nkr52v6 -6fHCMGUMfkC8IYP0jVokqS27Aw6IKKlCisJqnGxpXC7Nb/8LNDCKBTNpIKeENARK -Xz9msd6s3gjC9ug2Ea3mrPDNmVnTkdvrLTtA0klCrxZgWml0BOjoEyB75BCe2fZ9 -4VRmJHKDuQINBFLoZCgBEADGR4Xgf1j5Of7pwIzpMgz/HZxwjxibW+EC+ALwMicJ -BoxTmNp5GZ41Rle7frNGRe4R3fUbpdDI9nODFREezNnTFCPYMA1B2U7hxxlcyH1N -rRYkkbeSWBNVgBIZ0rBnXI1qrZjONrpTLsHX3GdAShzpYu5zyt2a7tSMhmkwzidt -jmWYt3BqOH4C/CYOqUnZJhzZ44+LXT68+AcL+rqWo+cTOSDlmrvs9yJCFm4Y75A+ -fd+raUZ8OhhmvHAA+IiRnHG9NrqprhVu+J4xSulfkyF8ziXl3HMC6aeHVS1F8UO+ -jg7nAmgyDi6IuJznZB01KCplVDE9E/8neZfF5WMzti7DiVvkrwf4YoOcsl9tkda7 -iH/ka03ZLdMYELss+lmgLnVDWDdrrJWTAY4rXEWx4UE2O03yPVKwp1Dq8eJazJrv -ECDTN1U464FvSmO2Xrj7gUphOPSW2IjUYOBkFB9mMlwRKt0gDvre3M9Ix0IOKCo7 -ELqalW92rSb3+eTZVen1WoCTFBWWwSPXjsDixzJjuKOCuLIieMCt63Eng2d+cCIj -ymJ744efKeRJaNvF2iXBCJfQGEixlG1H4KSTjBnKGDWi0clijpJQJfJRnMLRLjP8 -aA5RVzwsARZ91YQp6SKu3zFP+Z8/XwhbeeDlsmkbQ8aoRcXhdhs/pMJ02A8C6k2T -pQARAQABiQIfBBgBCAAJBQJS6GQoAhsgAAoJENNvdpvBGATwSx4P/0lbTys+j9AM -UEfEYjcG+C8lsqrqnK9u1bjDAQBNldg7IzeUIeQlZZF8d2RDemtxnMzs0B4MMEPK -AgAltWfkezk12g1vroo1m2fKxSWEDq7pyUhRlBeggFLDWagyushIHrAXhcNvyf5n -03EZ4n8EZ03ejxN+6IWxViV14t0KuzccKPYTwLhlbNQN8YB1k0Y6ezZd8gpX4+e2 -K3WD83mxpFmhhNsGqvbLsuJfXdPcWrAYpFgBF04qvYmgSdPeSid68k3Mek0eQyFj -gCBA0RktKaLVWEslAXyzG1iVzTydabhFQrfA1/GMVJwDgN9HjhzZecerg88KiY03 -pI5dNuzQZnt0Cs0oPcL409ZYBCiv4b6JwLxMaPAAkruqp75Eb3RRzvM8netevnt2 -lMSYDR8Kt1TjPfPWH64vuSLoJ0ihSEHd4G92CN5xYVYOwBrwokJy2rj/Gaz9fZHn -xOaFtWtkR9hytlqsz4qpZ71dKgsZ5LxXETygRQ0RSbMT5uKIMhRbSbOVB3gE8gwU -rhWObwGL2WVaSDEM4SyaJEWyHy6+38ir7QhVTDcHQRoU0/N0Acy1AsltoJUIiaqU -TdWxjplUY0GFt0OQINvEdhWtEBe4ATFK/17BKLxKk22kVbx0fMd0mR939AYIbwNi -dWWyjlhmVl4Uqre/7WqbsR7nT9Sd+fbIuQENBFUa+BEBCACrJ+CRz1mNqq0Qcofc -+4h9PzMBLApwGNQySQ5QCMtIu5Iz4rTT305iFFQSBFzKQSNPjm7pkAzMMs+CWaD8 -0gazgiO8yvm1Fa00hGJWCxr5dbp9/w8u1hfXUSMVg6mf+D09iBLMa2a4pNJcafvp -1/Edk7VAG0q7WrhIBErHclWSh6T05jIjS81ydeO6mp8At8Vkw2oEM1RGnBGYCIq4 -pPhKkQsBDRcz3h1BSrv5uPGyBvXVBJZ4n38m3iETG8jHFPS5OiHSzU4j9Q4nVutb -Wk26l33VObkd4NYru95UsQ2ZGETBCW5tkLwugW7A8D2mQkTQsRLv9KO0hudY0HqX -uh3pABEBAAGJA0QEGAEIAA8CGwIFAlc0FXQFCQMGa2MBKcBdIAQZAQgABgUCVRr4 -EQAKCRDy+VlWlQ2Bo19UCACAVs9F065EDpeZJcH1ep6dzS/qdctES0qDl6F+CVOj -v9iCTs1OkpZ9Y8gOazEfeCT5tXylyr82RV28CImAKER8tIhAi9Bvss9abXihoKpL -t8en97QTBIveZ+4MXwzbJGljIuZ/Ytfz33o8T4Ojd4QLPuLq75uESnum3KcoF3LA -MUCrpsoKsggp2VQHtFxgFsSd3GjIJBy+efexz5F+uM8Q1BrkZh2kwq9NZ3QdG2Kq -wTVTMI6MIty5UV4re1v25VrmbCrHmWtWw2aY90HWikfMQuF0n+PWyRI1dhNaFvG7 -SeMXCgdOEvhYzbQ/HBePrrV+G4fjeODu70mZZZIecDC9CRDTb3abwRgE8D0CD/0S -gvkU/3GJR1ntplro3/uzZ0fcZL/Ea7ydSEGpsZVJq/nH64BDXQZSZ7UJotQdAlQ6 -f72/V3r57Aix2rtF90Vu6olUtBdYEkadaSMTVkI8jjHvWeRs8iY8iOIdflikzF6b -92nGxckjSAUL6GYTnxWizw39s20K6cO4zOC/0CDhjzvtmoA0OinkWUbjWMWf9pLP -3KKfD7p+hrUzO4GrPx7mwNoj6uA1KUVynQSGa0V6OXUGjQ3ey7xDL2a32dF9PI8e -UMAW4klzxX9Kbcam+NxiHtTAjMBBQ0Xt0j6irJPmsmxm8pa/D+4SlEDjsQU2q6eE -UwPvKBtxdS1N1AdZWqMlQSHnGNOWkljMi9nrhyHAXgeJjbnIFryHW4/+aBLccdaL -mnMwetaDRDj8EmPDZTiNHQUDCCFYoZ+Kc76kGd4UadxpW3LOg8sjmn3MYdiXXRQs -/2p+Q6iFACuVSxnCz12sumynfHWiQwVGAd1FBuIgb7FuxX6FOLaybew/IMg5RzuD -y9fI7Z3yHtHUcMZhhQaQvkiebbZcQlZhkZIX6Uk8csCBcClFrH9wG4NU2Jr+25oa -nHoyj2c+ABd5mZ6P90UC80xSllOoH5DkCeRUBKuAZG0g+g64QKWTjwSxfY6sFd+h -210NTXaQ9iRPNVNv8cjHY0HHPzw9mQBi5CojnSgyLrkBDQRVGvi/AQgAryab03tW -ugiN40UYPEASlLcR0e01ZAwrESMwCexNejebacke6fk1v4pEebBvm0fu/8GeIY78 -ley9CBIoDOHzTTQMWXUBMtG5vxPzUgP5U/R0CWvXF9PgyrCOsWQjORqfIfUctQ2Q -KjaSEi3jt0U9gVM84Dtj/SlyfZyJvuTy15Q3mNLEA2hiEkLCYS77+tUaXeCFl5en -p2mQgBSrfnmzfCckuwa0nbmo4p6V0yreX6939c9zakMxzvWCh/SlZUyLgRkH5FOk -gb3Of6lR0DHkNG9uJOMEr+f6XCbwYPDTU6EZumyVQ2WW98s0uIIU0Qmbc/EnpnYc -zlbbdNS8C8aq8QARAQABiQIlBBgBCAAPAhsMBQJXNBWHBQkDBmrIAAoJENNvdpvB -GATwTaMQAIumhk7daTsZ0XFfDszHwiig+Kw46KpWoCm0zZn9rPxYbU+s8+qe2E/W -G4HxdwwKDMjBajsEzHgjj/p02et5LGZMKN+TT2sZX0oYhVLS8/BLrXW4Nhq9+qL1 -uGUTOcctR3ebsqNTFpevtqD4jD7galFv38BIa0G8M6YdKiH5kFzWfz760L03jdNn -HmnnG+x/S/5+uHj5ClpRjhzskS5Bn1gWAqvARcbst/jfwXV43o5Pprno3kfNkWEA -QYVLlOY8+i4JP0xBlx7sYN+s9FE00vYZWdABKis9+OoD4qnhxVE6EbHhfoW0pFei -osDr3/iWfWP1Bcrv2EPO23R7etRf5p7ERKt0p1qYPAiAJuLKzvuAreVdBszYRJSo -zM8Ka+t2Be95HDSBhonI+n2ec8J2IS/dfnUOXwg+MNMcX5jOyxo0RMkhKu8+4iN3 -ECB2+zA8OQswDklU3OfGlWwHKwbgcAicuj6yHQqpyheuRsNHq1wCTbkDYoGoI0mV -PNl5ZjIC1RhnEzfdXww6lZ//P9KuZm9oyhaRVKhEzRP/X8Py8Q78kcnFenF0MsEg -2LB3+NMIdzFRG1rjHLYuxUD28jHVx/i6LDIVVVuNZXGupZD3m2akgnCoTQdnjmob -f8VjXorvasXo5vDJWTGegQbq0vI6RmJ2fnIVj4W/H6bW8gU4GFdruQENBFUbKLcB -CACwhMqbwVAiwY2NvYvSuzyPAojv7DhTEsuSvyEhLoWUUs+HvkTc6yV3OEikM4/5 -ztfv5s8PFBBzi4i0WdSa4DivBe3rCyv4KUN7TFSZzTpAh/bCYBCXaU/hWAzRn1pX -JrRA8dkt4KXcTzkCJV1yuwcGOojMdmU64orSgZAwykf2dc/mUkSM1pMPD2ZwC0Uc -0zm0e6gfndJu2p3O1pUgKRciJe+eKlvhXTg0l8/hKH8KvUnlWrFePTbQ/zWQq4YC -lNI1rUo2Gf6zJBCwhe1Bata8dqtIpagiMCegr8069Mts9V2H2SdMIPNyWP6CP5ON -UfESWt+AYZHMEFAsoJJrK/YXABEBAAGJAiUEGAEIAA8CGyAFAlc0FZsFCQMGOuQA -CgkQ0292m8EYBPCanA//aA+ByDFR/JyzsWnFXwgkcR6CYRqYwq4cxIoL97RGIAdn -ZFyqWAMr0TGofFrcy0U2yHKUPa6ia0QI64Lq+SzibmmVqSqq5u+d/b6ZfgvBgN6o -FGwSAlwJwgXi0sK/jC+RYzw9oLWvOd+KTtKG4spNoHYKkP/Hwka9gieuuyg1hjB+ -gi1b3RKKsXB7/Q0E7lkO/UqxZqyP7gCa7bYMhfrC8Y7HSsJ5QtGy9VBf4b+U4PEK -FLYV4SZHh7LYlQaxSgzXarH+0u2Rrds+Kfwxwxs0k7fl7gCPj7gBhzErEcFYqhmg -NGgjrxA9Zw+HXmvtdRRWBU8l/L4DPNRW4SeBkNJUAa6SfJ9fMhflzV0lx+AlP/XN -Ftv2HJ7jbwUDq3vAK/dLKINrAMYOgG16pQY7HRicP63//BXqq7Sh5cbr/uvAN+aK -YYoOaIo3KjMxhev2MLENS9BuN1ACUVqWO9aXJ1VmVoroiyLxFjrxOEEGNQY7Vws1 -Slzhvb504g9Uo+cBy9HsXYh5BXZeaqra1qbMerN/WJPOCfQENE2g8jj9x4Mi4mZo -1gmiwCZiD+KvXfmwtZsvrLaV9FAnWDkJu8w/8yFUWeNVuvW0t5xXcZNv/Nwb2ONO -vsF9NoZ1s0BZ++jraVFCtbO0yETBj4YBP0T5aFKBM3zUE6HGz3E3xgx1w0dAg4c= -=oRMW ------END PGP PUBLIC KEY BLOCK----- diff --git a/debian/uuid-dev.README.Debian b/debian/uuid-dev.README.Debian deleted file mode 100644 index a4f047e3..00000000 --- a/debian/uuid-dev.README.Debian +++ /dev/null @@ -1,23 +0,0 @@ - -In order to sanitize e2fsprogs to be DFSG free, the file -draft-leach-uuids-guids-01.txt has been removed. It can be obtained -by downloading e2fsprogs from the upstream sources. It may also be -available from other sites on the network, if you do a quick web -search for the string "draft-leach-uuids-guids-01". - -Note that debian/rules is set up to include the file on Ubuntu -systems, so for people trying to build e2fsprogs on Ubuntu systems, -they should start from the upstream sources, and not the -Debian-expurgated sources found in the Debian repository. (n.b., for -WIP releases the command "./util/gen-tarball ubuntu" will help create -tar file which is appropriately named to make life easier for -dpkg-buildpackage.) Since Ubuntu doesn't have the DFSG restrictions, -the documentation which has been removed for Debian's DFSG license -purity shouldn't be denied to Ubuntu users. - - Theodore Ts'o - October 3, 2006 - - - - diff --git a/debian/uuid-dev.copyright b/debian/uuid-dev.copyright deleted file mode 100644 index f346739f..00000000 --- a/debian/uuid-dev.copyright +++ /dev/null @@ -1,38 +0,0 @@ -This package was added to the e2fsprogs debian source package by -Theodore Ts'o on Sat Mar 15 15:33:37 EST 2003 - -It is part of the main e2fsprogs distribution, which can be found at: - - http://sourceforge.net/projects/e2fsprogs - -Upstream Author: Theodore Ts'o - -Copyright: - -Copyright (C) 1999, 2000, 2003, 2004 by Theodore Ts'o - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, and the entire permission notice in its entirety, - including the disclaimer of warranties. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. The name of the author may not be used to endorse or promote - products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF -WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. diff --git a/debian/uuid-dev.install b/debian/uuid-dev.install deleted file mode 100644 index 534b92c1..00000000 --- a/debian/uuid-dev.install +++ /dev/null @@ -1,5 +0,0 @@ -usr/lib/*/libuuid.so -usr/lib/*/libuuid.a -usr/include/uuid/* -usr/share/man/man3/uuid* -usr/lib/*/pkgconfig/uuid.pc diff --git a/debian/uuid-runtime.copyright b/debian/uuid-runtime.copyright deleted file mode 100644 index afcd4c53..00000000 --- a/debian/uuid-runtime.copyright +++ /dev/null @@ -1,39 +0,0 @@ -This package was added to the e2fsprogs debian source package by -Theodore Ts'o on Fri Dec 14 22:24:35 EST 2007 - -It is part of the main e2fsprogs distribution, which can be found at: - - http://sourceforge.net/projects/e2fsprogs - -Upstream Author: Theodore Ts'o - -Copyright: - -Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 by -Theodore Ts'o - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, and the entire permission notice in its entirety, - including the disclaimer of warranties. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. The name of the author may not be used to endorse or promote - products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF -WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. diff --git a/debian/uuid-runtime.install b/debian/uuid-runtime.install deleted file mode 100644 index ff8d87ad..00000000 --- a/debian/uuid-runtime.install +++ /dev/null @@ -1,4 +0,0 @@ -usr/bin/uuidgen -usr/sbin/uuidd -usr/share/man/man8/uuidd.* -usr/share/man/man1/uuidgen.* diff --git a/debian/uuid-runtime.lintian-overrides b/debian/uuid-runtime.lintian-overrides deleted file mode 100644 index 4642d30b..00000000 --- a/debian/uuid-runtime.lintian-overrides +++ /dev/null @@ -1 +0,0 @@ -uuid-runtime: command-with-path-in-maintainer-script prerm:5 /usr/sbin/uuidd diff --git a/debian/uuid-runtime.postinst b/debian/uuid-runtime.postinst deleted file mode 100644 index 3c1adb63..00000000 --- a/debian/uuid-runtime.postinst +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -set -e -if ! getent group | grep -q libuuid; then -groupadd -f -K GID_MIN=1 -K GID_MAX=999 libuuid -fi -if ! getent passwd | grep -q libuuid; then - useradd -d /var/lib/libuuid -K UID_MIN=1 -K UID_MAX=499 -g libuuid libuuid -fi -chown libuuid:libuuid /usr/sbin/uuidd -chmod 6755 /usr/sbin/uuidd - -#DEBHELPER# - -exit 0 diff --git a/debian/uuid-runtime.postrm b/debian/uuid-runtime.postrm deleted file mode 100644 index f0770011..00000000 --- a/debian/uuid-runtime.postrm +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -set -e -if [ "$1" = purge ] -then - rm -rf /var/run/uuidd -fi - -#DEBHELPER# - -exit 0 diff --git a/debian/uuid-runtime.prerm b/debian/uuid-runtime.prerm deleted file mode 100644 index 904e1616..00000000 --- a/debian/uuid-runtime.prerm +++ /dev/null @@ -1,10 +0,0 @@ -#! /bin/sh -set -e -if [ -x /usr/sbin/uuidd ] -then - /usr/sbin/uuidd -k || true -fi - -#DEBHELPER# - -exit 0 diff --git a/debian/uuid-runtime.shlibs.local b/debian/uuid-runtime.shlibs.local deleted file mode 100644 index 5d976743..00000000 --- a/debian/uuid-runtime.shlibs.local +++ /dev/null @@ -1 +0,0 @@ -libuuid 1 libuuid1 (> 1.40.3-1) diff --git a/debian/watch b/debian/watch deleted file mode 100644 index f2df3dde..00000000 --- a/debian/watch +++ /dev/null @@ -1,5 +0,0 @@ -version=4 -opts="pgpsigurlmangle=s%$%.asc%" \ - http://sf.net/e2fsprogs/e2fsprogs-([0-9].+)\.tar\.gz -#ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/e2fsprogs-([0-9].+)\.tar\.gz - diff --git a/debugfs/Android.bp b/debugfs/Android.bp deleted file mode 100644 index 3a2f520b..00000000 --- a/debugfs/Android.bp +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2017 The Android Open Source Project - -//######################## -// Build the debugfs binary - -package { - // See: http://go/android-license-faq - // A large-scale-change added 'default_applicable_licenses' to import - // all of the 'license_kinds' from "external_e2fsprogs_license" - // to get the below license kinds: - // SPDX-license-identifier-GPL - // SPDX-license-identifier-GPL-2.0 - default_applicable_licenses: ["external_e2fsprogs_license"], -} - -cc_defaults { - name: "debugfs-defaults", - defaults: ["e2fsprogs-defaults"], - srcs: [ - "debug_cmds.c", - "debugfs.c", - "util.c", - "ncheck.c", - "icheck.c", - "ls.c", - "lsdel.c", - "dump.c", - "set_fields.c", - "logdump.c", - "htree.c", - "unused.c", - "e2freefrag.c", - "filefrag.c", - "extent_cmds.c", - "extent_inode.c", - "zap.c", - "quota.c", - "xattrs.c", - "journal.c", - "revoke.c", - "recovery.c", - "do_journal.c", - ], - cflags: [ - "-Wno-unused-variable", - "-fno-strict-aliasing", - "-DDEBUGFS", - ], - include_dirs: [ - "external/e2fsprogs/misc", - "external/e2fsprogs/e2fsck" - ], -} - -debugfs_libs = [ - "libext2_misc", - "libext2fs", - "libext2_blkid", - "libext2_uuid", - "libext2_ss", - "libext2_quota", - "libext2_com_err", - "libext2_e2p", - "libext2_support", -] - -cc_binary { - name: "debugfs", - host_supported: true, - defaults: ["debugfs-defaults"], - - shared_libs: debugfs_libs, -} - -cc_binary { - name: "debugfs_static", - static_executable: true, - host_supported: true, - defaults: ["debugfs-defaults"], - - static_libs: debugfs_libs, -} diff --git a/debugfs/Makefile.in b/debugfs/Makefile.in deleted file mode 100644 index ed4ea8d8..00000000 --- a/debugfs/Makefile.in +++ /dev/null @@ -1,424 +0,0 @@ -# -# Standard e2fsprogs prologue.... -# - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -top_builddir = .. -my_dir = debugfs -INSTALL = @INSTALL@ -MKDIR_P = @MKDIR_P@ - -@MCONFIG@ - -PROGS= debugfs -MANPAGES= debugfs.8 - -MK_CMDS= _SS_DIR_OVERRIDE=$(srcdir)/../lib/ss ../lib/ss/mk_cmds - -DEBUG_OBJS= debug_cmds.o debugfs.o util.o ncheck.o icheck.o ls.o \ - lsdel.o dump.o set_fields.o logdump.o htree.o unused.o e2freefrag.o \ - filefrag.o extent_cmds.o extent_inode.o zap.o create_inode.o \ - quota.o xattrs.o journal.o revoke.o recovery.o do_journal.o - -RO_DEBUG_OBJS= ro_debug_cmds.o ro_debugfs.o util.o ncheck.o icheck.o ls.o \ - lsdel.o logdump.o htree.o e2freefrag.o filefrag.o extent_cmds.o \ - extent_inode.o quota.o xattrs.o - -SRCS= debug_cmds.c $(srcdir)/debugfs.c $(srcdir)/util.c $(srcdir)/ls.c \ - $(srcdir)/ncheck.c $(srcdir)/icheck.c $(srcdir)/lsdel.c \ - $(srcdir)/dump.c $(srcdir)/set_fields.c ${srcdir}/logdump.c \ - $(srcdir)/htree.c $(srcdir)/unused.c ${srcdir}/../misc/e2freefrag.c \ - $(srcdir)/filefrag.c $(srcdir)/extent_inode.c $(srcdir)/zap.c \ - $(srcdir)/../misc/create_inode.c $(srcdir)/xattrs.c $(srcdir)/quota.c \ - $(srcdir)/journal.c $(srcdir)/../e2fsck/revoke.c \ - $(srcdir)/../e2fsck/recovery.c $(srcdir)/do_journal.c - -LIBS= $(LIBSUPPORT) $(LIBEXT2FS) $(LIBE2P) $(LIBSS) $(LIBCOM_ERR) $(LIBBLKID) \ - $(LIBUUID) $(LIBMAGIC) $(SYSLIBS) -DEPLIBS= $(DEPLIBSUPPORT) $(LIBEXT2FS) $(LIBE2P) $(DEPLIBSS) $(DEPLIBCOM_ERR) \ - $(DEPLIBBLKID) $(DEPLIBUUID) - -STATIC_LIBS= $(STATIC_LIBSUPPORT) $(STATIC_LIBEXT2FS) $(STATIC_LIBSS) \ - $(STATIC_LIBCOM_ERR) $(STATIC_LIBBLKID) $(STATIC_LIBUUID) \ - $(STATIC_LIBE2P) $(LIBMAGIC) $(SYSLIBS) -STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBSS) \ - $(DEPSTATIC_LIBCOM_ERR) $(DEPSTATIC_LIBUUID) \ - $(DEPSTATIC_LIBE2P) - -# This nastiness is needed because of jfs_user.h hackery; when we finally -# clean up this mess, we should be able to drop it -LOCAL_CFLAGS = -I$(srcdir)/../e2fsck -DDEBUGFS -DEPEND_CFLAGS = -I$(srcdir) - -.c.o: - $(E) " CC $<" - $(Q) $(CC) -c $(ALL_CFLAGS) $< -o $@ - $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $< - $(Q) $(CPPCHECK_CMD) $(CPPFLAGS) $< - -all:: $(PROGS) $(MANPAGES) - -debugfs: $(DEBUG_OBJS) $(DEPLIBS) - $(E) " LD $@" - $(Q) $(CC) $(ALL_LDFLAGS) -o debugfs $(DEBUG_OBJS) $(LIBS) - -debugfs.static: $(DEBUG_OBJS) $(STATIC_DEPLIBS) - $(E) " LD $@" - $(Q) $(CC) $(LDFLAGS_STATIC) -o debugfs.static $(DEBUG_OBJS) \ - $(STATIC_LIBS) $(READLINE_LIB) - -debugfs.static-libs: $(DEBUG_OBJS) $(STATIC_DEPLIBS) - $(E) " LD $@" - $(Q) $(CC) -o debugfs.static-libs $(DEBUG_OBJS) \ - $(STATIC_LIBS) $(READLINE_LIB) - -rdebugfs: $(RO_DEBUG_OBJS) $(DEPLIBS) - $(E) " LD $@" - $(Q) $(CC) $(ALL_LDFLAGS) -o rdebugfs $(RO_DEBUG_OBJS) $(LIBS) - -debug_cmds.c debug_cmds.h: debug_cmds.ct - $(E) " MK_CMDS $@" - $(Q) $(MK_CMDS) $(srcdir)/debug_cmds.ct - -extent_cmds.c extent_cmds.h: extent_cmds.ct - $(E) " MK_CMDS $@" - $(Q) $(MK_CMDS) $(srcdir)/extent_cmds.ct - -ro_debug_cmds.c ro_debug_cmds.h: ro_debug_cmds.ct - $(E) " MK_CMDS $@" - $(Q) $(MK_CMDS) $(srcdir)/ro_debug_cmds.ct - -ro_debugfs.o: debugfs.c - $(E) " CC $@" - $(Q) $(CC) -c $(ALL_CFLAGS) $< -DREAD_ONLY -o $@ - -e2freefrag.o: $(srcdir)/../misc/e2freefrag.c - $(E) " CC $@" - $(Q) $(CC) -c $(ALL_CFLAGS) -I$(srcdir) $< -o $@ - -recovery.o: $(srcdir)/../e2fsck/recovery.c - $(E) " CC $@" - $(Q) $(CC) -c $(ALL_CFLAGS) -I$(srcdir) \ - $(srcdir)/../e2fsck/recovery.c -o $@ - -revoke.o: $(srcdir)/../e2fsck/revoke.c - $(E) " CC $@" - $(Q) $(CC) -c $(ALL_CFLAGS) -I$(srcdir) \ - $(srcdir)/../e2fsck/revoke.c -o $@ - -create_inode.o: $(srcdir)/../misc/create_inode.c - $(E) " CC $@" - $(Q) $(CC) -c $(ALL_CFLAGS) -I$(srcdir) \ - $(srcdir)/../misc/create_inode.c -o $@ - -debugfs.8: $(DEP_SUBSTITUTE) $(srcdir)/debugfs.8.in - $(E) " SUBST $@" - $(Q) $(SUBSTITUTE_UPTIME) $(srcdir)/debugfs.8.in debugfs.8 - -installdirs: - $(E) " MKDIR_P $(root_sbindir) $(man8dir)" - $(Q) $(MKDIR_P) $(DESTDIR)$(root_sbindir) \ - $(DESTDIR)$(man8dir) - -install: $(PROGS) $(MANPAGES) installdirs - $(Q) for i in $(PROGS); do \ - echo " INSTALL $(root_sbindir)/$$i"; \ - $(INSTALL_PROGRAM) $$i $(DESTDIR)$(root_sbindir)/$$i; \ - done - $(Q) for i in $(MANPAGES); do \ - for j in $(COMPRESS_EXT); do \ - $(RM) -f $(DESTDIR)$(man8dir)/$$i.$$j; \ - done; \ - echo " INSTALL_DATA $(man8dir)/$$i"; \ - $(INSTALL_DATA) $$i $(DESTDIR)$(man8dir)/$$i; \ - done - -install-strip: install - $(Q) for i in $(PROGS); do \ - echo " STRIP $(root_sbindir)/$$i"; \ - $(STRIP) $(DESTDIR)$(root_sbindir)/$$i; \ - done - -uninstall: - for i in $(PROGS); do \ - $(RM) -f $(DESTDIR)$(root_sbindir)/$$i; \ - done - for i in $(MANPAGES); do \ - $(RM) -f $(DESTDIR)$(man8dir)/$$i; \ - done - -clean:: - $(RM) -f $(PROGS) debugfs.8 \#* *.s *.o *.a *~ debug_cmds.c \ - extent_cmds.c ro_debug_cmds.c core rdebugfs debugfs.static \ - debugfs.static-libs tst_set_fields - -mostlyclean: clean -distclean: clean - $(RM) -f debug_cmds.c .depend Makefile $(srcdir)/TAGS \ - $(srcdir)/Makefile.in.old $(srcdir)/recovery.c \ - $(srcdir)/revoke.c - -tst_set_fields: set_fields.c util.c - $(E) " LD $@" - $(Q) $(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(SYSLIBS) -DUNITTEST \ - -o tst_set_fields $(srcdir)/set_fields.c $(srcdir)/util.c $(LIBS) - -fullcheck check:: tst_set_fields - $(TESTENV) ./tst_set_fields - -# +++ Dependency line eater +++ -# -# Makefile dependencies follow. This must be the last section in -# the Makefile.in file -# -debug_cmds.o: debug_cmds.c $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h -debugfs.o: $(srcdir)/debugfs.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h $(top_srcdir)/version.h \ - $(srcdir)/../e2fsck/jfs_user.h $(top_srcdir)/lib/ext2fs/kernel-jbd.h \ - $(top_srcdir)/lib/ext2fs/jfs_compat.h $(top_srcdir)/lib/ext2fs/kernel-list.h \ - $(top_srcdir)/lib/ext2fs/compiler.h $(top_srcdir)/lib/support/plausible.h -util.o: $(srcdir)/util.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(srcdir)/debugfs.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \ - $(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/ext2fs/ext2fs.h \ - $(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/ext2fs/ext2_io.h \ - $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h -ls.o: $(srcdir)/ls.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h -ncheck.o: $(srcdir)/ncheck.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h -icheck.o: $(srcdir)/icheck.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h -lsdel.o: $(srcdir)/lsdel.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h -dump.o: $(srcdir)/dump.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h -set_fields.o: $(srcdir)/set_fields.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h -logdump.o: $(srcdir)/logdump.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h $(srcdir)/../e2fsck/jfs_user.h \ - $(top_srcdir)/lib/ext2fs/kernel-jbd.h $(top_srcdir)/lib/ext2fs/jfs_compat.h \ - $(top_srcdir)/lib/ext2fs/kernel-list.h $(top_srcdir)/lib/ext2fs/compiler.h \ - $(top_srcdir)/lib/ext2fs/fast_commit.h -htree.o: $(srcdir)/htree.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h -unused.o: $(srcdir)/unused.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h -e2freefrag.o: $(srcdir)/../misc/e2freefrag.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \ - $(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/ext2fs/ext2fs.h \ - $(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/e2freefrag.h \ - $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h -filefrag.o: $(srcdir)/filefrag.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h -extent_inode.o: $(srcdir)/extent_inode.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h -zap.o: $(srcdir)/zap.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h -create_inode.o: $(srcdir)/../misc/create_inode.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/ext2fs/ext2fs.h \ - $(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \ - $(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(top_srcdir)/lib/ext2fs/fiemap.h \ - $(srcdir)/../misc/create_inode.h $(top_srcdir)/lib/e2p/e2p.h \ - $(top_srcdir)/lib/support/nls-enable.h -xattrs.o: $(srcdir)/xattrs.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/support/cstring.h \ - $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h -quota.o: $(srcdir)/quota.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h -journal.o: $(srcdir)/journal.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(srcdir)/journal.h \ - $(srcdir)/../e2fsck/jfs_user.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \ - $(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/ext2fs/ext2fs.h \ - $(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(top_srcdir)/lib/ext2fs/kernel-jbd.h \ - $(top_srcdir)/lib/ext2fs/jfs_compat.h $(top_srcdir)/lib/ext2fs/kernel-list.h \ - $(top_srcdir)/lib/ext2fs/compiler.h -revoke.o: $(srcdir)/../e2fsck/revoke.c $(srcdir)/../e2fsck/jfs_user.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \ - $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(top_srcdir)/lib/ext2fs/kernel-jbd.h \ - $(top_srcdir)/lib/ext2fs/jfs_compat.h $(top_srcdir)/lib/ext2fs/kernel-list.h \ - $(top_srcdir)/lib/ext2fs/compiler.h -recovery.o: $(srcdir)/../e2fsck/recovery.c $(srcdir)/../e2fsck/jfs_user.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \ - $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(top_srcdir)/lib/ext2fs/kernel-jbd.h \ - $(top_srcdir)/lib/ext2fs/jfs_compat.h $(top_srcdir)/lib/ext2fs/kernel-list.h \ - $(top_srcdir)/lib/ext2fs/compiler.h -do_journal.o: $(srcdir)/do_journal.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h $(srcdir)/debugfs.h $(top_srcdir)/lib/ss/ss.h \ - $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \ - $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \ - $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \ - $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \ - $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/../misc/create_inode.h \ - $(top_srcdir)/lib/e2p/e2p.h $(top_srcdir)/lib/support/quotaio.h \ - $(top_srcdir)/lib/support/dqblk_v2.h \ - $(top_srcdir)/lib/support/quotaio_tree.h \ - $(top_srcdir)/lib/ext2fs/kernel-jbd.h $(top_srcdir)/lib/ext2fs/jfs_compat.h \ - $(top_srcdir)/lib/ext2fs/kernel-list.h $(top_srcdir)/lib/ext2fs/compiler.h \ - $(srcdir)/journal.h $(srcdir)/../e2fsck/jfs_user.h diff --git a/debugfs/debug_cmds.ct b/debugfs/debug_cmds.ct deleted file mode 100644 index 1ff6c9dc..00000000 --- a/debugfs/debug_cmds.ct +++ /dev/null @@ -1,233 +0,0 @@ -# -# Copyright (C) 1993 Theodore Ts'o. This file may be redistributed -# under the terms of the GNU Public License. -# -command_table debug_cmds; - -request do_show_debugfs_params, "Show debugfs parameters", - show_debugfs_params, params; - -request do_open_filesys, "Open a filesystem", - open_filesys, open; - -request do_close_filesys, "Close the filesystem", - close_filesys, close; - -request do_freefrag, "Report free space fragmentation", - freefrag, e2freefrag; - -request do_features, "Set/print superblock features", - feature, features; - -request do_dirty_filesys, "Mark the filesystem as dirty", - dirty_filesys, dirty; - -request do_init_filesys, "Initialize a filesystem (DESTROYS DATA)", - init_filesys; - -request do_show_super_stats, "Show superblock statistics", - show_super_stats, stats; - -request do_ncheck, "Do inode->name translation", - ncheck; - -request do_icheck, "Do block->inode translation", - icheck; - -request do_chroot, "Change root directory", - change_root_directory, chroot; - -request do_change_working_dir, "Change working directory", - change_working_directory, cd; - -request do_list_dir, "List directory", - list_directory, ls; - -request do_stat, "Show inode information ", - show_inode_info, stat; - -request do_dump_extents, "Dump extents information ", - dump_extents, extents, ex; - -request do_blocks, "Dump blocks used by an inode ", - blocks; - -request do_filefrag, "Report fragmentation information for an inode", - filefrag; - -request do_link, "Create directory link", - link, ln; - -request do_unlink, "Delete a directory link", - unlink; - -request do_mkdir, "Create a directory", - mkdir; - -request do_rmdir, "Remove a directory", - rmdir; - -request do_rm, "Remove a file (unlink and kill_file, if appropriate)", - rm; - -request do_kill_file, "Deallocate an inode and its blocks", - kill_file; - -request do_copy_inode, "Copy the inode structure", - copy_inode; - -request do_clri, "Clear an inode's contents", - clri; - -request do_freei, "Clear an inode's in-use flag", - freei; - -request do_seti, "Set an inode's in-use flag", - seti; - -request do_testi, "Test an inode's in-use flag", - testi; - -request do_freeb, "Clear a block's in-use flag", - freeb; - -request do_setb, "Set a block's in-use flag", - setb; - -request do_testb, "Test a block's in-use flag", - testb; - -request do_modify_inode, "Modify an inode by structure", - modify_inode, mi; - -request do_find_free_block, "Find free block(s)", - find_free_block, ffb; - -request do_find_free_inode, "Find free inode(s)", - find_free_inode, ffi; - -request do_print_working_directory, "Print current working directory", - print_working_directory, pwd; - -request do_expand_dir, "Expand directory", - expand_dir, expand; - -request do_mknod, "Create a special file", - mknod; - -request do_lsdel, "List deleted inodes", - list_deleted_inodes, lsdel; - -request do_undel, "Undelete file", - undelete, undel; - -request do_write, "Copy a file from your native filesystem", - write; - -request do_dump, "Dump an inode out to a file", - dump_inode, dump; - -request do_cat, "Dump an inode out to stdout", - cat; - -request do_lcd, "Change the current directory on your native filesystem", - lcd; - -request do_rdump, "Recursively dump a directory to the native filesystem", - rdump; - -request do_set_super, "Set superblock value", - set_super_value, ssv; - -request do_set_inode, "Set inode field", - set_inode_field, sif; - -request do_set_block_group_descriptor, "Set block group descriptor field", - set_block_group, set_bg; - -request do_logdump, "Dump the contents of the journal", - logdump; - -request do_htree_dump, "Dump a hash-indexed directory", - htree_dump, htree; - -request do_dx_hash, "Calculate the directory hash of a filename", - dx_hash, hash; - -request do_dirsearch, "Search a directory for a particular filename", - dirsearch; - -request do_bmap, "Calculate the logical->physical block mapping for an inode", - bmap; - -request do_fallocate, "Allocate uninitialized blocks to an inode", - fallocate; - -request do_punch, "Punch (or truncate) blocks from an inode by deallocating them", - punch, truncate; - -request do_symlink, "Create a symbolic link", - symlink; - -request do_imap, "Calculate the location of an inode", - imap; - -request do_dump_unused, "Dump unused blocks", - dump_unused; - -request do_set_current_time, "Set current time to use when setting filesystem fields", - set_current_time; - -request do_supported_features, "Print features supported by this version of e2fsprogs", - supported_features; - -request do_dump_mmp, "Dump MMP information", - dump_mmp; - -request do_set_mmp_value, "Set MMP value", - set_mmp_value, smmp; - -request do_extent_open, "Open inode for extent manipulation", - extent_open, eo; - -request do_zap_block, "Zap block: fill with 0, pattern, flip bits etc.", - zap_block, zap; - -request do_block_dump, "Dump contents of a block", - block_dump, bdump, bd; - -request do_list_xattr, "List extended attributes of an inode", - ea_list; - -request do_get_xattr, "Get an extended attribute of an inode", - ea_get; - -request do_set_xattr, "Set an extended attribute of an inode", - ea_set; - -request do_rm_xattr, "Remove an extended attribute of an inode", - ea_rm; - -request do_list_quota, "List quota", - list_quota, lq; - -request do_get_quota, "Get quota", - get_quota, gq; - -request do_idump, "Dump the inode structure in hex", - inode_dump, idump, id; - -request do_journal_open, "Open the journal", - journal_open, jo; - -request do_journal_close, "Close the journal", - journal_close, jc; - -request do_journal_write, "Write a transaction to the journal", - journal_write, jw; - -request do_journal_run, "Recover the journal", - journal_run, jr; - -end; - diff --git a/debugfs/debugfs.8.in b/debugfs/debugfs.8.in deleted file mode 100644 index aa6128a7..00000000 --- a/debugfs/debugfs.8.in +++ /dev/null @@ -1,871 +0,0 @@ -.\" -*- nroff -*- -.\" Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved. -.\" This file may be copied under the terms of the GNU Public License. -.\" -.TH DEBUGFS 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@" -.SH NAME -debugfs \- ext2/ext3/ext4 file system debugger -.SH SYNOPSIS -.B debugfs -[ -.B \-DVwcin -] -[ -.B \-b -blocksize -] -[ -.B \-s -superblock -] -[ -.B \-f -cmd_file -] -[ -.B \-R -request -] -[ -.B \-d -data_source_device -] -[ -.B \-z -.I undo_file -] -[ -device -] -.SH DESCRIPTION -The -.B debugfs -program is an interactive file system debugger. It can be used to -examine and change the state of an ext2, ext3, or ext4 file system. -.PP -.I device -is a block device (e.g., /dev/sdXX) or a file containing the file system. -.SH OPTIONS -.TP -.I \-w -Specifies that the file system should be opened in read-write mode. -Without this option, the file system is opened in read-only mode. -.TP -.I \-n -Disables metadata checksum verification. This should only be used if -you believe the metadata to be correct despite the complaints of -e2fsprogs. -.TP -.I \-c -Specifies that the file system should be opened in catastrophic mode, in -which the inode and group bitmaps are not read initially. This can be -useful for file systems with significant corruption, but because of this, -catastrophic mode forces the file system to be opened read-only. -.TP -.I \-i -Specifies that -.I device -represents an ext2 image file created by the -.B e2image -program. Since the ext2 image file only contains the superblock, block -group descriptor, block and inode allocation bitmaps, and -the inode table, many -.B debugfs -commands will not function properly. -.B Warning: -no safety checks are in place, and -.B debugfs -may fail in interesting ways if commands such as -.IR ls ", " dump ", " -etc. are tried without specifying the -.I data_source_device -using the -.I \-d -option. -.B debugfs -is a debugging tool. It has rough edges! -.TP -.I -d data_source_device -Used with the -.I \-i -option, specifies that -.I data_source_device -should be used when reading blocks not found in the ext2 image file. -This includes data, directory, and indirect blocks. -.TP -.I -b blocksize -Forces the use of the given block size (in bytes) for the file system, -rather than detecting the correct block size automatically. (This -option is rarely needed; it is used primarily when the file system is -extremely badly damaged/corrupted.) -.TP -.I -s superblock -Causes the file system superblock to be read from the given block -number, instead of using the primary superblock (located at an offset of -1024 bytes from the beginning of the file system). If you specify the -.I -s -option, you must also provide the blocksize of the file system via the -.I -b -option. (This -option is rarely needed; it is used primarily when the file system is -extremely badly damaged/corrupted.) -.TP -.I -f cmd_file -Causes -.B debugfs -to read in commands from -.IR cmd_file , -and execute them. When -.B debugfs -is finished executing those commands, it will exit. -.TP -.I -D -Causes -.B debugfs -to open the device using Direct I/O, bypassing the buffer cache. Note -that some Linux devices, notably device mapper as of this writing, do -not support Direct I/O. -.TP -.I -R request -Causes -.B debugfs -to execute the single command -.IR request , -and then exit. -.TP -.I -V -print the version number of -.B debugfs -and exit. -.TP -.BI \-z " undo_file" -Before overwriting a file system block, write the old contents of the block to -an undo file. This undo file can be used with e2undo(8) to restore the old -contents of the file system should something go wrong. If the empty string is -passed as the undo_file argument, the undo file will be written to a file named -debugfs-\fIdevice\fR.e2undo in the directory specified via the -\fIE2FSPROGS_UNDO_DIR\fR environment variable. - -WARNING: The undo file cannot be used to recover from a power or system crash. -.SH SPECIFYING FILES -Many -.B debugfs -commands take a -.I filespec -as an argument to specify an inode (as opposed to a pathname) -in the file system which is currently opened by -.BR debugfs . -The -.I filespec -argument may be specified in two forms. The first form is an inode -number surrounded by angle brackets, e.g., -.IR <2> . -The second form is a pathname; if the pathname is prefixed by a forward slash -('/'), then it is interpreted relative to the root of the file system -which is currently opened by -.BR debugfs . -If not, the pathname is -interpreted relative to the current working directory as maintained by -.BR debugfs . -This may be modified by using the -.B debugfs -command -.IR cd . -.\" -.\" -.\" -.SH COMMANDS -This is a list of the commands which -.B debugfs -supports. -.TP -.BI blocks " filespec" -Print the blocks used by the inode -.I filespec -to stdout. -.TP -.BI bmap " [ -a ] filespec logical_block [physical_block]" -Print or set the physical block number corresponding to the logical block number -.I logical_block -in the inode -.IR filespec . -If the -.I \-a -flag is specified, try to allocate a block if necessary. -.TP -.BI block_dump " '[ -x ] [-f filespec] block_num" -Dump the file system block given by -.I block_num -in hex and ASCII format to the console. If the -.I \-f -option is specified, the block number is relative to the start of the given -.BR filespec . -If the -.I \-x -option is specified, the block is interpreted as an extended attribute -block and printed to show the structure of extended attribute data -structures. -.TP -.BI cat " filespec" -Dump the contents of the inode -.I filespec -to stdout. -.TP -.BI cd " filespec" -Change the current working directory to -.IR filespec . -.TP -.BI chroot " filespec" -Change the root directory to be the directory -.IR filespec . -.TP -.BI close " [-a]" -Close the currently open file system. If the -.I -a -option is specified, write out any changes to the superblock and block -group descriptors to all of the backup superblocks, not just to the -master superblock. -.TP -.BI clri " filespec" -Clear the contents of the inode -.IR filespec . -.TP -.BI copy_inode " source_inode destination_inode" -Copy the contents of the inode structure in -.I source_inode -and use it to overwrite the inode structure at -.IR destination_inode . -.TP -.BI dirsearch " filespec filename" -Search the directory -.I filespec -for -.IR filename . -.TP -.BI dirty " [-clean]" -Mark the file system as dirty, so that the superblocks will be written on exit. -Additionally, clear the superblock's valid flag, or set it if -.I -clean -is specified. -.TP -.BI dump " [-p] filespec out_file" -Dump the contents of the inode -.I filespec -to the output file -.IR out_file . -If the -.I -p -option is given set the owner, group and permissions information on -.I out_file -to match -.IR filespec . -.TP -.BI dump_mmp " [mmp_block]" -Display the multiple-mount protection (mmp) field values. If -.I mmp_block -is specified then verify and dump the MMP values from the given block -number, otherwise use the -.B s_mmp_block -field in the superblock to locate and use the existing MMP block. -.TP -.BI dx_hash " [-h hash_alg] [-s hash_seed] filename" -Calculate the directory hash of -.IR filename . -The hash algorithm specified with -.I -h -may be -.BR legacy , " half_md4" ", or " tea . -The hash seed specified with -.I -s -must be in UUID format. -.TP -.BI dump_extents " [-n] [-l] filespec" -Dump the the extent tree of the inode -.IR filespec . -The -.I -n -flag will cause -.B dump_extents -to only display the interior nodes in the extent tree. The -.I -l -flag will cause -.B dump_extents -to only display the leaf nodes in the extent tree. -.IP -(Please note that the length and range of blocks for the last extent in -an interior node is an estimate by the extents library functions, and is -not stored in file system data structures. Hence, the values displayed -may not necessarily by accurate and does not indicate a problem or -corruption in the file system.) -.TP -.B dump_unused -Dump unused blocks which contain non-null bytes. -.TP -.BI ea_get " [-f outfile]|[-xVC] [-r] filespec attr_name" -Retrieve the value of the extended attribute -.I attr_name -in the file -.I filespec -and write it either to stdout or to \fIoutfile\fR. -.TP -.BI ea_list " filespec -List the extended attributes associated with the file -.I filespec -to standard output. -.TP -.BI ea_set " [-f infile] [-r] filespec attr_name attr_value -Set the value of the extended attribute -.I attr_name -in the file -.I filespec -to the string value -.I attr_value -or read it from \fIinfile\fR. -.TP -.BI ea_rm " filespec attr_names... -Remove the extended attribute -.I attr_name -from the file \fIfilespec\fR. -.TP -.BI expand_dir " filespec" -Expand the directory -.IR filespec . -.TP -.BI fallocate " filespec start_block [end_block] -Allocate and map uninitialized blocks into \fIfilespec\fR between -logical block \fIstart_block\fR and \fIend_block\fR, inclusive. If -\fIend_block\fR is not supplied, this function maps until it runs out -of free disk blocks or the maximum file size is reached. Existing -mappings are left alone. -.TP -.BI feature " [fs_feature] [-fs_feature] ..." -Set or clear various file system features in the superblock. After setting -or clearing any file system features that were requested, print the current -state of the file system feature set. -.TP -.BI filefrag " [-dvr] filespec" -Print the number of contiguous extents in -.IR filespec . -If -.I filespec -is a directory and the -.I -d -option is not specified, -.I filefrag -will print the number of contiguous extents for each file in -the directory. The -.I -v -option will cause -.I filefrag -print a tabular listing of the contiguous extents in the -file. The -.I -r -option will cause -.I filefrag -to do a recursive listing of the directory. -.TP -.BI find_free_block " [count [goal]]" -Find the first -.I count -free blocks, starting from -.I goal -and allocate it. Also available as -.BR ffb . -.TP -.BI find_free_inode " [dir [mode]]" -Find a free inode and allocate it. If present, -.I dir -specifies the inode number of the directory -which the inode is to be located. The second -optional argument -.I mode -specifies the permissions of the new inode. (If the directory bit is set -on the mode, the allocation routine will function differently.) Also -available as -.BR ffi . -.TP -.BI freeb " block [count]" -Mark the block number -.I block -as not allocated. -If the optional argument -.I count -is present, then -.I count -blocks starting at block number -.I block -will be marked as not allocated. -.TP -.BI freefrag " [-c chunk_kb]" -Report free space fragmentation on the currently open file system. -If the -.I \-c -option is specified then the filefrag command will print how many free -chunks of size -.I chunk_kb -can be found in the file system. The chunk size must be a power of two -and be larger than the file system block size. -.TP -.BI freei " filespec [num]" -Free the inode specified by -.IR filespec . -If -.I num -is specified, also clear num-1 inodes after the specified inode. -.TP -.BI get_quota " quota_type id" -Display quota information for given quota type (user, group, or project) and ID. -.TP -.B help -Print a list of commands understood by -.BR debugfs . -.TP -.BI htree_dump " filespec" -Dump the hash-indexed directory -.IR filespec , -showing its tree structure. -.TP -.BI icheck " block ..." -Print a listing of the inodes which use the one or more blocks specified -on the command line. -.TP -.BI inode_dump " [-b]|[-e]|[-x] filespec" -Print the contents of the inode data structure in hex and ASCII format. -The -.I \-b -option causes the command to only dump the contents of the -.B i_blocks -array. The -.I \-e -option causes the command to only dump the contents of the extra inode -space, which is used to store in-line extended attributes. The -.I \-x -option causes the command to dump the extra inode space interpreted and -extended attributes. This is useful to debug corrupted inodes -containing extended attributes. -.TP -.BI imap " filespec" -Print the location of the inode data structure (in the inode table) -of the inode -.IR filespec . -.TP -.BI init_filesys " device blocksize" -Create an ext2 file system on -.I device -with device size -.IR blocksize . -Note that this does not fully initialize all of the data structures; -to do this, use the -.BR mke2fs (8) -program. This is just a call to the low-level library, which sets up -the superblock and block descriptors. -.TP -.BI journal_close -Close the open journal. -.TP -.BI journal_open " [-c] [-v ver] [-f ext_jnl] -Opens the journal for reading and writing. Journal checksumming can -be enabled by supplying \fI-c\fR; checksum formats 2 and 3 can be -selected with the \fI-v\fR option. An external journal can be loaded -from \fIext_jnl\fR. -.TP -.BI journal_run -Replay all transactions in the open journal. -.TP -.BI journal_write " [-b blocks] [-r revoke] [-c] file -Write a transaction to the open journal. The list of blocks to write -should be supplied as a comma-separated list in \fIblocks\fR; the -blocks themselves should be readable from \fIfile\fR. A list of -blocks to revoke can be supplied as a comma-separated list in -\fIrevoke\fR. By default, a commit record is written at the end; the -\fI-c\fR switch writes an uncommitted transaction. -.TP -.BI kill_file " filespec" -Deallocate the inode -.I filespec -and its blocks. Note that this does not remove any directory -entries (if any) to this inode. See the -.BR rm (1) -command if you wish to unlink a file. -.TP -.BI lcd " directory" -Change the current working directory of the -.B debugfs -process to -.I directory -on the native file system. -.TP -.BI list_quota " quota_type" -Display quota information for given quota type (user, group, or project). -.TP -.BI ln " filespec dest_file" -Create a link named -.I dest_file -which is a hard link to -.IR filespec . -Note this does not adjust the inode reference counts. -.TP -.BI logdump " [-acsOS] [-b block] [-i filespec] [-f journal_file] [output_file]" -Dump the contents of the ext3 journal. By default, dump the journal inode as -specified in the superblock. However, this can be overridden with the -.I \-i -option, which dumps the journal from the internal inode given by -.IR filespec . -A regular file containing journal data can be specified using the -.I \-f -option. Finally, the -.I \-s -option utilizes the backup information in the superblock to locate the -journal. -.IP -The -.I \-S -option causes -.B logdump -to print the contents of the journal superblock. -.IP -The -.I \-a -option causes the -.B logdump -program to print the contents of all of the descriptor blocks. -The -.I \-b -option causes -.B logdump -to print all journal records that refer to the specified block. -The -.I \-c -option will print out the contents of all of the data blocks selected by -the -.I \-a -and -.I \-b -options. -.IP -The -.I \-O -option causes logdump to display old (checkpointed) journal entries. -This can be used to try to track down journal problems even after the -journal has been replayed. -.TP -.BI ls " [-l] [-c] [-d] [-p] [-r] filespec" -Print a listing of the files in the directory -.IR filespec . -The -.I \-c -flag causes directory block checksums (if present) to be displayed. -The -.I \-d -flag will list deleted entries in the directory. -The -.I \-l -flag will list files using a more verbose format. -The -.I \-p -flag will list the files in a format which is more easily parsable by -scripts, as well as making it more clear when there are spaces or other -non-printing characters at the end of filenames. -The -.I \-r -flag will force the printing of the filename, even if it is encrypted. -.TP -.BI list_deleted_inodes " [limit]" -List deleted inodes, optionally limited to those deleted within -.I limit -seconds ago. Also available as -.BR lsdel . -.IP -This command was useful for recovering from accidental file deletions -for ext2 file systems. Unfortunately, it is not useful for this purpose -if the files were deleted using ext3 or ext4, since the inode's -data blocks are no longer available after the inode is released. -.TP -.BI modify_inode " filespec" -Modify the contents of the inode structure in the inode -.IR filespec . -Also available as -.BR mi . -.TP -.BI mkdir " filespec" -Make a directory. -.TP -.BI mknod " filespec [p|[[c|b] major minor]]" -Create a special device file (a named pipe, character or block device). -If a character or block device is to be made, the -.I major -and -.I minor -device numbers must be specified. -.TP -.BI ncheck " [-c] inode_num ..." -Take the requested list of inode numbers, and print a listing of pathnames -to those inodes. The -.I -c -flag will enable checking the file type information in the directory -entry to make sure it matches the inode's type. -.TP -.BI open " [-weficD] [-b blocksize] [-d image_filename] [-s superblock] [-z undo_file] device" -Open a file system for editing. The -.I -f -flag forces the file system to be opened even if there are some unknown -or incompatible file system features which would normally -prevent the file system from being opened. The -.I -e -flag causes the file system to be opened in exclusive mode. The -.IR -b ", " -c ", " -d ", " -i ", " -s ", " -w ", and " -D -options behave the same as the command-line options to -.BR debugfs . -.TP -.BI punch " filespec start_blk [end_blk]" -Delete the blocks in the inode ranging from -.I start_blk -to -.IR end_blk . -If -.I end_blk -is omitted then this command will function as a truncate command; that -is, all of the blocks starting at -.I start_blk -through to the end of the file will be deallocated. -.TP -.BI symlink " filespec target" -Make a symbolic link. -.TP -.B pwd -Print the current working directory. -.TP -.B quit -Quit -.B debugfs -.TP -.BI rdump " directory[...] destination" -Recursively dump -.IR directory , -or multiple -.IR directories , -and all its contents (including regular files, symbolic links, and other -directories) into the named -.IR destination , -which should be an existing directory on the native file system. -.TP -.BI rm " pathname" -Unlink -.IR pathname . -If this causes the inode pointed to by -.I pathname -to have no other references, deallocate the file. This command functions -as the unlink() system call. -.I -.TP -.BI rmdir " filespec" -Remove the directory -.IR filespec . -.TP -.BI setb " block [count]" -Mark the block number -.I block -as allocated. -If the optional argument -.I count -is present, then -.I count -blocks starting at block number -.I block -will be marked as allocated. -.TP -.BI set_block_group " bgnum field value" -Modify the block group descriptor specified by -.I bgnum -so that the block group descriptor field -.I field -has value -.IR value . -Also available as -.BR set_bg . -.TP -.BI set_current_time " time" -Set current time in seconds since Unix epoch to use when setting file system -fields. -.TP -.BI seti " filespec [num]" -Mark inode -.I filespec -as in use in the inode bitmap. If -.I num -is specified, also set num-1 inodes after the specified inode. -.TP -.BI set_inode_field " filespec field value" -Modify the inode specified by -.I filespec -so that the inode field -.I field -has value -.I value. -The list of valid inode fields which can be set via this command -can be displayed by using the command: -.B set_inode_field -l -Also available as -.BR sif . -.TP -.BI set_mmp_value " field value" -Modify the multiple-mount protection (MMP) data so that the MMP field -.I field -has value -.I value. -The list of valid MMP fields which can be set via this command -can be displayed by using the command: -.B set_mmp_value -l -Also available as -.BR smmp . -.TP -.BI set_super_value " field value" -Set the superblock field -.I field -to -.I value. -The list of valid superblock fields which can be set via this command -can be displayed by using the command: -.B set_super_value -l -Also available as -.BR ssv . -.TP -.B show_debugfs_params -Display -.B debugfs -parameters such as information about currently opened file system. -.TP -.BI show_super_stats " [-h]" -List the contents of the super block and the block group descriptors. If the -.I -h -flag is given, only print out the superblock contents. Also available as -.BR stats . -.TP -.BI stat " filespec" -Display the contents of the inode structure of the inode -.IR filespec . -.TP -.B supported_features -Display file system features supported by this version of -.BR debugfs . -.TP -.BI testb " block [count]" -Test if the block number -.I block -is marked as allocated in the block bitmap. -If the optional argument -.I count -is present, then -.I count -blocks starting at block number -.I block -will be tested. -.TP -.BI testi " filespec" -Test if the inode -.I filespec -is marked as allocated in the inode bitmap. -.TP -.BI undel " [pathname]" -Undelete the specified inode number (which must be surrounded by angle -brackets) so that it and its blocks are marked in use, and optionally -link the recovered inode to the specified pathname. The -.B e2fsck -command should always be run after using the -.B undel -command to recover deleted files. -.IP -Note that if you are recovering a large number of deleted files, linking -the inode to a directory may require the directory to be expanded, which -could allocate a block that had been used by one of the -yet-to-be-undeleted files. So it is safer to undelete all of the -inodes without specifying a destination pathname, and then in a separate -pass, use the debugfs -.B link -command to link the inode to the destination pathname, or use -.B e2fsck -to check the file system and link all of the recovered inodes to the -lost+found directory. -.TP -.BI unlink " pathname" -Remove the link specified by -.I pathname -to an inode. Note this does not adjust the inode reference counts. -.TP -.BI write " source_file out_file" -Copy the contents of -.I source_file -into a newly-created file in the file system named -.IR out_file . -.TP -.BI zap_block " [-f filespec] [-o offset] [-l length] [-p pattern] block_num" -Overwrite the block specified by -.I block_num -with zero (NUL) bytes, or if -.I -p -is given use the byte specified by -.IR pattern . -If -.I -f -is given then -.I block_num -is relative to the start of the file given by -.IR filespec . -The -.I -o -and -.I -l -options limit the range of bytes to zap to the specified -.I offset -and -.I length -relative to the start of the block. -.TP -.BI zap_block " [-f filespec] [-b bit] block_num" -Bit-flip portions of the physical -.IR block_num . -If -.I -f -is given, then -.I block_num -is a logical block relative to the start of -.IR filespec . -.SH ENVIRONMENT VARIABLES -.TP -.B DEBUGFS_PAGER, PAGER -The -.B debugfs -program always pipes the output of the some commands through a -pager program. These commands include: -.IR show_super_stats " (" stats ), -.IR list_directory " (" ls ), -.IR show_inode_info " (" stat ), -.IR list_deleted_inodes " (" lsdel ), -and -.IR htree_dump . -The specific pager can explicitly specified by the -.B DEBUGFS_PAGER -environment variable, and if it is not set, by the -.B PAGER -environment variable. -.IP -Note that since a pager is always used, the -.BR less (1) -pager is not particularly appropriate, since it clears the screen before -displaying the output of the command and clears the output the screen -when the pager is exited. Many users prefer to use the -.BR less (1) -pager for most purposes, which is why the -.B DEBUGFS_PAGER -environment variable is available to override the more general -.B PAGER -environment variable. -.SH AUTHOR -.B debugfs -was written by Theodore Ts'o . -.SH SEE ALSO -.BR dumpe2fs (8), -.BR tune2fs (8), -.BR e2fsck (8), -.BR mke2fs (8), -.BR ext4 (5) diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c deleted file mode 100644 index b67a88bc..00000000 --- a/debugfs/debugfs.c +++ /dev/null @@ -1,2684 +0,0 @@ -/* - * debugfs.c --- a program which allows you to attach an ext2fs - * filesystem and play with it. - * - * Copyright (C) 1993 Theodore Ts'o. This file may be redistributed - * under the terms of the GNU Public License. - * - * Modifications by Robert Sanders - */ - -#include "config.h" -#include -#include -#include -#include -#include -#include -#include -#ifdef HAVE_GETOPT_H -#include -#else -extern int optind; -extern char *optarg; -#endif -#ifdef HAVE_ERRNO_H -#include -#endif -#include -#ifdef HAVE_SYS_SYSMACROS_H -#include -#endif - -#include "debugfs.h" -#include "uuid/uuid.h" -#include "e2p/e2p.h" - -#include - -#include "../version.h" -#include "jfs_user.h" -#include "support/plausible.h" - -#ifndef BUFSIZ -#define BUFSIZ 8192 -#endif - -#ifdef CONFIG_JBD_DEBUG /* Enabled by configure --enable-jbd-debug */ -int journal_enable_debug = -1; -#endif - -/* - * There must be only one definition if we're hooking in extra commands or - * chaging default prompt. Use -DSKIP_GLOBDEF for that. - */ -#ifndef SKIP_GLOBDEFS -ss_request_table *extra_cmds; -const char *debug_prog_name; -#endif -int ss_sci_idx; - -ext2_filsys current_fs; -quota_ctx_t current_qctx; -ext2_ino_t root, cwd; -int no_copy_xattrs; - -static int debugfs_setup_tdb(const char *device_name, char *undo_file, - io_manager *io_ptr) -{ - errcode_t retval = ENOMEM; - const char *tdb_dir = NULL; - char *tdb_file = NULL; - char *dev_name, *tmp_name; - - /* (re)open a specific undo file */ - if (undo_file && undo_file[0] != 0) { - retval = set_undo_io_backing_manager(*io_ptr); - if (retval) - goto err; - *io_ptr = undo_io_manager; - retval = set_undo_io_backup_file(undo_file); - if (retval) - goto err; - printf("Overwriting existing filesystem; this can be undone " - "using the command:\n" - " e2undo %s %s\n\n", - undo_file, device_name); - return retval; - } - - /* - * Configuration via a conf file would be - * nice - */ - tdb_dir = ss_safe_getenv("E2FSPROGS_UNDO_DIR"); - if (!tdb_dir) - tdb_dir = "/var/lib/e2fsprogs"; - - if (!strcmp(tdb_dir, "none") || (tdb_dir[0] == 0) || - access(tdb_dir, W_OK)) - return 0; - - tmp_name = strdup(device_name); - if (!tmp_name) - goto errout; - dev_name = basename(tmp_name); - tdb_file = malloc(strlen(tdb_dir) + 9 + strlen(dev_name) + 7 + 1); - if (!tdb_file) { - free(tmp_name); - goto errout; - } - sprintf(tdb_file, "%s/debugfs-%s.e2undo", tdb_dir, dev_name); - free(tmp_name); - - if ((unlink(tdb_file) < 0) && (errno != ENOENT)) { - retval = errno; - com_err("debugfs", retval, - "while trying to delete %s", tdb_file); - goto errout; - } - - retval = set_undo_io_backing_manager(*io_ptr); - if (retval) - goto errout; - *io_ptr = undo_io_manager; - retval = set_undo_io_backup_file(tdb_file); - if (retval) - goto errout; - printf("Overwriting existing filesystem; this can be undone " - "using the command:\n" - " e2undo %s %s\n\n", tdb_file, device_name); - - free(tdb_file); - return 0; -errout: - free(tdb_file); -err: - com_err("debugfs", retval, "while trying to setup undo file\n"); - return retval; -} - -static void open_filesystem(char *device, int open_flags, blk64_t superblock, - blk64_t blocksize, int catastrophic, - char *data_filename, char *undo_file) -{ - int retval; - io_channel data_io = 0; - io_manager io_ptr = unix_io_manager; - - if (superblock != 0 && blocksize == 0) { - com_err(device, 0, "if you specify the superblock, you must also specify the block size"); - current_fs = NULL; - return; - } - - if (data_filename) { - if ((open_flags & EXT2_FLAG_IMAGE_FILE) == 0) { - com_err(device, 0, - "The -d option is only valid when reading an e2image file"); - current_fs = NULL; - return; - } - retval = unix_io_manager->open(data_filename, 0, &data_io); - if (retval) { - com_err(data_filename, 0, "while opening data source"); - current_fs = NULL; - return; - } - } - - if (catastrophic) - open_flags |= EXT2_FLAG_SKIP_MMP | EXT2_FLAG_IGNORE_SB_ERRORS; - - if (undo_file) { - retval = debugfs_setup_tdb(device, undo_file, &io_ptr); - if (retval) - exit(1); - } - -try_open_again: - retval = ext2fs_open(device, open_flags, superblock, blocksize, - io_ptr, ¤t_fs); - if (retval && (retval == EXT2_ET_SB_CSUM_INVALID) && - !(open_flags & EXT2_FLAG_IGNORE_CSUM_ERRORS)) { - open_flags |= EXT2_FLAG_IGNORE_CSUM_ERRORS; - printf("Checksum errors in superblock! Retrying...\n"); - goto try_open_again; - } - if (retval) { - com_err(debug_prog_name, retval, - "while trying to open %s", device); - if (retval == EXT2_ET_BAD_MAGIC) - check_plausibility(device, CHECK_FS_EXIST, NULL); - current_fs = NULL; - return; - } - current_fs->default_bitmap_type = EXT2FS_BMAP64_RBTREE; - - if (catastrophic) - com_err(device, 0, "catastrophic mode - not reading inode or group bitmaps"); - else { - retval = ext2fs_read_bitmaps(current_fs); - if (retval) { - com_err(device, retval, - "while reading allocation bitmaps"); - goto errout; - } - } - - if (data_io) { - retval = ext2fs_set_data_io(current_fs, data_io); - if (retval) { - com_err(device, retval, - "while setting data source"); - goto errout; - } - } - - root = cwd = EXT2_ROOT_INO; - return; - -errout: - retval = ext2fs_close_free(¤t_fs); - if (retval) - com_err(device, retval, "while trying to close filesystem"); -} - -void do_open_filesys(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - int c, err; - int catastrophic = 0; - blk64_t superblock = 0; - blk64_t blocksize = 0; - int open_flags = EXT2_FLAG_SOFTSUPP_FEATURES | EXT2_FLAG_64BITS | - EXT2_FLAG_THREADS; - char *data_filename = 0; - char *undo_file = NULL; - - reset_getopt(); - while ((c = getopt(argc, argv, "iwfecb:s:d:Dz:")) != EOF) { - switch (c) { - case 'i': - open_flags |= EXT2_FLAG_IMAGE_FILE; - break; - case 'w': -#ifdef READ_ONLY - goto print_usage; -#else - open_flags |= EXT2_FLAG_RW; -#endif /* READ_ONLY */ - break; - case 'f': - open_flags |= EXT2_FLAG_FORCE; - break; - case 'e': - open_flags |= EXT2_FLAG_EXCLUSIVE; - break; - case 'c': - catastrophic = 1; - break; - case 'd': - data_filename = optarg; - break; - case 'D': - open_flags |= EXT2_FLAG_DIRECT_IO; - break; - case 'b': - blocksize = parse_ulong(optarg, argv[0], - "block size", &err); - if (err) - return; - break; - case 's': - err = strtoblk(argv[0], optarg, - "superblock block number", &superblock); - if (err) - return; - break; - case 'z': -#ifdef READ_ONLY - goto print_usage; -#else - undo_file = optarg; -#endif - break; - default: - goto print_usage; - } - } - if (optind != argc-1) { - goto print_usage; - } - if (check_fs_not_open(argv[0])) - return; - open_filesystem(argv[optind], open_flags, - superblock, blocksize, catastrophic, - data_filename, undo_file); - return; - -print_usage: - fprintf(stderr, "%s: Usage: open [-s superblock] [-b blocksize] " -#ifdef READ_ONLY - "[-d image_filename] [-z undo_file] [-c] [-i] [-f] [-e] [-D] " -#else - "[-d image_filename] [-c] [-i] [-f] [-e] [-D] [-w] " -#endif - "\n", argv[0]); -} - -void do_lcd(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - if (argc != 2) { - com_err(argv[0], 0, "Usage: %s %s", argv[0], ""); - return; - } - - if (chdir(argv[1]) == -1) { - com_err(argv[0], errno, - "while trying to change native directory to %s", - argv[1]); - return; - } -} - -static void close_filesystem(NOARGS) -{ - int retval; - - if (current_fs->flags & EXT2_FLAG_IB_DIRTY) { - retval = ext2fs_write_inode_bitmap(current_fs); - if (retval) - com_err("ext2fs_write_inode_bitmap", retval, 0); - } - if (current_fs->flags & EXT2_FLAG_BB_DIRTY) { - retval = ext2fs_write_block_bitmap(current_fs); - if (retval) - com_err("ext2fs_write_block_bitmap", retval, 0); - } - if (current_qctx) - quota_release_context(¤t_qctx); - retval = ext2fs_close_free(¤t_fs); - if (retval) - com_err("ext2fs_close", retval, 0); - return; -} - -void do_close_filesys(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - int c; - - if (check_fs_open(argv[0])) - return; - - reset_getopt(); - while ((c = getopt (argc, argv, "a")) != EOF) { - switch (c) { - case 'a': - current_fs->flags &= ~EXT2_FLAG_MASTER_SB_ONLY; - break; - default: - goto print_usage; - } - } - - if (argc > optind) { - print_usage: - com_err(0, 0, "Usage: close_filesys [-a]"); - return; - } - - close_filesystem(); -} - -#ifndef READ_ONLY -void do_init_filesys(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - struct ext2_super_block param; - errcode_t retval; - int err; - blk64_t blocks; - - if (common_args_process(argc, argv, 3, 3, "initialize", - " ", CHECK_FS_NOTOPEN)) - return; - - memset(¶m, 0, sizeof(struct ext2_super_block)); - err = strtoblk(argv[0], argv[2], "blocks count", &blocks); - if (err) - return; - ext2fs_blocks_count_set(¶m, blocks); - retval = ext2fs_initialize(argv[1], 0, ¶m, - unix_io_manager, ¤t_fs); - if (retval) { - com_err(argv[1], retval, "while initializing filesystem"); - current_fs = NULL; - return; - } - root = cwd = EXT2_ROOT_INO; - return; -} - -static void print_features(struct ext2_super_block * s, FILE *f) -{ - int i, j, printed=0; - __u32 *mask = &s->s_feature_compat, m; - - fputs("Filesystem features:", f); - for (i=0; i <3; i++,mask++) { - for (j=0,m=1; j < 32; j++, m<<=1) { - if (*mask & m) { - fprintf(f, " %s", e2p_feature2string(i, m)); - printed++; - } - } - } - if (printed == 0) - fputs("(none)", f); - fputs("\n", f); -} -#endif /* READ_ONLY */ - -static void print_bg_opts(ext2_filsys fs, dgrp_t group, int mask, - const char *str, int *first, FILE *f) -{ - if (ext2fs_bg_flags_test(fs, group, mask)) { - if (*first) { - fputs(" [", f); - *first = 0; - } else - fputs(", ", f); - fputs(str, f); - } -} - -void do_show_super_stats(int argc, char *argv[], - int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - const char *units ="block"; - dgrp_t i; - FILE *out; - int c, header_only = 0; - int numdirs = 0, first, gdt_csum; - - reset_getopt(); - while ((c = getopt (argc, argv, "h")) != EOF) { - switch (c) { - case 'h': - header_only++; - break; - default: - goto print_usage; - } - } - if (optind != argc) { - goto print_usage; - } - if (check_fs_open(argv[0])) - return; - out = open_pager(); - - if (ext2fs_has_feature_bigalloc(current_fs->super)) - units = "cluster"; - - list_super2(current_fs->super, out); - if (ext2fs_has_feature_metadata_csum(current_fs->super) && - !ext2fs_superblock_csum_verify(current_fs, - current_fs->super)) { - __u32 orig_csum = current_fs->super->s_checksum; - - ext2fs_superblock_csum_set(current_fs, - current_fs->super); - fprintf(out, "Expected Checksum: 0x%08x\n", - current_fs->super->s_checksum); - current_fs->super->s_checksum = orig_csum; - } - for (i=0; i < current_fs->group_desc_count; i++) - numdirs += ext2fs_bg_used_dirs_count(current_fs, i); - fprintf(out, "Directories: %u\n", numdirs); - - if (header_only) { - close_pager(out); - return; - } - - gdt_csum = ext2fs_has_group_desc_csum(current_fs); - for (i = 0; i < current_fs->group_desc_count; i++) { - fprintf(out, " Group %2d: block bitmap at %llu, " - "inode bitmap at %llu, " - "inode table at %llu\n" - " %u free %s%s, " - "%u free %s, " - "%u used %s%s", i, - (unsigned long long) ext2fs_block_bitmap_loc(current_fs, i), - (unsigned long long) ext2fs_inode_bitmap_loc(current_fs, i), - (unsigned long long) ext2fs_inode_table_loc(current_fs, i), - ext2fs_bg_free_blocks_count(current_fs, i), - units, - ext2fs_bg_free_blocks_count(current_fs, i) != 1 ? - "s" : "", - ext2fs_bg_free_inodes_count(current_fs, i), - ext2fs_bg_free_inodes_count(current_fs, i) != 1 ? - "inodes" : "inode", - ext2fs_bg_used_dirs_count(current_fs, i), - ext2fs_bg_used_dirs_count(current_fs, i) != 1 ? "directories" - : "directory", gdt_csum ? ", " : "\n"); - if (gdt_csum) - fprintf(out, "%u unused %s\n", - ext2fs_bg_itable_unused(current_fs, i), - ext2fs_bg_itable_unused(current_fs, i) != 1 ? - "inodes" : "inode"); - first = 1; - print_bg_opts(current_fs, i, EXT2_BG_INODE_UNINIT, "Inode not init", - &first, out); - print_bg_opts(current_fs, i, EXT2_BG_BLOCK_UNINIT, "Block not init", - &first, out); - if (gdt_csum) { - fprintf(out, "%sChecksum 0x%04x", - first ? " [":", ", ext2fs_bg_checksum(current_fs, i)); - first = 0; - } - if (!first) - fputs("]\n", out); - } - close_pager(out); - return; -print_usage: - fprintf(stderr, "%s: Usage: show_super_stats [-h]\n", argv[0]); -} - -#ifndef READ_ONLY -void do_dirty_filesys(int argc EXT2FS_ATTR((unused)), - char **argv EXT2FS_ATTR((unused)), - int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - if (check_fs_open(argv[0])) - return; - if (check_fs_read_write(argv[0])) - return; - - if (argv[1] && !strcmp(argv[1], "-clean")) - current_fs->super->s_state |= EXT2_VALID_FS; - else - current_fs->super->s_state &= ~EXT2_VALID_FS; - ext2fs_mark_super_dirty(current_fs); -} -#endif /* READ_ONLY */ - -struct list_blocks_struct { - FILE *f; - e2_blkcnt_t total; - blk64_t first_block, last_block; - e2_blkcnt_t first_bcnt, last_bcnt; - e2_blkcnt_t first; -}; - -static void finish_range(struct list_blocks_struct *lb) -{ - if (lb->first_block == 0) - return; - if (lb->first) - lb->first = 0; - else - fprintf(lb->f, ", "); - if (lb->first_block == lb->last_block) - fprintf(lb->f, "(%lld):%llu", - (long long)lb->first_bcnt, - (unsigned long long) lb->first_block); - else - fprintf(lb->f, "(%lld-%lld):%llu-%llu", - (long long)lb->first_bcnt, (long long)lb->last_bcnt, - (unsigned long long) lb->first_block, - (unsigned long long) lb->last_block); - lb->first_block = 0; -} - -static int list_blocks_proc(ext2_filsys fs EXT2FS_ATTR((unused)), - blk64_t *blocknr, e2_blkcnt_t blockcnt, - blk64_t ref_block EXT2FS_ATTR((unused)), - int ref_offset EXT2FS_ATTR((unused)), - void *private) -{ - struct list_blocks_struct *lb = (struct list_blocks_struct *) private; - - lb->total++; - if (blockcnt >= 0) { - /* - * See if we can add on to the existing range (if it exists) - */ - if (lb->first_block && - (lb->last_block+1 == *blocknr) && - (lb->last_bcnt+1 == blockcnt)) { - lb->last_block = *blocknr; - lb->last_bcnt = blockcnt; - return 0; - } - /* - * Start a new range. - */ - finish_range(lb); - lb->first_block = lb->last_block = *blocknr; - lb->first_bcnt = lb->last_bcnt = blockcnt; - return 0; - } - /* - * Not a normal block. Always force a new range. - */ - finish_range(lb); - if (lb->first) - lb->first = 0; - else - fprintf(lb->f, ", "); - if (blockcnt == -1) - fprintf(lb->f, "(IND):%llu", (unsigned long long) *blocknr); - else if (blockcnt == -2) - fprintf(lb->f, "(DIND):%llu", (unsigned long long) *blocknr); - else if (blockcnt == -3) - fprintf(lb->f, "(TIND):%llu", (unsigned long long) *blocknr); - return 0; -} - -static void internal_dump_inode_extra(FILE *out, - const char *prefix EXT2FS_ATTR((unused)), - ext2_ino_t inode_num EXT2FS_ATTR((unused)), - struct ext2_inode_large *inode) -{ - fprintf(out, "Size of extra inode fields: %u\n", inode->i_extra_isize); - if (inode->i_extra_isize > EXT2_INODE_SIZE(current_fs->super) - - EXT2_GOOD_OLD_INODE_SIZE) { - fprintf(stderr, "invalid inode->i_extra_isize (%u)\n", - inode->i_extra_isize); - return; - } -} - -static void dump_blocks(FILE *f, const char *prefix, ext2_ino_t inode) -{ - struct list_blocks_struct lb; - - fprintf(f, "%sBLOCKS:\n%s", prefix, prefix); - lb.total = 0; - lb.first_block = 0; - lb.f = f; - lb.first = 1; - ext2fs_block_iterate3(current_fs, inode, BLOCK_FLAG_READ_ONLY, NULL, - list_blocks_proc, (void *)&lb); - finish_range(&lb); - if (lb.total) - fprintf(f, "\n%sTOTAL: %lld\n", prefix, (long long)lb.total); - fprintf(f,"\n"); -} - -static int int_log10(unsigned long long arg) -{ - int l = 0; - - arg = arg / 10; - while (arg) { - l++; - arg = arg / 10; - } - return l; -} - -#define DUMP_LEAF_EXTENTS 0x01 -#define DUMP_NODE_EXTENTS 0x02 -#define DUMP_EXTENT_TABLE 0x04 - -static void dump_extents(FILE *f, const char *prefix, ext2_ino_t ino, - int flags, int logical_width, int physical_width) -{ - ext2_extent_handle_t handle; - struct ext2fs_extent extent; - struct ext2_extent_info info; - int op = EXT2_EXTENT_ROOT; - unsigned int printed = 0; - errcode_t errcode; - - errcode = ext2fs_extent_open(current_fs, ino, &handle); - if (errcode) - return; - - if (flags & DUMP_EXTENT_TABLE) - fprintf(f, "Level Entries %*s %*s Length Flags\n", - (logical_width*2)+3, "Logical", - (physical_width*2)+3, "Physical"); - else - fprintf(f, "%sEXTENTS:\n%s", prefix, prefix); - - while (1) { - errcode = ext2fs_extent_get(handle, op, &extent); - - if (errcode) - break; - - op = EXT2_EXTENT_NEXT; - - if (extent.e_flags & EXT2_EXTENT_FLAGS_SECOND_VISIT) - continue; - - if (extent.e_flags & EXT2_EXTENT_FLAGS_LEAF) { - if ((flags & DUMP_LEAF_EXTENTS) == 0) - continue; - } else { - if ((flags & DUMP_NODE_EXTENTS) == 0) - continue; - } - - errcode = ext2fs_extent_get_info(handle, &info); - if (errcode) - continue; - - if (!(extent.e_flags & EXT2_EXTENT_FLAGS_LEAF)) { - if (extent.e_flags & EXT2_EXTENT_FLAGS_SECOND_VISIT) - continue; - - if (flags & DUMP_EXTENT_TABLE) { - fprintf(f, "%2d/%2d %3d/%3d %*llu - %*llu " - "%*llu%*s %6u\n", - info.curr_level, info.max_depth, - info.curr_entry, info.num_entries, - logical_width, - (unsigned long long) extent.e_lblk, - logical_width, - (unsigned long long) extent.e_lblk + (extent.e_len - 1), - physical_width, - (unsigned long long) extent.e_pblk, - physical_width+3, "", extent.e_len); - continue; - } - - fprintf(f, "%s(ETB%d):%llu", - printed ? ", " : "", info.curr_level, - (unsigned long long) extent.e_pblk); - printed = 1; - continue; - } - - if (flags & DUMP_EXTENT_TABLE) { - fprintf(f, "%2d/%2d %3d/%3d %*llu - %*llu " - "%*llu - %*llu %6u %s\n", - info.curr_level, info.max_depth, - info.curr_entry, info.num_entries, - logical_width, - (unsigned long long) extent.e_lblk, - logical_width, - (unsigned long long) extent.e_lblk + (extent.e_len - 1), - physical_width, - (unsigned long long) extent.e_pblk, - physical_width, - (unsigned long long) extent.e_pblk + (extent.e_len - 1), - extent.e_len, - extent.e_flags & EXT2_EXTENT_FLAGS_UNINIT ? - "Uninit" : ""); - continue; - } - - if (extent.e_len == 0) - continue; - else if (extent.e_len == 1) - fprintf(f, - "%s(%lld%s):%lld", - printed ? ", " : "", - (unsigned long long) extent.e_lblk, - extent.e_flags & EXT2_EXTENT_FLAGS_UNINIT ? - "[u]" : "", - (unsigned long long) extent.e_pblk); - else - fprintf(f, - "%s(%lld-%lld%s):%lld-%lld", - printed ? ", " : "", - (unsigned long long) extent.e_lblk, - (unsigned long long) extent.e_lblk + (extent.e_len - 1), - extent.e_flags & EXT2_EXTENT_FLAGS_UNINIT ? - "[u]" : "", - (unsigned long long) extent.e_pblk, - (unsigned long long) extent.e_pblk + (extent.e_len - 1)); - printed = 1; - } - if (printed) - fprintf(f, "\n"); - ext2fs_extent_free(handle); -} - -static void dump_inline_data(FILE *out, const char *prefix, ext2_ino_t inode_num) -{ - errcode_t retval; - size_t size; - - retval = ext2fs_inline_data_size(current_fs, inode_num, &size); - if (!retval) - fprintf(out, "%sSize of inline data: %zu\n", prefix, size); -} - -static void dump_inline_symlink(FILE *out, ext2_ino_t inode_num, - struct ext2_inode *inode, const char *prefix) -{ - errcode_t retval; - char *buf = NULL; - size_t size; - - retval = ext2fs_inline_data_size(current_fs, inode_num, &size); - if (retval) - goto out; - - retval = ext2fs_get_memzero(size + 1, &buf); - if (retval) - goto out; - - retval = ext2fs_inline_data_get(current_fs, inode_num, - inode, buf, &size); - if (retval) - goto out; - - fprintf(out, "%sFast link dest: \"%.*s\"\n", prefix, - (int)size, buf); -out: - if (buf) - ext2fs_free_mem(&buf); - if (retval) - com_err(__func__, retval, "while dumping link destination"); -} - -void internal_dump_inode(FILE *out, const char *prefix, - ext2_ino_t inode_num, struct ext2_inode *inode, - int do_dump_blocks) -{ - const char *i_type; - char frag, fsize; - int os = current_fs->super->s_creator_os; - struct ext2_inode_large *large_inode; - int is_large_inode = 0; - - if (EXT2_INODE_SIZE(current_fs->super) > EXT2_GOOD_OLD_INODE_SIZE) - is_large_inode = 1; - large_inode = (struct ext2_inode_large *) inode; - - if (LINUX_S_ISDIR(inode->i_mode)) i_type = "directory"; - else if (LINUX_S_ISREG(inode->i_mode)) i_type = "regular"; - else if (LINUX_S_ISLNK(inode->i_mode)) i_type = "symlink"; - else if (LINUX_S_ISBLK(inode->i_mode)) i_type = "block special"; - else if (LINUX_S_ISCHR(inode->i_mode)) i_type = "character special"; - else if (LINUX_S_ISFIFO(inode->i_mode)) i_type = "FIFO"; - else if (LINUX_S_ISSOCK(inode->i_mode)) i_type = "socket"; - else i_type = "bad type"; - fprintf(out, "%sInode: %u Type: %s ", prefix, inode_num, i_type); - fprintf(out, "%sMode: 0%03o Flags: 0x%x\n", - prefix, inode->i_mode & 07777, inode->i_flags); - if (is_large_inode && large_inode->i_extra_isize >= 24) { - fprintf(out, "%sGeneration: %u Version: 0x%08x:%08x\n", - prefix, inode->i_generation, large_inode->i_version_hi, - inode->osd1.linux1.l_i_version); - } else { - fprintf(out, "%sGeneration: %u Version: 0x%08x\n", prefix, - inode->i_generation, inode->osd1.linux1.l_i_version); - } - fprintf(out, "%sUser: %5d Group: %5d", - prefix, inode_uid(*inode), inode_gid(*inode)); - if (is_large_inode && large_inode->i_extra_isize >= 32) - fprintf(out, " Project: %5d", large_inode->i_projid); - fputs(" Size: ", out); - if (LINUX_S_ISREG(inode->i_mode) || LINUX_S_ISDIR(inode->i_mode)) - fprintf(out, "%llu\n", (unsigned long long) EXT2_I_SIZE(inode)); - else - fprintf(out, "%u\n", inode->i_size); - if (os == EXT2_OS_HURD) - fprintf(out, - "%sFile ACL: %u Translator: %u\n", - prefix, - inode->i_file_acl, - inode->osd1.hurd1.h_i_translator); - else - fprintf(out, "%sFile ACL: %llu\n", - prefix, - inode->i_file_acl | ((long long) - (inode->osd2.linux2.l_i_file_acl_high) << 32)); - if (os != EXT2_OS_HURD) - fprintf(out, "%sLinks: %u Blockcount: %llu\n", - prefix, inode->i_links_count, - (((unsigned long long) - inode->osd2.linux2.l_i_blocks_hi << 32)) + - inode->i_blocks); - else - fprintf(out, "%sLinks: %u Blockcount: %u\n", - prefix, inode->i_links_count, inode->i_blocks); - switch (os) { - case EXT2_OS_HURD: - frag = inode->osd2.hurd2.h_i_frag; - fsize = inode->osd2.hurd2.h_i_fsize; - break; - default: - frag = fsize = 0; - } - fprintf(out, "%sFragment: Address: %u Number: %u Size: %u\n", - prefix, inode->i_faddr, frag, fsize); - if (is_large_inode && large_inode->i_extra_isize >= 24) { - fprintf(out, "%s ctime: 0x%08x:%08x -- %s", prefix, - inode->i_ctime, large_inode->i_ctime_extra, - inode_time_to_string(inode->i_ctime, - large_inode->i_ctime_extra)); - fprintf(out, "%s atime: 0x%08x:%08x -- %s", prefix, - inode->i_atime, large_inode->i_atime_extra, - inode_time_to_string(inode->i_atime, - large_inode->i_atime_extra)); - fprintf(out, "%s mtime: 0x%08x:%08x -- %s", prefix, - inode->i_mtime, large_inode->i_mtime_extra, - inode_time_to_string(inode->i_mtime, - large_inode->i_mtime_extra)); - fprintf(out, "%scrtime: 0x%08x:%08x -- %s", prefix, - large_inode->i_crtime, large_inode->i_crtime_extra, - inode_time_to_string(large_inode->i_crtime, - large_inode->i_crtime_extra)); - if (inode->i_dtime) - fprintf(out, "%s dtime: 0x%08x:(%08x) -- %s", prefix, - large_inode->i_dtime, large_inode->i_ctime_extra, - inode_time_to_string(inode->i_dtime, - large_inode->i_ctime_extra)); - } else { - fprintf(out, "%sctime: 0x%08x -- %s", prefix, inode->i_ctime, - time_to_string((__s32) inode->i_ctime)); - fprintf(out, "%satime: 0x%08x -- %s", prefix, inode->i_atime, - time_to_string((__s32) inode->i_atime)); - fprintf(out, "%smtime: 0x%08x -- %s", prefix, inode->i_mtime, - time_to_string((__s32) inode->i_mtime)); - if (inode->i_dtime) - fprintf(out, "%sdtime: 0x%08x -- %s", prefix, - inode->i_dtime, - time_to_string((__s32) inode->i_dtime)); - } - if (EXT2_INODE_SIZE(current_fs->super) > EXT2_GOOD_OLD_INODE_SIZE) - internal_dump_inode_extra(out, prefix, inode_num, - (struct ext2_inode_large *) inode); - dump_inode_attributes(out, inode_num); - if (ext2fs_has_feature_metadata_csum(current_fs->super)) { - __u32 crc = inode->i_checksum_lo; - if (is_large_inode && - large_inode->i_extra_isize >= - (offsetof(struct ext2_inode_large, - i_checksum_hi) - - EXT2_GOOD_OLD_INODE_SIZE)) - crc |= ((__u32)large_inode->i_checksum_hi) << 16; - fprintf(out, "Inode checksum: 0x%08x\n", crc); - } - - if (LINUX_S_ISLNK(inode->i_mode) && ext2fs_is_fast_symlink(inode)) - fprintf(out, "%sFast link dest: \"%.*s\"\n", prefix, - (int)EXT2_I_SIZE(inode), (char *)inode->i_block); - else if (LINUX_S_ISLNK(inode->i_mode) && - (inode->i_flags & EXT4_INLINE_DATA_FL)) - dump_inline_symlink(out, inode_num, inode, prefix); - else if (LINUX_S_ISBLK(inode->i_mode) || LINUX_S_ISCHR(inode->i_mode)) { - int major, minor; - const char *devnote; - - if (inode->i_block[0]) { - major = (inode->i_block[0] >> 8) & 255; - minor = inode->i_block[0] & 255; - devnote = ""; - } else { - major = (inode->i_block[1] & 0xfff00) >> 8; - minor = ((inode->i_block[1] & 0xff) | - ((inode->i_block[1] >> 12) & 0xfff00)); - devnote = "(New-style) "; - } - fprintf(out, "%sDevice major/minor number: %02d:%02d (hex %02x:%02x)\n", - devnote, major, minor, major, minor); - } else if (do_dump_blocks) { - if (inode->i_flags & EXT4_EXTENTS_FL) - dump_extents(out, prefix, inode_num, - DUMP_LEAF_EXTENTS|DUMP_NODE_EXTENTS, 0, 0); - else if (inode->i_flags & EXT4_INLINE_DATA_FL) - dump_inline_data(out, prefix, inode_num); - else - dump_blocks(out, prefix, inode_num); - } -} - -static void dump_inode(ext2_ino_t inode_num, struct ext2_inode *inode) -{ - FILE *out; - - out = open_pager(); - internal_dump_inode(out, "", inode_num, inode, 1); - close_pager(out); -} - -void do_stat(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - ext2_ino_t inode; - struct ext2_inode * inode_buf; - - if (check_fs_open(argv[0])) - return; - - inode_buf = (struct ext2_inode *) - malloc(EXT2_INODE_SIZE(current_fs->super)); - if (!inode_buf) { - fprintf(stderr, "do_stat: can't allocate buffer\n"); - return; - } - - if (common_inode_args_process(argc, argv, &inode, 0)) { - free(inode_buf); - return; - } - - if (debugfs_read_inode2(inode, inode_buf, argv[0], - EXT2_INODE_SIZE(current_fs->super), 0)) { - free(inode_buf); - return; - } - - dump_inode(inode, inode_buf); - free(inode_buf); - return; -} - -void do_dump_extents(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - struct ext2_inode inode; - ext2_ino_t ino; - FILE *out; - int c, flags = 0; - int logical_width; - int physical_width; - - reset_getopt(); - while ((c = getopt(argc, argv, "nl")) != EOF) { - switch (c) { - case 'n': - flags |= DUMP_NODE_EXTENTS; - break; - case 'l': - flags |= DUMP_LEAF_EXTENTS; - break; - } - } - - if (argc != optind + 1) { - com_err(0, 0, "Usage: dump_extents [-n] [-l] file"); - return; - } - - if (flags == 0) - flags = DUMP_NODE_EXTENTS | DUMP_LEAF_EXTENTS; - flags |= DUMP_EXTENT_TABLE; - - if (check_fs_open(argv[0])) - return; - - ino = string_to_inode(argv[optind]); - if (ino == 0) - return; - - if (debugfs_read_inode(ino, &inode, argv[0])) - return; - - if ((inode.i_flags & EXT4_EXTENTS_FL) == 0) { - fprintf(stderr, "%s: does not uses extent block maps\n", - argv[optind]); - return; - } - - logical_width = int_log10((EXT2_I_SIZE(&inode)+current_fs->blocksize-1)/ - current_fs->blocksize) + 1; - if (logical_width < 5) - logical_width = 5; - physical_width = int_log10(ext2fs_blocks_count(current_fs->super)) + 1; - if (physical_width < 5) - physical_width = 5; - - out = open_pager(); - dump_extents(out, "", ino, flags, logical_width, physical_width); - close_pager(out); - return; -} - -static int print_blocks_proc(ext2_filsys fs EXT2FS_ATTR((unused)), - blk64_t *blocknr, - e2_blkcnt_t blockcnt EXT2FS_ATTR((unused)), - blk64_t ref_block EXT2FS_ATTR((unused)), - int ref_offset EXT2FS_ATTR((unused)), - void *private EXT2FS_ATTR((unused))) -{ - printf("%llu ", (unsigned long long) *blocknr); - return 0; -} - -void do_blocks(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - ext2_ino_t inode; - - if (check_fs_open(argv[0])) - return; - - if (common_inode_args_process(argc, argv, &inode, 0)) { - return; - } - - ext2fs_block_iterate3(current_fs, inode, BLOCK_FLAG_READ_ONLY, NULL, - print_blocks_proc, NULL); - fputc('\n', stdout); - return; -} - -void do_chroot(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - ext2_ino_t inode; - int retval; - - if (common_inode_args_process(argc, argv, &inode, 0)) - return; - - retval = ext2fs_check_directory(current_fs, inode); - if (retval) { - com_err(argv[1], retval, 0); - return; - } - root = inode; -} - -#ifndef READ_ONLY -void do_clri(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - ext2_ino_t inode; - struct ext2_inode inode_buf; - - if (common_inode_args_process(argc, argv, &inode, CHECK_FS_RW)) - return; - - if (debugfs_read_inode(inode, &inode_buf, argv[0])) - return; - memset(&inode_buf, 0, sizeof(inode_buf)); - if (debugfs_write_inode(inode, &inode_buf, argv[0])) - return; -} - -void do_freei(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - unsigned int len = 1; - int err = 0; - ext2_ino_t inode; - - if (common_args_process(argc, argv, 2, 3, argv[0], " [num]", - CHECK_FS_RW | CHECK_FS_BITMAPS)) - return; - if (check_fs_read_write(argv[0])) - return; - - inode = string_to_inode(argv[1]); - if (!inode) - return; - - if (argc == 3) { - len = parse_ulong(argv[2], argv[0], "length", &err); - if (err) - return; - } - - if (len == 1 && - !ext2fs_test_inode_bitmap2(current_fs->inode_map,inode)) - com_err(argv[0], 0, "Warning: inode already clear"); - while (len-- > 0) - ext2fs_unmark_inode_bitmap2(current_fs->inode_map, inode++); - ext2fs_mark_ib_dirty(current_fs); -} - -void do_seti(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - unsigned int len = 1; - int err = 0; - ext2_ino_t inode; - - if (common_args_process(argc, argv, 2, 3, argv[0], " [num]", - CHECK_FS_RW | CHECK_FS_BITMAPS)) - return; - if (check_fs_read_write(argv[0])) - return; - - inode = string_to_inode(argv[1]); - if (!inode) - return; - - if (argc == 3) { - len = parse_ulong(argv[2], argv[0], "length", &err); - if (err) - return; - } - - if ((len == 1) && - ext2fs_test_inode_bitmap2(current_fs->inode_map,inode)) - com_err(argv[0], 0, "Warning: inode already set"); - while (len-- > 0) - ext2fs_mark_inode_bitmap2(current_fs->inode_map, inode++); - ext2fs_mark_ib_dirty(current_fs); -} -#endif /* READ_ONLY */ - -void do_testi(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - ext2_ino_t inode; - - if (common_inode_args_process(argc, argv, &inode, CHECK_FS_BITMAPS)) - return; - - if (ext2fs_test_inode_bitmap2(current_fs->inode_map,inode)) - printf("Inode %u is marked in use\n", inode); - else - printf("Inode %u is not in use\n", inode); -} - -#ifndef READ_ONLY -void do_freeb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - blk64_t block; - blk64_t count = 1; - - if (common_block_args_process(argc, argv, &block, &count)) - return; - if (check_fs_read_write(argv[0])) - return; - while (count-- > 0) { - if (!ext2fs_test_block_bitmap2(current_fs->block_map,block)) - com_err(argv[0], 0, "Warning: block %llu already clear", - (unsigned long long) block); - ext2fs_unmark_block_bitmap2(current_fs->block_map,block); - block++; - } - ext2fs_mark_bb_dirty(current_fs); -} - -void do_setb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - blk64_t block; - blk64_t count = 1; - - if (common_block_args_process(argc, argv, &block, &count)) - return; - if (check_fs_read_write(argv[0])) - return; - while (count-- > 0) { - if (ext2fs_test_block_bitmap2(current_fs->block_map,block)) - com_err(argv[0], 0, "Warning: block %llu already set", - (unsigned long long) block); - ext2fs_mark_block_bitmap2(current_fs->block_map,block); - block++; - } - ext2fs_mark_bb_dirty(current_fs); -} -#endif /* READ_ONLY */ - -void do_testb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - blk64_t block; - blk64_t count = 1; - - if (common_block_args_process(argc, argv, &block, &count)) - return; - while (count-- > 0) { - if (ext2fs_test_block_bitmap2(current_fs->block_map,block)) - printf("Block %llu marked in use\n", - (unsigned long long) block); - else - printf("Block %llu not in use\n", - (unsigned long long) block); - block++; - } -} - -#ifndef READ_ONLY -static void modify_u8(char *com, const char *prompt, - const char *format, __u8 *val) -{ - char buf[200]; - unsigned long v; - char *tmp; - - sprintf(buf, format, *val); - printf("%30s [%s] ", prompt, buf); - if (!fgets(buf, sizeof(buf), stdin)) - return; - if (buf[strlen (buf) - 1] == '\n') - buf[strlen (buf) - 1] = '\0'; - if (!buf[0]) - return; - v = strtoul(buf, &tmp, 0); - if (*tmp) - com_err(com, 0, "Bad value - %s", buf); - else - *val = v; -} - -static void modify_u16(char *com, const char *prompt, - const char *format, __u16 *val) -{ - char buf[200]; - unsigned long v; - char *tmp; - - sprintf(buf, format, *val); - printf("%30s [%s] ", prompt, buf); - if (!fgets(buf, sizeof(buf), stdin)) - return; - if (buf[strlen (buf) - 1] == '\n') - buf[strlen (buf) - 1] = '\0'; - if (!buf[0]) - return; - v = strtoul(buf, &tmp, 0); - if (*tmp) - com_err(com, 0, "Bad value - %s", buf); - else - *val = v; -} - -static void modify_u32(char *com, const char *prompt, - const char *format, __u32 *val) -{ - char buf[200]; - unsigned long v; - char *tmp; - - sprintf(buf, format, *val); - printf("%30s [%s] ", prompt, buf); - if (!fgets(buf, sizeof(buf), stdin)) - return; - if (buf[strlen (buf) - 1] == '\n') - buf[strlen (buf) - 1] = '\0'; - if (!buf[0]) - return; - v = strtoul(buf, &tmp, 0); - if (*tmp) - com_err(com, 0, "Bad value - %s", buf); - else - *val = v; -} - - -void do_modify_inode(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - struct ext2_inode inode; - ext2_ino_t inode_num; - int i; - unsigned char *frag, *fsize; - char buf[80]; - int os; - const char *hex_format = "0x%x"; - const char *octal_format = "0%o"; - const char *decimal_format = "%d"; - const char *unsignedlong_format = "%lu"; - - if (common_inode_args_process(argc, argv, &inode_num, CHECK_FS_RW)) - return; - - os = current_fs->super->s_creator_os; - - if (debugfs_read_inode(inode_num, &inode, argv[1])) - return; - - modify_u16(argv[0], "Mode", octal_format, &inode.i_mode); - modify_u16(argv[0], "User ID", decimal_format, &inode.i_uid); - modify_u16(argv[0], "Group ID", decimal_format, &inode.i_gid); - modify_u32(argv[0], "Size", unsignedlong_format, &inode.i_size); - modify_u32(argv[0], "Creation time", decimal_format, &inode.i_ctime); - modify_u32(argv[0], "Modification time", decimal_format, &inode.i_mtime); - modify_u32(argv[0], "Access time", decimal_format, &inode.i_atime); - modify_u32(argv[0], "Deletion time", decimal_format, &inode.i_dtime); - modify_u16(argv[0], "Link count", decimal_format, &inode.i_links_count); - if (os == EXT2_OS_LINUX) - modify_u16(argv[0], "Block count high", unsignedlong_format, - &inode.osd2.linux2.l_i_blocks_hi); - modify_u32(argv[0], "Block count", unsignedlong_format, &inode.i_blocks); - modify_u32(argv[0], "File flags", hex_format, &inode.i_flags); - modify_u32(argv[0], "Generation", hex_format, &inode.i_generation); -#if 0 - modify_u32(argv[0], "Reserved1", decimal_format, &inode.i_reserved1); -#endif - modify_u32(argv[0], "File acl", decimal_format, &inode.i_file_acl); - - modify_u32(argv[0], "High 32bits of size", decimal_format, - &inode.i_size_high); - - if (os == EXT2_OS_HURD) - modify_u32(argv[0], "Translator Block", - decimal_format, &inode.osd1.hurd1.h_i_translator); - - modify_u32(argv[0], "Fragment address", decimal_format, &inode.i_faddr); - switch (os) { - case EXT2_OS_HURD: - frag = &inode.osd2.hurd2.h_i_frag; - fsize = &inode.osd2.hurd2.h_i_fsize; - break; - default: - frag = fsize = 0; - } - if (frag) - modify_u8(argv[0], "Fragment number", decimal_format, frag); - if (fsize) - modify_u8(argv[0], "Fragment size", decimal_format, fsize); - - for (i=0; i < EXT2_NDIR_BLOCKS; i++) { - sprintf(buf, "Direct Block #%u", i); - modify_u32(argv[0], buf, decimal_format, &inode.i_block[i]); - } - modify_u32(argv[0], "Indirect Block", decimal_format, - &inode.i_block[EXT2_IND_BLOCK]); - modify_u32(argv[0], "Double Indirect Block", decimal_format, - &inode.i_block[EXT2_DIND_BLOCK]); - modify_u32(argv[0], "Triple Indirect Block", decimal_format, - &inode.i_block[EXT2_TIND_BLOCK]); - if (debugfs_write_inode(inode_num, &inode, argv[1])) - return; -} -#endif /* READ_ONLY */ - -void do_change_working_dir(int argc, char *argv[], - int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - ext2_ino_t inode; - int retval; - - if (common_inode_args_process(argc, argv, &inode, 0)) - return; - - retval = ext2fs_check_directory(current_fs, inode); - if (retval) { - com_err(argv[1], retval, 0); - return; - } - cwd = inode; - return; -} - -void do_print_working_directory(int argc, char *argv[], - int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - int retval; - char *pathname = NULL; - - if (common_args_process(argc, argv, 1, 1, - "print_working_directory", "", 0)) - return; - - retval = ext2fs_get_pathname(current_fs, cwd, 0, &pathname); - if (retval) { - com_err(argv[0], retval, - "while trying to get pathname of cwd"); - } - printf("[pwd] INODE: %6u PATH: %s\n", - cwd, pathname ? pathname : "NULL"); - if (pathname) { - free(pathname); - pathname = NULL; - } - retval = ext2fs_get_pathname(current_fs, root, 0, &pathname); - if (retval) { - com_err(argv[0], retval, - "while trying to get pathname of root"); - } - printf("[root] INODE: %6u PATH: %s\n", - root, pathname ? pathname : "NULL"); - if (pathname) { - free(pathname); - pathname = NULL; - } - return; -} - -#ifndef READ_ONLY -static void make_link(char *sourcename, char *destname) -{ - ext2_ino_t ino; - struct ext2_inode inode; - int retval; - ext2_ino_t dir; - char *dest, *cp, *base_name; - - /* - * Get the source inode - */ - ino = string_to_inode(sourcename); - if (!ino) - return; - base_name = strrchr(sourcename, '/'); - if (base_name) - base_name++; - else - base_name = sourcename; - /* - * Figure out the destination. First see if it exists and is - * a directory. - */ - if (! (retval=ext2fs_namei(current_fs, root, cwd, destname, &dir))) - dest = base_name; - else { - /* - * OK, it doesn't exist. See if it is - * '/basename' or 'basename' - */ - cp = strrchr(destname, '/'); - if (cp) { - *cp = 0; - dir = string_to_inode(destname); - if (!dir) - return; - dest = cp+1; - } else { - dir = cwd; - dest = destname; - } - } - - if (debugfs_read_inode(ino, &inode, sourcename)) - return; - - retval = ext2fs_link(current_fs, dir, dest, ino, - ext2_file_type(inode.i_mode)); - if (retval) - com_err("make_link", retval, 0); - return; -} - - -void do_link(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - if (common_args_process(argc, argv, 3, 3, "link", - " ", CHECK_FS_RW)) - return; - - make_link(argv[1], argv[2]); -} - -static int mark_blocks_proc(ext2_filsys fs, blk64_t *blocknr, - e2_blkcnt_t blockcnt EXT2FS_ATTR((unused)), - blk64_t ref_block EXT2FS_ATTR((unused)), - int ref_offset EXT2FS_ATTR((unused)), - void *private EXT2FS_ATTR((unused))) -{ - blk64_t block; - - block = *blocknr; - ext2fs_block_alloc_stats2(fs, block, +1); - return 0; -} - -void do_undel(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - ext2_ino_t ino; - struct ext2_inode inode; - - if (common_args_process(argc, argv, 2, 3, "undelete", - " [dest_name]", - CHECK_FS_RW | CHECK_FS_BITMAPS)) - return; - - ino = string_to_inode(argv[1]); - if (!ino) - return; - - if (debugfs_read_inode(ino, &inode, argv[1])) - return; - - if (ext2fs_test_inode_bitmap2(current_fs->inode_map, ino)) { - com_err(argv[1], 0, "Inode is not marked as deleted"); - return; - } - - /* - * XXX this function doesn't handle changing the links count on the - * parent directory when undeleting a directory. - */ - inode.i_links_count = LINUX_S_ISDIR(inode.i_mode) ? 2 : 1; - inode.i_dtime = 0; - - if (debugfs_write_inode(ino, &inode, argv[0])) - return; - - ext2fs_block_iterate3(current_fs, ino, BLOCK_FLAG_READ_ONLY, NULL, - mark_blocks_proc, NULL); - - ext2fs_inode_alloc_stats2(current_fs, ino, +1, 0); - - if (argc > 2) - make_link(argv[1], argv[2]); -} - -static void unlink_file_by_name(char *filename) -{ - int retval; - ext2_ino_t dir; - char *base_name; - - base_name = strrchr(filename, '/'); - if (base_name) { - *base_name++ = '\0'; - dir = string_to_inode(filename); - if (!dir) - return; - } else { - dir = cwd; - base_name = filename; - } - retval = ext2fs_unlink(current_fs, dir, base_name, 0, 0); - if (retval) - com_err("unlink_file_by_name", retval, 0); - return; -} - -void do_unlink(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - if (common_args_process(argc, argv, 2, 2, "link", - "", CHECK_FS_RW)) - return; - - unlink_file_by_name(argv[1]); -} - -void do_copy_inode(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - ext2_ino_t src_ino, dest_ino; - unsigned char buf[4096]; - - if (common_args_process(argc, argv, 3, 3, "copy_inode", - " ", CHECK_FS_RW)) - return; - - src_ino = string_to_inode(argv[1]); - if (!src_ino) - return; - - dest_ino = string_to_inode(argv[2]); - if (!dest_ino) - return; - - if (debugfs_read_inode2(src_ino, (struct ext2_inode *) buf, - argv[0], sizeof(buf), 0)) - return; - - if (debugfs_write_inode2(dest_ino, (struct ext2_inode *) buf, - argv[0], sizeof(buf), 0)) - return; -} - -#endif /* READ_ONLY */ - -void do_find_free_block(int argc, char *argv[], - int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - blk64_t free_blk, goal, first_free = 0; - int count; - errcode_t retval; - char *tmp; - - if ((argc > 3) || (argc==2 && *argv[1] == '?')) { - com_err(argv[0], 0, "Usage: find_free_block [count [goal]]"); - return; - } - if (check_fs_open(argv[0])) - return; - - if (argc > 1) { - count = strtol(argv[1],&tmp,0); - if (*tmp) { - com_err(argv[0], 0, "Bad count - %s", argv[1]); - return; - } - } else - count = 1; - - if (argc > 2) { - goal = strtol(argv[2], &tmp, 0); - if (*tmp) { - com_err(argv[0], 0, "Bad goal - %s", argv[1]); - return; - } - } - else - goal = current_fs->super->s_first_data_block; - - printf("Free blocks found: "); - free_blk = goal - 1; - while (count-- > 0) { - retval = ext2fs_new_block2(current_fs, free_blk + 1, 0, - &free_blk); - if (first_free) { - if (first_free == free_blk) - break; - } else - first_free = free_blk; - if (retval) { - com_err("ext2fs_new_block", retval, 0); - return; - } else - printf("%llu ", (unsigned long long) free_blk); - } - printf("\n"); -} - -void do_find_free_inode(int argc, char *argv[], - int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - ext2_ino_t free_inode, dir; - int mode; - int retval; - char *tmp; - - if (argc > 3 || (argc>1 && *argv[1] == '?')) { - com_err(argv[0], 0, "Usage: find_free_inode [dir [mode]]"); - return; - } - if (check_fs_open(argv[0])) - return; - - if (argc > 1) { - dir = strtol(argv[1], &tmp, 0); - if (*tmp) { - com_err(argv[0], 0, "Bad dir - %s", argv[1]); - return; - } - } - else - dir = root; - if (argc > 2) { - mode = strtol(argv[2], &tmp, 0); - if (*tmp) { - com_err(argv[0], 0, "Bad mode - %s", argv[2]); - return; - } - } else - mode = 010755; - - retval = ext2fs_new_inode(current_fs, dir, mode, 0, &free_inode); - if (retval) - com_err("ext2fs_new_inode", retval, 0); - else - printf("Free inode found: %u\n", free_inode); -} - -#ifndef READ_ONLY -void do_write(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - errcode_t retval; - - if (common_args_process(argc, argv, 3, 3, "write", - " ", CHECK_FS_RW)) - return; - - retval = do_write_internal(current_fs, cwd, argv[1], argv[2], root); - if (retval) - com_err(argv[0], retval, 0); -} - -void do_mknod(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - unsigned long major, minor; - errcode_t retval; - int nr; - struct stat st; - - if (check_fs_open(argv[0])) - return; - if (argc < 3 || argv[2][1]) { - usage: - com_err(argv[0], 0, "Usage: mknod [p| [c|b] ]"); - return; - } - - minor = major = 0; - switch (argv[2][0]) { - case 'p': - st.st_mode = S_IFIFO; - nr = 3; - break; - case 'c': - st.st_mode = S_IFCHR; - nr = 5; - break; - case 'b': - st.st_mode = S_IFBLK; - nr = 5; - break; - default: - nr = 0; - } - - if (nr == 5) { - major = strtoul(argv[3], argv+3, 0); - minor = strtoul(argv[4], argv+4, 0); - if (major > 65535 || minor > 65535 || argv[3][0] || argv[4][0]) - nr = 0; - } - - if (argc != nr) - goto usage; - - st.st_rdev = makedev(major, minor); - retval = do_mknod_internal(current_fs, cwd, argv[1], - st.st_mode, st.st_rdev); - if (retval) - com_err(argv[0], retval, 0); -} - -void do_mkdir(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - errcode_t retval; - - if (common_args_process(argc, argv, 2, 2, "mkdir", - "", CHECK_FS_RW)) - return; - - retval = do_mkdir_internal(current_fs, cwd, argv[1], root); - if (retval) - com_err(argv[0], retval, 0); - -} - -static int release_blocks_proc(ext2_filsys fs, blk64_t *blocknr, - e2_blkcnt_t blockcnt EXT2FS_ATTR((unused)), - blk64_t ref_block EXT2FS_ATTR((unused)), - int ref_offset EXT2FS_ATTR((unused)), - void *private) -{ - blk64_t block = *blocknr; - blk64_t *last_cluster = (blk64_t *)private; - blk64_t cluster = EXT2FS_B2C(fs, block); - - if (cluster == *last_cluster) - return 0; - - *last_cluster = cluster; - - ext2fs_block_alloc_stats2(fs, block, -1); - return 0; -} - -static void kill_file_by_inode(ext2_ino_t inode) -{ - struct ext2_inode inode_buf; - - if (debugfs_read_inode(inode, &inode_buf, 0)) - return; - inode_buf.i_dtime = current_fs->now ? current_fs->now : time(0); - if (debugfs_write_inode(inode, &inode_buf, 0)) - return; - if (ext2fs_inode_has_valid_blocks2(current_fs, &inode_buf)) { - blk64_t last_cluster = 0; - ext2fs_block_iterate3(current_fs, inode, BLOCK_FLAG_READ_ONLY, - NULL, release_blocks_proc, &last_cluster); - } - printf("\n"); - ext2fs_inode_alloc_stats2(current_fs, inode, -1, - LINUX_S_ISDIR(inode_buf.i_mode)); -} - - -void do_kill_file(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - ext2_ino_t inode_num; - - if (common_inode_args_process(argc, argv, &inode_num, CHECK_FS_RW)) - return; - - kill_file_by_inode(inode_num); -} - -void do_rm(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - int retval; - ext2_ino_t inode_num; - struct ext2_inode inode; - - if (common_args_process(argc, argv, 2, 2, "rm", - "", CHECK_FS_RW)) - return; - - retval = ext2fs_namei(current_fs, root, cwd, argv[1], &inode_num); - if (retval) { - com_err(argv[0], retval, "while trying to resolve filename"); - return; - } - - if (debugfs_read_inode(inode_num, &inode, argv[0])) - return; - - if (LINUX_S_ISDIR(inode.i_mode)) { - com_err(argv[0], 0, "file is a directory"); - return; - } - - --inode.i_links_count; - if (debugfs_write_inode(inode_num, &inode, argv[0])) - return; - - unlink_file_by_name(argv[1]); - if (inode.i_links_count == 0) - kill_file_by_inode(inode_num); -} - -struct rd_struct { - ext2_ino_t parent; - int empty; -}; - -static int rmdir_proc(ext2_ino_t dir EXT2FS_ATTR((unused)), - int entry EXT2FS_ATTR((unused)), - struct ext2_dir_entry *dirent, - int offset EXT2FS_ATTR((unused)), - int blocksize EXT2FS_ATTR((unused)), - char *buf EXT2FS_ATTR((unused)), - void *private) -{ - struct rd_struct *rds = (struct rd_struct *) private; - - if (dirent->inode == 0) - return 0; - if ((ext2fs_dirent_name_len(dirent) == 1) && (dirent->name[0] == '.')) - return 0; - if ((ext2fs_dirent_name_len(dirent) == 2) && (dirent->name[0] == '.') && - (dirent->name[1] == '.')) { - rds->parent = dirent->inode; - return 0; - } - rds->empty = 0; - return 0; -} - -void do_rmdir(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - int retval; - ext2_ino_t inode_num; - struct ext2_inode inode; - struct rd_struct rds; - - if (common_args_process(argc, argv, 2, 2, "rmdir", - "", CHECK_FS_RW)) - return; - - retval = ext2fs_namei(current_fs, root, cwd, argv[1], &inode_num); - if (retval) { - com_err(argv[0], retval, "while trying to resolve filename"); - return; - } - - if (debugfs_read_inode(inode_num, &inode, argv[0])) - return; - - if (!LINUX_S_ISDIR(inode.i_mode)) { - com_err(argv[0], 0, "file is not a directory"); - return; - } - - rds.parent = 0; - rds.empty = 1; - - retval = ext2fs_dir_iterate2(current_fs, inode_num, 0, - 0, rmdir_proc, &rds); - if (retval) { - com_err(argv[0], retval, "while iterating over directory"); - return; - } - if (rds.empty == 0) { - com_err(argv[0], 0, "directory not empty"); - return; - } - - inode.i_links_count = 0; - if (debugfs_write_inode(inode_num, &inode, argv[0])) - return; - - unlink_file_by_name(argv[1]); - kill_file_by_inode(inode_num); - - if (rds.parent) { - if (debugfs_read_inode(rds.parent, &inode, argv[0])) - return; - if (inode.i_links_count > 1) - inode.i_links_count--; - if (debugfs_write_inode(rds.parent, &inode, argv[0])) - return; - } -} -#endif /* READ_ONLY */ - -void do_show_debugfs_params(int argc EXT2FS_ATTR((unused)), - char *argv[] EXT2FS_ATTR((unused)), - int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - if (current_fs) - printf("Open mode: read-%s\n", - current_fs->flags & EXT2_FLAG_RW ? "write" : "only"); - printf("Filesystem in use: %s\n", - current_fs ? current_fs->device_name : "--none--"); -} - -#ifndef READ_ONLY -void do_expand_dir(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - ext2_ino_t inode; - int retval; - - if (common_inode_args_process(argc, argv, &inode, CHECK_FS_RW)) - return; - - retval = ext2fs_expand_dir(current_fs, inode); - if (retval) - com_err("ext2fs_expand_dir", retval, 0); - return; -} - -void do_features(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - int i; - - if (check_fs_open(argv[0])) - return; - - if ((argc != 1) && check_fs_read_write(argv[0])) - return; - for (i=1; i < argc; i++) { - if (e2p_edit_feature(argv[i], - ¤t_fs->super->s_feature_compat, 0)) - com_err(argv[0], 0, "Unknown feature: %s\n", - argv[i]); - else - ext2fs_mark_super_dirty(current_fs); - } - print_features(current_fs->super, stdout); -} -#endif /* READ_ONLY */ - -void do_bmap(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - ext2_ino_t ino; - blk64_t blk, pblk = 0; - int c, err, flags = 0, ret_flags = 0; - errcode_t errcode; - - if (check_fs_open(argv[0])) - return; - - reset_getopt(); - while ((c = getopt (argc, argv, "a")) != EOF) { - switch (c) { - case 'a': - flags |= BMAP_ALLOC; - break; - default: - goto print_usage; - } - } - - if (argc <= optind+1) { - print_usage: - com_err(0, 0, - "Usage: bmap [-a] logical_blk [physical_blk]"); - return; - } - - ino = string_to_inode(argv[optind++]); - if (!ino) - return; - err = strtoblk(argv[0], argv[optind++], "logical block", &blk); - if (err) - return; - - if (argc > optind+1) - goto print_usage; - - if (argc == optind+1) { - err = strtoblk(argv[0], argv[optind++], - "physical block", &pblk); - if (err) - return; - if (flags & BMAP_ALLOC) { - com_err(0, 0, "Can't set and allocate a block"); - return; - } - flags |= BMAP_SET; - } - - errcode = ext2fs_bmap2(current_fs, ino, 0, 0, flags, blk, - &ret_flags, &pblk); - if (errcode) { - com_err(argv[0], errcode, - "while mapping logical block %llu\n", - (unsigned long long) blk); - return; - } - printf("%llu", (unsigned long long) pblk); - if (ret_flags & BMAP_RET_UNINIT) - fputs(" (uninit)", stdout); - fputc('\n', stdout); -} - -void do_imap(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - ext2_ino_t ino; - unsigned long group, block, block_nr, offset; - - if (common_args_process(argc, argv, 2, 2, argv[0], - "", 0)) - return; - ino = string_to_inode(argv[1]); - if (!ino) - return; - - group = (ino - 1) / EXT2_INODES_PER_GROUP(current_fs->super); - offset = ((ino - 1) % EXT2_INODES_PER_GROUP(current_fs->super)) * - EXT2_INODE_SIZE(current_fs->super); - block = offset >> EXT2_BLOCK_SIZE_BITS(current_fs->super); - if (!ext2fs_inode_table_loc(current_fs, (unsigned)group)) { - com_err(argv[0], 0, "Inode table for group %lu is missing\n", - group); - return; - } - block_nr = ext2fs_inode_table_loc(current_fs, (unsigned)group) + - block; - offset &= (EXT2_BLOCK_SIZE(current_fs->super) - 1); - - printf("Inode %u is part of block group %lu\n" - "\tlocated at block %lu, offset 0x%04lx\n", ino, group, - block_nr, offset); - -} - -void do_idump(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - struct ext2_inode_large *inode; - ext2_ino_t ino; - unsigned char *buf; - errcode_t err; - unsigned int isize, size, offset = 0; - int c, mode = 0; - - reset_getopt(); - while ((c = getopt (argc, argv, "bex")) != EOF) { - if (mode || c == '?') { - com_err(argv[0], 0, - "Usage: inode_dump [-b]|[-e] "); - return; - } - mode = c; - } - if (optind != argc-1) - return; - - if (check_fs_open(argv[0])) - return; - - ino = string_to_inode(argv[optind]); - if (!ino) - return; - - isize = EXT2_INODE_SIZE(current_fs->super); - err = ext2fs_get_mem(isize, &buf); - if (err) { - com_err(argv[0], err, "while allocating memory"); - return; - } - - err = ext2fs_read_inode_full(current_fs, ino, - (struct ext2_inode *)buf, isize); - if (err) { - com_err(argv[0], err, "while reading inode %u", ino); - goto err; - } - - inode = (struct ext2_inode_large *) buf; - size = isize; - switch (mode) { - case 'b': - offset = ((char *) (&inode->i_block)) - ((char *) buf); - size = sizeof(inode->i_block); - break; - case 'x': - case 'e': - if (size <= EXT2_GOOD_OLD_INODE_SIZE) { - com_err(argv[0], 0, "No extra space in inode"); - goto err; - } - offset = EXT2_GOOD_OLD_INODE_SIZE + inode->i_extra_isize; - if (offset > size) - goto err; - size -= offset; - break; - } - if (mode == 'x') - raw_inode_xattr_dump(stdout, buf + offset, size); - else - do_byte_hexdump(stdout, buf + offset, size); -err: - ext2fs_free_mem(&buf); -} - -#ifndef READ_ONLY -void do_set_current_time(int argc, char *argv[], - int sci_idx EXT2FS_ATTR((unused)), - void *infop EXT2FS_ATTR((unused))) -{ - __s64 now; - - if (common_args_process(argc, argv, 2, 2, argv[0], - "