summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-03-02 12:04:08 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-03-07 20:05:31 +0000
commit2345af9b4829ed3eed5abf60f2483055649f8af7 (patch)
tree96a9a31e4b1957b93c4fe3eb669117d2752caf0d
parentc4901328fe5cf912c0965e5b011b64a95a9bcb9d (diff)
downloadpoky-uninative-1.5.tar.gz
recipes: Move out stale GPLv2 versions to a seperate layeruninative-1.5
These are recipes where the upstream has moved to GPLv3 and these old versions are the last ones under the GPLv2 license. There are several reasons for making this move. There is a different quality of service with these recipes in that they don't get security fixes and upstream no longer care about them, in fact they're actively hostile against people using old versions. The recipes tend to need a different kind of maintenance to work with changes in the wider ecosystem and there needs to be isolation between changes made in the v3 versions and those in the v2 versions. There are probably better ways to handle a "non-GPLv3" system but right now having these in OE-Core makes them look like a first class citizen when I believe they have potential for a variety of undesireable issues. Moving them into a separate layer makes their different needs clearer, it also makes it clear how many of these there are. Some are probably not needed (e.g. mc), I also wonder whether some are useful (e.g. gmp) since most things that use them are GPLv3 only already. Someone could now more clearly see how to streamline the list of recipes here. I'm proposing we mmove to this separate layer for 2.3 with its future maintinership and testing to be determined in 2.4 and beyond. (From OE-Core rev: 19b7e950346fb1dde6505c45236eba6cd9b33b4b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-bsp/grub/grub-0.97/autohell.patch21
-rw-r--r--meta/recipes-bsp/grub/grub-0.97/grub-support-256byte-inode.patch101
-rw-r--r--meta/recipes-bsp/grub/grub-0.97/grub_fix_for_automake-1.12.patch74
-rw-r--r--meta/recipes-bsp/grub/grub-0.97/no-reorder-functions.patch31
-rw-r--r--meta/recipes-bsp/grub/grub-0.97/objcopy-absolute.patch40
-rw-r--r--meta/recipes-bsp/grub/grub_0.97.bb35
-rw-r--r--meta/recipes-core/coreutils/coreutils-6.9/coreutils-6.9-cp-i-u.patch120
-rw-r--r--meta/recipes-core/coreutils/coreutils-6.9/coreutils-fix-install.patch101
-rw-r--r--meta/recipes-core/coreutils/coreutils-6.9/coreutils-fix-texinfo.patch375
-rw-r--r--meta/recipes-core/coreutils/coreutils-6.9/coreutils-i18n.patch4051
-rw-r--r--meta/recipes-core/coreutils/coreutils-6.9/coreutils-ls-x.patch117
-rw-r--r--meta/recipes-core/coreutils/coreutils-6.9/coreutils-overflow.patch19
-rw-r--r--meta/recipes-core/coreutils/coreutils-6.9/coreutils_fix_for_automake-1.12.patch32
-rw-r--r--meta/recipes-core/coreutils/coreutils-6.9/fix_for_manpage_building.patch85
-rw-r--r--meta/recipes-core/coreutils/coreutils-6.9/futimens.patch63
-rw-r--r--meta/recipes-core/coreutils/coreutils-6.9/gnulib_m4.patch21
-rw-r--r--meta/recipes-core/coreutils/coreutils-6.9/loadavg.patch18
-rw-r--r--meta/recipes-core/coreutils/coreutils-6.9/man-touch.patch24
-rw-r--r--meta/recipes-core/coreutils/coreutils_6.9.bb107
-rw-r--r--meta/recipes-core/gettext/gettext-0.16.1/disable_java.patch39
-rw-r--r--meta/recipes-core/gettext/gettext-0.16.1/fix_aclocal_version.patch110
-rw-r--r--meta/recipes-core/gettext/gettext-0.16.1/fix_gnu_source_circular.patch348
-rw-r--r--meta/recipes-core/gettext/gettext-0.16.1/gettext-autoconf-lib-link-no-L.patch19
-rw-r--r--meta/recipes-core/gettext/gettext-0.16.1/gettext-vpath.patch20
-rw-r--r--meta/recipes-core/gettext/gettext-0.16.1/hardcode_macro_version.patch51
-rw-r--r--meta/recipes-core/gettext/gettext-0.16.1/linklib_from_0.17.patch720
-rw-r--r--meta/recipes-core/gettext/gettext_0.16.1.bb124
-rw-r--r--meta/recipes-core/readline/readline-5.2/configure-fix.patch26
-rw-r--r--meta/recipes-core/readline/readline-5.2/fix-redundant-rpath.patch21
-rw-r--r--meta/recipes-core/readline/readline_5.2.bb84
-rw-r--r--meta/recipes-devtools/bison/bison_2.3.bb26
-rw-r--r--meta/recipes-devtools/dosfstools/dosfstools/0001-Include-fcntl.h-for-getting-loff_t-definition.patch41
-rw-r--r--meta/recipes-devtools/dosfstools/dosfstools/alignment_hack.patch38
-rw-r--r--meta/recipes-devtools/dosfstools/dosfstools/dosfstools-msdos_fs-types.patch37
-rw-r--r--meta/recipes-devtools/dosfstools/dosfstools/fix_populated_dosfs_creation.patch489
-rw-r--r--meta/recipes-devtools/dosfstools/dosfstools/include-linux-types.patch22
-rw-r--r--meta/recipes-devtools/dosfstools/dosfstools/mkdosfs-bootcode.patch241
-rw-r--r--meta/recipes-devtools/dosfstools/dosfstools/mkdosfs-dir.patch639
-rw-r--r--meta/recipes-devtools/dosfstools/dosfstools/msdos_fat12_undefined.patch19
-rw-r--r--meta/recipes-devtools/dosfstools/dosfstools/nofat32_autoselect.patch27
-rw-r--r--meta/recipes-devtools/dosfstools/dosfstools_2.11.bb34
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/arm_backend.diff449
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/elf_additions.diff71
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/elf_begin.c-CVE-2014-9447-fix.patch37
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/elfutils-ar-c-fix-num-passed-to-memset.patch23
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/elfutils-fsize.patch39
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/fix-build-gcc-4.8.patch57
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/fix_for_gcc-4.7.patch73
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/gcc6.patch23
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/hppa_backend.diff801
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/i386_dis.h1657
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/m68k_backend.diff309
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/mips_backend.diff713
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/nm-Fix-size-passed-to-snprintf-for-invalid-sh_name-case.patch27
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/redhat-portability.diff756
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/redhat-robustify.diff1709
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/remove-unused.patch154
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/testsuite-ignore-elflint.diff21
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/uclibc-support-for-elfutils-0.148.patch91
-rw-r--r--meta/recipes-devtools/elfutils/elfutils-0.148/x86_64_dis.h1632
-rw-r--r--meta/recipes-devtools/elfutils/elfutils_0.148.bb91
-rw-r--r--meta/recipes-devtools/m4/m4-1.4.9.inc13
-rw-r--r--meta/recipes-devtools/m4/m4/fix_for_circular_dependency.patch77
-rw-r--r--meta/recipes-devtools/m4/m4_1.4.9.bb3
-rw-r--r--meta/recipes-devtools/make/make-3.81/make_fix_for_automake-1.12.patch43
-rw-r--r--meta/recipes-devtools/make/make-3.81/makeinfo.patch22
-rw-r--r--meta/recipes-devtools/make/make_3.81.bb15
-rw-r--r--meta/recipes-devtools/mtools/mtools/fix-broken-lz.patch23
-rw-r--r--meta/recipes-devtools/mtools/mtools/mtools.patch129
-rw-r--r--meta/recipes-devtools/mtools/mtools/no-x11.patch21
-rw-r--r--meta/recipes-devtools/mtools/mtools_3.9.9.bb55
-rw-r--r--meta/recipes-devtools/patch/patch/debian.patch10426
-rw-r--r--meta/recipes-devtools/patch/patch/global-reject-file.diff203
-rw-r--r--meta/recipes-devtools/patch/patch/install.patch43
-rw-r--r--meta/recipes-devtools/patch/patch/unified-reject-files.diff307
-rw-r--r--meta/recipes-devtools/patch/patch_2.5.9.bb12
-rw-r--r--meta/recipes-devtools/rsync/rsync-2.6.9/rsync-2.6.9-fname-obo.patch71
-rw-r--r--meta/recipes-devtools/rsync/rsync-2.6.9/rsyncd.conf15
-rw-r--r--meta/recipes-devtools/rsync/rsync_2.6.9.bb15
-rw-r--r--meta/recipes-extended/bash/bash-3.2.57/build-tests.patch44
-rw-r--r--meta/recipes-extended/bash/bash-3.2.57/dont-include-target-CFLAGS-in-host-LDFLAGS.patch33
-rw-r--r--meta/recipes-extended/bash/bash-3.2.57/mkbuiltins_have_stringize.patch29
-rw-r--r--meta/recipes-extended/bash/bash-3.2.57/run-ptest2
-rw-r--r--meta/recipes-extended/bash/bash-3.2.57/string-format.patch21
-rw-r--r--meta/recipes-extended/bash/bash-3.2.57/test-output.patch25
-rw-r--r--meta/recipes-extended/bash/bash_3.2.57.bb18
-rw-r--r--meta/recipes-extended/cpio/cpio-2.8/avoid_heap_overflow.patch26
-rw-r--r--meta/recipes-extended/cpio/cpio-2.8/fix-memory-overrun.patch217
-rw-r--r--meta/recipes-extended/cpio/cpio-2.8/m4extensions.patch31
-rw-r--r--meta/recipes-extended/cpio/cpio-2.8/statdef.patch15
-rw-r--r--meta/recipes-extended/cpio/cpio_2.8.bb19
-rw-r--r--meta/recipes-extended/diffutils/diffutils-2.8.1/diffutils_fix_for_automake-1.12.patch27
-rw-r--r--meta/recipes-extended/diffutils/diffutils-2.8.1/fix_gcc6.patch31
-rw-r--r--meta/recipes-extended/diffutils/diffutils_2.8.1.bb17
-rw-r--r--meta/recipes-extended/ed/ed_0.5.bb20
-rw-r--r--meta/recipes-extended/findutils/findutils-4.2.31/findutils-fix-doc-build-error.patch53
-rw-r--r--meta/recipes-extended/findutils/findutils-4.2.31/findutils_fix_for_automake-1.12.patch23
-rw-r--r--meta/recipes-extended/findutils/findutils-4.2.31/gnulib-extension.patch56
-rw-r--r--meta/recipes-extended/findutils/findutils_4.2.31.bb14
-rw-r--r--meta/recipes-extended/gawk/gawk-3.1.5/0001-gawk-fix-non-glibc-gcc-4-compilation.patch67
-rw-r--r--meta/recipes-extended/gawk/gawk-3.1.5/gawk-3.1.5_fix_for_automake-1.12.patch41
-rw-r--r--meta/recipes-extended/gawk/gawk_3.1.5.bb44
-rw-r--r--meta/recipes-extended/gperf/gperf_3.0.3.bb10
-rw-r--r--meta/recipes-extended/grep/grep-2.5.1a/Makevars25
-rw-r--r--meta/recipes-extended/grep/grep-2.5.1a/fix-for-texinfo-5.1.patch17
-rw-r--r--meta/recipes-extended/grep/grep-2.5.1a/fix64-int-to-pointer.patch17
-rw-r--r--meta/recipes-extended/grep/grep-2.5.1a/gettext.patch15
-rw-r--r--meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch33
-rw-r--r--meta/recipes-extended/grep/grep-2.5.1a/grep-egrep-fgrep-Fix-LSB-NG-cases.patch1342
-rw-r--r--meta/recipes-extended/grep/grep-2.5.1a/grep_fix_for_automake-1.12.patch52
-rw-r--r--meta/recipes-extended/grep/grep-2.5.1a/uclibc-fix.patch55
-rw-r--r--meta/recipes-extended/grep/grep_2.5.1a.bb56
-rw-r--r--meta/recipes-extended/groff/groff-1.18.1.4/fix-narrowing-conversion-error.patch61
-rw-r--r--meta/recipes-extended/groff/groff-1.18.1.4/groff-1.18.1.4-fix-bindir.patch39
-rw-r--r--meta/recipes-extended/groff/groff-1.18.1.4/groff-1.18.1.4-remove-mom.patch39
-rw-r--r--meta/recipes-extended/groff/groff-1.18.1.4/man-local.patch36
-rw-r--r--meta/recipes-extended/groff/groff-1.18.1.4/mdoc-local.patch36
-rw-r--r--meta/recipes-extended/groff/groff_1.18.1.4.bb50
-rw-r--r--meta/recipes-extended/gzip/gzip-1.3.12/dup-def-fix.patch48
-rw-r--r--meta/recipes-extended/gzip/gzip-1.3.12/m4-extensions-fix.patch56
-rw-r--r--meta/recipes-extended/gzip/gzip_1.3.12.bb15
-rw-r--r--meta/recipes-extended/libidn/libidn_0.6.14.bb36
-rw-r--r--meta/recipes-extended/mc/mc/mc-CTRL.patch31
-rw-r--r--meta/recipes-extended/mc/mc_4.7.5.2.bb47
-rw-r--r--meta/recipes-extended/sed/sed-4.1.2/Makevars25
-rw-r--r--meta/recipes-extended/sed/sed-4.1.2/fix_return_type.patch18
-rw-r--r--meta/recipes-extended/sed/sed-4.1.2/sed-4.1.2_fix_for_automake-1.12.patch37
-rw-r--r--meta/recipes-extended/sed/sed_4.1.2.bb35
-rw-r--r--meta/recipes-extended/tar/tar-1.17/avoid_heap_overflow.patch23
-rw-r--r--meta/recipes-extended/tar/tar-1.17/gcc43build.patch37
-rw-r--r--meta/recipes-extended/tar/tar-1.17/m4extensions.patch30
-rw-r--r--meta/recipes-extended/tar/tar_1.17.bb14
-rw-r--r--meta/recipes-extended/texinfo/texinfo-4.8/check-locale-h.patch28
-rw-r--r--meta/recipes-extended/texinfo/texinfo-4.8/do-compile-native-tools.patch49
-rw-r--r--meta/recipes-extended/texinfo/texinfo-4.8/using-native-makeinfo.patch24
-rw-r--r--meta/recipes-extended/texinfo/texinfo_4.8.bb55
-rw-r--r--meta/recipes-extended/which/which-2.18/automake-foreign.patch28
-rw-r--r--meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch53
-rw-r--r--meta/recipes-extended/which/which_2.18.bb34
-rw-r--r--meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.20.bb8
-rw-r--r--meta/recipes-support/gdbm/gdbm-1.8.3/ldflags.patch22
-rw-r--r--meta/recipes-support/gdbm/gdbm-1.8.3/libtool-mode.patch22
-rw-r--r--meta/recipes-support/gdbm/gdbm-1.8.3/makefile.patch60
-rw-r--r--meta/recipes-support/gdbm/gdbm_1.8.3.bb30
-rw-r--r--meta/recipes-support/gmp/gmp-4.2.1/Use-__gnu_inline__-attribute.patch36
-rw-r--r--meta/recipes-support/gmp/gmp-4.2.1/avoid-h-asm-constraint-for-MIPS.patch57
-rw-r--r--meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch56
-rw-r--r--meta/recipes-support/gmp/gmp_4.2.1.bb17
-rw-r--r--meta/recipes-support/gnupg/gnupg-1.4.7/CVE-2013-4242.patch63
-rw-r--r--meta/recipes-support/gnupg/gnupg-1.4.7/CVE-2013-4351.patch45
-rw-r--r--meta/recipes-support/gnupg/gnupg-1.4.7/CVE-2013-4576.patch154
-rw-r--r--meta/recipes-support/gnupg/gnupg-1.4.7/GnuPG1-CVE-2012-6085.patch64
-rw-r--r--meta/recipes-support/gnupg/gnupg-1.4.7/configure.patch17
-rw-r--r--meta/recipes-support/gnupg/gnupg-1.4.7/curl_typeof_fix_backport.patch27
-rw-r--r--meta/recipes-support/gnupg/gnupg-1.4.7/long-long-thumb.patch19
-rw-r--r--meta/recipes-support/gnupg/gnupg-1.4.7/mips_gcc4.4.patch50
-rw-r--r--meta/recipes-support/gnupg/gnupg_1.4.7.bb104
-rw-r--r--meta/recipes-support/libiconv/libiconv-1.11.1/autoconf.patch50
-rw-r--r--meta/recipes-support/libiconv/libiconv-1.11.1/shared_preloadable_libiconv_linux.patch26
-rw-r--r--meta/recipes-support/libiconv/libiconv_1.11.1.bb47
-rw-r--r--meta/recipes-support/nettle/nettle-2.7.1/CVE-2015-8803_8805.patch71
-rw-r--r--meta/recipes-support/nettle/nettle-2.7.1/CVE-2015-8804.patch272
-rw-r--r--meta/recipes-support/nettle/nettle-2.7.1/check-header-files-of-openssl-only-if-enable_.patch38
-rw-r--r--meta/recipes-support/nettle/nettle_2.7.1.bb19
164 files changed, 0 insertions, 33689 deletions
diff --git a/meta/recipes-bsp/grub/grub-0.97/autohell.patch b/meta/recipes-bsp/grub/grub-0.97/autohell.patch
deleted file mode 100644
index d66207ae6c..0000000000
--- a/meta/recipes-bsp/grub/grub-0.97/autohell.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1Upstream-Status: Inappropriate [configuration]
2
3---
4 configure.ac | 4 ++--
5 1 file changed, 2 insertions(+), 2 deletions(-)
6
7Index: grub-0.97/configure.ac
8===================================================================
9--- grub-0.97.orig/configure.ac 2008-09-12 17:39:52.000000000 +0200
10+++ grub-0.97/configure.ac 2008-09-12 17:40:21.000000000 +0200
11@@ -60,8 +60,8 @@ AC_PROG_CC
12 _AM_DEPENDENCIES(CC)
13
14 dnl Because recent automake complains about AS, set it here.
15-CCAS="$CC"
16-AC_SUBST(CCAS)
17+AM_PROG_AS
18+AC_SUBST(AS)
19
20 AC_ARG_WITH(binutils,
21 [ --with-binutils=DIR search the directory DIR to find binutils])
diff --git a/meta/recipes-bsp/grub/grub-0.97/grub-support-256byte-inode.patch b/meta/recipes-bsp/grub/grub-0.97/grub-support-256byte-inode.patch
deleted file mode 100644
index d225d13dce..0000000000
--- a/meta/recipes-bsp/grub/grub-0.97/grub-support-256byte-inode.patch
+++ /dev/null
@@ -1,101 +0,0 @@
1Upstream-Status: Inappropriate [No Longer Maintained]
2
3diff -Naur grub-0.97-800/stage2/fsys_ext2fs.c grub-0.97-810/stage2/fsys_ext2fs.c
4--- grub-0.97-800/stage2/fsys_ext2fs.c 2008-07-21 00:40:21.668879475 -0600
5+++ grub-0.97-810/stage2/fsys_ext2fs.c 2008-07-21 01:01:11.063953773 -0600
6@@ -79,7 +79,52 @@
7 __u32 s_rev_level; /* Revision level */
8 __u16 s_def_resuid; /* Default uid for reserved blocks */
9 __u16 s_def_resgid; /* Default gid for reserved blocks */
10- __u32 s_reserved[235]; /* Padding to the end of the block */
11+ /*
12+ * These fields are for EXT2_DYNAMIC_REV superblocks only.
13+ *
14+ * Note: the difference between the compatible feature set and
15+ * the incompatible feature set is that if there is a bit set
16+ * in the incompatible feature set that the kernel doesn't
17+ * know about, it should refuse to mount the filesystem.
18+ *
19+ * e2fsck's requirements are more strict; if it doesn't know
20+ * about a feature in either the compatible or incompatible
21+ * feature set, it must abort and not try to meddle with
22+ * things it doesn't understand...
23+ */
24+ __u32 s_first_ino; /* First non-reserved inode */
25+ __u16 s_inode_size; /* size of inode structure */
26+ __u16 s_block_group_nr; /* block group # of this superblock */
27+ __u32 s_feature_compat; /* compatible feature set */
28+ __u32 s_feature_incompat; /* incompatible feature set */
29+ __u32 s_feature_ro_compat; /* readonly-compatible feature set */
30+ __u8 s_uuid[16]; /* 128-bit uuid for volume */
31+ char s_volume_name[16]; /* volume name */
32+ char s_last_mounted[64]; /* directory where last mounted */
33+ __u32 s_algorithm_usage_bitmap; /* For compression */
34+ /*
35+ * Performance hints. Directory preallocation should only
36+ * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on.
37+ */
38+ __u8 s_prealloc_blocks; /* Nr of blocks to try to preallocate*/
39+ __u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */
40+ __u16 s_reserved_gdt_blocks;/* Per group table for online growth */
41+ /*
42+ * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set.
43+ */
44+ __u8 s_journal_uuid[16]; /* uuid of journal superblock */
45+ __u32 s_journal_inum; /* inode number of journal file */
46+ __u32 s_journal_dev; /* device number of journal file */
47+ __u32 s_last_orphan; /* start of list of inodes to delete */
48+ __u32 s_hash_seed[4]; /* HTREE hash seed */
49+ __u8 s_def_hash_version; /* Default hash version to use */
50+ __u8 s_jnl_backup_type; /* Default type of journal backup */
51+ __u16 s_reserved_word_pad;
52+ __u32 s_default_mount_opts;
53+ __u32 s_first_meta_bg; /* First metablock group */
54+ __u32 s_mkfs_time; /* When the filesystem was created */
55+ __u32 s_jnl_blocks[17]; /* Backup of the journal inode */
56+ __u32 s_reserved[172]; /* Padding to the end of the block */
57 };
58
59 struct ext2_group_desc
60@@ -218,6 +263,14 @@
61 #define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (__u32))
62 #define EXT2_ADDR_PER_BLOCK_BITS(s) (log2(EXT2_ADDR_PER_BLOCK(s)))
63
64+#define EXT2_GOOD_OLD_REV 0 /* The good old (original) format */
65+#define EXT2_DYNAMIC_REV 1 /* V2 format w/ dynamic inode sizes */
66+#define EXT2_GOOD_OLD_INODE_SIZE 128
67+#define EXT2_INODE_SIZE(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \
68+ EXT2_GOOD_OLD_INODE_SIZE : \
69+ (s)->s_inode_size)
70+#define EXT2_INODES_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s))
71+
72 /* linux/ext2_fs.h */
73 #define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10)
74 /* kind of from ext2/super.c */
75@@ -553,7 +606,7 @@
76 gdp = GROUP_DESC;
77 ino_blk = gdp[desc].bg_inode_table +
78 (((current_ino - 1) % (SUPERBLOCK->s_inodes_per_group))
79- >> log2 (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)));
80+ >> log2 (EXT2_INODES_PER_BLOCK (SUPERBLOCK)));
81 #ifdef E2DEBUG
82 printf ("inode table fsblock=%d\n", ino_blk);
83 #endif /* E2DEBUG */
84@@ -565,13 +618,12 @@
85 /* reset indirect blocks! */
86 mapblock2 = mapblock1 = -1;
87
88- raw_inode = INODE +
89- ((current_ino - 1)
90- & (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode) - 1));
91+ raw_inode = (struct ext2_inode *)((char *)INODE +
92+ ((current_ino - 1) & (EXT2_INODES_PER_BLOCK (SUPERBLOCK) - 1)) *
93+ EXT2_INODE_SIZE (SUPERBLOCK));
94 #ifdef E2DEBUG
95 printf ("ipb=%d, sizeof(inode)=%d\n",
96- (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)),
97- sizeof (struct ext2_inode));
98+ EXT2_INODES_PER_BLOCK (SUPERBLOCK), EXT2_INODE_SIZE (SUPERBLOCK));
99 printf ("inode=%x, raw_inode=%x\n", INODE, raw_inode);
100 printf ("offset into inode table block=%d\n", (int) raw_inode - (int) INODE);
101 for (i = (unsigned char *) INODE; i <= (unsigned char *) raw_inode;
diff --git a/meta/recipes-bsp/grub/grub-0.97/grub_fix_for_automake-1.12.patch b/meta/recipes-bsp/grub/grub-0.97/grub_fix_for_automake-1.12.patch
deleted file mode 100644
index 0cf7dc96d7..0000000000
--- a/meta/recipes-bsp/grub/grub-0.97/grub_fix_for_automake-1.12.patch
+++ /dev/null
@@ -1,74 +0,0 @@
1Upstream-Status: Inappropriate
2
3Subject: [PATCH] grub: fix for automake-1.12
4
5automake 1.12 has depricated automatic de-ANSI-fication support
6
7this patch avoids these kinds of errors:
8
9| stage1/Makefile.am:2: error: 'pkglibdir' is not a legitimate directory for 'DATA'
10| stage2/Makefile.am:35: error: 'pkglibdir' is not a legitimate directory for 'DATA'
11| stage2/Makefile.am:46: error: 'pkglibdir' is not a legitimate directory for 'DATA'
12| autoreconf: automake failed with exit status: 1
13| ERROR: autoreconf execution failed.
14
15The upstream status is marked as 'Inappropriate' because this problem is not uncommon,
16it has been there for a long time and no change in upstream.
17
18Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
19
20Index: grub-0.97/stage1/Makefile.am
21===================================================================
22--- a/stage1/Makefile.am
23+++ b/stage1/Makefile.am
24@@ -1,7 +1,7 @@
25-pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
26-nodist_pkglib_DATA = stage1
27+pkgdatadir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
28+nodist_pkgdata_DATA = stage1
29
30-CLEANFILES = $(nodist_pkglib_DATA)
31+CLEANFILES = $(nodist_pkgdata_DATA)
32
33 # We can't use builtins or standard includes.
34 AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
35Index: grub-0.97/stage2/Makefile.am
36===================================================================
37--- a/stage2/Makefile.am
38+++ b/stage2/Makefile.am
39@@ -27,12 +27,12 @@ libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
40 -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1
41
42 # Stage 2 and Stage 1.5's.
43-pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
44+pkgdatadir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
45
46 EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
47
48 if DISKLESS_SUPPORT
49-pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
50+pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
51 ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
52 reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \
53 nbgrub pxegrub
54@@ -43,7 +43,7 @@ noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
55 reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \
56 xfs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec
57 else
58-pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
59+pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
60 ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
61 reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5
62 noinst_DATA = pre_stage2 start start_eltorito
63@@ -105,7 +105,7 @@ else
64 BUILT_SOURCES = stage2_size.h
65 endif
66
67-CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES)
68+CLEANFILES = $(pkgdata_DATA) $(noinst_DATA) $(BUILT_SOURCES)
69
70 stage2_size.h: pre_stage2
71 -rm -f stage2_size.h
72--
731.7.9.5
74
diff --git a/meta/recipes-bsp/grub/grub-0.97/no-reorder-functions.patch b/meta/recipes-bsp/grub/grub-0.97/no-reorder-functions.patch
deleted file mode 100644
index 70037e47c7..0000000000
--- a/meta/recipes-bsp/grub/grub-0.97/no-reorder-functions.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1Upstream-Status: Inappropriate [disable feature]
2
3After the commit "tcmode-default: switch to gcc 4.6.0 for x86, x86-64 & arm",
4we got bug 1099 (http://bugzilla.yoctoproject.org/show_bug.cgi?id=1099):
5
6Running "install --stage2=/ssd/boot/grub/stage2 /boot/grub/stage1(hd0)
7 /boot/grub/stage2 p /boot/grub/menu list" failed
8Error 6: Mismatched or corrupt version of stage1/stage2
9
10This turned out to be a gcc's bug. See
11https://bugs.gentoo.org/show_bug.cgi?id=360513
12http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39333
13
14Upstream gcc seems uninterested in the bug, so at present we can disable the
15option as a workaround. Thanks Ryan Hill for the investigation and the
16workaround patch.
17
18Dexuan Cui <dexuan.cui@intel.com>
19Wed Jun 29 20:21:39 CST 2011
20
21--- grub-0.97/stage2/Makefile.am.orig
22+++ grub-0.97/stage2/Makefile.am
23@@ -79,7 +79,7 @@
24 HERCULES_FLAGS =
25 endif
26
27-STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
28+STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-reorder-functions -fno-builtin -nostdinc \
29 $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS)
30
31 STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000
diff --git a/meta/recipes-bsp/grub/grub-0.97/objcopy-absolute.patch b/meta/recipes-bsp/grub/grub-0.97/objcopy-absolute.patch
deleted file mode 100644
index bd8e0a89fc..0000000000
--- a/meta/recipes-bsp/grub/grub-0.97/objcopy-absolute.patch
+++ /dev/null
@@ -1,40 +0,0 @@
1
2This patch is from ubuntu:
3 * objcopy-absolute.diff (update): Remove .note, .comment, and
4 .note.gnu.build-id sections from images (LP: #444703).
5
6Upstream-Status: Inappropriate [no longer maintained]
7
8Index: b/acinclude.m4
9===================================================================
10--- a/acinclude.m4
11+++ b/acinclude.m4
12@@ -61,7 +61,7 @@
13 else
14 AC_MSG_ERROR([${CC-cc} cannot link at address $link_addr])
15 fi
16- if AC_TRY_COMMAND([${OBJCOPY-objcopy} -O binary conftest.exec conftest]); then :
17+ if AC_TRY_COMMAND([${OBJCOPY-objcopy} --only-section=.text -O binary conftest.exec conftest]); then :
18 else
19 AC_MSG_ERROR([${OBJCOPY-objcopy} cannot create binary files])
20 fi
21Index: b/stage1/Makefile.am
22===================================================================
23--- a/stage1/Makefile.am
24+++ b/stage1/Makefile.am
25@@ -12,4 +12,4 @@
26
27 SUFFIXES = .exec
28 .exec:
29- $(OBJCOPY) -O binary $< $@
30+ $(OBJCOPY) -O binary -R .note -R .comment -R .note.gnu.build-id $< $@
31Index: b/stage2/Makefile.am
32===================================================================
33--- a/stage2/Makefile.am
34+++ b/stage2/Makefile.am
35@@ -293,4 +293,4 @@
36 # General rule for making a raw binary.
37 SUFFIXES = .exec
38 .exec:
39- $(OBJCOPY) -O binary $< $@
40+ $(OBJCOPY) -O binary -R .note -R .comment -R .note.gnu.build-id $< $@
diff --git a/meta/recipes-bsp/grub/grub_0.97.bb b/meta/recipes-bsp/grub/grub_0.97.bb
deleted file mode 100644
index 997a045b2e..0000000000
--- a/meta/recipes-bsp/grub/grub_0.97.bb
+++ /dev/null
@@ -1,35 +0,0 @@
1SUMMARY = "GRUB is the GRand Unified Bootloader"
2DESCRIPTION = "GRUB is a GPLed bootloader intended to unify bootloading across x86 \
3operating systems. In addition to loading the Linux kernel, it implements the Multiboot \
4standard, which allows for flexible loading of multiple boot images."
5HOMEPAGE = "http://www.gnu.org/software/grub/"
6SECTION = "bootloaders"
7
8LICENSE = "GPLv2+"
9LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b \
10 file://grub/main.c;beginline=3;endline=9;md5=22a5f28d2130fff9f2a17ed54be90ed6"
11
12RDEPENDS_${PN} = "diffutils"
13PR = "r6"
14
15SRC_URI = "ftp://alpha.gnu.org/gnu/grub/grub-${PV}.tar.gz; \
16 file://no-reorder-functions.patch \
17 file://autohell.patch \
18 file://grub_fix_for_automake-1.12.patch \
19 file://objcopy-absolute.patch \
20 file://grub-support-256byte-inode.patch \
21"
22
23SRC_URI[md5sum] = "cd3f3eb54446be6003156158d51f4884"
24SRC_URI[sha256sum] = "4e1d15d12dbd3e9208111d6b806ad5a9857ca8850c47877d36575b904559260b"
25
26inherit autotools texinfo
27
28COMPATIBLE_HOST = "i.86.*-linux"
29
30EXTRA_OECONF = "--without-curses"
31
32do_install_append_vmware() {
33 mkdir -p ${D}/boot/
34 ln -sf ../usr/lib/grub/{$TARGET_ARCH}{$TARGET_VENDOR}/ ${D}/boot/grub
35}
diff --git a/meta/recipes-core/coreutils/coreutils-6.9/coreutils-6.9-cp-i-u.patch b/meta/recipes-core/coreutils/coreutils-6.9/coreutils-6.9-cp-i-u.patch
deleted file mode 100644
index 5452b46bbc..0000000000
--- a/meta/recipes-core/coreutils/coreutils-6.9/coreutils-6.9-cp-i-u.patch
+++ /dev/null
@@ -1,120 +0,0 @@
1Upstream-Status: Inappropriate [legacy version]
2
3This patch was imported from the Fedora Core 8 coreutils-6.9-9 package.
4
5The package is stated as being Licensed as GPLv2+.
6
7Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
8
9----
10
11When "cp -i --update old new" would do nothing because "new" is
12newer than "old", cp would nonetheless prompt for whether it is
13ok to overwrite "new". Then, regardless of the response (because
14of the --update option), cp would do nothing.
15
16The following patch eliminates the unnecessary prompt in that case.
17
18diff --git a/src/copy.c b/src/copy.c
19index b7bf73b..0e549d2 100644
20--- a/src/copy.c
21+++ b/src/copy.c
22@@ -1210,6 +1210,30 @@ copy_internal (char const *src_name, char const *dst_name,
23 return false;
24 }
25
26+ if (!S_ISDIR (src_mode) && x->update)
27+ {
28+ /* When preserving time stamps (but not moving within a file
29+ system), don't worry if the destination time stamp is
30+ less than the source merely because of time stamp
31+ truncation. */
32+ int options = ((x->preserve_timestamps
33+ && ! (x->move_mode
34+ && dst_sb.st_dev == src_sb.st_dev))
35+ ? UTIMECMP_TRUNCATE_SOURCE
36+ : 0);
37+
38+ if (0 <= utimecmp (dst_name, &dst_sb, &src_sb, options))
39+ {
40+ /* We're using --update and the destination is not older
41+ than the source, so do not copy or move. Pretend the
42+ rename succeeded, so the caller (if it's mv) doesn't
43+ end up removing the source file. */
44+ if (rename_succeeded)
45+ *rename_succeeded = true;
46+ return true;
47+ }
48+ }
49+
50 /* When there is an existing destination file, we may end up
51 returning early, and hence not copying/moving the file.
52 This may be due to an interactive `negative' reply to the
53@@ -1302,30 +1326,6 @@ copy_internal (char const *src_name, char const *dst_name,
54 return false;
55 }
56 }
57-
58- if (x->update)
59- {
60- /* When preserving time stamps (but not moving within a file
61- system), don't worry if the destination time stamp is
62- less than the source merely because of time stamp
63- truncation. */
64- int options = ((x->preserve_timestamps
65- && ! (x->move_mode
66- && dst_sb.st_dev == src_sb.st_dev))
67- ? UTIMECMP_TRUNCATE_SOURCE
68- : 0);
69-
70- if (0 <= utimecmp (dst_name, &dst_sb, &src_sb, options))
71- {
72- /* We're using --update and the destination is not older
73- than the source, so do not copy or move. Pretend the
74- rename succeeded, so the caller (if it's mv) doesn't
75- end up removing the source file. */
76- if (rename_succeeded)
77- *rename_succeeded = true;
78- return true;
79- }
80- }
81 }
82
83 if (x->move_mode)
84diff --git a/tests/mv/update b/tests/mv/update
85index 0c06024..6c3d149 100755
86--- a/tests/mv/update
87+++ b/tests/mv/update
88@@ -1,7 +1,7 @@
89 #!/bin/sh
90 # make sure --update works as advertised
91
92-# Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc.
93+# Copyright (C) 2001, 2004, 2006-2007 Free Software Foundation, Inc.
94
95 # This program is free software; you can redistribute it and/or modify
96 # it under the terms of the GNU General Public License as published by
97@@ -46,11 +46,16 @@ fi
98
99 fail=0
100
101-for cp_or_mv in cp mv; do
102- # This is a no-op.
103- $cp_or_mv --update old new || fail=1
104- case "`cat new`" in new) ;; *) fail=1 ;; esac
105- case "`cat old`" in old) ;; *) fail=1 ;; esac
106+for interactive in '' -i; do
107+ for cp_or_mv in cp mv; do
108+ # This is a no-op, with no prompt.
109+ # With coreutils-6.9 and earlier, using --update with -i would
110+ # mistakenly elicit a prompt.
111+ $cp_or_mv $interactive --update old new < /dev/null > out 2>&1 || fail=1
112+ test -s out && fail=1
113+ case "`cat new`" in new) ;; *) fail=1 ;; esac
114+ case "`cat old`" in old) ;; *) fail=1 ;; esac
115+ done
116 done
117
118 # This will actually perform the rename.
119--
1201.5.3.rc1.16.g9d6f
diff --git a/meta/recipes-core/coreutils/coreutils-6.9/coreutils-fix-install.patch b/meta/recipes-core/coreutils/coreutils-6.9/coreutils-fix-install.patch
deleted file mode 100644
index 88f61fa108..0000000000
--- a/meta/recipes-core/coreutils/coreutils-6.9/coreutils-fix-install.patch
+++ /dev/null
@@ -1,101 +0,0 @@
1Upstream-Status: Inappropriate [legacy version]
2
3The install command doesn't over write the dangling symlink, for
4example:
5
6$ install fileA /tmp/fileA
7
8If /tmp/fileA is a dangling symlink, there would be an error:
9
10install: cannot create regular file '/tmp/fileA': File exists
11
12This is because of the following code in copy.c:
13
14 if (!new_dst)
15 {
16 if (XSTAT (x, dst_name, &dst_sb) != 0)
17 {
18 if (errno != ENOENT)
19 {
20 error (0, errno, _("cannot stat %s"), quote (dst_name));
21 return false;
22 }
23 else
24 {
25 new_dst = true;
26 }
27 }
28
29XSTAT() use stat() for dst_name(the dangling symlink /tmp/fileA) when
30install.c invokes it, and stat will set errno to ENOENT, and then
31new_dst will be set to true which means that /tmp/fileA doesn't exist,
32then we will create /tmp/fileA without remove it first, so the error
33comes.
34
35This is fixed in a way which adds the member cmd_install in
36struct cp_options to make sure my change only affected to the install
37command and use lstat to fix the problem.
38
39Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
40Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
41
42---
43 src/copy.c | 10 +++++++++-
44 src/copy.h | 3 +++
45 src/install.c | 1 +
46 3 files changed, 13 insertions(+), 1 deletions(-)
47
48diff --git a/src/copy.c b/src/copy.c
49--- a/src/copy.c
50+++ b/src/copy.c
51@@ -1029,6 +1029,7 @@ copy_internal (char const *src_name, char const *dst_name,
52 bool delayed_ok;
53 bool copied_as_regular = false;
54 bool preserve_metadata;
55+ int dst_stat_result;
56
57 if (x->move_mode && rename_succeeded)
58 *rename_succeeded = false;
59@@ -1069,7 +1070,14 @@ copy_internal (char const *src_name, char const *dst_name,
60
61 if (!new_dst)
62 {
63- if (XSTAT (x, dst_name, &dst_sb) != 0)
64+ if ( x->cmd_install && ( x->backup_type == no_backups))
65+ dst_stat_result = lstat (dst_name, &dst_sb);
66+ else
67+ {
68+ dst_stat_result = XSTAT (x, dst_name, &dst_sb);
69+ }
70+
71+ if (dst_stat_result != 0)
72 {
73 if (errno != ENOENT)
74 {
75diff --git a/src/copy.h b/src/copy.h
76--- a/src/copy.h
77+++ b/src/copy.h
78@@ -114,6 +114,9 @@ struct cp_options
79 If that fails, then resort to copying. */
80 bool move_mode;
81
82+ /* For the install command */
83+ bool cmd_install;
84+
85 /* Whether this process has appropriate privileges to chown a file
86 whose owner is not the effective user ID. */
87 bool chown_privileges;
88diff --git a/src/install.c b/src/install.c
89--- a/src/install.c
90+++ b/src/install.c
91@@ -149,6 +149,7 @@ cp_option_init (struct cp_options *x)
92 x->hard_link = false;
93 x->interactive = I_UNSPECIFIED;
94 x->move_mode = false;
95+ x->cmd_install = true;
96 x->chown_privileges = chown_privileges ();
97 x->one_file_system = false;
98 x->preserve_ownership = false;
99--
1001.7.0.1
101
diff --git a/meta/recipes-core/coreutils/coreutils-6.9/coreutils-fix-texinfo.patch b/meta/recipes-core/coreutils/coreutils-6.9/coreutils-fix-texinfo.patch
deleted file mode 100644
index 3ae5a2faeb..0000000000
--- a/meta/recipes-core/coreutils/coreutils-6.9/coreutils-fix-texinfo.patch
+++ /dev/null
@@ -1,375 +0,0 @@
1From 170be4023bbf9e9698a709e03265945588ac8e01 Mon Sep 17 00:00:00 2001
2From: Robert Yang <liezhi.yang@windriver.com>
3Date: Tue, 26 Nov 2013 00:21:50 +0800
4Subject: [PATCH] doc/coreutils.texi: Use '@item' instead of '@itemx'
5
6Use '@item' instead of '@itemx' in several places, as Texinfo 5 refuses
7to process an '@itemx' that is not preceded by an '@item'. Ensure that
8node extended names in menus and sectioning are consistent, and that
9ordering and presence of nodes in menus and in the actual text are
10consistent as well.
11
12Upstream-Status: Backport [From: coreutils.7620.n7.nabble.com, bug#11828]
13
14Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
15---
16 doc/coreutils.texi | 82 +++++++++++++++++++++++++++---------------------------
17 1 file changed, 41 insertions(+), 41 deletions(-)
18
19diff --git a/doc/coreutils.texi b/doc/coreutils.texi
20index 588147f..2dae3fe 100644
21--- a/doc/coreutils.texi
22+++ b/doc/coreutils.texi
23@@ -555,7 +555,7 @@ symbolic link to a directory. @xref{Target directory}.
24 @end macro
25
26 @macro optSi
27-@itemx --si
28+@item --si
29 @opindex --si
30 @cindex SI output
31 Append an SI-style abbreviation to each size, such as @samp{M} for
32@@ -578,7 +578,7 @@ Use the @option{--si} option if you prefer powers of 1000.
33 @end macro
34
35 @macro optStripTrailingSlashes
36-@itemx @w{@kbd{--strip-trailing-slashes}}
37+@item @w{@kbd{--strip-trailing-slashes}}
38 @opindex --strip-trailing-slashes
39 @cindex stripping trailing slashes
40 Remove any trailing slashes from each @var{source} argument.
41@@ -2496,7 +2496,7 @@ by 1048576.
42 However, if @var{n} starts with a @samp{-},
43 print all but the last @var{n} bytes of each file.
44
45-@itemx -n @var{n}
46+@item -n @var{n}
47 @itemx --lines=@var{n}
48 @opindex -n
49 @opindex --lines
50@@ -2633,7 +2633,7 @@ This option is the same as @option{--follow=name --retry}. That is, tail
51 will attempt to reopen a file when it is removed. Should this fail, tail
52 will keep trying until it becomes accessible again.
53
54-@itemx --retry
55+@item --retry
56 @opindex --retry
57 This option is useful mainly when following by name (i.e., with
58 @option{--follow=name}).
59@@ -2641,7 +2641,7 @@ Without this option, when tail encounters a file that doesn't
60 exist or is otherwise inaccessible, it reports that fact and
61 never checks it again.
62
63-@itemx --sleep-interval=@var{number}
64+@item --sleep-interval=@var{number}
65 @opindex --sleep-interval
66 Change the number of seconds to wait between iterations (the default is 1.0).
67 During one iteration, every specified file is checked to see if it has
68@@ -2651,7 +2651,7 @@ Historical implementations of @command{tail} have required that
69 an arbitrary floating point number (using a period before any
70 fractional digits).
71
72-@itemx --pid=@var{pid}
73+@item --pid=@var{pid}
74 @opindex --pid
75 When following by name or by descriptor, you may specify the process ID,
76 @var{pid}, of the sole writer of all @var{file} arguments. Then, shortly
77@@ -2674,7 +2674,7 @@ terminate until long after the real writer has terminated.
78 Note that @option{--pid} cannot be supported on some systems; @command{tail}
79 will print a warning if this is the case.
80
81-@itemx --max-unchanged-stats=@var{n}
82+@item --max-unchanged-stats=@var{n}
83 @opindex --max-unchanged-stats
84 When tailing a file by name, if there have been @var{n} (default
85 n=@value{DEFAULT_MAX_N_UNCHANGED_STATS_BETWEEN_OPENS}) consecutive
86@@ -2686,7 +2686,7 @@ number of seconds between when tail prints the last pre-rotation lines
87 and when it prints the lines that have accumulated in the new log file.
88 This option is meaningful only when following by name.
89
90-@itemx -n @var{n}
91+@item -n @var{n}
92 @itemx --lines=@var{n}
93 @opindex -n
94 @opindex --lines
95@@ -2817,7 +2817,7 @@ option.
96 @opindex --numeric-suffixes
97 Use digits in suffixes rather than lower-case letters.
98
99-@itemx --verbose
100+@item --verbose
101 @opindex --verbose
102 Write a diagnostic to standard error just before each output file is opened.
103
104@@ -3055,7 +3055,7 @@ Print only the newline counts.
105 @opindex --max-line-length
106 Print only the maximum line lengths.
107
108-@itemx --files0-from=@var{FILE}
109+@item --files0-from=@var{FILE}
110 @opindex --files0-from=@var{FILE}
111 @cindex including files from @command{du}
112 Rather than processing files named on the command line, process those
113@@ -3250,7 +3250,7 @@ an MD5 checksum inconsistent with the associated file, or if no valid
114 line is found, @command{md5sum} exits with nonzero status. Otherwise,
115 it exits successfully.
116
117-@itemx --status
118+@item --status
119 @opindex --status
120 @cindex verifying MD5 checksums
121 This option is useful only when verifying checksums.
122@@ -5837,7 +5837,7 @@ command line unless the @option{--dereference-command-line} (@option{-H}),
123 If a command line argument specifies a symbolic link, show information
124 for the file the link references rather than for the link itself.
125
126-@itemx --dereference-command-line-symlink-to-dir
127+@item --dereference-command-line-symlink-to-dir
128 @opindex --dereference-command-line-symlink-to-dir
129 @cindex symbolic links, dereferencing
130 Do not dereference symbolic links, with one exception:
131@@ -7015,15 +7015,15 @@ If specified, the @var{attribute_list} must be a comma-separated list
132 of one or more of the following strings:
133
134 @table @samp
135-@itemx mode
136+@item mode
137 Preserve the file mode bits and access control lists.
138-@itemx ownership
139+@item ownership
140 Preserve the owner and group. On most modern systems,
141 only users with appropriate privileges may change the owner of a file,
142 and ordinary users
143 may preserve the group ownership of a file only if they happen to be
144 a member of the desired group.
145-@itemx timestamps
146+@item timestamps
147 Preserve the times of last access and last modification, when possible.
148 In general, it is not possible to preserve these attributes
149 when the affected file is a symbolic link.
150@@ -7031,12 +7031,12 @@ However, FreeBSD now provides the @code{lutimes} function, which makes
151 it possibile even for symbolic links. However, this implementation does
152 not yet take advantage of that.
153 @c FIXME: once we provide lutimes support, update the above.
154-@itemx links
155+@item links
156 Preserve in the destination files
157 any links between corresponding source files.
158 @c Give examples illustrating how hard links are preserved.
159 @c Also, show how soft links map to hard links with -L and -H.
160-@itemx all
161+@item all
162 Preserve all file attributes.
163 Equivalent to specifying all of the above.
164 @end table
165@@ -7049,12 +7049,12 @@ mode bits of the corresponding source file, minus the bits set in the
166 umask and minus the set-user-ID and set-group-ID bits.
167 @xref{File permissions}.
168
169-@itemx @w{@kbd{--no-preserve}=@var{attribute_list}}
170+@item @w{@kbd{--no-preserve}=@var{attribute_list}}
171 @cindex file information, preserving
172 Do not preserve the specified attributes. The @var{attribute_list}
173 has the same form as for @option{--preserve}.
174
175-@itemx --parents
176+@item --parents
177 @opindex --parents
178 @cindex parent directories and @command{cp}
179 Form the name of each destination file by appending to the target
180@@ -7070,7 +7070,7 @@ cp --parents a/b/c existing_dir
181 copies the file @file{a/b/c} to @file{existing_dir/a/b/c}, creating
182 any missing intermediate directories.
183
184-@itemx @w{@kbd{--reply}=@var{how}}
185+@item @w{@kbd{--reply}=@var{how}}
186 @opindex --reply
187 @cindex interactivity
188 @c FIXME: remove in 2008
189@@ -7742,7 +7742,7 @@ Prompt whether to overwrite each existing destination file, regardless
190 of its permissions.
191 If the response is not affirmative, the file is skipped.
192
193-@itemx @w{@kbd{--reply}=@var{how}}
194+@item @w{@kbd{--reply}=@var{how}}
195 @opindex --reply
196 @cindex interactivity
197 @c FIXME: remove in 2008
198@@ -7847,7 +7847,7 @@ files are named or if a recursive removal is requested. Ignore any
199 previous @option{--force} (@option{-f}) option. Equivalent to
200 @option{--interactive=once}.
201
202-@itemx --interactive [=@var{when}]
203+@item --interactive [=@var{when}]
204 @opindex --interactive
205 Specify when to issue an interactive prompt. @var{when} may be
206 omitted, or one of:
207@@ -7866,7 +7866,7 @@ removal is requested. Equivalent to @option{-I}.
208 Specifying @option{--interactive} and no @var{when} is equivalent to
209 @option{--interactive=always}.
210
211-@itemx --one-file-system
212+@item --one-file-system
213 @opindex --one-file-system
214 @cindex one file system, restricting @command{rm} to
215 When removing a hierarchy recursively, skip any directory that is on a
216@@ -7884,7 +7884,7 @@ warn about and skip directories on other file systems.
217 Of course, this will not save your @file{/home} if it and your
218 chroot happen to be on the same file system.
219
220-@itemx --preserve-root
221+@item --preserve-root
222 @opindex --preserve-root
223 @cindex root directory, disallow recursive destruction
224 Fail upon any attempt to remove the root directory, @file{/},
225@@ -7892,7 +7892,7 @@ when used with the @option{--recursive} option.
226 This is the default behavior.
227 @xref{Treating / specially}.
228
229-@itemx --no-preserve-root
230+@item --no-preserve-root
231 @opindex --no-preserve-root
232 @cindex root directory, allow recursive destruction
233 Do not treat @file{/} specially when removing recursively.
234@@ -8874,7 +8874,7 @@ actually changes.
235 Do not print error messages about files whose ownership cannot be
236 changed.
237
238-@itemx @w{@kbd{--from}=@var{old-owner}}
239+@item @w{@kbd{--from}=@var{old-owner}}
240 @opindex --from
241 @cindex symbolic links, changing owner
242 Change a @var{file}'s ownership only if it has current attributes specified
243@@ -8928,14 +8928,14 @@ is a symbolic link.
244 By default, no diagnostic is issued for symbolic links encountered
245 during a recursive traversal, but see @option{--verbose}.
246
247-@itemx --preserve-root
248+@item --preserve-root
249 @opindex --preserve-root
250 @cindex root directory, disallow recursive modification
251 Fail upon any attempt to recursively change the root directory, @file{/}.
252 Without @option{--recursive}, this option has no effect.
253 @xref{Treating / specially}.
254
255-@itemx --no-preserve-root
256+@item --no-preserve-root
257 @opindex --no-preserve-root
258 @cindex root directory, allow recursive modification
259 Cancel the effect of any preceding @option{--preserve-root} option.
260@@ -9054,14 +9054,14 @@ is a symbolic link.
261 By default, no diagnostic is issued for symbolic links encountered
262 during a recursive traversal, but see @option{--verbose}.
263
264-@itemx --preserve-root
265+@item --preserve-root
266 @opindex --preserve-root
267 @cindex root directory, disallow recursive modification
268 Fail upon any attempt to recursively change the root directory, @file{/}.
269 Without @option{--recursive}, this option has no effect.
270 @xref{Treating / specially}.
271
272-@itemx --no-preserve-root
273+@item --no-preserve-root
274 @opindex --no-preserve-root
275 @cindex root directory, allow recursive modification
276 Cancel the effect of any preceding @option{--preserve-root} option.
277@@ -9175,14 +9175,14 @@ actually changes.
278 Do not print error messages about files whose permissions cannot be
279 changed.
280
281-@itemx --preserve-root
282+@item --preserve-root
283 @opindex --preserve-root
284 @cindex root directory, disallow recursive modification
285 Fail upon any attempt to recursively change the root directory, @file{/}.
286 Without @option{--recursive}, this option has no effect.
287 @xref{Treating / specially}.
288
289-@itemx --no-preserve-root
290+@item --no-preserve-root
291 @opindex --no-preserve-root
292 @cindex root directory, allow recursive modification
293 Cancel the effect of any preceding @option{--preserve-root} option.
294@@ -9603,7 +9603,7 @@ The program accepts the following options. Also see @ref{Common options}.
295 @opindex --all
296 Show counts for all files, not just directories.
297
298-@itemx --apparent-size
299+@item --apparent-size
300 @opindex --apparent-size
301 Print apparent sizes, rather than disk usage. The apparent size of a
302 file is the number of bytes reported by @code{wc -c} on regular files,
303@@ -9654,7 +9654,7 @@ Does not affect other symbolic links. This is helpful for finding
304 out the disk usage of directories, such as @file{/usr/tmp}, which
305 are often symbolic links.
306
307-@itemx --files0-from=@var{FILE}
308+@item --files0-from=@var{FILE}
309 @opindex --files0-from=@var{FILE}
310 @cindex including files from @command{du}
311 Rather than processing files named on the command line, process those
312@@ -9733,7 +9733,7 @@ Output a null byte at the end of each line, rather than a newline.
313 This option enables other programs to parse the output of @command{du}
314 even when that output would contain file names with embedded newlines.
315
316-@itemx --si
317+@item --si
318 @opindex --si
319 @cindex SI output
320 Append an SI-style abbreviation to each size, such as @samp{MB} for
321@@ -9754,13 +9754,13 @@ Display only a total for each argument.
322 Report the size of each directory separately, not including the sizes
323 of subdirectories.
324
325-@itemx --time
326+@item --time
327 @opindex --time
328 @cindex last modified dates, displaying in @command{du}
329 Show time of the most recent modification of any file in the directory,
330 or any of its subdirectories.
331
332-@itemx --time=ctime
333+@item --time=ctime
334 @itemx --time=status
335 @itemx --time=use
336 @opindex --time
337@@ -9770,7 +9770,7 @@ or any of its subdirectories.
338 Show the most recent status change time (the @samp{ctime} in the inode) of
339 any file in the directory, instead of the modification time.
340
341-@itemx --time=atime
342+@item --time=atime
343 @itemx --time=access
344 @opindex --time
345 @opindex atime@r{, show the most recent}
346@@ -9911,7 +9911,7 @@ $ stat --format=%d:%i / /usr
347 2057:2
348 @end example
349
350-@itemx --printf=@var{format}
351+@item --printf=@var{format}
352 @opindex --printf=@var{format}
353 @cindex output format
354 Use @var{format} rather than the default format.
355@@ -12240,7 +12240,7 @@ Overrides all other options.
356 @opindex -s
357 Ignored; for compatibility with other versions of @command{who}.
358
359-@itemx -u
360+@item -u
361 @opindex -u
362 @cindex idle time
363 After the login time, print the number of hours and minutes that the
364@@ -12254,7 +12254,7 @@ user has been idle. @samp{.} means the user was active in the last minute.
365 List only the entries that correspond to processes via which the
366 system is waiting for a user to login. The user name is always @samp{LOGIN}.
367
368-@itemx --lookup
369+@item --lookup
370 @opindex --lookup
371 Attempt to canonicalize hostnames found in utmp through a DNS lookup. This
372 is not the default because it can cause significant delays on systems with
373--
3741.8.3.1
375
diff --git a/meta/recipes-core/coreutils/coreutils-6.9/coreutils-i18n.patch b/meta/recipes-core/coreutils/coreutils-6.9/coreutils-i18n.patch
deleted file mode 100644
index 653722348a..0000000000
--- a/meta/recipes-core/coreutils/coreutils-6.9/coreutils-i18n.patch
+++ /dev/null
@@ -1,4051 +0,0 @@
1Upstream-Status: Inappropriate [legacy version]
2
3This patch was imported from the Fedora Core 8 coreutils-6.9-9 package.
4
5The package is stated as being Licensed as GPLv2+.
6
7The comment indicates that the purpose is lin18nux/lsb compliance.
8
9Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
10
11--- /dev/null 2007-03-01 09:16:39.219409909 +0000
12+++ coreutils-6.8+/tests/sort/sort-mb-tests 2007-03-01 15:08:24.000000000 +0000
13@@ -0,0 +1,58 @@
14+#! /bin/sh
15+case $# in
16+ 0) xx='../../src/sort';;
17+ *) xx="$1";;
18+esac
19+test "$VERBOSE" && echo=echo || echo=:
20+$echo testing program: $xx
21+errors=0
22+test "$srcdir" || srcdir=.
23+test "$VERBOSE" && $xx --version 2> /dev/null
24+
25+export LC_ALL=en_US.UTF-8
26+locale -k LC_CTYPE 2>&1 | grep -q charmap.*UTF-8 || exit 77
27+errors=0
28+
29+$xx -t ï¼  -k2 -n mb1.I > mb1.O
30+code=$?
31+if test $code != 0; then
32+ $echo "Test mb1 failed: $xx return code $code differs from expected value 0" 1>&2
33+ errors=`expr $errors + 1`
34+else
35+ cmp mb1.O $srcdir/mb1.X > /dev/null 2>&1
36+ case $? in
37+ 0) if test "$VERBOSE"; then $echo "passed mb1"; fi;;
38+ 1) $echo "Test mb1 failed: files mb1.O and $srcdir/mb1.X differ" 1>&2
39+ (diff -c mb1.O $srcdir/mb1.X) 2> /dev/null
40+ errors=`expr $errors + 1`;;
41+ 2) $echo "Test mb1 may have failed." 1>&2
42+ $echo The command "cmp mb1.O $srcdir/mb1.X" failed. 1>&2
43+ errors=`expr $errors + 1`;;
44+ esac
45+fi
46+
47+$xx -t ï¼  -k4 -n mb2.I > mb2.O
48+code=$?
49+if test $code != 0; then
50+ $echo "Test mb2 failed: $xx return code $code differs from expected value 0" 1>&2
51+ errors=`expr $errors + 1`
52+else
53+ cmp mb2.O $srcdir/mb2.X > /dev/null 2>&1
54+ case $? in
55+ 0) if test "$VERBOSE"; then $echo "passed mb2"; fi;;
56+ 1) $echo "Test mb2 failed: files mb2.O and $srcdir/mb2.X differ" 1>&2
57+ (diff -c mb2.O $srcdir/mb2.X) 2> /dev/null
58+ errors=`expr $errors + 1`;;
59+ 2) $echo "Test mb2 may have failed." 1>&2
60+ $echo The command "cmp mb2.O $srcdir/mb2.X" failed. 1>&2
61+ errors=`expr $errors + 1`;;
62+ esac
63+fi
64+
65+if test $errors = 0; then
66+ $echo Passed all 113 tests. 1>&2
67+else
68+ $echo Failed $errors tests. 1>&2
69+fi
70+test $errors = 0 || errors=1
71+exit $errors
72--- /dev/null 2007-03-01 09:16:39.219409909 +0000
73+++ coreutils-6.8+/tests/sort/mb2.I 2007-03-01 15:08:24.000000000 +0000
74@@ -0,0 +1,4 @@
75+Apple@AA10@@20
76+Banana@AA5@@30
77+Citrus@AA20@@5
78+Cherry@AA30@@10
79--- /dev/null 2007-03-01 09:16:39.219409909 +0000
80+++ coreutils-6.8+/tests/sort/mb2.X 2007-03-01 15:08:24.000000000 +0000
81@@ -0,0 +1,4 @@
82+Citrus@AA20@@5
83+Cherry@AA30@@10
84+Apple@AA10@@20
85+Banana@AA5@@30
86--- /dev/null 2007-03-01 09:16:39.219409909 +0000
87+++ coreutils-6.8+/tests/sort/mb1.I 2007-03-01 15:08:24.000000000 +0000
88@@ -0,0 +1,4 @@
89+Appleï¼ 10
90+Bananaï¼ 5
91+Citrusï¼ 20
92+Cherryï¼ 30
93--- /dev/null 2007-03-01 09:16:39.219409909 +0000
94+++ coreutils-6.8+/tests/sort/mb1.X 2007-03-01 15:08:24.000000000 +0000
95@@ -0,0 +1,4 @@
96+Bananaï¼ 5
97+Appleï¼ 10
98+Citrusï¼ 20
99+Cherryï¼ 30
100--- coreutils-6.8+/tests/sort/Makefile.am.i18n 2007-01-24 07:47:37.000000000 +0000
101+++ coreutils-6.8+/tests/sort/Makefile.am 2007-03-01 15:09:59.000000000 +0000
102@@ -66,15 +66,17 @@
103 bigfield.O bigfield.E
104 ##test-files-end
105
106-EXTRA_DIST = Test.pm $x-tests $(explicit) $(maint_gen)
107-noinst_SCRIPTS = $x-tests
108+run_gen += mb1.0 mb2.0
109+
110+EXTRA_DIST = Test.pm $x-tests $(explicit) $(maint_gen) mb1.I mb1.X mb2.I mb2.X
111+noinst_SCRIPTS = $x-tests # $x-mb-tests
112 TESTS_ENVIRONMENT = \
113 CU_TEST_NAME=`basename $(abs_srcdir)`,$$tst \
114 PATH="$(VG_PATH_PREFIX)`pwd`/../../src$(PATH_SEPARATOR)$$PATH"
115
116 editpl = sed -e 's,@''PERL''@,$(PERL),g' -e 's,@''srcdir''@,$(srcdir),g'
117
118-TESTS = $x-tests
119+TESTS = $x-tests $x-mb-tests
120
121 mk_script = $(srcdir)/../mk-script
122 $(srcdir)/$x-tests: $(mk_script) Test.pm Makefile.am
123--- coreutils-6.8+/lib/linebuffer.h.i18n 2005-05-14 07:44:24.000000000 +0100
124+++ coreutils-6.8+/lib/linebuffer.h 2007-03-01 15:08:24.000000000 +0000
125@@ -22,6 +22,11 @@
126
127 # include <stdio.h>
128
129+/* Get mbstate_t. */
130+# if HAVE_WCHAR_H
131+# include <wchar.h>
132+# endif
133+
134 /* A `struct linebuffer' holds a line of text. */
135
136 struct linebuffer
137@@ -29,6 +34,9 @@
138 size_t size; /* Allocated. */
139 size_t length; /* Used. */
140 char *buffer;
141+# if HAVE_WCHAR_H
142+ mbstate_t state;
143+# endif
144 };
145
146 /* Initialize linebuffer LINEBUFFER for use. */
147--- coreutils-6.8+/src/expand.c.i18n 2007-01-14 15:41:28.000000000 +0000
148+++ coreutils-6.8+/src/expand.c 2007-03-01 15:08:24.000000000 +0000
149@@ -38,11 +38,28 @@
150 #include <stdio.h>
151 #include <getopt.h>
152 #include <sys/types.h>
153+
154+/* Get mbstate_t, mbrtowc(), wcwidth(). */
155+#if HAVE_WCHAR_H
156+# include <wchar.h>
157+#endif
158+
159 #include "system.h"
160 #include "error.h"
161 #include "quote.h"
162 #include "xstrndup.h"
163
164+/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC
165+ installation; work around this configuration error. */
166+#if !defined MB_LEN_MAX || MB_LEN_MAX < 2
167+# define MB_LEN_MAX 16
168+#endif
169+
170+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */
171+#if HAVE_MBRTOWC && defined mbstate_t
172+# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
173+#endif
174+
175 /* The official name of this program (e.g., no `g' prefix). */
176 #define PROGRAM_NAME "expand"
177
178@@ -183,6 +200,7 @@
179 stops = num_start + len - 1;
180 }
181 }
182+
183 else
184 {
185 error (0, 0, _("tab size contains invalid character(s): %s"),
186@@ -365,6 +383,142 @@
187 }
188 }
189
190+#if HAVE_MBRTOWC
191+static void
192+expand_multibyte (void)
193+{
194+ FILE *fp; /* Input strem. */
195+ mbstate_t i_state; /* Current shift state of the input stream. */
196+ mbstate_t i_state_bak; /* Back up the I_STATE. */
197+ mbstate_t o_state; /* Current shift state of the output stream. */
198+ char buf[MB_LEN_MAX + BUFSIZ]; /* For spooling a read byte sequence. */
199+ char *bufpos; /* Next read position of BUF. */
200+ size_t buflen = 0; /* The length of the byte sequence in buf. */
201+ wchar_t wc; /* A gotten wide character. */
202+ size_t mblength; /* The byte size of a multibyte character
203+ which shows as same character as WC. */
204+ int tab_index = 0; /* Index in `tab_list' of next tabstop. */
205+ int column = 0; /* Column on screen of the next char. */
206+ int next_tab_column; /* Column the next tab stop is on. */
207+ int convert = 1; /* If nonzero, perform translations. */
208+
209+ fp = next_file ((FILE *) NULL);
210+ if (fp == NULL)
211+ return;
212+
213+ memset (&o_state, '\0', sizeof(mbstate_t));
214+ memset (&i_state, '\0', sizeof(mbstate_t));
215+
216+ for (;;)
217+ {
218+ /* Refill the buffer BUF. */
219+ if (buflen < MB_LEN_MAX && !feof(fp) && !ferror(fp))
220+ {
221+ memmove (buf, bufpos, buflen);
222+ buflen += fread (buf + buflen, sizeof(char), BUFSIZ, fp);
223+ bufpos = buf;
224+ }
225+
226+ /* No character is left in BUF. */
227+ if (buflen < 1)
228+ {
229+ fp = next_file (fp);
230+
231+ if (fp == NULL)
232+ break; /* No more files. */
233+ else
234+ {
235+ memset (&i_state, '\0', sizeof(mbstate_t));
236+ continue;
237+ }
238+ }
239+
240+ /* Get a wide character. */
241+ i_state_bak = i_state;
242+ mblength = mbrtowc (&wc, bufpos, buflen, &i_state);
243+
244+ switch (mblength)
245+ {
246+ case (size_t)-1: /* illegal byte sequence. */
247+ case (size_t)-2:
248+ mblength = 1;
249+ i_state = i_state_bak;
250+ if (convert)
251+ {
252+ ++column;
253+ if (convert_entire_line == 0)
254+ convert = 0;
255+ }
256+ putchar (*bufpos);
257+ break;
258+
259+ case 0: /* null. */
260+ mblength = 1;
261+ if (convert && convert_entire_line == 0)
262+ convert = 0;
263+ putchar ('\0');
264+ break;
265+
266+ default:
267+ if (wc == L'\n') /* LF. */
268+ {
269+ tab_index = 0;
270+ column = 0;
271+ convert = 1;
272+ putchar ('\n');
273+ }
274+ else if (wc == L'\t' && convert) /* Tab. */
275+ {
276+ if (tab_size == 0)
277+ {
278+ /* Do not let tab_index == first_free_tab;
279+ stop when it is 1 less. */
280+ while (tab_index < first_free_tab - 1
281+ && column >= tab_list[tab_index])
282+ tab_index++;
283+ next_tab_column = tab_list[tab_index];
284+ if (tab_index < first_free_tab - 1)
285+ tab_index++;
286+ if (column >= next_tab_column)
287+ next_tab_column = column + 1;
288+ }
289+ else
290+ next_tab_column = column + tab_size - column % tab_size;
291+
292+ while (column < next_tab_column)
293+ {
294+ putchar (' ');
295+ ++column;
296+ }
297+ }
298+ else /* Others. */
299+ {
300+ if (convert)
301+ {
302+ if (wc == L'\b')
303+ {
304+ if (column > 0)
305+ --column;
306+ }
307+ else
308+ {
309+ int width; /* The width of WC. */
310+
311+ width = wcwidth (wc);
312+ column += (width > 0) ? width : 0;
313+ if (convert_entire_line == 0)
314+ convert = 0;
315+ }
316+ }
317+ fwrite (bufpos, sizeof(char), mblength, stdout);
318+ }
319+ }
320+ buflen -= mblength;
321+ bufpos += mblength;
322+ }
323+}
324+#endif
325+
326 int
327 main (int argc, char **argv)
328 {
329@@ -429,7 +583,12 @@
330
331 file_list = (optind < argc ? &argv[optind] : stdin_argv);
332
333- expand ();
334+#if HAVE_MBRTOWC
335+ if (MB_CUR_MAX > 1)
336+ expand_multibyte ();
337+ else
338+#endif
339+ expand ();
340
341 if (have_read_stdin && fclose (stdin) != 0)
342 error (EXIT_FAILURE, errno, "-");
343--- coreutils-6.8+/src/join.c.i18n 2007-01-14 15:41:28.000000000 +0000
344+++ coreutils-6.8+/src/join.c 2007-03-01 15:08:24.000000000 +0000
345@@ -23,16 +23,30 @@
346 #include <sys/types.h>
347 #include <getopt.h>
348
349+/* Get mbstate_t, mbrtowc(), mbrtowc(), wcwidth(). */
350+#if HAVE_WCHAR_H
351+# include <wchar.h>
352+#endif
353+
354+/* Get iswblank(), towupper. */
355+#if HAVE_WCTYPE_H
356+# include <wctype.h>
357+#endif
358+
359 #include "system.h"
360 #include "error.h"
361 #include "hard-locale.h"
362 #include "linebuffer.h"
363-#include "memcasecmp.h"
364 #include "quote.h"
365 #include "stdio--.h"
366 #include "xmemcoll.h"
367 #include "xstrtol.h"
368
369+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */
370+#if HAVE_MBRTOWC && defined mbstate_t
371+# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
372+#endif
373+
374 /* The official name of this program (e.g., no `g' prefix). */
375 #define PROGRAM_NAME "join"
376
377@@ -104,10 +118,12 @@
378 /* Last element in `outlist', where a new element can be added. */
379 static struct outlist *outlist_end = &outlist_head;
380
381-/* Tab character separating fields. If negative, fields are separated
382- by any nonempty string of blanks, otherwise by exactly one
383- tab character whose value (when cast to unsigned char) equals TAB. */
384-static int tab = -1;
385+/* Tab character separating fields. If NULL, fields are separated
386+ by any nonempty string of blanks. */
387+static char *tab = NULL;
388+
389+/* The number of bytes used for tab. */
390+static size_t tablen = 0;
391
392 static struct option const longopts[] =
393 {
394@@ -190,6 +206,8 @@
395
396 /* Fill in the `fields' structure in LINE. */
397
398+/* Fill in the `fields' structure in LINE. */
399+
400 static void
401 xfields (struct line *line)
402 {
403@@ -199,10 +217,11 @@
404 if (ptr == lim)
405 return;
406
407- if (0 <= tab)
408+ if (tab != NULL)
409 {
410+ unsigned char t = tab[0];
411 char *sep;
412- for (; (sep = memchr (ptr, tab, lim - ptr)) != NULL; ptr = sep + 1)
413+ for (; (sep = memchr (ptr, t, lim - ptr)) != NULL; ptr = sep + 1)
414 extract_field (line, ptr, sep - ptr);
415 }
416 else
417@@ -229,6 +248,148 @@
418 extract_field (line, ptr, lim - ptr);
419 }
420
421+#if HAVE_MBRTOWC
422+static void
423+xfields_multibyte (struct line *line)
424+{
425+ char *ptr = line->buf.buffer;
426+ char const *lim = ptr + line->buf.length - 1;
427+ wchar_t wc = 0;
428+ size_t mblength = 1;
429+ mbstate_t state, state_bak;
430+
431+ memset (&state, 0, sizeof (mbstate_t));
432+
433+ if (ptr == lim)
434+ return;
435+
436+ if (tab != NULL)
437+ {
438+ unsigned char t = tab[0];
439+ char *sep = ptr;
440+ for (; ptr < lim; ptr = sep + mblength)
441+ {
442+ sep = ptr;
443+ while (sep < lim)
444+ {
445+ state_bak = state;
446+ mblength = mbrtowc (&wc, sep, lim - sep + 1, &state);
447+
448+ if (mblength == (size_t)-1 || mblength == (size_t)-2)
449+ {
450+ mblength = 1;
451+ state = state_bak;
452+ }
453+ mblength = (mblength < 1) ? 1 : mblength;
454+
455+ if (mblength == tablen && !memcmp (sep, tab, mblength))
456+ break;
457+ else
458+ {
459+ sep += mblength;
460+ continue;
461+ }
462+ }
463+
464+ if (sep == lim)
465+ break;
466+
467+ extract_field (line, ptr, sep - ptr);
468+ }
469+ }
470+ else
471+ {
472+ /* Skip leading blanks before the first field. */
473+ while(ptr < lim)
474+ {
475+ state_bak = state;
476+ mblength = mbrtowc (&wc, ptr, lim - ptr + 1, &state);
477+
478+ if (mblength == (size_t)-1 || mblength == (size_t)-2)
479+ {
480+ mblength = 1;
481+ state = state_bak;
482+ break;
483+ }
484+ mblength = (mblength < 1) ? 1 : mblength;
485+
486+ if (!iswblank(wc))
487+ break;
488+ ptr += mblength;
489+ }
490+
491+ do
492+ {
493+ char *sep;
494+ state_bak = state;
495+ mblength = mbrtowc (&wc, ptr, lim - ptr + 1, &state);
496+ if (mblength == (size_t)-1 || mblength == (size_t)-2)
497+ {
498+ mblength = 1;
499+ state = state_bak;
500+ break;
501+ }
502+ mblength = (mblength < 1) ? 1 : mblength;
503+
504+ sep = ptr + mblength;
505+ while (sep != lim)
506+ {
507+ state_bak = state;
508+ mblength = mbrtowc (&wc, sep, lim - sep + 1, &state);
509+ if (mblength == (size_t)-1 || mblength == (size_t)-2)
510+ {
511+ mblength = 1;
512+ state = state_bak;
513+ break;
514+ }
515+ mblength = (mblength < 1) ? 1 : mblength;
516+
517+ if (iswblank (wc))
518+ break;
519+
520+ sep += mblength;
521+ }
522+
523+ extract_field (line, ptr, sep - ptr);
524+ if (sep == lim)
525+ return;
526+
527+ state_bak = state;
528+ mblength = mbrtowc (&wc, sep, lim - sep + 1, &state);
529+ if (mblength == (size_t)-1 || mblength == (size_t)-2)
530+ {
531+ mblength = 1;
532+ state = state_bak;
533+ break;
534+ }
535+ mblength = (mblength < 1) ? 1 : mblength;
536+
537+ ptr = sep + mblength;
538+ while (ptr != lim)
539+ {
540+ state_bak = state;
541+ mblength = mbrtowc (&wc, ptr, lim - ptr + 1, &state);
542+ if (mblength == (size_t)-1 || mblength == (size_t)-2)
543+ {
544+ mblength = 1;
545+ state = state_bak;
546+ break;
547+ }
548+ mblength = (mblength < 1) ? 1 : mblength;
549+
550+ if (!iswblank (wc))
551+ break;
552+
553+ ptr += mblength;
554+ }
555+ }
556+ while (ptr != lim);
557+ }
558+
559+ extract_field (line, ptr, lim - ptr);
560+}
561+#endif
562+
563 /* Read a line from FP into LINE and split it into fields.
564 Return true if successful. */
565
566@@ -249,6 +410,11 @@
567 line->nfields_allocated = 0;
568 line->nfields = 0;
569 line->fields = NULL;
570+#if HAVE_MBRTOWC
571+ if (MB_CUR_MAX > 1)
572+ xfields_multibyte (line);
573+ else
574+#endif
575 xfields (line);
576 return true;
577 }
578@@ -303,56 +469,114 @@
579 keycmp (struct line const *line1, struct line const *line2)
580 {
581 /* Start of field to compare in each file. */
582- char *beg1;
583- char *beg2;
584-
585- size_t len1;
586- size_t len2; /* Length of fields to compare. */
587+ char *beg[2];
588+ char *copy[2];
589+ size_t len[2]; /* Length of fields to compare. */
590 int diff;
591+ int i, j;
592
593 if (join_field_1 < line1->nfields)
594 {
595- beg1 = line1->fields[join_field_1].beg;
596- len1 = line1->fields[join_field_1].len;
597+ beg[0] = line1->fields[join_field_1].beg;
598+ len[0] = line1->fields[join_field_1].len;
599 }
600 else
601 {
602- beg1 = NULL;
603- len1 = 0;
604+ beg[0] = NULL;
605+ len[0] = 0;
606 }
607
608 if (join_field_2 < line2->nfields)
609 {
610- beg2 = line2->fields[join_field_2].beg;
611- len2 = line2->fields[join_field_2].len;
612+ beg[1] = line2->fields[join_field_2].beg;
613+ len[1] = line2->fields[join_field_2].len;
614 }
615 else
616 {
617- beg2 = NULL;
618- len2 = 0;
619+ beg[1] = NULL;
620+ len[1] = 0;
621 }
622
623- if (len1 == 0)
624- return len2 == 0 ? 0 : -1;
625- if (len2 == 0)
626+ if (len[0] == 0)
627+ return len[1] == 0 ? 0 : -1;
628+ if (len[1] == 0)
629 return 1;
630
631 if (ignore_case)
632 {
633- /* FIXME: ignore_case does not work with NLS (in particular,
634- with multibyte chars). */
635- diff = memcasecmp (beg1, beg2, MIN (len1, len2));
636+#ifdef HAVE_MBRTOWC
637+ if (MB_CUR_MAX > 1)
638+ {
639+ size_t mblength;
640+ wchar_t wc, uwc;
641+ mbstate_t state, state_bak;
642+
643+ memset (&state, '\0', sizeof (mbstate_t));
644+
645+ for (i = 0; i < 2; i++)
646+ {
647+ copy[i] = alloca (len[i] + 1);
648+
649+ for (j = 0; j < MIN (len[0], len[1]);)
650+ {
651+ state_bak = state;
652+ mblength = mbrtowc (&wc, beg[i] + j, len[i] - j, &state);
653+
654+ switch (mblength)
655+ {
656+ case (size_t) -1:
657+ case (size_t) -2:
658+ state = state_bak;
659+ /* Fall through */
660+ case 0:
661+ mblength = 1;
662+ break;
663+
664+ default:
665+ uwc = towupper (wc);
666+
667+ if (uwc != wc)
668+ {
669+ mbstate_t state_wc;
670+
671+ memset (&state_wc, '\0', sizeof (mbstate_t));
672+ wcrtomb (copy[i] + j, uwc, &state_wc);
673+ }
674+ else
675+ memcpy (copy[i] + j, beg[i] + j, mblength);
676+ }
677+ j += mblength;
678+ }
679+ copy[i][j] = '\0';
680+ }
681+ }
682+ else
683+#endif
684+ {
685+ for (i = 0; i < 2; i++)
686+ {
687+ copy[i] = alloca (len[i] + 1);
688+
689+ for (j = 0; j < MIN (len[0], len[1]); j++)
690+ copy[i][j] = toupper (beg[i][j]);
691+
692+ copy[i][j] = '\0';
693+ }
694+ }
695 }
696 else
697 {
698- if (hard_LC_COLLATE)
699- return xmemcoll (beg1, len1, beg2, len2);
700- diff = memcmp (beg1, beg2, MIN (len1, len2));
701+ copy[0] = (unsigned char *) beg[0];
702+ copy[1] = (unsigned char *) beg[1];
703 }
704
705+ if (hard_LC_COLLATE)
706+ return xmemcoll ((char *) copy[0], len[0], (char *) copy[1], len[1]);
707+ diff = memcmp (copy[0], copy[1], MIN (len[0], len[1]));
708+
709 if (diff)
710 return diff;
711- return len1 < len2 ? -1 : len1 != len2;
712+ return len[0] - len[1];
713 }
714
715 /* Print field N of LINE if it exists and is nonempty, otherwise
716@@ -377,11 +601,18 @@
717
718 /* Print the join of LINE1 and LINE2. */
719
720+#define PUT_TAB_CHAR \
721+ do \
722+ { \
723+ (tab != NULL) ? \
724+ fwrite(tab, sizeof(char), tablen, stdout) : putchar (' '); \
725+ } \
726+ while (0)
727+
728 static void
729 prjoin (struct line const *line1, struct line const *line2)
730 {
731 const struct outlist *outlist;
732- char output_separator = tab < 0 ? ' ' : tab;
733
734 outlist = outlist_head.next;
735 if (outlist)
736@@ -397,12 +628,12 @@
737 if (o->file == 0)
738 {
739 if (line1 == &uni_blank)
740- {
741+ {
742 line = line2;
743 field = join_field_2;
744 }
745 else
746- {
747+ {
748 line = line1;
749 field = join_field_1;
750 }
751@@ -416,7 +647,7 @@
752 o = o->next;
753 if (o == NULL)
754 break;
755- putchar (output_separator);
756+ PUT_TAB_CHAR;
757 }
758 putchar ('\n');
759 }
760@@ -434,23 +665,23 @@
761 prfield (join_field_1, line1);
762 for (i = 0; i < join_field_1 && i < line1->nfields; ++i)
763 {
764- putchar (output_separator);
765+ PUT_TAB_CHAR;
766 prfield (i, line1);
767 }
768 for (i = join_field_1 + 1; i < line1->nfields; ++i)
769 {
770- putchar (output_separator);
771+ PUT_TAB_CHAR;
772 prfield (i, line1);
773 }
774
775 for (i = 0; i < join_field_2 && i < line2->nfields; ++i)
776 {
777- putchar (output_separator);
778+ PUT_TAB_CHAR;
779 prfield (i, line2);
780 }
781 for (i = join_field_2 + 1; i < line2->nfields; ++i)
782 {
783- putchar (output_separator);
784+ PUT_TAB_CHAR;
785 prfield (i, line2);
786 }
787 putchar ('\n');
788@@ -859,20 +1090,41 @@
789
790 case 't':
791 {
792- unsigned char newtab = optarg[0];
793- if (! newtab)
794+ char *newtab;
795+ size_t newtablen;
796+ if (! optarg[0])
797 error (EXIT_FAILURE, 0, _("empty tab"));
798- if (optarg[1])
799+ newtab = xstrdup (optarg);
800+#if HAVE_MBRTOWC
801+ if (MB_CUR_MAX > 1)
802+ {
803+ mbstate_t state;
804+
805+ memset (&state, 0, sizeof (mbstate_t));
806+ newtablen = mbrtowc (NULL, newtab,
807+ strnlen (newtab, MB_LEN_MAX),
808+ &state);
809+ if (newtablen == (size_t) 0
810+ || newtablen == (size_t) -1
811+ || newtablen == (size_t) -2)
812+ newtablen = 1;
813+ }
814+ else
815+#endif
816+ newtablen = 1;
817+
818+ if (newtablen == 1 && newtab[1])
819+ {
820+ if (STREQ (newtab, "\\0"))
821+ newtab[0] = '\0';
822+ }
823+ if (tab != NULL && strcmp (tab, newtab))
824 {
825- if (STREQ (optarg, "\\0"))
826- newtab = '\0';
827- else
828- error (EXIT_FAILURE, 0, _("multi-character tab %s"),
829- quote (optarg));
830+ free (newtab);
831+ error (EXIT_FAILURE, 0, _("incompatible tabs"));
832 }
833- if (0 <= tab && tab != newtab)
834- error (EXIT_FAILURE, 0, _("incompatible tabs"));
835 tab = newtab;
836+ tablen = newtablen;
837 }
838 break;
839
840--- coreutils-6.8+/src/uniq.c.i18n 2007-01-14 15:41:28.000000000 +0000
841+++ coreutils-6.8+/src/uniq.c 2007-03-01 15:08:24.000000000 +0000
842@@ -23,6 +23,16 @@
843 #include <getopt.h>
844 #include <sys/types.h>
845
846+/* Get mbstate_t, mbrtowc(). */
847+#if HAVE_WCHAR_H
848+# include <wchar.h>
849+#endif
850+
851+/* Get isw* functions. */
852+#if HAVE_WCTYPE_H
853+# include <wctype.h>
854+#endif
855+
856 #include "system.h"
857 #include "argmatch.h"
858 #include "linebuffer.h"
859@@ -32,7 +42,19 @@
860 #include "quote.h"
861 #include "xmemcoll.h"
862 #include "xstrtol.h"
863-#include "memcasecmp.h"
864+#include "xmemcoll.h"
865+
866+/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC
867+ installation; work around this configuration error. */
868+#if !defined MB_LEN_MAX || MB_LEN_MAX < 2
869+# define MB_LEN_MAX 16
870+#endif
871+
872+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */
873+#if HAVE_MBRTOWC && defined mbstate_t
874+# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
875+#endif
876+
877
878 /* The official name of this program (e.g., no `g' prefix). */
879 #define PROGRAM_NAME "uniq"
880@@ -109,6 +131,10 @@
881 /* Select whether/how to delimit groups of duplicate lines. */
882 static enum delimit_method delimit_groups;
883
884+/* Function pointers. */
885+static char *
886+(*find_field) (struct linebuffer *line);
887+
888 static struct option const longopts[] =
889 {
890 {"count", no_argument, NULL, 'c'},
891@@ -198,7 +224,7 @@
892 return a pointer to the beginning of the line's field to be compared. */
893
894 static char *
895-find_field (const struct linebuffer *line)
896+find_field_uni (struct linebuffer *line)
897 {
898 size_t count;
899 char *lp = line->buffer;
900@@ -219,6 +245,83 @@
901 return lp + i;
902 }
903
904+#if HAVE_MBRTOWC
905+
906+# define MBCHAR_TO_WCHAR(WC, MBLENGTH, LP, POS, SIZE, STATEP, CONVFAIL) \
907+ do \
908+ { \
909+ mbstate_t state_bak; \
910+ \
911+ CONVFAIL = 0; \
912+ state_bak = *STATEP; \
913+ \
914+ MBLENGTH = mbrtowc (&WC, LP + POS, SIZE - POS, STATEP); \
915+ \
916+ switch (MBLENGTH) \
917+ { \
918+ case (size_t)-2: \
919+ case (size_t)-1: \
920+ *STATEP = state_bak; \
921+ CONVFAIL++; \
922+ /* Fall through */ \
923+ case 0: \
924+ MBLENGTH = 1; \
925+ } \
926+ } \
927+ while (0)
928+
929+static char *
930+find_field_multi (struct linebuffer *line)
931+{
932+ size_t count;
933+ char *lp = line->buffer;
934+ size_t size = line->length - 1;
935+ size_t pos;
936+ size_t mblength;
937+ wchar_t wc;
938+ mbstate_t *statep;
939+ int convfail;
940+
941+ pos = 0;
942+ statep = &(line->state);
943+
944+ /* skip fields. */
945+ for (count = 0; count < skip_fields && pos < size; count++)
946+ {
947+ while (pos < size)
948+ {
949+ MBCHAR_TO_WCHAR (wc, mblength, lp, pos, size, statep, convfail);
950+
951+ if (convfail || !iswblank (wc))
952+ {
953+ pos += mblength;
954+ break;
955+ }
956+ pos += mblength;
957+ }
958+
959+ while (pos < size)
960+ {
961+ MBCHAR_TO_WCHAR (wc, mblength, lp, pos, size, statep, convfail);
962+
963+ if (!convfail && iswblank (wc))
964+ break;
965+
966+ pos += mblength;
967+ }
968+ }
969+
970+ /* skip fields. */
971+ for (count = 0; count < skip_chars && pos < size; count++)
972+ {
973+ MBCHAR_TO_WCHAR (wc, mblength, lp, pos, size, statep, convfail);
974+ pos += mblength;
975+ }
976+
977+ return lp + pos;
978+}
979+#endif
980+
981 /* Return false if two strings OLD and NEW match, true if not.
982 OLD and NEW point not to the beginnings of the lines
983 but rather to the beginnings of the fields to compare.
984@@ -227,6 +330,8 @@
985 static bool
986 different (char *old, char *new, size_t oldlen, size_t newlen)
987 {
988+ char *copy_old, *copy_new;
989+
990 if (check_chars < oldlen)
991 oldlen = check_chars;
992 if (check_chars < newlen)
993@@ -234,14 +339,92 @@
994
995 if (ignore_case)
996 {
997- /* FIXME: This should invoke strcoll somehow. */
998- return oldlen != newlen || memcasecmp (old, new, oldlen);
999+ size_t i;
1000+
1001+ copy_old = alloca (oldlen + 1);
1002+ copy_new = alloca (oldlen + 1);
1003+
1004+ for (i = 0; i < oldlen; i++)
1005+ {
1006+ copy_old[i] = toupper (old[i]);
1007+ copy_new[i] = toupper (new[i]);
1008+ }
1009 }
1010- else if (hard_LC_COLLATE)
1011- return xmemcoll (old, oldlen, new, newlen) != 0;
1012 else
1013- return oldlen != newlen || memcmp (old, new, oldlen);
1014+ {
1015+ copy_old = (char *)old;
1016+ copy_new = (char *)new;
1017+ }
1018+
1019+ return xmemcoll (copy_old, oldlen, copy_new, newlen);
1020+}
1021+
1022+#if HAVE_MBRTOWC
1023+static int
1024+different_multi (const char *old, const char *new, size_t oldlen, size_t newlen, mbstate_t oldstate, mbstate_t newstate)
1025+{
1026+ size_t i, j, chars;
1027+ const char *str[2];
1028+ char *copy[2];
1029+ size_t len[2];
1030+ mbstate_t state[2];
1031+ size_t mblength;
1032+ wchar_t wc, uwc;
1033+ mbstate_t state_bak;
1034+
1035+ str[0] = old;
1036+ str[1] = new;
1037+ len[0] = oldlen;
1038+ len[1] = newlen;
1039+ state[0] = oldstate;
1040+ state[1] = newstate;
1041+
1042+ for (i = 0; i < 2; i++)
1043+ {
1044+ copy[i] = alloca (len[i] + 1);
1045+
1046+ for (j = 0, chars = 0; j < len[i] && chars < check_chars; chars++)
1047+ {
1048+ state_bak = state[i];
1049+ mblength = mbrtowc (&wc, str[i] + j, len[i] - j, &(state[i]));
1050+
1051+ switch (mblength)
1052+ {
1053+ case (size_t)-1:
1054+ case (size_t)-2:
1055+ state[i] = state_bak;
1056+ /* Fall through */
1057+ case 0:
1058+ mblength = 1;
1059+ break;
1060+
1061+ default:
1062+ if (ignore_case)
1063+ {
1064+ uwc = towupper (wc);
1065+
1066+ if (uwc != wc)
1067+ {
1068+ mbstate_t state_wc;
1069+
1070+ memset (&state_wc, '\0', sizeof(mbstate_t));
1071+ wcrtomb (copy[i] + j, uwc, &state_wc);
1072+ }
1073+ else
1074+ memcpy (copy[i] + j, str[i] + j, mblength);
1075+ }
1076+ else
1077+ memcpy (copy[i] + j, str[i] + j, mblength);
1078+ }
1079+ j += mblength;
1080+ }
1081+ copy[i][j] = '\0';
1082+ len[i] = j;
1083+ }
1084+
1085+ return xmemcoll (copy[0], len[0], copy[1], len[1]);
1086 }
1087+#endif
1088
1089 /* Output the line in linebuffer LINE to standard output
1090 provided that the switches say it should be output.
1091@@ -295,15 +478,43 @@
1092 {
1093 char *prevfield IF_LINT (= NULL);
1094 size_t prevlen IF_LINT (= 0);
1095+#if HAVE_MBRTOWC
1096+ mbstate_t prevstate;
1097+
1098+ memset (&prevstate, '\0', sizeof (mbstate_t));
1099+#endif
1100
1101 while (!feof (stdin))
1102 {
1103 char *thisfield;
1104 size_t thislen;
1105+#if HAVE_MBRTOWC
1106+ mbstate_t thisstate;
1107+#endif
1108+
1109 if (readlinebuffer (thisline, stdin) == 0)
1110 break;
1111 thisfield = find_field (thisline);
1112 thislen = thisline->length - 1 - (thisfield - thisline->buffer);
1113+#if HAVE_MBRTOWC
1114+ if (MB_CUR_MAX > 1)
1115+ {
1116+ thisstate = thisline->state;
1117+
1118+ if (prevline->length == 0 || different_multi
1119+ (thisfield, prevfield, thislen, prevlen, thisstate, prevstate))
1120+ {
1121+ fwrite (thisline->buffer, sizeof (char),
1122+ thisline->length, stdout);
1123+
1124+ SWAP_LINES (prevline, thisline);
1125+ prevfield = thisfield;
1126+ prevlen = thislen;
1127+ prevstate = thisstate;
1128+ }
1129+ }
1130+ else
1131+#endif
1132 if (prevline->length == 0
1133 || different (thisfield, prevfield, thislen, prevlen))
1134 {
1135@@ -322,17 +533,26 @@
1136 size_t prevlen;
1137 uintmax_t match_count = 0;
1138 bool first_delimiter = true;
1139+#if HAVE_MBRTOWC
1140+ mbstate_t prevstate;
1141+#endif
1142
1143 if (readlinebuffer (prevline, stdin) == 0)
1144 goto closefiles;
1145 prevfield = find_field (prevline);
1146 prevlen = prevline->length - 1 - (prevfield - prevline->buffer);
1147+#if HAVE_MBRTOWC
1148+ prevstate = prevline->state;
1149+#endif
1150
1151 while (!feof (stdin))
1152 {
1153 bool match;
1154 char *thisfield;
1155 size_t thislen;
1156+#if HAVE_MBRTOWC
1157+ mbstate_t thisstate;
1158+#endif
1159 if (readlinebuffer (thisline, stdin) == 0)
1160 {
1161 if (ferror (stdin))
1162@@ -341,6 +561,15 @@
1163 }
1164 thisfield = find_field (thisline);
1165 thislen = thisline->length - 1 - (thisfield - thisline->buffer);
1166+#if HAVE_MBRTOWC
1167+ if (MB_CUR_MAX > 1)
1168+ {
1169+ thisstate = thisline->state;
1170+ match = !different_multi (thisfield, prevfield,
1171+ thislen, prevlen, thisstate, prevstate);
1172+ }
1173+ else
1174+#endif
1175 match = !different (thisfield, prevfield, thislen, prevlen);
1176 match_count += match;
1177
1178@@ -373,6 +602,9 @@
1179 SWAP_LINES (prevline, thisline);
1180 prevfield = thisfield;
1181 prevlen = thislen;
1182+#if HAVE_MBRTOWC
1183+ prevstate = thisstate;
1184+#endif
1185 if (!match)
1186 match_count = 0;
1187 }
1188@@ -417,6 +649,19 @@
1189
1190 atexit (close_stdout);
1191
1192+#if HAVE_MBRTOWC
1193+ if (MB_CUR_MAX > 1)
1194+ {
1195+ find_field = find_field_multi;
1196+ }
1197+ else
1198+#endif
1199+ {
1200+ find_field = find_field_uni;
1201+ }
1202+
1203+
1204+
1205 skip_chars = 0;
1206 skip_fields = 0;
1207 check_chars = SIZE_MAX;
1208--- coreutils-6.8+/src/fold.c.i18n 2007-02-23 12:01:47.000000000 +0000
1209+++ coreutils-6.8+/src/fold.c 2007-03-01 15:08:24.000000000 +0000
1210@@ -23,11 +23,33 @@
1211 #include <getopt.h>
1212 #include <sys/types.h>
1213
1214+/* Get mbstate_t, mbrtowc(), wcwidth(). */
1215+#if HAVE_WCHAR_H
1216+# include <wchar.h>
1217+#endif
1218+
1219+/* Get iswprint(), iswblank(), wcwidth(). */
1220+#if HAVE_WCTYPE_H
1221+# include <wctype.h>
1222+#endif
1223+
1224 #include "system.h"
1225 #include "error.h"
1226 #include "quote.h"
1227 #include "xstrtol.h"
1228
1229+/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC
1230+ installation; work around this configuration error. */
1231+#if !defined MB_LEN_MAX || MB_LEN_MAX < 2
1232+# undef MB_LEN_MAX
1233+# define MB_LEN_MAX 16
1234+#endif
1235+
1236+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */
1237+#if HAVE_MBRTOWC && defined mbstate_t
1238+# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
1239+#endif
1240+
1241 #define TAB_WIDTH 8
1242
1243 /* The official name of this program (e.g., no `g' prefix). */
1244@@ -35,23 +57,44 @@
1245
1246 #define AUTHORS "David MacKenzie"
1247
1248+#define FATAL_ERROR(Message) \
1249+ do \
1250+ { \
1251+ error (0, 0, (Message)); \
1252+ usage (2); \
1253+ } \
1254+ while (0)
1255+
1256+enum operating_mode
1257+{
1258+ /* Fold texts by columns that are at the given positions. */
1259+ column_mode,
1260+
1261+ /* Fold texts by bytes that are at the given positions. */
1262+ byte_mode,
1263+
1264+ /* Fold texts by characters that are at the given positions. */
1265+ character_mode,
1266+};
1267+
1268 /* The name this program was run with. */
1269 char *program_name;
1270
1271+/* The argument shows current mode. (Default: column_mode) */
1272+static enum operating_mode operating_mode;
1273+
1274 /* If nonzero, try to break on whitespace. */
1275 static bool break_spaces;
1276
1277-/* If nonzero, count bytes, not column positions. */
1278-static bool count_bytes;
1279-
1280 /* If nonzero, at least one of the files we read was standard input. */
1281 static bool have_read_stdin;
1282
1283-static char const shortopts[] = "bsw:0::1::2::3::4::5::6::7::8::9::";
1284+static char const shortopts[] = "bcsw:0::1::2::3::4::5::6::7::8::9::";
1285
1286 static struct option const longopts[] =
1287 {
1288 {"bytes", no_argument, NULL, 'b'},
1289+ {"characters", no_argument, NULL, 'c'},
1290 {"spaces", no_argument, NULL, 's'},
1291 {"width", required_argument, NULL, 'w'},
1292 {GETOPT_HELP_OPTION_DECL},
1293@@ -81,6 +124,7 @@
1294 "), stdout);
1295 fputs (_("\
1296 -b, --bytes count bytes rather than columns\n\
1297+ -c, --characters count characters rather than columns\n\
1298 -s, --spaces break at spaces\n\
1299 -w, --width=WIDTH use WIDTH columns instead of 80\n\
1300 "), stdout);
1301@@ -98,7 +142,7 @@
1302 static size_t
1303 adjust_column (size_t column, char c)
1304 {
1305- if (!count_bytes)
1306+ if (operating_mode != byte_mode)
1307 {
1308 if (c == '\b')
1309 {
1310@@ -121,30 +165,14 @@
1311 to stdout, with maximum line length WIDTH.
1312 Return true if successful. */
1313
1314-static bool
1315-fold_file (char const *filename, size_t width)
1316+static void
1317+fold_text (FILE *istream, size_t width, int *saved_errno)
1318 {
1319- FILE *istream;
1320 int c;
1321 size_t column = 0; /* Screen column where next char will go. */
1322 size_t offset_out = 0; /* Index in `line_out' for next char. */
1323 static char *line_out = NULL;
1324 static size_t allocated_out = 0;
1325- int saved_errno;
1326-
1327- if (STREQ (filename, "-"))
1328- {
1329- istream = stdin;
1330- have_read_stdin = true;
1331- }
1332- else
1333- istream = fopen (filename, "r");
1334-
1335- if (istream == NULL)
1336- {
1337- error (0, errno, "%s", filename);
1338- return false;
1339- }
1340
1341 while ((c = getc (istream)) != EOF)
1342 {
1343@@ -172,6 +200,15 @@
1344 bool found_blank = false;
1345 size_t logical_end = offset_out;
1346
1347+ /* If LINE_OUT has no wide character,
1348+ put a new wide character in LINE_OUT
1349+ if column is bigger than width. */
1350+ if (offset_out == 0)
1351+ {
1352+ line_out[offset_out++] = c;
1353+ continue;
1354+ }
1355+
1356 /* Look for the last blank. */
1357 while (logical_end)
1358 {
1359@@ -218,11 +255,225 @@
1360 line_out[offset_out++] = c;
1361 }
1362
1363- saved_errno = errno;
1364+ *saved_errno = errno;
1365+
1366+ if (offset_out)
1367+ fwrite (line_out, sizeof (char), (size_t) offset_out, stdout);
1368+
1369+ free(line_out);
1370+}
1371+
1372+#if HAVE_MBRTOWC
1373+static void
1374+fold_multibyte_text (FILE *istream, size_t width, int *saved_errno)
1375+{
1376+ char buf[MB_LEN_MAX + BUFSIZ]; /* For spooling a read byte sequence. */
1377+ size_t buflen = 0; /* The length of the byte sequence in buf. */
1378+ char *bufpos; /* Next read position of BUF. */
1379+ wint_t wc; /* A gotten wide character. */
1380+ size_t mblength; /* The byte size of a multibyte character which shows
1381+ as same character as WC. */
1382+ mbstate_t state, state_bak; /* State of the stream. */
1383+ int convfail; /* 1, when conversion is failed. Otherwise 0. */
1384+
1385+ char *line_out = NULL;
1386+ size_t offset_out = 0; /* Index in `line_out' for next char. */
1387+ size_t allocated_out = 0;
1388+
1389+ int increment;
1390+ size_t column = 0;
1391+
1392+ size_t last_blank_pos;
1393+ size_t last_blank_column;
1394+ int is_blank_seen;
1395+ int last_blank_increment;
1396+ int is_bs_following_last_blank;
1397+ size_t bs_following_last_blank_num;
1398+ int is_cr_after_last_blank;
1399+
1400+#define CLEAR_FLAGS \
1401+ do \
1402+ { \
1403+ last_blank_pos = 0; \
1404+ last_blank_column = 0; \
1405+ is_blank_seen = 0; \
1406+ is_bs_following_last_blank = 0; \
1407+ bs_following_last_blank_num = 0; \
1408+ is_cr_after_last_blank = 0; \
1409+ } \
1410+ while (0)
1411+
1412+#define START_NEW_LINE \
1413+ do \
1414+ { \
1415+ putchar ('\n'); \
1416+ column = 0; \
1417+ offset_out = 0; \
1418+ CLEAR_FLAGS; \
1419+ } \
1420+ while (0)
1421+
1422+ CLEAR_FLAGS;
1423+ memset (&state, '\0', sizeof(mbstate_t));
1424+
1425+ for (;; bufpos += mblength, buflen -= mblength)
1426+ {
1427+ if (buflen < MB_LEN_MAX && !feof (istream) && !ferror (istream))
1428+ {
1429+ memmove (buf, bufpos, buflen);
1430+ buflen += fread (buf + buflen, sizeof(char), BUFSIZ, istream);
1431+ bufpos = buf;
1432+ }
1433+
1434+ if (buflen < 1)
1435+ break;
1436+
1437+ /* Get a wide character. */
1438+ convfail = 0;
1439+ state_bak = state;
1440+ mblength = mbrtowc ((wchar_t *)&wc, bufpos, buflen, &state);
1441+
1442+ switch (mblength)
1443+ {
1444+ case (size_t)-1:
1445+ case (size_t)-2:
1446+ convfail++;
1447+ state = state_bak;
1448+ /* Fall through. */
1449+
1450+ case 0:
1451+ mblength = 1;
1452+ break;
1453+ }
1454+
1455+rescan:
1456+ if (operating_mode == byte_mode) /* byte mode */
1457+ increment = mblength;
1458+ else if (operating_mode == character_mode) /* character mode */
1459+ increment = 1;
1460+ else /* column mode */
1461+ {
1462+ if (convfail)
1463+ increment = 1;
1464+ else
1465+ {
1466+ switch (wc)
1467+ {
1468+ case L'\n':
1469+ fwrite (line_out, sizeof(char), offset_out, stdout);
1470+ START_NEW_LINE;
1471+ continue;
1472+
1473+ case L'\b':
1474+ increment = (column > 0) ? -1 : 0;
1475+ break;
1476+
1477+ case L'\r':
1478+ increment = -1 * column;
1479+ break;
1480+
1481+ case L'\t':
1482+ increment = 8 - column % 8;
1483+ break;
1484+
1485+ default:
1486+ increment = wcwidth (wc);
1487+ increment = (increment < 0) ? 0 : increment;
1488+ }
1489+ }
1490+ }
1491+
1492+ if (column + increment > width && break_spaces && last_blank_pos)
1493+ {
1494+ fwrite (line_out, sizeof(char), last_blank_pos, stdout);
1495+ putchar ('\n');
1496+
1497+ offset_out = offset_out - last_blank_pos;
1498+ column = column - last_blank_column + ((is_cr_after_last_blank)
1499+ ? last_blank_increment : bs_following_last_blank_num);
1500+ memmove (line_out, line_out + last_blank_pos, offset_out);
1501+ CLEAR_FLAGS;
1502+ goto rescan;
1503+ }
1504+
1505+ if (column + increment > width && column != 0)
1506+ {
1507+ fwrite (line_out, sizeof(char), offset_out, stdout);
1508+ START_NEW_LINE;
1509+ goto rescan;
1510+ }
1511+
1512+ if (allocated_out < offset_out + mblength)
1513+ {
1514+ allocated_out += 1024;
1515+ line_out = xrealloc (line_out, allocated_out);
1516+ }
1517+
1518+ memcpy (line_out + offset_out, bufpos, mblength);
1519+ offset_out += mblength;
1520+ column += increment;
1521+
1522+ if (is_blank_seen && !convfail && wc == L'\r')
1523+ is_cr_after_last_blank = 1;
1524+
1525+ if (is_bs_following_last_blank && !convfail && wc == L'\b')
1526+ ++bs_following_last_blank_num;
1527+ else
1528+ is_bs_following_last_blank = 0;
1529+
1530+ if (break_spaces && !convfail && iswblank (wc))
1531+ {
1532+ last_blank_pos = offset_out;
1533+ last_blank_column = column;
1534+ is_blank_seen = 1;
1535+ last_blank_increment = increment;
1536+ is_bs_following_last_blank = 1;
1537+ bs_following_last_blank_num = 0;
1538+ is_cr_after_last_blank = 0;
1539+ }
1540+ }
1541+
1542+ *saved_errno = errno;
1543
1544 if (offset_out)
1545 fwrite (line_out, sizeof (char), (size_t) offset_out, stdout);
1546
1547+ free(line_out);
1548+}
1549+#endif
1550+
1551+/* Fold file FILENAME, or standard input if FILENAME is "-",
1552+ to stdout, with maximum line length WIDTH.
1553+ Return 0 if successful, 1 if an error occurs. */
1554+
1555+static bool
1556+fold_file (char *filename, size_t width)
1557+{
1558+ FILE *istream;
1559+ int saved_errno;
1560+
1561+ if (STREQ (filename, "-"))
1562+ {
1563+ istream = stdin;
1564+ have_read_stdin = 1;
1565+ }
1566+ else
1567+ istream = fopen (filename, "r");
1568+
1569+ if (istream == NULL)
1570+ {
1571+ error (0, errno, "%s", filename);
1572+ return 1;
1573+ }
1574+
1575+ /* Define how ISTREAM is being folded. */
1576+#if HAVE_MBRTOWC
1577+ if (MB_CUR_MAX > 1)
1578+ fold_multibyte_text (istream, width, &saved_errno);
1579+ else
1580+#endif
1581+ fold_text (istream, width, &saved_errno);
1582+
1583 if (ferror (istream))
1584 {
1585 error (0, saved_errno, "%s", filename);
1586@@ -255,7 +506,8 @@
1587
1588 atexit (close_stdout);
1589
1590- break_spaces = count_bytes = have_read_stdin = false;
1591+ operating_mode = column_mode;
1592+ break_spaces = have_read_stdin = false;
1593
1594 while ((optc = getopt_long (argc, argv, shortopts, longopts, NULL)) != -1)
1595 {
1596@@ -264,7 +516,15 @@
1597 switch (optc)
1598 {
1599 case 'b': /* Count bytes rather than columns. */
1600- count_bytes = true;
1601+ if (operating_mode != column_mode)
1602+ FATAL_ERROR (_("only one way of folding may be specified"));
1603+ operating_mode = byte_mode;
1604+ break;
1605+
1606+ case 'c':
1607+ if (operating_mode != column_mode)
1608+ FATAL_ERROR (_("only one way of folding may be specified"));
1609+ operating_mode = character_mode;
1610 break;
1611
1612 case 's': /* Break at word boundaries. */
1613--- coreutils-6.8+/src/sort.c.i18n 2007-02-24 11:23:23.000000000 +0000
1614+++ coreutils-6.8+/src/sort.c 2007-03-01 15:10:57.000000000 +0000
1615@@ -23,10 +23,19 @@
1616
1617 #include <config.h>
1618
1619+#include <assert.h>
1620 #include <getopt.h>
1621 #include <sys/types.h>
1622 #include <sys/wait.h>
1623 #include <signal.h>
1624+#if HAVE_WCHAR_H
1625+# include <wchar.h>
1626+#endif
1627+/* Get isw* functions. */
1628+#if HAVE_WCTYPE_H
1629+# include <wctype.h>
1630+#endif
1631+
1632 #include "system.h"
1633 #include "argmatch.h"
1634 #include "error.h"
1635@@ -116,14 +125,38 @@
1636 /* Thousands separator; if -1, then there isn't one. */
1637 static int thousands_sep;
1638
1639+static int force_general_numcompare = 0;
1640+
1641 /* Nonzero if the corresponding locales are hard. */
1642 static bool hard_LC_COLLATE;
1643-#if HAVE_NL_LANGINFO
1644+#if HAVE_LANGINFO_CODESET
1645 static bool hard_LC_TIME;
1646 #endif
1647
1648 #define NONZERO(x) ((x) != 0)
1649
1650+/* get a multibyte character's byte length. */
1651+#define GET_BYTELEN_OF_CHAR(LIM, PTR, MBLENGTH, STATE) \
1652+ do \
1653+ { \
1654+ wchar_t wc; \
1655+ mbstate_t state_bak; \
1656+ \
1657+ state_bak = STATE; \
1658+ mblength = mbrtowc (&wc, PTR, LIM - PTR, &STATE); \
1659+ \
1660+ switch (MBLENGTH) \
1661+ { \
1662+ case (size_t)-1: \
1663+ case (size_t)-2: \
1664+ STATE = state_bak; \
1665+ /* Fall through. */ \
1666+ case 0: \
1667+ MBLENGTH = 1; \
1668+ } \
1669+ } \
1670+ while (0)
1671+
1672 /* The kind of blanks for '-b' to skip in various options. */
1673 enum blanktype { bl_start, bl_end, bl_both };
1674
1675@@ -261,13 +294,11 @@
1676 they were read if all keys compare equal. */
1677 static bool stable;
1678
1679-/* If TAB has this value, blanks separate fields. */
1680-enum { TAB_DEFAULT = CHAR_MAX + 1 };
1681-
1682-/* Tab character separating fields. If TAB_DEFAULT, then fields are
1683+/* Tab character separating fields. If tab_length is 0, then fields are
1684 separated by the empty string between a non-blank character and a blank
1685 character. */
1686-static int tab = TAB_DEFAULT;
1687+static char tab[MB_LEN_MAX + 1];
1688+static size_t tab_length = 0;
1689
1690 /* Flag to remove consecutive duplicate lines from the output.
1691 Only the last of a sequence of equal lines will be output. */
1692@@ -639,6 +670,44 @@
1693 update_proc (pid);
1694 }
1695
1696+/* Function pointers. */
1697+static void
1698+(*inittables) (void);
1699+static char *
1700+(*begfield) (const struct line*, const struct keyfield *);
1701+static char *
1702+(*limfield) (const struct line*, const struct keyfield *);
1703+static int
1704+(*getmonth) (char const *, size_t);
1705+static int
1706+(*keycompare) (const struct line *, const struct line *);
1707+static int
1708+(*numcompare) (const char *, const char *);
1709+
1710+/* Test for white space multibyte character.
1711+ Set LENGTH the byte length of investigated multibyte character. */
1712+#if HAVE_MBRTOWC
1713+static int
1714+ismbblank (const char *str, size_t len, size_t *length)
1715+{
1716+ size_t mblength;
1717+ wchar_t wc;
1718+ mbstate_t state;
1719+
1720+ memset (&state, '\0', sizeof(mbstate_t));
1721+ mblength = mbrtowc (&wc, str, len, &state);
1722+
1723+ if (mblength == (size_t)-1 || mblength == (size_t)-2)
1724+ {
1725+ *length = 1;
1726+ return 0;
1727+ }
1728+
1729+ *length = (mblength < 1) ? 1 : mblength;
1730+ return iswblank (wc);
1731+}
1732+#endif
1733+
1734 /* Clean up any remaining temporary files. */
1735
1736 static void
1737@@ -978,7 +1047,7 @@
1738 free (node);
1739 }
1740
1741-#if HAVE_NL_LANGINFO
1742+#if HAVE_LANGINFO_CODESET
1743
1744 static int
1745 struct_month_cmp (const void *m1, const void *m2)
1746@@ -993,7 +1062,7 @@
1747 /* Initialize the character class tables. */
1748
1749 static void
1750-inittables (void)
1751+inittables_uni (void)
1752 {
1753 size_t i;
1754
1755@@ -1005,7 +1074,7 @@
1756 fold_toupper[i] = toupper (i);
1757 }
1758
1759-#if HAVE_NL_LANGINFO
1760+#if HAVE_LANGINFO_CODESET
1761 /* If we're not in the "C" locale, read different names for months. */
1762 if (hard_LC_TIME)
1763 {
1764@@ -1031,6 +1100,64 @@
1765 #endif
1766 }
1767
1768+#if HAVE_MBRTOWC
1769+static void
1770+inittables_mb (void)
1771+{
1772+ int i, j, k, l;
1773+ char *name, *s;
1774+ size_t s_len, mblength;
1775+ char mbc[MB_LEN_MAX];
1776+ wchar_t wc, pwc;
1777+ mbstate_t state_mb, state_wc;
1778+
1779+ for (i = 0; i < MONTHS_PER_YEAR; i++)
1780+ {
1781+ s = (char *) nl_langinfo (ABMON_1 + i);
1782+ s_len = strlen (s);
1783+ monthtab[i].name = name = (char *) xmalloc (s_len + 1);
1784+ monthtab[i].val = i + 1;
1785+
1786+ memset (&state_mb, '\0', sizeof (mbstate_t));
1787+ memset (&state_wc, '\0', sizeof (mbstate_t));
1788+
1789+ for (j = 0; j < s_len;)
1790+ {
1791+ if (!ismbblank (s + j, s_len - j, &mblength))
1792+ break;
1793+ j += mblength;
1794+ }
1795+
1796+ for (k = 0; j < s_len;)
1797+ {
1798+ mblength = mbrtowc (&wc, (s + j), (s_len - j), &state_mb);
1799+ assert (mblength != (size_t)-1 && mblength != (size_t)-2);
1800+ if (mblength == 0)
1801+ break;
1802+
1803+ pwc = towupper (wc);
1804+ if (pwc == wc)
1805+ {
1806+ memcpy (mbc, s + j, mblength);
1807+ j += mblength;
1808+ }
1809+ else
1810+ {
1811+ j += mblength;
1812+ mblength = wcrtomb (mbc, pwc, &state_wc);
1813+ assert (mblength != (size_t)0 && mblength != (size_t)-1);
1814+ }
1815+
1816+ for (l = 0; l < mblength; l++)
1817+ name[k++] = mbc[l];
1818+ }
1819+ name[k] = '\0';
1820+ }
1821+ qsort ((void *) monthtab, MONTHS_PER_YEAR,
1822+ sizeof (struct month), struct_month_cmp);
1823+}
1824+#endif
1825+
1826 /* Specify the amount of main memory to use when sorting. */
1827 static void
1828 specify_sort_size (char const *s)
1829@@ -1241,7 +1368,7 @@
1830 by KEY in LINE. */
1831
1832 static char *
1833-begfield (const struct line *line, const struct keyfield *key)
1834+begfield_uni (const struct line *line, const struct keyfield *key)
1835 {
1836 char *ptr = line->text, *lim = ptr + line->length - 1;
1837 size_t sword = key->sword;
1838@@ -1251,10 +1378,10 @@
1839 /* The leading field separator itself is included in a field when -t
1840 is absent. */
1841
1842- if (tab != TAB_DEFAULT)
1843+ if (tab_length)
1844 while (ptr < lim && sword--)
1845 {
1846- while (ptr < lim && *ptr != tab)
1847+ while (ptr < lim && *ptr != tab[0])
1848 ++ptr;
1849 if (ptr < lim)
1850 ++ptr;
1851@@ -1282,11 +1409,70 @@
1852 return ptr;
1853 }
1854
1855+#if HAVE_MBRTOWC
1856+static char *
1857+begfield_mb (const struct line *line, const struct keyfield *key)
1858+{
1859+ int i;
1860+ char *ptr = line->text, *lim = ptr + line->length - 1;
1861+ size_t sword = key->sword;
1862+ size_t schar = key->schar;
1863+ size_t mblength;
1864+ mbstate_t state;
1865+
1866+ memset (&state, '\0', sizeof(mbstate_t));
1867+
1868+ if (tab_length)
1869+ while (ptr < lim && sword--)
1870+ {
1871+ while (ptr < lim && memcmp (ptr, tab, tab_length) != 0)
1872+ {
1873+ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
1874+ ptr += mblength;
1875+ }
1876+ if (ptr < lim)
1877+ {
1878+ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
1879+ ptr += mblength;
1880+ }
1881+ }
1882+ else
1883+ while (ptr < lim && sword--)
1884+ {
1885+ while (ptr < lim && ismbblank (ptr, lim - ptr, &mblength))
1886+ ptr += mblength;
1887+ if (ptr < lim)
1888+ {
1889+ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
1890+ ptr += mblength;
1891+ }
1892+ while (ptr < lim && !ismbblank (ptr, lim - ptr, &mblength))
1893+ ptr += mblength;
1894+ }
1895+
1896+ if (key->skipsblanks)
1897+ while (ptr < lim && ismbblank (ptr, lim - ptr, &mblength))
1898+ ptr += mblength;
1899+
1900+ for (i = 0; i < schar; i++)
1901+ {
1902+ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
1903+
1904+ if (ptr + mblength > lim)
1905+ break;
1906+ else
1907+ ptr += mblength;
1908+ }
1909+
1910+ return ptr;
1911+}
1912+#endif
1913+
1914 /* Return the limit of (a pointer to the first character after) the field
1915 in LINE specified by KEY. */
1916
1917 static char *
1918-limfield (const struct line *line, const struct keyfield *key)
1919+limfield_uni (const struct line *line, const struct keyfield *key)
1920 {
1921 char *ptr = line->text, *lim = ptr + line->length - 1;
1922 size_t eword = key->eword, echar = key->echar;
1923@@ -1299,10 +1485,10 @@
1924 `beginning' is the first character following the delimiting TAB.
1925 Otherwise, leave PTR pointing at the first `blank' character after
1926 the preceding field. */
1927- if (tab != TAB_DEFAULT)
1928+ if (tab_length)
1929 while (ptr < lim && eword--)
1930 {
1931- while (ptr < lim && *ptr != tab)
1932+ while (ptr < lim && *ptr != tab[0])
1933 ++ptr;
1934 if (ptr < lim && (eword | echar))
1935 ++ptr;
1936@@ -1348,10 +1534,10 @@
1937 */
1938
1939 /* Make LIM point to the end of (one byte past) the current field. */
1940- if (tab != TAB_DEFAULT)
1941+ if (tab_length)
1942 {
1943 char *newlim;
1944- newlim = memchr (ptr, tab, lim - ptr);
1945+ newlim = memchr (ptr, tab[0], lim - ptr);
1946 if (newlim)
1947 lim = newlim;
1948 }
1949@@ -1384,6 +1570,107 @@
1950 return ptr;
1951 }
1952
1953+#if HAVE_MBRTOWC
1954+static char *
1955+limfield_mb (const struct line *line, const struct keyfield *key)
1956+{
1957+ char *ptr = line->text, *lim = ptr + line->length - 1;
1958+ size_t eword = key->eword, echar = key->echar;
1959+ int i;
1960+ size_t mblength;
1961+ mbstate_t state;
1962+
1963+ memset (&state, '\0', sizeof(mbstate_t));
1964+
1965+ if (tab_length)
1966+ while (ptr < lim && eword--)
1967+ {
1968+ while (ptr < lim && memcmp (ptr, tab, tab_length) != 0)
1969+ {
1970+ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
1971+ ptr += mblength;
1972+ }
1973+ if (ptr < lim && (eword | echar))
1974+ {
1975+ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
1976+ ptr += mblength;
1977+ }
1978+ }
1979+ else
1980+ while (ptr < lim && eword--)
1981+ {
1982+ while (ptr < lim && ismbblank (ptr, lim - ptr, &mblength))
1983+ ptr += mblength;
1984+ if (ptr < lim)
1985+ {
1986+ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
1987+ ptr += mblength;
1988+ }
1989+ while (ptr < lim && !ismbblank (ptr, lim - ptr, &mblength))
1990+ ptr += mblength;
1991+ }
1992+
1993+
1994+# ifdef POSIX_UNSPECIFIED
1995+ /* Make LIM point to the end of (one byte past) the current field. */
1996+ if (tab_length)
1997+ {
1998+ char *newlim, *p;
1999+
2000+ newlim = NULL;
2001+ for (p = ptr; p < lim;)
2002+ {
2003+ if (memcmp (p, tab, tab_length) == 0)
2004+ {
2005+ newlim = p;
2006+ break;
2007+ }
2008+
2009+ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
2010+ p += mblength;
2011+ }
2012+ }
2013+ else
2014+ {
2015+ char *newlim;
2016+ newlim = ptr;
2017+
2018+ while (newlim < lim && ismbblank (newlim, lim - newlim, &mblength))
2019+ newlim += mblength;
2020+ if (ptr < lim)
2021+ {
2022+ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
2023+ ptr += mblength;
2024+ }
2025+ while (newlim < lim && !ismbblank (newlim, lim - newlim, &mblength))
2026+ newlim += mblength;
2027+ lim = newlim;
2028+ }
2029+# endif
2030+
2031+ /* If we're skipping leading blanks, don't start counting characters
2032+ * until after skipping past any leading blanks. */
2033+ if (key->skipsblanks)
2034+ while (ptr < lim && ismbblank (ptr, lim - ptr, &mblength))
2035+ ptr += mblength;
2036+
2037+ memset (&state, '\0', sizeof(mbstate_t));
2038+
2039+ /* Advance PTR by ECHAR (if possible), but no further than LIM. */
2040+ for (i = 0; i < echar; i++)
2041+ {
2042+ GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
2043+
2044+ if (ptr + mblength > lim)
2045+ break;
2046+ else
2047+ ptr += mblength;
2048+ }
2049+
2050+ return ptr;
2051+}
2052+#endif
2053+
2054 /* Fill BUF reading from FP, moving buf->left bytes from the end
2055 of buf->buf to the beginning first. If EOF is reached and the
2056 file wasn't terminated by a newline, supply one. Set up BUF's line
2057@@ -1466,8 +1753,24 @@
2058 else
2059 {
2060 if (key->skipsblanks)
2061- while (blanks[to_uchar (*line_start)])
2062- line_start++;
2063+ {
2064+#if HAVE_MBRTOWC
2065+ if (MB_CUR_MAX > 1)
2066+ {
2067+ size_t mblength;
2068+ mbstate_t state;
2069+ memset (&state, '\0', sizeof(mbstate_t));
2070+ while (line_start < line->keylim &&
2071+ ismbblank (line_start,
2072+ line->keylim - line_start,
2073+ &mblength))
2074+ line_start += mblength;
2075+ }
2076+ else
2077+#endif
2078+ while (blanks[to_uchar (*line_start)])
2079+ line_start++;
2080+ }
2081 line->keybeg = line_start;
2082 }
2083 }
2084@@ -1500,7 +1803,7 @@
2085 hideously fast. */
2086
2087 static int
2088-numcompare (const char *a, const char *b)
2089+numcompare_uni (const char *a, const char *b)
2090 {
2091 while (blanks[to_uchar (*a)])
2092 a++;
2093@@ -1510,6 +1813,25 @@
2094 return strnumcmp (a, b, decimal_point, thousands_sep);
2095 }
2096
2097+#if HAVE_MBRTOWC
2098+static int
2099+numcompare_mb (const char *a, const char *b)
2100+{
2101+ size_t mblength, len;
2102+ len = strlen (a); /* okay for UTF-8 */
2103+ while (*a && ismbblank (a, len > MB_CUR_MAX ? MB_CUR_MAX : len, &mblength))
2104+ {
2105+ a += mblength;
2106+ len -= mblength;
2107+ }
2108+ len = strlen (b); /* okay for UTF-8 */
2109+ while (*b && ismbblank (b, len > MB_CUR_MAX ? MB_CUR_MAX : len, &mblength))
2110+ b += mblength;
2111+
2112+ return strnumcmp (a, b, decimal_point, thousands_sep);
2113+}
2114+#endif /* HAV_EMBRTOWC */
2115+
2116 static int
2117 general_numcompare (const char *sa, const char *sb)
2118 {
2119@@ -1543,7 +1865,7 @@
2120 Return 0 if the name in S is not recognized. */
2121
2122 static int
2123-getmonth (char const *month, size_t len)
2124+getmonth_uni (char const *month, size_t len)
2125 {
2126 size_t lo = 0;
2127 size_t hi = MONTHS_PER_YEAR;
2128@@ -1698,11 +2020,79 @@
2129 return diff;
2130 }
2131
2132+#if HAVE_MBRTOWC
2133+static int
2134+getmonth_mb (const char *s, size_t len)
2135+{
2136+ char *month;
2137+ register size_t i;
2138+ register int lo = 0, hi = MONTHS_PER_YEAR, result;
2139+ char *tmp;
2140+ size_t wclength, mblength;
2141+ const char **pp;
2142+ const wchar_t **wpp;
2143+ wchar_t *month_wcs;
2144+ mbstate_t state;
2145+
2146+ while (len > 0 && ismbblank (s, len, &mblength))
2147+ {
2148+ s += mblength;
2149+ len -= mblength;
2150+ }
2151+
2152+ if (len == 0)
2153+ return 0;
2154+
2155+ month = (char *) alloca (len + 1);
2156+
2157+ tmp = (char *) alloca (len + 1);
2158+ memcpy (tmp, s, len);
2159+ tmp[len] = '\0';
2160+ pp = (const char **)&tmp;
2161+ month_wcs = (wchar_t *) alloca ((len + 1) * sizeof (wchar_t));
2162+ memset (&state, '\0', sizeof(mbstate_t));
2163+
2164+ wclength = mbsrtowcs (month_wcs, pp, len + 1, &state);
2165+ assert (wclength != (size_t)-1 && *pp == NULL);
2166+
2167+ for (i = 0; i < wclength; i++)
2168+ {
2169+ month_wcs[i] = towupper(month_wcs[i]);
2170+ if (iswblank (month_wcs[i]))
2171+ {
2172+ month_wcs[i] = L'\0';
2173+ break;
2174+ }
2175+ }
2176+
2177+ wpp = (const wchar_t **)&month_wcs;
2178+
2179+ mblength = wcsrtombs (month, wpp, len + 1, &state);
2180+ assert (mblength != (-1) && *wpp == NULL);
2181+
2182+ do
2183+ {
2184+ int ix = (lo + hi) / 2;
2185+
2186+ if (strncmp (month, monthtab[ix].name, strlen (monthtab[ix].name)) < 0)
2187+ hi = ix;
2188+ else
2189+ lo = ix;
2190+ }
2191+ while (hi - lo > 1);
2192+
2193+ result = (!strncmp (month, monthtab[lo].name, strlen (monthtab[lo].name))
2194+ ? monthtab[lo].val : 0);
2195+
2196+ return result;
2197+}
2198+#endif
2199+
2200 /* Compare two lines A and B trying every key in sequence until there
2201 are no more keys or a difference is found. */
2202
2203 static int
2204-keycompare (const struct line *a, const struct line *b)
2205+keycompare_uni (const struct line *a, const struct line *b)
2206 {
2207 struct keyfield const *key = keylist;
2208
2209@@ -1875,6 +2265,179 @@
2210 return key->reverse ? -diff : diff;
2211 }
2212
2213+#if HAVE_MBRTOWC
2214+static int
2215+keycompare_mb (const struct line *a, const struct line *b)
2216+{
2217+ struct keyfield *key = keylist;
2218+
2219+ /* For the first iteration only, the key positions have been
2220+ precomputed for us. */
2221+ char *texta = a->keybeg;
2222+ char *textb = b->keybeg;
2223+ char *lima = a->keylim;
2224+ char *limb = b->keylim;
2225+
2226+ size_t mblength_a, mblength_b;
2227+ wchar_t wc_a, wc_b;
2228+ mbstate_t state_a, state_b;
2229+
2230+ int diff;
2231+
2232+ memset (&state_a, '\0', sizeof(mbstate_t));
2233+ memset (&state_b, '\0', sizeof(mbstate_t));
2234+
2235+ for (;;)
2236+ {
2237+ unsigned char *translate = (unsigned char *) key->translate;
2238+ bool const *ignore = key->ignore;
2239+
2240+ /* Find the lengths. */
2241+ size_t lena = lima <= texta ? 0 : lima - texta;
2242+ size_t lenb = limb <= textb ? 0 : limb - textb;
2243+
2244+ /* Actually compare the fields. */
2245+ if (key->random)
2246+ diff = compare_random (texta, lena, textb, lenb);
2247+ else if (key->numeric | key->general_numeric)
2248+ {
2249+ char savea = *lima, saveb = *limb;
2250+
2251+ *lima = *limb = '\0';
2252+ if (force_general_numcompare)
2253+ diff = general_numcompare (texta, textb);
2254+ else
2255+ diff = ((key->numeric ? numcompare : general_numcompare)
2256+ (texta, textb));
2257+ *lima = savea, *limb = saveb;
2258+ }
2259+ else if (key->month)
2260+ diff = getmonth (texta, lena) - getmonth (textb, lenb);
2261+ else
2262+ {
2263+ if (ignore || translate)
2264+ {
2265+ char *copy_a = (char *) alloca (lena + 1 + lenb + 1);
2266+ char *copy_b = copy_a + lena + 1;
2267+ size_t new_len_a, new_len_b;
2268+ size_t i, j;
2269+
2270+ /* Ignore and/or translate chars before comparing. */
2271+# define IGNORE_CHARS(NEW_LEN, LEN, TEXT, COPY, WC, MBLENGTH, STATE) \
2272+ do \
2273+ { \
2274+ wchar_t uwc; \
2275+ char mbc[MB_LEN_MAX]; \
2276+ mbstate_t state_wc; \
2277+ \
2278+ for (NEW_LEN = i = 0; i < LEN;) \
2279+ { \
2280+ mbstate_t state_bak; \
2281+ \
2282+ state_bak = STATE; \
2283+ MBLENGTH = mbrtowc (&WC, TEXT + i, LEN - i, &STATE); \
2284+ \
2285+ if (MBLENGTH == (size_t)-2 || MBLENGTH == (size_t)-1 \
2286+ || MBLENGTH == 0) \
2287+ { \
2288+ if (MBLENGTH == (size_t)-2 || MBLENGTH == (size_t)-1) \
2289+ STATE = state_bak; \
2290+ if (!ignore) \
2291+ COPY[NEW_LEN++] = TEXT[i++]; \
2292+ continue; \
2293+ } \
2294+ \
2295+ if (ignore) \
2296+ { \
2297+ if ((ignore == nonprinting && !iswprint (WC)) \
2298+ || (ignore == nondictionary \
2299+ && !iswalnum (WC) && !iswblank (WC))) \
2300+ { \
2301+ i += MBLENGTH; \
2302+ continue; \
2303+ } \
2304+ } \
2305+ \
2306+ if (translate) \
2307+ { \
2308+ \
2309+ uwc = towupper(WC); \
2310+ if (WC == uwc) \
2311+ { \
2312+ memcpy (mbc, TEXT + i, MBLENGTH); \
2313+ i += MBLENGTH; \
2314+ } \
2315+ else \
2316+ { \
2317+ i += MBLENGTH; \
2318+ WC = uwc; \
2319+ memset (&state_wc, '\0', sizeof (mbstate_t)); \
2320+ \
2321+ MBLENGTH = wcrtomb (mbc, WC, &state_wc); \
2322+ assert (MBLENGTH != (size_t)-1 && MBLENGTH != 0); \
2323+ } \
2324+ \
2325+ for (j = 0; j < MBLENGTH; j++) \
2326+ COPY[NEW_LEN++] = mbc[j]; \
2327+ } \
2328+ else \
2329+ for (j = 0; j < MBLENGTH; j++) \
2330+ COPY[NEW_LEN++] = TEXT[i++]; \
2331+ } \
2332+ COPY[NEW_LEN] = '\0'; \
2333+ } \
2334+ while (0)
2335+ IGNORE_CHARS (new_len_a, lena, texta, copy_a,
2336+ wc_a, mblength_a, state_a);
2337+ IGNORE_CHARS (new_len_b, lenb, textb, copy_b,
2338+ wc_b, mblength_b, state_b);
2339+ diff = xmemcoll (copy_a, new_len_a, copy_b, new_len_b);
2340+ }
2341+ else if (lena == 0)
2342+ diff = - NONZERO (lenb);
2343+ else if (lenb == 0)
2344+ goto greater;
2345+ else
2346+ diff = xmemcoll (texta, lena, textb, lenb);
2347+ }
2348+
2349+ if (diff)
2350+ goto not_equal;
2351+
2352+ key = key->next;
2353+ if (! key)
2354+ break;
2355+
2356+ /* Find the beginning and limit of the next field. */
2357+ if (key->eword != -1)
2358+ lima = limfield (a, key), limb = limfield (b, key);
2359+ else
2360+ lima = a->text + a->length - 1, limb = b->text + b->length - 1;
2361+
2362+ if (key->sword != -1)
2363+ texta = begfield (a, key), textb = begfield (b, key);
2364+ else
2365+ {
2366+ texta = a->text, textb = b->text;
2367+ if (key->skipsblanks)
2368+ {
2369+ while (texta < lima && ismbblank (texta, lima - texta, &mblength_a))
2370+ texta += mblength_a;
2371+ while (textb < limb && ismbblank (textb, limb - textb, &mblength_b))
2372+ textb += mblength_b;
2373+ }
2374+ }
2375+ }
2376+
2377+ return 0;
2378+
2379+greater:
2380+ diff = 1;
2381+not_equal:
2382+ return key->reverse ? -diff : diff;
2383+}
2384+#endif
2385+
2386 /* Compare two lines A and B, returning negative, zero, or positive
2387 depending on whether A compares less than, equal to, or greater than B. */
2388
2389@@ -2744,7 +3305,7 @@
2390 initialize_exit_failure (SORT_FAILURE);
2391
2392 hard_LC_COLLATE = hard_locale (LC_COLLATE);
2393-#if HAVE_NL_LANGINFO
2394+#if HAVE_LANGINFO_CODESET
2395 hard_LC_TIME = hard_locale (LC_TIME);
2396 #endif
2397
2398@@ -2765,6 +3326,27 @@
2399 thousands_sep = -1;
2400 }
2401
2402+#if HAVE_MBRTOWC
2403+ if (MB_CUR_MAX > 1)
2404+ {
2405+ inittables = inittables_mb;
2406+ begfield = begfield_mb;
2407+ limfield = limfield_mb;
2408+ getmonth = getmonth_mb;
2409+ keycompare = keycompare_mb;
2410+ numcompare = numcompare_mb;
2411+ }
2412+ else
2413+#endif
2414+ {
2415+ inittables = inittables_uni;
2416+ begfield = begfield_uni;
2417+ limfield = limfield_uni;
2418+ getmonth = getmonth_uni;
2419+ keycompare = keycompare_uni;
2420+ numcompare = numcompare_uni;
2421+ }
2422+
2423 have_read_stdin = false;
2424 inittables ();
2425
2426@@ -3015,13 +3597,35 @@
2427
2428 case 't':
2429 {
2430- char newtab = optarg[0];
2431- if (! newtab)
2432+ char newtab[MB_LEN_MAX + 1];
2433+ size_t newtab_length = 1;
2434+ strncpy (newtab, optarg, MB_LEN_MAX);
2435+ if (! newtab[0])
2436 error (SORT_FAILURE, 0, _("empty tab"));
2437- if (optarg[1])
2438+#if HAVE_MBRTOWC
2439+ if (MB_CUR_MAX > 1)
2440+ {
2441+ wchar_t wc;
2442+ mbstate_t state;
2443+ size_t i;
2444+
2445+ memset (&state, '\0', sizeof (mbstate_t));
2446+ newtab_length = mbrtowc (&wc, newtab, strnlen (newtab,
2447+ MB_LEN_MAX),
2448+ &state);
2449+ switch (newtab_length)
2450+ {
2451+ case (size_t) -1:
2452+ case (size_t) -2:
2453+ case 0:
2454+ newtab_length = 1;
2455+ }
2456+ }
2457+#endif
2458+ if (newtab_length == 1 && optarg[1])
2459 {
2460 if (STREQ (optarg, "\\0"))
2461- newtab = '\0';
2462+ newtab[0] = '\0';
2463 else
2464 {
2465 /* Provoke with `sort -txx'. Complain about
2466@@ -3032,9 +3636,12 @@
2467 quote (optarg));
2468 }
2469 }
2470- if (tab != TAB_DEFAULT && tab != newtab)
2471+ if (tab_length
2472+ && (tab_length != newtab_length
2473+ || memcmp (tab, newtab, tab_length) != 0))
2474 error (SORT_FAILURE, 0, _("incompatible tabs"));
2475- tab = newtab;
2476+ memcpy (tab, newtab, newtab_length);
2477+ tab_length = newtab_length;
2478 }
2479 break;
2480
2481--- coreutils-6.8+/src/unexpand.c.i18n 2007-01-14 15:41:28.000000000 +0000
2482+++ coreutils-6.8+/src/unexpand.c 2007-03-01 15:08:24.000000000 +0000
2483@@ -39,11 +39,28 @@
2484 #include <stdio.h>
2485 #include <getopt.h>
2486 #include <sys/types.h>
2487+
2488+/* Get mbstate_t, mbrtowc(), wcwidth(). */
2489+#if HAVE_WCHAR_H
2490+# include <wchar.h>
2491+#endif
2492+
2493 #include "system.h"
2494 #include "error.h"
2495 #include "quote.h"
2496 #include "xstrndup.h"
2497
2498+/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC
2499+ installation; work around this configuration error. */
2500+#if !defined MB_LEN_MAX || MB_LEN_MAX < 2
2501+# define MB_LEN_MAX 16
2502+#endif
2503+
2504+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */
2505+#if HAVE_MBRTOWC && defined mbstate_t
2506+# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
2507+#endif
2508+
2509 /* The official name of this program (e.g., no `g' prefix). */
2510 #define PROGRAM_NAME "unexpand"
2511
2512@@ -110,6 +127,208 @@
2513 {NULL, 0, NULL, 0}
2514 };
2515
2516+static FILE *next_file (FILE *fp);
2517+
2518+#if HAVE_MBRTOWC
2519+static void
2520+unexpand_multibyte (void)
2521+{
2522+ FILE *fp; /* Input stream. */
2523+ mbstate_t i_state; /* Current shift state of the input stream. */
2524+ mbstate_t i_state_bak; /* Back up the I_STATE. */
2525+ mbstate_t o_state; /* Current shift state of the output stream. */
2526+ char buf[MB_LEN_MAX + BUFSIZ]; /* For spooling a read byte sequence. */
2527+ char *bufpos; /* Next read position of BUF. */
2528+ size_t buflen = 0; /* The length of the byte sequence in buf. */
2529+ wint_t wc; /* A gotten wide character. */
2530+ size_t mblength; /* The byte size of a multibyte character
2531+ which shows as same character as WC. */
2532+
2533+ /* Index in `tab_list' of next tabstop: */
2534+ int tab_index = 0; /* For calculating width of pending tabs. */
2535+ int print_tab_index = 0; /* For printing as many tabs as possible. */
2536+ unsigned int column = 0; /* Column on screen of next char. */
2537+ int next_tab_column; /* Column the next tab stop is on. */
2538+ int convert = 1; /* If nonzero, perform translations. */
2539+ unsigned int pending = 0; /* Pending columns of blanks. */
2540+
2541+ fp = next_file ((FILE *) NULL);
2542+ if (fp == NULL)
2543+ return;
2544+
2545+ memset (&o_state, '\0', sizeof(mbstate_t));
2546+ memset (&i_state, '\0', sizeof(mbstate_t));
2547+
2548+ for (;;)
2549+ {
2550+ if (buflen < MB_LEN_MAX && !feof(fp) && !ferror(fp))
2551+ {
2552+ memmove (buf, bufpos, buflen);
2553+ buflen += fread (buf + buflen, sizeof(char), BUFSIZ, fp);
2554+ bufpos = buf;
2555+ }
2556+
2557+ /* Get a wide character. */
2558+ if (buflen < 1)
2559+ {
2560+ mblength = 1;
2561+ wc = WEOF;
2562+ }
2563+ else
2564+ {
2565+ i_state_bak = i_state;
2566+ mblength = mbrtowc ((wchar_t *)&wc, bufpos, buflen, &i_state);
2567+ }
2568+
2569+ if (mblength == (size_t)-1 || mblength == (size_t)-2)
2570+ {
2571+ i_state = i_state_bak;
2572+ wc = L'\0';
2573+ }
2574+
2575+ if (wc == L' ' && convert && column < INT_MAX)
2576+ {
2577+ ++pending;
2578+ ++column;
2579+ }
2580+ else if (wc == L'\t' && convert)
2581+ {
2582+ if (tab_size == 0)
2583+ {
2584+ /* Do not let tab_index == first_free_tab;
2585+ stop when it is 1 less. */
2586+ while (tab_index < first_free_tab - 1
2587+ && column >= tab_list[tab_index])
2588+ tab_index++;
2589+ next_tab_column = tab_list[tab_index];
2590+ if (tab_index < first_free_tab - 1)
2591+ tab_index++;
2592+ if (column >= next_tab_column)
2593+ {
2594+ convert = 0; /* Ran out of tab stops. */
2595+ goto flush_pend_mb;
2596+ }
2597+ }
2598+ else
2599+ {
2600+ next_tab_column = column + tab_size - column % tab_size;
2601+ }
2602+ pending += next_tab_column - column;
2603+ column = next_tab_column;
2604+ }
2605+ else
2606+ {
2607+flush_pend_mb:
2608+ /* Flush pending spaces. Print as many tabs as possible,
2609+ then print the rest as spaces. */
2610+ if (pending == 1)
2611+ {
2612+ putchar (' ');
2613+ pending = 0;
2614+ }
2615+ column -= pending;
2616+ while (pending > 0)
2617+ {
2618+ if (tab_size == 0)
2619+ {
2620+ /* Do not let print_tab_index == first_free_tab;
2621+ stop when it is 1 less. */
2622+ while (print_tab_index < first_free_tab - 1
2623+ && column >= tab_list[print_tab_index])
2624+ print_tab_index++;
2625+ next_tab_column = tab_list[print_tab_index];
2626+ if (print_tab_index < first_free_tab - 1)
2627+ print_tab_index++;
2628+ }
2629+ else
2630+ {
2631+ next_tab_column =
2632+ column + tab_size - column % tab_size;
2633+ }
2634+ if (next_tab_column - column <= pending)
2635+ {
2636+ putchar ('\t');
2637+ pending -= next_tab_column - column;
2638+ column = next_tab_column;
2639+ }
2640+ else
2641+ {
2642+ --print_tab_index;
2643+ column += pending;
2644+ while (pending != 0)
2645+ {
2646+ putchar (' ');
2647+ pending--;
2648+ }
2649+ }
2650+ }
2651+
2652+ if (wc == WEOF)
2653+ {
2654+ fp = next_file (fp);
2655+ if (fp == NULL)
2656+ break; /* No more files. */
2657+ else
2658+ {
2659+ memset (&i_state, '\0', sizeof(mbstate_t));
2660+ continue;
2661+ }
2662+ }
2663+
2664+ if (mblength == (size_t)-1 || mblength == (size_t)-2)
2665+ {
2666+ if (convert)
2667+ {
2668+ ++column;
2669+ if (convert_entire_line == 0)
2670+ convert = 0;
2671+ }
2672+ mblength = 1;
2673+ putchar (buf[0]);
2674+ }
2675+ else if (mblength == 0)
2676+ {
2677+ if (convert && convert_entire_line == 0)
2678+ convert = 0;
2679+ mblength = 1;
2680+ putchar ('\0');
2681+ }
2682+ else
2683+ {
2684+ if (convert)
2685+ {
2686+ if (wc == L'\b')
2687+ {
2688+ if (column > 0)
2689+ --column;
2690+ }
2691+ else
2692+ {
2693+ int width; /* The width of WC. */
2694+
2695+ width = wcwidth (wc);
2696+ column += (width > 0) ? width : 0;
2697+ if (convert_entire_line == 0)
2698+ convert = 0;
2699+ }
2700+ }
2701+
2702+ if (wc == L'\n')
2703+ {
2704+ tab_index = print_tab_index = 0;
2705+ column = pending = 0;
2706+ convert = 1;
2707+ }
2708+ fwrite (bufpos, sizeof(char), mblength, stdout);
2709+ }
2710+ }
2711+ buflen -= mblength;
2712+ bufpos += mblength;
2713+ }
2714+}
2715+#endif
2716+
2717+
2718 void
2719 usage (int status)
2720 {
2721@@ -531,7 +750,12 @@
2722
2723 file_list = (optind < argc ? &argv[optind] : stdin_argv);
2724
2725- unexpand ();
2726+#if HAVE_MBRTOWC
2727+ if (MB_CUR_MAX > 1)
2728+ unexpand_multibyte ();
2729+ else
2730+#endif
2731+ unexpand ();
2732
2733 if (have_read_stdin && fclose (stdin) != 0)
2734 error (EXIT_FAILURE, errno, "-");
2735--- coreutils-6.8+/src/pr.c.i18n 2007-01-14 15:41:28.000000000 +0000
2736+++ coreutils-6.8+/src/pr.c 2007-03-01 15:08:24.000000000 +0000
2737@@ -313,6 +313,32 @@
2738
2739 #include <getopt.h>
2740 #include <sys/types.h>
2741+
2742+/* Get MB_LEN_MAX. */
2743+#include <limits.h>
2744+/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC
2745+ installation; work around this configuration error. */
2746+#if !defined MB_LEN_MAX || MB_LEN_MAX == 1
2747+# define MB_LEN_MAX 16
2748+#endif
2749+
2750+/* Get MB_CUR_MAX. */
2751+#include <stdlib.h>
2752+
2753+/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
2754+/* Get mbstate_t, mbrtowc(), wcwidth(). */
2755+#if HAVE_WCHAR_H
2756+# include <wchar.h>
2757+#endif
2758+
2759+/* Get iswprint(). -- for wcwidth(). */
2760+#if HAVE_WCTYPE_H
2761+# include <wctype.h>
2762+#endif
2763+#if !defined iswprint && !HAVE_ISWPRINT
2764+# define iswprint(wc) 1
2765+#endif
2766+
2767 #include "system.h"
2768 #include "error.h"
2769 #include "hard-locale.h"
2770@@ -324,6 +350,18 @@
2771 #include "strftime.h"
2772 #include "xstrtol.h"
2773
2774+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */
2775+#if HAVE_MBRTOWC && defined mbstate_t
2776+# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
2777+#endif
2778+
2779+#ifndef HAVE_DECL_WCWIDTH
2780+"this configure-time declaration test was not run"
2781+#endif
2782+#if !HAVE_DECL_WCWIDTH
2783+extern int wcwidth ();
2784+#endif
2785+
2786 /* The official name of this program (e.g., no `g' prefix). */
2787 #define PROGRAM_NAME "pr"
2788
2789@@ -416,7 +454,20 @@
2790
2791 #define NULLCOL (COLUMN *)0
2792
2793-static int char_to_clump (char c);
2794+/* Funtion pointers to switch functions for single byte locale or for
2795+ multibyte locale. If multibyte functions do not exist in your sysytem,
2796+ these pointers always point the function for single byte locale. */
2797+static void (*print_char) (char c);
2798+static int (*char_to_clump) (char c);
2799+
2800+/* Functions for single byte locale. */
2801+static void print_char_single (char c);
2802+static int char_to_clump_single (char c);
2803+
2804+/* Functions for multibyte locale. */
2805+static void print_char_multi (char c);
2806+static int char_to_clump_multi (char c);
2807+
2808 static bool read_line (COLUMN *p);
2809 static bool print_page (void);
2810 static bool print_stored (COLUMN *p);
2811@@ -426,6 +477,7 @@
2812 static void pad_across_to (int position);
2813 static void add_line_number (COLUMN *p);
2814 static void getoptarg (char *arg, char switch_char, char *character,
2815+ int *character_length, int *character_width,
2816 int *number);
2817 void usage (int status);
2818 static void print_files (int number_of_files, char **av);
2819@@ -440,7 +492,6 @@
2820 static void pad_down (int lines);
2821 static void read_rest_of_line (COLUMN *p);
2822 static void skip_read (COLUMN *p, int column_number);
2823-static void print_char (char c);
2824 static void cleanup (void);
2825 static void print_sep_string (void);
2826 static void separator_string (const char *optarg_S);
2827@@ -455,7 +506,7 @@
2828 we store the leftmost columns contiguously in buff.
2829 To print a line from buff, get the index of the first character
2830 from line_vector[i], and print up to line_vector[i + 1]. */
2831-static char *buff;
2832+static unsigned char *buff;
2833
2834 /* Index of the position in buff where the next character
2835 will be stored. */
2836@@ -559,7 +610,7 @@
2837 static bool untabify_input = false;
2838
2839 /* (-e) The input tab character. */
2840-static char input_tab_char = '\t';
2841+static char input_tab_char[MB_LEN_MAX] = "\t";
2842
2843 /* (-e) Tabstops are at chars_per_tab, 2*chars_per_tab, 3*chars_per_tab, ...
2844 where the leftmost column is 1. */
2845@@ -569,7 +620,10 @@
2846 static bool tabify_output = false;
2847
2848 /* (-i) The output tab character. */
2849-static char output_tab_char = '\t';
2850+static char output_tab_char[MB_LEN_MAX] = "\t";
2851+
2852+/* (-i) The byte length of output tab character. */
2853+static int output_tab_char_length = 1;
2854
2855 /* (-i) The width of the output tab. */
2856 static int chars_per_output_tab = 8;
2857@@ -643,7 +697,13 @@
2858 static bool numbered_lines = false;
2859
2860 /* (-n) Character which follows each line number. */
2861-static char number_separator = '\t';
2862+static char number_separator[MB_LEN_MAX] = "\t";
2863+
2864+/* (-n) The byte length of the character which follows each line number. */
2865+static int number_separator_length = 1;
2866+
2867+/* (-n) The character width of the character which follows each line number. */
2868+static int number_separator_width = 0;
2869
2870 /* (-n) line counting starts with 1st line of input file (not with 1st
2871 line of 1st page printed). */
2872@@ -696,6 +756,7 @@
2873 -a|COLUMN|-m is a `space' and with the -J option a `tab'. */
2874 static char *col_sep_string = "";
2875 static int col_sep_length = 0;
2876+static int col_sep_width = 0;
2877 static char *column_separator = " ";
2878 static char *line_separator = "\t";
2879
2880@@ -852,6 +913,13 @@
2881 col_sep_length = (int) strlen (optarg_S);
2882 col_sep_string = xmalloc (col_sep_length + 1);
2883 strcpy (col_sep_string, optarg_S);
2884+
2885+#if HAVE_MBRTOWC
2886+ if (MB_CUR_MAX > 1)
2887+ col_sep_width = mbswidth (col_sep_string, 0);
2888+ else
2889+#endif
2890+ col_sep_width = col_sep_length;
2891 }
2892
2893 int
2894@@ -877,6 +945,21 @@
2895
2896 atexit (close_stdout);
2897
2898+/* Define which functions are used, the ones for single byte locale or the ones
2899+ for multibyte locale. */
2900+#if HAVE_MBRTOWC
2901+ if (MB_CUR_MAX > 1)
2902+ {
2903+ print_char = print_char_multi;
2904+ char_to_clump = char_to_clump_multi;
2905+ }
2906+ else
2907+#endif
2908+ {
2909+ print_char = print_char_single;
2910+ char_to_clump = char_to_clump_single;
2911+ }
2912+
2913 n_files = 0;
2914 file_names = (argc > 1
2915 ? xmalloc ((argc - 1) * sizeof (char *))
2916@@ -949,8 +1032,12 @@
2917 break;
2918 case 'e':
2919 if (optarg)
2920- getoptarg (optarg, 'e', &input_tab_char,
2921- &chars_per_input_tab);
2922+ {
2923+ int dummy_length, dummy_width;
2924+
2925+ getoptarg (optarg, 'e', input_tab_char, &dummy_length,
2926+ &dummy_width, &chars_per_input_tab);
2927+ }
2928 /* Could check tab width > 0. */
2929 untabify_input = true;
2930 break;
2931@@ -963,8 +1050,12 @@
2932 break;
2933 case 'i':
2934 if (optarg)
2935- getoptarg (optarg, 'i', &output_tab_char,
2936- &chars_per_output_tab);
2937+ {
2938+ int dummy_width;
2939+
2940+ getoptarg (optarg, 'i', output_tab_char, &output_tab_char_length,
2941+ &dummy_width, &chars_per_output_tab);
2942+ }
2943 /* Could check tab width > 0. */
2944 tabify_output = true;
2945 break;
2946@@ -991,8 +1082,8 @@
2947 case 'n':
2948 numbered_lines = true;
2949 if (optarg)
2950- getoptarg (optarg, 'n', &number_separator,
2951- &chars_per_number);
2952+ getoptarg (optarg, 'n', number_separator, &number_separator_length,
2953+ &number_separator_width, &chars_per_number);
2954 break;
2955 case 'N':
2956 skip_count = false;
2957@@ -1031,7 +1122,7 @@
2958 old_s = false;
2959 /* Reset an additional input of -s, -S dominates -s */
2960 col_sep_string = "";
2961- col_sep_length = 0;
2962+ col_sep_length = col_sep_width = 0;
2963 use_col_separator = true;
2964 if (optarg)
2965 separator_string (optarg);
2966@@ -1188,10 +1279,45 @@
2967 a number. */
2968
2969 static void
2970-getoptarg (char *arg, char switch_char, char *character, int *number)
2971+getoptarg (char *arg, char switch_char, char *character, int *character_length,
2972+ int *character_width, int *number)
2973 {
2974 if (!ISDIGIT (*arg))
2975- *character = *arg++;
2976+ {
2977+#ifdef HAVE_MBRTOWC
2978+ if (MB_CUR_MAX > 1) /* for multibyte locale. */
2979+ {
2980+ wchar_t wc;
2981+ size_t mblength;
2982+ int width;
2983+ mbstate_t state = {'\0'};
2984+
2985+ mblength = mbrtowc (&wc, arg, strnlen(arg, MB_LEN_MAX), &state);
2986+
2987+ if (mblength == (size_t)-1 || mblength == (size_t)-2)
2988+ {
2989+ *character_length = 1;
2990+ *character_width = 1;
2991+ }
2992+ else
2993+ {
2994+ *character_length = (mblength < 1) ? 1 : mblength;
2995+ width = wcwidth (wc);
2996+ *character_width = (width < 0) ? 0 : width;
2997+ }
2998+
2999+ strncpy (character, arg, *character_length);
3000+ arg += *character_length;
3001+ }
3002+ else /* for single byte locale. */
3003+#endif
3004+ {
3005+ *character = *arg++;
3006+ *character_length = 1;
3007+ *character_width = 1;
3008+ }
3009+ }
3010+
3011 if (*arg)
3012 {
3013 long int tmp_long;
3014@@ -1256,7 +1382,7 @@
3015 else
3016 col_sep_string = column_separator;
3017
3018- col_sep_length = 1;
3019+ col_sep_length = col_sep_width = 1;
3020 use_col_separator = true;
3021 }
3022 /* It's rather pointless to define a TAB separator with column
3023@@ -1288,11 +1414,11 @@
3024 TAB_WIDTH (chars_per_input_tab, chars_per_number); */
3025
3026 /* Estimate chars_per_text without any margin and keep it constant. */
3027- if (number_separator == '\t')
3028+ if (number_separator[0] == '\t')
3029 number_width = chars_per_number +
3030 TAB_WIDTH (chars_per_default_tab, chars_per_number);
3031 else
3032- number_width = chars_per_number + 1;
3033+ number_width = chars_per_number + number_separator_width;
3034
3035 /* The number is part of the column width unless we are
3036 printing files in parallel. */
3037@@ -1307,7 +1433,7 @@
3038 }
3039
3040 chars_per_column = (chars_per_line - chars_used_by_number -
3041- (columns - 1) * col_sep_length) / columns;
3042+ (columns - 1) * col_sep_width) / columns;
3043
3044 if (chars_per_column < 1)
3045 error (EXIT_FAILURE, 0, _("page width too narrow"));
3046@@ -1432,7 +1558,7 @@
3047
3048 /* Enlarge p->start_position of first column to use the same form of
3049 padding_not_printed with all columns. */
3050- h = h + col_sep_length;
3051+ h = h + col_sep_width;
3052
3053 /* This loop takes care of all but the rightmost column. */
3054
3055@@ -1466,7 +1592,7 @@
3056 }
3057 else
3058 {
3059- h = h_next + col_sep_length;
3060+ h = h_next + col_sep_width;
3061 h_next = h + chars_per_column;
3062 }
3063 }
3064@@ -1756,9 +1882,9 @@
3065 align_column (COLUMN *p)
3066 {
3067 padding_not_printed = p->start_position;
3068- if (padding_not_printed - col_sep_length > 0)
3069+ if (padding_not_printed - col_sep_width > 0)
3070 {
3071- pad_across_to (padding_not_printed - col_sep_length);
3072+ pad_across_to (padding_not_printed - col_sep_width);
3073 padding_not_printed = ANYWHERE;
3074 }
3075
3076@@ -2029,13 +2155,13 @@
3077 /* May be too generous. */
3078 buff = X2REALLOC (buff, &buff_allocated);
3079 }
3080- buff[buff_current++] = c;
3081+ buff[buff_current++] = (unsigned char) c;
3082 }
3083
3084 static void
3085 add_line_number (COLUMN *p)
3086 {
3087- int i;
3088+ int i, j;
3089 char *s;
3090 int left_cut;
3091
3092@@ -2058,22 +2184,24 @@
3093 /* Tabification is assumed for multiple columns, also for n-separators,
3094 but `default n-separator = TAB' hasn't been given priority over
3095 equal column_width also specified by POSIX. */
3096- if (number_separator == '\t')
3097+ if (number_separator[0] == '\t')
3098 {
3099 i = number_width - chars_per_number;
3100 while (i-- > 0)
3101 (p->char_func) (' ');
3102 }
3103 else
3104- (p->char_func) (number_separator);
3105+ for (j = 0; j < number_separator_length; j++)
3106+ (p->char_func) (number_separator[j]);
3107 }
3108 else
3109 /* To comply with POSIX, we avoid any expansion of default TAB
3110 separator with a single column output. No column_width requirement
3111 has to be considered. */
3112 {
3113- (p->char_func) (number_separator);
3114- if (number_separator == '\t')
3115+ for (j = 0; j < number_separator_length; j++)
3116+ (p->char_func) (number_separator[j]);
3117+ if (number_separator[0] == '\t')
3118 output_position = POS_AFTER_TAB (chars_per_output_tab,
3119 output_position);
3120 }
3121@@ -2234,7 +2362,7 @@
3122 while (goal - h_old > 1
3123 && (h_new = POS_AFTER_TAB (chars_per_output_tab, h_old)) <= goal)
3124 {
3125- putchar (output_tab_char);
3126+ fwrite (output_tab_char, sizeof(char), output_tab_char_length, stdout);
3127 h_old = h_new;
3128 }
3129 while (++h_old <= goal)
3130@@ -2254,6 +2382,7 @@
3131 {
3132 char *s;
3133 int l = col_sep_length;
3134+ int not_space_flag;
3135
3136 s = col_sep_string;
3137
3138@@ -2267,6 +2396,7 @@
3139 {
3140 for (; separators_not_printed > 0; --separators_not_printed)
3141 {
3142+ not_space_flag = 0;
3143 while (l-- > 0)
3144 {
3145 /* 3 types of sep_strings: spaces only, spaces and chars,
3146@@ -2280,12 +2410,15 @@
3147 }
3148 else
3149 {
3150+ not_space_flag = 1;
3151 if (spaces_not_printed > 0)
3152 print_white_space ();
3153 putchar (*s++);
3154- ++output_position;
3155 }
3156 }
3157+ if (not_space_flag)
3158+ output_position += col_sep_width;
3159+
3160 /* sep_string ends with some spaces */
3161 if (spaces_not_printed > 0)
3162 print_white_space ();
3163@@ -2313,7 +2446,7 @@
3164 required number of tabs and spaces. */
3165
3166 static void
3167-print_char (char c)
3168+print_char_single (char c)
3169 {
3170 if (tabify_output)
3171 {
3172@@ -2337,6 +2470,74 @@
3173 putchar (c);
3174 }
3175
3176+#ifdef HAVE_MBRTOWC
3177+static void
3178+print_char_multi (char c)
3179+{
3180+ static size_t mbc_pos = 0;
3181+ static char mbc[MB_LEN_MAX] = {'\0'};
3182+ static mbstate_t state = {'\0'};
3183+ mbstate_t state_bak;
3184+ wchar_t wc;
3185+ size_t mblength;
3186+ int width;
3187+
3188+ if (tabify_output)
3189+ {
3190+ state_bak = state;
3191+ mbc[mbc_pos++] = c;
3192+ mblength = mbrtowc (&wc, mbc, mbc_pos, &state);
3193+
3194+ while (mbc_pos > 0)
3195+ {
3196+ switch (mblength)
3197+ {
3198+ case (size_t)-2:
3199+ state = state_bak;
3200+ return;
3201+
3202+ case (size_t)-1:
3203+ state = state_bak;
3204+ ++output_position;
3205+ putchar (mbc[0]);
3206+ memmove (mbc, mbc + 1, MB_CUR_MAX - 1);
3207+ --mbc_pos;
3208+ break;
3209+
3210+ case 0:
3211+ mblength = 1;
3212+
3213+ default:
3214+ if (wc == L' ')
3215+ {
3216+ memmove (mbc, mbc + mblength, MB_CUR_MAX - mblength);
3217+ --mbc_pos;
3218+ ++spaces_not_printed;
3219+ return;
3220+ }
3221+ else if (spaces_not_printed > 0)
3222+ print_white_space ();
3223+
3224+ /* Nonprintables are assumed to have width 0, except L'\b'. */
3225+ if ((width = wcwidth (wc)) < 1)
3226+ {
3227+ if (wc == L'\b')
3228+ --output_position;
3229+ }
3230+ else
3231+ output_position += width;
3232+
3233+ fwrite (mbc, sizeof(char), mblength, stdout);
3234+ memmove (mbc, mbc + mblength, MB_CUR_MAX - mblength);
3235+ mbc_pos -= mblength;
3236+ }
3237+ }
3238+ return;
3239+ }
3240+ putchar (c);
3241+}
3242+#endif
3243+
3244 /* Skip to page PAGE before printing.
3245 PAGE may be larger than total number of pages. */
3246
3247@@ -2517,9 +2718,9 @@
3248 align_empty_cols = false;
3249 }
3250
3251- if (padding_not_printed - col_sep_length > 0)
3252+ if (padding_not_printed - col_sep_width > 0)
3253 {
3254- pad_across_to (padding_not_printed - col_sep_length);
3255+ pad_across_to (padding_not_printed - col_sep_width);
3256 padding_not_printed = ANYWHERE;
3257 }
3258
3259@@ -2620,9 +2821,9 @@
3260 }
3261 }
3262
3263- if (padding_not_printed - col_sep_length > 0)
3264+ if (padding_not_printed - col_sep_width > 0)
3265 {
3266- pad_across_to (padding_not_printed - col_sep_length);
3267+ pad_across_to (padding_not_printed - col_sep_width);
3268 padding_not_printed = ANYWHERE;
3269 }
3270
3271@@ -2635,8 +2836,8 @@
3272 if (spaces_not_printed == 0)
3273 {
3274 output_position = p->start_position + end_vector[line];
3275- if (p->start_position - col_sep_length == chars_per_margin)
3276- output_position -= col_sep_length;
3277+ if (p->start_position - col_sep_width == chars_per_margin)
3278+ output_position -= col_sep_width;
3279 }
3280
3281 return true;
3282@@ -2655,7 +2856,7 @@
3283 number of characters is 1.) */
3284
3285 static int
3286-char_to_clump (char c)
3287+char_to_clump_single (char c)
3288 {
3289 unsigned char uc = c;
3290 char *s = clump_buff;
3291@@ -2665,10 +2866,10 @@
3292 int chars;
3293 int chars_per_c = 8;
3294
3295- if (c == input_tab_char)
3296+ if (c == input_tab_char[0])
3297 chars_per_c = chars_per_input_tab;
3298
3299- if (c == input_tab_char || c == '\t')
3300+ if (c == input_tab_char[0] || c == '\t')
3301 {
3302 width = TAB_WIDTH (chars_per_c, input_position);
3303
3304@@ -2739,6 +2940,154 @@
3305 return chars;
3306 }
3307
3308+#ifdef HAVE_MBRTOWC
3309+static int
3310+char_to_clump_multi (char c)
3311+{
3312+ static size_t mbc_pos = 0;
3313+ static char mbc[MB_LEN_MAX] = {'\0'};
3314+ static mbstate_t state = {'\0'};
3315+ mbstate_t state_bak;
3316+ wchar_t wc;
3317+ size_t mblength;
3318+ int wc_width;
3319+ register char *s = clump_buff;
3320+ register int i, j;
3321+ char esc_buff[4];
3322+ int width;
3323+ int chars;
3324+ int chars_per_c = 8;
3325+
3326+ state_bak = state;
3327+ mbc[mbc_pos++] = c;
3328+ mblength = mbrtowc (&wc, mbc, mbc_pos, &state);
3329+
3330+ width = 0;
3331+ chars = 0;
3332+ while (mbc_pos > 0)
3333+ {
3334+ switch (mblength)
3335+ {
3336+ case (size_t)-2:
3337+ state = state_bak;
3338+ return 0;
3339+
3340+ case (size_t)-1:
3341+ state = state_bak;
3342+ mblength = 1;
3343+
3344+ if (use_esc_sequence || use_cntrl_prefix)
3345+ {
3346+ width = +4;
3347+ chars = +4;
3348+ *s++ = '\\';
3349+ sprintf (esc_buff, "%03o", mbc[0]);
3350+ for (i = 0; i <= 2; ++i)
3351+ *s++ = (int) esc_buff[i];
3352+ }
3353+ else
3354+ {
3355+ width += 1;
3356+ chars += 1;
3357+ *s++ = mbc[0];
3358+ }
3359+ break;
3360+
3361+ case 0:
3362+ mblength = 1;
3363+ /* Fall through */
3364+
3365+ default:
3366+ if (memcmp (mbc, input_tab_char, mblength) == 0)
3367+ chars_per_c = chars_per_input_tab;
3368+
3369+ if (memcmp (mbc, input_tab_char, mblength) == 0 || c == '\t')
3370+ {
3371+ int width_inc;
3372+
3373+ width_inc = TAB_WIDTH (chars_per_c, input_position);
3374+ width += width_inc;
3375+
3376+ if (untabify_input)
3377+ {
3378+ for (i = width_inc; i; --i)
3379+ *s++ = ' ';
3380+ chars += width_inc;
3381+ }
3382+ else
3383+ {
3384+ for (i = 0; i < mblength; i++)
3385+ *s++ = mbc[i];
3386+ chars += mblength;
3387+ }
3388+ }
3389+ else if ((wc_width = wcwidth (wc)) < 1)
3390+ {
3391+ if (use_esc_sequence)
3392+ {
3393+ for (i = 0; i < mblength; i++)
3394+ {
3395+ width += 4;
3396+ chars += 4;
3397+ *s++ = '\\';
3398+ sprintf (esc_buff, "%03o", c);
3399+ for (j = 0; j <= 2; ++j)
3400+ *s++ = (int) esc_buff[j];
3401+ }
3402+ }
3403+ else if (use_cntrl_prefix)
3404+ {
3405+ if (wc < 0200)
3406+ {
3407+ width += 2;
3408+ chars += 2;
3409+ *s++ = '^';
3410+ *s++ = wc ^ 0100;
3411+ }
3412+ else
3413+ {
3414+ for (i = 0; i < mblength; i++)
3415+ {
3416+ width += 4;
3417+ chars += 4;
3418+ *s++ = '\\';
3419+ sprintf (esc_buff, "%03o", c);
3420+ for (j = 0; j <= 2; ++j)
3421+ *s++ = (int) esc_buff[j];
3422+ }
3423+ }
3424+ }
3425+ else if (wc == L'\b')
3426+ {
3427+ width += -1;
3428+ chars += 1;
3429+ *s++ = c;
3430+ }
3431+ else
3432+ {
3433+ width += 0;
3434+ chars += mblength;
3435+ for (i = 0; i < mblength; i++)
3436+ *s++ = mbc[i];
3437+ }
3438+ }
3439+ else
3440+ {
3441+ width += wc_width;
3442+ chars += mblength;
3443+ for (i = 0; i < mblength; i++)
3444+ *s++ = mbc[i];
3445+ }
3446+ }
3447+ memmove (mbc, mbc + mblength, MB_CUR_MAX - mblength);
3448+ mbc_pos -= mblength;
3449+ }
3450+
3451+ input_position += width;
3452+ return chars;
3453+}
3454+#endif
3455+
3456 /* We've just printed some files and need to clean up things before
3457 looking for more options and printing the next batch of files.
3458
3459--- coreutils-6.8+/src/cut.c.i18n 2007-01-14 15:41:28.000000000 +0000
3460+++ coreutils-6.8+/src/cut.c 2007-03-01 15:08:24.000000000 +0000
3461@@ -29,6 +29,11 @@
3462 #include <assert.h>
3463 #include <getopt.h>
3464 #include <sys/types.h>
3465+
3466+/* Get mbstate_t, mbrtowc(). */
3467+#if HAVE_WCHAR_H
3468+# include <wchar.h>
3469+#endif
3470 #include "system.h"
3471
3472 #include "error.h"
3473@@ -37,6 +42,18 @@
3474 #include "quote.h"
3475 #include "xstrndup.h"
3476
3477+/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC
3478+ installation; work around this configuration error. */
3479+#if !defined MB_LEN_MAX || MB_LEN_MAX < 2
3480+# undef MB_LEN_MAX
3481+# define MB_LEN_MAX 16
3482+#endif
3483+
3484+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */
3485+#if HAVE_MBRTOWC && defined mbstate_t
3486+# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
3487+#endif
3488+
3489 /* The official name of this program (e.g., no `g' prefix). */
3490 #define PROGRAM_NAME "cut"
3491
3492@@ -67,6 +84,52 @@
3493 } \
3494 while (0)
3495
3496+/* Refill the buffer BUF to get a multibyte character. */
3497+#define REFILL_BUFFER(BUF, BUFPOS, BUFLEN, STREAM) \
3498+ do \
3499+ { \
3500+ if (BUFLEN < MB_LEN_MAX && !feof (STREAM) && !ferror (STREAM)) \
3501+ { \
3502+ memmove (BUF, BUFPOS, BUFLEN); \
3503+ BUFLEN += fread (BUF + BUFLEN, sizeof(char), BUFSIZ, STREAM); \
3504+ BUFPOS = BUF; \
3505+ } \
3506+ } \
3507+ while (0)
3508+
3509+/* Get wide character on BUFPOS. BUFPOS is not included after that.
3510+ If byte sequence is not valid as a character, CONVFAIL is 1. Otherwise 0. */
3511+#define GET_NEXT_WC_FROM_BUFFER(WC, BUFPOS, BUFLEN, MBLENGTH, STATE, CONVFAIL) \
3512+ do \
3513+ { \
3514+ mbstate_t state_bak; \
3515+ \
3516+ if (BUFLEN < 1) \
3517+ { \
3518+ WC = WEOF; \
3519+ break; \
3520+ } \
3521+ \
3522+ /* Get a wide character. */ \
3523+ CONVFAIL = 0; \
3524+ state_bak = STATE; \
3525+ MBLENGTH = mbrtowc ((wchar_t *)&WC, BUFPOS, BUFLEN, &STATE); \
3526+ \
3527+ switch (MBLENGTH) \
3528+ { \
3529+ case (size_t)-1: \
3530+ case (size_t)-2: \
3531+ CONVFAIL++; \
3532+ STATE = state_bak; \
3533+ /* Fall througn. */ \
3534+ \
3535+ case 0: \
3536+ MBLENGTH = 1; \
3537+ break; \
3538+ } \
3539+ } \
3540+ while (0)
3541+
3542 struct range_pair
3543 {
3544 size_t lo;
3545@@ -85,7 +148,7 @@
3546 /* The number of bytes allocated for FIELD_1_BUFFER. */
3547 static size_t field_1_bufsize;
3548
3549-/* The largest field or byte index used as an endpoint of a closed
3550+/* The largest byte, character or field index used as an endpoint of a closed
3551 or degenerate range specification; this doesn't include the starting
3552 index of right-open-ended ranges. For example, with either range spec
3553 `2-5,9-', `2-3,5,9-' this variable would be set to 5. */
3554@@ -97,10 +160,11 @@
3555
3556 /* This is a bit vector.
3557 In byte mode, which bytes to output.
3558+ In character mode, which characters to output.
3559 In field mode, which DELIM-separated fields to output.
3560- Both bytes and fields are numbered starting with 1,
3561+ Bytes, characters and fields are numbered starting with 1,
3562 so the zeroth bit of this array is unused.
3563- A field or byte K has been selected if
3564+ A byte, character or field K has been selected if
3565 (K <= MAX_RANGE_ENDPOINT and is_printable_field(K))
3566 || (EOL_RANGE_START > 0 && K >= EOL_RANGE_START). */
3567 static unsigned char *printable_field;
3568@@ -109,9 +173,12 @@
3569 {
3570 undefined_mode,
3571
3572- /* Output characters that are in the given bytes. */
3573+ /* Output bytes that are at the given positions. */
3574 byte_mode,
3575
3576+ /* Output characters that are at the given positions. */
3577+ character_mode,
3578+
3579 /* Output the given delimeter-separated fields. */
3580 field_mode
3581 };
3582@@ -121,6 +188,13 @@
3583
3584 static enum operating_mode operating_mode;
3585
3586+/* If nonzero, when in byte mode, don't split multibyte characters. */
3587+static int byte_mode_character_aware;
3588+
3589+/* If nonzero, the function for single byte locale is work
3590+ if this program runs on multibyte locale. */
3591+static int force_singlebyte_mode;
3592+
3593 /* If true do not output lines containing no delimeter characters.
3594 Otherwise, all such lines are printed. This option is valid only
3595 with field mode. */
3596@@ -132,6 +206,9 @@
3597
3598 /* The delimeter character for field mode. */
3599 static unsigned char delim;
3600+#if HAVE_WCHAR_H
3601+static wchar_t wcdelim;
3602+#endif
3603
3604 /* True if the --output-delimiter=STRING option was specified. */
3605 static bool output_delimiter_specified;
3606@@ -205,7 +282,7 @@
3607 -f, --fields=LIST select only these fields; also print any line\n\
3608 that contains no delimiter character, unless\n\
3609 the -s option is specified\n\
3610- -n (ignored)\n\
3611+ -n with -b: don't split multibyte characters\n\
3612 "), stdout);
3613 fputs (_("\
3614 --complement complement the set of selected bytes, characters\n\
3615@@ -362,7 +439,7 @@
3616 in_digits = false;
3617 /* Starting a range. */
3618 if (dash_found)
3619- FATAL_ERROR (_("invalid byte or field list"));
3620+ FATAL_ERROR (_("invalid byte, character or field list"));
3621 dash_found = true;
3622 fieldstr++;
3623
3624@@ -387,14 +464,16 @@
3625 if (value == 0)
3626 {
3627 /* `n-'. From `initial' to end of line. */
3628- eol_range_start = initial;
3629+ if (eol_range_start == 0 ||
3630+ (eol_range_start != 0 && eol_range_start > initial))
3631+ eol_range_start = initial;
3632 field_found = true;
3633 }
3634 else
3635 {
3636 /* `m-n' or `-n' (1-n). */
3637 if (value < initial)
3638- FATAL_ERROR (_("invalid byte or field list"));
3639+ FATAL_ERROR (_("invalid byte, character or field list"));
3640
3641 /* Is there already a range going to end of line? */
3642 if (eol_range_start != 0)
3643@@ -467,6 +546,9 @@
3644 if (operating_mode == byte_mode)
3645 error (0, 0,
3646 _("byte offset %s is too large"), quote (bad_num));
3647+ else if (operating_mode == character_mode)
3648+ error (0, 0,
3649+ _("character offset %s is too large"), quote (bad_num));
3650 else
3651 error (0, 0,
3652 _("field number %s is too large"), quote (bad_num));
3653@@ -477,7 +559,7 @@
3654 fieldstr++;
3655 }
3656 else
3657- FATAL_ERROR (_("invalid byte or field list"));
3658+ FATAL_ERROR (_("invalid byte, character or field list"));
3659 }
3660
3661 max_range_endpoint = 0;
3662@@ -570,6 +652,63 @@
3663 }
3664 }
3665
3666+#if HAVE_MBRTOWC
3667+/* This function is in use for the following case.
3668+
3669+ 1. Read from the stream STREAM, printing to standard output any selected
3670+ characters.
3671+
3672+ 2. Read from stream STREAM, printing to standard output any selected bytes,
3673+ without splitting multibyte characters. */
3674+
3675+static void
3676+cut_characters_or_cut_bytes_no_split (FILE *stream)
3677+{
3678+ int idx; /* number of bytes or characters in the line so far. */
3679+ char buf[MB_LEN_MAX + BUFSIZ]; /* For spooling a read byte sequence. */
3680+ char *bufpos; /* Next read position of BUF. */
3681+ size_t buflen; /* The length of the byte sequence in buf. */
3682+ wint_t wc; /* A gotten wide character. */
3683+ size_t mblength; /* The byte size of a multibyte character which shows
3684+ as same character as WC. */
3685+ mbstate_t state; /* State of the stream. */
3686+ int convfail; /* 1, when conversion is failed. Otherwise 0. */
3687+
3688+ idx = 0;
3689+ buflen = 0;
3690+ bufpos = buf;
3691+ memset (&state, '\0', sizeof(mbstate_t));
3692+
3693+ while (1)
3694+ {
3695+ REFILL_BUFFER (buf, bufpos, buflen, stream);
3696+
3697+ GET_NEXT_WC_FROM_BUFFER (wc, bufpos, buflen, mblength, state, convfail);
3698+
3699+ if (wc == WEOF)
3700+ {
3701+ if (idx > 0)
3702+ putchar ('\n');
3703+ break;
3704+ }
3705+ else if (wc == L'\n')
3706+ {
3707+ putchar ('\n');
3708+ idx = 0;
3709+ }
3710+ else
3711+ {
3712+ idx += (operating_mode == byte_mode) ? mblength : 1;
3713+ if (print_kth (idx, NULL))
3714+ fwrite (bufpos, mblength, sizeof(char), stdout);
3715+ }
3716+
3717+ buflen -= mblength;
3718+ bufpos += mblength;
3719+ }
3720+}
3721+#endif
3722+
3723 /* Read from stream STREAM, printing to standard output any selected fields. */
3724
3725 static void
3726@@ -692,13 +831,192 @@
3727 }
3728 }
3729
3730+#if HAVE_MBRTOWC
3731+static void
3732+cut_fields_mb (FILE *stream)
3733+{
3734+ int c;
3735+ unsigned int field_idx;
3736+ int found_any_selected_field;
3737+ int buffer_first_field;
3738+ int empty_input;
3739+ char buf[MB_LEN_MAX + BUFSIZ]; /* For spooling a read byte sequence. */
3740+ char *bufpos; /* Next read position of BUF. */
3741+ size_t buflen; /* The length of the byte sequence in buf. */
3742+ wint_t wc = 0; /* A gotten wide character. */
3743+ size_t mblength; /* The byte size of a multibyte character which shows
3744+ as same character as WC. */
3745+ mbstate_t state; /* State of the stream. */
3746+ int convfail; /* 1, when conversion is failed. Otherwise 0. */
3747+
3748+ found_any_selected_field = 0;
3749+ field_idx = 1;
3750+ bufpos = buf;
3751+ buflen = 0;
3752+ memset (&state, '\0', sizeof(mbstate_t));
3753+
3754+ c = getc (stream);
3755+ empty_input = (c == EOF);
3756+ if (c != EOF)
3757+ ungetc (c, stream);
3758+ else
3759+ wc = WEOF;
3760+
3761+ /* To support the semantics of the -s flag, we may have to buffer
3762+ all of the first field to determine whether it is `delimited.'
3763+ But that is unnecessary if all non-delimited lines must be printed
3764+ and the first field has been selected, or if non-delimited lines
3765+ must be suppressed and the first field has *not* been selected.
3766+ That is because a non-delimited line has exactly one field. */
3767+ buffer_first_field = (suppress_non_delimited ^ !print_kth (1, NULL));
3768+
3769+ while (1)
3770+ {
3771+ if (field_idx == 1 && buffer_first_field)
3772+ {
3773+ int len = 0;
3774+
3775+ while (1)
3776+ {
3777+ REFILL_BUFFER (buf, bufpos, buflen, stream);
3778+
3779+ GET_NEXT_WC_FROM_BUFFER
3780+ (wc, bufpos, buflen, mblength, state, convfail);
3781+
3782+ if (wc == WEOF)
3783+ break;
3784+
3785+ field_1_buffer = xrealloc (field_1_buffer, len + mblength);
3786+ memcpy (field_1_buffer + len, bufpos, mblength);
3787+ len += mblength;
3788+ buflen -= mblength;
3789+ bufpos += mblength;
3790+
3791+ if (!convfail && (wc == L'\n' || wc == wcdelim))
3792+ break;
3793+ }
3794+
3795+ if (wc == WEOF)
3796+ break;
3797+
3798+ /* If the first field extends to the end of line (it is not
3799+ delimited) and we are printing all non-delimited lines,
3800+ print this one. */
3801+ if (convfail || (!convfail && wc != wcdelim))
3802+ {
3803+ if (suppress_non_delimited)
3804+ {
3805+ /* Empty. */
3806+ }
3807+ else
3808+ {
3809+ fwrite (field_1_buffer, sizeof (char), len, stdout);
3810+ /* Make sure the output line is newline terminated. */
3811+ if (convfail || (!convfail && wc != L'\n'))
3812+ putchar ('\n');
3813+ }
3814+ continue;
3815+ }
3816+
3817+ if (print_kth (1, NULL))
3818+ {
3819+ /* Print the field, but not the trailing delimiter. */
3820+ fwrite (field_1_buffer, sizeof (char), len - 1, stdout);
3821+ found_any_selected_field = 1;
3822+ }
3823+ ++field_idx;
3824+ }
3825+
3826+ if (wc != WEOF)
3827+ {
3828+ if (print_kth (field_idx, NULL))
3829+ {
3830+ if (found_any_selected_field)
3831+ {
3832+ fwrite (output_delimiter_string, sizeof (char),
3833+ output_delimiter_length, stdout);
3834+ }
3835+ found_any_selected_field = 1;
3836+ }
3837+
3838+ while (1)
3839+ {
3840+ REFILL_BUFFER (buf, bufpos, buflen, stream);
3841+
3842+ GET_NEXT_WC_FROM_BUFFER
3843+ (wc, bufpos, buflen, mblength, state, convfail);
3844+
3845+ if (wc == WEOF)
3846+ break;
3847+ else if (!convfail && (wc == wcdelim || wc == L'\n'))
3848+ {
3849+ buflen -= mblength;
3850+ bufpos += mblength;
3851+ break;
3852+ }
3853+
3854+ if (print_kth (field_idx, NULL))
3855+ fwrite (bufpos, mblength, sizeof(char), stdout);
3856+
3857+ buflen -= mblength;
3858+ bufpos += mblength;
3859+ }
3860+ }
3861+
3862+ if ((!convfail || wc == L'\n') && buflen < 1)
3863+ wc = WEOF;
3864+
3865+ if (!convfail && wc == wcdelim)
3866+ ++field_idx;
3867+ else if (wc == WEOF || (!convfail && wc == L'\n'))
3868+ {
3869+ if (found_any_selected_field
3870+ || (!empty_input && !(suppress_non_delimited && field_idx == 1)))
3871+ putchar ('\n');
3872+ if (wc == WEOF)
3873+ break;
3874+ field_idx = 1;
3875+ found_any_selected_field = 0;
3876+ }
3877+ }
3878+}
3879+#endif
3880+
3881 static void
3882 cut_stream (FILE *stream)
3883 {
3884- if (operating_mode == byte_mode)
3885- cut_bytes (stream);
3886+#if HAVE_MBRTOWC
3887+ if (MB_CUR_MAX > 1 && !force_singlebyte_mode)
3888+ {
3889+ switch (operating_mode)
3890+ {
3891+ case byte_mode:
3892+ if (byte_mode_character_aware)
3893+ cut_characters_or_cut_bytes_no_split (stream);
3894+ else
3895+ cut_bytes (stream);
3896+ break;
3897+
3898+ case character_mode:
3899+ cut_characters_or_cut_bytes_no_split (stream);
3900+ break;
3901+
3902+ case field_mode:
3903+ cut_fields_mb (stream);
3904+ break;
3905+
3906+ default:
3907+ abort ();
3908+ }
3909+ }
3910 else
3911- cut_fields (stream);
3912+#endif
3913+ {
3914+ if (operating_mode == field_mode)
3915+ cut_fields (stream);
3916+ else
3917+ cut_bytes (stream);
3918+ }
3919 }
3920
3921 /* Process file FILE to standard output.
3922@@ -748,6 +1066,8 @@
3923 bool ok;
3924 bool delim_specified = false;
3925 char *spec_list_string IF_LINT(= NULL);
3926+ char mbdelim[MB_LEN_MAX + 1];
3927+ size_t delimlen = 0;
3928
3929 initialize_main (&argc, &argv);
3930 program_name = argv[0];
3931@@ -770,7 +1090,6 @@
3932 switch (optc)
3933 {
3934 case 'b':
3935- case 'c':
3936 /* Build the byte list. */
3937 if (operating_mode != undefined_mode)
3938 FATAL_ERROR (_("only one type of list may be specified"));
3939@@ -778,6 +1097,14 @@
3940 spec_list_string = optarg;
3941 break;
3942
3943+ case 'c':
3944+ /* Build the character list. */
3945+ if (operating_mode != undefined_mode)
3946+ FATAL_ERROR (_("only one type of list may be specified"));
3947+ operating_mode = character_mode;
3948+ spec_list_string = optarg;
3949+ break;
3950+
3951 case 'f':
3952 /* Build the field list. */
3953 if (operating_mode != undefined_mode)
3954@@ -789,10 +1116,35 @@
3955 case 'd':
3956 /* New delimiter. */
3957 /* Interpret -d '' to mean `use the NUL byte as the delimiter.' */
3958- if (optarg[0] != '\0' && optarg[1] != '\0')
3959- FATAL_ERROR (_("the delimiter must be a single character"));
3960- delim = optarg[0];
3961- delim_specified = true;
3962+#if HAVE_MBRTOWC
3963+ {
3964+ if(MB_CUR_MAX > 1)
3965+ {
3966+ mbstate_t state;
3967+
3968+ memset (&state, '\0', sizeof(mbstate_t));
3969+ delimlen = mbrtowc (&wcdelim, optarg, strnlen(optarg, MB_LEN_MAX), &state);
3970+
3971+ if (delimlen == (size_t)-1 || delimlen == (size_t)-2)
3972+ ++force_singlebyte_mode;
3973+ else
3974+ {
3975+ delimlen = (delimlen < 1) ? 1 : delimlen;
3976+ if (wcdelim != L'\0' && *(optarg + delimlen) != '\0')
3977+ FATAL_ERROR (_("the delimiter must be a single character"));
3978+ memcpy (mbdelim, optarg, delimlen);
3979+ }
3980+ }
3981+
3982+ if (MB_CUR_MAX <= 1 || force_singlebyte_mode)
3983+#endif
3984+ {
3985+ if (optarg[0] != '\0' && optarg[1] != '\0')
3986+ FATAL_ERROR (_("the delimiter must be a single character"));
3987+ delim = (unsigned char) optarg[0];
3988+ }
3989+ delim_specified = true;
3990+ }
3991 break;
3992
3993 case OUTPUT_DELIMITER_OPTION:
3994@@ -805,6 +1157,7 @@
3995 break;
3996
3997 case 'n':
3998+ byte_mode_character_aware = 1;
3999 break;
4000
4001 case 's':
4002@@ -827,7 +1180,7 @@
4003 if (operating_mode == undefined_mode)
4004 FATAL_ERROR (_("you must specify a list of bytes, characters, or fields"));
4005
4006- if (delim != '\0' && operating_mode != field_mode)
4007+ if (delim_specified && operating_mode != field_mode)
4008 FATAL_ERROR (_("an input delimiter may be specified only\
4009 when operating on fields"));
4010
4011@@ -854,15 +1207,34 @@
4012 }
4013
4014 if (!delim_specified)
4015- delim = '\t';
4016+ {
4017+ delim = '\t';
4018+#ifdef HAVE_MBRTOWC
4019+ wcdelim = L'\t';
4020+ mbdelim[0] = '\t';
4021+ mbdelim[1] = '\0';
4022+ delimlen = 1;
4023+#endif
4024+ }
4025
4026 if (output_delimiter_string == NULL)
4027 {
4028- static char dummy[2];
4029- dummy[0] = delim;
4030- dummy[1] = '\0';
4031- output_delimiter_string = dummy;
4032- output_delimiter_length = 1;
4033+#ifdef HAVE_MBRTOWC
4034+ if (MB_CUR_MAX > 1 && !force_singlebyte_mode)
4035+ {
4036+ output_delimiter_string = xstrdup(mbdelim);
4037+ output_delimiter_length = delimlen;
4038+ }
4039+
4040+ if (MB_CUR_MAX <= 1 || force_singlebyte_mode)
4041+#endif
4042+ {
4043+ static char dummy[2];
4044+ dummy[0] = delim;
4045+ dummy[1] = '\0';
4046+ output_delimiter_string = dummy;
4047+ output_delimiter_length = 1;
4048+ }
4049 }
4050
4051 if (optind == argc)
diff --git a/meta/recipes-core/coreutils/coreutils-6.9/coreutils-ls-x.patch b/meta/recipes-core/coreutils/coreutils-6.9/coreutils-ls-x.patch
deleted file mode 100644
index aba8742f6a..0000000000
--- a/meta/recipes-core/coreutils/coreutils-6.9/coreutils-ls-x.patch
+++ /dev/null
@@ -1,117 +0,0 @@
1Upstream-Status: Inappropriate [legacy version]
2
3This patch was imported from the Fedora Core 8 coreutils-6.9-9 package.
4
5The package is stated as being Licensed as GPLv2+.
6
7Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
8
9--- coreutils-6.9/src/ls.c.ls-x 2007-06-13 14:27:36.000000000 +0100
10+++ coreutils-6.9/src/ls.c 2007-06-13 14:28:42.000000000 +0100
11@@ -4151,16 +4151,16 @@
12 size_t pos = 0;
13 size_t cols = calculate_columns (false);
14 struct column_info const *line_fmt = &column_info[cols - 1];
15- size_t name_length = length_of_file_name_and_frills (cwd_file);
16+ struct fileinfo const *f = sorted_file[0];
17+ size_t name_length = length_of_file_name_and_frills (f);
18 size_t max_name_length = line_fmt->col_arr[0];
19
20 /* Print first entry. */
21- print_file_name_and_frills (cwd_file);
22+ print_file_name_and_frills (f);
23
24 /* Now the rest. */
25 for (filesno = 1; filesno < cwd_n_used; ++filesno)
26 {
27- struct fileinfo const *f;
28 size_t col = filesno % cols;
29
30 if (col == 0)
31--- coreutils-6.9/tests/ls/Makefile.am.ls-x 2007-03-18 21:36:43.000000000 +0000
32+++ coreutils-6.9/tests/ls/Makefile.am 2007-06-13 14:28:42.000000000 +0100
33@@ -24,7 +24,7 @@
34 stat-dtype \
35 inode dangle file-type recursive dired infloop \
36 rt-1 time-1 symlink-slash follow-slink no-arg m-option \
37- stat-vs-dirent
38+ stat-vs-dirent x-option
39
40 EXTRA_DIST = $(TESTS)
41 TESTS_ENVIRONMENT = \
42--- /dev/null 2007-06-13 08:43:51.993263382 +0100
43+++ coreutils-6.9/tests/ls/x-option 2007-06-13 14:28:42.000000000 +0100
44@@ -0,0 +1,59 @@
45+#!/bin/sh
46+# Exercise the -x option.
47+
48+# Copyright (C) 2007 Free Software Foundation, Inc.
49+
50+# This program is free software; you can redistribute it and/or modify
51+# it under the terms of the GNU General Public License as published by
52+# the Free Software Foundation; either version 2 of the License, or
53+# (at your option) any later version.
54+
55+# This program is distributed in the hope that it will be useful,
56+# but WITHOUT ANY WARRANTY; without even the implied warranty of
57+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
58+# GNU General Public License for more details.
59+
60+# You should have received a copy of the GNU General Public License
61+# along with this program; if not, write to the Free Software
62+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
63+# 02110-1301, USA.
64+
65+if test "$VERBOSE" = yes; then
66+ set -x
67+ ls --version
68+fi
69+
70+. $srcdir/../envvar-check
71+. $srcdir/../lang-default
72+
73+pwd=`pwd`
74+t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$
75+trap 'status=$?; cd "$pwd" && chmod -R u+rwx $t0 && rm -rf $t0 && exit $status' 0
76+trap '(exit $?); exit $?' 1 2 13 15
77+
78+framework_failure=0
79+mkdir -p $tmp || framework_failure=1
80+cd $tmp || framework_failure=1
81+mkdir subdir || framework_failure=1
82+touch subdir/b || framework_failure=1
83+touch subdir/a || framework_failure=1
84+
85+if test $framework_failure = 1; then
86+ echo "$0: failure in testing framework" 1>&2
87+ (exit 1); exit 1
88+fi
89+
90+fail=0
91+
92+# Coreutils 6.8 and 6.9 would output this in the wrong order.
93+ls -x subdir > out || fail=1
94+ls -rx subdir >> out || fail=1
95+cat <<\EOF > exp || fail=1
96+a b
97+b a
98+EOF
99+
100+cmp out exp || fail=1
101+test $fail = 1 && diff out exp 2> /dev/null
102+
103+(exit $fail); exit $fail
104--- coreutils-6.9/NEWS.ls-x 2007-03-22 21:19:45.000000000 +0000
105+++ coreutils-6.9/NEWS 2007-06-13 14:28:42.000000000 +0100
106@@ -13,6 +13,11 @@
107 Using pr -m -s (i.e. merging files, with TAB as the output separator)
108 no longer inserts extraneous spaces between output columns.
109
110+** Bug fixes
111+
112+ ls -x DIR would sometimes output the wrong string in place of the
113+ first entry. [introduced in coreutils-6.8]
114+
115
116 * Noteworthy changes in release 6.8 (2007-02-24) [not-unstable]
117
diff --git a/meta/recipes-core/coreutils/coreutils-6.9/coreutils-overflow.patch b/meta/recipes-core/coreutils/coreutils-6.9/coreutils-overflow.patch
deleted file mode 100644
index 58074c09a5..0000000000
--- a/meta/recipes-core/coreutils/coreutils-6.9/coreutils-overflow.patch
+++ /dev/null
@@ -1,19 +0,0 @@
1Upstream-Status: Inappropriate [legacy version]
2
3This patch was imported from the Fedora Core 8 coreutils-6.9-9 package.
4
5The package is stated as being Licensed as GPLv2+.
6
7Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
8
9--- coreutils-5.2.1/src/who.c.overflow 2005-05-25 09:59:06.000000000 +0100
10+++ coreutils-5.2.1/src/who.c 2005-05-25 10:00:31.000000000 +0100
11@@ -75,7 +75,7 @@
12 # define NEW_TIME 0
13 #endif
14
15-#define IDLESTR_LEN 6
16+#define IDLESTR_LEN 10
17
18 #if HAVE_STRUCT_XTMP_UT_PID
19 # define PIDSTR_DECL_AND_INIT(Var, Utmp_ent) \
diff --git a/meta/recipes-core/coreutils/coreutils-6.9/coreutils_fix_for_automake-1.12.patch b/meta/recipes-core/coreutils/coreutils-6.9/coreutils_fix_for_automake-1.12.patch
deleted file mode 100644
index 64e5f12baa..0000000000
--- a/meta/recipes-core/coreutils/coreutils-6.9/coreutils_fix_for_automake-1.12.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1Upstream-Status: Pending
2
3automake 1.12 has depricated automatic de-ANSI-fication support
4
5this patch avoids these kinds of errors:
6
7| configure.ac:40: error: automatic de-ANSI-fication support has been removed
8| /srv/home/nitin/builds/build-gcc47/tmp/sysroots/x86_64-linux/usr/share/aclocal-1.12/protos.m4:12: AM_C_PROTOTYPES is expanded from...
9| /srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-linux/coreutils-native-6.9-r2/coreutils-6.9/m4/jm-macros.m4:138: gl_CHECK_ALL_TYPES is expanded from...
10| /srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-linux/coreutils-native-6.9-r2/coreutils-6.9/m4/jm-macros.m4:24: coreutils_MACROS is expanded from...
11| configure.ac:40: the top level
12| autom4te: m4 failed with exit status: 1
13
14Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
152012/05/04
16
17Index: coreutils-6.9/m4/jm-macros.m4
18===================================================================
19--- coreutils-6.9.orig/m4/jm-macros.m4
20+++ coreutils-6.9/m4/jm-macros.m4
21@@ -142,11 +142,6 @@ AC_DEFUN([gl_CHECK_ALL_TYPES],
22 dnl whether functions and headers are available, whether they work, etc.
23 AC_REQUIRE([AC_SYS_LARGEFILE])
24
25- dnl This test must precede tests of compiler characteristics like
26- dnl that for the inline keyword, since it may change the degree to
27- dnl which the compiler supports such features.
28- AC_REQUIRE([AM_C_PROTOTYPES])
29-
30 dnl Checks for typedefs, structures, and compiler characteristics.
31 AC_REQUIRE([AC_C_BIGENDIAN])
32 AC_REQUIRE([AC_C_VOLATILE])
diff --git a/meta/recipes-core/coreutils/coreutils-6.9/fix_for_manpage_building.patch b/meta/recipes-core/coreutils/coreutils-6.9/fix_for_manpage_building.patch
deleted file mode 100644
index e0d600a390..0000000000
--- a/meta/recipes-core/coreutils/coreutils-6.9/fix_for_manpage_building.patch
+++ /dev/null
@@ -1,85 +0,0 @@
1Upstream-Status: Inappropriate [legacy version]
2
3Use native coreutils binaries to build manpages in cross environment.
4This avoids man page build issues like this:
5
6| Making all in man
7| make[1]: Entering directory `/build_disk/poky_build/build1/tmp/work/i586-poky-linux/coreutils-6.9-r0/coreutils-6.9/man'
8| Updating man page cut.1
9| Updating man page dir.1
10| Updating man page expand.1
11| Updating man page fold.1
12| Updating man page install.1
13| Updating man page join.1
14| Updating man page pr.1
15| Updating man page ls.1
16| Updating man page sort.1
17| Updating man page unexpand.1
18| Updating man page uniq.1
19| Updating man page who.1
20| Updating man page vdir.1
21| help2man: can't get `--help' info from dir.td/dir
22| help2man: can't get `--help' info from cut.td/cut
23| make[1]: *** [dir.1] Error 126
24| make[1]: *** Waiting for unfinished jobs....
25| help2man: can't get `--help' info from fold.td/fold
26| help2man: can't get `--help' info from install.td/install
27| help2man: can't get `--help' info from expand.td/expand
28| help2man: can't get `--help' info from join.td/join
29| make[1]: *** [cut.1] Error 126
30| make[1]: *** [fold.1] Error 126
31| make[1]: *** [install.1] Error 126
32| help2man: can't get `--help' info from sort.td/sort
33| make[1]: *** [expand.1] Error 126
34| help2man: can't get `--help' info from pr.td/pr
35| make[1]: *** [join.1] Error 126
36| help2man: can't get `--help' info from ls.td/ls
37| help2man: can't get `--help' info from unexpand.td/unexpand
38| help2man: can't get `--help' info from uniq.td/uniq
39| help2man: can't get `--help' info from who.td/who
40| make[1]: *** [sort.1] Error 126
41| make[1]: *** [pr.1] Error 126
42| help2man: can't get `--help' info from vdir.td/vdir
43| make[1]: *** [ls.1] Error 126
44| make[1]: *** [uniq.1] Error 126
45| make[1]: *** [unexpand.1] Error 126
46| make[1]: *** [who.1] Error 126
47| make[1]: *** [vdir.1] Error 126
48| make[1]: Leaving directory `/build_disk/poky_build/build1/tmp/work/i586-poky-linux/coreutils-6.9-r0/coreutils-6.9/man'
49| make: *** [all-recursive] Error 1
50| FATAL: oe_runmake failed
51| ERROR: Function 'do_compile' failed (see /build_disk/poky_build/build1/tmp/work/i586-poky-linux/coreutils-6.9-r0/temp/log.do_compile.12780 for further information)
52NOTE: package coreutils-6.9-r0: task do_compile: Failed
53ERROR: Task 8 (/home/nitin/prj/poky.git/meta/recipes-core/coreutils/coreutils_6.9.bb, do_compile) failed with exit code '1'
54
55
56This patch is made for gplv2 coreutils the recipe
57Nitin A Kamble <nitin.a.kamble@intel.com>
582011/03/17
59
60Index: man/Makefile.am
61===================================================================
62--- a/man.orig/Makefile.am
63+++ b/man/Makefile.am
64@@ -167,7 +167,7 @@ mapped_name = `echo $*|sed 's/install/gi
65 $(PERL) -- $(srcdir)/help2man \
66 --source='$(PACKAGE_STRING)' \
67 --include=$(srcdir)/$*.x \
68- --output=$t/$@ $t/$*; \
69+ --output=$t/$@ $*; \
70 } \
71 && sed 's|$*\.td/||g' $t/$@ > $@ \
72 && chmod a-w $@ \
73Index: man/Makefile.in
74===================================================================
75--- a/man.orig/Makefile.in
76+++ b/man/Makefile.in
77@@ -865,7 +865,7 @@ yes.1: $(common_dep) $(srcdir)/yes.x .
78 $(PERL) -- $(srcdir)/help2man \
79 --source='$(PACKAGE_STRING)' \
80 --include=$(srcdir)/$*.x \
81- --output=$t/$@ $t/$*; \
82+ --output=$t/$@ $*; \
83 } \
84 && sed 's|$*\.td/||g' $t/$@ > $@ \
85 && chmod a-w $@ \
diff --git a/meta/recipes-core/coreutils/coreutils-6.9/futimens.patch b/meta/recipes-core/coreutils/coreutils-6.9/futimens.patch
deleted file mode 100644
index 508810623d..0000000000
--- a/meta/recipes-core/coreutils/coreutils-6.9/futimens.patch
+++ /dev/null
@@ -1,63 +0,0 @@
1Upstream-Status: Inappropriate [legacy version]
2
3# coreutils uses gnulib which conflicts with newer libc header on futimens
4# this patch simply renames coreutils futimes to avoid confliction
5#
6# Signed-off-by: Kevin Tian <kevin.tian@intel.com>, 2010-08-18
7# (this patch is licensed under GPLv2)
8
9diff --git a/lib/utimens.c b/lib/utimens.c
10index 71bc510..ae870b8 100644
11--- a/lib/utimens.c
12+++ b/lib/utimens.c
13@@ -75,7 +75,7 @@ struct utimbuf
14 Return 0 on success, -1 (setting errno) on failure. */
15
16 int
17-futimens (int fd ATTRIBUTE_UNUSED,
18+futimens_coreutils (int fd ATTRIBUTE_UNUSED,
19 char const *file, struct timespec const timespec[2])
20 {
21 /* Some Linux-based NFS clients are buggy, and mishandle time stamps
22@@ -185,5 +185,5 @@ futimens (int fd ATTRIBUTE_UNUSED,
23 int
24 utimens (char const *file, struct timespec const timespec[2])
25 {
26- return futimens (-1, file, timespec);
27+ return futimens_coreutils (-1, file, timespec);
28 }
29diff --git a/lib/utimens.h b/lib/utimens.h
30index 0097aaa..13fc45a 100644
31--- a/lib/utimens.h
32+++ b/lib/utimens.h
33@@ -1,3 +1,3 @@
34 #include <time.h>
35-int futimens (int, char const *, struct timespec const [2]);
36+int futimens_coreutils (int, char const *, struct timespec const [2]);
37 int utimens (char const *, struct timespec const [2]);
38diff --git a/src/copy.c b/src/copy.c
39index 4bdb75c..04634f1 100644
40--- a/src/copy.c
41+++ b/src/copy.c
42@@ -518,7 +518,7 @@ copy_reg (char const *src_name, char const *dst_name,
43 timespec[0] = get_stat_atime (src_sb);
44 timespec[1] = get_stat_mtime (src_sb);
45
46- if (futimens (dest_desc, dst_name, timespec) != 0)
47+ if (futimens_coreutils (dest_desc, dst_name, timespec) != 0)
48 {
49 error (0, errno, _("preserving times for %s"), quote (dst_name));
50 if (x->require_preserve)
51diff --git a/src/touch.c b/src/touch.c
52index a79c26d..6ef317d 100644
53--- a/src/touch.c
54+++ b/src/touch.c
55@@ -182,7 +182,7 @@ touch (const char *file)
56 t = timespec;
57 }
58
59- ok = (futimens (fd, (fd == STDOUT_FILENO ? NULL : file), t) == 0);
60+ ok = (futimens_coreutils (fd, (fd == STDOUT_FILENO ? NULL : file), t) == 0);
61
62 if (fd == STDIN_FILENO)
63 {
diff --git a/meta/recipes-core/coreutils/coreutils-6.9/gnulib_m4.patch b/meta/recipes-core/coreutils/coreutils-6.9/gnulib_m4.patch
deleted file mode 100644
index 8a8ffa7264..0000000000
--- a/meta/recipes-core/coreutils/coreutils-6.9/gnulib_m4.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1Upstream-Status: Inappropriate [legacy version]
2
3# remove the line to cause recursive inclusion error from autoreconf, sicne
4# newer autoconf has included this definition. Simply rename it here.
5#
6# Signed-off-by: Kevin Tian <kevin.tian@intel.com>, 2010-08-18
7# (this patch is licensed under GPLv2)
8
9diff --git a/extensions.m4 b/extensions.m4
10index 143a9e5..f6558f1 100644
11--- a/m4/extensions.m4
12+++ b/m4/extensions.m4
13@@ -16,7 +16,7 @@
14 # ------------------------
15 # Enable extensions on systems that normally disable them,
16 # typically due to standards-conformance issues.
17-AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
18+AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS_DUMMY],
19 [
20 AC_BEFORE([$0], [AC_COMPILE_IFELSE])
21 AC_BEFORE([$0], [AC_RUN_IFELSE])
diff --git a/meta/recipes-core/coreutils/coreutils-6.9/loadavg.patch b/meta/recipes-core/coreutils/coreutils-6.9/loadavg.patch
deleted file mode 100644
index c72efd4d30..0000000000
--- a/meta/recipes-core/coreutils/coreutils-6.9/loadavg.patch
+++ /dev/null
@@ -1,18 +0,0 @@
1Remove hardcoded paths so OE's configure QA does not detect it and fail the builds
2For cross compilation is less interesting to look into host paths for target libraries anyway
3
4Upstream-Status: Inappropriate [OE Specific]
5Signed-off-by: Khem Raj <raj.khem@gmail.com>
6
7Index: coreutils-6.9/m4/getloadavg.m4
8===================================================================
9--- coreutils-6.9.orig/m4/getloadavg.m4
10+++ coreutils-6.9/m4/getloadavg.m4
11@@ -49,7 +49,6 @@ if test $gl_have_func = no; then
12 # There is a commonly available library for RS/6000 AIX.
13 # Since it is not a standard part of AIX, it might be installed locally.
14 gl_getloadavg_LIBS=$LIBS
15- LIBS="-L/usr/local/lib $LIBS"
16 AC_CHECK_LIB(getloadavg, getloadavg,
17 [LIBS="-lgetloadavg $LIBS"], [LIBS=$gl_getloadavg_LIBS])
18 fi
diff --git a/meta/recipes-core/coreutils/coreutils-6.9/man-touch.patch b/meta/recipes-core/coreutils/coreutils-6.9/man-touch.patch
deleted file mode 100644
index 59a4fe0053..0000000000
--- a/meta/recipes-core/coreutils/coreutils-6.9/man-touch.patch
+++ /dev/null
@@ -1,24 +0,0 @@
1Upstream-Status: Inappropriate [legacy version]
2
3# man page for 'touch' is generated differently from others. All other utilities
4# are provided static man source files, while for 'touch' it requires help2man
5# to invoke "touch --help" and then convert the output into the manual. Since touch
6# is with target format which can't be invoked on build system, disable building
7# 'touch' man page here.
8#
9# Signed-off-by: Kevin Tian <kevin.tian@intel.com>, 2010-08-18
10# (this patch is licensed under GPLv2)
11
12diff --git a/man/Makefile.am b/man/Makefile.am
13index 32df9d1..37b09e3 100644
14--- a/man/Makefile.am
15+++ b/man/Makefile.am
16@@ -27,7 +27,7 @@ dist_man_MANS = \
17 paste.1 pathchk.1 pr.1 printenv.1 printf.1 ptx.1 pwd.1 readlink.1 \
18 rm.1 rmdir.1 seq.1 sha1sum.1 sha224sum.1 sha256sum.1 sha384sum.1 sha512sum.1 \
19 shred.1 shuf.1 sleep.1 sort.1 split.1 stat.1 \
20- su.1 sum.1 sync.1 tac.1 tail.1 tee.1 test.1 touch.1 tr.1 true.1 tsort.1 \
21+ su.1 sum.1 sync.1 tac.1 tail.1 tee.1 test.1 tr.1 true.1 tsort.1 \
22 tty.1 unexpand.1 uniq.1 unlink.1 vdir.1 wc.1 \
23 whoami.1 yes.1 $(MAN)
24 optional_mans = \
diff --git a/meta/recipes-core/coreutils/coreutils_6.9.bb b/meta/recipes-core/coreutils/coreutils_6.9.bb
deleted file mode 100644
index 821aafc6e0..0000000000
--- a/meta/recipes-core/coreutils/coreutils_6.9.bb
+++ /dev/null
@@ -1,107 +0,0 @@
1SUMMARY = "The basic file, shell and text manipulation utilities"
2DESCRIPTION = "The GNU Core Utilities provide the basic file, shell and text \
3manipulation utilities. These are the core utilities which are expected to exist on \
4every system."
5
6HOMEPAGE = "http://www.gnu.org/software/coreutils/"
7BUGTRACKER = "http://debbugs.gnu.org/coreutils"
8LICENSE = "GPLv2+"
9LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
10 file://src/ls.c;beginline=4;endline=16;md5=15ed60f67b1db5fedd5dbc37cf8a9543"
11PR = "r5"
12DEPENDS = "virtual/libiconv"
13
14inherit autotools gettext texinfo
15
16SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.bz2 \
17 file://gnulib_m4.patch \
18 file://futimens.patch \
19 file://coreutils-ls-x.patch \
20 file://coreutils-6.9-cp-i-u.patch \
21 file://coreutils-i18n.patch \
22 file://coreutils-overflow.patch \
23 file://coreutils-fix-install.patch \
24 file://man-touch.patch \
25 file://coreutils_fix_for_automake-1.12.patch \
26 file://coreutils-fix-texinfo.patch \
27 file://fix_for_manpage_building.patch \
28 file://loadavg.patch \
29 "
30
31SRC_URI[md5sum] = "c9607d8495f16e98906e7ed2d9751a06"
32SRC_URI[sha256sum] = "89c2895ad157de50e53298b22d91db116ee4e1dd3fdf4019260254e2e31497b0"
33
34EXTRA_OECONF += "ac_cv_func_getgroups_works=yes \
35 ac_cv_func_strcoll_works=yes"
36
37# acl is not a default feature
38#
39PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)}"
40
41# with, without, depends, rdepends
42#
43PACKAGECONFIG[acl] = "ac_cv_header_sys_acl_h=yes ac_cv_header_acl_libacl_h=yes ac_cv_search_acl_get_file=-lacl,ac_cv_header_sys_acl_h=no ac_cv_header_acl_libacl_h=no ac_cv_search_acl_get_file=,acl,"
44
45
46# [ gets a special treatment and is not included in this
47bindir_progs = "base64 basename cksum comm csplit cut dir dircolors dirname du \
48 env expand expr factor fmt fold groups head hostid id install \
49 join link logname md5sum mkfifo nice nl nohup od paste pathchk \
50 pinky pr printenv printf ptx readlink seq sha1sum sha224sum sha256sum \
51 sha384sum sha512sum shred shuf sort split sum tac tail tee test \
52 tr tsort tty unexpand uniq unlink users vdir wc who whoami yes uptime"
53
54# hostname gets a special treatment and is not included in this
55base_bindir_progs = "cat chgrp chmod chown cp date dd echo false kill ln ls mkdir \
56 mknod mv pwd rm rmdir sleep stty sync touch true uname hostname stat"
57
58sbindir_progs= "chroot"
59
60# Let aclocal use the relative path for the m4 file rather than the
61# absolute since coreutils has a lot of m4 files, otherwise there might
62# be an "Argument list too long" error when it is built in a long/deep
63# directory.
64acpaths = "-I ./m4"
65
66do_install() {
67 autotools_do_install
68
69 install -d ${D}${base_bindir}
70 [ "${bindir}" != "${base_bindir}" ] && for i in ${base_bindir_progs}; do mv ${D}${bindir}/$i ${D}${base_bindir}/$i; done
71
72 install -d ${D}${sbindir}
73 [ "${bindir}" != "${sbindir}" ] && for i in ${sbindir_progs}; do mv ${D}${bindir}/$i ${D}${sbindir}/$i; done
74
75 # [ requires special handling because [.coreutils will cause the sed stuff
76 # in update-alternatives to fail, therefore use lbracket - the name used
77 # for the actual source file.
78 mv ${D}${bindir}/[ ${D}${bindir}/lbracket.${BPN}
79
80 # Newer versions of coreutils do not include su, to mimic this behavior
81 # we simply remove it.
82 rm -f ${D}${bindir}/su
83}
84
85inherit update-alternatives
86
87ALTERNATIVE_PRIORITY = "100"
88
89ALTERNATIVE_${PN} = "lbracket ${bindir_progs} ${base_bindir_progs} ${sbindir_progs}"
90
91ALTERNATIVE_${PN}-doc = "su.1 hostname.1"
92ALTERNATIVE_LINK_NAME[su.1] = "${mandir}/man1/su.1"
93ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1"
94
95ALTERNATIVE_PRIORITY[uptime] = "10"
96ALTERNATIVE_PRIORITY[hostname] = "10"
97
98ALTERNATIVE_LINK_NAME[lbracket] = "${bindir}/["
99ALTERNATIVE_TARGET[lbracket] = "${bindir}/lbracket.${BPN}"
100
101python __anonymous() {
102 for prog in d.getVar('base_bindir_progs').split():
103 d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir'), prog))
104
105 for prog in d.getVar('sbindir_progs').split():
106 d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('sbindir'), prog))
107}
diff --git a/meta/recipes-core/gettext/gettext-0.16.1/disable_java.patch b/meta/recipes-core/gettext/gettext-0.16.1/disable_java.patch
deleted file mode 100644
index e4c5f1566b..0000000000
--- a/meta/recipes-core/gettext/gettext-0.16.1/disable_java.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1
2# Pulled from OpenEmbedded
3#
4# Commented by: Saul Wold <saul.wold@intel.com>
5
6Upstream-Status: Inappropriate [licensing]
7
8Index: gettext-0.16.1/gettext-tools/configure.ac
9===================================================================
10--- gettext-0.16.1.orig/gettext-tools/configure.ac 2006-11-27 09:02:01.000000000 -0800
11+++ gettext-0.16.1/gettext-tools/configure.ac 2011-03-16 16:55:36.111396557 -0700
12@@ -36,27 +36,15 @@
13 gt_JAVA_CHOICE
14
15 gt_GCJ
16-if test -n "$HAVE_GCJ" && test "$JAVA_CHOICE" = yes; then
17- BUILDJAVAEXE=yes
18-else
19 BUILDJAVAEXE=no
20-fi
21 AC_SUBST(BUILDJAVAEXE)
22
23 gt_JAVAEXEC
24 gt_JAVACOMP([1.3])
25 AC_CHECK_PROG(JAR, jar, jar)
26-if test -n "$HAVE_JAVACOMP" && test -n "$JAR" && test "$JAVA_CHOICE" != no; then
27- BUILDJAVA=yes
28-else
29 BUILDJAVA=no
30-fi
31 AC_SUBST(BUILDJAVA)
32-if test -n "$HAVE_JAVAEXEC" && test $BUILDJAVA = yes; then
33- TESTJAVA=yes
34-else
35 TESTJAVA=no
36-fi
37 AC_SUBST(TESTJAVA)
38
39 gt_CSHARPCOMP
diff --git a/meta/recipes-core/gettext/gettext-0.16.1/fix_aclocal_version.patch b/meta/recipes-core/gettext/gettext-0.16.1/fix_aclocal_version.patch
deleted file mode 100644
index 49a10f5b18..0000000000
--- a/meta/recipes-core/gettext/gettext-0.16.1/fix_aclocal_version.patch
+++ /dev/null
@@ -1,110 +0,0 @@
1
2This patch updates the required version number from 2.61 to the
3current 2.65 version of aclocal, this will need to be updated
4when we update aclocal
5
6Upstream-Status: Inappropriate [configuration]
7
8Signed-off-by: Saul Wold <sgw@linux.intel.com>
9
10Index: gettext-0.16.1/autoconf-lib-link/m4/lib-link.m4
11===================================================================
12--- gettext-0.16.1.orig/autoconf-lib-link/m4/lib-link.m4 2011-03-17 02:24:36.391519775 -0700
13+++ gettext-0.16.1/autoconf-lib-link/m4/lib-link.m4 2011-03-17 02:24:45.569526073 -0700
14@@ -148,7 +148,7 @@
15 define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
16 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
17 dnl Autoconf >= 2.61 supports dots in --with options.
18- define([N_A_M_E],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit([$1],[.],[_])],[$1])])
19+ define([N_A_M_E],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.65]),[-1],[translit([$1],[.],[_])],[$1])])
20 dnl By default, look in $includedir and $libdir.
21 use_additional=yes
22 AC_LIB_WITH_FINAL_PREFIX([
23Index: gettext-0.16.1/autoconf-lib-link/tests/rpathly/aclocal.m4
24===================================================================
25--- gettext-0.16.1.orig/autoconf-lib-link/tests/rpathly/aclocal.m4 2011-03-17 02:24:36.391519775 -0700
26+++ gettext-0.16.1/autoconf-lib-link/tests/rpathly/aclocal.m4 2011-03-17 02:24:45.570526904 -0700
27@@ -11,8 +11,8 @@
28 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
29 # PARTICULAR PURPOSE.
30
31-m4_if(m4_PACKAGE_VERSION, [2.61],,
32-[m4_fatal([this file was generated for autoconf 2.61.
33+m4_if(m4_PACKAGE_VERSION, [2.65],,
34+[m4_fatal([this file was generated for autoconf 2.65.
35 You have another version of autoconf. If you want to use that,
36 you should regenerate the build system entirely.], [63])])
37
38Index: gettext-0.16.1/autoconf-lib-link/tests/rpathx/aclocal.m4
39===================================================================
40--- gettext-0.16.1.orig/autoconf-lib-link/tests/rpathx/aclocal.m4 2011-03-17 02:24:36.391519775 -0700
41+++ gettext-0.16.1/autoconf-lib-link/tests/rpathx/aclocal.m4 2011-03-17 02:24:45.572525773 -0700
42@@ -11,8 +11,8 @@
43 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
44 # PARTICULAR PURPOSE.
45
46-m4_if(m4_PACKAGE_VERSION, [2.61],,
47-[m4_fatal([this file was generated for autoconf 2.61.
48+m4_if(m4_PACKAGE_VERSION, [2.65],,
49+[m4_fatal([this file was generated for autoconf 2.65.
50 You have another version of autoconf. If you want to use that,
51 you should regenerate the build system entirely.], [63])])
52
53Index: gettext-0.16.1/autoconf-lib-link/tests/rpathy/aclocal.m4
54===================================================================
55--- gettext-0.16.1.orig/autoconf-lib-link/tests/rpathy/aclocal.m4 2011-03-17 02:24:36.391519775 -0700
56+++ gettext-0.16.1/autoconf-lib-link/tests/rpathy/aclocal.m4 2011-03-17 02:24:45.578394916 -0700
57@@ -11,7 +11,7 @@
58 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
59 # PARTICULAR PURPOSE.
60
61-m4_if(m4_PACKAGE_VERSION, [2.61],,
62+m4_if(m4_PACKAGE_VERSION, [2.65],,
63 [m4_fatal([this file was generated for autoconf 2.61.
64 You have another version of autoconf. If you want to use that,
65 you should regenerate the build system entirely.], [63])])
66Index: gettext-0.16.1/autoconf-lib-link/tests/rpathz/aclocal.m4
67===================================================================
68--- gettext-0.16.1.orig/autoconf-lib-link/tests/rpathz/aclocal.m4 2011-03-17 02:24:36.391519775 -0700
69+++ gettext-0.16.1/autoconf-lib-link/tests/rpathz/aclocal.m4 2011-03-17 02:24:45.586395416 -0700
70@@ -11,8 +11,8 @@
71 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
72 # PARTICULAR PURPOSE.
73
74-m4_if(m4_PACKAGE_VERSION, [2.61],,
75-[m4_fatal([this file was generated for autoconf 2.61.
76+m4_if(m4_PACKAGE_VERSION, [2.65],,
77+[m4_fatal([this file was generated for autoconf 2.65.
78 You have another version of autoconf. If you want to use that,
79 you should regenerate the build system entirely.], [63])])
80
81Index: gettext-0.16.1/gettext-tools/aclocal.m4
82===================================================================
83--- gettext-0.16.1.orig/gettext-tools/aclocal.m4 2006-11-27 09:34:32.000000000 -0800
84+++ gettext-0.16.1/gettext-tools/aclocal.m4 2011-03-17 02:27:01.135682807 -0700
85@@ -11,8 +11,8 @@
86 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
87 # PARTICULAR PURPOSE.
88
89-m4_if(m4_PACKAGE_VERSION, [2.61],,
90-[m4_fatal([this file was generated for autoconf 2.61.
91+m4_if(m4_PACKAGE_VERSION, [2.65],,
92+[m4_fatal([this file was generated for autoconf 2.65.
93 You have another version of autoconf. If you want to use that,
94 you should regenerate the build system entirely.], [63])])
95
96Index: gettext-0.16.1/gettext-tools/examples/aclocal.m4
97===================================================================
98--- gettext-0.16.1.orig/gettext-tools/examples/aclocal.m4 2006-11-27 09:16:23.000000000 -0800
99+++ gettext-0.16.1/gettext-tools/examples/aclocal.m4 2011-03-17 02:26:52.589396683 -0700
100@@ -11,8 +11,8 @@
101 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
102 # PARTICULAR PURPOSE.
103
104-m4_if(m4_PACKAGE_VERSION, [2.61],,
105-[m4_fatal([this file was generated for autoconf 2.61.
106+m4_if(m4_PACKAGE_VERSION, [2.65],,
107+[m4_fatal([this file was generated for autoconf 2.65.
108 You have another version of autoconf. If you want to use that,
109 you should regenerate the build system entirely.], [63])])
110
diff --git a/meta/recipes-core/gettext/gettext-0.16.1/fix_gnu_source_circular.patch b/meta/recipes-core/gettext/gettext-0.16.1/fix_gnu_source_circular.patch
deleted file mode 100644
index fd5feebc85..0000000000
--- a/meta/recipes-core/gettext/gettext-0.16.1/fix_gnu_source_circular.patch
+++ /dev/null
@@ -1,348 +0,0 @@
1
2This patch removes the circular dependency on AC_GNU_SOURCE in
3AC_USE_SYSTEM_EXTENSIONS.
4
5Thanks to Mark Hatle for the timely pointers and fixes.
6
7Upstream-Status: Inappropriate [licensing]
8
9Signed-off-by: Saul Wold <sgw@linux.intel.com>
10
11diff -ru gettext-0.16.1/gettext-runtime/gnulib-m4/extensions.m4 gettext.patched/gettext-runtime/gnulib-m4/extensions.m4
12--- gettext-0.16.1/gettext-runtime/gnulib-m4/extensions.m4 2006-11-27 09:14:38.000000000 -0800
13+++ gettext.patched/gettext-runtime/gnulib-m4/extensions.m4 2011-03-16 23:54:01.711923448 -0700
14@@ -16,43 +16,47 @@
15 # ------------------------
16 # Enable extensions on systems that normally disable them,
17 # typically due to standards-conformance issues.
18-AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
19-[
20- AC_BEFORE([$0], [AC_COMPILE_IFELSE])
21- AC_BEFORE([$0], [AC_RUN_IFELSE])
22-
23- AC_REQUIRE([AC_GNU_SOURCE])
24- AC_REQUIRE([AC_AIX])
25- AC_REQUIRE([AC_MINIX])
26-
27- AH_VERBATIM([__EXTENSIONS__],
28-[/* Enable extensions on Solaris. */
29-#ifndef __EXTENSIONS__
30-# undef __EXTENSIONS__
31-#endif
32-#ifndef _POSIX_PTHREAD_SEMANTICS
33-# undef _POSIX_PTHREAD_SEMANTICS
34-#endif
35-#ifndef _TANDEM_SOURCE
36-# undef _TANDEM_SOURCE
37-#endif])
38- AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
39- [ac_cv_safe_to_define___extensions__],
40- [AC_COMPILE_IFELSE(
41- [AC_LANG_PROGRAM([
42-# define __EXTENSIONS__ 1
43- AC_INCLUDES_DEFAULT])],
44- [ac_cv_safe_to_define___extensions__=yes],
45- [ac_cv_safe_to_define___extensions__=no])])
46- test $ac_cv_safe_to_define___extensions__ = yes &&
47- AC_DEFINE([__EXTENSIONS__])
48- AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
49- AC_DEFINE([_TANDEM_SOURCE])
50-])
51+#AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
52+#[
53+# AC_BEFORE([$0], [AC_COMPILE_IFELSE])
54+# AC_BEFORE([$0], [AC_RUN_IFELSE])
55+#
56+# AC_REQUIRE([AC_GNU_SOURCE])
57+# AC_REQUIRE([AC_AIX])
58+# AC_REQUIRE([AC_MINIX])
59+#
60+# AH_VERBATIM([__EXTENSIONS__],
61+#[/* Enable extensions on Solaris. */
62+##ifndef __EXTENSIONS__
63+## undef __EXTENSIONS__
64+##endif
65+##ifndef _POSIX_PTHREAD_SEMANTICS
66+## undef _POSIX_PTHREAD_SEMANTICS
67+##endif
68+##ifndef _TANDEM_SOURCE
69+## undef _TANDEM_SOURCE
70+##endif])
71+# AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
72+# [ac_cv_safe_to_define___extensions__],
73+# [AC_COMPILE_IFELSE(
74+# [AC_LANG_PROGRAM([
75+## define __EXTENSIONS__ 1
76+# AC_INCLUDES_DEFAULT])],
77+# [ac_cv_safe_to_define___extensions__=yes],
78+# [ac_cv_safe_to_define___extensions__=no])])
79+# test $ac_cv_safe_to_define___extensions__ = yes &&
80+# AC_DEFINE([__EXTENSIONS__])
81+# AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
82+# AC_DEFINE([_TANDEM_SOURCE])
83+#])
84
85 # gl_USE_SYSTEM_EXTENSIONS
86 # ------------------------
87 # Enable extensions on systems that normally disable them,
88 # typically due to standards-conformance issues.
89 AC_DEFUN([gl_USE_SYSTEM_EXTENSIONS],
90- [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])])
91+[
92+ AC_REQUIRE([AC_GNU_SOURCE])
93+
94+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
95+])
96diff -ru gettext-0.16.1/gettext-runtime/gnulib-m4/gnulib-comp.m4 gettext.patched/gettext-runtime/gnulib-m4/gnulib-comp.m4
97--- gettext-0.16.1/gettext-runtime/gnulib-m4/gnulib-comp.m4 2006-11-27 09:33:19.000000000 -0800
98+++ gettext.patched/gettext-runtime/gnulib-m4/gnulib-comp.m4 2011-03-16 23:50:17.471531838 -0700
99@@ -25,7 +25,7 @@
100 m4_pattern_allow([^gl_LIBOBJS$])dnl a variable
101 m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable
102 AC_REQUIRE([AC_PROG_RANLIB])
103- AC_REQUIRE([AC_GNU_SOURCE])
104+ dnl AC_REQUIRE([AC_GNU_SOURCE])
105 AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
106 ])
107
108diff -ru gettext-0.16.1/gettext-runtime/gnulib-m4/mbchar.m4 gettext.patched/gettext-runtime/gnulib-m4/mbchar.m4
109--- gettext-0.16.1/gettext-runtime/gnulib-m4/mbchar.m4 2006-11-27 09:14:38.000000000 -0800
110+++ gettext.patched/gettext-runtime/gnulib-m4/mbchar.m4 2011-03-16 23:50:10.814396529 -0700
111@@ -9,7 +9,7 @@
112
113 AC_DEFUN([gl_MBCHAR],
114 [
115- AC_REQUIRE([AC_GNU_SOURCE])
116+ dnl AC_REQUIRE([AC_GNU_SOURCE])
117 dnl The following line is that so the user can test HAVE_WCHAR_H
118 dnl before #include "mbchar.h".
119 AC_CHECK_HEADERS_ONCE([wchar.h])
120diff -ru gettext-0.16.1/gettext-runtime/gnulib-m4/wcwidth.m4 gettext.patched/gettext-runtime/gnulib-m4/wcwidth.m4
121--- gettext-0.16.1/gettext-runtime/gnulib-m4/wcwidth.m4 2006-11-27 09:14:38.000000000 -0800
122+++ gettext.patched/gettext-runtime/gnulib-m4/wcwidth.m4 2011-03-16 23:50:08.357396247 -0700
123@@ -7,7 +7,7 @@
124 AC_DEFUN([gl_FUNC_WCWIDTH],
125 [
126 dnl Persuade glibc <wchar.h> to declare wcwidth().
127- AC_REQUIRE([AC_GNU_SOURCE])
128+ dnl AC_REQUIRE([AC_GNU_SOURCE])
129
130 AC_REQUIRE([AC_C_INLINE])
131 AC_REQUIRE([gt_TYPE_WCHAR_T])
132diff -ru gettext-0.16.1/gettext-runtime/m4/lock.m4 gettext.patched/gettext-runtime/m4/lock.m4
133--- gettext-0.16.1/gettext-runtime/m4/lock.m4 2006-10-24 13:59:59.000000000 -0700
134+++ gettext.patched/gettext-runtime/m4/lock.m4 2011-03-16 23:50:04.355891676 -0700
135@@ -35,7 +35,7 @@
136 AC_BEFORE([$0], [gl_ARGP])dnl
137
138 AC_REQUIRE([AC_CANONICAL_HOST])
139- AC_REQUIRE([AC_GNU_SOURCE]) dnl needed for pthread_rwlock_t on glibc systems
140+ dnl AC_REQUIRE([AC_GNU_SOURCE]) dnl needed for pthread_rwlock_t on glibc systems
141 dnl Check for multithreading.
142 AC_ARG_ENABLE(threads,
143 AC_HELP_STRING([--enable-threads={posix|solaris|pth|win32}], [specify multithreading API])
144diff -ru gettext-0.16.1/gettext-tools/gnulib-m4/extensions.m4 gettext.patched/gettext-tools/gnulib-m4/extensions.m4
145--- gettext-0.16.1/gettext-tools/gnulib-m4/extensions.m4 2006-11-27 09:14:54.000000000 -0800
146+++ gettext.patched/gettext-tools/gnulib-m4/extensions.m4 2011-03-16 23:53:28.487671266 -0700
147@@ -16,43 +16,47 @@
148 # ------------------------
149 # Enable extensions on systems that normally disable them,
150 # typically due to standards-conformance issues.
151-AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
152-[
153- AC_BEFORE([$0], [AC_COMPILE_IFELSE])
154- AC_BEFORE([$0], [AC_RUN_IFELSE])
155-
156- AC_REQUIRE([AC_GNU_SOURCE])
157- AC_REQUIRE([AC_AIX])
158- AC_REQUIRE([AC_MINIX])
159-
160- AH_VERBATIM([__EXTENSIONS__],
161-[/* Enable extensions on Solaris. */
162-#ifndef __EXTENSIONS__
163-# undef __EXTENSIONS__
164-#endif
165-#ifndef _POSIX_PTHREAD_SEMANTICS
166-# undef _POSIX_PTHREAD_SEMANTICS
167-#endif
168-#ifndef _TANDEM_SOURCE
169-# undef _TANDEM_SOURCE
170-#endif])
171- AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
172- [ac_cv_safe_to_define___extensions__],
173- [AC_COMPILE_IFELSE(
174- [AC_LANG_PROGRAM([
175-# define __EXTENSIONS__ 1
176- AC_INCLUDES_DEFAULT])],
177- [ac_cv_safe_to_define___extensions__=yes],
178- [ac_cv_safe_to_define___extensions__=no])])
179- test $ac_cv_safe_to_define___extensions__ = yes &&
180- AC_DEFINE([__EXTENSIONS__])
181- AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
182- AC_DEFINE([_TANDEM_SOURCE])
183-])
184+#AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
185+#[
186+# AC_BEFORE([$0], [AC_COMPILE_IFELSE])
187+# AC_BEFORE([$0], [AC_RUN_IFELSE])
188+#
189+# AC_REQUIRE([AC_GNU_SOURCE])
190+# AC_REQUIRE([AC_AIX])
191+# AC_REQUIRE([AC_MINIX])
192+#
193+# AH_VERBATIM([__EXTENSIONS__],
194+#[/* Enable extensions on Solaris. */
195+##ifndef __EXTENSIONS__
196+## undef __EXTENSIONS__
197+##endif
198+##ifndef _POSIX_PTHREAD_SEMANTICS
199+## undef _POSIX_PTHREAD_SEMANTICS
200+##endif
201+##ifndef _TANDEM_SOURCE
202+## undef _TANDEM_SOURCE
203+##endif])
204+# AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
205+# [ac_cv_safe_to_define___extensions__],
206+# [AC_COMPILE_IFELSE(
207+# [AC_LANG_PROGRAM([
208+## define __EXTENSIONS__ 1
209+# AC_INCLUDES_DEFAULT])],
210+# [ac_cv_safe_to_define___extensions__=yes],
211+# [ac_cv_safe_to_define___extensions__=no])])
212+# test $ac_cv_safe_to_define___extensions__ = yes &&
213+# AC_DEFINE([__EXTENSIONS__])
214+# AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
215+# AC_DEFINE([_TANDEM_SOURCE])
216+#])
217
218 # gl_USE_SYSTEM_EXTENSIONS
219 # ------------------------
220 # Enable extensions on systems that normally disable them,
221 # typically due to standards-conformance issues.
222 AC_DEFUN([gl_USE_SYSTEM_EXTENSIONS],
223- [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])])
224+[
225+ AC_REQUIRE([AC_GNU_SOURCE])
226+
227+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
228+])
229diff -ru gettext-0.16.1/gettext-tools/gnulib-m4/fnmatch.m4 gettext.patched/gettext-tools/gnulib-m4/fnmatch.m4
230--- gettext-0.16.1/gettext-tools/gnulib-m4/fnmatch.m4 2006-11-27 09:14:54.000000000 -0800
231+++ gettext.patched/gettext-tools/gnulib-m4/fnmatch.m4 2011-03-16 23:52:06.477463671 -0700
232@@ -91,7 +91,7 @@
233 AC_DEFUN([gl_FUNC_FNMATCH_GNU],
234 [
235 dnl Persuade glibc <fnmatch.h> to declare FNM_CASEFOLD etc.
236- AC_REQUIRE([AC_GNU_SOURCE])
237+ dnl AC_REQUIRE([AC_GNU_SOURCE])
238
239 FNMATCH_H=
240 _AC_FUNC_FNMATCH_IF([GNU], [ac_cv_func_fnmatch_gnu],
241diff -ru gettext-0.16.1/gettext-tools/gnulib-m4/getdelim.m4 gettext.patched/gettext-tools/gnulib-m4/getdelim.m4
242--- gettext-0.16.1/gettext-tools/gnulib-m4/getdelim.m4 2006-11-27 09:14:54.000000000 -0800
243+++ gettext.patched/gettext-tools/gnulib-m4/getdelim.m4 2011-03-16 23:52:22.871674845 -0700
244@@ -12,7 +12,7 @@
245 [
246
247 dnl Persuade glibc <stdio.h> to declare getdelim().
248- AC_REQUIRE([AC_GNU_SOURCE])
249+ dnl AC_REQUIRE([AC_GNU_SOURCE])
250
251 AC_REPLACE_FUNCS(getdelim)
252 AC_CHECK_DECLS_ONCE(getdelim)
253diff -ru gettext-0.16.1/gettext-tools/gnulib-m4/getline.m4 gettext.patched/gettext-tools/gnulib-m4/getline.m4
254--- gettext-0.16.1/gettext-tools/gnulib-m4/getline.m4 2006-11-27 09:14:54.000000000 -0800
255+++ gettext.patched/gettext-tools/gnulib-m4/getline.m4 2011-03-16 23:51:49.829971108 -0700
256@@ -16,7 +16,7 @@
257 AC_DEFUN([gl_FUNC_GETLINE],
258 [
259 dnl Persuade glibc <stdio.h> to declare getline().
260- AC_REQUIRE([AC_GNU_SOURCE])
261+ dnl AC_REQUIRE([AC_GNU_SOURCE])
262
263 AC_CHECK_DECLS([getline])
264
265diff -ru gettext-0.16.1/gettext-tools/gnulib-m4/gnulib-comp.m4 gettext.patched/gettext-tools/gnulib-m4/gnulib-comp.m4
266--- gettext-0.16.1/gettext-tools/gnulib-m4/gnulib-comp.m4 2006-11-27 09:33:36.000000000 -0800
267+++ gettext.patched/gettext-tools/gnulib-m4/gnulib-comp.m4 2011-03-16 23:52:18.970450488 -0700
268@@ -25,7 +25,7 @@
269 m4_pattern_allow([^gl_LIBOBJS$])dnl a variable
270 m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable
271 AC_REQUIRE([AC_PROG_RANLIB])
272- AC_REQUIRE([AC_GNU_SOURCE])
273+ dnl AC_REQUIRE([AC_GNU_SOURCE])
274 AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
275 AC_REQUIRE([gl_LOCK_EARLY])
276 ])
277diff -ru gettext-0.16.1/gettext-tools/gnulib-m4/mbchar.m4 gettext.patched/gettext-tools/gnulib-m4/mbchar.m4
278--- gettext-0.16.1/gettext-tools/gnulib-m4/mbchar.m4 2006-11-27 09:14:55.000000000 -0800
279+++ gettext.patched/gettext-tools/gnulib-m4/mbchar.m4 2011-03-16 23:51:40.844410216 -0700
280@@ -9,7 +9,7 @@
281
282 AC_DEFUN([gl_MBCHAR],
283 [
284- AC_REQUIRE([AC_GNU_SOURCE])
285+ dnl AC_REQUIRE([AC_GNU_SOURCE])
286 dnl The following line is that so the user can test HAVE_WCHAR_H
287 dnl before #include "mbchar.h".
288 AC_CHECK_HEADERS_ONCE([wchar.h])
289diff -ru gettext-0.16.1/gettext-tools/gnulib-m4/stpcpy.m4 gettext.patched/gettext-tools/gnulib-m4/stpcpy.m4
290--- gettext-0.16.1/gettext-tools/gnulib-m4/stpcpy.m4 2006-11-27 09:14:55.000000000 -0800
291+++ gettext.patched/gettext-tools/gnulib-m4/stpcpy.m4 2011-03-16 23:52:14.691396045 -0700
292@@ -7,7 +7,7 @@
293 AC_DEFUN([gl_FUNC_STPCPY],
294 [
295 dnl Persuade glibc <string.h> to declare stpcpy().
296- AC_REQUIRE([AC_GNU_SOURCE])
297+ dnl AC_REQUIRE([AC_GNU_SOURCE])
298
299 AC_REPLACE_FUNCS(stpcpy)
300 if test $ac_cv_func_stpcpy = no; then
301diff -ru gettext-0.16.1/gettext-tools/gnulib-m4/stpncpy.m4 gettext.patched/gettext-tools/gnulib-m4/stpncpy.m4
302--- gettext-0.16.1/gettext-tools/gnulib-m4/stpncpy.m4 2006-11-27 09:14:55.000000000 -0800
303+++ gettext.patched/gettext-tools/gnulib-m4/stpncpy.m4 2011-03-16 23:52:10.356641459 -0700
304@@ -7,7 +7,7 @@
305 AC_DEFUN([gl_FUNC_STPNCPY],
306 [
307 dnl Persuade glibc <string.h> to declare stpncpy().
308- AC_REQUIRE([AC_GNU_SOURCE])
309+ dnl AC_REQUIRE([AC_GNU_SOURCE])
310
311 dnl Both glibc and AIX (4.3.3, 5.1) have an stpncpy() function
312 dnl declared in <string.h>. Its side effects are the same as those
313diff -ru gettext-0.16.1/gettext-tools/gnulib-m4/wcwidth.m4 gettext.patched/gettext-tools/gnulib-m4/wcwidth.m4
314--- gettext-0.16.1/gettext-tools/gnulib-m4/wcwidth.m4 2006-11-27 09:14:55.000000000 -0800
315+++ gettext.patched/gettext-tools/gnulib-m4/wcwidth.m4 2011-03-16 23:51:08.260324221 -0700
316@@ -7,7 +7,7 @@
317 AC_DEFUN([gl_FUNC_WCWIDTH],
318 [
319 dnl Persuade glibc <wchar.h> to declare wcwidth().
320- AC_REQUIRE([AC_GNU_SOURCE])
321+ dnl AC_REQUIRE([AC_GNU_SOURCE])
322
323 AC_REQUIRE([AC_C_INLINE])
324 AC_REQUIRE([gt_TYPE_WCHAR_T])
325diff -ru gettext-0.16.1/gettext-tools/libgettextpo/gnulib-m4/gnulib-comp.m4 gettext.patched/gettext-tools/libgettextpo/gnulib-m4/gnulib-comp.m4
326--- gettext-0.16.1/gettext-tools/libgettextpo/gnulib-m4/gnulib-comp.m4 2006-11-27 09:33:45.000000000 -0800
327+++ gettext.patched/gettext-tools/libgettextpo/gnulib-m4/gnulib-comp.m4 2011-03-16 23:51:02.036061317 -0700
328@@ -25,7 +25,7 @@
329 m4_pattern_allow([^gl_LIBOBJS$])dnl a variable
330 m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable
331 AC_REQUIRE([AC_PROG_RANLIB])
332- AC_REQUIRE([AC_GNU_SOURCE])
333+ dnl AC_REQUIRE([AC_GNU_SOURCE])
334 AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
335 AC_REQUIRE([gl_LOCK_EARLY])
336 ])
337diff -ru gettext-0.16.1/gettext-tools/m4/regex.m4 gettext.patched/gettext-tools/m4/regex.m4
338--- gettext-0.16.1/gettext-tools/m4/regex.m4 2006-11-27 09:02:05.000000000 -0800
339+++ gettext.patched/gettext-tools/m4/regex.m4 2011-03-16 23:50:53.533477195 -0700
340@@ -116,7 +116,7 @@
341 dnl to get them.
342
343 dnl Persuade glibc <string.h> to declare mempcpy().
344- AC_REQUIRE([AC_GNU_SOURCE])
345+ dnl AC_REQUIRE([AC_GNU_SOURCE])
346
347 AC_REQUIRE([AC_C_RESTRICT])
348 AC_REQUIRE([AC_FUNC_ALLOCA])
diff --git a/meta/recipes-core/gettext/gettext-0.16.1/gettext-autoconf-lib-link-no-L.patch b/meta/recipes-core/gettext/gettext-0.16.1/gettext-autoconf-lib-link-no-L.patch
deleted file mode 100644
index 072fe5ff6c..0000000000
--- a/meta/recipes-core/gettext/gettext-0.16.1/gettext-autoconf-lib-link-no-L.patch
+++ /dev/null
@@ -1,19 +0,0 @@
1
2# Pulled from OpenEmbedded
3#
4# Commented by: Saul Wold <saul.wold@intel.com>
5
6Upstream-Status: Inappropriate [licensing]
7
8--- gettext-0.17/autoconf-lib-link/m4/lib-link.m4~ 2009-04-17 15:12:30.000000000 -0700
9+++ gettext-0.17/autoconf-lib-link/m4/lib-link.m4 2009-04-17 15:37:39.000000000 -0700
10@@ -267,6 +267,9 @@
11 fi
12 fi
13 fi
14+ dnl Just let the compiler find the library, the compiler and user are smarter then this script
15+ dnl when cross compiling and working with a relocated install.
16+ found_dir=""
17 if test "X$found_dir" = "X"; then
18 for x in $LDFLAGS $LTLIB[]NAME; do
19 AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
diff --git a/meta/recipes-core/gettext/gettext-0.16.1/gettext-vpath.patch b/meta/recipes-core/gettext/gettext-0.16.1/gettext-vpath.patch
deleted file mode 100644
index f09e450efe..0000000000
--- a/meta/recipes-core/gettext/gettext-0.16.1/gettext-vpath.patch
+++ /dev/null
@@ -1,20 +0,0 @@
1
2# Pulled from OpenEmbedded
3#
4# Commented by: Saul Wold <saul.wold@intel.com>
5
6Upstream-Status: Inappropriate [licensing]
7
8Index: gettext-0.16.1/gettext-runtime/intl/Makefile.in
9===================================================================
10--- gettext-0.16.1.orig/gettext-runtime/intl/Makefile.in 2006-11-27 09:02:00.000000000 -0800
11+++ gettext-0.16.1/gettext-runtime/intl/Makefile.in 2011-03-16 16:04:49.175419930 -0700
12@@ -35,7 +35,7 @@
13 # 'make' does the wrong thing if GNU gettext was configured with
14 # "./configure --srcdir=`pwd`", namely it gets confused by the .lo and .la
15 # files it finds in srcdir = ../../gettext-runtime/intl.
16-VPATH = $(srcdir)
17+#VPATH = $(srcdir)
18
19 prefix = @prefix@
20 exec_prefix = @exec_prefix@
diff --git a/meta/recipes-core/gettext/gettext-0.16.1/hardcode_macro_version.patch b/meta/recipes-core/gettext/gettext-0.16.1/hardcode_macro_version.patch
deleted file mode 100644
index 4da8dd4536..0000000000
--- a/meta/recipes-core/gettext/gettext-0.16.1/hardcode_macro_version.patch
+++ /dev/null
@@ -1,51 +0,0 @@
1
2This patch hardcodes in version 0.17 for the GETTEXT_MACRO_VERSION,
3the version check is only part of 0.17 and will not affect any 0.16.1
4operations
5
6Upstream-Status: Inappropriate [licensing]
7
8Signed-off-by: Saul Wold <sgw@linux.intel.com>
9
10Index: gettext-0.16.1/gettext-runtime/m4/po.m4
11===================================================================
12--- gettext-0.16.1.orig/gettext-runtime/m4/po.m4 2011-03-17 02:24:28.953520231 -0700
13+++ gettext-0.16.1/gettext-runtime/m4/po.m4 2011-03-17 02:28:25.455396862 -0700
14@@ -27,6 +27,9 @@
15 AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
16 AC_REQUIRE([AM_NLS])dnl
17
18+ dnl Hardcode the MACRO_VERSION to 0.17 for gnutls
19+ AC_SUBST([GETTEXT_MACRO_VERSION], [0.17])
20+
21 dnl Perform the following tests also if --disable-nls has been given,
22 dnl because they are needed for "make dist" to work.
23
24Index: gettext-0.16.1/gettext-runtime/po/Makefile.in.in
25===================================================================
26--- gettext-0.16.1.orig/gettext-runtime/po/Makefile.in.in 2011-03-17 02:24:28.953520231 -0700
27+++ gettext-0.16.1/gettext-runtime/po/Makefile.in.in 2011-03-17 02:28:07.574395144 -0700
28@@ -10,6 +10,9 @@
29 #
30 # Origin: gettext-0.16
31
32+# Hardcode this value for gnutls building against gplv2 code
33+GETTEXT_MACRO_VERSION = 0.17
34+
35 PACKAGE = @PACKAGE@
36 VERSION = @VERSION@
37 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
38Index: gettext-0.16.1/gettext-tools/po/Makefile.in.in
39===================================================================
40--- gettext-0.16.1.orig/gettext-tools/po/Makefile.in.in 2011-03-17 02:24:28.953520231 -0700
41+++ gettext-0.16.1/gettext-tools/po/Makefile.in.in 2011-03-17 02:28:07.574395144 -0700
42@@ -10,6 +10,9 @@
43 #
44 # Origin: gettext-0.16
45
46+# Hardcode this value for gnutls building against gplv2 code
47+GETTEXT_MACRO_VERSION = 0.17
48+
49 PACKAGE = @PACKAGE@
50 VERSION = @VERSION@
51 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
diff --git a/meta/recipes-core/gettext/gettext-0.16.1/linklib_from_0.17.patch b/meta/recipes-core/gettext/gettext-0.16.1/linklib_from_0.17.patch
deleted file mode 100644
index d921069711..0000000000
--- a/meta/recipes-core/gettext/gettext-0.16.1/linklib_from_0.17.patch
+++ /dev/null
@@ -1,720 +0,0 @@
1
2# Pulled from OpenEmbedded
3#
4# Commented by: Saul Wold <saul.wold@intel.com>
5
6Upstream-Status: Inappropriate [licensing]
7
8Index: gettext-0.16.1/autoconf-lib-link/m4/lib-link.m4
9===================================================================
10--- gettext-0.16.1.orig/autoconf-lib-link/m4/lib-link.m4 2006-11-27 09:01:58.000000000 -0800
11+++ gettext-0.16.1/autoconf-lib-link/m4/lib-link.m4 2011-03-17 00:36:08.710836720 -0700
12@@ -6,12 +6,14 @@
13
14 dnl From Bruno Haible.
15
16-AC_PREREQ(2.50)
17+AC_PREREQ(2.54)
18
19 dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
20 dnl the libraries corresponding to explicit and implicit dependencies.
21 dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
22 dnl augments the CPPFLAGS variable.
23+dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
24+dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
25 AC_DEFUN([AC_LIB_LINKFLAGS],
26 [
27 AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
28@@ -24,13 +26,16 @@
29 ac_cv_lib[]Name[]_libs="$LIB[]NAME"
30 ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
31 ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
32+ ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
33 ])
34 LIB[]NAME="$ac_cv_lib[]Name[]_libs"
35 LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
36 INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
37+ LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
38 AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
39 AC_SUBST([LIB]NAME)
40 AC_SUBST([LTLIB]NAME)
41+ AC_SUBST([LIB]NAME[_PREFIX])
42 dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
43 dnl results of this search when this library appears as a dependency.
44 HAVE_LIB[]NAME=yes
45@@ -46,6 +51,8 @@
46 dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
47 dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
48 dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
49+dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
50+dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
51 AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
52 [
53 AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
54@@ -82,17 +89,24 @@
55 CPPFLAGS="$ac_save_CPPFLAGS"
56 LIB[]NAME=
57 LTLIB[]NAME=
58+ LIB[]NAME[]_PREFIX=
59+
60 fi
61 AC_SUBST([HAVE_LIB]NAME)
62 AC_SUBST([LIB]NAME)
63 AC_SUBST([LTLIB]NAME)
64+ AC_SUBST([LIB]NAME[_PREFIX])
65 undefine([Name])
66 undefine([NAME])
67 ])
68
69 dnl Determine the platform dependent parameters needed to use rpath:
70-dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
71-dnl hardcode_direct, hardcode_minus_L.
72+dnl acl_libext,
73+dnl acl_shlibext,
74+dnl acl_hardcode_libdir_flag_spec,
75+dnl acl_hardcode_libdir_separator,
76+dnl acl_hardcode_direct,
77+dnl acl_hardcode_minus_L.
78 AC_DEFUN([AC_LIB_RPATH],
79 [
80 dnl Tell automake >= 1.10 to complain if config.rpath is missing.
81@@ -109,12 +123,14 @@
82 acl_cv_rpath=done
83 ])
84 wl="$acl_cv_wl"
85- libext="$acl_cv_libext"
86- shlibext="$acl_cv_shlibext"
87- hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
88- hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
89- hardcode_direct="$acl_cv_hardcode_direct"
90- hardcode_minus_L="$acl_cv_hardcode_minus_L"
91+ acl_libext="$acl_cv_libext"
92+ acl_shlibext="$acl_cv_shlibext"
93+ acl_libname_spec="$acl_cv_libname_spec"
94+ acl_library_names_spec="$acl_cv_library_names_spec"
95+ acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
96+ acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
97+ acl_hardcode_direct="$acl_cv_hardcode_direct"
98+ acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
99 dnl Determine whether the user wants rpath handling at all.
100 AC_ARG_ENABLE(rpath,
101 [ --disable-rpath do not hardcode runtime library paths],
102@@ -124,20 +140,24 @@
103 dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
104 dnl the libraries corresponding to explicit and implicit dependencies.
105 dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
106+dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
107+dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
108 AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
109 [
110 AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
111 define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
112 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
113+ dnl Autoconf >= 2.61 supports dots in --with options.
114+ define([N_A_M_E],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit([$1],[.],[_])],[$1])])
115 dnl By default, look in $includedir and $libdir.
116 use_additional=yes
117 AC_LIB_WITH_FINAL_PREFIX([
118 eval additional_includedir=\"$includedir\"
119 eval additional_libdir=\"$libdir\"
120 ])
121- AC_LIB_ARG_WITH([lib$1-prefix],
122-[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
123- --without-lib$1-prefix don't search for lib$1 in includedir and libdir],
124+ AC_LIB_ARG_WITH([lib]N_A_M_E[-prefix],
125+[ --with-lib]N_A_M_E[-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
126+ --without-lib]N_A_M_E[-prefix don't search for lib$1 in includedir and libdir],
127 [
128 if test "X$withval" = "Xno"; then
129 use_additional=no
130@@ -158,6 +178,7 @@
131 LIB[]NAME=
132 LTLIB[]NAME=
133 INC[]NAME=
134+ LIB[]NAME[]_PREFIX=
135 rpathdirs=
136 ltrpathdirs=
137 names_already_handled=
138@@ -197,27 +218,53 @@
139 found_la=
140 found_so=
141 found_a=
142+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
143+ if test -n "$acl_shlibext"; then
144+ shrext=".$acl_shlibext" # typically: shrext=.so
145+ else
146+ shrext=
147+ fi
148 if test $use_additional = yes; then
149- if test -n "$shlibext" \
150- && { test -f "$additional_libdir/lib$name.$shlibext" \
151- || { test "$shlibext" = dll \
152- && test -f "$additional_libdir/lib$name.dll.a"; }; }; then
153- found_dir="$additional_libdir"
154- if test -f "$additional_libdir/lib$name.$shlibext"; then
155- found_so="$additional_libdir/lib$name.$shlibext"
156+ dir="$additional_libdir"
157+ dnl The same code as in the loop below:
158+ dnl First look for a shared library.
159+ if test -n "$acl_shlibext"; then
160+ if test -f "$dir/$libname$shrext"; then
161+ found_dir="$dir"
162+ found_so="$dir/$libname$shrext"
163 else
164- found_so="$additional_libdir/lib$name.dll.a"
165+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
166+ ver=`(cd "$dir" && \
167+ for f in "$libname$shrext".*; do echo "$f"; done \
168+ | sed -e "s,^$libname$shrext\\\\.,," \
169+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
170+ | sed 1q ) 2>/dev/null`
171+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
172+ found_dir="$dir"
173+ found_so="$dir/$libname$shrext.$ver"
174+ fi
175+ else
176+ eval library_names=\"$acl_library_names_spec\"
177+ for f in $library_names; do
178+ if test -f "$dir/$f"; then
179+ found_dir="$dir"
180+ found_so="$dir/$f"
181+ break
182+ fi
183+ done
184+ fi
185 fi
186- if test -f "$additional_libdir/lib$name.la"; then
187- found_la="$additional_libdir/lib$name.la"
188+ fi
189+ dnl Then look for a static library.
190+ if test "X$found_dir" = "X"; then
191+ if test -f "$dir/$libname.$acl_libext"; then
192+ found_dir="$dir"
193+ found_a="$dir/$libname.$acl_libext"
194 fi
195- else
196- if test -f "$additional_libdir/lib$name.$libext"; then
197- found_dir="$additional_libdir"
198- found_a="$additional_libdir/lib$name.$libext"
199- if test -f "$additional_libdir/lib$name.la"; then
200- found_la="$additional_libdir/lib$name.la"
201- fi
202+ fi
203+ if test "X$found_dir" != "X"; then
204+ if test -f "$dir/$libname.la"; then
205+ found_la="$dir/$libname.la"
206 fi
207 fi
208 fi
209@@ -227,26 +274,44 @@
210 case "$x" in
211 -L*)
212 dir=`echo "X$x" | sed -e 's/^X-L//'`
213- if test -n "$shlibext" \
214- && { test -f "$dir/lib$name.$shlibext" \
215- || { test "$shlibext" = dll \
216- && test -f "$dir/lib$name.dll.a"; }; }; then
217- found_dir="$dir"
218- if test -f "$dir/lib$name.$shlibext"; then
219- found_so="$dir/lib$name.$shlibext"
220+ dnl First look for a shared library.
221+ if test -n "$acl_shlibext"; then
222+ if test -f "$dir/$libname$shrext"; then
223+ found_dir="$dir"
224+ found_so="$dir/$libname$shrext"
225 else
226- found_so="$dir/lib$name.dll.a"
227- fi
228- if test -f "$dir/lib$name.la"; then
229- found_la="$dir/lib$name.la"
230+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
231+ ver=`(cd "$dir" && \
232+ for f in "$libname$shrext".*; do echo "$f"; done \
233+ | sed -e "s,^$libname$shrext\\\\.,," \
234+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
235+ | sed 1q ) 2>/dev/null`
236+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
237+ found_dir="$dir"
238+ found_so="$dir/$libname$shrext.$ver"
239+ fi
240+ else
241+ eval library_names=\"$acl_library_names_spec\"
242+ for f in $library_names; do
243+ if test -f "$dir/$f"; then
244+ found_dir="$dir"
245+ found_so="$dir/$f"
246+ break
247+ fi
248+ done
249+ fi
250 fi
251- else
252- if test -f "$dir/lib$name.$libext"; then
253+ fi
254+ dnl Then look for a static library.
255+ if test "X$found_dir" = "X"; then
256+ if test -f "$dir/$libname.$acl_libext"; then
257 found_dir="$dir"
258- found_a="$dir/lib$name.$libext"
259- if test -f "$dir/lib$name.la"; then
260- found_la="$dir/lib$name.la"
261- fi
262+ found_a="$dir/$libname.$acl_libext"
263+ fi
264+ fi
265+ if test "X$found_dir" != "X"; then
266+ if test -f "$dir/$libname.la"; then
267+ found_la="$dir/$libname.la"
268 fi
269 fi
270 ;;
271@@ -282,12 +347,12 @@
272 ltrpathdirs="$ltrpathdirs $found_dir"
273 fi
274 dnl The hardcoding into $LIBNAME is system dependent.
275- if test "$hardcode_direct" = yes; then
276+ if test "$acl_hardcode_direct" = yes; then
277 dnl Using DIR/libNAME.so during linking hardcodes DIR into the
278 dnl resulting binary.
279 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
280 else
281- if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
282+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
283 dnl Use an explicit option to hardcode DIR into the resulting
284 dnl binary.
285 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
286@@ -318,13 +383,13 @@
287 if test -z "$haveit"; then
288 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
289 fi
290- if test "$hardcode_minus_L" != no; then
291+ if test "$acl_hardcode_minus_L" != no; then
292 dnl FIXME: Not sure whether we should use
293 dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
294 dnl here.
295 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
296 else
297- dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
298+ dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
299 dnl here, because this doesn't fit in flags passed to the
300 dnl compiler. So give up. No hardcoding. This affects only
301 dnl very old systems.
302@@ -512,18 +577,18 @@
303 done
304 done
305 if test "X$rpathdirs" != "X"; then
306- if test -n "$hardcode_libdir_separator"; then
307+ if test -n "$acl_hardcode_libdir_separator"; then
308 dnl Weird platform: only the last -rpath option counts, the user must
309 dnl pass all path elements in one option. We can arrange that for a
310 dnl single library, but not when more than one $LIBNAMEs are used.
311 alldirs=
312 for found_dir in $rpathdirs; do
313- alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
314+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
315 done
316- dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
317+ dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
318 acl_save_libdir="$libdir"
319 libdir="$alldirs"
320- eval flag=\"$hardcode_libdir_flag_spec\"
321+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
322 libdir="$acl_save_libdir"
323 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
324 else
325@@ -531,7 +596,7 @@
326 for found_dir in $rpathdirs; do
327 acl_save_libdir="$libdir"
328 libdir="$found_dir"
329- eval flag=\"$hardcode_libdir_flag_spec\"
330+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
331 libdir="$acl_save_libdir"
332 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
333 done
334@@ -642,3 +707,79 @@
335 fi
336 AC_SUBST([$1])
337 ])
338+
339+dnl For those cases where a variable contains several -L and -l options
340+dnl referring to unknown libraries and directories, this macro determines the
341+dnl necessary additional linker options for the runtime path.
342+dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
343+dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
344+dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
345+dnl otherwise linking without libtool is assumed.
346+AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
347+[
348+ AC_REQUIRE([AC_LIB_RPATH])
349+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
350+ $1=
351+ if test "$enable_rpath" != no; then
352+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
353+ dnl Use an explicit option to hardcode directories into the resulting
354+ dnl binary.
355+ rpathdirs=
356+ next=
357+ for opt in $2; do
358+ if test -n "$next"; then
359+ dir="$next"
360+ dnl No need to hardcode the standard /usr/lib.
361+ if test "X$dir" != "X/usr/$acl_libdirstem"; then
362+ rpathdirs="$rpathdirs $dir"
363+ fi
364+ next=
365+ else
366+ case $opt in
367+ -L) next=yes ;;
368+ -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
369+ dnl No need to hardcode the standard /usr/lib.
370+ if test "X$dir" != "X/usr/$acl_libdirstem"; then
371+ rpathdirs="$rpathdirs $dir"
372+ fi
373+ next= ;;
374+ *) next= ;;
375+ esac
376+ fi
377+ done
378+ if test "X$rpathdirs" != "X"; then
379+ if test -n ""$3""; then
380+ dnl libtool is used for linking. Use -R options.
381+ for dir in $rpathdirs; do
382+ $1="${$1}${$1:+ }-R$dir"
383+ done
384+ else
385+ dnl The linker is used for linking directly.
386+ if test -n "$acl_hardcode_libdir_separator"; then
387+ dnl Weird platform: only the last -rpath option counts, the user
388+ dnl must pass all path elements in one option.
389+ alldirs=
390+ for dir in $rpathdirs; do
391+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
392+ done
393+ acl_save_libdir="$libdir"
394+ libdir="$alldirs"
395+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
396+ libdir="$acl_save_libdir"
397+ $1="$flag"
398+ else
399+ dnl The -rpath options are cumulative.
400+ for dir in $rpathdirs; do
401+ acl_save_libdir="$libdir"
402+ libdir="$dir"
403+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
404+ libdir="$acl_save_libdir"
405+ $1="${$1}${$1:+ }$flag"
406+ done
407+ fi
408+ fi
409+ fi
410+ fi
411+ fi
412+ AC_SUBST([$1])
413+])
414Index: gettext-0.16.1/autoconf-lib-link/config.rpath
415===================================================================
416--- gettext-0.16.1.orig/autoconf-lib-link/config.rpath 2006-11-27 09:01:58.000000000 -0800
417+++ gettext-0.16.1/autoconf-lib-link/config.rpath 2011-03-17 00:33:23.336539490 -0700
418@@ -2,7 +2,7 @@
419 # Output a system dependent set of variables, describing how to set the
420 # run time search path of shared libraries in an executable.
421 #
422-# Copyright 1996-2006 Free Software Foundation, Inc.
423+# Copyright 1996-2007 Free Software Foundation, Inc.
424 # Taken from GNU libtool, 2001
425 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
426 #
427@@ -47,6 +47,18 @@
428 done
429 cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
430
431+# Code taken from libtool.m4's _LT_CC_BASENAME.
432+
433+for cc_temp in $CC""; do
434+ case $cc_temp in
435+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
436+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
437+ \-*) ;;
438+ *) break;;
439+ esac
440+done
441+cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
442+
443 # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
444
445 wl=
446@@ -64,7 +76,14 @@
447 ;;
448 esac
449 ;;
450- mingw* | pw32* | os2*)
451+ darwin*)
452+ case $cc_basename in
453+ xlc*)
454+ wl='-Wl,'
455+ ;;
456+ esac
457+ ;;
458+ mingw* | cygwin* | pw32* | os2*)
459 ;;
460 hpux9* | hpux10* | hpux11*)
461 wl='-Wl,'
462@@ -74,7 +93,7 @@
463 ;;
464 newsos6)
465 ;;
466- linux*)
467+ linux* | k*bsd*-gnu)
468 case $cc_basename in
469 icc* | ecc*)
470 wl='-Wl,'
471@@ -100,7 +119,7 @@
472 osf3* | osf4* | osf5*)
473 wl='-Wl,'
474 ;;
475- sco3.2v5*)
476+ rdos*)
477 ;;
478 solaris*)
479 wl='-Wl,'
480@@ -108,11 +127,14 @@
481 sunos4*)
482 wl='-Qoption ld '
483 ;;
484- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
485+ sysv4 | sysv4.2uw2* | sysv4.3*)
486 wl='-Wl,'
487 ;;
488 sysv4*MP*)
489 ;;
490+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
491+ wl='-Wl,'
492+ ;;
493 unicos*)
494 wl='-Wl,'
495 ;;
496@@ -141,6 +163,10 @@
497 # we just hope/assume this is gcc and not c89 (= MSVC++)
498 with_gnu_ld=yes
499 ;;
500+ interix*)
501+ # we just hope/assume this is gcc and not c89 (= MSVC++)
502+ with_gnu_ld=yes
503+ ;;
504 openbsd*)
505 with_gnu_ld=no
506 ;;
507@@ -189,11 +215,11 @@
508 ld_shlibs=no
509 fi
510 ;;
511- interix3*)
512+ interix[3-9]*)
513 hardcode_direct=no
514 hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
515 ;;
516- linux*)
517+ gnu* | linux* | k*bsd*-gnu)
518 if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
519 :
520 else
521@@ -280,7 +306,7 @@
522 strings "$collect2name" | grep resolve_lib_name >/dev/null
523 then
524 # We have reworked collect2
525- hardcode_direct=yes
526+ :
527 else
528 # We have old collect2
529 hardcode_direct=unsupported
530@@ -359,7 +385,7 @@
531 hardcode_direct=yes
532 hardcode_minus_L=yes
533 ;;
534- freebsd* | kfreebsd*-gnu | dragonfly*)
535+ freebsd* | dragonfly*)
536 hardcode_libdir_flag_spec='-R$libdir'
537 hardcode_direct=yes
538 ;;
539@@ -412,18 +438,22 @@
540 hardcode_libdir_separator=:
541 ;;
542 openbsd*)
543- hardcode_direct=yes
544- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
545- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
546+ if test -f /usr/libexec/ld.so; then
547+ hardcode_direct=yes
548+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
549+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
550+ else
551+ case "$host_os" in
552+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
553+ hardcode_libdir_flag_spec='-R$libdir'
554+ ;;
555+ *)
556+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
557+ ;;
558+ esac
559+ fi
560 else
561- case "$host_os" in
562- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
563- hardcode_libdir_flag_spec='-R$libdir'
564- ;;
565- *)
566- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
567- ;;
568- esac
569+ ld_shlibs=no
570 fi
571 ;;
572 os2*)
573@@ -471,7 +501,7 @@
574 ld_shlibs=yes
575 fi
576 ;;
577- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
578+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* |sco3.2v5.0.[024]*)
579 ;;
580 sysv5* | sco3.2v5* | sco5v6*)
581 hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
582@@ -488,33 +518,51 @@
583
584 # Check dynamic linker characteristics
585 # Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
586+# Unlike libtool.m4, here we don't care about _all_ names of the library, but
587+# only about the one the linker finds when passed -lNAME. This is the last
588+# element of library_names_spec in libtool.m4, or possibly two of them if the
589+# linker has special search rules.
590+library_names_spec= # the last element of library_names_spec in libtool.m4
591 libname_spec='lib$name'
592 case "$host_os" in
593 aix3*)
594+ library_names_spec='$libname.a'
595 ;;
596 aix4* | aix5*)
597+ library_names_spec='$libname$shrext'
598 ;;
599 amigaos*)
600+ library_names_spec='$libname.a'
601 ;;
602 beos*)
603+ library_names_spec='$libname$shrext'
604 ;;
605 bsdi[45]*)
606+ library_names_spec='$libname$shrext'
607 ;;
608 cygwin* | mingw* | pw32*)
609 shrext=.dll
610+ library_names_spec='$libname.dll.a $libname.lib'
611 ;;
612 darwin* | rhapsody*)
613 shrext=.dylib
614+ library_names_spec='$libname$shrext'
615 ;;
616 dgux*)
617+ library_names_spec='$libname$shrext'
618 ;;
619 freebsd1*)
620 ;;
621- kfreebsd*-gnu)
622- ;;
623 freebsd* | dragonfly*)
624+ case "$host_os" in
625+ freebsd[123]*)
626+ library_names_spec='$libname$shrext$versuffix' ;;
627+ *)
628+ library_names_spec='$libname$shrext' ;;
629+ esac
630 ;;
631 gnu*)
632+ library_names_spec='$libname$shrext'
633 ;;
634 hpux9* | hpux10* | hpux11*)
635 case $host_cpu in
636@@ -528,10 +576,13 @@
637 shrext=.sl
638 ;;
639 esac
640+ library_names_spec='$libname$shrext'
641 ;;
642- interix3*)
643+ interix[3-9]*)
644+ library_names_spec='$libname$shrext'
645 ;;
646 irix5* | irix6* | nonstopux*)
647+ library_names_spec='$libname$shrext'
648 case "$host_os" in
649 irix5* | nonstopux*)
650 libsuff= shlibsuff=
651@@ -548,33 +599,46 @@
652 ;;
653 linux*oldld* | linux*aout* | linux*coff*)
654 ;;
655- linux*)
656+ linux* | k*bsd*-gnu)
657+ library_names_spec='$libname$shrext'
658 ;;
659 knetbsd*-gnu)
660+ library_names_spec='$libname$shrext'
661 ;;
662 netbsd*)
663+ library_names_spec='$libname$shrext'
664 ;;
665 newsos6)
666+ library_names_spec='$libname$shrext'
667 ;;
668 nto-qnx*)
669+ library_names_spec='$libname$shrext'
670 ;;
671 openbsd*)
672+ library_names_spec='$libname$shrext$versuffix'
673 ;;
674 os2*)
675 libname_spec='$name'
676 shrext=.dll
677+ library_names_spec='$libname.a'
678 ;;
679 osf3* | osf4* | osf5*)
680+ library_names_spec='$libname$shrext'
681 ;;
682 solaris*)
683+ library_names_spec='$libname$shrext'
684 ;;
685 sunos4*)
686+ library_names_spec='$libname$shrext$versuffix'
687 ;;
688 sysv4 | sysv4.3*)
689+ library_names_spec='$libname$shrext'
690 ;;
691 sysv4*MP*)
692+ library_names_spec='$libname$shrext'
693 ;;
694 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
695+ library_names_spec='$libname$shrext'
696 ;;
697 uts4*)
698 ;;
699@@ -583,6 +647,8 @@
700 sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
701 escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
702 shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
703+escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
704+escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
705 escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
706
707 LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
708@@ -596,6 +662,12 @@
709 # Shared library suffix (normally "so").
710 shlibext="$shlibext"
711
712+# Format of library name prefix.
713+libname_spec="$escaped_libname_spec"
714+
715+# Library names that the linker finds when passed -lNAME.
716+library_names_spec="$escaped_library_names_spec"
717+
718 # Flag to hardcode \$libdir into a binary during linking.
719 # This must work even if \$libdir does not exist.
720 hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
diff --git a/meta/recipes-core/gettext/gettext_0.16.1.bb b/meta/recipes-core/gettext/gettext_0.16.1.bb
deleted file mode 100644
index e79f4dacf3..0000000000
--- a/meta/recipes-core/gettext/gettext_0.16.1.bb
+++ /dev/null
@@ -1,124 +0,0 @@
1SUMMARY = "Utilities and libraries for producing multi-lingual messages"
2DESCRIPTION = "GNU gettext is a set of tools that provides a framework to help other programs produce multi-lingual messages. These tools include a set of conventions about how programs should be written to support message catalogs, a directory and file naming organization for the message catalogs themselves, a runtime library supporting the retrieval of translated messages, and a few stand-alone programs to massage in various ways the sets of translatable and already translated strings."
3HOMEPAGE = "http://www.gnu.org/software/gettext/gettext.html"
4SECTION = "libs"
5LICENSE = "GPLv2"
6LIC_FILES_CHKSUM = "file://COPYING;md5=9ea3144f04c41cd2eada5d3f472e6ea5"
7
8PR = "r6"
9DEPENDS = "virtual/libiconv"
10DEPENDS_class-native = ""
11PROVIDES = "virtual/libintl virtual/gettext"
12PROVIDES_class-native = "virtual/gettext-native"
13
14SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
15 file://gettext-vpath.patch \
16 file://linklib_from_0.17.patch \
17 file://gettext-autoconf-lib-link-no-L.patch \
18 file://disable_java.patch \
19 file://fix_aclocal_version.patch \
20 file://fix_gnu_source_circular.patch \
21 file://hardcode_macro_version.patch \
22 "
23
24SRC_URI[md5sum] = "3d9ad24301c6d6b17ec30704a13fe127"
25SRC_URI[sha256sum] = "0bf850d1a079fb5a61f0a47b1a9efd35eb44032255375e1cedb0253bc27b376d"
26
27PARALLEL_MAKE = ""
28
29LDFLAGS_prepend_libc-uclibc = " -lrt -lpthread "
30
31inherit autotools texinfo
32
33EXTRA_OECONF += "--without-lispdir \
34 --disable-csharp \
35 --disable-libasprintf \
36 --disable-java \
37 --disable-native-java \
38 --disable-openmp \
39 --without-emacs \
40 "
41EXTRA_OECONF_append_libc-musl = "\
42 gt_cv_func_gnugettext1_libc=yes \
43 gt_cv_func_gnugettext2_libc=yes \
44 "
45
46acpaths = '-I ${S}/autoconf-lib-link/m4/ \
47 -I ${S}/gettext-runtime/m4 \
48 -I ${S}/gettext-tools/m4'
49
50do_configure_prepend() {
51 rm -f ${S}/config/m4/libtool.m4
52}
53
54do_install_append_libc-musl () {
55 rm -f ${D}${libdir}/charset.alias
56}
57
58# these lack the .x behind the .so, but shouldn't be in the -dev package
59# Otherwise you get the following results:
60# 7.4M glibc/images/ep93xx/Angstrom-console-image-glibc-ipk-2008.1-test-20080104-ep93xx.rootfs.tar.gz
61# 25M uclibc/images/ep93xx/Angstrom-console-image-uclibc-ipk-2008.1-test-20080104-ep93xx.rootfs.tar.gz
62# because gettext depends on gettext-dev, which pulls in more -dev packages:
63# 15228 KiB /ep93xx/libstdc++-dev_4.2.2-r2_ep93xx.ipk
64# 1300 KiB /ep93xx/uclibc-dev_0.9.29-r8_ep93xx.ipk
65# 140 KiB /armv4t/gettext-dev_0.14.1-r6_armv4t.ipk
66# 4 KiB /ep93xx/libgcc-s-dev_4.2.2-r2_ep93xx.ipk
67
68PACKAGES =+ "libgettextlib libgettextsrc"
69FILES_libgettextlib = "${libdir}/libgettextlib-*.so*"
70FILES_libgettextsrc = "${libdir}/libgettextsrc-*.so*"
71
72PACKAGES =+ "gettext-runtime gettext-runtime-dev gettext-runtime-staticdev gettext-runtime-doc"
73
74FILES_${PN} += "${libdir}/${BPN}/*"
75
76FILES_gettext-runtime = "${bindir}/gettext \
77 ${bindir}/ngettext \
78 ${bindir}/envsubst \
79 ${bindir}/gettext.sh \
80 ${libdir}/libasprintf${SODEV} \
81 ${libdir}/GNU.Gettext.dll \
82 "
83FILES_gettext-runtime_append_libc-uclibc = " ${libdir}/libintl.so.* \
84 ${libdir}/charset.alias \
85 "
86FILES_gettext-runtime-staticdev += "${libdir}/libasprintf.a"
87FILES_gettext-runtime-dev += "${includedir}/autosprintf.h \
88 ${libdir}/libasprintf${SOLIBDEV}"
89FILES_gettext-runtime-dev_append_libc-uclibc = " ${libdir}/libintl.so \
90 ${includedir}/libintl.h \
91 "
92FILES_gettext-runtime-doc = "${mandir}/man1/gettext.* \
93 ${mandir}/man1/ngettext.* \
94 ${mandir}/man1/envsubst.* \
95 ${mandir}/man1/.* \
96 ${mandir}/man3/* \
97 ${docdir}/gettext/gettext.* \
98 ${docdir}/gettext/ngettext.* \
99 ${docdir}/gettext/envsubst.* \
100 ${docdir}/gettext/*.3.html \
101 ${datadir}/gettext/ABOUT-NLS \
102 ${docdir}/gettext/csharpdoc/* \
103 ${docdir}/libasprintf/autosprintf.html \
104 ${infodir}/autosprintf.info \
105 "
106
107do_install_append() {
108 rm -f ${D}${libdir}/preloadable_libintl.so
109}
110
111do_install_append_class-native () {
112 rm ${D}${datadir}/aclocal/*
113 rm ${D}${datadir}/gettext/config.rpath
114 rm ${D}${datadir}/gettext/po/Makefile.in.in
115 rm ${D}${datadir}/gettext/po/remove-potcdate.sin
116}
117
118# Anyone inheriting gettext will have both gettext-native and gettext
119# available, and we don't want to use older macros from the target gettext in
120# a non-gplv3 build, so kill them and let dependent recipes rely on
121# gettext-native.
122SYSROOT_DIRS_BLACKLIST += "${datadir}/aclocal"
123
124BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-core/readline/readline-5.2/configure-fix.patch b/meta/recipes-core/readline/readline-5.2/configure-fix.patch
deleted file mode 100644
index be60a9861e..0000000000
--- a/meta/recipes-core/readline/readline-5.2/configure-fix.patch
+++ /dev/null
@@ -1,26 +0,0 @@
1Upstream-Status: Pending
2
3Without this it fails to link against libtermcap causing various missing symbols
4issues.
5
6RP - 8/10/08
7
8Index: readline-5.2/configure.in
9===================================================================
10--- readline-5.2.orig/configure.in 2008-10-08 09:58:52.000000000 +0100
11+++ readline-5.2/configure.in 2008-10-08 09:59:03.000000000 +0100
12@@ -211,10 +211,10 @@
13 AC_MSG_CHECKING(configuration for building shared libraries)
14 eval `TERMCAP_LIB=$TERMCAP_LIB ${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c ${host_cpu} -o ${host_os} -v ${host_vendor}`
15
16-# case "$SHLIB_LIBS" in
17-# *curses*|*termcap*|*termlib*) ;;
18-# *) SHLIB_LIBS="$SHLIB_LIBS $TERMCAP_LIB" ;;
19-# esac
20+ case "$SHLIB_LIBS" in
21+ *curses*|*termcap*|*termlib*) ;;
22+ *) SHLIB_LIBS="$SHLIB_LIBS $TERMCAP_LIB" ;;
23+ esac
24
25 AC_SUBST(SHOBJ_CC)
26 AC_SUBST(SHOBJ_CFLAGS)
diff --git a/meta/recipes-core/readline/readline-5.2/fix-redundant-rpath.patch b/meta/recipes-core/readline/readline-5.2/fix-redundant-rpath.patch
deleted file mode 100644
index 3166b470f2..0000000000
--- a/meta/recipes-core/readline/readline-5.2/fix-redundant-rpath.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1This support script ends up hardcoding unnecessary rpaths into the libraries. We
2will search $libdir automatically so this is just wastes space. There may be some
3cases this is necessary but our use cases aren't one of them.
4
5Upstream-Status: Inappropriate
6
7Signed-off-by: Saul Wold <sgw@linux.intel.com>
8
9Index: readline-5.2/support/shobj-conf
10===================================================================
11--- readline-5.2.orig/support/shobj-conf
12+++ readline-5.2/support/shobj-conf
13@@ -110,7 +110,7 @@ linux*-*|gnu*-*|k*bsd*-gnu-*)
14 SHOBJ_LD='${CC}'
15 SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
16
17- SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
18+ SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
19 SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
20 ;;
21
diff --git a/meta/recipes-core/readline/readline_5.2.bb b/meta/recipes-core/readline/readline_5.2.bb
deleted file mode 100644
index c1007a2311..0000000000
--- a/meta/recipes-core/readline/readline_5.2.bb
+++ /dev/null
@@ -1,84 +0,0 @@
1SUMMARY = "Library for editing typed command lines"
2DESCRIPTION = "The GNU Readline library provides a set of functions for use by applications that allow users to edit \
3command lines as they are typed in. Both Emacs and vi editing modes are available. The Readline library includes \
4additional functions to maintain a list of previously-entered command lines, to recall and perhaps reedit those \
5lines, and perform csh-like history expansion on previous commands."
6SECTION = "libs"
7
8LICENSE = "GPLv2+"
9LIC_FILES_CHKSUM = "file://COPYING;md5=03b36fdd84f74b8d8189a202b980b67f"
10
11DEPENDS += "ncurses"
12
13PR = "r9"
14
15SRC_URI = "${GNU_MIRROR}/readline/${BPN}-${PV}.tar.gz;name=archive \
16 ${GNU_MIRROR}/readline/readline-5.2-patches/readline52-001;name=patch1;apply=yes;striplevel=0 \
17 ${GNU_MIRROR}/readline/readline-5.2-patches/readline52-002;name=patch2;apply=yes;striplevel=0 \
18 ${GNU_MIRROR}/readline/readline-5.2-patches/readline52-003;name=patch3;apply=yes;striplevel=0 \
19 ${GNU_MIRROR}/readline/readline-5.2-patches/readline52-004;name=patch4;apply=yes;striplevel=0 \
20 ${GNU_MIRROR}/readline/readline-5.2-patches/readline52-005;name=patch5;apply=yes;striplevel=0 \
21 ${GNU_MIRROR}/readline/readline-5.2-patches/readline52-006;name=patch6;apply=yes;striplevel=0 \
22 ${GNU_MIRROR}/readline/readline-5.2-patches/readline52-007;name=patch7;apply=yes;striplevel=0 \
23 ${GNU_MIRROR}/readline/readline-5.2-patches/readline52-008;name=patch8;apply=yes;striplevel=0 \
24 ${GNU_MIRROR}/readline/readline-5.2-patches/readline52-009;name=patch9;apply=yes;striplevel=0 \
25 ${GNU_MIRROR}/readline/readline-5.2-patches/readline52-010;name=patch10;apply=yes;striplevel=0 \
26 ${GNU_MIRROR}/readline/readline-5.2-patches/readline52-011;name=patch11;apply=yes;striplevel=0 \
27 ${GNU_MIRROR}/readline/readline-5.2-patches/readline52-012;name=patch12;apply=yes;striplevel=0 \
28 ${GNU_MIRROR}/readline/readline-5.2-patches/readline52-013;name=patch13;apply=yes;striplevel=0 \
29 ${GNU_MIRROR}/readline/readline-5.2-patches/readline52-014;name=patch14;apply=yes;striplevel=0 \
30 file://configure-fix.patch \
31 file://config-dirent-symbols.patch \
32 file://fix-redundant-rpath.patch"
33
34SRC_URI[archive.md5sum] = "e39331f32ad14009b9ff49cc10c5e751"
35SRC_URI[archive.sha256sum] = "12e88d96aee2cd1192500356f0535540db499282ca7f76339fb4228c31249f45"
36
37SRC_URI[patch1.md5sum] = "9d4d41622aa9b230c57f68548ce87d8f"
38SRC_URI[patch1.sha256sum] = "eac304c369154059f93049ada328739faaf40338d3cb1fb4b544c93d5ce3f8d5"
39SRC_URI[patch2.md5sum] = "f03e512d14206e37f7d6a748b56b9476"
40SRC_URI[patch2.sha256sum] = "9deacaef25507a0c2ae0b661bf9342559b59a2954d66ea3c5f5bcd900fdfcf78"
41SRC_URI[patch3.md5sum] = "252b42d8750f1a94b6bdf086612dceb2"
42SRC_URI[patch3.sha256sum] = "2a55d2ecb1c9b0147aeb193a6323616ab31c1c525a83b2db3a994b15594ba934"
43SRC_URI[patch4.md5sum] = "a32333c2e603a3ed250514e91050e552"
44SRC_URI[patch4.sha256sum] = "a03b65633781efa7c3aae5d57162985e7b7a3c10acf0f2621be610e16f27e5f2"
45SRC_URI[patch5.md5sum] = "8106796c09b789523a3a78ab69c04b6d"
46SRC_URI[patch5.sha256sum] = "06001896514148a757ea6edbbd40c4fc4331dc653847244386c37b138b150f64"
47SRC_URI[patch6.md5sum] = "512188e2bf0837f7eca19dbf71f182ae"
48SRC_URI[patch6.sha256sum] = "dfef3e982c0adf8bb5a9b7d0468ec8f5f18138b325e28759437464de5be71013"
49SRC_URI[patch7.md5sum] = "ac17aca62eb6fb398c9f2fe9de540aff"
50SRC_URI[patch7.sha256sum] = "775b028c7b761397ac6ae1bdfbac7e896dc3b9b3adc2f91312499180ca13bdd1"
51SRC_URI[patch8.md5sum] = "2484c392db021905f112cf97a94dfd4c"
52SRC_URI[patch8.sha256sum] = "a21b4e0bf0530b878bad24d5be23d18a9e03a75a31ae30844dc0933bb3d77ecd"
53SRC_URI[patch9.md5sum] = "fc6eb35d07914fae5c57d49c12483ff7"
54SRC_URI[patch9.sha256sum] = "138d5e0f0709a47a2d1621295a3dd5e3cc73b63b5cc28dab03abc4e94fe95ecf"
55SRC_URI[patch10.md5sum] = "7a2bf3dc7ac7680b1461a5701100e91b"
56SRC_URI[patch10.sha256sum] = "83f8c1aadb86b1a2fad8821a9c6be72a8de5afd7fd9fde58a30b3b57d939693e"
57SRC_URI[patch11.md5sum] = "ef6cef6822663470f6ac8c517c5a7ec6"
58SRC_URI[patch11.sha256sum] = "08ad3384ab0906e6fa4cc417eb8c43ff59375bcead15fd5c8e31730f0413b3d6"
59SRC_URI[patch12.md5sum] = "e3e9f441c8111589855bc363e5640f6c"
60SRC_URI[patch12.sha256sum] = "20f0243be2299c23213492cc2c19cfd15cc528d2b566a76a2de58306bb9e4c9e"
61SRC_URI[patch13.md5sum] = "3e2e5f543ed268a68fd1fa839faade1a"
62SRC_URI[patch13.sha256sum] = "0cc649516a5bdfa61c5e56937407570288b6972d75aa1bd060ad30ebe98144d5"
63SRC_URI[patch14.md5sum] = "a1be30e1c6f1099bb5fcef00a2631fb8"
64SRC_URI[patch14.sha256sum] = "6f1a68320d01522ca1ea5a737124ecc8739f3dcbfea2dee21e3ccf839a21a817"
65
66inherit autotools
67
68EXTRA_AUTORECONF += "--exclude=autoheader"
69
70LEAD_SONAME = "libreadline.so"
71
72do_configure_prepend () {
73 if [ ! -e ${S}/acinclude.m4 ]; then
74 cat ${S}/aclocal.m4 > ${S}/acinclude.m4
75 fi
76}
77
78do_install_append () {
79 # Make install doesn't properly install these
80 oe_libinstall -so -C shlib libhistory ${D}${libdir}
81 oe_libinstall -so -C shlib libreadline ${D}${libdir}
82}
83
84BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/bison/bison_2.3.bb b/meta/recipes-devtools/bison/bison_2.3.bb
deleted file mode 100644
index 182e8802b2..0000000000
--- a/meta/recipes-devtools/bison/bison_2.3.bb
+++ /dev/null
@@ -1,26 +0,0 @@
1SUMMARY = "GNU Project parser generator (yacc replacement)"
2DESCRIPTION = "Bison is a general-purpose parser generator that converts an annotated context-free grammar into \
3an LALR(1) or GLR parser for that grammar. Bison is upward compatible with Yacc: all properly-written Yacc \
4grammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with \
5little trouble."
6HOMEPAGE = "http://www.gnu.org/software/bison/"
7LICENSE = "GPLv2"
8LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
9SECTION = "devel"
10DEPENDS = "bison-native flex-native"
11
12PR = "r1"
13
14SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.gz \
15 file://bison-2.3_m4.patch"
16
17SRC_URI[md5sum] = "22327efdd5080e2b1acb6e560a04b43a"
18SRC_URI[sha256sum] = "52f78aa4761a74ceb7fdf770f3554dd84308c3b93c4255e3a5c17558ecda293e"
19
20inherit autotools gettext texinfo
21acpaths = "-I ${S}/m4"
22
23do_configure_prepend () {
24 rm -f ${S}/m4/*gl.m4
25 cp ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/runtime-po/
26}
diff --git a/meta/recipes-devtools/dosfstools/dosfstools/0001-Include-fcntl.h-for-getting-loff_t-definition.patch b/meta/recipes-devtools/dosfstools/dosfstools/0001-Include-fcntl.h-for-getting-loff_t-definition.patch
deleted file mode 100644
index 06f5b7a960..0000000000
--- a/meta/recipes-devtools/dosfstools/dosfstools/0001-Include-fcntl.h-for-getting-loff_t-definition.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1From b7c42c6a9829bea911b22201edd7df2a9bec1a14 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 13 Apr 2015 17:52:34 -0700
4Subject: [PATCH] Include fcntl.h for getting loff_t definition
5
6Upstream-Status: Pending
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9---
10 dosfsck/dosfsck.h | 2 ++
11 dosfsck/lfn.c | 1 +
12 2 files changed, 3 insertions(+)
13
14diff --git a/dosfsck/dosfsck.h b/dosfsck/dosfsck.h
15index d9314b1..2076d5f 100644
16--- a/dosfsck/dosfsck.h
17+++ b/dosfsck/dosfsck.h
18@@ -50,6 +50,8 @@
19 #define CT_LE_L(v) (v)
20 #endif /* __BIG_ENDIAN */
21
22+#include <fcntl.h>
23+
24 #define VFAT_LN_ATTR (ATTR_RO | ATTR_HIDDEN | ATTR_SYS | ATTR_VOLUME)
25
26 /* ++roman: Use own definition of boot sector structure -- the kernel headers'
27diff --git a/dosfsck/lfn.c b/dosfsck/lfn.c
28index 9b2cfc3..bb04fda 100644
29--- a/dosfsck/lfn.c
30+++ b/dosfsck/lfn.c
31@@ -7,6 +7,7 @@
32 #include <string.h>
33 #include <limits.h>
34 #include <time.h>
35+#include <fcntl.h>
36
37 #include "common.h"
38 #include "io.h"
39--
402.1.4
41
diff --git a/meta/recipes-devtools/dosfstools/dosfstools/alignment_hack.patch b/meta/recipes-devtools/dosfstools/dosfstools/alignment_hack.patch
deleted file mode 100644
index b46b2db0a3..0000000000
--- a/meta/recipes-devtools/dosfstools/dosfstools/alignment_hack.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1The problem is that unsigned char[2] is
2guranteed to be 8Bit aligned on arm
3but unsigned short is/needs to be 16bit aligned
4the union { unsigned short; unsigned char[2] } trick
5didn't work so no we use the alpha hack.
6
7memcpy into an 16bit aligned
8
9 -zecke
10
11Upstream-Status: Inappropriate [licensing]
12We're tracking an old release of dosfstools due to licensing issues.
13
14Signed-off-by: Scott Garman <scott.a.garman@intel.com>
15
16--- dosfstools/dosfsck/boot.c.orig 2003-05-15 19:32:23.000000000 +0200
17+++ dosfstools/dosfsck/boot.c 2003-06-13 17:44:25.000000000 +0200
18@@ -36,17 +36,15 @@
19 { 0xff, "5.25\" 320k floppy 2s/40tr/8sec" },
20 };
21
22-#if defined __alpha || defined __ia64__ || defined __s390x__ || defined __x86_64__ || defined __ppc64__
23+
24 /* Unaligned fields must first be copied byte-wise */
25 #define GET_UNALIGNED_W(f) \
26 ({ \
27 unsigned short __v; \
28 memcpy( &__v, &f, sizeof(__v) ); \
29- CF_LE_W( *(unsigned short *)&f ); \
30+ CF_LE_W( *(unsigned short *)&__v ); \
31 })
32-#else
33-#define GET_UNALIGNED_W(f) CF_LE_W( *(unsigned short *)&f )
34-#endif
35+
36
37
38 static char *get_media_descr( unsigned char media )
diff --git a/meta/recipes-devtools/dosfstools/dosfstools/dosfstools-msdos_fs-types.patch b/meta/recipes-devtools/dosfstools/dosfstools/dosfstools-msdos_fs-types.patch
deleted file mode 100644
index 35abd1a2b1..0000000000
--- a/meta/recipes-devtools/dosfstools/dosfstools/dosfstools-msdos_fs-types.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1Ensure the __s8 type is properly defined.
2
3Upstream-Status: Inappropriate [licensing]
4We're tracking an old release of dosfstools due to licensing issues.
5
6Signed-off-by: Scott Garman <scott.a.garman@intel.com>
7
8--- dosfstools-2.10/dosfsck/dosfsck.h.org 2006-02-21 08:36:14.000000000 -0700
9+++ dosfstools-2.10/dosfsck/dosfsck.h 2006-02-21 08:40:12.000000000 -0700
10@@ -22,6 +22,14 @@
11 #undef __KERNEL__
12 #endif
13
14+#ifndef __s8
15+#include <asm/types.h>
16+#endif
17+
18+#ifndef __ASM_STUB_BYTEORDER_H__
19+#include <asm/byteorder.h>
20+#endif
21+
22 #include <linux/msdos_fs.h>
23
24 /* 2.1 kernels use le16_to_cpu() type functions for CF_LE_W & Co., but don't
25--- dosfstools-2.10/dosfsck/file.c.org 2006-02-21 08:37:36.000000000 -0700
26+++ dosfstools-2.10/dosfsck/file.c 2006-02-21 08:37:47.000000000 -0700
27@@ -23,6 +23,10 @@
28 #undef __KERNEL__
29 #endif
30
31+#ifndef __s8
32+#include <asm/types.h>
33+#endif
34+
35 #include <linux/msdos_fs.h>
36
37 #include "common.h"
diff --git a/meta/recipes-devtools/dosfstools/dosfstools/fix_populated_dosfs_creation.patch b/meta/recipes-devtools/dosfstools/dosfstools/fix_populated_dosfs_creation.patch
deleted file mode 100644
index 9d7f7321ac..0000000000
--- a/meta/recipes-devtools/dosfstools/dosfstools/fix_populated_dosfs_creation.patch
+++ /dev/null
@@ -1,489 +0,0 @@
1Upstream-Status: Inappropriate
2
3This patch fixes populated dosfs image creation with directory
4structures. Earlier it was causing segfault; and only image
5population with no subdirectories was working.
6
7Issues fixed:
81. (dir->count == dir->entries) check was only needed for root
9 directory entries. And this check is wrong for non-root
10 directories.
112. For each dir entry 2 dir->table entries were needed, one for
12 the file/dir and 2nd for long file name support. Earlier long
13 name support was added for filenames but the 2nd entry
14 allocation, initialization & counting was missed.
153. The memory clearing was missed at the code path after dir->table
16 memroy allocation.
174. Add entries for . & .. directories in all non-root directories.
185. The . directory points to the correct entry in fat now.
196. All directoriy entries' size was not zero as required for dosfsck,
20 Now all directory entries' size is zero.
21
22Enhancements:
231. Added support for long names for directory names. This is same
24 as the existing long name support for filenames.
252. Added error messages for previously silent memory allocation and
26 other errors.
273. -d options does not work correctly with fat32, so now throwing
28 an error for that.
294. Use predefined structures from kernel's msdos_fs.h file, rather
30 than defining again here. And accordingly change the names & use
31 of structure variables.
32
33Outstanding Issues:
341. The .. directory entry do not point to the parent of current
35 directory. This issue can be fixed by running dosfsck -a after
36 image creation.
372. For files the filesize is correct, but the clusters size is more
38 than it needs to be, this also can be fixed by running dosfsck -a
39 after image creation.
40
41Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
422011/12/13
43
44
45Index: dosfstools-2.11/mkdosfs/mkdosfs.c
46===================================================================
47--- dosfstools-2.11.orig/mkdosfs/mkdosfs.c
48+++ dosfstools-2.11/mkdosfs/mkdosfs.c
49@@ -21,7 +21,17 @@
50 June 2004 - Jordan Crouse (info.linux@amd.com)
51 Added -d <directory> support to populate the image
52 Copyright (C) 2004, Advanced Micro Devices, All Rights Reserved
53-
54+
55+ 2011-12-13: Nitin A Kamble <nitin.a.kamble@intel.com>
56+ Enhanced the -d <directory> support for population of image while
57+ creation. Earlier subdirectores support was broken, only files in
58+ the rootdir were supported. Now directory hirarchy is supported.
59+ Also added long filename support to directory names.
60+ The -d <directory> option (image population while creation)
61+ is broken with fat32.
62+ Copyright (C) 2011, Intel Corporation, All Rights Reserved
63+
64+
65 Fixes/additions May 1998 by Roman Hodek
66 <Roman.Hodek@informatik.uni-erlangen.de>:
67 - Atari format support
68@@ -86,23 +96,23 @@
69 # undef __KERNEL__
70 #endif
71
72-#if __BYTE_ORDER == __BIG_ENDIAN
73-
74+#ifndef __ASM_STUB_BYTEORDER_H__
75 #include <asm/byteorder.h>
76-#ifdef __le16_to_cpu
77-/* ++roman: 2.1 kernel headers define these function, they're probably more
78- * efficient then coding the swaps machine-independently. */
79-#define CF_LE_W __le16_to_cpu
80-#define CF_LE_L __le32_to_cpu
81-#define CT_LE_W __cpu_to_le16
82-#define CT_LE_L __cpu_to_le32
83-#else
84-#define CF_LE_W(v) ((((v) & 0xff) << 8) | (((v) >> 8) & 0xff))
85-#define CF_LE_L(v) (((unsigned)(v)>>24) | (((unsigned)(v)>>8)&0xff00) | \
86- (((unsigned)(v)<<8)&0xff0000) | ((unsigned)(v)<<24))
87+#endif
88+
89+#include <linux/msdos_fs.h>
90+
91+#undef CF_LE_W
92+#undef CF_LE_L
93+#undef CT_LE_W
94+#undef CT_LE_L
95+
96+#if __BYTE_ORDER == __BIG_ENDIAN
97+#include <byteswap.h>
98+#define CF_LE_W(v) bswap_16(v)
99+#define CF_LE_L(v) bswap_32(v)
100 #define CT_LE_W(v) CF_LE_W(v)
101 #define CT_LE_L(v) CF_LE_L(v)
102-#endif /* defined(__le16_to_cpu) */
103
104 #else
105
106@@ -253,33 +263,6 @@ struct fat32_fsinfo {
107 __u32 reserved2[4];
108 };
109
110-/* This stores up to 13 chars of the name */
111-
112-struct msdos_dir_slot {
113- __u8 id; /* sequence number for slot */
114- __u8 name0_4[10]; /* first 5 characters in name */
115- __u8 attr; /* attribute byte */
116- __u8 reserved; /* always 0 */
117- __u8 alias_checksum; /* checksum for 8.3 alias */
118- __u8 name5_10[12]; /* 6 more characters in name */
119- __u16 start; /* starting cluster number, 0 in long slots */
120- __u8 name11_12[4]; /* last 2 characters in name */
121-};
122-
123-struct msdos_dir_entry
124- {
125- char name[8], ext[3]; /* name and extension */
126- __u8 attr; /* attribute bits */
127- __u8 lcase; /* Case for base and extension */
128- __u8 ctime_ms; /* Creation time, milliseconds */
129- __u16 ctime; /* Creation time */
130- __u16 cdate; /* Creation date */
131- __u16 adate; /* Last access date */
132- __u16 starthi; /* high 16 bits of first cl. (FAT32) */
133- __u16 time, date, start; /* time, date and first cluster */
134- __u32 size; /* file size (in bytes) */
135- } __attribute__ ((packed));
136-
137 /* The "boot code" we put into the filesystem... it writes a message and
138 tells the user to try again */
139
140@@ -356,7 +339,6 @@ static struct msdos_dir_entry *root_dir;
141 static int size_root_dir; /* Size of the root directory in bytes */
142 static int sectors_per_cluster = 0; /* Number of sectors per disk cluster */
143 static int root_dir_entries = 0; /* Number of root directory entries */
144-static int root_dir_num_entries = 0;
145 static int last_cluster_written = 0;
146
147 static char *blank_sector; /* Blank sector - all zeros */
148@@ -1315,7 +1297,7 @@ setup_tables (void)
149 de->date = CT_LE_W((unsigned short)(ctime->tm_mday +
150 ((ctime->tm_mon+1) << 5) +
151 ((ctime->tm_year-80) << 9)));
152- de->ctime_ms = 0;
153+ de->ctime_cs = 0;
154 de->ctime = de->time;
155 de->cdate = de->date;
156 de->adate = de->date;
157@@ -1451,16 +1433,23 @@ write_tables (void)
158
159 /* Add a file to the specified directory entry, and also write it into the image */
160
161-static void copy_filename(char *filename, char *base, char *ext) {
162+static void copy_filename(char *filename, char *dos_name) {
163
164 char *ch = filename;
165 int i, len;
166
167- memset(base, 0x20, 8);
168- memset(ext, 0x20, 3);
169+ if (!strcmp(filename, ".")) {
170+ strncpy(dos_name, MSDOS_DOT, MSDOS_NAME);
171+ return;
172+ }
173+ if (!strcmp(filename, "..")) {
174+ strncpy(dos_name, MSDOS_DOTDOT, MSDOS_NAME);
175+ return;
176+ }
177+ memset(dos_name, 0x20, MSDOS_NAME);
178
179 for(len = 0 ; *ch && *ch != '.'; ch++) {
180- base[len++] = toupper(*ch);
181+ dos_name[len++] = toupper(*ch);
182 if (len == 8) break;
183 }
184
185@@ -1468,7 +1457,7 @@ static void copy_filename(char *filename
186 if (*ch) ch++;
187
188 for(len = 0 ; *ch; ch++) {
189- ext[len++] = toupper(*ch);
190+ dos_name[8 + len++] = toupper(*ch);
191 if (len == 3) break;
192 }
193 }
194@@ -1551,7 +1540,7 @@ static int add_file(char *filename, stru
195 int start;
196 int usedsec, totalsec;
197
198- char name83[8], ext83[3];
199+ char dos_name[MSDOS_NAME+1];
200
201 struct msdos_dir_slot *slot;
202 int i;
203@@ -1562,23 +1551,22 @@ static int add_file(char *filename, stru
204 if (dir->root) {
205 if (dir->count == dir->entries) {
206 printf("Error - too many directory entries\n");
207+ return;
208 }
209 }
210 else {
211- if (dir->count == dir->entries) {
212- if (!dir->table)
213- dir->table =
214- (struct msdos_dir_entry *) malloc(sizeof(struct msdos_dir_entry));
215- else {
216- dir->table =
217- (struct msdos_dir_entry *) realloc(dir->table, (dir->entries + 1) *
218- sizeof(struct msdos_dir_entry));
219-
220- memset(&dir->table[dir->entries], 0, sizeof(struct msdos_dir_entry));
221- }
222-
223- dir->entries++;
224- }
225+ /* 2 entries, one extra for long filename */
226+ if (!dir->table)
227+ dir->table =
228+ (struct msdos_dir_entry *) malloc(2 * sizeof(struct msdos_dir_entry));
229+ else
230+ dir->table =
231+ (struct msdos_dir_entry *) realloc(dir->table, 2 * (dir->entries + 1) *
232+ sizeof(struct msdos_dir_entry));
233+ if (!dir->table)
234+ printf("Error - realloc failed\n");
235+ memset(&dir->table[dir->entries], 0, 2 * sizeof(struct msdos_dir_entry));
236+ dir->entries += 2;
237 }
238
239 infile = open(filename, O_RDONLY, 0);
240@@ -1611,13 +1599,13 @@ static int add_file(char *filename, stru
241 return -1;
242 }
243
244- printf("ADD %s\n", filename);
245+ printf("ADD FILE %s\n", filename);
246
247 /* Grab the basename of the file */
248 base = basename(filename);
249
250- /* Extract out the 8.3 name */
251- copy_filename(base, name83, ext83);
252+ /* convert for dos fat structure */
253+ copy_filename(base, dos_name);
254
255 /* Make an extended name slot */
256
257@@ -1629,12 +1617,9 @@ static int add_file(char *filename, stru
258
259 slot->alias_checksum = 0;
260
261- for(i = 0; i < 8; i++)
262- slot->alias_checksum = (((slot->alias_checksum&1)<<7)|((slot->alias_checksum&0xfe)>>1)) + name83[i];
263+ for(i = 0; i < MSDOS_NAME; i++)
264+ slot->alias_checksum = (((slot->alias_checksum&1)<<7)|((slot->alias_checksum&0xfe)>>1)) + dos_name[i];
265
266- for(i = 0; i < 3; i++)
267- slot->alias_checksum = (((slot->alias_checksum&1)<<7)|((slot->alias_checksum&0xfe)>>1)) + ext83[i];
268-
269 p = base;
270
271 copy_name(slot->name0_4, 10, &p);
272@@ -1645,8 +1630,7 @@ static int add_file(char *filename, stru
273 /* Get the entry from the root filesytem */
274 entry = &dir->table[dir->count++];
275
276- strncpy(entry->name, name83, 8);
277- strncpy(entry->ext, ext83, 3);
278+ strncpy(entry->name, dos_name, MSDOS_NAME);
279
280
281 /* If the user has it read only, then add read only to the incoming
282@@ -1665,7 +1649,7 @@ static int add_file(char *filename, stru
283 ((ctime->tm_mon+1) << 5) +
284 ((ctime->tm_year-80) << 9)));
285
286- entry->ctime_ms = 0;
287+ entry->ctime_cs = 0;
288 entry->ctime = entry->time;
289 entry->cdate = entry->date;
290 entry->adate = entry->date;
291@@ -1711,6 +1695,7 @@ static int add_file(char *filename, stru
292
293 exit_add:
294 if (infile) close(infile);
295+ return 0;
296 }
297
298 /* Add a new directory to the specified directory entry, and in turn populate
299@@ -1727,10 +1712,18 @@ static void add_directory(char *filename
300 struct dirent *dentry = 0;
301 int remain;
302 char *data;
303+ char *base;
304+ char dos_name[MSDOS_NAME+1];
305+ struct msdos_dir_slot *slot;
306+ int i;
307+ char *p;
308
309 /* If the directory doesn't exist */
310- if (!rddir) return;
311-
312+ if (!rddir) {
313+ printf("Error - dir does not exist: %s\n", filename);
314+ return;
315+ }
316+
317 if (dir->root) {
318 if (dir->count == dir->entries) {
319 printf("Error - too many directory entries\n");
320@@ -1738,28 +1731,58 @@ static void add_directory(char *filename
321 }
322 }
323 else {
324- if (dir->count == dir->entries) {
325- if (!dir->table)
326- dir->table = (struct msdos_dir_entry *) malloc(sizeof(struct msdos_dir_entry));
327- else {
328- dir->table = (struct msdos_dir_entry *) realloc(dir->table, (dir->entries + 1) *
329- sizeof(struct msdos_dir_entry));
330-
331- /* Zero it out to avoid issues */
332- memset(&dir->table[dir->entries], 0, sizeof(struct msdos_dir_entry));
333- }
334- dir->entries++;
335+ /* 2 entries, one extra for long name of the directory */
336+ if (!dir->table)
337+ dir->table = (struct msdos_dir_entry *) malloc(2 * sizeof(struct msdos_dir_entry));
338+ else
339+ dir->table = (struct msdos_dir_entry *) realloc(dir->table, 2 * (dir->entries + 1) *
340+ sizeof(struct msdos_dir_entry));
341+ if (!dir->table) {
342+ printf("Error - memory allocation failed\n");
343+ goto exit_add_dir;
344 }
345+ /* Zero it out to avoid issues */
346+ memset(&dir->table[dir->entries], 0, 2 * sizeof(struct msdos_dir_entry));
347+ dir->entries += 2;
348 }
349
350+ printf("ADD DIR %s\n", filename);
351 /* Now, create a new directory entry for the new directory */
352 newdir = (struct dir_entry *) calloc(1, sizeof(struct dir_entry));
353- if (!newdir) goto exit_add_dir;
354+ if (!newdir) {
355+ printf("Error - calloc failed\n");
356+ goto exit_add_dir;
357+ }
358+
359+ /* Grab the basename of the file */
360+ base = basename(filename);
361+
362+ /* convert for dos structure */
363+ copy_filename(base, dos_name);
364+
365+ /* Make an extended name slot */
366+ slot = (struct msdos_dir_slot *) &dir->table[dir->count++];
367+ slot->id = 'A';
368+ slot->attr = 0x0F;
369+ slot->reserved = 0;
370+ slot->start = 0;
371+
372+ slot->alias_checksum = 0;
373
374+ for (i = 0; i < MSDOS_NAME; i++)
375+ slot->alias_checksum = (((slot->alias_checksum&1)<<7)|((slot->alias_checksum&0xfe)>>1)) + dos_name[i];
376+
377+ p = base;
378+
379+ copy_name(slot->name0_4, 10, &p);
380+ copy_name(slot->name5_10, 12, &p);
381+ copy_name(slot->name11_12, 4, &p);
382+
383+ /* Get the entry from the root filesytem */
384 entry = &dir->table[dir->count++];
385
386- strncpy(entry->name, basename(filename), sizeof(entry->name));
387-
388+ strncpy(entry->name, dos_name, MSDOS_NAME);
389+
390 entry->attr = ATTR_DIR;
391 ctime = localtime(&create_time);
392
393@@ -1770,25 +1793,32 @@ static void add_directory(char *filename
394 ((ctime->tm_mon+1) << 5) +
395 ((ctime->tm_year-80) << 9)));
396
397- entry->ctime_ms = 0;
398+ entry->ctime_cs = 0;
399 entry->ctime = entry->time;
400 entry->cdate = entry->date;
401 entry->adate = entry->date;
402
403 /* Now, read the directory */
404
405- while((dentry = readdir(rddir))) {
406+
407+ while((base[0] != '.') && (dentry = readdir(rddir))) {
408 struct stat st;
409 char *buffer;
410-
411- if (!strcmp(dentry->d_name, ".") || !strcmp(dentry->d_name, ".."))
412- continue;
413
414- /* DOS wouldn't like a typical unix . (dot) file, so we skip those too */
415- if (dentry->d_name[0] == '.') continue;
416+ if (dentry->d_name[0] == '.') {
417+ /* dos also has . & .. directory entries */
418+ if (! ((!strcmp(dentry->d_name, ".")) || (!strcmp(dentry->d_name, "..")))) {
419+ /* ignore other .* files */
420+ printf("Error - File/Dir name is not dos compatible, ignored: %s\n", dentry->d_name);
421+ continue;
422+ }
423+ }
424
425 buffer = malloc(strlen(filename) + strlen(dentry->d_name) + 3);
426- if (!buffer) continue;
427+ if (!buffer) {
428+ printf("Error - malloc failed\n");
429+ goto exit_add_dir;
430+ }
431
432 sprintf(buffer, "%s/%s", filename, dentry->d_name);
433 if (!stat(buffer, &st)) {
434@@ -1806,11 +1836,23 @@ static void add_directory(char *filename
435 /* Now that the entire directory has been written, go ahead and write the directory
436 entry as well */
437
438+ entry->size = 0; /* a directory has zero size */
439+
440+ if (base[0] == '.') { /* . & .. point to parent's cluster */
441+ goto exit_add_dir;
442+ }
443+
444 entry->start = CT_LE_W(last_cluster_written);
445 entry->starthi = CT_LE_W((last_cluster_written & 0xFFFF0000) >> 16);
446- entry->size = newdir->count * sizeof(struct msdos_dir_entry);
447+
448+/* . dir start points to parent */
449+ newdir->table[1].start = entry->start;
450+/* .. dir points to parent of parent*/
451+/* .. dir start is not set yet, would need more changes to the code,
452+ * but dosfsck can fix these .. entry start pointers correctly */
453+
454+ remain = newdir->count * sizeof(struct msdos_dir_entry);
455
456- remain = entry->size;
457 data = (char *) newdir->table;
458
459 while(remain) {
460@@ -1858,6 +1900,7 @@ static void add_root_directory(char *dir
461
462 if (!newdir) {
463 closedir(dir);
464+ printf("Error - calloc failed!\n");
465 return;
466 }
467
468@@ -1877,7 +1920,10 @@ static void add_root_directory(char *dir
469 if (entry->d_name[0] == '.') continue;
470
471 buffer = malloc(strlen(dirname) + strlen(entry->d_name) + 3);
472- if (!buffer) continue;
473+ if (!buffer) {
474+ printf("Error - malloc failed!\n");
475+ continue;
476+ }
477
478 sprintf(buffer, "%s/%s", dirname, entry->d_name);
479 if (!stat(buffer, &st)) {
480@@ -2245,6 +2291,9 @@ main (int argc, char **argv)
481 if (check && listfile) /* Auto and specified bad block handling are mutually */
482 die ("-c and -l are incompatible"); /* exclusive of each other! */
483
484+ if (dirname && (size_fat == 32))
485+ die ("-d is incompatible with FAT32");
486+
487 if (!create) {
488 check_mount (device_name); /* Is the device already mounted? */
489 dev = open (device_name, O_RDWR); /* Is it a suitable device to build the FS on? */
diff --git a/meta/recipes-devtools/dosfstools/dosfstools/include-linux-types.patch b/meta/recipes-devtools/dosfstools/dosfstools/include-linux-types.patch
deleted file mode 100644
index ab5c8cf8c3..0000000000
--- a/meta/recipes-devtools/dosfstools/dosfstools/include-linux-types.patch
+++ /dev/null
@@ -1,22 +0,0 @@
1mkdsofs is using types of the style __u8, which it gets with some
2versions of libc headers via linux/hdreg.h including asm/types.h.
3Newer version of fedora (at least) have a hdreg.h whichdoes not
4include asm/types.h. To work around this patch mkdosfs.c to explicity
5include linux/types.h which will in turn pull in asm/types.h which
6defines these variables.
7
8Upstream-Status: Inappropriate [licensing]
9We're tracking an old release of dosfstools due to licensing issues.
10
11Signed-off-by: Scott Garman <scott.a.garman@intel.com>
12
13--- dosfstools-2.10/mkdosfs/mkdosfs.c~ 2006-07-12 18:46:21.000000000 +1000
14+++ dosfstools-2.10/mkdosfs/mkdosfs.c 2006-07-12 18:46:21.000000000 +1000
15@@ -60,6 +60,7 @@
16 #include "../version.h"
17
18 #include <fcntl.h>
19+#include <linux/types.h>
20 #include <linux/hdreg.h>
21 #include <linux/fs.h>
22 #include <linux/fd.h>
diff --git a/meta/recipes-devtools/dosfstools/dosfstools/mkdosfs-bootcode.patch b/meta/recipes-devtools/dosfstools/dosfstools/mkdosfs-bootcode.patch
deleted file mode 100644
index ae21bee78e..0000000000
--- a/meta/recipes-devtools/dosfstools/dosfstools/mkdosfs-bootcode.patch
+++ /dev/null
@@ -1,241 +0,0 @@
1Add option to read in bootcode from a file.
2
3Upstream-Status: Inappropriate [licensing]
4We're tracking an old release of dosfstools due to licensing issues.
5
6Signed-off-by: Scott Garman <scott.a.garman@intel.com>
7
8Index: dosfstools-2.11/mkdosfs/ChangeLog
9===================================================================
10--- dosfstools-2.11.orig/mkdosfs/ChangeLog 1997-06-18 10:09:38.000000000 +0000
11+++ dosfstools-2.11/mkdosfs/ChangeLog 2011-12-06 12:14:23.634011558 +0000
12@@ -1,3 +1,14 @@
13+19th June 2003 Sam Bingner (sam@bingner.com)
14+
15+ Added option to read in bootcode from a file so that if you have
16+ for example Windows 2000 boot code, you can have it write that
17+ as the bootcode. This is a dump of the behinning of a partition
18+ generally 512 bytes, but can be up to reserved sectors*512 bytes.
19+ Also writes 0x80 as the BIOS drive number if we are formatting a
20+ hard drive, and sets the number of hidden sectors to be the
21+ number of sectors in one track. These were required so that DOS
22+ could boot using the bootcode.
23+
24 28th January 1995 H. Peter Anvin (hpa@yggdrasil.com)
25
26 Better algorithm to select cluster sizes on large filesystems.
27Index: dosfstools-2.11/mkdosfs/mkdosfs.8
28===================================================================
29--- dosfstools-2.11.orig/mkdosfs/mkdosfs.8 2004-02-25 19:36:07.000000000 +0000
30+++ dosfstools-2.11/mkdosfs/mkdosfs.8 2011-12-06 12:19:54.777888434 +0000
31@@ -44,6 +44,10 @@
32 .I message-file
33 ]
34 [
35+.B \-B
36+.I bootcode-file
37+]
38+[
39 .B \-n
40 .I volume-name
41 ]
42@@ -165,6 +169,18 @@
43 carriage return-line feed combinations, and tabs have been expanded.
44 If the filename is a hyphen (-), the text is taken from standard input.
45 .TP
46+.BI \-B " bootcode-file"
47+Uses boot machine code from file "file". On any thing other than FAT32,
48+this only writes the first 3 bytes, and 480 bytes from offset 3Eh. On
49+FAT32, this writes the first 3 bytes, 420 bytes from offset 5Ah to both
50+primary and backup boot sectors. Also writes all other reserved sectors
51+excluding the sectors following boot sectors (usually sector 2 and 7).
52+Does not require that the input file be as large as reserved_sectors*512.
53+To make a FAT32 partition bootable, you will need at least the first
54+13 sectors (6656 bytes). You can also specify a partition as the argument
55+to clone the boot code from that partition.
56+i.e mkdosfs -B /dev/sda1 /dev/sda1
57+.TP
58 .BI \-n " volume-name"
59 Sets the volume name (label) of the filesystem. The volume name can
60 be up to 11 characters long. The default is no label.
61@@ -198,8 +214,9 @@
62 simply will not support it ;)
63 .SH AUTHOR
64 Dave Hudson - <dave@humbug.demon.co.uk>; modified by Peter Anvin
65-<hpa@yggdrasil.com>. Fixes and additions by Roman Hodek
66-<roman@hodek.net> for Debian/GNU Linux.
67+<hpa@yggdrasil.com> and Sam Bingner <sam@bingner.com>. Fixes and
68+additions by Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>
69+for Debian/GNU Linux.
70 .SH ACKNOWLEDGEMENTS
71 .B mkdosfs
72 is based on code from
73Index: dosfstools-2.11/mkdosfs/mkdosfs.c
74===================================================================
75--- dosfstools-2.11.orig/mkdosfs/mkdosfs.c 2005-03-12 16:12:16.000000000 +0000
76+++ dosfstools-2.11/mkdosfs/mkdosfs.c 2011-12-06 12:27:55.121886076 +0000
77@@ -24,6 +24,12 @@
78 - New options -A, -S, -C
79 - Support for filesystems > 2GB
80 - FAT32 support
81+
82+ Fixes/additions June 2003 by Sam Bingner
83+ <sam@bingner.com>:
84+ - Add -B option to read in bootcode from a file
85+ - Write BIOS drive number so that FS can properly boot
86+ - Set number of hidden sectors before boot code to be one track
87
88 Copying: Copyright 1993, 1994 David Hudson (dave@humbug.demon.co.uk)
89
90@@ -153,6 +159,8 @@
91 #define FAT_BAD 0x0ffffff7
92
93 #define MSDOS_EXT_SIGN 0x29 /* extended boot sector signature */
94+#define HD_DRIVE_NUMBER 0x80 /* Boot off first hard drive */
95+#define FD_DRIVE_NUMBER 0x00 /* Boot off first floppy drive */
96 #define MSDOS_FAT12_SIGN "FAT12 " /* FAT12 filesystem signature */
97 #define MSDOS_FAT16_SIGN "FAT16 " /* FAT16 filesystem signature */
98 #define MSDOS_FAT32_SIGN "FAT32 " /* FAT32 filesystem signature */
99@@ -175,6 +183,8 @@
100 #define BOOTCODE_SIZE 448
101 #define BOOTCODE_FAT32_SIZE 420
102
103+#define MAX_RESERVED 0xFFFF
104+
105 /* __attribute__ ((packed)) is used on all structures to make gcc ignore any
106 * alignments */
107
108@@ -202,7 +212,7 @@
109 __u16 fat_length; /* sectors/FAT */
110 __u16 secs_track; /* sectors per track */
111 __u16 heads; /* number of heads */
112- __u32 hidden; /* hidden sectors (unused) */
113+ __u32 hidden; /* hidden sectors (one track) */
114 __u32 total_sect; /* number of sectors (if sectors == 0) */
115 union {
116 struct {
117@@ -285,6 +295,8 @@
118
119 /* Global variables - the root of all evil :-) - see these and weep! */
120
121+static char *template_boot_code; /* Variable to store a full template boot sector in */
122+static int use_template = 0;
123 static char *program_name = "mkdosfs"; /* Name of the program */
124 static char *device_name = NULL; /* Name of the device on which to create the filesystem */
125 static int atari_format = 0; /* Use Atari variation of MS-DOS FS format */
126@@ -837,6 +849,12 @@
127 vi->volume_id[2] = (unsigned char) ((volume_id & 0x00ff0000) >> 16);
128 vi->volume_id[3] = (unsigned char) (volume_id >> 24);
129 }
130+ if (bs.media == 0xf8) {
131+ vi->drive_number = HD_DRIVE_NUMBER; /* Set bios drive number to 80h */
132+ }
133+ else {
134+ vi->drive_number = FD_DRIVE_NUMBER; /* Set bios drive number to 00h */
135+ }
136
137 if (!atari_format) {
138 memcpy(vi->volume_label, volume_name, 11);
139@@ -1362,6 +1380,32 @@
140 * dir area on FAT12/16, and the first cluster on FAT32. */
141 writebuf( (char *) root_dir, size_root_dir, "root directory" );
142
143+ if (use_template == 1) {
144+ /* dupe template into reserved sectors */
145+ seekto( 0, "Start of partition" );
146+ if (size_fat == 32) {
147+ writebuf( template_boot_code, 3, "backup jmpBoot" );
148+ seekto( 0x5a, "sector 1 boot area" );
149+ writebuf( template_boot_code+0x5a, 420, "sector 1 boot area" );
150+ seekto( 512*2, "third sector" );
151+ if (backup_boot != 0) {
152+ writebuf( template_boot_code+512*2, backup_boot*sector_size - 512*2, "data to backup boot" );
153+ seekto( backup_boot*sector_size, "backup boot sector" );
154+ writebuf( template_boot_code, 3, "backup jmpBoot" );
155+ seekto( backup_boot*sector_size+0x5a, "backup boot sector boot area" );
156+ writebuf( template_boot_code+0x5a, 420, "backup boot sector boot area" );
157+ seekto( (backup_boot+2)*sector_size, "sector following backup code" );
158+ writebuf( template_boot_code+(backup_boot+2)*sector_size, (reserved_sectors-backup_boot-2)*512, "remaining data" );
159+ } else {
160+ writebuf( template_boot_code+512*2, (reserved_sectors-2)*512, "remaining data" );
161+ }
162+ } else {
163+ writebuf( template_boot_code, 3, "jmpBoot" );
164+ seekto( 0x3e, "sector 1 boot area" );
165+ writebuf( template_boot_code+0x3e, 448, "boot code" );
166+ }
167+ }
168+
169 if (blank_sector) free( blank_sector );
170 if (info_sector) free( info_sector );
171 free (root_dir); /* Free up the root directory space from setup_tables */
172@@ -1376,7 +1420,7 @@
173 {
174 fatal_error("\
175 Usage: mkdosfs [-A] [-c] [-C] [-v] [-I] [-l bad-block-file] [-b backup-boot-sector]\n\
176- [-m boot-msg-file] [-n volume-name] [-i volume-id]\n\
177+ [-m boot-msg-file] [-n volume-name] [-i volume-id] [-B bootcode]\n\
178 [-s sectors-per-cluster] [-S logical-sector-size] [-f number-of-FATs]\n\
179 [-h hidden-sectors] [-F fat-size] [-r root-dir-entries] [-R reserved-sectors]\n\
180 /dev/name [blocks]\n");
181@@ -1439,7 +1483,7 @@
182 printf ("%s " VERSION " (" VERSION_DATE ")\n",
183 program_name);
184
185- while ((c = getopt (argc, argv, "AbcCf:F:Ii:l:m:n:r:R:s:S:h:v")) != EOF)
186+ while ((c = getopt (argc, argv, "AbcCf:F:Ii:l:m:n:r:R:s:S:v:B:")) != EOF)
187 /* Scan the command line for options */
188 switch (c)
189 {
190@@ -1509,6 +1553,51 @@
191 listfile = optarg;
192 break;
193
194+ case 'B': /* B : read in bootcode */
195+ if ( strcmp(optarg, "-") )
196+ {
197+ msgfile = fopen(optarg, "r");
198+ if ( !msgfile )
199+ perror(optarg);
200+ }
201+ else
202+ msgfile = stdin;
203+
204+ if ( msgfile )
205+ {
206+ if (!(template_boot_code = malloc( MAX_RESERVED )))
207+ die( "Out of memory" );
208+ /* The template boot sector including reserved must not be > 65535 */
209+ use_template = 1;
210+ i = 0;
211+ do
212+ {
213+ ch = getc(msgfile);
214+ switch (ch)
215+ {
216+ case EOF:
217+ break;
218+
219+ default:
220+ template_boot_code[i++] = ch; /* Store character */
221+ break;
222+ }
223+ }
224+ while ( ch != EOF && i < MAX_RESERVED );
225+ ch = getc(msgfile); /* find out if we're at EOF */
226+
227+ /* Fill up with zeros */
228+ while( i < MAX_RESERVED )
229+ template_boot_code[i++] = '\0';
230+
231+ if ( ch != EOF )
232+ printf ("Warning: template too long; truncated after %d bytes\n", i);
233+
234+ if ( msgfile != stdin )
235+ fclose(msgfile);
236+ }
237+ break;
238+
239 case 'm': /* m : Set boot message */
240 if ( strcmp(optarg, "-") )
241 {
diff --git a/meta/recipes-devtools/dosfstools/dosfstools/mkdosfs-dir.patch b/meta/recipes-devtools/dosfstools/dosfstools/mkdosfs-dir.patch
deleted file mode 100644
index 3ba4711d12..0000000000
--- a/meta/recipes-devtools/dosfstools/dosfstools/mkdosfs-dir.patch
+++ /dev/null
@@ -1,639 +0,0 @@
1Add -d <directory> support to populate the image.
2
3Upstream-Status: Inappropriate [licensing]
4We're tracking an old release of dosfstools due to licensing issues.
5
6Signed-off-by: Scott Garman <scott.a.garman@intel.com>
7
8Index: dosfstools-2.11/mkdosfs/mkdosfs.c
9===================================================================
10--- dosfstools-2.11.orig/mkdosfs/mkdosfs.c 2011-12-06 12:27:55.000000000 +0000
11+++ dosfstools-2.11/mkdosfs/mkdosfs.c 2011-12-06 12:37:13.445950703 +0000
12@@ -18,6 +18,10 @@
13 as a rule), and not the block. For example the boot block does not
14 occupy a full cluster.
15
16+ June 2004 - Jordan Crouse (info.linux@amd.com)
17+ Added -d <directory> support to populate the image
18+ Copyright (C) 2004, Advanced Micro Devices, All Rights Reserved
19+
20 Fixes/additions May 1998 by Roman Hodek
21 <Roman.Hodek@informatik.uni-erlangen.de>:
22 - Atari format support
23@@ -71,6 +75,8 @@
24 #include <unistd.h>
25 #include <time.h>
26 #include <errno.h>
27+#include <libgen.h>
28+#include <dirent.h>
29
30 #include <linux/version.h>
31 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
32@@ -110,6 +116,8 @@
33 * sufficient (or even better :) for 64 bit offsets in the meantime */
34 #define llseek lseek
35
36+#define ROUND_UP(value, divisor) (value + (divisor - (value % divisor))) / divisor
37+
38 /* Constant definitions */
39
40 #define TRUE 1 /* Boolean constants */
41@@ -149,7 +157,6 @@
42 #define ATTR_VOLUME 8 /* volume label */
43 #define ATTR_DIR 16 /* directory */
44 #define ATTR_ARCH 32 /* archived */
45-
46 #define ATTR_NONE 0 /* no attribute bits */
47 #define ATTR_UNUSED (ATTR_VOLUME | ATTR_ARCH | ATTR_SYS | ATTR_HIDDEN)
48 /* attribute bits that are copied "as is" */
49@@ -245,6 +252,19 @@
50 __u32 reserved2[4];
51 };
52
53+/* This stores up to 13 chars of the name */
54+
55+struct msdos_dir_slot {
56+ __u8 id; /* sequence number for slot */
57+ __u8 name0_4[10]; /* first 5 characters in name */
58+ __u8 attr; /* attribute byte */
59+ __u8 reserved; /* always 0 */
60+ __u8 alias_checksum; /* checksum for 8.3 alias */
61+ __u8 name5_10[12]; /* 6 more characters in name */
62+ __u16 start; /* starting cluster number, 0 in long slots */
63+ __u8 name11_12[4]; /* last 2 characters in name */
64+};
65+
66 struct msdos_dir_entry
67 {
68 char name[8], ext[3]; /* name and extension */
69@@ -293,6 +313,15 @@
70
71 #define MESSAGE_OFFSET 29 /* Offset of message in above code */
72
73+/* Special structure to keep track of directories as we add them for the -d option */
74+
75+struct dir_entry {
76+ int root; /* Specifies if this is the root dir or not */
77+ int count; /* Number of items in the table */
78+ int entries; /* Number of entries in the table */
79+ struct msdos_dir_entry *table; /* Pointer to the entry table */
80+};
81+
82 /* Global variables - the root of all evil :-) - see these and weep! */
83
84 static char *template_boot_code; /* Variable to store a full template boot sector in */
85@@ -326,6 +355,9 @@
86 static int size_root_dir; /* Size of the root directory in bytes */
87 static int sectors_per_cluster = 0; /* Number of sectors per disk cluster */
88 static int root_dir_entries = 0; /* Number of root directory entries */
89+static int root_dir_num_entries = 0;
90+static int last_cluster_written = 0;
91+
92 static char *blank_sector; /* Blank sector - all zeros */
93 static int hidden_sectors = 0; /* Number of hidden sectors */
94
95@@ -399,7 +431,6 @@
96 }
97 }
98
99-
100 /* Mark a specified sector as having a particular value in it's FAT entry */
101
102 static void
103@@ -1266,6 +1297,9 @@
104 die ("unable to allocate space for root directory in memory");
105 }
106
107+
108+ last_cluster_written = 2;
109+
110 memset(root_dir, 0, size_root_dir);
111 if ( memcmp(volume_name, " ", 11) )
112 {
113@@ -1314,11 +1348,11 @@
114 }
115
116 if (!(blank_sector = malloc( sector_size )))
117- die( "Out of memory" );
118+ die( "Out of memory" );
119+
120 memset(blank_sector, 0, sector_size);
121 }
122-
123-
124+
125 /* Write the new filesystem's data tables to wherever they're going to end up! */
126
127 #define error(str) \
128@@ -1340,7 +1374,7 @@
129 do { \
130 int __size = (size); \
131 if (write (dev, buf, __size) != __size) \
132- error ("failed whilst writing " errstr); \
133+ error ("failed whilst writing " errstr); \
134 } while(0)
135
136
137@@ -1412,6 +1446,452 @@
138 free (fat); /* Free up the fat table space reserved during setup_tables */
139 }
140
141+/* Add a file to the specified directory entry, and also write it into the image */
142+
143+static void copy_filename(char *filename, char *base, char *ext) {
144+
145+ char *ch = filename;
146+ int i, len;
147+
148+ memset(base, 0x20, 8);
149+ memset(ext, 0x20, 3);
150+
151+ for(len = 0 ; *ch && *ch != '.'; ch++) {
152+ base[len++] = toupper(*ch);
153+ if (len == 8) break;
154+ }
155+
156+ for ( ; *ch && *ch != '.'; ch++);
157+ if (*ch) ch++;
158+
159+ for(len = 0 ; *ch; ch++) {
160+ ext[len++] = toupper(*ch);
161+ if (len == 3) break;
162+ }
163+}
164+
165+/* Check for an .attrib.<filename> file, and read the attributes therein */
166+
167+/* We are going to be pretty pedantic about this. The file needs 3
168+ bytes at the beginning, the attributes are listed in this order:
169+
170+ (H)idden|(S)ystem|(A)rchived
171+
172+ A capital HSA means to enable it, anything else will disable it
173+ (I recommend a '-') The unix user attributes will still be used
174+ for write access.
175+
176+ For example, to enable system file access for ldlinux.sys, write
177+ the following to .attrib.ldlinux.sys: -S-
178+*/
179+
180+unsigned char check_attrib_file(char *dir, char *filename) {
181+
182+ char attrib[4] = { '-', '-', '-' };
183+ unsigned char *buffer = 0;
184+ int ret = ATTR_NONE;
185+ int fd = -1;
186+
187+ buffer = (char *) calloc(1, strlen(dir) + strlen(filename) + 10);
188+ if (!buffer) return ATTR_NONE;
189+
190+ sprintf(buffer, "%s/.attrib.%s", dir, filename);
191+
192+ if (access(buffer, R_OK))
193+ goto exit_attrib;
194+
195+ if ((fd = open(buffer, O_RDONLY, 0)) < 0)
196+ goto exit_attrib;
197+
198+ if (read(fd, attrib, 3) < 0)
199+ goto exit_attrib;
200+
201+ if (attrib[0] == 'H') ret |= ATTR_HIDDEN;
202+ if (attrib[1] == 'S') ret |= ATTR_SYS;
203+ if (attrib[2] == 'A') ret |= ATTR_ARCH;
204+
205+ printf("%s: Setting atrribute %x\n", filename, ret);
206+
207+ exit_attrib:
208+ if (fd >= 0) close(fd);
209+ if (buffer) free(buffer);
210+
211+ return ret;
212+}
213+
214+static void copy_name(char *buffer, int size, char **pointer) {
215+ int i;
216+
217+ for(i = 0; i < size; i += 2) {
218+ if (*pointer) {
219+ buffer[i] = **pointer;
220+ buffer[i + 1] = 0x00;
221+ *pointer = **pointer ? *pointer + 1 : 0;
222+ }
223+ else {
224+ buffer[i] = 0xFF;
225+ buffer[i + 1] = 0xFF;
226+ }
227+ }
228+}
229+
230+static int add_file(char *filename, struct dir_entry *dir, unsigned char attr)
231+{
232+ struct stat stat;
233+ struct msdos_dir_entry *entry;
234+ int infile = 0;
235+ int sectors, clusters;
236+ struct tm *ctime;
237+ int c, s;
238+ int ptr;
239+ char *buffer, *base;
240+ int start;
241+ int usedsec, totalsec;
242+
243+ char name83[8], ext83[3];
244+
245+ struct msdos_dir_slot *slot;
246+ int i;
247+ char *p;
248+
249+ /* The root directory is static, everything else grows as needed */
250+
251+ if (dir->root) {
252+ if (dir->count == dir->entries) {
253+ printf("Error - too many directory entries\n");
254+ }
255+ }
256+ else {
257+ if (dir->count == dir->entries) {
258+ if (!dir->table)
259+ dir->table =
260+ (struct msdos_dir_entry *) malloc(sizeof(struct msdos_dir_entry));
261+ else {
262+ dir->table =
263+ (struct msdos_dir_entry *) realloc(dir->table, (dir->entries + 1) *
264+ sizeof(struct msdos_dir_entry));
265+
266+ memset(&dir->table[dir->entries], 0, sizeof(struct msdos_dir_entry));
267+ }
268+
269+ dir->entries++;
270+ }
271+ }
272+
273+ infile = open(filename, O_RDONLY, 0);
274+ if (!infile) return;
275+
276+ if (fstat(infile, &stat))
277+ goto exit_add;
278+
279+ if (S_ISCHR(stat.st_mode) ||S_ISBLK(stat.st_mode) ||
280+ S_ISFIFO(stat.st_mode) || S_ISLNK(stat.st_mode)) {
281+ printf("Error - cannot create a special file in a FATFS\n");
282+ goto exit_add;
283+ }
284+
285+ /* FIXME: This isn't very pretty */
286+
287+ usedsec = start_data_sector + (size_root_dir / sector_size) +
288+ (last_cluster_written * bs.cluster_size);
289+
290+ totalsec = blocks * BLOCK_SIZE / sector_size;
291+
292+ /* Figure out how many sectors / clustors the file requires */
293+
294+ sectors = ROUND_UP(stat.st_size, sector_size);
295+ clusters = ROUND_UP(sectors, (int) bs.cluster_size);
296+
297+ if (usedsec + sectors > totalsec) {
298+ printf("Error - %s is too big (%d vs %d)\n", filename, sectors, totalsec - usedsec);
299+ close(infile);
300+ return -1;
301+ }
302+
303+ printf("ADD %s\n", filename);
304+
305+ /* Grab the basename of the file */
306+ base = basename(filename);
307+
308+ /* Extract out the 8.3 name */
309+ copy_filename(base, name83, ext83);
310+
311+ /* Make an extended name slot */
312+
313+ slot = (struct msdos_dir_slot *) &dir->table[dir->count++];
314+ slot->id = 'A';
315+ slot->attr = 0x0F;
316+ slot->reserved = 0;
317+ slot->start = 0;
318+
319+ slot->alias_checksum = 0;
320+
321+ for(i = 0; i < 8; i++)
322+ slot->alias_checksum = (((slot->alias_checksum&1)<<7)|((slot->alias_checksum&0xfe)>>1)) + name83[i];
323+
324+ for(i = 0; i < 3; i++)
325+ slot->alias_checksum = (((slot->alias_checksum&1)<<7)|((slot->alias_checksum&0xfe)>>1)) + ext83[i];
326+
327+ p = base;
328+
329+ copy_name(slot->name0_4, 10, &p);
330+ copy_name(slot->name5_10, 12, &p);
331+ copy_name(slot->name11_12, 4, &p);
332+
333+
334+ /* Get the entry from the root filesytem */
335+ entry = &dir->table[dir->count++];
336+
337+ strncpy(entry->name, name83, 8);
338+ strncpy(entry->ext, ext83, 3);
339+
340+
341+ /* If the user has it read only, then add read only to the incoming
342+ attribute settings */
343+
344+ if (!(stat.st_mode & S_IWUSR)) attr |= ATTR_RO;
345+ entry->attr = attr;
346+
347+ /* Set the access time on the file */
348+ ctime = localtime(&create_time);
349+
350+ entry->time = CT_LE_W((unsigned short)((ctime->tm_sec >> 1) +
351+ (ctime->tm_min << 5) + (ctime->tm_hour << 11)));
352+
353+ entry->date = CT_LE_W((unsigned short)(ctime->tm_mday +
354+ ((ctime->tm_mon+1) << 5) +
355+ ((ctime->tm_year-80) << 9)));
356+
357+ entry->ctime_ms = 0;
358+ entry->ctime = entry->time;
359+ entry->cdate = entry->date;
360+ entry->adate = entry->date;
361+ entry->size = stat.st_size;
362+
363+ start = last_cluster_written;
364+
365+ entry->start = CT_LE_W(start); /* start sector */
366+ entry->starthi = CT_LE_W((start & 0xFFFF0000) >> 16); /* High start sector (for FAT32) */
367+
368+ /* We mark all of the clusters we use in the FAT */
369+
370+ for(c = 0; c < clusters; c++ ) {
371+ int free;
372+ int next = c == (clusters - 1) ? FAT_EOF : start + c + 1;
373+ mark_FAT_cluster(start + c, next);
374+ last_cluster_written++;
375+ }
376+
377+ /* This confused me too - cluster 2 starts after the
378+ root directory data - search me as to why */
379+
380+ ptr = (start_data_sector * sector_size) + size_root_dir;
381+ ptr += (start - 2) * bs.cluster_size * sector_size;
382+
383+ buffer = (char *) malloc(sector_size);
384+
385+ if (!buffer) {
386+ printf("Error - couldn't allocate memory\n");
387+ goto exit_add;
388+ }
389+
390+ /* Write the file into the file block */
391+
392+ seekto(ptr, "datafile");
393+
394+ while(1) {
395+ int size = read(infile, buffer, sector_size);
396+ if (size <= 0) break;
397+
398+ writebuf(buffer, size, "data");
399+ }
400+
401+ exit_add:
402+ if (infile) close(infile);
403+}
404+
405+/* Add a new directory to the specified directory entry, and in turn populate
406+ it with its own files */
407+
408+/* FIXME: This should check to make sure there is enough size to add itself */
409+
410+static void add_directory(char *filename, struct dir_entry *dir) {
411+
412+ struct dir_entry *newdir = 0;
413+ struct msdos_dir_entry *entry;
414+ struct tm *ctime;
415+ DIR *rddir = opendir(filename);
416+ struct dirent *dentry = 0;
417+ int remain;
418+ char *data;
419+
420+ /* If the directory doesn't exist */
421+ if (!rddir) return;
422+
423+ if (dir->root) {
424+ if (dir->count == dir->entries) {
425+ printf("Error - too many directory entries\n");
426+ goto exit_add_dir;
427+ }
428+ }
429+ else {
430+ if (dir->count == dir->entries) {
431+ if (!dir->table)
432+ dir->table = (struct msdos_dir_entry *) malloc(sizeof(struct msdos_dir_entry));
433+ else {
434+ dir->table = (struct msdos_dir_entry *) realloc(dir->table, (dir->entries + 1) *
435+ sizeof(struct msdos_dir_entry));
436+
437+ /* Zero it out to avoid issues */
438+ memset(&dir->table[dir->entries], 0, sizeof(struct msdos_dir_entry));
439+ }
440+ dir->entries++;
441+ }
442+ }
443+
444+ /* Now, create a new directory entry for the new directory */
445+ newdir = (struct dir_entry *) calloc(1, sizeof(struct dir_entry));
446+ if (!newdir) goto exit_add_dir;
447+
448+ entry = &dir->table[dir->count++];
449+
450+ strncpy(entry->name, basename(filename), sizeof(entry->name));
451+
452+ entry->attr = ATTR_DIR;
453+ ctime = localtime(&create_time);
454+
455+ entry->time = CT_LE_W((unsigned short)((ctime->tm_sec >> 1) +
456+ (ctime->tm_min << 5) + (ctime->tm_hour << 11)));
457+
458+ entry->date = CT_LE_W((unsigned short)(ctime->tm_mday +
459+ ((ctime->tm_mon+1) << 5) +
460+ ((ctime->tm_year-80) << 9)));
461+
462+ entry->ctime_ms = 0;
463+ entry->ctime = entry->time;
464+ entry->cdate = entry->date;
465+ entry->adate = entry->date;
466+
467+ /* Now, read the directory */
468+
469+ while((dentry = readdir(rddir))) {
470+ struct stat st;
471+ char *buffer;
472+
473+ if (!strcmp(dentry->d_name, ".") || !strcmp(dentry->d_name, ".."))
474+ continue;
475+
476+ /* DOS wouldn't like a typical unix . (dot) file, so we skip those too */
477+ if (dentry->d_name[0] == '.') continue;
478+
479+ buffer = malloc(strlen(filename) + strlen(dentry->d_name) + 3);
480+ if (!buffer) continue;
481+
482+ sprintf(buffer, "%s/%s", filename, dentry->d_name);
483+ if (!stat(buffer, &st)) {
484+ if (S_ISDIR(st.st_mode))
485+ add_directory(buffer, newdir);
486+ else if (S_ISREG(st.st_mode)) {
487+ unsigned char attrib = check_attrib_file(filename, dentry->d_name);
488+ add_file(buffer, newdir, attrib);
489+ }
490+ }
491+
492+ free(buffer);
493+ }
494+
495+ /* Now that the entire directory has been written, go ahead and write the directory
496+ entry as well */
497+
498+ entry->start = CT_LE_W(last_cluster_written);
499+ entry->starthi = CT_LE_W((last_cluster_written & 0xFFFF0000) >> 16);
500+ entry->size = newdir->count * sizeof(struct msdos_dir_entry);
501+
502+ remain = entry->size;
503+ data = (char *) newdir->table;
504+
505+ while(remain) {
506+ int size =
507+ remain > bs.cluster_size * sector_size ? bs.cluster_size * sector_size : remain;
508+
509+ int pos = (start_data_sector * sector_size) + size_root_dir;
510+ pos += (last_cluster_written - 2) * bs.cluster_size * sector_size;
511+
512+ seekto(pos, "add_dir");
513+ writebuf(data, size, "add_dir");
514+
515+ remain -= size;
516+ data += size;
517+
518+ mark_FAT_cluster(last_cluster_written, remain ? last_cluster_written + 1 : FAT_EOF);
519+ last_cluster_written++;
520+ }
521+
522+ exit_add_dir:
523+ if (rddir) closedir(rddir);
524+ if (newdir->table) free(newdir->table);
525+ if (newdir) free(newdir);
526+}
527+
528+/* Given a directory, add all the files and directories to the root directory of the
529+ image.
530+*/
531+
532+static void add_root_directory(char *dirname)
533+{
534+ DIR *dir = opendir(dirname);
535+ struct dirent *entry = 0;
536+ struct dir_entry *newdir = 0;
537+
538+ if (!dir) {
539+ printf("Error - directory %s does not exist\n", dirname);
540+ return;
541+ }
542+
543+ /* Create the root directory structure - this is a bit different then
544+ above, because the table already exists, we just refer to it. */
545+
546+ newdir = (struct dir_entry *) calloc(1,sizeof(struct dir_entry));
547+
548+ if (!newdir) {
549+ closedir(dir);
550+ return;
551+ }
552+
553+ newdir->entries = root_dir_entries;
554+ newdir->root = 1;
555+ newdir->count = 0;
556+ newdir->table = root_dir;
557+
558+ while((entry = readdir(dir))) {
559+ struct stat st;
560+ char *buffer;
561+
562+ if (!strcmp(entry->d_name, ".") || !strcmp(entry->d_name, ".."))
563+ continue;
564+
565+ /* DOS wouldn't like a typical unix . (dot) file, so we skip those too */
566+ if (entry->d_name[0] == '.') continue;
567+
568+ buffer = malloc(strlen(dirname) + strlen(entry->d_name) + 3);
569+ if (!buffer) continue;
570+
571+ sprintf(buffer, "%s/%s", dirname, entry->d_name);
572+ if (!stat(buffer, &st)) {
573+ if (S_ISDIR(st.st_mode))
574+ add_directory(buffer, newdir);
575+ else if (S_ISREG(st.st_mode)) {
576+ unsigned char attrib = check_attrib_file(dirname, entry->d_name);
577+ add_file(buffer, newdir, attrib);
578+ }
579+ }
580+
581+ free(buffer);
582+ }
583+
584+ closedir(dir);
585+ if (newdir) free(newdir);
586+}
587
588 /* Report the command usage and return a failure error code */
589
590@@ -1423,7 +1903,7 @@
591 [-m boot-msg-file] [-n volume-name] [-i volume-id] [-B bootcode]\n\
592 [-s sectors-per-cluster] [-S logical-sector-size] [-f number-of-FATs]\n\
593 [-h hidden-sectors] [-F fat-size] [-r root-dir-entries] [-R reserved-sectors]\n\
594- /dev/name [blocks]\n");
595+ [-d directory] /dev/name [blocks]\n");
596 }
597
598 /*
599@@ -1463,6 +1943,8 @@
600 int c;
601 char *tmp;
602 char *listfile = NULL;
603+ char *dirname = NULL;
604+
605 FILE *msgfile;
606 struct stat statbuf;
607 int i = 0, pos, ch;
608@@ -1483,7 +1965,7 @@
609 printf ("%s " VERSION " (" VERSION_DATE ")\n",
610 program_name);
611
612- while ((c = getopt (argc, argv, "AbcCf:F:Ii:l:m:n:r:R:s:S:v:B:")) != EOF)
613+ while ((c = getopt (argc, argv, "AbcCd:f:F:Ii:l:m:n:r:R:s:S:v:B:")) != EOF)
614 /* Scan the command line for options */
615 switch (c)
616 {
617@@ -1508,6 +1990,10 @@
618 create = TRUE;
619 break;
620
621+ case 'd':
622+ dirname = optarg;
623+ break;
624+
625 case 'f': /* f : Choose number of FATs */
626 nr_fats = (int) strtol (optarg, &tmp, 0);
627 if (*tmp || nr_fats < 1 || nr_fats > 4)
628@@ -1811,8 +2297,10 @@
629 else if (listfile)
630 get_list_blocks (listfile);
631
632- write_tables (); /* Write the file system tables away! */
633
634+ if (dirname) add_root_directory(dirname);
635+
636+ write_tables (); /* Write the file system tables away! */
637 exit (0); /* Terminate with no errors! */
638 }
639
diff --git a/meta/recipes-devtools/dosfstools/dosfstools/msdos_fat12_undefined.patch b/meta/recipes-devtools/dosfstools/dosfstools/msdos_fat12_undefined.patch
deleted file mode 100644
index 11e8a7594b..0000000000
--- a/meta/recipes-devtools/dosfstools/dosfstools/msdos_fat12_undefined.patch
+++ /dev/null
@@ -1,19 +0,0 @@
1Fix a compilation error due to undefined MSDOS_FAT12.
2
3Upstream-Status: Inappropriate [licensing]
4We're tracking an old release of dosfstools due to licensing issues.
5
6Signed-off-by: Scott Garman <scott.a.garman@intel.com>
7
8--- dosfstools-2.10/dosfsck/boot.c.orig 2004-10-15 08:51:42.394725176 -0600
9+++ dosfstools-2.10/dosfsck/boot.c 2004-10-15 08:49:16.776862456 -0600
10@@ -14,6 +14,9 @@
11 #include "io.h"
12 #include "boot.h"
13
14+#ifndef MSDOS_FAT12
15+#define MSDOS_FAT12 4084
16+#endif
17
18 #define ROUND_TO_MULTIPLE(n,m) ((n) && (m) ? (n)+(m)-1-((n)-1)%(m) : 0)
19 /* don't divide by zero */
diff --git a/meta/recipes-devtools/dosfstools/dosfstools/nofat32_autoselect.patch b/meta/recipes-devtools/dosfstools/dosfstools/nofat32_autoselect.patch
deleted file mode 100644
index 848a76b990..0000000000
--- a/meta/recipes-devtools/dosfstools/dosfstools/nofat32_autoselect.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1FAT32 appears to be broken when used with the -d option to populate the msdos
2image. This disables the FAT32 autoselection code which means we don't get
3broken images with the -d option. It can still be enabled on the commandline
4at the users own risk. This changes us back to the 2.10 version's behaviour
5which was known to work well even with large images.
6
7Upstream-Status: Inappropriate [depends on other patches we apply]
8
9RP 2011/12/13
10
11Index: dosfstools-2.11/mkdosfs/mkdosfs.c
12===================================================================
13--- dosfstools-2.11.orig/mkdosfs/mkdosfs.c 2011-12-13 13:54:37.538509391 +0000
14+++ dosfstools-2.11/mkdosfs/mkdosfs.c 2011-12-13 13:55:10.258508631 +0000
15@@ -808,10 +808,12 @@
16 bs.media = (char) 0xf8; /* Set up the media descriptor for a hard drive */
17 bs.dir_entries[0] = (char) 0; /* Default to 512 entries */
18 bs.dir_entries[1] = (char) 2;
19+/*
20 if (!size_fat && blocks*SECTORS_PER_BLOCK > 1064960) {
21 if (verbose) printf("Auto-selecting FAT32 for large filesystem\n");
22 size_fat = 32;
23 }
24+*/
25 if (size_fat == 32) {
26 /* For FAT32, try to do the same as M$'s format command:
27 * fs size < 256M: 0.5k clusters
diff --git a/meta/recipes-devtools/dosfstools/dosfstools_2.11.bb b/meta/recipes-devtools/dosfstools/dosfstools_2.11.bb
deleted file mode 100644
index 176504d4f3..0000000000
--- a/meta/recipes-devtools/dosfstools/dosfstools_2.11.bb
+++ /dev/null
@@ -1,34 +0,0 @@
1# dosfstools OE build file
2# Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved
3# Released under the MIT license (see packages/COPYING)
4SUMMARY = "DOS FAT Filesystem Utilities"
5HOMEPAGE = "https://github.com/dosfstools/dosfstools"
6
7SECTION = "base"
8LICENSE = "GPLv2"
9LIC_FILES_CHKSUM = "file://mkdosfs/COPYING;md5=cbe67f08d6883bff587f615f0cc81aa8"
10PR = "r5"
11
12SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/${BPN}/${BP}.src.tar.gz/407d405ade410f7597d364ab5dc8c9f6/${BP}.src.tar.gz \
13 file://mkdosfs-bootcode.patch \
14 file://mkdosfs-dir.patch \
15 file://alignment_hack.patch \
16 file://msdos_fat12_undefined.patch \
17 file://dosfstools-msdos_fs-types.patch \
18 file://include-linux-types.patch \
19 file://nofat32_autoselect.patch \
20 file://fix_populated_dosfs_creation.patch \
21 file://0001-Include-fcntl.h-for-getting-loff_t-definition.patch \
22"
23
24SRC_URI[md5sum] = "407d405ade410f7597d364ab5dc8c9f6"
25SRC_URI[sha256sum] = "0eac6d12388b3d9ed78684529c1b0d9346fa2abbe406c4d4a3eb5a023c98a484"
26
27CFLAGS += "-D_GNU_SOURCE ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', '', d)}"
28
29EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
30
31do_install () {
32 oe_runmake "PREFIX=${D}" "SBINDIR=${D}${base_sbindir}" \
33 "MANDIR=${D}${mandir}/man8" install
34}
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/arm_backend.diff b/meta/recipes-devtools/elfutils/elfutils-0.148/arm_backend.diff
deleted file mode 100644
index d4e4675ad5..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/arm_backend.diff
+++ /dev/null
@@ -1,449 +0,0 @@
1Upstream-Status: Backport
2
3Index: elfutils-0.146/backends/arm_init.c
4===================================================================
5--- elfutils-0.146.orig/backends/arm_init.c 2009-04-21 14:50:01.000000000 +0000
6+++ elfutils-0.146/backends/arm_init.c 2010-04-24 10:11:13.000000000 +0000
7@@ -32,21 +32,32 @@
8 #define RELOC_PREFIX R_ARM_
9 #include "libebl_CPU.h"
10
11+#include "libebl_arm.h"
12+
13 /* This defines the common reloc hooks based on arm_reloc.def. */
14 #include "common-reloc.c"
15
16
17 const char *
18 arm_init (elf, machine, eh, ehlen)
19- Elf *elf __attribute__ ((unused));
20+ Elf *elf;
21 GElf_Half machine __attribute__ ((unused));
22 Ebl *eh;
23 size_t ehlen;
24 {
25+ int soft_float = 0;
26+
27 /* Check whether the Elf_BH object has a sufficent size. */
28 if (ehlen < sizeof (Ebl))
29 return NULL;
30
31+ if (elf) {
32+ GElf_Ehdr ehdr_mem;
33+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem);
34+ if (ehdr && (ehdr->e_flags & EF_ARM_SOFT_FLOAT))
35+ soft_float = 1;
36+ }
37+
38 /* We handle it. */
39 eh->name = "ARM";
40 arm_init_reloc (eh);
41@@ -58,7 +69,10 @@
42 HOOK (eh, core_note);
43 HOOK (eh, auxv_info);
44 HOOK (eh, check_object_attribute);
45- HOOK (eh, return_value_location);
46+ if (soft_float)
47+ eh->return_value_location = arm_return_value_location_soft;
48+ else
49+ eh->return_value_location = arm_return_value_location_hard;
50
51 return MODVERSION;
52 }
53Index: elfutils-0.146/backends/arm_regs.c
54===================================================================
55--- elfutils-0.146.orig/backends/arm_regs.c 2009-04-21 14:50:01.000000000 +0000
56+++ elfutils-0.146/backends/arm_regs.c 2010-04-24 10:11:13.000000000 +0000
57@@ -28,6 +28,7 @@
58 #endif
59
60 #include <string.h>
61+#include <stdio.h>
62 #include <dwarf.h>
63
64 #define BACKEND arm_
65@@ -58,7 +59,15 @@
66 namelen = 2;
67 break;
68
69- case 10 ... 12:
70+ case 10 ... 11:
71+ name[0] = 'r';
72+ name[1] = '1';
73+ name[2] = regno % 10 + '0';
74+ namelen = 3;
75+ break;
76+
77+ case 12:
78+ *type = DW_ATE_unsigned;
79 name[0] = 'r';
80 name[1] = '1';
81 name[2] = regno % 10 + '0';
82@@ -73,6 +82,9 @@
83 break;
84
85 case 16 + 0 ... 16 + 7:
86+ /* AADWARF says that there are no registers in that range,
87+ * but gcc maps FPA registers here
88+ */
89 regno += 96 - 16;
90 /* Fall through. */
91 case 96 + 0 ... 96 + 7:
92@@ -84,11 +96,139 @@
93 namelen = 2;
94 break;
95
96+ case 64 + 0 ... 64 + 9:
97+ *setname = "VFP";
98+ *bits = 32;
99+ *type = DW_ATE_float;
100+ name[0] = 's';
101+ name[1] = regno - 64 + '0';
102+ namelen = 2;
103+ break;
104+
105+ case 64 + 10 ... 64 + 31:
106+ *setname = "VFP";
107+ *bits = 32;
108+ *type = DW_ATE_float;
109+ name[0] = 's';
110+ name[1] = (regno - 64) / 10 + '0';
111+ name[2] = (regno - 64) % 10 + '0';
112+ namelen = 3;
113+ break;
114+
115+ case 104 + 0 ... 104 + 7:
116+ /* XXX TODO:
117+ * This can be either intel wireless MMX general purpose/control
118+ * registers or xscale accumulator, which have different usage.
119+ * We only have the intel wireless MMX here now.
120+ * The name needs to be changed for the xscale accumulator too. */
121+ *setname = "MMX";
122+ *type = DW_ATE_unsigned;
123+ *bits = 32;
124+ memcpy(name, "wcgr", 4);
125+ name[4] = regno - 104 + '0';
126+ namelen = 5;
127+ break;
128+
129+ case 112 + 0 ... 112 + 9:
130+ *setname = "MMX";
131+ *type = DW_ATE_unsigned;
132+ *bits = 64;
133+ name[0] = 'w';
134+ name[1] = 'r';
135+ name[2] = regno - 112 + '0';
136+ namelen = 3;
137+ break;
138+
139+ case 112 + 10 ... 112 + 15:
140+ *setname = "MMX";
141+ *type = DW_ATE_unsigned;
142+ *bits = 64;
143+ name[0] = 'w';
144+ name[1] = 'r';
145+ name[2] = '1';
146+ name[3] = regno - 112 - 10 + '0';
147+ namelen = 4;
148+ break;
149+
150 case 128:
151+ *setname = "special";
152 *type = DW_ATE_unsigned;
153 return stpcpy (name, "spsr") + 1 - name;
154
155+ case 129:
156+ *setname = "special";
157+ *type = DW_ATE_unsigned;
158+ return stpcpy(name, "spsr_fiq") + 1 - name;
159+
160+ case 130:
161+ *setname = "special";
162+ *type = DW_ATE_unsigned;
163+ return stpcpy(name, "spsr_irq") + 1 - name;
164+
165+ case 131:
166+ *setname = "special";
167+ *type = DW_ATE_unsigned;
168+ return stpcpy(name, "spsr_abt") + 1 - name;
169+
170+ case 132:
171+ *setname = "special";
172+ *type = DW_ATE_unsigned;
173+ return stpcpy(name, "spsr_und") + 1 - name;
174+
175+ case 133:
176+ *setname = "special";
177+ *type = DW_ATE_unsigned;
178+ return stpcpy(name, "spsr_svc") + 1 - name;
179+
180+ case 144 ... 150:
181+ *setname = "integer";
182+ *type = DW_ATE_signed;
183+ *bits = 32;
184+ return sprintf(name, "r%d_usr", regno - 144 + 8) + 1;
185+
186+ case 151 ... 157:
187+ *setname = "integer";
188+ *type = DW_ATE_signed;
189+ *bits = 32;
190+ return sprintf(name, "r%d_fiq", regno - 151 + 8) + 1;
191+
192+ case 158 ... 159:
193+ *setname = "integer";
194+ *type = DW_ATE_signed;
195+ *bits = 32;
196+ return sprintf(name, "r%d_irq", regno - 158 + 13) + 1;
197+
198+ case 160 ... 161:
199+ *setname = "integer";
200+ *type = DW_ATE_signed;
201+ *bits = 32;
202+ return sprintf(name, "r%d_abt", regno - 160 + 13) + 1;
203+
204+ case 162 ... 163:
205+ *setname = "integer";
206+ *type = DW_ATE_signed;
207+ *bits = 32;
208+ return sprintf(name, "r%d_und", regno - 162 + 13) + 1;
209+
210+ case 164 ... 165:
211+ *setname = "integer";
212+ *type = DW_ATE_signed;
213+ *bits = 32;
214+ return sprintf(name, "r%d_svc", regno - 164 + 13) + 1;
215+
216+ case 192 ... 199:
217+ *setname = "MMX";
218+ *bits = 32;
219+ *type = DW_ATE_unsigned;
220+ name[0] = 'w';
221+ name[1] = 'c';
222+ name[2] = regno - 192 + '0';
223+ namelen = 3;
224+ break;
225+
226 case 256 + 0 ... 256 + 9:
227+ /* XXX TODO: Neon also uses those registers and can contain
228+ * both float and integers */
229 *setname = "VFP";
230 *type = DW_ATE_float;
231 *bits = 64;
232Index: elfutils-0.146/backends/arm_retval.c
233===================================================================
234--- elfutils-0.146.orig/backends/arm_retval.c 2010-01-12 16:57:54.000000000 +0000
235+++ elfutils-0.146/backends/arm_retval.c 2010-04-24 10:11:13.000000000 +0000
236@@ -45,6 +45,13 @@
237 #define nloc_intreg 1
238 #define nloc_intregs(n) (2 * (n))
239
240+/* f1 */ /* XXX TODO: f0 can also have number 96 if program was compiled with -mabi=aapcs */
241+static const Dwarf_Op loc_fpreg[] =
242+ {
243+ { .atom = DW_OP_reg16 },
244+ };
245+#define nloc_fpreg 1
246+
247 /* The return value is a structure and is actually stored in stack space
248 passed in a hidden argument by the caller. But, the compiler
249 helpfully returns the address of that space in r0. */
250@@ -55,8 +62,9 @@
251 #define nloc_aggregate 1
252
253
254-int
255-arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp)
256+static int
257+arm_return_value_location_ (Dwarf_Die *functypedie, const Dwarf_Op **locp,
258+ int soft_float)
259 {
260 /* Start with the function's type, and get the DW_AT_type attribute,
261 which is the type of the return value. */
262@@ -109,14 +117,31 @@
263 else
264 return -1;
265 }
266+ if (tag == DW_TAG_base_type)
267+ {
268+ Dwarf_Word encoding;
269+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding,
270+ &attr_mem), &encoding) != 0)
271+ return -1;
272+
273+ if ((encoding == DW_ATE_float) && !soft_float)
274+ {
275+ *locp = loc_fpreg;
276+ if (size <= 8)
277+ return nloc_fpreg;
278+ goto aggregate;
279+ }
280+ }
281 if (size <= 16)
282 {
283 intreg:
284 *locp = loc_intreg;
285 return size <= 4 ? nloc_intreg : nloc_intregs ((size + 3) / 4);
286 }
287+ /* fall through. */
288
289 aggregate:
290+ /* XXX TODO sometimes aggregates are returned in r0 (-mabi=aapcs) */
291 *locp = loc_aggregate;
292 return nloc_aggregate;
293
294@@ -135,3 +160,18 @@
295 DWARF and might be valid. */
296 return -2;
297 }
298+
299+/* return location for -mabi=apcs-gnu -msoft-float */
300+int
301+arm_return_value_location_soft (Dwarf_Die *functypedie, const Dwarf_Op **locp)
302+{
303+ return arm_return_value_location_ (functypedie, locp, 1);
304+}
305+
306+/* return location for -mabi=apcs-gnu -mhard-float (current default) */
307+int
308+arm_return_value_location_hard (Dwarf_Die *functypedie, const Dwarf_Op **locp)
309+{
310+ return arm_return_value_location_ (functypedie, locp, 0);
311+}
312+
313Index: elfutils-0.146/libelf/elf.h
314===================================================================
315--- elfutils-0.146.orig/libelf/elf.h 2010-04-24 10:11:11.000000000 +0000
316+++ elfutils-0.146/libelf/elf.h 2010-04-24 10:11:13.000000000 +0000
317@@ -2290,6 +2290,9 @@
318 #define EF_ARM_EABI_VER4 0x04000000
319 #define EF_ARM_EABI_VER5 0x05000000
320
321+/* EI_OSABI values */
322+#define ELFOSABI_ARM_AEABI 64 /* Contains symbol versioning. */
323+
324 /* Additional symbol types for Thumb. */
325 #define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */
326 #define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */
327@@ -2307,12 +2310,19 @@
328
329 /* Processor specific values for the Phdr p_type field. */
330 #define PT_ARM_EXIDX (PT_LOPROC + 1) /* ARM unwind segment. */
331+#define PT_ARM_UNWIND PT_ARM_EXIDX
332
333 /* Processor specific values for the Shdr sh_type field. */
334 #define SHT_ARM_EXIDX (SHT_LOPROC + 1) /* ARM unwind section. */
335 #define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) /* Preemption details. */
336 #define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) /* ARM attributes section. */
337
338+/* Processor specific values for the Dyn d_tag field. */
339+#define DT_ARM_RESERVED1 (DT_LOPROC + 0)
340+#define DT_ARM_SYMTABSZ (DT_LOPROC + 1)
341+#define DT_ARM_PREEMTMAB (DT_LOPROC + 2)
342+#define DT_ARM_RESERVED2 (DT_LOPROC + 3)
343+#define DT_ARM_NUM 4
344
345 /* ARM relocs. */
346
347@@ -2344,12 +2354,75 @@
348 #define R_ARM_GOTPC 25 /* 32 bit PC relative offset to GOT */
349 #define R_ARM_GOT32 26 /* 32 bit GOT entry */
350 #define R_ARM_PLT32 27 /* 32 bit PLT address */
351+#define R_ARM_CALL 28
352+#define R_ARM_JUMP24 29
353+#define R_ARM_THM_JUMP24 30
354+#define R_ARM_BASE_ABS 31
355 #define R_ARM_ALU_PCREL_7_0 32
356 #define R_ARM_ALU_PCREL_15_8 33
357 #define R_ARM_ALU_PCREL_23_15 34
358 #define R_ARM_LDR_SBREL_11_0 35
359 #define R_ARM_ALU_SBREL_19_12 36
360 #define R_ARM_ALU_SBREL_27_20 37
361+#define R_ARM_TARGET1 38
362+#define R_ARM_SBREL31 39
363+#define R_ARM_V4BX 40
364+#define R_ARM_TARGET2 41
365+#define R_ARM_PREL31 42
366+#define R_ARM_MOVW_ABS_NC 43
367+#define R_ARM_MOVT_ABS 44
368+#define R_ARM_MOVW_PREL_NC 45
369+#define R_ARM_MOVT_PREL 46
370+#define R_ARM_THM_MOVW_ABS_NC 47
371+#define R_ARM_THM_MOVT_ABS 48
372+#define R_ARM_THM_MOVW_PREL_NC 49
373+#define R_ARM_THM_MOVT_PREL 50
374+#define R_ARM_THM_JUMP19 51
375+#define R_ARM_THM_JUMP6 52
376+#define R_ARM_THM_ALU_PREL_11_0 53
377+#define R_ARM_THM_PC12 54
378+#define R_ARM_ABS32_NOI 55
379+#define R_ARM_REL32_NOI 56
380+#define R_ARM_ALU_PC_G0_NC 57
381+#define R_ARM_ALU_PC_G0 58
382+#define R_ARM_ALU_PC_G1_NC 59
383+#define R_ARM_ALU_PC_G1 60
384+#define R_ARM_ALU_PC_G2 61
385+#define R_ARM_LDR_PC_G1 62
386+#define R_ARM_LDR_PC_G2 63
387+#define R_ARM_LDRS_PC_G0 64
388+#define R_ARM_LDRS_PC_G1 65
389+#define R_ARM_LDRS_PC_G2 66
390+#define R_ARM_LDC_PC_G0 67
391+#define R_ARM_LDC_PC_G1 68
392+#define R_ARM_LDC_PC_G2 69
393+#define R_ARM_ALU_SB_G0_NC 70
394+#define R_ARM_ALU_SB_G0 71
395+#define R_ARM_ALU_SB_G1_NC 72
396+#define R_ARM_ALU_SB_G1 73
397+#define R_ARM_ALU_SB_G2 74
398+#define R_ARM_LDR_SB_G0 75
399+#define R_ARM_LDR_SB_G1 76
400+#define R_ARM_LDR_SB_G2 77
401+#define R_ARM_LDRS_SB_G0 78
402+#define R_ARM_LDRS_SB_G1 79
403+#define R_ARM_LDRS_SB_G2 80
404+#define R_ARM_LDC_G0 81
405+#define R_ARM_LDC_G1 82
406+#define R_ARM_LDC_G2 83
407+#define R_ARM_MOVW_BREL_NC 84
408+#define R_ARM_MOVT_BREL 85
409+#define R_ARM_MOVW_BREL 86
410+#define R_ARM_THM_MOVW_BREL_NC 87
411+#define R_ARM_THM_MOVT_BREL 88
412+#define R_ARM_THM_MOVW_BREL 89
413+/* 90-93 unallocated */
414+#define R_ARM_PLT32_ABS 94
415+#define R_ARM_GOT_ABS 95
416+#define R_ARM_GOT_PREL 96
417+#define R_ARM_GOT_BREL12 97
418+#define R_ARM_GOTOFF12 98
419+#define R_ARM_GOTRELAX 99
420 #define R_ARM_GNU_VTENTRY 100
421 #define R_ARM_GNU_VTINHERIT 101
422 #define R_ARM_THM_PC11 102 /* thumb unconditional branch */
423@@ -2364,6 +2437,12 @@
424 static TLS block offset */
425 #define R_ARM_TLS_LE32 108 /* 32 bit offset relative to static
426 TLS block */
427+#define R_ARM_TLS_LDO12 109
428+#define R_ARM_TLS_LE12 110
429+#define R_ARM_TLS_IE12GP 111
430+/* 112 - 127 private range */
431+#define R_ARM_ME_TOO 128 /* obsolete */
432+
433 #define R_ARM_RXPC25 249
434 #define R_ARM_RSBREL32 250
435 #define R_ARM_THM_RPC22 251
436Index: elfutils-0.146/backends/libebl_arm.h
437===================================================================
438--- /dev/null 1970-01-01 00:00:00.000000000 +0000
439+++ elfutils-0.146/backends/libebl_arm.h 2010-04-24 10:11:13.000000000 +0000
440@@ -0,0 +1,9 @@
441+#ifndef _LIBEBL_ARM_H
442+#define _LIBEBL_ARM_H 1
443+
444+#include <libdw.h>
445+
446+extern int arm_return_value_location_soft(Dwarf_Die *, const Dwarf_Op **locp);
447+extern int arm_return_value_location_hard(Dwarf_Die *, const Dwarf_Op **locp);
448+
449+#endif
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/elf_additions.diff b/meta/recipes-devtools/elfutils/elfutils-0.148/elf_additions.diff
deleted file mode 100644
index 5baa709000..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/elf_additions.diff
+++ /dev/null
@@ -1,71 +0,0 @@
1Upstream-Status: Backport
2
3Index: elfutils-0.146/libelf/elf.h
4===================================================================
5--- elfutils-0.146.orig/libelf/elf.h 2010-04-24 10:13:50.000000000 +0000
6+++ elfutils-0.146/libelf/elf.h 2010-04-24 10:22:43.000000000 +0000
7@@ -143,6 +143,7 @@
8 #define ELFOSABI_HPUX 1 /* HP-UX */
9 #define ELFOSABI_NETBSD 2 /* NetBSD. */
10 #define ELFOSABI_LINUX 3 /* Linux. */
11+#define ELFOSABI_HURD 4 /* GNU/Hurd */
12 #define ELFOSABI_SOLARIS 6 /* Sun Solaris. */
13 #define ELFOSABI_AIX 7 /* IBM AIX. */
14 #define ELFOSABI_IRIX 8 /* SGI Irix. */
15@@ -150,8 +151,13 @@
16 #define ELFOSABI_TRU64 10 /* Compaq TRU64 UNIX. */
17 #define ELFOSABI_MODESTO 11 /* Novell Modesto. */
18 #define ELFOSABI_OPENBSD 12 /* OpenBSD. */
19+#define ELFOSABI_OPENVMS 13 /* OpenVMS */
20+#define ELFOSABI_NSK 14 /* Hewlett-Packard Non-Stop Kernel */
21+#define ELFOSABI_AROS 15 /* Amiga Research OS */
22+/* 64-255 Architecture-specific value range */
23 #define ELFOSABI_ARM_AEABI 64 /* ARM EABI */
24 #define ELFOSABI_ARM 97 /* ARM */
25+/* This is deprecated? It's not in the latest version anymore. */
26 #define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
27
28 #define EI_ABIVERSION 8 /* ABI version */
29@@ -206,7 +212,7 @@
30 #define EM_H8_300H 47 /* Hitachi H8/300H */
31 #define EM_H8S 48 /* Hitachi H8S */
32 #define EM_H8_500 49 /* Hitachi H8/500 */
33-#define EM_IA_64 50 /* Intel Merced */
34+#define EM_IA_64 50 /* Intel IA64 */
35 #define EM_MIPS_X 51 /* Stanford MIPS-X */
36 #define EM_COLDFIRE 52 /* Motorola Coldfire */
37 #define EM_68HC12 53 /* Motorola M68HC12 */
38@@ -220,7 +226,8 @@
39 #define EM_TINYJ 61 /* Advanced Logic Corp. Tinyj emb.fam*/
40 #define EM_X86_64 62 /* AMD x86-64 architecture */
41 #define EM_PDSP 63 /* Sony DSP Processor */
42-
43+#define EM_PDP10 64 /* Digital Equipment Corp. PDP-10 */
44+#define EM_PDP11 65 /* Digital Equipment Corp. PDP-11 */
45 #define EM_FX66 66 /* Siemens FX66 microcontroller */
46 #define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 mc */
47 #define EM_ST7 68 /* STmicroelectronics ST7 8 bit mc */
48@@ -250,7 +257,22 @@
49 #define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */
50 #define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */
51 #define EM_XTENSA 94 /* Tensilica Xtensa Architecture */
52-#define EM_NUM 95
53+#define EM_VIDEOCORE 95 /* Alphamosaic VideoCore processor */
54+#define EM_TMM_GPP 96 /* Thompson Multimedia General Purpose Processor */
55+#define EM_NS32K 97 /* National Semiconductor 32000 series */
56+#define EM_TPC 98 /* Tenor Network TPC processor */
57+#define EM_SNP1K 99 /* Trebia SNP 1000 processor */
58+#define EM_ST200 100 /* STMicroelectronics (www.st.com) ST200 microcontroller */
59+#define EM_IP2K 101 /* Ubicom IP2XXX microcontroller family */
60+#define EM_MAX 102 /* MAX Processor */
61+#define EM_CR 103 /* National Semiconductor CompactRISC */
62+#define EM_F2MC16 104 /* Fujitsu F2MC16 */
63+#define EM_MSP430 105 /* TI msp430 micro controller */
64+#define EM_BLACKFIN 106 /* Analog Devices Blackfin (DSP) processor */
65+#define EM_SE_C33 107 /* S1C33 Family of Seiko Epson processors */
66+#define EM_SEP 108 /* Sharp embedded microprocessor */
67+#define EM_ARCA 109 /* Arca RISC Microprocessor */
68+#define EM_NUM 110
69
70 /* If it is necessary to assign new unofficial EM_* values, please
71 pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/elf_begin.c-CVE-2014-9447-fix.patch b/meta/recipes-devtools/elfutils/elfutils-0.148/elf_begin.c-CVE-2014-9447-fix.patch
deleted file mode 100644
index deba45fa86..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/elf_begin.c-CVE-2014-9447-fix.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From 323ca04a0c9189544075c19b49da67f6443a8950 Mon Sep 17 00:00:00 2001
2From: Li xin <lixin.fnst@cn.fujitsu.com>
3Date: Wed, 21 Jan 2015 09:33:38 +0900
4Subject: [PATCH] elf_begin.c: CVE-2014-9447 fix
5
6this patch is from:
7 https://git.fedorahosted.org/cgit/elfutils.git/commit/?id=147018e729e7c22eeabf15b82d26e4bf68a0d18e
8
9Upstream-Status: Backport
10CVE: CVE-2014-9447
11
12Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
13---
14 libelf/elf_begin.c | 7 ++-----
15 1 file changed, 2 insertions(+), 5 deletions(-)
16
17diff --git a/libelf/elf_begin.c b/libelf/elf_begin.c
18index e46add3..e83ba35 100644
19--- a/libelf/elf_begin.c
20+++ b/libelf/elf_begin.c
21@@ -736,11 +736,8 @@ read_long_names (Elf *elf)
22 break;
23
24 /* NUL-terminate the string. */
25- *runp = '\0';
26-
27- /* Skip the NUL byte and the \012. */
28- runp += 2;
29-
30+ *runp++ = '\0';
31+
32 /* A sanity check. Somebody might have generated invalid
33 archive. */
34 if (runp >= newp + len)
35--
361.8.4.2
37
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/elfutils-ar-c-fix-num-passed-to-memset.patch b/meta/recipes-devtools/elfutils/elfutils-0.148/elfutils-ar-c-fix-num-passed-to-memset.patch
deleted file mode 100644
index b619619ec0..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/elfutils-ar-c-fix-num-passed-to-memset.patch
+++ /dev/null
@@ -1,23 +0,0 @@
1Upstream-Status: Backport
2
3ar.c (do_oper_delete): Fix num passed to memset
4native build failed as following on Fedora18+:
5ar.c: In function 'do_oper_delete':
6ar.c:918:31: error: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Werror=sizeof-pointer-memaccess]
7 memset (found, '\0', sizeof (found));
8 ^
9The original commit is http://git.fedorahosted.org/cgit/elfutils.git/commit/src/ar.c?id=1a4d0668d18bf1090c5c08cdb5cb3ba2b8eb5410
10
11Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
12
13--- elfutils-0.148/src/ar.c.org 2013-03-12 21:12:17.928281375 -0500
14+++ elfutils-0.148/src/ar.c 2013-03-12 21:15:30.053285271 -0500
15@@ -915,7 +915,7 @@
16 long int instance)
17 {
18 bool *found = alloca (sizeof (bool) * argc);
19- memset (found, '\0', sizeof (found));
20+ memset (found, '\0', sizeof (bool) * argc);
21
22 /* List of the files we keep. */
23 struct armem *to_copy = NULL;
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/elfutils-fsize.patch b/meta/recipes-devtools/elfutils/elfutils-0.148/elfutils-fsize.patch
deleted file mode 100644
index 0ff353d0de..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/elfutils-fsize.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1Upstream-Status: Backport
2
3The ELF_T_LIB and ELF_T_GNUHASH sizes were missing from fsize table.
4
5This could cause a failure in the elf*_xlatetof function.
6
7diff -ur elfutils-0.148.orig/libelf/exttypes.h elfutils-0.148/libelf/exttypes.h
8--- elfutils-0.148.orig/libelf/exttypes.h 2009-01-08 12:56:37.000000000 -0800
9+++ elfutils-0.148/libelf/exttypes.h 2010-08-18 14:00:33.000000000 -0700
10@@ -94,6 +94,7 @@
11 Vernaux32 (Ext_);
12 Syminfo32 (Ext_);
13 Move32 (Ext_);
14+Lib32 (Ext_);
15 auxv_t32 (Ext_);
16
17 Ehdr64 (Ext_);
18@@ -110,6 +111,7 @@
19 Vernaux64 (Ext_);
20 Syminfo64 (Ext_);
21 Move64 (Ext_);
22+Lib64 (Ext_);
23 auxv_t64 (Ext_);
24
25 #undef START
26diff -ur elfutils-0.148.orig/libelf/gelf_fsize.c elfutils-0.148/libelf/gelf_fsize.c
27--- elfutils-0.148.orig/libelf/gelf_fsize.c 2009-01-08 12:56:37.000000000 -0800
28+++ elfutils-0.148/libelf/gelf_fsize.c 2010-08-18 14:11:57.000000000 -0700
29@@ -87,7 +87,9 @@
30 [ELF_T_NHDR] = sizeof (ElfW2(LIBELFBITS, Ext_Nhdr)), \
31 [ELF_T_SYMINFO] = sizeof (ElfW2(LIBELFBITS, Ext_Syminfo)), \
32 [ELF_T_MOVE] = sizeof (ElfW2(LIBELFBITS, Ext_Move)), \
33- [ELF_T_AUXV] = sizeof (ElfW2(LIBELFBITS, Ext_auxv_t))
34+ [ELF_T_LIB] = sizeof (ElfW2(LIBELFBITS, Ext_Lib)), \
35+ [ELF_T_AUXV] = sizeof (ElfW2(LIBELFBITS, Ext_auxv_t)), \
36+ [ELF_T_GNUHASH] = ELFW2(LIBELFBITS, FSZ_WORD)
37 TYPE_SIZES (32)
38 },
39 [ELFCLASS64 - 1] = {
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/fix-build-gcc-4.8.patch b/meta/recipes-devtools/elfutils/elfutils-0.148/fix-build-gcc-4.8.patch
deleted file mode 100644
index 0e28690207..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/fix-build-gcc-4.8.patch
+++ /dev/null
@@ -1,57 +0,0 @@
1This patch fixes a warning seen with gcc 4.8 (especially on ubuntu 13.10)
2
3| addr2line.c: In function 'handle_address':
4| addr2line.c:450:7: error: format '%a' expects argument of type 'float *', but argument 3 has type 'char **' [-Werror=format=]
5| if (sscanf (string, "(%a[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2
6| ^
7| addr2line.c:453:7: error: format '%a' expects argument of type 'float *', but argument 3 has type 'char **' [-Werror=format=]
8| switch (sscanf (string, "%a[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j))
9| ^
10| cc1: all warnings being treated as errors
11
12
13%a is old GNU style and should be abandoned in favor of %m
14
15Also see
16
17http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54361
18
19to support this assertion
20
21This patch is added via redhat-compatibility patch so lets revert this part
22here.
23
24Signed-off-by: Khem Raj <raj.khem@gmail.com>
25
26Upstream-Status: Inappropriate [Caused by an earlier patch]
27
28Index: elfutils-0.148/src/addr2line.c
29===================================================================
30--- elfutils-0.148.orig/src/addr2line.c 2013-09-23 17:46:45.513586538 -0700
31+++ elfutils-0.148/src/addr2line.c 2013-09-23 17:46:46.329586558 -0700
32@@ -447,10 +447,10 @@
33 bool parsed = false;
34 int i, j;
35 char *name = NULL;
36- if (sscanf (string, "(%a[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2
37+ if (sscanf (string, "(%m[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2
38 && string[i] == '\0')
39 parsed = adjust_to_section (name, &addr, dwfl);
40- switch (sscanf (string, "%a[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j))
41+ switch (sscanf (string, "%m[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j))
42 {
43 default:
44 break;
45Index: elfutils-0.148/tests/line2addr.c
46===================================================================
47--- elfutils-0.148.orig/tests/line2addr.c 2013-09-23 17:46:45.521586538 -0700
48+++ elfutils-0.148/tests/line2addr.c 2013-09-23 17:46:46.329586558 -0700
49@@ -132,7 +132,7 @@
50 {
51 struct args a = { .arg = argv[cnt] };
52
53- switch (sscanf (a.arg, "%a[^:]:%d", &a.file, &a.line))
54+ switch (sscanf (a.arg, "%m[^:]:%d", &a.file, &a.line))
55 {
56 default:
57 case 0:
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/fix_for_gcc-4.7.patch b/meta/recipes-devtools/elfutils/elfutils-0.148/fix_for_gcc-4.7.patch
deleted file mode 100644
index c78f95d693..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/fix_for_gcc-4.7.patch
+++ /dev/null
@@ -1,73 +0,0 @@
1Upstream-Status: pending
2gcc 4.7 does not like pointer conversion, so have a void * tmp var to work
3around following compilation issue.
4
5Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
62011/07/07
7
8| md5.c: In function 'md5_finish_ctx':
9| md5.c:108:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
10| md5.c:109:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
11| cc1: all warnings being treated as errors
12|
13| make[2]: *** [md5.o] Error 1
14| make[2]: *** Waiting for unfinished jobs....
15| sha1.c: In function 'sha1_finish_ctx':
16| sha1.c:109:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
17| sha1.c:111:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
18| cc1: all warnings being treated as errors
19|
20| make[2]: *** [sha1.o] Error 1
21
22Index: elfutils-0.148/lib/md5.c
23===================================================================
24--- elfutils-0.148.orig/lib/md5.c
25+++ elfutils-0.148/lib/md5.c
26@@ -95,6 +95,7 @@ md5_finish_ctx (ctx, resbuf)
27 /* Take yet unprocessed bytes into account. */
28 md5_uint32 bytes = ctx->buflen;
29 size_t pad;
30+ void * tmp;
31
32 /* Now count remaining bytes. */
33 ctx->total[0] += bytes;
34@@ -105,9 +106,10 @@ md5_finish_ctx (ctx, resbuf)
35 memcpy (&ctx->buffer[bytes], fillbuf, pad);
36
37 /* Put the 64-bit file length in *bits* at the end of the buffer. */
38- *(md5_uint32 *) &ctx->buffer[bytes + pad] = SWAP (ctx->total[0] << 3);
39- *(md5_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP ((ctx->total[1] << 3) |
40- (ctx->total[0] >> 29));
41+ tmp = &ctx->buffer[bytes + pad];
42+ *(md5_uint32 *) tmp = SWAP (ctx->total[0] << 3);
43+ tmp = &ctx->buffer[bytes + pad + 4];
44+ *(md5_uint32 *) tmp = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29));
45
46 /* Process last bytes. */
47 md5_process_block (ctx->buffer, bytes + pad + 8, ctx);
48Index: elfutils-0.148/lib/sha1.c
49===================================================================
50--- elfutils-0.148.orig/lib/sha1.c
51+++ elfutils-0.148/lib/sha1.c
52@@ -96,6 +96,7 @@ sha1_finish_ctx (ctx, resbuf)
53 /* Take yet unprocessed bytes into account. */
54 sha1_uint32 bytes = ctx->buflen;
55 size_t pad;
56+ void * tmp;
57
58 /* Now count remaining bytes. */
59 ctx->total[0] += bytes;
60@@ -106,9 +107,10 @@ sha1_finish_ctx (ctx, resbuf)
61 memcpy (&ctx->buffer[bytes], fillbuf, pad);
62
63 /* Put the 64-bit file length in *bits* at the end of the buffer. */
64- *(sha1_uint32 *) &ctx->buffer[bytes + pad] = SWAP ((ctx->total[1] << 3) |
65- (ctx->total[0] >> 29));
66- *(sha1_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP (ctx->total[0] << 3);
67+ tmp = &ctx->buffer[bytes + pad];
68+ *(sha1_uint32 *) tmp = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29));
69+ tmp = &ctx->buffer[bytes + pad + 4];
70+ *(sha1_uint32 *) tmp = SWAP (ctx->total[0] << 3);
71
72 /* Process last bytes. */
73 sha1_process_block (ctx->buffer, bytes + pad + 8, ctx);
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/gcc6.patch b/meta/recipes-devtools/elfutils/elfutils-0.148/gcc6.patch
deleted file mode 100644
index b56a754f81..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/gcc6.patch
+++ /dev/null
@@ -1,23 +0,0 @@
1Fix warnings found with gcc6
2
3| ../../elfutils-0.148/libdw/dwarf_siblingof.c: In function 'dwarf_siblingof':
4| ../../elfutils-0.148/libdw/dwarf_siblingof.c:69:6: error: nonnull argument 'result' compared to NULL [-Werror=nonnull-compare]
5| if (result == NULL)
6| ^
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9Upstream-Status: Inappropriate [ unmaintained ]
10Index: elfutils-0.148/libdw/dwarf_siblingof.c
11===================================================================
12--- elfutils-0.148.orig/libdw/dwarf_siblingof.c
13+++ elfutils-0.148/libdw/dwarf_siblingof.c
14@@ -66,9 +66,6 @@ dwarf_siblingof (die, result)
15 if (die == NULL)
16 return -1;
17
18- if (result == NULL)
19- return -1;
20-
21 if (result != die)
22 result->addr = NULL;
23
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/hppa_backend.diff b/meta/recipes-devtools/elfutils/elfutils-0.148/hppa_backend.diff
deleted file mode 100644
index a86b97c683..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/hppa_backend.diff
+++ /dev/null
@@ -1,801 +0,0 @@
1Upstream-Status: Backport
2
3Index: elfutils-0.146/backends/parisc_init.c
4===================================================================
5--- /dev/null 1970-01-01 00:00:00.000000000 +0000
6+++ elfutils-0.146/backends/parisc_init.c 2010-04-24 10:10:50.000000000 +0000
7@@ -0,0 +1,74 @@
8+/* Initialization of PA-RISC specific backend library.
9+ Copyright (C) 2002, 2005, 2006 Red Hat, Inc.
10+ This file is part of Red Hat elfutils.
11+ Written by Ulrich Drepper <drepper@redhat.com>, 2002.
12+
13+ Red Hat elfutils is free software; you can redistribute it and/or modify
14+ it under the terms of the GNU General Public License as published by the
15+ Free Software Foundation; version 2 of the License.
16+
17+ Red Hat elfutils is distributed in the hope that it will be useful, but
18+ WITHOUT ANY WARRANTY; without even the implied warranty of
19+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20+ General Public License for more details.
21+
22+ You should have received a copy of the GNU General Public License along
23+ with Red Hat elfutils; if not, write to the Free Software Foundation,
24+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
25+
26+ Red Hat elfutils is an included package of the Open Invention Network.
27+ An included package of the Open Invention Network is a package for which
28+ Open Invention Network licensees cross-license their patents. No patent
29+ license is granted, either expressly or impliedly, by designation as an
30+ included package. Should you wish to participate in the Open Invention
31+ Network licensing program, please visit www.openinventionnetwork.com
32+ <http://www.openinventionnetwork.com>. */
33+
34+#ifdef HAVE_CONFIG_H
35+# include <config.h>
36+#endif
37+
38+#define BACKEND parisc_
39+#define RELOC_PREFIX R_PARISC_
40+#include "libebl_CPU.h"
41+#include "libebl_parisc.h"
42+
43+/* This defines the common reloc hooks based on parisc_reloc.def. */
44+#include "common-reloc.c"
45+
46+
47+const char *
48+parisc_init (elf, machine, eh, ehlen)
49+ Elf *elf __attribute__ ((unused));
50+ GElf_Half machine __attribute__ ((unused));
51+ Ebl *eh;
52+ size_t ehlen;
53+{
54+ int pa64 = 0;
55+
56+ /* Check whether the Elf_BH object has a sufficent size. */
57+ if (ehlen < sizeof (Ebl))
58+ return NULL;
59+
60+ if (elf) {
61+ GElf_Ehdr ehdr_mem;
62+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem);
63+ if (ehdr && (ehdr->e_flags & EF_PARISC_WIDE))
64+ pa64 = 1;
65+ }
66+ /* We handle it. */
67+ eh->name = "PA-RISC";
68+ parisc_init_reloc (eh);
69+ HOOK (eh, reloc_simple_type);
70+ HOOK (eh, machine_flag_check);
71+ HOOK (eh, symbol_type_name);
72+ HOOK (eh, segment_type_name);
73+ HOOK (eh, section_type_name);
74+ HOOK (eh, register_info);
75+ if (pa64)
76+ eh->return_value_location = parisc_return_value_location_64;
77+ else
78+ eh->return_value_location = parisc_return_value_location_32;
79+
80+ return MODVERSION;
81+}
82Index: elfutils-0.146/backends/parisc_regs.c
83===================================================================
84--- /dev/null 1970-01-01 00:00:00.000000000 +0000
85+++ elfutils-0.146/backends/parisc_regs.c 2010-04-24 10:10:50.000000000 +0000
86@@ -0,0 +1,159 @@
87+/* Register names and numbers for PA-RISC DWARF.
88+ Copyright (C) 2005, 2006 Red Hat, Inc.
89+ This file is part of Red Hat elfutils.
90+
91+ Red Hat elfutils is free software; you can redistribute it and/or modify
92+ it under the terms of the GNU General Public License as published by the
93+ Free Software Foundation; version 2 of the License.
94+
95+ Red Hat elfutils is distributed in the hope that it will be useful, but
96+ WITHOUT ANY WARRANTY; without even the implied warranty of
97+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
98+ General Public License for more details.
99+
100+ You should have received a copy of the GNU General Public License along
101+ with Red Hat elfutils; if not, write to the Free Software Foundation,
102+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
103+
104+ Red Hat elfutils is an included package of the Open Invention Network.
105+ An included package of the Open Invention Network is a package for which
106+ Open Invention Network licensees cross-license their patents. No patent
107+ license is granted, either expressly or impliedly, by designation as an
108+ included package. Should you wish to participate in the Open Invention
109+ Network licensing program, please visit www.openinventionnetwork.com
110+ <http://www.openinventionnetwork.com>. */
111+
112+#ifdef HAVE_CONFIG_H
113+# include <config.h>
114+#endif
115+
116+#include <string.h>
117+#include <dwarf.h>
118+
119+#define BACKEND parisc_
120+#include "libebl_CPU.h"
121+
122+ssize_t
123+parisc_register_info (Ebl *ebl, int regno, char *name, size_t namelen,
124+ const char **prefix, const char **setname,
125+ int *bits, int *type)
126+{
127+ int pa64 = 0;
128+
129+ if (ebl->elf) {
130+ GElf_Ehdr ehdr_mem;
131+ GElf_Ehdr *ehdr = gelf_getehdr (ebl->elf, &ehdr_mem);
132+ if (ehdr->e_flags & EF_PARISC_WIDE)
133+ pa64 = 1;
134+ }
135+
136+ int nregs = pa64 ? 127 : 128;
137+
138+ if (name == NULL)
139+ return nregs;
140+
141+ if (regno < 0 || regno >= nregs || namelen < 6)
142+ return -1;
143+
144+ *prefix = "%";
145+
146+ if (regno < 32)
147+ {
148+ *setname = "integer";
149+ *type = DW_ATE_signed;
150+ if (pa64)
151+ {
152+ *bits = 64;
153+ }
154+ else
155+ {
156+ *bits = 32;
157+ }
158+ }
159+ else if (regno == 32)
160+ {
161+ *setname = "special";
162+ if (pa64)
163+ {
164+ *bits = 6;
165+ }
166+ else
167+ {
168+ *bits = 5;
169+ }
170+ *type = DW_ATE_unsigned;
171+ }
172+ else
173+ {
174+ *setname = "FPU";
175+ *type = DW_ATE_float;
176+ if (pa64)
177+ {
178+ *bits = 64;
179+ }
180+ else
181+ {
182+ *bits = 32;
183+ }
184+ }
185+
186+ if (regno < 33) {
187+ switch (regno)
188+ {
189+ case 0 ... 9:
190+ name[0] = 'r';
191+ name[1] = regno + '0';
192+ namelen = 2;
193+ break;
194+ case 10 ... 31:
195+ name[0] = 'r';
196+ name[1] = regno / 10 + '0';
197+ name[2] = regno % 10 + '0';
198+ namelen = 3;
199+ break;
200+ case 32:
201+ *prefix = NULL;
202+ name[0] = 'S';
203+ name[1] = 'A';
204+ name[2] = 'R';
205+ namelen = 3;
206+ break;
207+ }
208+ }
209+ else {
210+ if (pa64 && ((regno - 72) % 2)) {
211+ *setname = NULL;
212+ return 0;
213+ }
214+
215+ switch (regno)
216+ {
217+ case 72 + 0 ... 72 + 11:
218+ name[0] = 'f';
219+ name[1] = 'r';
220+ name[2] = (regno + 8 - 72) / 2 + '0';
221+ namelen = 3;
222+ if ((regno + 8 - 72) % 2) {
223+ name[3] = 'R';
224+ namelen++;
225+ }
226+ break;
227+ case 72 + 12 ... 72 + 55:
228+ name[0] = 'f';
229+ name[1] = 'r';
230+ name[2] = (regno + 8 - 72) / 2 / 10 + '0';
231+ name[3] = (regno + 8 - 72) / 2 % 10 + '0';
232+ namelen = 4;
233+ if ((regno + 8 - 72) % 2) {
234+ name[4] = 'R';
235+ namelen++;
236+ }
237+ break;
238+ default:
239+ *setname = NULL;
240+ return 0;
241+ }
242+ }
243+ name[namelen++] = '\0';
244+ return namelen;
245+}
246Index: elfutils-0.146/backends/parisc_reloc.def
247===================================================================
248--- /dev/null 1970-01-01 00:00:00.000000000 +0000
249+++ elfutils-0.146/backends/parisc_reloc.def 2010-04-24 10:10:50.000000000 +0000
250@@ -0,0 +1,128 @@
251+/* List the relocation types for PA-RISC. -*- C -*-
252+ Copyright (C) 2005 Red Hat, Inc.
253+ This file is part of Red Hat elfutils.
254+
255+ Red Hat elfutils is free software; you can redistribute it and/or modify
256+ it under the terms of the GNU General Public License as published by the
257+ Free Software Foundation; version 2 of the License.
258+
259+ Red Hat elfutils is distributed in the hope that it will be useful, but
260+ WITHOUT ANY WARRANTY; without even the implied warranty of
261+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
262+ General Public License for more details.
263+
264+ You should have received a copy of the GNU General Public License along
265+ with Red Hat elfutils; if not, write to the Free Software Foundation,
266+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
267+
268+ Red Hat elfutils is an included package of the Open Invention Network.
269+ An included package of the Open Invention Network is a package for which
270+ Open Invention Network licensees cross-license their patents. No patent
271+ license is granted, either expressly or impliedly, by designation as an
272+ included package. Should you wish to participate in the Open Invention
273+ Network licensing program, please visit www.openinventionnetwork.com
274+ <http://www.openinventionnetwork.com>. */
275+
276+/* NAME, REL|EXEC|DYN */
277+
278+RELOC_TYPE (NONE, EXEC|DYN)
279+RELOC_TYPE (DIR32, REL|EXEC|DYN)
280+RELOC_TYPE (DIR21L, REL|EXEC|DYN)
281+RELOC_TYPE (DIR17R, REL)
282+RELOC_TYPE (DIR17F, REL)
283+RELOC_TYPE (DIR14R, REL|DYN)
284+RELOC_TYPE (PCREL32, REL)
285+RELOC_TYPE (PCREL21L, REL)
286+RELOC_TYPE (PCREL17R, REL)
287+RELOC_TYPE (PCREL17F, REL)
288+RELOC_TYPE (PCREL14R, REL|EXEC)
289+RELOC_TYPE (DPREL21L, REL)
290+RELOC_TYPE (DPREL14WR, REL)
291+RELOC_TYPE (DPREL14DR, REL)
292+RELOC_TYPE (DPREL14R, REL)
293+RELOC_TYPE (GPREL21L, 0)
294+RELOC_TYPE (GPREL14R, 0)
295+RELOC_TYPE (LTOFF21L, REL)
296+RELOC_TYPE (LTOFF14R, REL)
297+RELOC_TYPE (DLTIND14F, 0)
298+RELOC_TYPE (SETBASE, 0)
299+RELOC_TYPE (SECREL32, REL)
300+RELOC_TYPE (BASEREL21L, 0)
301+RELOC_TYPE (BASEREL17R, 0)
302+RELOC_TYPE (BASEREL14R, 0)
303+RELOC_TYPE (SEGBASE, 0)
304+RELOC_TYPE (SEGREL32, REL)
305+RELOC_TYPE (PLTOFF21L, 0)
306+RELOC_TYPE (PLTOFF14R, 0)
307+RELOC_TYPE (PLTOFF14F, 0)
308+RELOC_TYPE (LTOFF_FPTR32, 0)
309+RELOC_TYPE (LTOFF_FPTR21L, 0)
310+RELOC_TYPE (LTOFF_FPTR14R, 0)
311+RELOC_TYPE (FPTR64, 0)
312+RELOC_TYPE (PLABEL32, REL|DYN)
313+RELOC_TYPE (PCREL64, 0)
314+RELOC_TYPE (PCREL22C, 0)
315+RELOC_TYPE (PCREL22F, 0)
316+RELOC_TYPE (PCREL14WR, 0)
317+RELOC_TYPE (PCREL14DR, 0)
318+RELOC_TYPE (PCREL16F, 0)
319+RELOC_TYPE (PCREL16WF, 0)
320+RELOC_TYPE (PCREL16DF, 0)
321+RELOC_TYPE (DIR64, REL|DYN)
322+RELOC_TYPE (DIR14WR, REL)
323+RELOC_TYPE (DIR14DR, REL)
324+RELOC_TYPE (DIR16F, REL)
325+RELOC_TYPE (DIR16WF, REL)
326+RELOC_TYPE (DIR16DF, REL)
327+RELOC_TYPE (GPREL64, 0)
328+RELOC_TYPE (GPREL14WR, 0)
329+RELOC_TYPE (GPREL14DR, 0)
330+RELOC_TYPE (GPREL16F, 0)
331+RELOC_TYPE (GPREL16WF, 0)
332+RELOC_TYPE (GPREL16DF, 0)
333+RELOC_TYPE (LTOFF64, 0)
334+RELOC_TYPE (LTOFF14WR, 0)
335+RELOC_TYPE (LTOFF14DR, 0)
336+RELOC_TYPE (LTOFF16F, 0)
337+RELOC_TYPE (LTOFF16WF, 0)
338+RELOC_TYPE (LTOFF16DF, 0)
339+RELOC_TYPE (SECREL64, 0)
340+RELOC_TYPE (BASEREL14WR, 0)
341+RELOC_TYPE (BASEREL14DR, 0)
342+RELOC_TYPE (SEGREL64, 0)
343+RELOC_TYPE (PLTOFF14WR, 0)
344+RELOC_TYPE (PLTOFF14DR, 0)
345+RELOC_TYPE (PLTOFF16F, 0)
346+RELOC_TYPE (PLTOFF16WF, 0)
347+RELOC_TYPE (PLTOFF16DF, 0)
348+RELOC_TYPE (LTOFF_FPTR64, 0)
349+RELOC_TYPE (LTOFF_FPTR14WR, 0)
350+RELOC_TYPE (LTOFF_FPTR14DR, 0)
351+RELOC_TYPE (LTOFF_FPTR16F, 0)
352+RELOC_TYPE (LTOFF_FPTR16WF, 0)
353+RELOC_TYPE (LTOFF_FPTR16DF, 0)
354+RELOC_TYPE (COPY, EXEC)
355+RELOC_TYPE (IPLT, EXEC|DYN)
356+RELOC_TYPE (EPLT, 0)
357+RELOC_TYPE (TPREL32, DYN)
358+RELOC_TYPE (TPREL21L, 0)
359+RELOC_TYPE (TPREL14R, 0)
360+RELOC_TYPE (LTOFF_TP21L, 0)
361+RELOC_TYPE (LTOFF_TP14R, 0)
362+RELOC_TYPE (LTOFF_TP14F, 0)
363+RELOC_TYPE (TPREL64, 0)
364+RELOC_TYPE (TPREL14WR, 0)
365+RELOC_TYPE (TPREL14DR, 0)
366+RELOC_TYPE (TPREL16F, 0)
367+RELOC_TYPE (TPREL16WF, 0)
368+RELOC_TYPE (TPREL16DF, 0)
369+RELOC_TYPE (LTOFF_TP64, 0)
370+RELOC_TYPE (LTOFF_TP14WR, 0)
371+RELOC_TYPE (LTOFF_TP14DR, 0)
372+RELOC_TYPE (LTOFF_TP16F, 0)
373+RELOC_TYPE (LTOFF_TP16WF, 0)
374+RELOC_TYPE (LTOFF_TP16DF, 0)
375+RELOC_TYPE (TLS_DTPMOD32, DYN)
376+RELOC_TYPE (TLS_DTPMOD64, DYN)
377+
378+#define NO_RELATIVE_RELOC 1
379Index: elfutils-0.146/backends/parisc_retval.c
380===================================================================
381--- /dev/null 1970-01-01 00:00:00.000000000 +0000
382+++ elfutils-0.146/backends/parisc_retval.c 2010-04-24 10:10:50.000000000 +0000
383@@ -0,0 +1,213 @@
384+/* Function return value location for Linux/PA-RISC ABI.
385+ Copyright (C) 2005 Red Hat, Inc.
386+ This file is part of Red Hat elfutils.
387+
388+ Red Hat elfutils is free software; you can redistribute it and/or modify
389+ it under the terms of the GNU General Public License as published by the
390+ Free Software Foundation; version 2 of the License.
391+
392+ Red Hat elfutils is distributed in the hope that it will be useful, but
393+ WITHOUT ANY WARRANTY; without even the implied warranty of
394+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
395+ General Public License for more details.
396+
397+ You should have received a copy of the GNU General Public License along
398+ with Red Hat elfutils; if not, write to the Free Software Foundation,
399+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
400+
401+ Red Hat elfutils is an included package of the Open Invention Network.
402+ An included package of the Open Invention Network is a package for which
403+ Open Invention Network licensees cross-license their patents. No patent
404+ license is granted, either expressly or impliedly, by designation as an
405+ included package. Should you wish to participate in the Open Invention
406+ Network licensing program, please visit www.openinventionnetwork.com
407+ <http://www.openinventionnetwork.com>. */
408+
409+#ifdef HAVE_CONFIG_H
410+# include <config.h>
411+#endif
412+
413+#include <assert.h>
414+#include <dwarf.h>
415+
416+#define BACKEND parisc_
417+#include "libebl_CPU.h"
418+#include "libebl_parisc.h"
419+
420+/* %r28, or pair %r28, %r29. */
421+static const Dwarf_Op loc_intreg32[] =
422+ {
423+ { .atom = DW_OP_reg28 }, { .atom = DW_OP_piece, .number = 4 },
424+ { .atom = DW_OP_reg29 }, { .atom = DW_OP_piece, .number = 4 },
425+ };
426+
427+static const Dwarf_Op loc_intreg[] =
428+ {
429+ { .atom = DW_OP_reg28 }, { .atom = DW_OP_piece, .number = 8 },
430+ { .atom = DW_OP_reg29 }, { .atom = DW_OP_piece, .number = 8 },
431+ };
432+#define nloc_intreg 1
433+#define nloc_intregpair 4
434+
435+/* %fr4L, or pair %fr4L, %fr4R on pa-32 */
436+static const Dwarf_Op loc_fpreg32[] =
437+ {
438+ { .atom = DW_OP_regx, .number = 72 }, { .atom = DW_OP_piece, .number = 4 },
439+ { .atom = DW_OP_regx, .number = 73 }, { .atom = DW_OP_piece, .number = 4 },
440+ };
441+#define nloc_fpreg32 2
442+#define nloc_fpregpair32 4
443+
444+/* $fr4 */
445+static const Dwarf_Op loc_fpreg[] =
446+ {
447+ { .atom = DW_OP_regx, .number = 72 },
448+ };
449+#define nloc_fpreg 1
450+
451+#if 0
452+/* The return value is a structure and is actually stored in stack space
453+ passed in a hidden argument by the caller. Address of the location is stored
454+ in %r28 before function call, but it may be changed by function. */
455+static const Dwarf_Op loc_aggregate[] =
456+ {
457+ { .atom = DW_OP_breg28 },
458+ };
459+#define nloc_aggregate 1
460+#endif
461+
462+static int
463+parisc_return_value_location_ (Dwarf_Die *functypedie, const Dwarf_Op **locp, int pa64)
464+{
465+ Dwarf_Word regsize = pa64 ? 8 : 4;
466+
467+ /* Start with the function's type, and get the DW_AT_type attribute,
468+ which is the type of the return value. */
469+
470+ Dwarf_Attribute attr_mem;
471+ Dwarf_Attribute *attr = dwarf_attr_integrate (functypedie, DW_AT_type, &attr_mem);
472+ if (attr == NULL)
473+ /* The function has no return value, like a `void' function in C. */
474+ return 0;
475+
476+ Dwarf_Die die_mem;
477+ Dwarf_Die *typedie = dwarf_formref_die (attr, &die_mem);
478+ int tag = dwarf_tag (typedie);
479+
480+ /* Follow typedefs and qualifiers to get to the actual type. */
481+ while (tag == DW_TAG_typedef
482+ || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type
483+ || tag == DW_TAG_restrict_type || tag == DW_TAG_mutable_type)
484+ {
485+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem);
486+ typedie = dwarf_formref_die (attr, &die_mem);
487+ tag = dwarf_tag (typedie);
488+ }
489+
490+ switch (tag)
491+ {
492+ case -1:
493+ return -1;
494+
495+ case DW_TAG_subrange_type:
496+ if (! dwarf_hasattr_integrate (typedie, DW_AT_byte_size))
497+ {
498+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem);
499+ typedie = dwarf_formref_die (attr, &die_mem);
500+ tag = dwarf_tag (typedie);
501+ }
502+ /* Fall through. */
503+
504+ case DW_TAG_base_type:
505+ case DW_TAG_enumeration_type:
506+ case DW_TAG_pointer_type:
507+ case DW_TAG_ptr_to_member_type:
508+ {
509+ Dwarf_Word size;
510+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size,
511+ &attr_mem), &size) != 0)
512+ {
513+ if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type)
514+ size = 4;
515+ else
516+ return -1;
517+ }
518+ if (tag == DW_TAG_base_type)
519+ {
520+ Dwarf_Word encoding;
521+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding,
522+ &attr_mem), &encoding) != 0)
523+ return -1;
524+
525+ if (encoding == DW_ATE_float)
526+ {
527+ if (pa64) {
528+ *locp = loc_fpreg;
529+ if (size <= 8)
530+ return nloc_fpreg;
531+ }
532+ else {
533+ *locp = loc_fpreg32;
534+ if (size <= 4)
535+ return nloc_fpreg32;
536+ else if (size <= 8)
537+ return nloc_fpregpair32;
538+ }
539+ goto aggregate;
540+ }
541+ }
542+ if (pa64)
543+ *locp = loc_intreg;
544+ else
545+ *locp = loc_intreg32;
546+ if (size <= regsize)
547+ return nloc_intreg;
548+ if (size <= 2 * regsize)
549+ return nloc_intregpair;
550+
551+ /* Else fall through. */
552+ }
553+
554+ case DW_TAG_structure_type:
555+ case DW_TAG_class_type:
556+ case DW_TAG_union_type:
557+ case DW_TAG_array_type:
558+ aggregate: {
559+ Dwarf_Word size;
560+ if (dwarf_aggregate_size (typedie, &size) != 0)
561+ return -1;
562+ if (pa64)
563+ *locp = loc_intreg;
564+ else
565+ *locp = loc_intreg32;
566+ if (size <= regsize)
567+ return nloc_intreg;
568+ if (size <= 2 * regsize)
569+ return nloc_intregpair;
570+#if 0
571+ /* there should be some way to know this location... But I do not see it. */
572+ *locp = loc_aggregate;
573+ return nloc_aggregate;
574+#endif
575+ /* fall through. */
576+ }
577+ }
578+
579+ /* XXX We don't have a good way to return specific errors from ebl calls.
580+ This value means we do not understand the type, but it is well-formed
581+ DWARF and might be valid. */
582+ return -2;
583+}
584+
585+int
586+parisc_return_value_location_32 (Dwarf_Die *functypedie, const Dwarf_Op **locp)
587+{
588+ return parisc_return_value_location_ (functypedie, locp, 0);
589+}
590+
591+int
592+parisc_return_value_location_64 (Dwarf_Die *functypedie, const Dwarf_Op **locp)
593+{
594+ return parisc_return_value_location_ (functypedie, locp, 1);
595+}
596+
597Index: elfutils-0.146/backends/parisc_symbol.c
598===================================================================
599--- /dev/null 1970-01-01 00:00:00.000000000 +0000
600+++ elfutils-0.146/backends/parisc_symbol.c 2010-04-24 10:10:50.000000000 +0000
601@@ -0,0 +1,112 @@
602+/* PA-RISC specific symbolic name handling.
603+ Copyright (C) 2002, 2005 Red Hat, Inc.
604+ This file is part of Red Hat elfutils.
605+ Written by Ulrich Drepper <drepper@redhat.com>, 2002.
606+
607+ Red Hat elfutils is free software; you can redistribute it and/or modify
608+ it under the terms of the GNU General Public License as published by the
609+ Free Software Foundation; version 2 of the License.
610+
611+ Red Hat elfutils is distributed in the hope that it will be useful, but
612+ WITHOUT ANY WARRANTY; without even the implied warranty of
613+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
614+ General Public License for more details.
615+
616+ You should have received a copy of the GNU General Public License along
617+ with Red Hat elfutils; if not, write to the Free Software Foundation,
618+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
619+
620+ Red Hat elfutils is an included package of the Open Invention Network.
621+ An included package of the Open Invention Network is a package for which
622+ Open Invention Network licensees cross-license their patents. No patent
623+ license is granted, either expressly or impliedly, by designation as an
624+ included package. Should you wish to participate in the Open Invention
625+ Network licensing program, please visit www.openinventionnetwork.com
626+ <http://www.openinventionnetwork.com>. */
627+
628+#ifdef HAVE_CONFIG_H
629+# include <config.h>
630+#endif
631+
632+#include <elf.h>
633+#include <stddef.h>
634+
635+#define BACKEND parisc_
636+#include "libebl_CPU.h"
637+
638+const char *
639+parisc_segment_type_name (int segment, char *buf __attribute__ ((unused)),
640+ size_t len __attribute__ ((unused)))
641+{
642+ switch (segment)
643+ {
644+ case PT_PARISC_ARCHEXT:
645+ return "PARISC_ARCHEXT";
646+ case PT_PARISC_UNWIND:
647+ return "PARISC_UNWIND";
648+ default:
649+ break;
650+ }
651+ return NULL;
652+}
653+
654+/* Return symbolic representation of symbol type. */
655+const char *
656+parisc_symbol_type_name(int symbol, char *buf __attribute__ ((unused)),
657+ size_t len __attribute__ ((unused)))
658+{
659+ if (symbol == STT_PARISC_MILLICODE)
660+ return "PARISC_MILLI";
661+ return NULL;
662+}
663+
664+/* Return symbolic representation of section type. */
665+const char *
666+parisc_section_type_name (int type,
667+ char *buf __attribute__ ((unused)),
668+ size_t len __attribute__ ((unused)))
669+{
670+ switch (type)
671+ {
672+ case SHT_PARISC_EXT:
673+ return "PARISC_EXT";
674+ case SHT_PARISC_UNWIND:
675+ return "PARISC_UNWIND";
676+ case SHT_PARISC_DOC:
677+ return "PARISC_DOC";
678+ }
679+
680+ return NULL;
681+}
682+
683+/* Check whether machine flags are valid. */
684+bool
685+parisc_machine_flag_check (GElf_Word flags)
686+{
687+ if (flags &~ (EF_PARISC_TRAPNIL | EF_PARISC_EXT | EF_PARISC_LSB |
688+ EF_PARISC_WIDE | EF_PARISC_NO_KABP |
689+ EF_PARISC_LAZYSWAP | EF_PARISC_ARCH))
690+ return 0;
691+
692+ GElf_Word arch = flags & EF_PARISC_ARCH;
693+
694+ return ((arch == EFA_PARISC_1_0) || (arch == EFA_PARISC_1_1) ||
695+ (arch == EFA_PARISC_2_0));
696+}
697+
698+/* Check for the simple reloc types. */
699+Elf_Type
700+parisc_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type)
701+{
702+ switch (type)
703+ {
704+ case R_PARISC_DIR64:
705+ case R_PARISC_SECREL64:
706+ return ELF_T_XWORD;
707+ case R_PARISC_DIR32:
708+ case R_PARISC_SECREL32:
709+ return ELF_T_WORD;
710+ default:
711+ return ELF_T_NUM;
712+ }
713+}
714Index: elfutils-0.146/backends/libebl_parisc.h
715===================================================================
716--- /dev/null 1970-01-01 00:00:00.000000000 +0000
717+++ elfutils-0.146/backends/libebl_parisc.h 2010-04-24 10:10:50.000000000 +0000
718@@ -0,0 +1,9 @@
719+#ifndef _LIBEBL_HPPA_H
720+#define _LIBEBL_HPPA_H 1
721+
722+#include <libdw.h>
723+
724+extern int parisc_return_value_location_32(Dwarf_Die *, const Dwarf_Op **locp);
725+extern int parisc_return_value_location_64(Dwarf_Die *, const Dwarf_Op **locp);
726+
727+#endif
728Index: elfutils-0.146/backends/Makefile.am
729===================================================================
730--- elfutils-0.146.orig/backends/Makefile.am 2010-04-24 10:10:41.000000000 +0000
731+++ elfutils-0.146/backends/Makefile.am 2010-04-24 10:10:50.000000000 +0000
732@@ -29,11 +29,11 @@
733 -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw
734
735
736-modules = i386 sh x86_64 ia64 alpha arm sparc ppc ppc64 s390
737+modules = i386 sh x86_64 ia64 alpha arm sparc ppc ppc64 s390 parisc
738 libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \
739 libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \
740 libebl_sparc_pic.a libebl_ppc_pic.a libebl_ppc64_pic.a \
741- libebl_s390_pic.a
742+ libebl_s390_pic.a libebl_parisc_pic.a
743 noinst_LIBRARIES = $(libebl_pic)
744 noinst_DATA = $(libebl_pic:_pic.a=.so)
745
746@@ -95,6 +95,9 @@
747 libebl_s390_pic_a_SOURCES = $(s390_SRCS)
748 am_libebl_s390_pic_a_OBJECTS = $(s390_SRCS:.c=.os)
749
750+parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c
751+libebl_parisc_pic_a_SOURCES = $(parisc_SRCS)
752+am_libebl_parisc_pic_a_OBJECTS = $(parisc_SRCS:.c=.os)
753
754 libebl_%.so libebl_%.map: libebl_%_pic.a $(libelf) $(libdw)
755 @rm -f $(@:.so=.map)
756Index: elfutils-0.146/libelf/elf.h
757===================================================================
758--- elfutils-0.146.orig/libelf/elf.h 2010-04-13 20:08:02.000000000 +0000
759+++ elfutils-0.146/libelf/elf.h 2010-04-24 10:10:50.000000000 +0000
760@@ -1789,16 +1789,24 @@
761 #define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */
762 #define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */
763 #define R_PARISC_DPREL21L 18 /* Left 21 bits of rel. address. */
764+#define R_PARISC_DPREL14WR 19
765+#define R_PARISC_DPREL14DR 20
766 #define R_PARISC_DPREL14R 22 /* Right 14 bits of rel. address. */
767 #define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */
768 #define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */
769 #define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */
770 #define R_PARISC_LTOFF14R 38 /* LT-relative, right 14 bits. */
771+#define R_PARISC_DLTIND14F 39
772+#define R_PARISC_SETBASE 40
773 #define R_PARISC_SECREL32 41 /* 32 bits section rel. address. */
774+#define R_PARISC_BASEREL21L 42
775+#define R_PARISC_BASEREL17R 43
776+#define R_PARISC_BASEREL14R 46
777 #define R_PARISC_SEGBASE 48 /* No relocation, set segment base. */
778 #define R_PARISC_SEGREL32 49 /* 32 bits segment rel. address. */
779 #define R_PARISC_PLTOFF21L 50 /* PLT rel. address, left 21 bits. */
780 #define R_PARISC_PLTOFF14R 54 /* PLT rel. address, right 14 bits. */
781+#define R_PARISC_PLTOFF14F 55
782 #define R_PARISC_LTOFF_FPTR32 57 /* 32 bits LT-rel. function pointer. */
783 #define R_PARISC_LTOFF_FPTR21L 58 /* LT-rel. fct ptr, left 21 bits. */
784 #define R_PARISC_LTOFF_FPTR14R 62 /* LT-rel. fct ptr, right 14 bits. */
785@@ -1807,6 +1815,7 @@
786 #define R_PARISC_PLABEL21L 66 /* Left 21 bits of fdesc address. */
787 #define R_PARISC_PLABEL14R 70 /* Right 14 bits of fdesc address. */
788 #define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */
789+#define R_PARISC_PCREL22C 73
790 #define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */
791 #define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */
792 #define R_PARISC_PCREL14DR 76 /* PC rel. address, right 14 bits. */
793@@ -1832,6 +1841,8 @@
794 #define R_PARISC_LTOFF16WF 102 /* 16 bits LT-rel. address. */
795 #define R_PARISC_LTOFF16DF 103 /* 16 bits LT-rel. address. */
796 #define R_PARISC_SECREL64 104 /* 64 bits section rel. address. */
797+#define R_PARISC_BASEREL14WR 107
798+#define R_PARISC_BASEREL14DR 108
799 #define R_PARISC_SEGREL64 112 /* 64 bits segment rel. address. */
800 #define R_PARISC_PLTOFF14WR 115 /* PLT-rel. address, right 14 bits. */
801 #define R_PARISC_PLTOFF14DR 116 /* PLT-rel. address, right 14 bits. */
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/i386_dis.h b/meta/recipes-devtools/elfutils/elfutils-0.148/i386_dis.h
deleted file mode 100644
index a5cc01f919..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/i386_dis.h
+++ /dev/null
@@ -1,1657 +0,0 @@
1#define MNEMONIC_BITS 10
2#define SUFFIX_BITS 3
3#define FCT1_BITS 7
4#define STR1_BITS 4
5#define OFF1_1_BITS 7
6#define OFF1_1_BIAS 3
7#define OFF1_2_BITS 7
8#define OFF1_2_BIAS 4
9#define OFF1_3_BITS 1
10#define OFF1_3_BIAS 7
11#define FCT2_BITS 6
12#define STR2_BITS 2
13#define OFF2_1_BITS 7
14#define OFF2_1_BIAS 5
15#define OFF2_2_BITS 7
16#define OFF2_2_BIAS 4
17#define OFF2_3_BITS 4
18#define OFF2_3_BIAS 7
19#define FCT3_BITS 4
20#define STR3_BITS 1
21#define OFF3_1_BITS 6
22#define OFF3_1_BIAS 10
23#define OFF3_2_BITS 1
24#define OFF3_2_BIAS 21
25
26#include <i386_data.h>
27
28#define suffix_none 0
29#define suffix_w 1
30#define suffix_w0 2
31#define suffix_W 3
32#define suffix_tttn 4
33#define suffix_D 7
34#define suffix_w1 5
35#define suffix_W1 6
36
37static const opfct_t op1_fct[] =
38{
39 NULL,
40 FCT_MOD$R_M,
41 FCT_Mod$R_m,
42 FCT_abs,
43 FCT_ax,
44 FCT_ax$w,
45 FCT_ccc,
46 FCT_ddd,
47 FCT_disp8,
48 FCT_ds_bx,
49 FCT_ds_si,
50 FCT_dx,
51 FCT_es_di,
52 FCT_freg,
53 FCT_imm$s,
54 FCT_imm$w,
55 FCT_imm16,
56 FCT_imm8,
57 FCT_imms8,
58 FCT_mmxreg,
59 FCT_mod$16r_m,
60 FCT_mod$64r_m,
61 FCT_mod$8r_m,
62 FCT_mod$r_m,
63 FCT_mod$r_m$w,
64 FCT_reg,
65 FCT_reg$w,
66 FCT_reg16,
67 FCT_reg64,
68 FCT_rel,
69 FCT_sel,
70 FCT_sreg2,
71 FCT_sreg3,
72 FCT_string,
73 FCT_xmmreg,
74};
75static const char op1_str[] =
76 "%ax\0"
77 "%cl\0"
78 "%eax\0"
79 "%st\0"
80 "%xmm0\0"
81 "*";
82static const uint8_t op1_str_idx[] = {
83 0,
84 4,
85 8,
86 13,
87 17,
88 23,
89};
90static const opfct_t op2_fct[] =
91{
92 NULL,
93 FCT_MOD$R_M,
94 FCT_Mod$R_m,
95 FCT_abs,
96 FCT_absval,
97 FCT_ax$w,
98 FCT_ccc,
99 FCT_ddd,
100 FCT_ds_si,
101 FCT_dx,
102 FCT_es_di,
103 FCT_freg,
104 FCT_imm8,
105 FCT_mmxreg,
106 FCT_mod$64r_m,
107 FCT_mod$r_m,
108 FCT_mod$r_m$w,
109 FCT_moda$r_m,
110 FCT_reg,
111 FCT_reg$w,
112 FCT_reg64,
113 FCT_sreg3,
114 FCT_string,
115 FCT_xmmreg,
116};
117static const char op2_str[] =
118 "%ecx\0"
119 "%st";
120static const uint8_t op2_str_idx[] = {
121 0,
122 5,
123};
124static const opfct_t op3_fct[] =
125{
126 NULL,
127 FCT_mmxreg,
128 FCT_mod$r_m,
129 FCT_reg,
130 FCT_string,
131 FCT_xmmreg,
132};
133static const char op3_str[] =
134 "%edx";
135static const uint8_t op3_str_idx[] = {
136 0,
137};
138static const struct instr_enc instrtab[] =
139{
140 { .mnemonic = MNE_aaa, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
141 { .mnemonic = MNE_aad, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
142 { .mnemonic = MNE_aam, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
143 { .mnemonic = MNE_aas, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
144 { .mnemonic = MNE_adc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
145 { .mnemonic = MNE_adc, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
146 { .mnemonic = MNE_adc, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
147 { .mnemonic = MNE_adc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
148 { .mnemonic = MNE_adc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
149 { .mnemonic = MNE_add, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
150 { .mnemonic = MNE_add, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
151 { .mnemonic = MNE_add, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
152 { .mnemonic = MNE_add, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
153 { .mnemonic = MNE_add, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
154 { .mnemonic = MNE_addsubpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
155 { .mnemonic = MNE_addsubps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
156 { .mnemonic = MNE_and, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
157 { .mnemonic = MNE_and, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
158 { .mnemonic = MNE_and, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
159 { .mnemonic = MNE_and, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
160 { .mnemonic = MNE_and, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
161 { .mnemonic = MNE_andpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
162 { .mnemonic = MNE_andps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
163 { .mnemonic = MNE_andnpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
164 { .mnemonic = MNE_andnps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
165 { .mnemonic = MNE_arpl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 27, .str1 = 0, .off1_1 = 7, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
166 { .mnemonic = MNE_bound, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 7, .off1_2 = 0, .off1_3 = 0, .fct2 = 17, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
167 { .mnemonic = MNE_bsf, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
168 { .mnemonic = MNE_bsr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
169 { .mnemonic = MNE_bswap, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 25, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
170 { .mnemonic = MNE_bt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
171 { .mnemonic = MNE_bt, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
172 { .mnemonic = MNE_btc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
173 { .mnemonic = MNE_btc, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
174 { .mnemonic = MNE_btr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
175 { .mnemonic = MNE_btr, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
176 { .mnemonic = MNE_bts, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
177 { .mnemonic = MNE_bts, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
178 { .mnemonic = MNE_call, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 29, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
179 { .mnemonic = MNE_call, .rep = 0, .repe = 0, .suffix = 3, .modrm = 1, .fct1 = 21, .str1 = 6, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
180 { .mnemonic = MNE_lcall, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 30, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 4, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
181 { .mnemonic = MNE_lcall, .rep = 0, .repe = 0, .suffix = 3, .modrm = 1, .fct1 = 21, .str1 = 6, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
182 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
183 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
184 { .mnemonic = MNE_clc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
185 { .mnemonic = MNE_cld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
186 { .mnemonic = MNE_cli, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
187 { .mnemonic = MNE_syscall, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
188 { .mnemonic = MNE_clts, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
189 { .mnemonic = MNE_sysret, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
190 { .mnemonic = MNE_sysenter, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
191 { .mnemonic = MNE_sysexit, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
192 { .mnemonic = MNE_cmc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
193 { .mnemonic = MNE_cmov, .rep = 0, .repe = 0, .suffix = 4, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
194 { .mnemonic = MNE_cmp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
195 { .mnemonic = MNE_cmp, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
196 { .mnemonic = MNE_cmp, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
197 { .mnemonic = MNE_cmp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
198 { .mnemonic = MNE_cmp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
199 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
200 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
201 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
202 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
203 { .mnemonic = MNE_cmps, .rep = 0, .repe = 1, .suffix = 1, .modrm = 0, .fct1 = 12, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 8, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
204 { .mnemonic = MNE_cmpxchg, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 15, .off1_2 = 11, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 8, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
205 { .mnemonic = MNE_cmpxchg8b, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
206 { .mnemonic = MNE_cpuid, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
207 { .mnemonic = MNE_cvtdq2pd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
208 { .mnemonic = MNE_cvtpd2dq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
209 { .mnemonic = MNE_cvttpd2dq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
210 { .mnemonic = MNE_daa, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
211 { .mnemonic = MNE_das, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
212 { .mnemonic = MNE_dec, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
213 { .mnemonic = MNE_dec, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 25, .str1 = 0, .off1_1 = 2, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
214 { .mnemonic = MNE_div, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
215 { .mnemonic = MNE_emms, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
216 { .mnemonic = MNE_enter, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 16, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 12, .str2 = 0, .off2_1 = 19, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
217 { .mnemonic = MNE_fnop, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
218 { .mnemonic = MNE_fchs, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
219 { .mnemonic = MNE_fabs, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
220 { .mnemonic = MNE_ftst, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
221 { .mnemonic = MNE_fxam, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
222 { .mnemonic = MNE_fld1, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
223 { .mnemonic = MNE_fldl2t, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
224 { .mnemonic = MNE_fldl2e, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
225 { .mnemonic = MNE_fldpi, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
226 { .mnemonic = MNE_fldlg2, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
227 { .mnemonic = MNE_fldln2, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
228 { .mnemonic = MNE_fldz, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
229 { .mnemonic = MNE_f2xm1, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
230 { .mnemonic = MNE_fyl2x, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
231 { .mnemonic = MNE_fptan, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
232 { .mnemonic = MNE_fpatan, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
233 { .mnemonic = MNE_fxtract, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
234 { .mnemonic = MNE_fprem1, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
235 { .mnemonic = MNE_fdecstp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
236 { .mnemonic = MNE_fincstp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
237 { .mnemonic = MNE_fprem, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
238 { .mnemonic = MNE_fyl2xp1, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
239 { .mnemonic = MNE_fsqrt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
240 { .mnemonic = MNE_fsincos, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
241 { .mnemonic = MNE_frndint, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
242 { .mnemonic = MNE_fscale, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
243 { .mnemonic = MNE_fsin, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
244 { .mnemonic = MNE_fcos, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
245 { .mnemonic = MNE_fadd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
246 { .mnemonic = MNE_fadd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
247 { .mnemonic = MNE_fadd, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
248 { .mnemonic = MNE_fmul, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
249 { .mnemonic = MNE_fmul, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
250 { .mnemonic = MNE_fmul, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
251 { .mnemonic = MNE_fsub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
252 { .mnemonic = MNE_fsub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
253 { .mnemonic = MNE_fsub, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
254 { .mnemonic = MNE_fsubr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
255 { .mnemonic = MNE_fsubr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
256 { .mnemonic = MNE_fsubr, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
257 { .mnemonic = MNE_fst, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
258 { .mnemonic = MNE_fst, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
259 { .mnemonic = MNE_fstp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
260 { .mnemonic = MNE_fstp, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
261 { .mnemonic = MNE_fldenv, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
262 { .mnemonic = MNE_fldcw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
263 { .mnemonic = MNE_fnstenv, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
264 { .mnemonic = MNE_fnstcw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
265 { .mnemonic = MNE_fxch, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
266 { .mnemonic = MNE_faddp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
267 { .mnemonic = MNE_fcmovb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
268 { .mnemonic = MNE_fiadd, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
269 { .mnemonic = MNE_fcmove, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
270 { .mnemonic = MNE_fmulp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
271 { .mnemonic = MNE_fimul, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
272 { .mnemonic = MNE_fsubp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
273 { .mnemonic = MNE_fisub, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
274 { .mnemonic = MNE_fsubrp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
275 { .mnemonic = MNE_fisubr, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
276 { .mnemonic = MNE_fnstsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 1, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
277 { .mnemonic = MNE_fbld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
278 { .mnemonic = MNE_fcomip, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
279 { .mnemonic = MNE_fbstp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
280 { .mnemonic = MNE_fchs, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
281 { .mnemonic = MNE_fclex, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
282 { .mnemonic = MNE_finit, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
283 { .mnemonic = MNE_fwait, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
284 { .mnemonic = MNE_fnclex, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
285 { .mnemonic = MNE_fcmovb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
286 { .mnemonic = MNE_fcmove, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
287 { .mnemonic = MNE_fcmovbe, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
288 { .mnemonic = MNE_fcmovu, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
289 { .mnemonic = MNE_fcmovnb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
290 { .mnemonic = MNE_fcmovne, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
291 { .mnemonic = MNE_fcmovnbe, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
292 { .mnemonic = MNE_fcmovnu, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
293 { .mnemonic = MNE_fcom, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
294 { .mnemonic = MNE_fcom, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
295 { .mnemonic = MNE_fcomp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
296 { .mnemonic = MNE_fcomp, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
297 { .mnemonic = MNE_fcompp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
298 { .mnemonic = MNE_fcomi, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
299 { .mnemonic = MNE_fcomip, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
300 { .mnemonic = MNE_fucomi, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
301 { .mnemonic = MNE_fucomip, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
302 { .mnemonic = MNE_fcos, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
303 { .mnemonic = MNE_fdecstp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
304 { .mnemonic = MNE_fdiv, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
305 { .mnemonic = MNE_fdiv, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
306 { .mnemonic = MNE_fdiv, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
307 { .mnemonic = MNE_fidivl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
308 { .mnemonic = MNE_fdivp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
309 { .mnemonic = MNE_fidiv, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
310 { .mnemonic = MNE_fdivrp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
311 { .mnemonic = MNE_fdivr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
312 { .mnemonic = MNE_fdivr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
313 { .mnemonic = MNE_fdivr, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
314 { .mnemonic = MNE_fidivrl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
315 { .mnemonic = MNE_fidivr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
316 { .mnemonic = MNE_fdivrp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
317 { .mnemonic = MNE_ffree, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
318 { .mnemonic = MNE_fcmovbe, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
319 { .mnemonic = MNE_ficom, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
320 { .mnemonic = MNE_fcmovu, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
321 { .mnemonic = MNE_ficomp, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
322 { .mnemonic = MNE_fild, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
323 { .mnemonic = MNE_fildl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
324 { .mnemonic = MNE_fildll, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
325 { .mnemonic = MNE_fincstp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
326 { .mnemonic = MNE_fninit, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
327 { .mnemonic = MNE_fist, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
328 { .mnemonic = MNE_fistp, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
329 { .mnemonic = MNE_fistpll, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
330 { .mnemonic = MNE_fisttp, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
331 { .mnemonic = MNE_fisttpll, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
332 { .mnemonic = MNE_fldt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
333 { .mnemonic = MNE_fstpt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
334 { .mnemonic = MNE_fld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
335 { .mnemonic = MNE_fld, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
336 { .mnemonic = MNE_fucom, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
337 { .mnemonic = MNE_frstor, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
338 { .mnemonic = MNE_fucomp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
339 { .mnemonic = MNE_fnsave, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
340 { .mnemonic = MNE_fnstsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
341 { .mnemonic = MNE_hlt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
342 { .mnemonic = MNE_idiv, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
343 { .mnemonic = MNE_imul, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
344 { .mnemonic = MNE_imul, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
345 { .mnemonic = MNE_imul, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 14, .str1 = 0, .off1_1 = 13, .off1_2 = 2, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 3, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
346 { .mnemonic = MNE_in, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
347 { .mnemonic = MNE_in, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 11, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 3, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
348 { .mnemonic = MNE_inc, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
349 { .mnemonic = MNE_inc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 25, .str1 = 0, .off1_1 = 2, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
350 { .mnemonic = MNE_ins, .rep = 1, .repe = 0, .suffix = 1, .modrm = 0, .fct1 = 11, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 10, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
351 { .mnemonic = MNE_int, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
352 { .mnemonic = MNE_int3, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
353 { .mnemonic = MNE_into, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
354 { .mnemonic = MNE_invd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
355 { .mnemonic = MNE_swapgs, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
356 { .mnemonic = MNE_invlpg, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
357 { .mnemonic = MNE_iret, .rep = 0, .repe = 0, .suffix = 6, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
358 { .mnemonic = MNE_j, .rep = 0, .repe = 0, .suffix = 4, .modrm = 0, .fct1 = 8, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
359 { .mnemonic = MNE_j, .rep = 0, .repe = 0, .suffix = 4, .modrm = 0, .fct1 = 29, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
360 { .mnemonic = MNE_set, .rep = 0, .repe = 0, .suffix = 4, .modrm = 1, .fct1 = 22, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
361 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 8, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
362 { .mnemonic = MNE_jmp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 8, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
363 { .mnemonic = MNE_jmp, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 29, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
364 { .mnemonic = MNE_jmp, .rep = 0, .repe = 0, .suffix = 3, .modrm = 1, .fct1 = 21, .str1 = 6, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
365 { .mnemonic = MNE_ljmp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 30, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 4, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
366 { .mnemonic = MNE_ljmp, .rep = 0, .repe = 0, .suffix = 3, .modrm = 1, .fct1 = 21, .str1 = 6, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
367 { .mnemonic = MNE_lahf, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
368 { .mnemonic = MNE_lar, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 20, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
369 { .mnemonic = MNE_lds, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 5, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
370 { .mnemonic = MNE_lea, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 5, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
371 { .mnemonic = MNE_leave, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
372 { .mnemonic = MNE_les, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 5, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
373 { .mnemonic = MNE_lfs, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
374 { .mnemonic = MNE_lgs, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
375 { .mnemonic = MNE_lgdt, .rep = 0, .repe = 0, .suffix = 2, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
376 { .mnemonic = MNE_lidt, .rep = 0, .repe = 0, .suffix = 2, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
377 { .mnemonic = MNE_lldt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 20, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
378 { .mnemonic = MNE_lmsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 20, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
379 { .mnemonic = MNE_lock, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
380 { .mnemonic = MNE_lods, .rep = 1, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 10, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 3, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
381 { .mnemonic = MNE_loop, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 8, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
382 { .mnemonic = MNE_loope, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 8, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
383 { .mnemonic = MNE_loopne, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 8, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
384 { .mnemonic = MNE_lsl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 20, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
385 { .mnemonic = MNE_lss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
386 { .mnemonic = MNE_ltr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 20, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
387 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
388 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
389 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
390 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
391 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 3, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 35, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
392 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 5, .str1 = 0, .off1_1 = 37, .off1_2 = 3, .off1_3 = 0, .fct2 = 3, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
393 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 6, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 20, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
394 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 28, .str1 = 0, .off1_1 = 18, .off1_2 = 0, .off1_3 = 0, .fct2 = 6, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
395 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 7, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 20, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
396 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 28, .str1 = 0, .off1_1 = 18, .off1_2 = 0, .off1_3 = 0, .fct2 = 7, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
397 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 32, .str1 = 0, .off1_1 = 7, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
398 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 21, .str2 = 0, .off2_1 = 5, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
399 { .mnemonic = MNE_movs, .rep = 1, .repe = 0, .suffix = 1, .modrm = 0, .fct1 = 10, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 10, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
400 { .mnemonic = MNE_movsbl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 22, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
401 { .mnemonic = MNE_movswl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 20, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
402 { .mnemonic = MNE_movzbl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 22, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
403 { .mnemonic = MNE_movzwl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 20, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
404 { .mnemonic = MNE_mul, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
405 { .mnemonic = MNE_neg, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
406 { .mnemonic = MNE_pause, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
407 { .mnemonic = MNE_nop, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
408 { .mnemonic = MNE_popcnt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
409 { .mnemonic = MNE_not, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
410 { .mnemonic = MNE_or, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
411 { .mnemonic = MNE_or, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
412 { .mnemonic = MNE_or, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
413 { .mnemonic = MNE_or, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
414 { .mnemonic = MNE_or, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
415 { .mnemonic = MNE_out, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 5, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 12, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
416 { .mnemonic = MNE_out, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 5, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 9, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
417 { .mnemonic = MNE_outs, .rep = 1, .repe = 0, .suffix = 1, .modrm = 0, .fct1 = 10, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 9, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
418 { .mnemonic = MNE_pop, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
419 { .mnemonic = MNE_pop, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 32, .str1 = 0, .off1_1 = 7, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
420 { .mnemonic = MNE_popf, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
421 { .mnemonic = MNE_push, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
422 { .mnemonic = MNE_push, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 25, .str1 = 0, .off1_1 = 2, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
423 { .mnemonic = MNE_pop, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 25, .str1 = 0, .off1_1 = 2, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
424 { .mnemonic = MNE_push, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 14, .str1 = 0, .off1_1 = 5, .off1_2 = 2, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
425 { .mnemonic = MNE_push, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 31, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
426 { .mnemonic = MNE_push, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 32, .str1 = 0, .off1_1 = 7, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
427 { .mnemonic = MNE_pusha, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
428 { .mnemonic = MNE_popa, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
429 { .mnemonic = MNE_pushf, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
430 { .mnemonic = MNE_rcl, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
431 { .mnemonic = MNE_rcl, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
432 { .mnemonic = MNE_rcl, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
433 { .mnemonic = MNE_rcr, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
434 { .mnemonic = MNE_rcr, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
435 { .mnemonic = MNE_rcr, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
436 { .mnemonic = MNE_rdmsr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
437 { .mnemonic = MNE_rdpmc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
438 { .mnemonic = MNE_rdtsc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
439 { .mnemonic = MNE_ret, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
440 { .mnemonic = MNE_ret, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 16, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
441 { .mnemonic = MNE_lret, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
442 { .mnemonic = MNE_lret, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 16, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
443 { .mnemonic = MNE_rol, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
444 { .mnemonic = MNE_rol, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
445 { .mnemonic = MNE_rol, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
446 { .mnemonic = MNE_ror, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
447 { .mnemonic = MNE_ror, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
448 { .mnemonic = MNE_ror, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
449 { .mnemonic = MNE_rsm, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
450 { .mnemonic = MNE_sahf, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
451 { .mnemonic = MNE_sar, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
452 { .mnemonic = MNE_sar, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
453 { .mnemonic = MNE_sar, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
454 { .mnemonic = MNE_sbb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
455 { .mnemonic = MNE_sbb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
456 { .mnemonic = MNE_sbb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
457 { .mnemonic = MNE_sbb, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
458 { .mnemonic = MNE_sbb, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
459 { .mnemonic = MNE_scas, .rep = 0, .repe = 1, .suffix = 0, .modrm = 0, .fct1 = 12, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 3, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
460 { .mnemonic = MNE_set, .rep = 0, .repe = 0, .suffix = 4, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
461 { .mnemonic = MNE_shl, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
462 { .mnemonic = MNE_shl, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
463 { .mnemonic = MNE_shl, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
464 { .mnemonic = MNE_shr, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
465 { .mnemonic = MNE_shld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 2, .str3 = 0, .off3_1 = 6, .off3_2 = 0, },
466 { .mnemonic = MNE_shld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 2, .str3 = 0, .off3_1 = 6, .off3_2 = 0, },
467 { .mnemonic = MNE_shr, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
468 { .mnemonic = MNE_shr, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
469 { .mnemonic = MNE_shrd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 2, .str3 = 0, .off3_1 = 6, .off3_2 = 0, },
470 { .mnemonic = MNE_shrd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 2, .str3 = 0, .off3_1 = 6, .off3_2 = 0, },
471 { .mnemonic = MNE_vmcall, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
472 { .mnemonic = MNE_vmlaunch, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
473 { .mnemonic = MNE_vmresume, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
474 { .mnemonic = MNE_vmxoff, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
475 { .mnemonic = MNE_vmread, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 28, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 14, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
476 { .mnemonic = MNE_vmwrite, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 21, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 20, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
477 { .mnemonic = MNE_sgdtl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
478 { .mnemonic = MNE_monitor, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 3, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 1, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 4, .str3 = 1, .off3_1 = 0, .off3_2 = 0, },
479 { .mnemonic = MNE_mwait, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 3, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 22, .str2 = 1, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
480 { .mnemonic = MNE_sidtl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
481 { .mnemonic = MNE_sldt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
482 { .mnemonic = MNE_smsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
483 { .mnemonic = MNE_stc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
484 { .mnemonic = MNE_std, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
485 { .mnemonic = MNE_sti, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
486 { .mnemonic = MNE_stos, .rep = 1, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 5, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 10, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
487 { .mnemonic = MNE_str, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
488 { .mnemonic = MNE_sub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
489 { .mnemonic = MNE_sub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
490 { .mnemonic = MNE_sub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
491 { .mnemonic = MNE_sub, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
492 { .mnemonic = MNE_sub, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
493 { .mnemonic = MNE_test, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
494 { .mnemonic = MNE_test, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
495 { .mnemonic = MNE_test, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
496 { .mnemonic = MNE_ud2a, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
497 { .mnemonic = MNE_verr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 20, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
498 { .mnemonic = MNE_verw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 20, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
499 { .mnemonic = MNE_wbinvd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
500 { .mnemonic = MNE_prefetch, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 22, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
501 { .mnemonic = MNE_prefetchw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 22, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
502 { .mnemonic = MNE_prefetchnta, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
503 { .mnemonic = MNE_prefetcht0, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
504 { .mnemonic = MNE_prefetcht1, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
505 { .mnemonic = MNE_prefetcht2, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
506 { .mnemonic = MNE_nop, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
507 { .mnemonic = MNE_wrmsr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
508 { .mnemonic = MNE_xadd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 15, .off1_2 = 11, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 8, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
509 { .mnemonic = MNE_xchg, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
510 { .mnemonic = MNE_xchg, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 4, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
511 { .mnemonic = MNE_xlat, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 9, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
512 { .mnemonic = MNE_xor, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
513 { .mnemonic = MNE_xor, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
514 { .mnemonic = MNE_xor, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
515 { .mnemonic = MNE_xor, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
516 { .mnemonic = MNE_xor, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
517 { .mnemonic = MNE_emms, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
518 { .mnemonic = MNE_pand, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
519 { .mnemonic = MNE_pand, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
520 { .mnemonic = MNE_pandn, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
521 { .mnemonic = MNE_pandn, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
522 { .mnemonic = MNE_pmaddwd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
523 { .mnemonic = MNE_pmaddwd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
524 { .mnemonic = MNE_por, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
525 { .mnemonic = MNE_por, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
526 { .mnemonic = MNE_pxor, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
527 { .mnemonic = MNE_pxor, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
528 { .mnemonic = MNE_andnps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
529 { .mnemonic = MNE_andps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
530 { .mnemonic = MNE_cmpeqps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
531 { .mnemonic = MNE_cmpltps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
532 { .mnemonic = MNE_cmpleps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
533 { .mnemonic = MNE_cmpunordps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
534 { .mnemonic = MNE_cmpneqps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
535 { .mnemonic = MNE_cmpnltps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
536 { .mnemonic = MNE_cmpnleps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
537 { .mnemonic = MNE_cmpordps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
538 { .mnemonic = MNE_cmpeqss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
539 { .mnemonic = MNE_cmpltss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
540 { .mnemonic = MNE_cmpless, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
541 { .mnemonic = MNE_cmpunordss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
542 { .mnemonic = MNE_cmpneqss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
543 { .mnemonic = MNE_cmpnltss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
544 { .mnemonic = MNE_cmpnless, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
545 { .mnemonic = MNE_cmpordss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
546 { .mnemonic = MNE_fxrstor, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
547 { .mnemonic = MNE_fxsave, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
548 { .mnemonic = MNE_ldmxcsr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
549 { .mnemonic = MNE_stmxcsr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
550 { .mnemonic = MNE_movsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
551 { .mnemonic = MNE_movss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
552 { .mnemonic = MNE_movupd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
553 { .mnemonic = MNE_movups, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
554 { .mnemonic = MNE_movsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
555 { .mnemonic = MNE_movss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
556 { .mnemonic = MNE_movupd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
557 { .mnemonic = MNE_movups, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
558 { .mnemonic = MNE_movddup, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
559 { .mnemonic = MNE_movsldup, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
560 { .mnemonic = MNE_movlpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
561 { .mnemonic = MNE_movhlps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 18, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
562 { .mnemonic = MNE_movlps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
563 { .mnemonic = MNE_movhlpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
564 { .mnemonic = MNE_movhlps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
565 { .mnemonic = MNE_movlpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
566 { .mnemonic = MNE_movlps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
567 { .mnemonic = MNE_unpcklpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
568 { .mnemonic = MNE_unpcklps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
569 { .mnemonic = MNE_unpckhpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
570 { .mnemonic = MNE_unpckhps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
571 { .mnemonic = MNE_movshdup, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
572 { .mnemonic = MNE_movhpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
573 { .mnemonic = MNE_movlhps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 18, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
574 { .mnemonic = MNE_movhps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
575 { .mnemonic = MNE_movlhpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
576 { .mnemonic = MNE_movlhps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
577 { .mnemonic = MNE_movhpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
578 { .mnemonic = MNE_movhps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
579 { .mnemonic = MNE_movapd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
580 { .mnemonic = MNE_movaps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
581 { .mnemonic = MNE_movapd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
582 { .mnemonic = MNE_movaps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
583 { .mnemonic = MNE_cvtsi2sd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
584 { .mnemonic = MNE_cvtsi2ss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
585 { .mnemonic = MNE_cvtpi2pd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
586 { .mnemonic = MNE_cvtpi2ps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
587 { .mnemonic = MNE_movntpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
588 { .mnemonic = MNE_movntps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
589 { .mnemonic = MNE_cvttsd2si, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
590 { .mnemonic = MNE_cvttss2si, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
591 { .mnemonic = MNE_cvttpd2pi, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
592 { .mnemonic = MNE_cvttps2pi, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
593 { .mnemonic = MNE_cvtpd2pi, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
594 { .mnemonic = MNE_cvtsd2si, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
595 { .mnemonic = MNE_cvtss2si, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
596 { .mnemonic = MNE_cvtps2pi, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
597 { .mnemonic = MNE_ucomisd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
598 { .mnemonic = MNE_ucomiss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
599 { .mnemonic = MNE_comisd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
600 { .mnemonic = MNE_comiss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
601 { .mnemonic = MNE_getsec, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
602 { .mnemonic = MNE_movmskpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 26, .off1_2 = 0, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
603 { .mnemonic = MNE_movmskps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 18, .off1_2 = 0, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
604 { .mnemonic = MNE_sqrtpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
605 { .mnemonic = MNE_sqrtsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
606 { .mnemonic = MNE_sqrtss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
607 { .mnemonic = MNE_sqrtps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
608 { .mnemonic = MNE_rsqrtss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
609 { .mnemonic = MNE_rsqrtps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
610 { .mnemonic = MNE_rcpss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
611 { .mnemonic = MNE_rcpps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
612 { .mnemonic = MNE_andpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
613 { .mnemonic = MNE_andps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
614 { .mnemonic = MNE_andnpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
615 { .mnemonic = MNE_andnps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
616 { .mnemonic = MNE_orpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
617 { .mnemonic = MNE_orps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
618 { .mnemonic = MNE_xorpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
619 { .mnemonic = MNE_xorps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
620 { .mnemonic = MNE_addsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
621 { .mnemonic = MNE_addss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
622 { .mnemonic = MNE_addpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
623 { .mnemonic = MNE_addps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
624 { .mnemonic = MNE_mulsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
625 { .mnemonic = MNE_mulss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
626 { .mnemonic = MNE_mulpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
627 { .mnemonic = MNE_mulps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
628 { .mnemonic = MNE_cvtsd2ss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
629 { .mnemonic = MNE_cvtss2sd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
630 { .mnemonic = MNE_cvtpd2ps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
631 { .mnemonic = MNE_cvtps2pd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
632 { .mnemonic = MNE_cvtps2dq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
633 { .mnemonic = MNE_cvttps2dq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
634 { .mnemonic = MNE_cvtdq2ps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
635 { .mnemonic = MNE_subsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
636 { .mnemonic = MNE_subss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
637 { .mnemonic = MNE_subpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
638 { .mnemonic = MNE_subps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
639 { .mnemonic = MNE_minsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
640 { .mnemonic = MNE_minss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
641 { .mnemonic = MNE_minpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
642 { .mnemonic = MNE_minps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
643 { .mnemonic = MNE_divsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
644 { .mnemonic = MNE_divss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
645 { .mnemonic = MNE_divpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
646 { .mnemonic = MNE_divps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
647 { .mnemonic = MNE_maxsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
648 { .mnemonic = MNE_maxss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
649 { .mnemonic = MNE_maxpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
650 { .mnemonic = MNE_maxps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
651 { .mnemonic = MNE_punpcklbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
652 { .mnemonic = MNE_punpcklbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
653 { .mnemonic = MNE_punpcklwd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
654 { .mnemonic = MNE_punpcklwd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
655 { .mnemonic = MNE_punpckldq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
656 { .mnemonic = MNE_punpckldq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
657 { .mnemonic = MNE_packsswb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
658 { .mnemonic = MNE_packsswb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
659 { .mnemonic = MNE_pcmpgtb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
660 { .mnemonic = MNE_pcmpgtb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
661 { .mnemonic = MNE_pcmpgtw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
662 { .mnemonic = MNE_pcmpgtw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
663 { .mnemonic = MNE_pcmpgtd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
664 { .mnemonic = MNE_pcmpgtd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
665 { .mnemonic = MNE_packuswb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
666 { .mnemonic = MNE_packuswb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
667 { .mnemonic = MNE_punpckhbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
668 { .mnemonic = MNE_punpckhbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
669 { .mnemonic = MNE_punpckhwd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
670 { .mnemonic = MNE_punpckhwd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
671 { .mnemonic = MNE_punpckhdq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
672 { .mnemonic = MNE_punpckhdq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
673 { .mnemonic = MNE_packssdw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
674 { .mnemonic = MNE_packssdw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
675 { .mnemonic = MNE_punpcklqdq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
676 { .mnemonic = MNE_punpckhqdq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
677 { .mnemonic = MNE_movd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
678 { .mnemonic = MNE_movd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
679 { .mnemonic = MNE_movdqa, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
680 { .mnemonic = MNE_movdqu, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
681 { .mnemonic = MNE_movq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
682 { .mnemonic = MNE_pshufd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 16, .off3_2 = 0, },
683 { .mnemonic = MNE_pshuflw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 16, .off3_2 = 0, },
684 { .mnemonic = MNE_pshufhw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 16, .off3_2 = 0, },
685 { .mnemonic = MNE_pshufw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 1, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 1, .str3 = 0, .off3_1 = 8, .off3_2 = 0, },
686 { .mnemonic = MNE_pcmpeqb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
687 { .mnemonic = MNE_pcmpeqb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
688 { .mnemonic = MNE_pcmpeqw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
689 { .mnemonic = MNE_pcmpeqw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
690 { .mnemonic = MNE_pcmpeqd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
691 { .mnemonic = MNE_pcmpeqd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
692 { .mnemonic = MNE_haddpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
693 { .mnemonic = MNE_haddps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
694 { .mnemonic = MNE_hsubpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
695 { .mnemonic = MNE_hsubps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
696 { .mnemonic = MNE_movd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
697 { .mnemonic = MNE_movq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
698 { .mnemonic = MNE_movd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 19, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
699 { .mnemonic = MNE_movdqa, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
700 { .mnemonic = MNE_movdqu, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
701 { .mnemonic = MNE_movq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 19, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 1, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
702 { .mnemonic = MNE_movnti, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
703 { .mnemonic = MNE_pinsrw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 16, .off3_2 = 0, },
704 { .mnemonic = MNE_pinsrw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 1, .str3 = 0, .off3_1 = 8, .off3_2 = 0, },
705 { .mnemonic = MNE_pextrw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 3, .str3 = 0, .off3_1 = 16, .off3_2 = 0, },
706 { .mnemonic = MNE_pextrw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 3, .str3 = 0, .off3_1 = 8, .off3_2 = 0, },
707 { .mnemonic = MNE_shufpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 16, .off3_2 = 0, },
708 { .mnemonic = MNE_shufps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 8, .off3_2 = 0, },
709 { .mnemonic = MNE_psrlw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
710 { .mnemonic = MNE_psrlw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
711 { .mnemonic = MNE_psrld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
712 { .mnemonic = MNE_psrld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
713 { .mnemonic = MNE_psrlq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
714 { .mnemonic = MNE_psrlq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
715 { .mnemonic = MNE_paddq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
716 { .mnemonic = MNE_paddq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
717 { .mnemonic = MNE_pmullw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
718 { .mnemonic = MNE_pmullw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
719 { .mnemonic = MNE_movq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
720 { .mnemonic = MNE_movdq2q, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 26, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
721 { .mnemonic = MNE_movq2dq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 19, .str1 = 0, .off1_1 = 26, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
722 { .mnemonic = MNE_pmovmskb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 26, .off1_2 = 0, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
723 { .mnemonic = MNE_pmovmskb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 19, .str1 = 0, .off1_1 = 18, .off1_2 = 0, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
724 { .mnemonic = MNE_psubusb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
725 { .mnemonic = MNE_psubusb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
726 { .mnemonic = MNE_psubusw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
727 { .mnemonic = MNE_psubusw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
728 { .mnemonic = MNE_pminub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
729 { .mnemonic = MNE_pminub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
730 { .mnemonic = MNE_paddusb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
731 { .mnemonic = MNE_paddusb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
732 { .mnemonic = MNE_paddusw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
733 { .mnemonic = MNE_paddusw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
734 { .mnemonic = MNE_pmaxub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
735 { .mnemonic = MNE_pmaxub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
736 { .mnemonic = MNE_pavgb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
737 { .mnemonic = MNE_pavgb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
738 { .mnemonic = MNE_psraw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
739 { .mnemonic = MNE_psraw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
740 { .mnemonic = MNE_psrad, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
741 { .mnemonic = MNE_psrad, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
742 { .mnemonic = MNE_pavgw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
743 { .mnemonic = MNE_pavgw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
744 { .mnemonic = MNE_pmulhuw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
745 { .mnemonic = MNE_pmulhuw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
746 { .mnemonic = MNE_pmulhw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
747 { .mnemonic = MNE_pmulhw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
748 { .mnemonic = MNE_movntdq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
749 { .mnemonic = MNE_movntq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 19, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 1, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
750 { .mnemonic = MNE_psubsb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
751 { .mnemonic = MNE_psubsb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
752 { .mnemonic = MNE_psubsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
753 { .mnemonic = MNE_psubsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
754 { .mnemonic = MNE_pminsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
755 { .mnemonic = MNE_pminsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
756 { .mnemonic = MNE_paddsb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
757 { .mnemonic = MNE_paddsb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
758 { .mnemonic = MNE_paddsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
759 { .mnemonic = MNE_paddsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
760 { .mnemonic = MNE_pmaxsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
761 { .mnemonic = MNE_pmaxsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
762 { .mnemonic = MNE_lddqu, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
763 { .mnemonic = MNE_psllw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
764 { .mnemonic = MNE_psllw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
765 { .mnemonic = MNE_pslld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
766 { .mnemonic = MNE_pslld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
767 { .mnemonic = MNE_psllq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
768 { .mnemonic = MNE_psllq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
769 { .mnemonic = MNE_pmuludq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
770 { .mnemonic = MNE_pmuludq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
771 { .mnemonic = MNE_psadbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
772 { .mnemonic = MNE_psadbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
773 { .mnemonic = MNE_maskmovdqu, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 26, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
774 { .mnemonic = MNE_maskmovq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 19, .str1 = 0, .off1_1 = 18, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
775 { .mnemonic = MNE_psubb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
776 { .mnemonic = MNE_psubb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
777 { .mnemonic = MNE_psubw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
778 { .mnemonic = MNE_psubw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
779 { .mnemonic = MNE_psubd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
780 { .mnemonic = MNE_psubd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
781 { .mnemonic = MNE_psubq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
782 { .mnemonic = MNE_psubq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
783 { .mnemonic = MNE_paddb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
784 { .mnemonic = MNE_paddb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
785 { .mnemonic = MNE_paddw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
786 { .mnemonic = MNE_paddw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
787 { .mnemonic = MNE_paddd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
788 { .mnemonic = MNE_paddd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
789 { .mnemonic = MNE_pshufb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
790 { .mnemonic = MNE_pshufb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
791 { .mnemonic = MNE_phaddw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
792 { .mnemonic = MNE_phaddw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
793 { .mnemonic = MNE_phaddd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
794 { .mnemonic = MNE_phaddd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
795 { .mnemonic = MNE_phaddsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
796 { .mnemonic = MNE_phaddsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
797 { .mnemonic = MNE_pmaddubsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
798 { .mnemonic = MNE_pmaddubsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
799 { .mnemonic = MNE_phsubw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
800 { .mnemonic = MNE_phsubw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
801 { .mnemonic = MNE_phsubd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
802 { .mnemonic = MNE_phsubd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
803 { .mnemonic = MNE_phsubsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
804 { .mnemonic = MNE_phsubsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
805 { .mnemonic = MNE_psignb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
806 { .mnemonic = MNE_psignb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
807 { .mnemonic = MNE_psignw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
808 { .mnemonic = MNE_psignw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
809 { .mnemonic = MNE_psignd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
810 { .mnemonic = MNE_psignd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
811 { .mnemonic = MNE_pmulhrsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
812 { .mnemonic = MNE_pmulhrsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
813 { .mnemonic = MNE_pabsb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
814 { .mnemonic = MNE_pabsb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
815 { .mnemonic = MNE_pabsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
816 { .mnemonic = MNE_pabsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
817 { .mnemonic = MNE_pabsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
818 { .mnemonic = MNE_pabsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
819 { .mnemonic = MNE_palignr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
820 { .mnemonic = MNE_palignr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 1, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 1, .str3 = 0, .off3_1 = 16, .off3_2 = 0, },
821 { .mnemonic = MNE_vmclear, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
822 { .mnemonic = MNE_vmxon, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
823 { .mnemonic = MNE_vmptrld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
824 { .mnemonic = MNE_vmptrst, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
825 { .mnemonic = MNE_psrlw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
826 { .mnemonic = MNE_psrlw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
827 { .mnemonic = MNE_psraw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
828 { .mnemonic = MNE_psraw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
829 { .mnemonic = MNE_psllw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
830 { .mnemonic = MNE_psllw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
831 { .mnemonic = MNE_psrld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
832 { .mnemonic = MNE_psrld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
833 { .mnemonic = MNE_psrad, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
834 { .mnemonic = MNE_psrad, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
835 { .mnemonic = MNE_pslld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
836 { .mnemonic = MNE_pslld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
837 { .mnemonic = MNE_psrlq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
838 { .mnemonic = MNE_psrlq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
839 { .mnemonic = MNE_psrldq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
840 { .mnemonic = MNE_psllq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
841 { .mnemonic = MNE_psllq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
842 { .mnemonic = MNE_pslldq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
843 { .mnemonic = MNE_lfence, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
844 { .mnemonic = MNE_mfence, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
845 { .mnemonic = MNE_sfence, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
846 { .mnemonic = MNE_clflush, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
847 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
848 { .mnemonic = MNE_blendps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
849 { .mnemonic = MNE_blendpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
850 { .mnemonic = MNE_blendvps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 33, .str1 = 5, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
851 { .mnemonic = MNE_blendvpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 33, .str1 = 5, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
852 { .mnemonic = MNE_dpps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
853 { .mnemonic = MNE_dppd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
854 { .mnemonic = MNE_insertps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
855 { .mnemonic = MNE_movntdqa, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
856 { .mnemonic = MNE_mpsadbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
857 { .mnemonic = MNE_packusdw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
858 { .mnemonic = MNE_pblendvb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 33, .str1 = 5, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
859 { .mnemonic = MNE_pblendw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
860 { .mnemonic = MNE_pcmpeqq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
861 { .mnemonic = MNE_pcmpestri, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
862 { .mnemonic = MNE_pcmpestrm, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
863 { .mnemonic = MNE_pcmpistri, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
864 { .mnemonic = MNE_pcmpistrm, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
865 { .mnemonic = MNE_pcmpgtq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
866 { .mnemonic = MNE_phminposuw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
867 { .mnemonic = MNE_pinsrb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
868 { .mnemonic = MNE_pinsrd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
869 { .mnemonic = MNE_pmaxsb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
870 { .mnemonic = MNE_pmaxsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
871 { .mnemonic = MNE_pmaxud, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
872 { .mnemonic = MNE_pmaxuw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
873 { .mnemonic = MNE_pminsb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
874 { .mnemonic = MNE_pminsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
875 { .mnemonic = MNE_pminud, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
876 { .mnemonic = MNE_pminuw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
877 { .mnemonic = MNE_pmovsxbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
878 { .mnemonic = MNE_pmovsxbd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
879 { .mnemonic = MNE_pmovsxbq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
880 { .mnemonic = MNE_pmovsxwd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
881 { .mnemonic = MNE_pmovsxwq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
882 { .mnemonic = MNE_pmovsxdq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
883 { .mnemonic = MNE_pmovzxbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
884 { .mnemonic = MNE_pmovzxbd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
885 { .mnemonic = MNE_pmovzxbq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
886 { .mnemonic = MNE_pmovzxwd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
887 { .mnemonic = MNE_pmovzxwq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
888 { .mnemonic = MNE_pmovzxdq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
889 { .mnemonic = MNE_pmuldq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
890 { .mnemonic = MNE_pmulld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
891 { .mnemonic = MNE_ptest, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 23, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
892 { .mnemonic = MNE_roundps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
893 { .mnemonic = MNE_roundpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
894 { .mnemonic = MNE_roundss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
895 { .mnemonic = MNE_roundsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 17, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
896 { .mnemonic = MNE_pop, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 31, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
897};
898static const uint8_t match_data[] =
899{
900 0x11, 0x37,
901 0x22, 0xd5, 0xa,
902 0x22, 0xd4, 0xa,
903 0x11, 0x3f,
904 0x1, 0xfe, 0x14,
905 0x2, 0xfe, 0x80, 0x38, 0x10,
906 0x2, 0xfe, 0x82, 0x38, 0x10,
907 0x2, 0xfe, 0x10, 0, 0,
908 0x2, 0xfe, 0x12, 0, 0,
909 0x1, 0xfe, 0x4,
910 0x2, 0xfe, 0x80, 0x38, 0,
911 0x12, 0x83, 0x38, 0,
912 0x2, 0xfe, 0, 0, 0,
913 0x2, 0xfe, 0x2, 0, 0,
914 0x34, 0x66, 0xf, 0xd0, 0, 0,
915 0x34, 0xf2, 0xf, 0xd0, 0, 0,
916 0x1, 0xfe, 0x24,
917 0x2, 0xfe, 0x80, 0x38, 0x20,
918 0x2, 0xfe, 0x82, 0x38, 0x20,
919 0x2, 0xfe, 0x20, 0, 0,
920 0x2, 0xfe, 0x22, 0, 0,
921 0x34, 0x66, 0xf, 0x54, 0, 0,
922 0x23, 0xf, 0x54, 0, 0,
923 0x34, 0x66, 0xf, 0x55, 0, 0,
924 0x23, 0xf, 0x55, 0, 0,
925 0x12, 0x63, 0, 0,
926 0x12, 0x62, 0, 0,
927 0x23, 0xf, 0xbc, 0, 0,
928 0x23, 0xf, 0xbd, 0, 0,
929 0x12, 0xf, 0xf8, 0xc8,
930 0x23, 0xf, 0xa3, 0, 0,
931 0x23, 0xf, 0xba, 0x38, 0x20,
932 0x23, 0xf, 0xbb, 0, 0,
933 0x23, 0xf, 0xba, 0x38, 0x38,
934 0x23, 0xf, 0xb3, 0, 0,
935 0x23, 0xf, 0xba, 0x38, 0x30,
936 0x23, 0xf, 0xab, 0, 0,
937 0x23, 0xf, 0xba, 0x38, 0x28,
938 0x11, 0xe8,
939 0x12, 0xff, 0x38, 0x10,
940 0x11, 0x9a,
941 0x12, 0xff, 0x38, 0x18,
942 0x11, 0x98,
943 0x11, 0x99,
944 0x11, 0xf8,
945 0x11, 0xfc,
946 0x11, 0xfa,
947 0x22, 0xf, 0x5,
948 0x22, 0xf, 0x6,
949 0x22, 0xf, 0x7,
950 0x22, 0xf, 0x34,
951 0x22, 0xf, 0x35,
952 0x11, 0xf5,
953 0x13, 0xf, 0xf0, 0x40, 0, 0,
954 0x1, 0xfe, 0x3c,
955 0x2, 0xfe, 0x80, 0x38, 0x38,
956 0x12, 0x83, 0x38, 0x38,
957 0x2, 0xfe, 0x38, 0, 0,
958 0x2, 0xfe, 0x3a, 0, 0,
959 0x34, 0xf2, 0xf, 0xc2, 0, 0,
960 0x34, 0xf3, 0xf, 0xc2, 0, 0,
961 0x34, 0x66, 0xf, 0xc2, 0, 0,
962 0x23, 0xf, 0xc2, 0, 0,
963 0x1, 0xfe, 0xa6,
964 0x13, 0xf, 0xfe, 0xb0, 0, 0,
965 0x23, 0xf, 0xc7, 0x38, 0x8,
966 0x22, 0xf, 0xa2,
967 0x34, 0xf3, 0xf, 0xe6, 0, 0,
968 0x34, 0xf2, 0xf, 0xe6, 0, 0,
969 0x34, 0x66, 0xf, 0xe6, 0, 0,
970 0x11, 0x27,
971 0x11, 0x2f,
972 0x2, 0xfe, 0xfe, 0x38, 0x8,
973 0x1, 0xf8, 0x48,
974 0x2, 0xfe, 0xf6, 0x38, 0x30,
975 0x22, 0xf, 0x77,
976 0x11, 0xc8,
977 0x22, 0xd9, 0xd0,
978 0x22, 0xd9, 0xe0,
979 0x22, 0xd9, 0xe1,
980 0x22, 0xd9, 0xe4,
981 0x22, 0xd9, 0xe5,
982 0x22, 0xd9, 0xe8,
983 0x22, 0xd9, 0xe9,
984 0x22, 0xd9, 0xea,
985 0x22, 0xd9, 0xeb,
986 0x22, 0xd9, 0xec,
987 0x22, 0xd9, 0xed,
988 0x22, 0xd9, 0xee,
989 0x22, 0xd9, 0xf0,
990 0x22, 0xd9, 0xf1,
991 0x22, 0xd9, 0xf2,
992 0x22, 0xd9, 0xf3,
993 0x22, 0xd9, 0xf4,
994 0x22, 0xd9, 0xf5,
995 0x22, 0xd9, 0xf6,
996 0x22, 0xd9, 0xf7,
997 0x22, 0xd9, 0xf8,
998 0x22, 0xd9, 0xf9,
999 0x22, 0xd9, 0xfa,
1000 0x22, 0xd9, 0xfb,
1001 0x22, 0xd9, 0xfc,
1002 0x22, 0xd9, 0xfd,
1003 0x22, 0xd9, 0xfe,
1004 0x22, 0xd9, 0xff,
1005 0x12, 0xd8, 0xf8, 0xc0,
1006 0x12, 0xdc, 0xf8, 0xc0,
1007 0x2, 0xfb, 0xd8, 0x38, 0,
1008 0x12, 0xd8, 0xf8, 0xc8,
1009 0x12, 0xdc, 0xf8, 0xc8,
1010 0x2, 0xfb, 0xd8, 0x38, 0x8,
1011 0x12, 0xd8, 0xf8, 0xe0,
1012 0x12, 0xdc, 0xf8, 0xe0,
1013 0x2, 0xfb, 0xd8, 0x38, 0x20,
1014 0x12, 0xd8, 0xf8, 0xe8,
1015 0x12, 0xdc, 0xf8, 0xe8,
1016 0x2, 0xfb, 0xd8, 0x38, 0x28,
1017 0x12, 0xdd, 0xf8, 0xd0,
1018 0x2, 0xfb, 0xd9, 0x38, 0x10,
1019 0x12, 0xdd, 0xf8, 0xd8,
1020 0x2, 0xfb, 0xd9, 0x38, 0x18,
1021 0x12, 0xd9, 0x38, 0x20,
1022 0x12, 0xd9, 0x38, 0x28,
1023 0x12, 0xd9, 0x38, 0x30,
1024 0x12, 0xd9, 0x38, 0x38,
1025 0x12, 0xd9, 0xf8, 0xc8,
1026 0x12, 0xde, 0xf8, 0xc0,
1027 0x12, 0xda, 0xf8, 0xc0,
1028 0x2, 0xfb, 0xda, 0x38, 0,
1029 0x12, 0xda, 0xf8, 0xc8,
1030 0x12, 0xde, 0xf8, 0xc8,
1031 0x2, 0xfb, 0xda, 0x38, 0x8,
1032 0x12, 0xde, 0xf8, 0xe0,
1033 0x2, 0xfb, 0xda, 0x38, 0x20,
1034 0x12, 0xde, 0xf8, 0xe8,
1035 0x2, 0xfb, 0xda, 0x38, 0x28,
1036 0x22, 0xdf, 0xe0,
1037 0x12, 0xdf, 0x38, 0x20,
1038 0x12, 0xdf, 0xf8, 0xf0,
1039 0x12, 0xdf, 0x38, 0x30,
1040 0x22, 0xd9, 0xe0,
1041 0x33, 0x9b, 0xdb, 0xe2,
1042 0x33, 0x9b, 0xdb, 0xe3,
1043 0x11, 0x9b,
1044 0x22, 0xdb, 0xe2,
1045 0x12, 0xda, 0xf8, 0xc0,
1046 0x12, 0xda, 0xf8, 0xc8,
1047 0x12, 0xda, 0xf8, 0xd0,
1048 0x12, 0xda, 0xf8, 0xd8,
1049 0x12, 0xdb, 0xf8, 0xc0,
1050 0x12, 0xdb, 0xf8, 0xc8,
1051 0x12, 0xdb, 0xf8, 0xd0,
1052 0x12, 0xdb, 0xf8, 0xd8,
1053 0x12, 0xd8, 0xf8, 0xd0,
1054 0x2, 0xfb, 0xd8, 0x38, 0x10,
1055 0x12, 0xd8, 0xf8, 0xd8,
1056 0x2, 0xfb, 0xd8, 0x38, 0x18,
1057 0x22, 0xde, 0xd9,
1058 0x12, 0xdb, 0xf8, 0xf0,
1059 0x12, 0xdf, 0xf8, 0xf0,
1060 0x12, 0xdb, 0xf8, 0xe8,
1061 0x12, 0xdf, 0xf8, 0xe8,
1062 0x22, 0xd9, 0xff,
1063 0x22, 0xd9, 0xf6,
1064 0x12, 0xd8, 0xf8, 0xf0,
1065 0x12, 0xdc, 0xf8, 0xf0,
1066 0x2, 0xfb, 0xd8, 0x38, 0x30,
1067 0x12, 0xda, 0x38, 0x30,
1068 0x12, 0xde, 0xf8, 0xf0,
1069 0x12, 0xde, 0x38, 0x30,
1070 0x12, 0xde, 0xf8, 0xf8,
1071 0x12, 0xd8, 0xf8, 0xf8,
1072 0x12, 0xdc, 0xf8, 0xf8,
1073 0x2, 0xfb, 0xd8, 0x38, 0x38,
1074 0x12, 0xda, 0x38, 0x38,
1075 0x12, 0xde, 0x38, 0x38,
1076 0x12, 0xde, 0xf8, 0xf0,
1077 0x12, 0xdd, 0xf8, 0xc0,
1078 0x12, 0xda, 0xf8, 0xd0,
1079 0x2, 0xfb, 0xda, 0x38, 0x10,
1080 0x12, 0xda, 0xf8, 0xd8,
1081 0x2, 0xfb, 0xda, 0x38, 0x18,
1082 0x12, 0xdf, 0x38, 0,
1083 0x12, 0xdb, 0x38, 0,
1084 0x12, 0xdf, 0x38, 0x28,
1085 0x22, 0xd9, 0xf7,
1086 0x22, 0xdb, 0xe3,
1087 0x2, 0xfb, 0xdb, 0x38, 0x10,
1088 0x2, 0xfb, 0xdb, 0x38, 0x18,
1089 0x12, 0xdf, 0x38, 0x38,
1090 0x2, 0xfb, 0xdb, 0x38, 0x8,
1091 0x12, 0xdd, 0x38, 0x8,
1092 0x12, 0xdb, 0x38, 0x28,
1093 0x12, 0xdb, 0x38, 0x38,
1094 0x12, 0xd9, 0xf8, 0xc0,
1095 0x2, 0xfb, 0xd9, 0x38, 0,
1096 0x12, 0xdd, 0xf8, 0xe0,
1097 0x12, 0xdd, 0x38, 0x20,
1098 0x12, 0xdd, 0xf8, 0xe8,
1099 0x12, 0xdd, 0x38, 0x30,
1100 0x12, 0xdd, 0x38, 0x38,
1101 0x11, 0xf4,
1102 0x2, 0xfe, 0xf6, 0x38, 0x38,
1103 0x2, 0xfe, 0xf6, 0x38, 0x28,
1104 0x23, 0xf, 0xaf, 0, 0,
1105 0x2, 0xfd, 0x69, 0, 0,
1106 0x1, 0xfe, 0xe4,
1107 0x1, 0xfe, 0xec,
1108 0x2, 0xfe, 0xfe, 0x38, 0,
1109 0x1, 0xf8, 0x40,
1110 0x1, 0xfe, 0x6c,
1111 0x11, 0xcd,
1112 0x11, 0xcc,
1113 0x11, 0xce,
1114 0x22, 0xf, 0x8,
1115 0x33, 0xf, 0x1, 0xf8,
1116 0x23, 0xf, 0x1, 0x38, 0x38,
1117 0x11, 0xcf,
1118 0x1, 0xf0, 0x70,
1119 0x12, 0xf, 0xf0, 0x80,
1120 0x13, 0xf, 0xf0, 0x90, 0x38, 0,
1121 0x11, 0xe3,
1122 0x11, 0xeb,
1123 0x11, 0xe9,
1124 0x12, 0xff, 0x38, 0x20,
1125 0x11, 0xea,
1126 0x12, 0xff, 0x38, 0x28,
1127 0x11, 0x9f,
1128 0x23, 0xf, 0x2, 0, 0,
1129 0x12, 0xc5, 0, 0,
1130 0x12, 0x8d, 0, 0,
1131 0x11, 0xc9,
1132 0x12, 0xc4, 0, 0,
1133 0x23, 0xf, 0xb4, 0, 0,
1134 0x23, 0xf, 0xb5, 0, 0,
1135 0x23, 0xf, 0x1, 0x38, 0x10,
1136 0x23, 0xf, 0x1, 0x38, 0x18,
1137 0x23, 0xf, 0, 0x38, 0x10,
1138 0x23, 0xf, 0x1, 0x38, 0x30,
1139 0x11, 0xf0,
1140 0x1, 0xfe, 0xac,
1141 0x11, 0xe2,
1142 0x11, 0xe1,
1143 0x11, 0xe0,
1144 0x23, 0xf, 0x3, 0, 0,
1145 0x23, 0xf, 0xb2, 0, 0,
1146 0x23, 0xf, 0, 0x38, 0x18,
1147 0x2, 0xfe, 0x88, 0, 0,
1148 0x2, 0xfe, 0x8a, 0, 0,
1149 0x2, 0xfe, 0xc6, 0x38, 0,
1150 0x1, 0xf0, 0xb0,
1151 0x1, 0xfe, 0xa0,
1152 0x1, 0xfe, 0xa2,
1153 0x23, 0xf, 0x20, 0xc0, 0xc0,
1154 0x23, 0xf, 0x22, 0xc0, 0xc0,
1155 0x23, 0xf, 0x21, 0xc0, 0xc0,
1156 0x23, 0xf, 0x23, 0xc0, 0xc0,
1157 0x12, 0x8c, 0, 0,
1158 0x12, 0x8e, 0, 0,
1159 0x1, 0xfe, 0xa4,
1160 0x23, 0xf, 0xbe, 0, 0,
1161 0x23, 0xf, 0xbf, 0, 0,
1162 0x23, 0xf, 0xb6, 0, 0,
1163 0x23, 0xf, 0xb7, 0, 0,
1164 0x2, 0xfe, 0xf6, 0x38, 0x20,
1165 0x2, 0xfe, 0xf6, 0x38, 0x18,
1166 0x22, 0xf3, 0x90,
1167 0x11, 0x90,
1168 0x34, 0xf3, 0xf, 0xb8, 0, 0,
1169 0x2, 0xfe, 0xf6, 0x38, 0x10,
1170 0x2, 0xfe, 0x8, 0, 0,
1171 0x2, 0xfe, 0xa, 0, 0,
1172 0x2, 0xfe, 0x80, 0x38, 0x8,
1173 0x2, 0xfe, 0x82, 0x38, 0x8,
1174 0x1, 0xfe, 0xc,
1175 0x1, 0xfe, 0xe6,
1176 0x1, 0xfe, 0xee,
1177 0x1, 0xfe, 0x6e,
1178 0x12, 0x8f, 0x38, 0,
1179 0x12, 0xf, 0xc7, 0x81,
1180 0x11, 0x9d,
1181 0x12, 0xff, 0x38, 0x30,
1182 0x1, 0xf8, 0x50,
1183 0x1, 0xf8, 0x58,
1184 0x1, 0xfd, 0x68,
1185 0x1, 0xe7, 0x6,
1186 0x12, 0xf, 0xc7, 0x80,
1187 0x11, 0x60,
1188 0x11, 0x61,
1189 0x11, 0x9c,
1190 0x2, 0xfe, 0xd0, 0x38, 0x10,
1191 0x2, 0xfe, 0xd2, 0x38, 0x10,
1192 0x2, 0xfe, 0xc0, 0x38, 0x10,
1193 0x2, 0xfe, 0xd0, 0x38, 0x18,
1194 0x2, 0xfe, 0xd2, 0x38, 0x18,
1195 0x2, 0xfe, 0xc0, 0x38, 0x18,
1196 0x22, 0xf, 0x32,
1197 0x22, 0xf, 0x33,
1198 0x22, 0xf, 0x31,
1199 0x11, 0xc3,
1200 0x11, 0xc2,
1201 0x11, 0xcb,
1202 0x11, 0xca,
1203 0x2, 0xfe, 0xd0, 0x38, 0,
1204 0x2, 0xfe, 0xd2, 0x38, 0,
1205 0x2, 0xfe, 0xc0, 0x38, 0,
1206 0x2, 0xfe, 0xd0, 0x38, 0x8,
1207 0x2, 0xfe, 0xd2, 0x38, 0x8,
1208 0x2, 0xfe, 0xc0, 0x38, 0x8,
1209 0x22, 0xf, 0xaa,
1210 0x11, 0x9e,
1211 0x2, 0xfe, 0xd0, 0x38, 0x38,
1212 0x2, 0xfe, 0xd2, 0x38, 0x38,
1213 0x2, 0xfe, 0xc0, 0x38, 0x38,
1214 0x2, 0xfe, 0x18, 0, 0,
1215 0x2, 0xfe, 0x1a, 0, 0,
1216 0x1, 0xfe, 0x1c,
1217 0x2, 0xfe, 0x80, 0x38, 0x18,
1218 0x2, 0xfe, 0x82, 0x38, 0x18,
1219 0x1, 0xfe, 0xae,
1220 0x13, 0xf, 0xf0, 0x90, 0x38, 0,
1221 0x2, 0xfe, 0xd0, 0x38, 0x20,
1222 0x2, 0xfe, 0xd2, 0x38, 0x20,
1223 0x2, 0xfe, 0xc0, 0x38, 0x20,
1224 0x2, 0xfe, 0xd0, 0x38, 0x28,
1225 0x23, 0xf, 0xa4, 0, 0,
1226 0x23, 0xf, 0xa5, 0, 0,
1227 0x2, 0xfe, 0xd2, 0x38, 0x28,
1228 0x2, 0xfe, 0xc0, 0x38, 0x28,
1229 0x23, 0xf, 0xac, 0, 0,
1230 0x23, 0xf, 0xad, 0, 0,
1231 0x33, 0xf, 0x1, 0xc1,
1232 0x33, 0xf, 0x1, 0xc2,
1233 0x33, 0xf, 0x1, 0xc3,
1234 0x33, 0xf, 0x1, 0xc4,
1235 0x23, 0xf, 0x78, 0, 0,
1236 0x23, 0xf, 0x79, 0, 0,
1237 0x23, 0xf, 0x1, 0x38, 0,
1238 0x33, 0xf, 0x1, 0xc8,
1239 0x33, 0xf, 0x1, 0xc9,
1240 0x23, 0xf, 0x1, 0x38, 0x8,
1241 0x23, 0xf, 0, 0x38, 0,
1242 0x23, 0xf, 0x1, 0x38, 0x20,
1243 0x11, 0xf9,
1244 0x11, 0xfd,
1245 0x11, 0xfb,
1246 0x1, 0xfe, 0xaa,
1247 0x23, 0xf, 0, 0x38, 0x8,
1248 0x2, 0xfe, 0x28, 0, 0,
1249 0x2, 0xfe, 0x2a, 0, 0,
1250 0x1, 0xfe, 0x2c,
1251 0x2, 0xfe, 0x80, 0x38, 0x28,
1252 0x2, 0xfe, 0x82, 0x38, 0x28,
1253 0x2, 0xfe, 0x84, 0, 0,
1254 0x1, 0xfe, 0xa8,
1255 0x2, 0xfe, 0xf6, 0x38, 0,
1256 0x22, 0xf, 0xb,
1257 0x23, 0xf, 0, 0x38, 0x20,
1258 0x23, 0xf, 0, 0x38, 0x28,
1259 0x22, 0xf, 0x9,
1260 0x23, 0xf, 0xd, 0x38, 0,
1261 0x23, 0xf, 0xd, 0x38, 0x8,
1262 0x23, 0xf, 0x18, 0x38, 0,
1263 0x23, 0xf, 0x18, 0x38, 0x8,
1264 0x23, 0xf, 0x18, 0x38, 0x10,
1265 0x23, 0xf, 0x18, 0x38, 0x18,
1266 0x23, 0xf, 0x1f, 0, 0,
1267 0x22, 0xf, 0x30,
1268 0x13, 0xf, 0xfe, 0xc0, 0, 0,
1269 0x2, 0xfe, 0x86, 0, 0,
1270 0x1, 0xf8, 0x90,
1271 0x11, 0xd7,
1272 0x2, 0xfe, 0x30, 0, 0,
1273 0x2, 0xfe, 0x32, 0, 0,
1274 0x1, 0xfe, 0x34,
1275 0x2, 0xfe, 0x80, 0x38, 0x30,
1276 0x2, 0xfe, 0x82, 0x38, 0x30,
1277 0x22, 0xf, 0x77,
1278 0x34, 0x66, 0xf, 0xdb, 0, 0,
1279 0x23, 0xf, 0xdb, 0, 0,
1280 0x34, 0x66, 0xf, 0xdf, 0, 0,
1281 0x23, 0xf, 0xdf, 0, 0,
1282 0x34, 0x66, 0xf, 0xf5, 0, 0,
1283 0x23, 0xf, 0xf5, 0, 0,
1284 0x34, 0x66, 0xf, 0xeb, 0, 0,
1285 0x23, 0xf, 0xeb, 0, 0,
1286 0x34, 0x66, 0xf, 0xef, 0, 0,
1287 0x23, 0xf, 0xef, 0, 0,
1288 0x23, 0xf, 0x55, 0, 0,
1289 0x23, 0xf, 0x54, 0, 0,
1290 0x24, 0xf, 0xc2, 0, 0, 0xff, 0,
1291 0x24, 0xf, 0xc2, 0, 0, 0xff, 0x1,
1292 0x24, 0xf, 0xc2, 0, 0, 0xff, 0x2,
1293 0x24, 0xf, 0xc2, 0, 0, 0xff, 0x3,
1294 0x24, 0xf, 0xc2, 0, 0, 0xff, 0x4,
1295 0x24, 0xf, 0xc2, 0, 0, 0xff, 0x5,
1296 0x24, 0xf, 0xc2, 0, 0, 0xff, 0x6,
1297 0x24, 0xf, 0xc2, 0, 0, 0xff, 0x7,
1298 0x35, 0xf3, 0xf, 0xc2, 0, 0, 0xff, 0,
1299 0x35, 0xf3, 0xf, 0xc2, 0, 0, 0xff, 0x1,
1300 0x35, 0xf3, 0xf, 0xc2, 0, 0, 0xff, 0x2,
1301 0x35, 0xf3, 0xf, 0xc2, 0, 0, 0xff, 0x3,
1302 0x35, 0xf3, 0xf, 0xc2, 0, 0, 0xff, 0x4,
1303 0x35, 0xf3, 0xf, 0xc2, 0, 0, 0xff, 0x5,
1304 0x35, 0xf3, 0xf, 0xc2, 0, 0, 0xff, 0x6,
1305 0x35, 0xf3, 0xf, 0xc2, 0, 0, 0xff, 0x7,
1306 0x23, 0xf, 0xae, 0x38, 0x8,
1307 0x23, 0xf, 0xae, 0x38, 0,
1308 0x23, 0xf, 0xae, 0x38, 0x10,
1309 0x23, 0xf, 0xae, 0x38, 0x18,
1310 0x34, 0xf2, 0xf, 0x10, 0, 0,
1311 0x34, 0xf3, 0xf, 0x10, 0, 0,
1312 0x34, 0x66, 0xf, 0x10, 0, 0,
1313 0x23, 0xf, 0x10, 0, 0,
1314 0x34, 0xf2, 0xf, 0x11, 0, 0,
1315 0x34, 0xf3, 0xf, 0x11, 0, 0,
1316 0x34, 0x66, 0xf, 0x11, 0, 0,
1317 0x23, 0xf, 0x11, 0, 0,
1318 0x34, 0xf2, 0xf, 0x12, 0, 0,
1319 0x34, 0xf3, 0xf, 0x12, 0, 0,
1320 0x34, 0x66, 0xf, 0x12, 0, 0,
1321 0x23, 0xf, 0x12, 0xc0, 0xc0,
1322 0x23, 0xf, 0x12, 0, 0,
1323 0x34, 0x66, 0xf, 0x13, 0xc0, 0xc0,
1324 0x23, 0xf, 0x13, 0xc0, 0xc0,
1325 0x34, 0x66, 0xf, 0x13, 0, 0,
1326 0x23, 0xf, 0x13, 0, 0,
1327 0x34, 0x66, 0xf, 0x14, 0, 0,
1328 0x23, 0xf, 0x14, 0, 0,
1329 0x34, 0x66, 0xf, 0x15, 0, 0,
1330 0x23, 0xf, 0x15, 0, 0,
1331 0x34, 0xf3, 0xf, 0x16, 0, 0,
1332 0x34, 0x66, 0xf, 0x16, 0, 0,
1333 0x23, 0xf, 0x16, 0xc0, 0xc0,
1334 0x23, 0xf, 0x16, 0, 0,
1335 0x34, 0x66, 0xf, 0x17, 0xc0, 0xc0,
1336 0x23, 0xf, 0x17, 0xc0, 0xc0,
1337 0x34, 0x66, 0xf, 0x17, 0, 0,
1338 0x23, 0xf, 0x17, 0, 0,
1339 0x34, 0x66, 0xf, 0x28, 0, 0,
1340 0x23, 0xf, 0x28, 0, 0,
1341 0x34, 0x66, 0xf, 0x29, 0, 0,
1342 0x23, 0xf, 0x29, 0, 0,
1343 0x34, 0xf2, 0xf, 0x2a, 0, 0,
1344 0x34, 0xf3, 0xf, 0x2a, 0, 0,
1345 0x34, 0x66, 0xf, 0x2a, 0, 0,
1346 0x23, 0xf, 0x2a, 0, 0,
1347 0x34, 0x66, 0xf, 0x2b, 0, 0,
1348 0x23, 0xf, 0x2b, 0, 0,
1349 0x34, 0xf2, 0xf, 0x2c, 0, 0,
1350 0x34, 0xf3, 0xf, 0x2c, 0, 0,
1351 0x34, 0x66, 0xf, 0x2c, 0, 0,
1352 0x23, 0xf, 0x2c, 0, 0,
1353 0x34, 0x66, 0xf, 0x2d, 0, 0,
1354 0x34, 0xf2, 0xf, 0x2d, 0, 0,
1355 0x34, 0xf3, 0xf, 0x2d, 0, 0,
1356 0x23, 0xf, 0x2d, 0, 0,
1357 0x34, 0x66, 0xf, 0x2e, 0, 0,
1358 0x23, 0xf, 0x2e, 0, 0,
1359 0x34, 0x66, 0xf, 0x2f, 0, 0,
1360 0x23, 0xf, 0x2f, 0, 0,
1361 0x22, 0xf, 0x37,
1362 0x34, 0x66, 0xf, 0x50, 0xc0, 0xc0,
1363 0x23, 0xf, 0x50, 0xc0, 0xc0,
1364 0x34, 0x66, 0xf, 0x51, 0, 0,
1365 0x34, 0xf2, 0xf, 0x51, 0, 0,
1366 0x34, 0xf3, 0xf, 0x51, 0, 0,
1367 0x23, 0xf, 0x51, 0, 0,
1368 0x34, 0xf3, 0xf, 0x52, 0, 0,
1369 0x23, 0xf, 0x52, 0, 0,
1370 0x34, 0xf3, 0xf, 0x53, 0, 0,
1371 0x23, 0xf, 0x53, 0, 0,
1372 0x34, 0x66, 0xf, 0x54, 0, 0,
1373 0x23, 0xf, 0x54, 0, 0,
1374 0x34, 0x66, 0xf, 0x55, 0, 0,
1375 0x23, 0xf, 0x55, 0, 0,
1376 0x34, 0x66, 0xf, 0x56, 0, 0,
1377 0x23, 0xf, 0x56, 0, 0,
1378 0x34, 0x66, 0xf, 0x57, 0, 0,
1379 0x23, 0xf, 0x57, 0, 0,
1380 0x34, 0xf2, 0xf, 0x58, 0, 0,
1381 0x34, 0xf3, 0xf, 0x58, 0, 0,
1382 0x34, 0x66, 0xf, 0x58, 0, 0,
1383 0x23, 0xf, 0x58, 0, 0,
1384 0x34, 0xf2, 0xf, 0x59, 0, 0,
1385 0x34, 0xf3, 0xf, 0x59, 0, 0,
1386 0x34, 0x66, 0xf, 0x59, 0, 0,
1387 0x23, 0xf, 0x59, 0, 0,
1388 0x34, 0xf2, 0xf, 0x5a, 0, 0,
1389 0x34, 0xf3, 0xf, 0x5a, 0, 0,
1390 0x34, 0x66, 0xf, 0x5a, 0, 0,
1391 0x23, 0xf, 0x5a, 0, 0,
1392 0x34, 0x66, 0xf, 0x5b, 0, 0,
1393 0x34, 0xf3, 0xf, 0x5b, 0, 0,
1394 0x23, 0xf, 0x5b, 0, 0,
1395 0x34, 0xf2, 0xf, 0x5c, 0, 0,
1396 0x34, 0xf3, 0xf, 0x5c, 0, 0,
1397 0x34, 0x66, 0xf, 0x5c, 0, 0,
1398 0x23, 0xf, 0x5c, 0, 0,
1399 0x34, 0xf2, 0xf, 0x5d, 0, 0,
1400 0x34, 0xf3, 0xf, 0x5d, 0, 0,
1401 0x34, 0x66, 0xf, 0x5d, 0, 0,
1402 0x23, 0xf, 0x5d, 0, 0,
1403 0x34, 0xf2, 0xf, 0x5e, 0, 0,
1404 0x34, 0xf3, 0xf, 0x5e, 0, 0,
1405 0x34, 0x66, 0xf, 0x5e, 0, 0,
1406 0x23, 0xf, 0x5e, 0, 0,
1407 0x34, 0xf2, 0xf, 0x5f, 0, 0,
1408 0x34, 0xf3, 0xf, 0x5f, 0, 0,
1409 0x34, 0x66, 0xf, 0x5f, 0, 0,
1410 0x23, 0xf, 0x5f, 0, 0,
1411 0x34, 0x66, 0xf, 0x60, 0, 0,
1412 0x23, 0xf, 0x60, 0, 0,
1413 0x34, 0x66, 0xf, 0x61, 0, 0,
1414 0x23, 0xf, 0x61, 0, 0,
1415 0x34, 0x66, 0xf, 0x62, 0, 0,
1416 0x23, 0xf, 0x62, 0, 0,
1417 0x34, 0x66, 0xf, 0x63, 0, 0,
1418 0x23, 0xf, 0x63, 0, 0,
1419 0x34, 0x66, 0xf, 0x64, 0, 0,
1420 0x23, 0xf, 0x64, 0, 0,
1421 0x34, 0x66, 0xf, 0x65, 0, 0,
1422 0x23, 0xf, 0x65, 0, 0,
1423 0x34, 0x66, 0xf, 0x66, 0, 0,
1424 0x23, 0xf, 0x66, 0, 0,
1425 0x34, 0x66, 0xf, 0x67, 0, 0,
1426 0x23, 0xf, 0x67, 0, 0,
1427 0x34, 0x66, 0xf, 0x68, 0, 0,
1428 0x23, 0xf, 0x68, 0, 0,
1429 0x34, 0x66, 0xf, 0x69, 0, 0,
1430 0x23, 0xf, 0x69, 0, 0,
1431 0x34, 0x66, 0xf, 0x6a, 0, 0,
1432 0x23, 0xf, 0x6a, 0, 0,
1433 0x34, 0x66, 0xf, 0x6b, 0, 0,
1434 0x23, 0xf, 0x6b, 0, 0,
1435 0x34, 0x66, 0xf, 0x6c, 0, 0,
1436 0x34, 0x66, 0xf, 0x6d, 0, 0,
1437 0x34, 0x66, 0xf, 0x6e, 0, 0,
1438 0x23, 0xf, 0x6e, 0, 0,
1439 0x34, 0x66, 0xf, 0x6f, 0, 0,
1440 0x34, 0xf3, 0xf, 0x6f, 0, 0,
1441 0x23, 0xf, 0x6f, 0, 0,
1442 0x34, 0x66, 0xf, 0x70, 0, 0,
1443 0x34, 0xf2, 0xf, 0x70, 0, 0,
1444 0x34, 0xf3, 0xf, 0x70, 0, 0,
1445 0x23, 0xf, 0x70, 0, 0,
1446 0x34, 0x66, 0xf, 0x74, 0, 0,
1447 0x23, 0xf, 0x74, 0, 0,
1448 0x34, 0x66, 0xf, 0x75, 0, 0,
1449 0x23, 0xf, 0x75, 0, 0,
1450 0x34, 0x66, 0xf, 0x76, 0, 0,
1451 0x23, 0xf, 0x76, 0, 0,
1452 0x34, 0x66, 0xf, 0x7c, 0, 0,
1453 0x34, 0xf2, 0xf, 0x7c, 0, 0,
1454 0x34, 0x66, 0xf, 0x7d, 0, 0,
1455 0x34, 0xf2, 0xf, 0x7d, 0, 0,
1456 0x34, 0x66, 0xf, 0x7e, 0, 0,
1457 0x34, 0xf3, 0xf, 0x7e, 0, 0,
1458 0x23, 0xf, 0x7e, 0, 0,
1459 0x34, 0x66, 0xf, 0x7f, 0, 0,
1460 0x34, 0xf3, 0xf, 0x7f, 0, 0,
1461 0x23, 0xf, 0x7f, 0, 0,
1462 0x23, 0xf, 0xc3, 0, 0,
1463 0x34, 0x66, 0xf, 0xc4, 0, 0,
1464 0x23, 0xf, 0xc4, 0, 0,
1465 0x34, 0x66, 0xf, 0xc5, 0xc0, 0xc0,
1466 0x23, 0xf, 0xc5, 0xc0, 0xc0,
1467 0x34, 0x66, 0xf, 0xc6, 0, 0,
1468 0x23, 0xf, 0xc6, 0, 0,
1469 0x34, 0x66, 0xf, 0xd1, 0, 0,
1470 0x23, 0xf, 0xd1, 0, 0,
1471 0x34, 0x66, 0xf, 0xd2, 0, 0,
1472 0x23, 0xf, 0xd2, 0, 0,
1473 0x34, 0x66, 0xf, 0xd3, 0, 0,
1474 0x23, 0xf, 0xd3, 0, 0,
1475 0x34, 0x66, 0xf, 0xd4, 0, 0,
1476 0x23, 0xf, 0xd4, 0, 0,
1477 0x34, 0x66, 0xf, 0xd5, 0, 0,
1478 0x23, 0xf, 0xd5, 0, 0,
1479 0x34, 0x66, 0xf, 0xd6, 0, 0,
1480 0x34, 0xf2, 0xf, 0xd6, 0xc0, 0xc0,
1481 0x34, 0xf3, 0xf, 0xd6, 0xc0, 0xc0,
1482 0x34, 0x66, 0xf, 0xd7, 0xc0, 0xc0,
1483 0x23, 0xf, 0xd7, 0xc0, 0xc0,
1484 0x34, 0x66, 0xf, 0xd8, 0, 0,
1485 0x23, 0xf, 0xd8, 0, 0,
1486 0x34, 0x66, 0xf, 0xd9, 0, 0,
1487 0x23, 0xf, 0xd9, 0, 0,
1488 0x34, 0x66, 0xf, 0xda, 0, 0,
1489 0x23, 0xf, 0xda, 0, 0,
1490 0x34, 0x66, 0xf, 0xdc, 0, 0,
1491 0x23, 0xf, 0xdc, 0, 0,
1492 0x34, 0x66, 0xf, 0xdd, 0, 0,
1493 0x23, 0xf, 0xdd, 0, 0,
1494 0x34, 0x66, 0xf, 0xde, 0, 0,
1495 0x23, 0xf, 0xde, 0, 0,
1496 0x34, 0x66, 0xf, 0xe0, 0, 0,
1497 0x23, 0xf, 0xe0, 0, 0,
1498 0x34, 0x66, 0xf, 0xe1, 0, 0,
1499 0x23, 0xf, 0xe1, 0, 0,
1500 0x34, 0x66, 0xf, 0xe2, 0, 0,
1501 0x23, 0xf, 0xe2, 0, 0,
1502 0x34, 0x66, 0xf, 0xe3, 0, 0,
1503 0x23, 0xf, 0xe3, 0, 0,
1504 0x34, 0x66, 0xf, 0xe4, 0, 0,
1505 0x23, 0xf, 0xe4, 0, 0,
1506 0x34, 0x66, 0xf, 0xe5, 0, 0,
1507 0x23, 0xf, 0xe5, 0, 0,
1508 0x34, 0x66, 0xf, 0xe7, 0, 0,
1509 0x23, 0xf, 0xe7, 0, 0,
1510 0x34, 0x66, 0xf, 0xe8, 0, 0,
1511 0x23, 0xf, 0xe8, 0, 0,
1512 0x34, 0x66, 0xf, 0xe9, 0, 0,
1513 0x23, 0xf, 0xe9, 0, 0,
1514 0x34, 0x66, 0xf, 0xea, 0, 0,
1515 0x23, 0xf, 0xea, 0, 0,
1516 0x34, 0x66, 0xf, 0xec, 0, 0,
1517 0x23, 0xf, 0xec, 0, 0,
1518 0x34, 0x66, 0xf, 0xed, 0, 0,
1519 0x23, 0xf, 0xed, 0, 0,
1520 0x34, 0x66, 0xf, 0xee, 0, 0,
1521 0x23, 0xf, 0xee, 0, 0,
1522 0x34, 0xf2, 0xf, 0xf0, 0, 0,
1523 0x34, 0x66, 0xf, 0xf1, 0, 0,
1524 0x23, 0xf, 0xf1, 0, 0,
1525 0x34, 0x66, 0xf, 0xf2, 0, 0,
1526 0x23, 0xf, 0xf2, 0, 0,
1527 0x34, 0x66, 0xf, 0xf3, 0, 0,
1528 0x23, 0xf, 0xf3, 0, 0,
1529 0x34, 0x66, 0xf, 0xf4, 0, 0,
1530 0x23, 0xf, 0xf4, 0, 0,
1531 0x34, 0x66, 0xf, 0xf6, 0, 0,
1532 0x23, 0xf, 0xf6, 0, 0,
1533 0x34, 0x66, 0xf, 0xf7, 0xc0, 0xc0,
1534 0x23, 0xf, 0xf7, 0xc0, 0xc0,
1535 0x34, 0x66, 0xf, 0xf8, 0, 0,
1536 0x23, 0xf, 0xf8, 0, 0,
1537 0x34, 0x66, 0xf, 0xf9, 0, 0,
1538 0x23, 0xf, 0xf9, 0, 0,
1539 0x34, 0x66, 0xf, 0xfa, 0, 0,
1540 0x23, 0xf, 0xfa, 0, 0,
1541 0x34, 0x66, 0xf, 0xfb, 0, 0,
1542 0x23, 0xf, 0xfb, 0, 0,
1543 0x34, 0x66, 0xf, 0xfc, 0, 0,
1544 0x23, 0xf, 0xfc, 0, 0,
1545 0x34, 0x66, 0xf, 0xfd, 0, 0,
1546 0x23, 0xf, 0xfd, 0, 0,
1547 0x34, 0x66, 0xf, 0xfe, 0, 0,
1548 0x23, 0xf, 0xfe, 0, 0,
1549 0x45, 0x66, 0xf, 0x38, 0, 0, 0,
1550 0x34, 0xf, 0x38, 0, 0, 0,
1551 0x45, 0x66, 0xf, 0x38, 0x1, 0, 0,
1552 0x34, 0xf, 0x38, 0x1, 0, 0,
1553 0x45, 0x66, 0xf, 0x38, 0x2, 0, 0,
1554 0x34, 0xf, 0x38, 0x2, 0, 0,
1555 0x45, 0x66, 0xf, 0x38, 0x3, 0, 0,
1556 0x34, 0xf, 0x38, 0x3, 0, 0,
1557 0x45, 0x66, 0xf, 0x38, 0x4, 0, 0,
1558 0x34, 0xf, 0x38, 0x4, 0, 0,
1559 0x45, 0x66, 0xf, 0x38, 0x5, 0, 0,
1560 0x34, 0xf, 0x38, 0x5, 0, 0,
1561 0x45, 0x66, 0xf, 0x38, 0x6, 0, 0,
1562 0x34, 0xf, 0x38, 0x6, 0, 0,
1563 0x45, 0x66, 0xf, 0x38, 0x7, 0, 0,
1564 0x34, 0xf, 0x38, 0x7, 0, 0,
1565 0x45, 0x66, 0xf, 0x38, 0x8, 0, 0,
1566 0x34, 0xf, 0x38, 0x8, 0, 0,
1567 0x45, 0x66, 0xf, 0x38, 0x9, 0, 0,
1568 0x34, 0xf, 0x38, 0x9, 0, 0,
1569 0x45, 0x66, 0xf, 0x38, 0xa, 0, 0,
1570 0x34, 0xf, 0x38, 0xa, 0, 0,
1571 0x45, 0x66, 0xf, 0x38, 0xb, 0, 0,
1572 0x34, 0xf, 0x38, 0xb, 0, 0,
1573 0x45, 0x66, 0xf, 0x38, 0x1c, 0, 0,
1574 0x34, 0xf, 0x38, 0x1c, 0, 0,
1575 0x45, 0x66, 0xf, 0x38, 0x1d, 0, 0,
1576 0x34, 0xf, 0x38, 0x1d, 0, 0,
1577 0x45, 0x66, 0xf, 0x38, 0x1e, 0, 0,
1578 0x34, 0xf, 0x38, 0x1e, 0, 0,
1579 0x45, 0x66, 0xf, 0x3a, 0xf, 0, 0,
1580 0x34, 0xf, 0x3a, 0xf, 0, 0,
1581 0x34, 0x66, 0xf, 0xc7, 0x38, 0x30,
1582 0x34, 0xf3, 0xf, 0xc7, 0x38, 0x30,
1583 0x23, 0xf, 0xc7, 0x38, 0x30,
1584 0x23, 0xf, 0xc7, 0x38, 0x38,
1585 0x34, 0x66, 0xf, 0x71, 0xf8, 0xd0,
1586 0x23, 0xf, 0x71, 0xf8, 0xd0,
1587 0x34, 0x66, 0xf, 0x71, 0xf8, 0xe0,
1588 0x23, 0xf, 0x71, 0xf8, 0xe0,
1589 0x34, 0x66, 0xf, 0x71, 0xf8, 0xf0,
1590 0x23, 0xf, 0x71, 0xf8, 0xf0,
1591 0x34, 0x66, 0xf, 0x72, 0xf8, 0xd0,
1592 0x23, 0xf, 0x72, 0xf8, 0xd0,
1593 0x34, 0x66, 0xf, 0x72, 0xf8, 0xe0,
1594 0x23, 0xf, 0x72, 0xf8, 0xe0,
1595 0x34, 0x66, 0xf, 0x72, 0xf8, 0xf0,
1596 0x23, 0xf, 0x72, 0xf8, 0xf0,
1597 0x34, 0x66, 0xf, 0x73, 0xf8, 0xd0,
1598 0x23, 0xf, 0x73, 0xf8, 0xd0,
1599 0x34, 0x66, 0xf, 0x73, 0xf8, 0xd8,
1600 0x34, 0x66, 0xf, 0x73, 0xf8, 0xf0,
1601 0x23, 0xf, 0x73, 0xf8, 0xf0,
1602 0x34, 0x66, 0xf, 0x73, 0xf8, 0xf8,
1603 0x33, 0xf, 0xae, 0xe8,
1604 0x33, 0xf, 0xae, 0xf0,
1605 0x33, 0xf, 0xae, 0xf8,
1606 0x23, 0xf, 0xae, 0x38, 0x38,
1607 0x23, 0xf, 0xf, 0, 0,
1608 0x45, 0x66, 0xf, 0x3a, 0xc, 0, 0,
1609 0x45, 0x66, 0xf, 0x3a, 0xd, 0, 0,
1610 0x45, 0x66, 0xf, 0x38, 0x14, 0, 0,
1611 0x45, 0x66, 0xf, 0x38, 0x15, 0, 0,
1612 0x45, 0x66, 0xf, 0x3a, 0x40, 0, 0,
1613 0x45, 0x66, 0xf, 0x3a, 0x41, 0, 0,
1614 0x45, 0x66, 0xf, 0x3a, 0x21, 0, 0,
1615 0x45, 0x66, 0xf, 0x38, 0x2a, 0, 0,
1616 0x45, 0x66, 0xf, 0x3a, 0x42, 0, 0,
1617 0x45, 0x66, 0xf, 0x38, 0x2b, 0, 0,
1618 0x45, 0x66, 0xf, 0x38, 0x10, 0, 0,
1619 0x45, 0x66, 0xf, 0x3a, 0xe, 0, 0,
1620 0x45, 0x66, 0xf, 0x38, 0x29, 0, 0,
1621 0x45, 0x66, 0xf, 0x3a, 0x61, 0, 0,
1622 0x45, 0x66, 0xf, 0x3a, 0x60, 0, 0,
1623 0x45, 0x66, 0xf, 0x3a, 0x63, 0, 0,
1624 0x45, 0x66, 0xf, 0x3a, 0x62, 0, 0,
1625 0x45, 0x66, 0xf, 0x38, 0x37, 0, 0,
1626 0x45, 0x66, 0xf, 0x38, 0x41, 0, 0,
1627 0x45, 0x66, 0xf, 0x3a, 0x20, 0, 0,
1628 0x45, 0x66, 0xf, 0x3a, 0x22, 0, 0,
1629 0x45, 0x66, 0xf, 0x38, 0x3c, 0, 0,
1630 0x45, 0x66, 0xf, 0x38, 0x3d, 0, 0,
1631 0x45, 0x66, 0xf, 0x38, 0x3f, 0, 0,
1632 0x45, 0x66, 0xf, 0x38, 0x3e, 0, 0,
1633 0x45, 0x66, 0xf, 0x38, 0x38, 0, 0,
1634 0x45, 0x66, 0xf, 0x38, 0x39, 0, 0,
1635 0x45, 0x66, 0xf, 0x38, 0x3b, 0, 0,
1636 0x45, 0x66, 0xf, 0x38, 0x3a, 0, 0,
1637 0x45, 0x66, 0xf, 0x38, 0x20, 0, 0,
1638 0x45, 0x66, 0xf, 0x38, 0x21, 0, 0,
1639 0x45, 0x66, 0xf, 0x38, 0x22, 0, 0,
1640 0x45, 0x66, 0xf, 0x38, 0x23, 0, 0,
1641 0x45, 0x66, 0xf, 0x38, 0x24, 0, 0,
1642 0x45, 0x66, 0xf, 0x38, 0x25, 0, 0,
1643 0x45, 0x66, 0xf, 0x38, 0x30, 0, 0,
1644 0x45, 0x66, 0xf, 0x38, 0x31, 0, 0,
1645 0x45, 0x66, 0xf, 0x38, 0x32, 0, 0,
1646 0x45, 0x66, 0xf, 0x38, 0x33, 0, 0,
1647 0x45, 0x66, 0xf, 0x38, 0x34, 0, 0,
1648 0x45, 0x66, 0xf, 0x38, 0x35, 0, 0,
1649 0x45, 0x66, 0xf, 0x38, 0x28, 0, 0,
1650 0x45, 0x66, 0xf, 0x38, 0x40, 0, 0,
1651 0x45, 0x66, 0xf, 0x38, 0x17, 0, 0,
1652 0x45, 0x66, 0xf, 0x3a, 0x8, 0, 0,
1653 0x45, 0x66, 0xf, 0x3a, 0x9, 0, 0,
1654 0x45, 0x66, 0xf, 0x3a, 0xa, 0, 0,
1655 0x45, 0x66, 0xf, 0x3a, 0xb, 0, 0,
1656 0x1, 0xe7, 0x7,
1657};
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/m68k_backend.diff b/meta/recipes-devtools/elfutils/elfutils-0.148/m68k_backend.diff
deleted file mode 100644
index 5b621f92ff..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/m68k_backend.diff
+++ /dev/null
@@ -1,309 +0,0 @@
1Upstream-Status: Backport
2
3Index: elfutils-0.146/backends/m68k_init.c
4===================================================================
5--- /dev/null 1970-01-01 00:00:00.000000000 +0000
6+++ elfutils-0.146/backends/m68k_init.c 2010-04-24 10:11:38.000000000 +0000
7@@ -0,0 +1,49 @@
8+/* Initialization of m68k specific backend library.
9+ Copyright (C) 2007 Kurt Roeckx <kurt@roeckx.be>
10+
11+ This software is free software; you can redistribute it and/or modify
12+ it under the terms of the GNU General Public License as published by the
13+ Free Software Foundation; version 2 of the License.
14+
15+ This softare is distributed in the hope that it will be useful, but
16+ WITHOUT ANY WARRANTY; without even the implied warranty of
17+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18+ General Public License for more details.
19+
20+ You should have received a copy of the GNU General Public License along
21+ with this software; if not, write to the Free Software Foundation,
22+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
23+
24+*/
25+
26+#ifdef HAVE_CONFIG_H
27+# include <config.h>
28+#endif
29+
30+#define BACKEND m68k_
31+#define RELOC_PREFIX R_68K_
32+#include "libebl_CPU.h"
33+
34+/* This defines the common reloc hooks based on m68k_reloc.def. */
35+#include "common-reloc.c"
36+
37+
38+const char *
39+m68k_init (elf, machine, eh, ehlen)
40+ Elf *elf __attribute__ ((unused));
41+ GElf_Half machine __attribute__ ((unused));
42+ Ebl *eh;
43+ size_t ehlen;
44+{
45+ /* Check whether the Elf_BH object has a sufficent size. */
46+ if (ehlen < sizeof (Ebl))
47+ return NULL;
48+
49+ /* We handle it. */
50+ eh->name = "m68k";
51+ m68k_init_reloc (eh);
52+ HOOK (eh, reloc_simple_type);
53+ HOOK (eh, register_info);
54+
55+ return MODVERSION;
56+}
57Index: elfutils-0.146/backends/m68k_regs.c
58===================================================================
59--- /dev/null 1970-01-01 00:00:00.000000000 +0000
60+++ elfutils-0.146/backends/m68k_regs.c 2010-04-24 10:11:38.000000000 +0000
61@@ -0,0 +1,106 @@
62+/* Register names and numbers for m68k DWARF.
63+ Copyright (C) 2007 Kurt Roeckx <kurt@roeckx.be>
64+
65+ This software is free software; you can redistribute it and/or modify
66+ it under the terms of the GNU General Public License as published by the
67+ Free Software Foundation; version 2 of the License.
68+
69+ This software is distributed in the hope that it will be useful, but
70+ WITHOUT ANY WARRANTY; without even the implied warranty of
71+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
72+ General Public License for more details.
73+
74+ You should have received a copy of the GNU General Public License along
75+ with this software; if not, write to the Free Software Foundation,
76+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
77+
78+ */
79+
80+#ifdef HAVE_CONFIG_H
81+# include <config.h>
82+#endif
83+
84+#include <string.h>
85+#include <dwarf.h>
86+
87+#define BACKEND m68k_
88+#include "libebl_CPU.h"
89+
90+ssize_t
91+m68k_register_info (Ebl *ebl __attribute__ ((unused)),
92+ int regno, char *name, size_t namelen,
93+ const char **prefix, const char **setname,
94+ int *bits, int *type)
95+{
96+ if (name == NULL)
97+ return 25;
98+
99+ if (regno < 0 || regno > 24 || namelen < 5)
100+ return -1;
101+
102+ *prefix = "%";
103+ *bits = 32;
104+ *type = (regno < 8 ? DW_ATE_signed
105+ : regno < 16 ? DW_ATE_address : DW_ATE_float);
106+
107+ if (regno < 8)
108+ {
109+ *setname = "integer";
110+ }
111+ else if (regno < 16)
112+ {
113+ *setname = "address";
114+ }
115+ else if (regno < 24)
116+ {
117+ *setname = "FPU";
118+ }
119+ else
120+ {
121+ *setname = "address";
122+ *type = DW_ATE_address;
123+ }
124+
125+ switch (regno)
126+ {
127+ case 0 ... 7:
128+ name[0] = 'd';
129+ name[1] = regno + '0';
130+ namelen = 2;
131+ break;
132+
133+ case 8 ... 13:
134+ name[0] = 'a';
135+ name[1] = regno - 8 + '0';
136+ namelen = 2;
137+ break;
138+
139+ case 14:
140+ name[0] = 'f';
141+ name[1] = 'p';
142+ namelen = 2;
143+ break;
144+
145+ case 15:
146+ name[0] = 's';
147+ name[1] = 'p';
148+ namelen = 2;
149+ break;
150+
151+ case 16 ... 23:
152+ name[0] = 'f';
153+ name[1] = 'p';
154+ name[2] = regno - 16 + '0';
155+ namelen = 3;
156+ break;
157+
158+ case 24:
159+ name[0] = 'p';
160+ name[1] = 'c';
161+ namelen = 2;
162+ }
163+
164+ name[namelen++] = '\0';
165+ return namelen;
166+}
167+
168Index: elfutils-0.146/backends/m68k_reloc.def
169===================================================================
170--- /dev/null 1970-01-01 00:00:00.000000000 +0000
171+++ elfutils-0.146/backends/m68k_reloc.def 2010-04-24 10:11:38.000000000 +0000
172@@ -0,0 +1,45 @@
173+/* List the relocation types for m68k. -*- C -*-
174+ Copyright (C) 2007 Kurt Roeckx <kurt@roeckx.be>
175+
176+ This software is free software; you can redistribute it and/or modify
177+ it under the terms of the GNU General Public License as published by the
178+ Free Software Foundation; version 2 of the License.
179+
180+ This software is distributed in the hope that it will be useful, but
181+ WITHOUT ANY WARRANTY; without even the implied warranty of
182+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
183+ General Public License for more details.
184+
185+ You should have received a copy of the GNU General Public License along
186+ with this software; if not, write to the Free Software Foundation,
187+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
188+*/
189+
190+/* NAME, REL|EXEC|DYN */
191+
192+RELOC_TYPE (NONE, 0)
193+RELOC_TYPE (32, REL|EXEC|DYN)
194+RELOC_TYPE (16, REL)
195+RELOC_TYPE (8, REL)
196+RELOC_TYPE (PC32, REL|EXEC|DYN)
197+RELOC_TYPE (PC16, REL)
198+RELOC_TYPE (PC8, REL)
199+RELOC_TYPE (GOT32, REL)
200+RELOC_TYPE (GOT16, REL)
201+RELOC_TYPE (GOT8, REL)
202+RELOC_TYPE (GOT32O, REL)
203+RELOC_TYPE (GOT16O, REL)
204+RELOC_TYPE (GOT8O, REL)
205+RELOC_TYPE (PLT32, REL)
206+RELOC_TYPE (PLT16, REL)
207+RELOC_TYPE (PLT8, REL)
208+RELOC_TYPE (PLT32O, REL)
209+RELOC_TYPE (PLT16O, REL)
210+RELOC_TYPE (PLT8O, REL)
211+RELOC_TYPE (COPY, EXEC)
212+RELOC_TYPE (GLOB_DAT, EXEC|DYN)
213+RELOC_TYPE (JMP_SLOT, EXEC|DYN)
214+RELOC_TYPE (RELATIVE, EXEC|DYN)
215+RELOC_TYPE (GNU_VTINHERIT, REL)
216+RELOC_TYPE (GNU_VTENTRY, REL)
217+
218Index: elfutils-0.146/libelf/elf.h
219===================================================================
220--- elfutils-0.146.orig/libelf/elf.h 2010-04-24 10:11:13.000000000 +0000
221+++ elfutils-0.146/libelf/elf.h 2010-04-24 10:13:50.000000000 +0000
222@@ -1125,6 +1125,9 @@
223 #define R_68K_GLOB_DAT 20 /* Create GOT entry */
224 #define R_68K_JMP_SLOT 21 /* Create PLT entry */
225 #define R_68K_RELATIVE 22 /* Adjust by program base */
226+/* The next 2 are GNU extensions to enable C++ vtable garbage collection. */
227+#define R_68K_GNU_VTINHERIT 23
228+#define R_68K_GNU_VTENTRY 24
229 #define R_68K_TLS_GD32 25 /* 32 bit GOT offset for GD */
230 #define R_68K_TLS_GD16 26 /* 16 bit GOT offset for GD */
231 #define R_68K_TLS_GD8 27 /* 8 bit GOT offset for GD */
232Index: elfutils-0.146/backends/Makefile.am
233===================================================================
234--- elfutils-0.146.orig/backends/Makefile.am 2010-04-24 10:11:23.000000000 +0000
235+++ elfutils-0.146/backends/Makefile.am 2010-04-24 10:11:38.000000000 +0000
236@@ -29,11 +29,12 @@
237 -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw
238
239
240-modules = i386 sh x86_64 ia64 alpha arm sparc ppc ppc64 s390 parisc mips
241+modules = i386 sh x86_64 ia64 alpha arm sparc ppc ppc64 s390 parisc mips m68k
242 libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \
243 libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \
244 libebl_sparc_pic.a libebl_ppc_pic.a libebl_ppc64_pic.a \
245- libebl_s390_pic.a libebl_parisc_pic.a libebl_mips_pic.a
246+ libebl_s390_pic.a libebl_parisc_pic.a libebl_mips_pic.a \
247+ libebl_m68k_pic.a
248 noinst_LIBRARIES = $(libebl_pic)
249 noinst_DATA = $(libebl_pic:_pic.a=.so)
250
251@@ -103,6 +104,10 @@
252 libebl_mips_pic_a_SOURCES = $(mips_SRCS)
253 am_libebl_mips_pic_a_OBJECTS = $(mips_SRCS:.c=.os)
254
255+m68k_SRCS = m68k_init.c m68k_symbol.c m68k_regs.c
256+libebl_m68k_pic_a_SOURCES = $(m68k_SRCS)
257+am_libebl_m68k_pic_a_OBJECTS = $(m68k_SRCS:.c=.os)
258+
259 libebl_%.so libebl_%.map: libebl_%_pic.a $(libelf) $(libdw)
260 @rm -f $(@:.so=.map)
261 echo 'ELFUTILS_$(PACKAGE_VERSION) { global: $*_init; local: *; };' \
262Index: elfutils-0.146/backends/m68k_symbol.c
263===================================================================
264--- /dev/null 1970-01-01 00:00:00.000000000 +0000
265+++ elfutils-0.146/backends/m68k_symbol.c 2010-04-24 10:11:38.000000000 +0000
266@@ -0,0 +1,43 @@
267+/* m68k specific symbolic name handling.
268+ Copyright (C) 2007 Kurt Roeckx <kurt@roeckx.be>
269+
270+ This software is free software; you can redistribute it and/or modify
271+ it under the terms of the GNU General Public License as published by the
272+ Free Software Foundation; version 2 of the License.
273+
274+ This software distributed in the hope that it will be useful, but
275+ WITHOUT ANY WARRANTY; without even the implied warranty of
276+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
277+ General Public License for more details.
278+
279+ You should have received a copy of the GNU General Public License along
280+ with this software; if not, write to the Free Software Foundation,
281+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
282+*/
283+
284+#ifdef HAVE_CONFIG_H
285+# include <config.h>
286+#endif
287+
288+#include <elf.h>
289+#include <stddef.h>
290+
291+#define BACKEND m68k_
292+#include "libebl_CPU.h"
293+
294+/* Check for the simple reloc types. */
295+Elf_Type
296+m68k_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type)
297+{
298+ switch (type)
299+ {
300+ case R_68K_32:
301+ return ELF_T_SWORD;
302+ case R_68K_16:
303+ return ELF_T_HALF;
304+ case R_68K_8:
305+ return ELF_T_BYTE;
306+ default:
307+ return ELF_T_NUM;
308+ }
309+}
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/mips_backend.diff b/meta/recipes-devtools/elfutils/elfutils-0.148/mips_backend.diff
deleted file mode 100644
index 3f81a75b1a..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/mips_backend.diff
+++ /dev/null
@@ -1,713 +0,0 @@
1Upstream-Status: Backport
2
3Index: elfutils-0.145/backends/mips_init.c
4===================================================================
5--- /dev/null 1970-01-01 00:00:00.000000000 +0000
6+++ elfutils-0.145/backends/mips_init.c 2010-02-24 18:57:35.000000000 +0000
7@@ -0,0 +1,60 @@
8+/* Initialization of mips specific backend library.
9+ Copyright (C) 2006 Red Hat, Inc.
10+ This file is part of Red Hat elfutils.
11+
12+ Red Hat elfutils is free software; you can redistribute it and/or modify
13+ it under the terms of the GNU General Public License as published by the
14+ Free Software Foundation; version 2 of the License.
15+
16+ Red Hat elfutils is distributed in the hope that it will be useful, but
17+ WITHOUT ANY WARRANTY; without even the implied warranty of
18+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19+ General Public License for more details.
20+
21+ You should have received a copy of the GNU General Public License along
22+ with Red Hat elfutils; if not, write to the Free Software Foundation,
23+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
24+
25+ Red Hat elfutils is an included package of the Open Invention Network.
26+ An included package of the Open Invention Network is a package for which
27+ Open Invention Network licensees cross-license their patents. No patent
28+ license is granted, either expressly or impliedly, by designation as an
29+ included package. Should you wish to participate in the Open Invention
30+ Network licensing program, please visit www.openinventionnetwork.com
31+ <http://www.openinventionnetwork.com>. */
32+
33+#ifdef HAVE_CONFIG_H
34+# include <config.h>
35+#endif
36+
37+#define BACKEND mips_
38+#define RELOC_PREFIX R_MIPS_
39+#include "libebl_CPU.h"
40+
41+/* This defines the common reloc hooks based on mips_reloc.def. */
42+#include "common-reloc.c"
43+
44+const char *
45+mips_init (elf, machine, eh, ehlen)
46+ Elf *elf __attribute__ ((unused));
47+ GElf_Half machine __attribute__ ((unused));
48+ Ebl *eh;
49+ size_t ehlen;
50+{
51+ /* Check whether the Elf_BH object has a sufficent size. */
52+ if (ehlen < sizeof (Ebl))
53+ return NULL;
54+
55+ /* We handle it. */
56+ if (machine == EM_MIPS)
57+ eh->name = "MIPS R3000 big-endian";
58+ else if (machine == EM_MIPS_RS3_LE)
59+ eh->name = "MIPS R3000 little-endian";
60+
61+ mips_init_reloc (eh);
62+ HOOK (eh, reloc_simple_type);
63+ HOOK (eh, return_value_location);
64+ HOOK (eh, register_info);
65+
66+ return MODVERSION;
67+}
68Index: elfutils-0.145/backends/mips_regs.c
69===================================================================
70--- /dev/null 1970-01-01 00:00:00.000000000 +0000
71+++ elfutils-0.145/backends/mips_regs.c 2010-02-24 18:57:35.000000000 +0000
72@@ -0,0 +1,104 @@
73+/* Register names and numbers for MIPS DWARF.
74+ Copyright (C) 2006 Red Hat, Inc.
75+ This file is part of Red Hat elfutils.
76+
77+ Red Hat elfutils is free software; you can redistribute it and/or modify
78+ it under the terms of the GNU General Public License as published by the
79+ Free Software Foundation; version 2 of the License.
80+
81+ Red Hat elfutils is distributed in the hope that it will be useful, but
82+ WITHOUT ANY WARRANTY; without even the implied warranty of
83+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
84+ General Public License for more details.
85+
86+ You should have received a copy of the GNU General Public License along
87+ with Red Hat elfutils; if not, write to the Free Software Foundation,
88+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
89+
90+ Red Hat elfutils is an included package of the Open Invention Network.
91+ An included package of the Open Invention Network is a package for which
92+ Open Invention Network licensees cross-license their patents. No patent
93+ license is granted, either expressly or impliedly, by designation as an
94+ included package. Should you wish to participate in the Open Invention
95+ Network licensing program, please visit www.openinventionnetwork.com
96+ <http://www.openinventionnetwork.com>. */
97+
98+#ifdef HAVE_CONFIG_H
99+# include <config.h>
100+#endif
101+
102+#include <string.h>
103+#include <dwarf.h>
104+
105+#define BACKEND mips_
106+#include "libebl_CPU.h"
107+
108+ssize_t
109+mips_register_info (Ebl *ebl __attribute__((unused)),
110+ int regno, char *name, size_t namelen,
111+ const char **prefix, const char **setname,
112+ int *bits, int *type)
113+{
114+ if (name == NULL)
115+ return 66;
116+
117+ if (regno < 0 || regno > 65 || namelen < 4)
118+ return -1;
119+
120+ *prefix = "$";
121+
122+ if (regno < 32)
123+ {
124+ *setname = "integer";
125+ *type = DW_ATE_signed;
126+ *bits = 32;
127+ if (regno < 32 + 10)
128+ {
129+ name[0] = regno + '0';
130+ namelen = 1;
131+ }
132+ else
133+ {
134+ name[0] = (regno / 10) + '0';
135+ name[1] = (regno % 10) + '0';
136+ namelen = 2;
137+ }
138+ }
139+ else if (regno < 64)
140+ {
141+ *setname = "FPU";
142+ *type = DW_ATE_float;
143+ *bits = 32;
144+ name[0] = 'f';
145+ if (regno < 32 + 10)
146+ {
147+ name[1] = (regno - 32) + '0';
148+ namelen = 2;
149+ }
150+ else
151+ {
152+ name[1] = (regno - 32) / 10 + '0';
153+ name[2] = (regno - 32) % 10 + '0';
154+ namelen = 3;
155+ }
156+ }
157+ else if (regno == 64)
158+ {
159+ *type = DW_ATE_signed;
160+ *bits = 32;
161+ name[0] = 'h';
162+ name[1] = 'i';
163+ namelen = 2;
164+ }
165+ else
166+ {
167+ *type = DW_ATE_signed;
168+ *bits = 32;
169+ name[0] = 'l';
170+ name[1] = 'o';
171+ namelen = 2;
172+ }
173+
174+ name[namelen++] = '\0';
175+ return namelen;
176+}
177Index: elfutils-0.145/backends/mips_reloc.def
178===================================================================
179--- /dev/null 1970-01-01 00:00:00.000000000 +0000
180+++ elfutils-0.145/backends/mips_reloc.def 2010-02-24 18:57:35.000000000 +0000
181@@ -0,0 +1,79 @@
182+/* List the relocation types for mips. -*- C -*-
183+ Copyright (C) 2006 Red Hat, Inc.
184+ This file is part of Red Hat elfutils.
185+
186+ Red Hat elfutils is free software; you can redistribute it and/or modify
187+ it under the terms of the GNU General Public License as published by the
188+ Free Software Foundation; version 2 of the License.
189+
190+ Red Hat elfutils is distributed in the hope that it will be useful, but
191+ WITHOUT ANY WARRANTY; without even the implied warranty of
192+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
193+ General Public License for more details.
194+
195+ You should have received a copy of the GNU General Public License along
196+ with Red Hat elfutils; if not, write to the Free Software Foundation,
197+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
198+
199+ Red Hat elfutils is an included package of the Open Invention Network.
200+ An included package of the Open Invention Network is a package for which
201+ Open Invention Network licensees cross-license their patents. No patent
202+ license is granted, either expressly or impliedly, by designation as an
203+ included package. Should you wish to participate in the Open Invention
204+ Network licensing program, please visit www.openinventionnetwork.com
205+ <http://www.openinventionnetwork.com>. */
206+
207+/* NAME, REL|EXEC|DYN */
208+
209+RELOC_TYPE (NONE, 0)
210+RELOC_TYPE (16, 0)
211+RELOC_TYPE (32, 0)
212+RELOC_TYPE (REL32, 0)
213+RELOC_TYPE (26, 0)
214+RELOC_TYPE (HI16, 0)
215+RELOC_TYPE (LO16, 0)
216+RELOC_TYPE (GPREL16, 0)
217+RELOC_TYPE (LITERAL, 0)
218+RELOC_TYPE (GOT16, 0)
219+RELOC_TYPE (PC16, 0)
220+RELOC_TYPE (CALL16, 0)
221+RELOC_TYPE (GPREL32, 0)
222+
223+RELOC_TYPE (SHIFT5, 0)
224+RELOC_TYPE (SHIFT6, 0)
225+RELOC_TYPE (64, 0)
226+RELOC_TYPE (GOT_DISP, 0)
227+RELOC_TYPE (GOT_PAGE, 0)
228+RELOC_TYPE (GOT_OFST, 0)
229+RELOC_TYPE (GOT_HI16, 0)
230+RELOC_TYPE (GOT_LO16, 0)
231+RELOC_TYPE (SUB, 0)
232+RELOC_TYPE (INSERT_A, 0)
233+RELOC_TYPE (INSERT_B, 0)
234+RELOC_TYPE (DELETE, 0)
235+RELOC_TYPE (HIGHER, 0)
236+RELOC_TYPE (HIGHEST, 0)
237+RELOC_TYPE (CALL_HI16, 0)
238+RELOC_TYPE (CALL_LO16, 0)
239+RELOC_TYPE (SCN_DISP, 0)
240+RELOC_TYPE (REL16, 0)
241+RELOC_TYPE (ADD_IMMEDIATE, 0)
242+RELOC_TYPE (PJUMP, 0)
243+RELOC_TYPE (RELGOT, 0)
244+RELOC_TYPE (JALR, 0)
245+RELOC_TYPE (TLS_DTPMOD32, 0)
246+RELOC_TYPE (TLS_DTPREL32, 0)
247+RELOC_TYPE (TLS_DTPMOD64, 0)
248+RELOC_TYPE (TLS_DTPREL64, 0)
249+RELOC_TYPE (TLS_GD, 0)
250+RELOC_TYPE (TLS_LDM, 0)
251+RELOC_TYPE (TLS_DTPREL_HI16, 0)
252+RELOC_TYPE (TLS_DTPREL_LO16, 0)
253+RELOC_TYPE (TLS_GOTTPREL, 0)
254+RELOC_TYPE (TLS_TPREL32, 0)
255+RELOC_TYPE (TLS_TPREL64, 0)
256+RELOC_TYPE (TLS_TPREL_HI16, 0)
257+RELOC_TYPE (TLS_TPREL_LO16, 0)
258+
259+#define NO_COPY_RELOC 1
260+#define NO_RELATIVE_RELOC 1
261Index: elfutils-0.145/backends/mips_retval.c
262===================================================================
263--- /dev/null 1970-01-01 00:00:00.000000000 +0000
264+++ elfutils-0.145/backends/mips_retval.c 2010-02-24 18:57:35.000000000 +0000
265@@ -0,0 +1,321 @@
266+/* Function return value location for Linux/mips ABI.
267+ Copyright (C) 2005 Red Hat, Inc.
268+ This file is part of Red Hat elfutils.
269+
270+ Red Hat elfutils is free software; you can redistribute it and/or modify
271+ it under the terms of the GNU General Public License as published by the
272+ Free Software Foundation; version 2 of the License.
273+
274+ Red Hat elfutils is distributed in the hope that it will be useful, but
275+ WITHOUT ANY WARRANTY; without even the implied warranty of
276+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
277+ General Public License for more details.
278+
279+ You should have received a copy of the GNU General Public License along
280+ with Red Hat elfutils; if not, write to the Free Software Foundation,
281+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
282+
283+ Red Hat elfutils is an included package of the Open Invention Network.
284+ An included package of the Open Invention Network is a package for which
285+ Open Invention Network licensees cross-license their patents. No patent
286+ license is granted, either expressly or impliedly, by designation as an
287+ included package. Should you wish to participate in the Open Invention
288+ Network licensing program, please visit www.openinventionnetwork.com
289+ <http://www.openinventionnetwork.com>. */
290+
291+#ifdef HAVE_CONFIG_H
292+# include <config.h>
293+#endif
294+
295+#include <string.h>
296+#include <assert.h>
297+#include <dwarf.h>
298+#include <elf.h>
299+
300+#include "../libebl/libeblP.h"
301+#include "../libdw/libdwP.h"
302+
303+#define BACKEND mips_
304+#include "libebl_CPU.h"
305+
306+/* The ABI of the file. Also see EF_MIPS_ABI2 above. */
307+#define EF_MIPS_ABI 0x0000F000
308+
309+/* The original o32 abi. */
310+#define E_MIPS_ABI_O32 0x00001000
311+
312+/* O32 extended to work on 64 bit architectures */
313+#define E_MIPS_ABI_O64 0x00002000
314+
315+/* EABI in 32 bit mode */
316+#define E_MIPS_ABI_EABI32 0x00003000
317+
318+/* EABI in 64 bit mode */
319+#define E_MIPS_ABI_EABI64 0x00004000
320+
321+/* All the possible MIPS ABIs. */
322+enum mips_abi
323+ {
324+ MIPS_ABI_UNKNOWN = 0,
325+ MIPS_ABI_N32,
326+ MIPS_ABI_O32,
327+ MIPS_ABI_N64,
328+ MIPS_ABI_O64,
329+ MIPS_ABI_EABI32,
330+ MIPS_ABI_EABI64,
331+ MIPS_ABI_LAST
332+ };
333+
334+/* Find the mips ABI of the current file */
335+enum mips_abi find_mips_abi(Elf *elf)
336+{
337+ GElf_Ehdr ehdr_mem;
338+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem);
339+
340+ if (ehdr == NULL)
341+ return MIPS_ABI_LAST;
342+
343+ GElf_Word elf_flags = ehdr->e_flags;
344+
345+ /* Check elf_flags to see if it specifies the ABI being used. */
346+ switch ((elf_flags & EF_MIPS_ABI))
347+ {
348+ case E_MIPS_ABI_O32:
349+ return MIPS_ABI_O32;
350+ case E_MIPS_ABI_O64:
351+ return MIPS_ABI_O64;
352+ case E_MIPS_ABI_EABI32:
353+ return MIPS_ABI_EABI32;
354+ case E_MIPS_ABI_EABI64:
355+ return MIPS_ABI_EABI64;
356+ default:
357+ if ((elf_flags & EF_MIPS_ABI2))
358+ return MIPS_ABI_N32;
359+ }
360+
361+ /* GCC creates a pseudo-section whose name describes the ABI. */
362+ size_t shstrndx;
363+ if (elf_getshdrstrndx (elf, &shstrndx) < 0)
364+ return MIPS_ABI_LAST;
365+
366+ const char *name;
367+ Elf_Scn *scn = NULL;
368+ while ((scn = elf_nextscn (elf, scn)) != NULL)
369+ {
370+ GElf_Shdr shdr_mem;
371+ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
372+ if (shdr == NULL)
373+ return MIPS_ABI_LAST;
374+
375+ name = elf_strptr (elf, shstrndx, shdr->sh_name) ?: "";
376+ if (strncmp (name, ".mdebug.", 8) != 0)
377+ continue;
378+
379+ if (strcmp (name, ".mdebug.abi32") == 0)
380+ return MIPS_ABI_O32;
381+ else if (strcmp (name, ".mdebug.abiN32") == 0)
382+ return MIPS_ABI_N32;
383+ else if (strcmp (name, ".mdebug.abi64") == 0)
384+ return MIPS_ABI_N64;
385+ else if (strcmp (name, ".mdebug.abiO64") == 0)
386+ return MIPS_ABI_O64;
387+ else if (strcmp (name, ".mdebug.eabi32") == 0)
388+ return MIPS_ABI_EABI32;
389+ else if (strcmp (name, ".mdebug.eabi64") == 0)
390+ return MIPS_ABI_EABI64;
391+ else
392+ return MIPS_ABI_UNKNOWN;
393+ }
394+
395+ return MIPS_ABI_UNKNOWN;
396+}
397+
398+unsigned int
399+mips_abi_regsize (enum mips_abi abi)
400+{
401+ switch (abi)
402+ {
403+ case MIPS_ABI_EABI32:
404+ case MIPS_ABI_O32:
405+ return 4;
406+ case MIPS_ABI_N32:
407+ case MIPS_ABI_N64:
408+ case MIPS_ABI_O64:
409+ case MIPS_ABI_EABI64:
410+ return 8;
411+ case MIPS_ABI_UNKNOWN:
412+ case MIPS_ABI_LAST:
413+ default:
414+ return 0;
415+ }
416+}
417+
418+
419+/* $v0 or pair $v0, $v1 */
420+static const Dwarf_Op loc_intreg_o32[] =
421+ {
422+ { .atom = DW_OP_reg2 }, { .atom = DW_OP_piece, .number = 4 },
423+ { .atom = DW_OP_reg3 }, { .atom = DW_OP_piece, .number = 4 },
424+ };
425+
426+static const Dwarf_Op loc_intreg[] =
427+ {
428+ { .atom = DW_OP_reg2 }, { .atom = DW_OP_piece, .number = 8 },
429+ { .atom = DW_OP_reg3 }, { .atom = DW_OP_piece, .number = 8 },
430+ };
431+#define nloc_intreg 1
432+#define nloc_intregpair 4
433+
434+/* $f0 (float), or pair $f0, $f1 (double).
435+ * f2/f3 are used for COMPLEX (= 2 doubles) returns in Fortran */
436+static const Dwarf_Op loc_fpreg_o32[] =
437+ {
438+ { .atom = DW_OP_regx, .number = 32 }, { .atom = DW_OP_piece, .number = 4 },
439+ { .atom = DW_OP_regx, .number = 33 }, { .atom = DW_OP_piece, .number = 4 },
440+ { .atom = DW_OP_regx, .number = 34 }, { .atom = DW_OP_piece, .number = 4 },
441+ { .atom = DW_OP_regx, .number = 35 }, { .atom = DW_OP_piece, .number = 4 },
442+ };
443+
444+/* $f0, or pair $f0, $f2. */
445+static const Dwarf_Op loc_fpreg[] =
446+ {
447+ { .atom = DW_OP_regx, .number = 32 }, { .atom = DW_OP_piece, .number = 8 },
448+ { .atom = DW_OP_regx, .number = 34 }, { .atom = DW_OP_piece, .number = 8 },
449+ };
450+#define nloc_fpreg 1
451+#define nloc_fpregpair 4
452+#define nloc_fpregquad 8
453+
454+/* The return value is a structure and is actually stored in stack space
455+ passed in a hidden argument by the caller. But, the compiler
456+ helpfully returns the address of that space in $v0. */
457+static const Dwarf_Op loc_aggregate[] =
458+ {
459+ { .atom = DW_OP_breg2, .number = 0 }
460+ };
461+#define nloc_aggregate 1
462+
463+int
464+mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp)
465+{
466+ /* First find the ABI used by the elf object */
467+ enum mips_abi abi = find_mips_abi(functypedie->cu->dbg->elf);
468+
469+ /* Something went seriously wrong while trying to figure out the ABI */
470+ if (abi == MIPS_ABI_LAST)
471+ return -1;
472+
473+ /* We couldn't identify the ABI, but the file seems valid */
474+ if (abi == MIPS_ABI_UNKNOWN)
475+ return -2;
476+
477+ /* Can't handle EABI variants */
478+ if ((abi == MIPS_ABI_EABI32) || (abi == MIPS_ABI_EABI64))
479+ return -2;
480+
481+ unsigned int regsize = mips_abi_regsize (abi);
482+ if (!regsize)
483+ return -2;
484+
485+ /* Start with the function's type, and get the DW_AT_type attribute,
486+ which is the type of the return value. */
487+
488+ Dwarf_Attribute attr_mem;
489+ Dwarf_Attribute *attr = dwarf_attr_integrate (functypedie, DW_AT_type, &attr_mem);
490+ if (attr == NULL)
491+ /* The function has no return value, like a `void' function in C. */
492+ return 0;
493+
494+ Dwarf_Die die_mem;
495+ Dwarf_Die *typedie = dwarf_formref_die (attr, &die_mem);
496+ int tag = dwarf_tag (typedie);
497+
498+ /* Follow typedefs and qualifiers to get to the actual type. */
499+ while (tag == DW_TAG_typedef
500+ || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type
501+ || tag == DW_TAG_restrict_type || tag == DW_TAG_mutable_type)
502+ {
503+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem);
504+ typedie = dwarf_formref_die (attr, &die_mem);
505+ tag = dwarf_tag (typedie);
506+ }
507+
508+ switch (tag)
509+ {
510+ case -1:
511+ return -1;
512+
513+ case DW_TAG_subrange_type:
514+ if (! dwarf_hasattr_integrate (typedie, DW_AT_byte_size))
515+ {
516+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem);
517+ typedie = dwarf_formref_die (attr, &die_mem);
518+ tag = dwarf_tag (typedie);
519+ }
520+ /* Fall through. */
521+
522+ case DW_TAG_base_type:
523+ case DW_TAG_enumeration_type:
524+ case DW_TAG_pointer_type:
525+ case DW_TAG_ptr_to_member_type:
526+ {
527+ Dwarf_Word size;
528+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size,
529+ &attr_mem), &size) != 0)
530+ {
531+ if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type)
532+ size = regsize;
533+ else
534+ return -1;
535+ }
536+ if (tag == DW_TAG_base_type)
537+ {
538+ Dwarf_Word encoding;
539+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding,
540+ &attr_mem), &encoding) != 0)
541+ return -1;
542+
543+#define ABI_LOC(loc, regsize) ((regsize) == 4 ? (loc ## _o32) : (loc))
544+
545+ if (encoding == DW_ATE_float)
546+ {
547+ *locp = ABI_LOC(loc_fpreg, regsize);
548+ if (size <= regsize)
549+ return nloc_fpreg;
550+
551+ if (size <= 2*regsize)
552+ return nloc_fpregpair;
553+
554+ if (size <= 4*regsize && abi == MIPS_ABI_O32)
555+ return nloc_fpregquad;
556+
557+ goto aggregate;
558+ }
559+ }
560+ *locp = ABI_LOC(loc_intreg, regsize);
561+ if (size <= regsize)
562+ return nloc_intreg;
563+ if (size <= 2*regsize)
564+ return nloc_intregpair;
565+
566+ /* Else fall through. Shouldn't happen though (at least with gcc) */
567+ }
568+
569+ case DW_TAG_structure_type:
570+ case DW_TAG_class_type:
571+ case DW_TAG_union_type:
572+ case DW_TAG_array_type:
573+ aggregate:
574+ /* XXX TODO: Can't handle structure return with other ABI's yet :-/ */
575+ if ((abi != MIPS_ABI_O32) && (abi != MIPS_ABI_O64))
576+ return -2;
577+
578+ *locp = loc_aggregate;
579+ return nloc_aggregate;
580+ }
581+
582+ /* XXX We don't have a good way to return specific errors from ebl calls.
583+ This value means we do not understand the type, but it is well-formed
584+ DWARF and might be valid. */
585+ return -2;
586+}
587Index: elfutils-0.145/backends/mips_symbol.c
588===================================================================
589--- /dev/null 1970-01-01 00:00:00.000000000 +0000
590+++ elfutils-0.145/backends/mips_symbol.c 2010-02-24 18:57:35.000000000 +0000
591@@ -0,0 +1,52 @@
592+/* MIPS specific symbolic name handling.
593+ Copyright (C) 2002, 2003, 2005 Red Hat, Inc.
594+ This file is part of Red Hat elfutils.
595+ Written by Jakub Jelinek <jakub@redhat.com>, 2002.
596+
597+ Red Hat elfutils is free software; you can redistribute it and/or modify
598+ it under the terms of the GNU General Public License as published by the
599+ Free Software Foundation; version 2 of the License.
600+
601+ Red Hat elfutils is distributed in the hope that it will be useful, but
602+ WITHOUT ANY WARRANTY; without even the implied warranty of
603+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
604+ General Public License for more details.
605+
606+ You should have received a copy of the GNU General Public License along
607+ with Red Hat elfutils; if not, write to the Free Software Foundation,
608+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
609+
610+ Red Hat elfutils is an included package of the Open Invention Network.
611+ An included package of the Open Invention Network is a package for which
612+ Open Invention Network licensees cross-license their patents. No patent
613+ license is granted, either expressly or impliedly, by designation as an
614+ included package. Should you wish to participate in the Open Invention
615+ Network licensing program, please visit www.openinventionnetwork.com
616+ <http://www.openinventionnetwork.com>. */
617+
618+#ifdef HAVE_CONFIG_H
619+# include <config.h>
620+#endif
621+
622+#include <elf.h>
623+#include <stddef.h>
624+
625+#define BACKEND mips_
626+#include "libebl_CPU.h"
627+
628+/* Check for the simple reloc types. */
629+Elf_Type
630+mips_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type)
631+{
632+ switch (type)
633+ {
634+ case R_MIPS_16:
635+ return ELF_T_HALF;
636+ case R_MIPS_32:
637+ return ELF_T_WORD;
638+ case R_MIPS_64:
639+ return ELF_T_XWORD;
640+ default:
641+ return ELF_T_NUM;
642+ }
643+}
644Index: elfutils-0.145/libebl/eblopenbackend.c
645===================================================================
646--- elfutils-0.145.orig/libebl/eblopenbackend.c 2010-02-24 18:55:51.000000000 +0000
647+++ elfutils-0.145/libebl/eblopenbackend.c 2010-02-24 18:57:35.000000000 +0000
648@@ -91,6 +91,8 @@
649 { "sparc", "elf_sparc", "sparc", 5, EM_SPARC, 0, 0 },
650 { "sparc", "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 },
651 { "s390", "ebl_s390", "s390", 4, EM_S390, 0, 0 },
652+ { "mips", "elf_mips", "mips", 4, EM_MIPS, 0, 0 },
653+ { "mips", "elf_mipsel", "mipsel", 4, EM_MIPS_RS3_LE, 0, 0 },
654
655 { "m32", "elf_m32", "m32", 3, EM_M32, 0, 0 },
656 { "m68k", "elf_m68k", "m68k", 4, EM_68K, 0, 0 },
657Index: elfutils-0.145/backends/common-reloc.c
658===================================================================
659--- elfutils-0.145.orig/backends/common-reloc.c 2010-02-24 18:55:51.000000000 +0000
660+++ elfutils-0.145/backends/common-reloc.c 2010-02-24 18:57:35.000000000 +0000
661@@ -109,11 +109,13 @@
662 }
663
664
665+#ifndef NO_COPY_RELOC
666 bool
667 EBLHOOK(copy_reloc_p) (int reloc)
668 {
669 return reloc == R_TYPE (COPY);
670 }
671+#endif
672
673 bool
674 EBLHOOK(none_reloc_p) (int reloc)
675@@ -135,7 +137,9 @@
676 ebl->reloc_type_name = EBLHOOK(reloc_type_name);
677 ebl->reloc_type_check = EBLHOOK(reloc_type_check);
678 ebl->reloc_valid_use = EBLHOOK(reloc_valid_use);
679+#ifndef NO_COPY_RELOC
680 ebl->copy_reloc_p = EBLHOOK(copy_reloc_p);
681+#endif
682 ebl->none_reloc_p = EBLHOOK(none_reloc_p);
683 #ifndef NO_RELATIVE_RELOC
684 ebl->relative_reloc_p = EBLHOOK(relative_reloc_p);
685Index: elfutils-0.145/backends/Makefile.am
686===================================================================
687--- elfutils-0.145.orig/backends/Makefile.am 2010-02-24 18:57:26.000000000 +0000
688+++ elfutils-0.145/backends/Makefile.am 2010-02-24 18:57:57.000000000 +0000
689@@ -29,11 +29,11 @@
690 -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw
691
692
693-modules = i386 sh x86_64 ia64 alpha arm sparc ppc ppc64 s390 parisc
694+modules = i386 sh x86_64 ia64 alpha arm sparc ppc ppc64 s390 parisc mips
695 libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \
696 libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \
697 libebl_sparc_pic.a libebl_ppc_pic.a libebl_ppc64_pic.a \
698- libebl_s390_pic.a libebl_parisc_pic.a
699+ libebl_s390_pic.a libebl_parisc_pic.a libebl_mips_pic.a
700 noinst_LIBRARIES = $(libebl_pic)
701 noinst_DATA = $(libebl_pic:_pic.a=.so)
702
703@@ -99,6 +99,10 @@
704 libebl_parisc_pic_a_SOURCES = $(parisc_SRCS)
705 am_libebl_parisc_pic_a_OBJECTS = $(parisc_SRCS:.c=.os)
706
707+mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c
708+libebl_mips_pic_a_SOURCES = $(mips_SRCS)
709+am_libebl_mips_pic_a_OBJECTS = $(mips_SRCS:.c=.os)
710+
711 libebl_%.so libebl_%.map: libebl_%_pic.a $(libelf) $(libdw)
712 @rm -f $(@:.so=.map)
713 echo 'ELFUTILS_$(PACKAGE_VERSION) { global: $*_init; local: *; };' \
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/nm-Fix-size-passed-to-snprintf-for-invalid-sh_name-case.patch b/meta/recipes-devtools/elfutils/elfutils-0.148/nm-Fix-size-passed-to-snprintf-for-invalid-sh_name-case.patch
deleted file mode 100644
index 2b5dad368a..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/nm-Fix-size-passed-to-snprintf-for-invalid-sh_name-case.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1Upstream-Status: Backport
2
3nm: Fix size passed to snprintf for invalid sh_name case.
4native build failed as following on Fedora18:
5nm.c: In function 'show_symbols_sysv':
6nm.c:756:27: error: argument to 'sizeof' in 'snprintf' call is the same expression as the destination; did you mean to provide an explicit length? [-Werror=sizeof-pointer-memaccess]
7 snprintf (name, sizeof name, "[invalid sh_name %#" PRIx32 "]",
8 ^
9
10The original commit is http://git.fedorahosted.org/cgit/elfutils.git/commit/src/nm.c?id=57bd66cabf6e6b9ecf622cdbf350804897a8df58
11
12Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
13
14--- elfutils-0.148/src/nm.c.org 2013-03-11 22:36:11.000000000 -0500
15+++ elfutils-0.148/src/nm.c 2013-03-11 22:46:09.000000000 -0500
16@@ -752,8 +752,9 @@
17 gelf_getshdr (scn, &shdr_mem)->sh_name);
18 if (unlikely (name == NULL))
19 {
20- name = alloca (sizeof "[invalid sh_name 0x12345678]");
21- snprintf (name, sizeof name, "[invalid sh_name %#" PRIx32 "]",
22+ const size_t bufsz = sizeof "[invalid sh_name 0x12345678]";
23+ name = alloca (bufsz);
24+ snprintf (name, bufsz, "[invalid sh_name %#" PRIx32 "]",
25 gelf_getshdr (scn, &shdr_mem)->sh_name);
26 }
27 scnnames[elf_ndxscn (scn)] = name;
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/redhat-portability.diff b/meta/recipes-devtools/elfutils/elfutils-0.148/redhat-portability.diff
deleted file mode 100644
index b8a912c412..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/redhat-portability.diff
+++ /dev/null
@@ -1,756 +0,0 @@
1Upstream-Status: Backport
2
3Index: elfutils-0.148/backends/ChangeLog
4===================================================================
5--- elfutils-0.148.orig/backends/ChangeLog 2010-04-13 20:08:02.000000000 +0000
6+++ elfutils-0.148/backends/ChangeLog 2010-07-03 13:04:07.000000000 +0000
7@@ -106,6 +106,10 @@
8 * ppc_attrs.c (ppc_check_object_attribute): Handle tag
9 GNU_Power_ABI_Struct_Return.
10
11+2009-01-23 Roland McGrath <roland@redhat.com>
12+
13+ * Makefile.am (libebl_%.so): Use $(LD_AS_NEEDED).
14+
15 2008-10-04 Ulrich Drepper <drepper@redhat.com>
16
17 * i386_reloc.def: Fix entries for TLS_GOTDESC, TLS_DESC_CALL, and
18@@ -433,6 +437,11 @@
19 * sparc_init.c: Likewise.
20 * x86_64_init.c: Likewise.
21
22+2005-11-22 Roland McGrath <roland@redhat.com>
23+
24+ * Makefile.am (LD_AS_NEEDED): New variable, substituted by configure.
25+ (libebl_%.so rule): Use it in place of -Wl,--as-needed.
26+
27 2005-11-19 Roland McGrath <roland@redhat.com>
28
29 * ppc64_reloc.def: REL30 -> ADDR30.
30@@ -455,6 +464,9 @@
31 * Makefile.am (uninstall): Don't try to remove $(pkgincludedir).
32 (CLEANFILES): Add libebl_$(m).so.
33
34+ * Makefile.am (WEXTRA): New variable, substituted by configure.
35+ (AM_CFLAGS): Use it in place of -Wextra.
36+
37 * ppc_reloc.def: Update bits per Alan Modra <amodra@bigpond.net.au>.
38 * ppc64_reloc.def: Likewise.
39
40Index: elfutils-0.148/backends/Makefile.am
41===================================================================
42--- elfutils-0.148.orig/backends/Makefile.am 2010-04-13 20:08:02.000000000 +0000
43+++ elfutils-0.148/backends/Makefile.am 2010-07-03 13:04:07.000000000 +0000
44@@ -103,7 +103,7 @@
45 $(LINK) -shared -o $(@:.map=.so) \
46 -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \
47 -Wl,--version-script,$(@:.so=.map) \
48- -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw) $(libmudflap)
49+ -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw) $(libmudflap)
50 $(textrel_check)
51
52 libebl_i386.so: $(cpu_i386)
53Index: elfutils-0.148/ChangeLog
54===================================================================
55--- elfutils-0.148.orig/ChangeLog 2010-04-21 14:26:40.000000000 +0000
56+++ elfutils-0.148/ChangeLog 2010-07-03 13:04:07.000000000 +0000
57@@ -2,6 +2,10 @@
58
59 * configure.ac (LOCALEDIR, DATADIRNAME): Removed.
60
61+2009-11-22 Roland McGrath <roland@redhat.com>
62+
63+ * configure.ac: Use sed and expr instead of modern bash extensions.
64+
65 2009-09-21 Ulrich Drepper <drepper@redhat.com>
66
67 * configure.ac: Update for more modern autoconf.
68@@ -10,6 +14,10 @@
69
70 * configure.ac (zip_LIBS): Check for liblzma too.
71
72+2009-08-17 Roland McGrath <roland@redhat.com>
73+
74+ * configure.ac: Check for -fgnu89-inline; add it to WEXTRA if it works.
75+
76 2009-04-19 Roland McGrath <roland@redhat.com>
77
78 * configure.ac (eu_version): Round down here, not in version.h macros.
79@@ -21,6 +29,8 @@
80
81 2009-01-23 Roland McGrath <roland@redhat.com>
82
83+ * configure.ac: Check for __builtin_popcount.
84+
85 * configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3.
86
87 * configure.ac (__thread check): Use AC_LINK_IFELSE, in case of
88@@ -101,6 +111,10 @@
89 * configure.ac: Add dummy automake conditional to get dependencies
90 for non-generic linker right. See src/Makefile.am.
91
92+2005-11-22 Roland McGrath <roland@redhat.com>
93+
94+ * configure.ac: Check for --as-needed linker option.
95+
96 2005-11-18 Roland McGrath <roland@redhat.com>
97
98 * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable.
99@@ -148,6 +162,17 @@
100 * Makefile.am (all_SUBDIRS): Add libdwfl.
101 * configure.ac: Write libdwfl/Makefile.
102
103+2005-05-31 Roland McGrath <roland@redhat.com>
104+
105+ * configure.ac (WEXTRA): Check for -Wextra and set this substitution.
106+
107+ * configure.ac: Check for struct stat st_?tim members.
108+ * src/strip.c (process_file): Use st_?time if st_?tim are not there.
109+
110+ * configure.ac: Check for futimes function.
111+ * src/strip.c (handle_elf) [! HAVE_FUTIMES]: Use utimes instead.
112+ (handle_ar) [! HAVE_FUTIMES]: Likewise.
113+
114 2005-05-19 Roland McGrath <roland@redhat.com>
115
116 * configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros.
117Index: elfutils-0.148/config/eu.am
118===================================================================
119--- elfutils-0.148.orig/config/eu.am 2010-04-21 14:26:40.000000000 +0000
120+++ elfutils-0.148/config/eu.am 2010-07-03 13:04:07.000000000 +0000
121@@ -25,11 +25,14 @@
122 ## <http://www.openinventionnetwork.com>.
123 ##
124
125+WEXTRA = @WEXTRA@
126+LD_AS_NEEDED = @LD_AS_NEEDED@
127+
128 DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"'
129 INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
130 AM_CFLAGS = -std=gnu99 -Wall -Wshadow \
131 $(if $($(*F)_no_Werror),,-Werror) \
132- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
133+ $(if $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) \
134 $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) \
135 $($(*F)_CFLAGS)
136
137Index: elfutils-0.148/config.h.in
138===================================================================
139--- elfutils-0.148.orig/config.h.in 2010-06-28 19:07:37.000000000 +0000
140+++ elfutils-0.148/config.h.in 2010-07-03 13:04:07.000000000 +0000
141@@ -1,5 +1,8 @@
142 /* config.h.in. Generated from configure.ac by autoheader. */
143
144+/* Have __builtin_popcount. */
145+#undef HAVE_BUILTIN_POPCOUNT
146+
147 /* $libdir subdirectory containing libebl modules. */
148 #undef LIBEBL_SUBDIR
149
150@@ -55,4 +58,7 @@
151 /* Define for large files, on AIX-style hosts. */
152 #undef _LARGE_FILES
153
154+/* Stubbed out if missing compiler support. */
155+#undef __thread
156+
157 #include <eu-config.h>
158Index: elfutils-0.148/configure.ac
159===================================================================
160--- elfutils-0.148.orig/configure.ac 2010-06-28 19:07:26.000000000 +0000
161+++ elfutils-0.148/configure.ac 2010-07-03 13:04:07.000000000 +0000
162@@ -73,6 +73,54 @@
163 AS_IF([test "x$ac_cv_c99" != xyes],
164 AC_MSG_ERROR([gcc with C99 support required]))
165
166+AC_CACHE_CHECK([for -Wextra option to $CC], ac_cv_cc_wextra, [dnl
167+old_CFLAGS="$CFLAGS"
168+CFLAGS="$CFLAGS -Wextra"
169+AC_COMPILE_IFELSE([void foo (void) { }],
170+ ac_cv_cc_wextra=yes, ac_cv_cc_wextra=no)
171+CFLAGS="$old_CFLAGS"])
172+AC_SUBST(WEXTRA)
173+AS_IF([test "x$ac_cv_cc_wextra" = xyes], [WEXTRA=-Wextra], [WEXTRA=-W])
174+
175+AC_CACHE_CHECK([for -fgnu89-inline option to $CC], ac_cv_cc_gnu89_inline, [dnl
176+old_CFLAGS="$CFLAGS"
177+CFLAGS="$CFLAGS -fgnu89-inline -Werror"
178+AC_COMPILE_IFELSE([
179+void foo (void)
180+{
181+ inline void bar (void) {}
182+ bar ();
183+}
184+extern inline void baz (void) {}
185+], ac_cv_cc_gnu89_inline=yes, ac_cv_cc_gnu89_inline=no)
186+CFLAGS="$old_CFLAGS"])
187+AS_IF([test "x$ac_cv_cc_gnu89_inline" = xyes],
188+ [WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline"])
189+
190+AC_CACHE_CHECK([for --as-needed linker option],
191+ ac_cv_as_needed, [dnl
192+cat > conftest.c <<EOF
193+int main (void) { return 0; }
194+EOF
195+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
196+ -fPIC -shared -o conftest.so conftest.c
197+ -Wl,--as-needed 1>&AS_MESSAGE_LOG_FD])
198+then
199+ ac_cv_as_needed=yes
200+else
201+ ac_cv_as_needed=no
202+fi
203+rm -f conftest*])
204+AS_IF([test "x$ac_cv_as_needed" = xyes],
205+ [LD_AS_NEEDED=-Wl,--as-needed], [LD_AS_NEEDED=])
206+AC_SUBST(LD_AS_NEEDED)
207+
208+AC_CACHE_CHECK([for __builtin_popcount], ac_cv_popcount, [dnl
209+AC_LINK_IFELSE([AC_LANG_PROGRAM([], [[exit (__builtin_popcount (127));]])],
210+ ac_cv_popcount=yes, ac_cv_popcount=no)])
211+AS_IF([test "x$ac_cv_popcount" = xyes],
212+ [AC_DEFINE([HAVE_BUILTIN_POPCOUNT], [1], [Have __builtin_popcount.])])
213+
214 AC_CACHE_CHECK([for __thread support], ac_cv_tls, [dnl
215 # Use the same flags that we use for our DSOs, so the test is representative.
216 # Some old compiler/linker/libc combinations fail some ways and not others.
217@@ -88,7 +136,10 @@
218 CFLAGS="$save_CFLAGS"
219 LDFLAGS="$save_LDFLAGS"])
220 AS_IF([test "x$ac_cv_tls" != xyes],
221- AC_MSG_ERROR([__thread support required]))
222+ [AS_IF([test "$use_locks" = yes],
223+ [AC_MSG_ERROR([--enable-thread-safety requires __thread support])],
224+ [AC_DEFINE([__thread], [/* empty: no multi-thread support */],
225+ [Stubbed out if missing compiler support.])])])
226
227 dnl This test must come as early as possible after the compiler configuration
228 dnl tests, because the choice of the file model can (in principle) affect
229@@ -251,7 +302,7 @@
230
231 # 1.234<whatever> -> 1234<whatever>
232 case "$PACKAGE_VERSION" in
233-[[0-9]].*) eu_version="${PACKAGE_VERSION/./}" ;;
234+[[0-9]].*) eu_version=`echo "$PACKAGE_VERSION" | sed 's@\.@@'` ;;
235 *) AC_MSG_ERROR([confused by version number '$PACKAGE_VERSION']) ;;
236 esac
237 case "$eu_version" in
238@@ -280,6 +331,6 @@
239 esac
240
241 # Round up to the next release API (x.y) version.
242-[eu_version=$[($eu_version + 999) / 1000]]
243+eu_version=`expr \( $eu_version + 999 \) / 1000`
244
245 AC_OUTPUT
246Index: elfutils-0.148/lib/ChangeLog
247===================================================================
248--- elfutils-0.148.orig/lib/ChangeLog 2010-06-28 19:05:56.000000000 +0000
249+++ elfutils-0.148/lib/ChangeLog 2010-07-03 13:04:07.000000000 +0000
250@@ -14,6 +14,9 @@
251
252 2009-01-23 Roland McGrath <roland@redhat.com>
253
254+ * eu-config.h [! HAVE_BUILTIN_POPCOUNT]
255+ (__builtin_popcount): New inline function.
256+
257 * eu-config.h: Add multiple inclusion protection.
258
259 2009-01-17 Ulrich Drepper <drepper@redhat.com>
260@@ -70,6 +73,11 @@
261 * Makefile.am (libeu_a_SOURCES): Add it.
262 * system.h: Declare crc32_file.
263
264+2005-02-07 Roland McGrath <roland@redhat.com>
265+
266+ * Makefile.am (WEXTRA): New variable, substituted by configure.
267+ (AM_CFLAGS): Use it in place of -Wextra.
268+
269 2005-04-30 Ulrich Drepper <drepper@redhat.com>
270
271 * Makefile.am: Use -ffunction-sections for xmalloc.c.
272Index: elfutils-0.148/lib/eu-config.h
273===================================================================
274--- elfutils-0.148.orig/lib/eu-config.h 2009-08-12 14:23:22.000000000 +0000
275+++ elfutils-0.148/lib/eu-config.h 2010-07-03 13:04:07.000000000 +0000
276@@ -182,6 +182,17 @@
277 /* This macro is used by the tests conditionalize for standalone building. */
278 #define ELFUTILS_HEADER(name) <lib##name.h>
279
280+#ifndef HAVE_BUILTIN_POPCOUNT
281+# define __builtin_popcount hakmem_popcount
282+static inline unsigned int __attribute__ ((unused))
283+hakmem_popcount (unsigned int x)
284+{
285+ /* HAKMEM 169 */
286+ unsigned int n = x - ((x >> 1) & 033333333333) - ((x >> 2) & 011111111111);
287+ return ((n + (n >> 3)) & 030707070707) % 63;
288+}
289+#endif /* HAVE_BUILTIN_POPCOUNT */
290+
291
292 #ifdef SHARED
293 # define OLD_VERSION(name, version) \
294Index: elfutils-0.148/libasm/ChangeLog
295===================================================================
296--- elfutils-0.148.orig/libasm/ChangeLog 2010-03-05 05:48:23.000000000 +0000
297+++ elfutils-0.148/libasm/ChangeLog 2010-07-03 13:04:07.000000000 +0000
298@@ -67,6 +67,11 @@
299 * asm_error.c: Add new error ASM_E_IOERROR.
300 * libasmP.h: Add ASM_E_IOERROR definition.
301
302+2005-05-31 Roland McGrath <roland@redhat.com>
303+
304+ * Makefile.am (WEXTRA): New variable, substituted by configure.
305+ (AM_CFLAGS): Use it in place of -Wextra.
306+
307 2005-02-15 Ulrich Drepper <drepper@redhat.com>
308
309 * Makefile.am (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
310Index: elfutils-0.148/libcpu/ChangeLog
311===================================================================
312--- elfutils-0.148.orig/libcpu/ChangeLog 2010-03-05 05:48:23.000000000 +0000
313+++ elfutils-0.148/libcpu/ChangeLog 2010-07-03 13:04:07.000000000 +0000
314@@ -9,6 +9,9 @@
315
316 2009-01-23 Roland McGrath <roland@redhat.com>
317
318+ * i386_disasm.c (i386_disasm): Add abort after assert-constant for old
319+ compilers that don't realize it's noreturn.
320+
321 * Makefile.am (i386_parse_CFLAGS): Use quotes around command
322 substitution that can produce leading whitespace.
323
324@@ -338,6 +341,11 @@
325 * defs/i386.doc: New file.
326 * defs/x86_64: New file.
327
328+2005-04-04 Roland McGrath <roland@redhat.com>
329+
330+ * Makefile.am (WEXTRA): New variable, substituted by configure.
331+ (AM_CFLAGS): Use it instead of -Wextra.
332+
333 2005-02-15 Ulrich Drepper <drepper@redhat.com>
334
335 * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
336Index: elfutils-0.148/libcpu/i386_disasm.c
337===================================================================
338--- elfutils-0.148.orig/libcpu/i386_disasm.c 2009-01-08 20:56:36.000000000 +0000
339+++ elfutils-0.148/libcpu/i386_disasm.c 2010-07-03 13:04:07.000000000 +0000
340@@ -791,6 +791,7 @@
341
342 default:
343 assert (! "INVALID not handled");
344+ abort ();
345 }
346 }
347 else
348Index: elfutils-0.148/libdw/ChangeLog
349===================================================================
350--- elfutils-0.148.orig/libdw/ChangeLog 2010-06-28 19:05:56.000000000 +0000
351+++ elfutils-0.148/libdw/ChangeLog 2010-07-03 13:04:07.000000000 +0000
352@@ -276,6 +276,10 @@
353
354 * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too.
355
356+2009-08-17 Roland McGrath <roland@redhat.com>
357+
358+ * libdw.h: Disable extern inlines for GCC 4.2.
359+
360 2009-08-10 Roland McGrath <roland@redhat.com>
361
362 * dwarf_getscopevar.c: Use dwarf_diename.
363@@ -1044,6 +1048,11 @@
364
365 2005-05-31 Roland McGrath <roland@redhat.com>
366
367+ * Makefile.am (WEXTRA): New variable, substituted by configure.
368+ (AM_CFLAGS): Use it in place of -Wextra.
369+
370+2005-05-31 Roland McGrath <roland@redhat.com>
371+
372 * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
373 formref offset.
374
375Index: elfutils-0.148/libdw/libdw.h
376===================================================================
377--- elfutils-0.148.orig/libdw/libdw.h 2010-06-28 19:05:56.000000000 +0000
378+++ elfutils-0.148/libdw/libdw.h 2010-07-03 13:04:07.000000000 +0000
379@@ -842,7 +842,7 @@
380
381
382 /* Inline optimizations. */
383-#ifdef __OPTIMIZE__
384+#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2)
385 /* Return attribute code of given attribute. */
386 __libdw_extern_inline unsigned int
387 dwarf_whatattr (Dwarf_Attribute *attr)
388Index: elfutils-0.148/libdwfl/ChangeLog
389===================================================================
390--- elfutils-0.148.orig/libdwfl/ChangeLog 2010-06-28 19:05:56.000000000 +0000
391+++ elfutils-0.148/libdwfl/ChangeLog 2010-07-03 13:04:07.000000000 +0000
392@@ -1265,6 +1265,11 @@
393
394 2005-07-21 Roland McGrath <roland@redhat.com>
395
396+ * Makefile.am (WEXTRA): New variable, substituted by configure.
397+ (AM_CFLAGS): Use it in place of -Wextra.
398+
399+2005-07-21 Roland McGrath <roland@redhat.com>
400+
401 * Makefile.am (noinst_HEADERS): Add loc2c.c.
402
403 * test2.c (main): Check sscanf result to quiet warning.
404Index: elfutils-0.148/libebl/ChangeLog
405===================================================================
406--- elfutils-0.148.orig/libebl/ChangeLog 2010-03-05 05:48:23.000000000 +0000
407+++ elfutils-0.148/libebl/ChangeLog 2010-07-03 13:04:07.000000000 +0000
408@@ -624,6 +624,11 @@
409 * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency
410 tracking works right.
411
412+2005-05-31 Roland McGrath <roland@redhat.com>
413+
414+ * Makefile.am (WEXTRA): New variable, substituted by configure.
415+ (AM_CFLAGS): Use it in place of -Wextra.
416+
417 2005-05-21 Ulrich Drepper <drepper@redhat.com>
418
419 * libebl_x86_64.map: Add x86_64_core_note.
420Index: elfutils-0.148/libelf/ChangeLog
421===================================================================
422--- elfutils-0.148.orig/libelf/ChangeLog 2010-06-14 21:17:20.000000000 +0000
423+++ elfutils-0.148/libelf/ChangeLog 2010-07-03 13:04:07.000000000 +0000
424@@ -657,6 +657,11 @@
425
426 * elf.h: Update from glibc.
427
428+2005-05-31 Roland McGrath <roland@redhat.com>
429+
430+ * Makefile.am (WEXTRA): New variable, substituted by configure.
431+ (AM_CFLAGS): Use it in place of -Wextra.
432+
433 2005-05-08 Roland McGrath <roland@redhat.com>
434
435 * elf_begin.c (read_file) [_MUDFLAP]: Don't use mmap for now.
436Index: elfutils-0.148/libelf/common.h
437===================================================================
438--- elfutils-0.148.orig/libelf/common.h 2009-01-08 20:56:36.000000000 +0000
439+++ elfutils-0.148/libelf/common.h 2010-07-03 13:04:07.000000000 +0000
440@@ -160,7 +160,7 @@
441 (Var) = (sizeof (Var) == 1 \
442 ? (unsigned char) (Var) \
443 : (sizeof (Var) == 2 \
444- ? bswap_16 (Var) \
445+ ? (unsigned short int) bswap_16 (Var) \
446 : (sizeof (Var) == 4 \
447 ? bswap_32 (Var) \
448 : bswap_64 (Var))))
449@@ -169,7 +169,7 @@
450 (Dst) = (sizeof (Var) == 1 \
451 ? (unsigned char) (Var) \
452 : (sizeof (Var) == 2 \
453- ? bswap_16 (Var) \
454+ ? (unsigned short int) bswap_16 (Var) \
455 : (sizeof (Var) == 4 \
456 ? bswap_32 (Var) \
457 : bswap_64 (Var))))
458Index: elfutils-0.148/src/addr2line.c
459===================================================================
460--- elfutils-0.148.orig/src/addr2line.c 2010-05-28 14:38:30.000000000 +0000
461+++ elfutils-0.148/src/addr2line.c 2010-07-03 13:05:40.000000000 +0000
462@@ -447,10 +447,10 @@
463 bool parsed = false;
464 int i, j;
465 char *name = NULL;
466- if (sscanf (string, "(%m[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2
467+ if (sscanf (string, "(%a[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2
468 && string[i] == '\0')
469 parsed = adjust_to_section (name, &addr, dwfl);
470- switch (sscanf (string, "%m[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j))
471+ switch (sscanf (string, "%a[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j))
472 {
473 default:
474 break;
475Index: elfutils-0.148/src/ChangeLog
476===================================================================
477--- elfutils-0.148.orig/src/ChangeLog 2010-06-28 19:05:56.000000000 +0000
478+++ elfutils-0.148/src/ChangeLog 2010-07-03 13:04:08.000000000 +0000
479@@ -165,8 +165,16 @@
480 * readelf.c (attr_callback): Use print_block only when we don't use
481 print_ops.
482
483+2009-08-17 Roland McGrath <roland@redhat.com>
484+
485+ * ld.h: Disable extern inlines for GCC 4.2.
486+
487 2009-08-14 Roland McGrath <roland@redhat.com>
488
489+ * strings.c (read_block): Conditionalize posix_fadvise use
490+ on [POSIX_FADV_SEQUENTIAL].
491+ From Petr Salinger <Petr.Salinger@seznam.cz>.
492+
493 * ar.c (do_oper_extract): Use pathconf instead of statfs.
494
495 2009-08-01 Ulrich Drepper <drepper@redhat.com>
496@@ -330,6 +338,8 @@
497 * readelf.c (print_debug_frame_section): Use t instead of j formats
498 for ptrdiff_t OFFSET.
499
500+ * addr2line.c (handle_address): Use %a instead of %m for compatibility.
501+
502 2009-01-21 Ulrich Drepper <drepper@redhat.com>
503
504 * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
505@@ -513,6 +523,11 @@
506 that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really
507 is valid in RELRO.
508
509+2008-03-01 Roland McGrath <roland@redhat.com>
510+
511+ * readelf.c (dump_archive_index): Tweak portability hack
512+ to match [__GNUC__ < 4] too.
513+
514 2008-02-29 Roland McGrath <roland@redhat.com>
515
516 * readelf.c (print_attributes): Add a cast.
517@@ -764,6 +779,8 @@
518
519 * readelf.c (hex_dump): Fix rounding error in whitespace calculation.
520
521+ * Makefile.am (readelf_no_Werror): New variable.
522+
523 2007-10-15 Roland McGrath <roland@redhat.com>
524
525 * make-debug-archive.in: New file.
526@@ -1203,6 +1220,10 @@
527 * elflint.c (valid_e_machine): Add EM_ALPHA.
528 Reported by Christian Aichinger <Greek0@gmx.net>.
529
530+ * strings.c (map_file): Define POSIX_MADV_SEQUENTIAL to
531+ MADV_SEQUENTIAL if undefined. Don't call posix_madvise
532+ if neither is defined.
533+
534 2006-08-08 Ulrich Drepper <drepper@redhat.com>
535
536 * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
537@@ -1279,6 +1300,10 @@
538 * Makefile.am: Add hacks to create dependency files for non-generic
539 linker.
540
541+2006-04-05 Roland McGrath <roland@redhat.com>
542+
543+ * strings.c (MAP_POPULATE): Define to 0 if undefined.
544+
545 2006-06-12 Ulrich Drepper <drepper@redhat.com>
546
547 * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
548@@ -1627,6 +1652,11 @@
549 * readelf.c (print_debug_loc_section): Fix indentation for larger
550 address size.
551
552+2005-05-31 Roland McGrath <roland@redhat.com>
553+
554+ * Makefile.am (WEXTRA): New variable, substituted by configure.
555+ (AM_CFLAGS): Use it in place of -Wextra.
556+
557 2005-05-30 Roland McGrath <roland@redhat.com>
558
559 * readelf.c (print_debug_line_section): Print section offset of each
560Index: elfutils-0.148/src/findtextrel.c
561===================================================================
562--- elfutils-0.148.orig/src/findtextrel.c 2009-02-11 01:12:59.000000000 +0000
563+++ elfutils-0.148/src/findtextrel.c 2010-07-03 13:04:08.000000000 +0000
564@@ -490,7 +490,11 @@
565
566
567 static void
568-check_rel (size_t nsegments, struct segments segments[nsegments],
569+check_rel (size_t nsegments, struct segments segments[
570+#if __GNUC__ >= 4
571+ nsegments
572+#endif
573+ ],
574 GElf_Addr addr, Elf *elf, Elf_Scn *symscn, Dwarf *dw,
575 const char *fname, bool more_than_one, void **knownsrcs)
576 {
577Index: elfutils-0.148/src/ld.h
578===================================================================
579--- elfutils-0.148.orig/src/ld.h 2009-06-13 22:39:51.000000000 +0000
580+++ elfutils-0.148/src/ld.h 2010-07-03 13:04:08.000000000 +0000
581@@ -1122,6 +1122,7 @@
582
583 /* Checked whether the symbol is undefined and referenced from a DSO. */
584 extern bool linked_from_dso_p (struct scninfo *scninfo, size_t symidx);
585+#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2)
586 #ifdef __GNUC_STDC_INLINE__
587 __attribute__ ((__gnu_inline__))
588 #endif
589@@ -1139,5 +1140,6 @@
590
591 return sym->defined && sym->in_dso;
592 }
593+#endif /* Optimizing and not GCC 4.2. */
594
595 #endif /* ld.h */
596Index: elfutils-0.148/src/Makefile.am
597===================================================================
598--- elfutils-0.148.orig/src/Makefile.am 2010-03-05 05:48:23.000000000 +0000
599+++ elfutils-0.148/src/Makefile.am 2010-07-03 13:04:08.000000000 +0000
600@@ -99,6 +99,9 @@
601 # XXX While the file is not finished, don't warn about this
602 ldgeneric_no_Wunused = yes
603
604+# Buggy old compilers.
605+readelf_no_Werror = yes
606+
607 readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
608 nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
609 size_LDADD = $(libelf) $(libeu) $(libmudflap)
610
611Index: elfutils-0.148/src/readelf.c
612===================================================================
613--- elfutils-0.148.orig/src/readelf.c 2010-06-28 19:05:56.000000000 +0000
614+++ elfutils-0.148/src/readelf.c 2010-07-03 13:04:08.000000000 +0000
615@@ -7845,7 +7845,7 @@
616 if (unlikely (elf_rand (elf, as_off) == 0)
617 || unlikely ((subelf = elf_begin (-1, ELF_C_READ_MMAP, elf))
618 == NULL))
619-#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7)
620+#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7) || __GNUC__ < 4
621 while (1)
622 #endif
623 error (EXIT_FAILURE, 0,
624Index: elfutils-0.148/src/strings.c
625===================================================================
626--- elfutils-0.148.orig/src/strings.c 2009-02-11 01:12:59.000000000 +0000
627+++ elfutils-0.148/src/strings.c 2010-07-03 13:04:08.000000000 +0000
628@@ -51,6 +51,10 @@
629
630 #include <system.h>
631
632+#ifndef MAP_POPULATE
633+# define MAP_POPULATE 0
634+#endif
635+
636
637 /* Prototypes of local functions. */
638 static int read_fd (int fd, const char *fname, off64_t fdlen);
639@@ -491,8 +495,13 @@
640 fd, start_off);
641 if (mem != MAP_FAILED)
642 {
643+#if !defined POSIX_MADV_SEQUENTIAL && defined MADV_SEQUENTIAL
644+# define POSIX_MADV_SEQUENTIAL MADV_SEQUENTIAL
645+#endif
646+#ifdef POSIX_MADV_SEQUENTIAL
647 /* We will go through the mapping sequentially. */
648 (void) posix_madvise (mem, map_size, POSIX_MADV_SEQUENTIAL);
649+#endif
650 break;
651 }
652 if (errno != EINVAL && errno != ENOMEM)
653@@ -586,9 +595,11 @@
654 elfmap_off = from & ~(ps - 1);
655 elfmap_base = elfmap = map_file (fd, elfmap_off, fdlen, &elfmap_size);
656
657+#ifdef POSIX_FADV_SEQUENTIAL
658 if (unlikely (elfmap == MAP_FAILED))
659 /* Let the kernel know we are going to read everything in sequence. */
660 (void) posix_fadvise (fd, 0, 0, POSIX_FADV_SEQUENTIAL);
661+#endif
662 }
663
664 if (unlikely (elfmap == MAP_FAILED))
665Index: elfutils-0.148/src/strip.c
666===================================================================
667--- elfutils-0.148.orig/src/strip.c 2010-01-15 09:05:55.000000000 +0000
668+++ elfutils-0.148/src/strip.c 2010-07-03 13:04:08.000000000 +0000
669@@ -53,6 +53,12 @@
670 #include <libebl.h>
671 #include <system.h>
672
673+#ifdef HAVE_FUTIMES
674+# define FUTIMES(fd, fname, tvp) futimes (fd, tvp)
675+#else
676+# define FUTIMES(fd, fname, tvp) utimes (fname, tvp)
677+#endif
678+
679
680 /* Name and version of program. */
681 static void print_version (FILE *stream, struct argp_state *state);
682@@ -301,8 +307,18 @@
683
684 /* If we have to preserve the timestamp, we need it in the
685 format utimes() understands. */
686+#ifdef HAVE_STRUCT_STAT_ST_ATIM
687 TIMESPEC_TO_TIMEVAL (&tv[0], &pre_st.st_atim);
688+#else
689+ tv[0].tv_sec = pre_st.st_atime;
690+ tv[0].tv_usec = 0;
691+#endif
692+#ifdef HAVE_STRUCT_STAT_ST_MTIM
693 TIMESPEC_TO_TIMEVAL (&tv[1], &pre_st.st_mtim);
694+#else
695+ tv[1].tv_sec = pre_st.st_atime;
696+ tv[1].tv_usec = 0;
697+#endif
698 }
699
700 /* Open the file. */
701@@ -1747,7 +1763,7 @@
702 /* If requested, preserve the timestamp. */
703 if (tvp != NULL)
704 {
705- if (futimes (fd, tvp) != 0)
706+ if (FUTIMES (fd, output_fname, tvp) != 0)
707 {
708 error (0, errno, gettext ("\
709 cannot set access and modification date of '%s'"),
710@@ -1804,7 +1820,7 @@
711
712 if (tvp != NULL)
713 {
714- if (unlikely (futimes (fd, tvp) != 0))
715+ if (unlikely (FUTIMES (fd, fname, tvp) != 0))
716 {
717 error (0, errno, gettext ("\
718 cannot set access and modification date of '%s'"), fname);
719Index: elfutils-0.148/tests/ChangeLog
720===================================================================
721--- elfutils-0.148.orig/tests/ChangeLog 2010-06-28 19:05:56.000000000 +0000
722+++ elfutils-0.148/tests/ChangeLog 2010-07-03 13:04:08.000000000 +0000
723@@ -154,6 +154,8 @@
724
725 2008-01-21 Roland McGrath <roland@redhat.com>
726
727+ * line2addr.c (main): Revert last change.
728+
729 * testfile45.S.bz2: Add tests for cltq, cqto.
730 * testfile45.expect.bz2: Adjust.
731
732@@ -862,6 +864,11 @@
733 * Makefile.am (TESTS): Add run-elflint-test.sh.
734 (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2.
735
736+2005-05-31 Roland McGrath <roland@redhat.com>
737+
738+ * Makefile.am (WEXTRA): New variable, substituted by configure.
739+ (AM_CFLAGS): Use it in place of -Wextra.
740+
741 2005-05-24 Ulrich Drepper <drepper@redhat.com>
742
743 * get-files.c (main): Use correct format specifier.
744Index: elfutils-0.148/tests/line2addr.c
745===================================================================
746--- elfutils-0.148.orig/tests/line2addr.c 2009-01-08 20:56:37.000000000 +0000
747+++ elfutils-0.148/tests/line2addr.c 2010-07-03 13:04:08.000000000 +0000
748@@ -132,7 +132,7 @@
749 {
750 struct args a = { .arg = argv[cnt] };
751
752- switch (sscanf (a.arg, "%m[^:]:%d", &a.file, &a.line))
753+ switch (sscanf (a.arg, "%a[^:]:%d", &a.file, &a.line))
754 {
755 default:
756 case 0:
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/redhat-robustify.diff b/meta/recipes-devtools/elfutils/elfutils-0.148/redhat-robustify.diff
deleted file mode 100644
index cd398549df..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/redhat-robustify.diff
+++ /dev/null
@@ -1,1709 +0,0 @@
1Upstream-Status: Backport
2
3Index: elfutils-0.148/libelf/ChangeLog
4===================================================================
5--- elfutils-0.148.orig/libelf/ChangeLog 2010-07-03 13:07:10.000000000 +0000
6+++ elfutils-0.148/libelf/ChangeLog 2010-07-03 13:07:11.000000000 +0000
7@@ -649,10 +649,53 @@
8 If section content hasn't been read yet, do it before looking for the
9 block size. If no section data present, infer size of section header.
10
11+2005-05-14 Jakub Jelinek <jakub@redhat.com>
12+
13+ * libelfP.h (INVALID_NDX): Define.
14+ * gelf_getdyn.c (gelf_getdyn): Use it. Remove ndx < 0 test if any.
15+ * gelf_getlib.c (gelf_getlib): Likewise.
16+ * gelf_getmove.c (gelf_getmove): Likewise.
17+ * gelf_getrel.c (gelf_getrel): Likewise.
18+ * gelf_getrela.c (gelf_getrela): Likewise.
19+ * gelf_getsym.c (gelf_getsym): Likewise.
20+ * gelf_getsyminfo.c (gelf_getsyminfo): Likewise.
21+ * gelf_getsymshndx.c (gelf_getsymshndx): Likewise.
22+ * gelf_getversym.c (gelf_getversym): Likewise.
23+ * gelf_update_dyn.c (gelf_update_dyn): Likewise.
24+ * gelf_update_lib.c (gelf_update_lib): Likewise.
25+ * gelf_update_move.c (gelf_update_move): Likewise.
26+ * gelf_update_rel.c (gelf_update_rel): Likewise.
27+ * gelf_update_rela.c (gelf_update_rela): Likewise.
28+ * gelf_update_sym.c (gelf_update_sym): Likewise.
29+ * gelf_update_syminfo.c (gelf_update_syminfo): Likewise.
30+ * gelf_update_symshndx.c (gelf_update_symshndx): Likewise.
31+ * gelf_update_versym.c (gelf_update_versym): Likewise.
32+ * elf_newscn.c (elf_newscn): Check for overflow.
33+ * elf32_updatefile.c (__elfw2(LIBELFBITS,updatemmap)): Likewise.
34+ (__elfw2(LIBELFBITS,updatefile)): Likewise.
35+ * elf_begin.c (file_read_elf): Likewise.
36+ * elf32_newphdr.c (elfw2(LIBELFBITS,newphdr)): Likewise.
37+ * elf_getarsym.c (elf_getarsym): Likewise.
38+ * elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)): Likewise.
39 2005-05-11 Ulrich Drepper <drepper@redhat.com>
40
41 * elf.h: Update again.
42
43+2005-05-17 Jakub Jelinek <jakub@redhat.com>
44+
45+ * elf32_getphdr.c (elfw2(LIBELFBITS,getphdr)): Check if program header
46+ table fits into object's bounds.
47+ * elf_getshstrndx.c (elf_getshstrndx): Add elf->start_offset to
48+ elf->map_address. Check if first section header fits into object's
49+ bounds.
50+ * elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)):
51+ Check if section header table fits into object's bounds.
52+ * elf_begin.c (get_shnum): Ensure section headers fits into
53+ object's bounds.
54+ (file_read_elf): Make sure scncnt is small enough to allocate both
55+ ElfXX_Shdr and Elf_Scn array. Make sure section and program header
56+ tables fit into object's bounds. Avoid memory leak on failure.
57+
58 2005-05-09 Ulrich Drepper <drepper@redhat.com>
59
60 * elf.h: Update from glibc.
61Index: elfutils-0.148/libelf/elf32_getphdr.c
62===================================================================
63--- elfutils-0.148.orig/libelf/elf32_getphdr.c 2010-04-21 14:26:40.000000000 +0000
64+++ elfutils-0.148/libelf/elf32_getphdr.c 2010-07-03 13:07:11.000000000 +0000
65@@ -114,6 +114,16 @@
66
67 if (elf->map_address != NULL)
68 {
69+ /* First see whether the information in the ELF header is
70+ valid and it does not ask for too much. */
71+ if (unlikely (ehdr->e_phoff >= elf->maximum_size)
72+ || unlikely (elf->maximum_size - ehdr->e_phoff < size))
73+ {
74+ /* Something is wrong. */
75+ __libelf_seterrno (ELF_E_INVALID_PHDR);
76+ goto out;
77+ }
78+
79 /* All the data is already mapped. Use it. */
80 void *file_phdr = ((char *) elf->map_address
81 + elf->start_offset + ehdr->e_phoff);
82Index: elfutils-0.148/libelf/elf32_getshdr.c
83===================================================================
84--- elfutils-0.148.orig/libelf/elf32_getshdr.c 2009-06-13 22:41:42.000000000 +0000
85+++ elfutils-0.148/libelf/elf32_getshdr.c 2010-07-03 13:07:11.000000000 +0000
86@@ -1,5 +1,5 @@
87 /* Return section header.
88- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2007, 2009 Red Hat, Inc.
89+ Copyright (C) 1998-2009 Red Hat, Inc.
90 This file is part of Red Hat elfutils.
91 Written by Ulrich Drepper <drepper@redhat.com>, 1998.
92
93@@ -81,7 +81,8 @@
94 goto out;
95
96 size_t shnum;
97- if (__elf_getshdrnum_rdlock (elf, &shnum) != 0)
98+ if (__elf_getshdrnum_rdlock (elf, &shnum) != 0
99+ || shnum > SIZE_MAX / sizeof (ElfW2(LIBELFBITS,Shdr)))
100 goto out;
101 size_t size = shnum * sizeof (ElfW2(LIBELFBITS,Shdr));
102
103@@ -98,6 +99,16 @@
104
105 if (elf->map_address != NULL)
106 {
107+ /* First see whether the information in the ELF header is
108+ valid and it does not ask for too much. */
109+ if (unlikely (ehdr->e_shoff >= elf->maximum_size)
110+ || unlikely (elf->maximum_size - ehdr->e_shoff < size))
111+ {
112+ /* Something is wrong. */
113+ __libelf_seterrno (ELF_E_INVALID_SECTION_HEADER);
114+ goto free_and_out;
115+ }
116+
117 ElfW2(LIBELFBITS,Shdr) *notcvt;
118
119 /* All the data is already mapped. If we could use it
120Index: elfutils-0.148/libelf/elf32_newphdr.c
121===================================================================
122--- elfutils-0.148.orig/libelf/elf32_newphdr.c 2010-01-12 16:57:54.000000000 +0000
123+++ elfutils-0.148/libelf/elf32_newphdr.c 2010-07-03 13:07:11.000000000 +0000
124@@ -135,6 +135,12 @@
125 || count == PN_XNUM
126 || elf->state.ELFW(elf,LIBELFBITS).phdr == NULL)
127 {
128+ if (unlikely (count > SIZE_MAX / sizeof (ElfW2(LIBELFBITS,Phdr))))
129+ {
130+ result = NULL;
131+ goto out;
132+ }
133+
134 /* Allocate a new program header with the appropriate number of
135 elements. */
136 result = (ElfW2(LIBELFBITS,Phdr) *)
137Index: elfutils-0.148/libelf/elf32_updatefile.c
138===================================================================
139--- elfutils-0.148.orig/libelf/elf32_updatefile.c 2010-01-12 16:57:54.000000000 +0000
140+++ elfutils-0.148/libelf/elf32_updatefile.c 2010-07-03 13:07:11.000000000 +0000
141@@ -223,6 +223,9 @@
142 /* Write all the sections. Well, only those which are modified. */
143 if (shnum > 0)
144 {
145+ if (unlikely (shnum > SIZE_MAX / sizeof (Elf_Scn *)))
146+ return 1;
147+
148 Elf_ScnList *list = &elf->state.ELFW(elf,LIBELFBITS).scns;
149 Elf_Scn **scns = (Elf_Scn **) alloca (shnum * sizeof (Elf_Scn *));
150 char *const shdr_start = ((char *) elf->map_address + elf->start_offset
151@@ -645,6 +648,10 @@
152 /* Write all the sections. Well, only those which are modified. */
153 if (shnum > 0)
154 {
155+ if (unlikely (shnum > SIZE_MAX / (sizeof (Elf_Scn *)
156+ + sizeof (ElfW2(LIBELFBITS,Shdr)))))
157+ return 1;
158+
159 off_t shdr_offset = elf->start_offset + ehdr->e_shoff;
160 #if EV_NUM != 2
161 xfct_t shdr_fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR];
162Index: elfutils-0.148/libelf/elf_begin.c
163===================================================================
164--- elfutils-0.148.orig/libelf/elf_begin.c 2010-04-21 14:26:40.000000000 +0000
165+++ elfutils-0.148/libelf/elf_begin.c 2010-07-03 13:07:11.000000000 +0000
166@@ -165,7 +165,8 @@
167
168 if (unlikely (result == 0) && ehdr.e32->e_shoff != 0)
169 {
170- if (ehdr.e32->e_shoff + sizeof (Elf32_Shdr) > maxsize)
171+ if (unlikely (ehdr.e32->e_shoff >= maxsize)
172+ || unlikely (maxsize - ehdr.e32->e_shoff < sizeof (Elf32_Shdr)))
173 /* Cannot read the first section header. */
174 return 0;
175
176@@ -213,7 +214,8 @@
177
178 if (unlikely (result == 0) && ehdr.e64->e_shoff != 0)
179 {
180- if (ehdr.e64->e_shoff + sizeof (Elf64_Shdr) > maxsize)
181+ if (unlikely (ehdr.e64->e_shoff >= maxsize)
182+ || unlikely (ehdr.e64->e_shoff + sizeof (Elf64_Shdr) > maxsize))
183 /* Cannot read the first section header. */
184 return 0;
185
186@@ -285,6 +287,15 @@
187 /* Could not determine the number of sections. */
188 return NULL;
189
190+ /* Check for too many sections. */
191+ if (e_ident[EI_CLASS] == ELFCLASS32)
192+ {
193+ if (scncnt > SIZE_MAX / (sizeof (Elf_Scn) + sizeof (Elf32_Shdr)))
194+ return NULL;
195+ }
196+ else if (scncnt > SIZE_MAX / (sizeof (Elf_Scn) + sizeof (Elf64_Shdr)))
197+ return NULL;
198+
199 /* We can now allocate the memory. Even if there are no section headers,
200 we allocate space for a zeroth section in case we need it later. */
201 const size_t scnmax = (scncnt ?: (cmd == ELF_C_RDWR || cmd == ELF_C_RDWR_MMAP)
202@@ -324,6 +335,16 @@
203 {
204 /* We can use the mmapped memory. */
205 elf->state.elf32.ehdr = ehdr;
206+
207+ if (unlikely (ehdr->e_shoff >= maxsize)
208+ || unlikely (maxsize - ehdr->e_shoff
209+ < scncnt * sizeof (Elf32_Shdr)))
210+ {
211+ free_and_out:
212+ free (elf);
213+ __libelf_seterrno (ELF_E_INVALID_FILE);
214+ return NULL;
215+ }
216 elf->state.elf32.shdr
217 = (Elf32_Shdr *) ((char *) ehdr + ehdr->e_shoff);
218
219@@ -410,6 +431,11 @@
220 {
221 /* We can use the mmapped memory. */
222 elf->state.elf64.ehdr = ehdr;
223+
224+ if (unlikely (ehdr->e_shoff >= maxsize)
225+ || unlikely (ehdr->e_shoff
226+ + scncnt * sizeof (Elf32_Shdr) > maxsize))
227+ goto free_and_out;
228 elf->state.elf64.shdr
229 = (Elf64_Shdr *) ((char *) ehdr + ehdr->e_shoff);
230
231Index: elfutils-0.148/libelf/elf_getarsym.c
232===================================================================
233--- elfutils-0.148.orig/libelf/elf_getarsym.c 2009-01-08 20:56:37.000000000 +0000
234+++ elfutils-0.148/libelf/elf_getarsym.c 2010-07-03 13:07:11.000000000 +0000
235@@ -179,6 +179,9 @@
236 size_t index_size = atol (tmpbuf);
237
238 if (SARMAG + sizeof (struct ar_hdr) + index_size > elf->maximum_size
239+#if SIZE_MAX <= 4294967295U
240+ || n >= SIZE_MAX / sizeof (Elf_Arsym)
241+#endif
242 || n * sizeof (uint32_t) > index_size)
243 {
244 /* This index table cannot be right since it does not fit into
245Index: elfutils-0.148/libelf/elf_getshdrstrndx.c
246===================================================================
247--- elfutils-0.148.orig/libelf/elf_getshdrstrndx.c 2009-06-13 22:31:35.000000000 +0000
248+++ elfutils-0.148/libelf/elf_getshdrstrndx.c 2010-07-03 13:07:11.000000000 +0000
249@@ -125,10 +125,25 @@
250 if (elf->map_address != NULL
251 && elf->state.elf32.ehdr->e_ident[EI_DATA] == MY_ELFDATA
252 && (ALLOW_UNALIGNED
253- || (((size_t) ((char *) elf->map_address + offset))
254+ || (((size_t) ((char *) elf->map_address
255+ + elf->start_offset + offset))
256 & (__alignof__ (Elf32_Shdr) - 1)) == 0))
257- /* We can directly access the memory. */
258- num = ((Elf32_Shdr *) (elf->map_address + offset))->sh_link;
259+ {
260+ /* First see whether the information in the ELF header is
261+ valid and it does not ask for too much. */
262+ if (unlikely (elf->maximum_size - offset
263+ < sizeof (Elf32_Shdr)))
264+ {
265+ /* Something is wrong. */
266+ __libelf_seterrno (ELF_E_INVALID_SECTION_HEADER);
267+ result = -1;
268+ goto out;
269+ }
270+
271+ /* We can directly access the memory. */
272+ num = ((Elf32_Shdr *) (elf->map_address + elf->start_offset
273+ + offset))->sh_link;
274+ }
275 else
276 {
277 /* We avoid reading in all the section headers. Just read
278@@ -163,10 +178,25 @@
279 if (elf->map_address != NULL
280 && elf->state.elf64.ehdr->e_ident[EI_DATA] == MY_ELFDATA
281 && (ALLOW_UNALIGNED
282- || (((size_t) ((char *) elf->map_address + offset))
283+ || (((size_t) ((char *) elf->map_address
284+ + elf->start_offset + offset))
285 & (__alignof__ (Elf64_Shdr) - 1)) == 0))
286- /* We can directly access the memory. */
287- num = ((Elf64_Shdr *) (elf->map_address + offset))->sh_link;
288+ {
289+ /* First see whether the information in the ELF header is
290+ valid and it does not ask for too much. */
291+ if (unlikely (elf->maximum_size - offset
292+ < sizeof (Elf64_Shdr)))
293+ {
294+ /* Something is wrong. */
295+ __libelf_seterrno (ELF_E_INVALID_SECTION_HEADER);
296+ result = -1;
297+ goto out;
298+ }
299+
300+ /* We can directly access the memory. */
301+ num = ((Elf64_Shdr *) (elf->map_address + elf->start_offset
302+ + offset))->sh_link;
303+ }
304 else
305 {
306 /* We avoid reading in all the section headers. Just read
307Index: elfutils-0.148/libelf/elf_newscn.c
308===================================================================
309--- elfutils-0.148.orig/libelf/elf_newscn.c 2009-01-08 20:56:37.000000000 +0000
310+++ elfutils-0.148/libelf/elf_newscn.c 2010-07-03 13:07:11.000000000 +0000
311@@ -104,10 +104,18 @@
312 else
313 {
314 /* We must allocate a new element. */
315- Elf_ScnList *newp;
316+ Elf_ScnList *newp = NULL;
317
318 assert (elf->state.elf.scnincr > 0);
319
320+ if (
321+#if SIZE_MAX <= 4294967295U
322+ likely (elf->state.elf.scnincr
323+ < SIZE_MAX / 2 / sizeof (Elf_Scn) - sizeof (Elf_ScnList))
324+#else
325+ 1
326+#endif
327+ )
328 newp = (Elf_ScnList *) calloc (sizeof (Elf_ScnList)
329 + ((elf->state.elf.scnincr *= 2)
330 * sizeof (Elf_Scn)), 1);
331Index: elfutils-0.148/libelf/gelf_getdyn.c
332===================================================================
333--- elfutils-0.148.orig/libelf/gelf_getdyn.c 2009-01-08 20:56:37.000000000 +0000
334+++ elfutils-0.148/libelf/gelf_getdyn.c 2010-07-03 13:07:11.000000000 +0000
335@@ -1,5 +1,5 @@
336 /* Get information from dynamic table at the given index.
337- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
338+ Copyright (C) 2000-2009 Red Hat, Inc.
339 This file is part of Red Hat elfutils.
340 Written by Ulrich Drepper <drepper@redhat.com>, 2000.
341
342@@ -93,7 +93,7 @@
343 table entries has to be adopted. The user better has provided
344 a buffer where we can store the information. While copying the
345 data we are converting the format. */
346- if (unlikely ((ndx + 1) * sizeof (Elf32_Dyn) > data_scn->d.d_size))
347+ if (INVALID_NDX (ndx, Elf32_Dyn, &data_scn->d))
348 {
349 __libelf_seterrno (ELF_E_INVALID_INDEX);
350 goto out;
351@@ -114,7 +114,7 @@
352
353 /* The data is already in the correct form. Just make sure the
354 index is OK. */
355- if (unlikely ((ndx + 1) * sizeof (GElf_Dyn) > data_scn->d.d_size))
356+ if (INVALID_NDX (ndx, GElf_Dyn, &data_scn->d))
357 {
358 __libelf_seterrno (ELF_E_INVALID_INDEX);
359 goto out;
360Index: elfutils-0.148/libelf/gelf_getlib.c
361===================================================================
362--- elfutils-0.148.orig/libelf/gelf_getlib.c 2009-01-08 20:56:37.000000000 +0000
363+++ elfutils-0.148/libelf/gelf_getlib.c 2010-07-03 13:07:11.000000000 +0000
364@@ -1,5 +1,5 @@
365 /* Get library from table at the given index.
366- Copyright (C) 2004 Red Hat, Inc.
367+ Copyright (C) 2004-2009 Red Hat, Inc.
368 This file is part of Red Hat elfutils.
369 Written by Ulrich Drepper <drepper@redhat.com>, 2004.
370
371@@ -86,7 +86,7 @@
372 /* The data is already in the correct form. Just make sure the
373 index is OK. */
374 GElf_Lib *result = NULL;
375- if (unlikely ((ndx + 1) * sizeof (GElf_Lib) > data->d_size))
376+ if (INVALID_NDX (ndx, GElf_Lib, data))
377 __libelf_seterrno (ELF_E_INVALID_INDEX);
378 else
379 {
380Index: elfutils-0.148/libelf/gelf_getmove.c
381===================================================================
382--- elfutils-0.148.orig/libelf/gelf_getmove.c 2009-01-08 20:56:37.000000000 +0000
383+++ elfutils-0.148/libelf/gelf_getmove.c 2010-07-03 13:07:11.000000000 +0000
384@@ -1,5 +1,5 @@
385 /* Get move structure at the given index.
386- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
387+ Copyright (C) 2000-2009 Red Hat, Inc.
388 This file is part of Red Hat elfutils.
389 Written by Ulrich Drepper <drepper@redhat.com>, 2000.
390
391@@ -83,7 +83,7 @@
392
393 /* The data is already in the correct form. Just make sure the
394 index is OK. */
395- if (unlikely ((ndx + 1) * sizeof (GElf_Move) > data->d_size))
396+ if (INVALID_NDX (ndx, GElf_Move, data))
397 {
398 __libelf_seterrno (ELF_E_INVALID_INDEX);
399 goto out;
400Index: elfutils-0.148/libelf/gelf_getrela.c
401===================================================================
402--- elfutils-0.148.orig/libelf/gelf_getrela.c 2009-01-08 20:56:37.000000000 +0000
403+++ elfutils-0.148/libelf/gelf_getrela.c 2010-07-03 13:07:11.000000000 +0000
404@@ -1,5 +1,5 @@
405 /* Get RELA relocation information at given index.
406- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
407+ Copyright (C) 2000-2009 Red Hat, Inc.
408 This file is part of Red Hat elfutils.
409 Written by Ulrich Drepper <drepper@redhat.com>, 2000.
410
411@@ -71,12 +71,6 @@
412 if (data_scn == NULL)
413 return NULL;
414
415- if (unlikely (ndx < 0))
416- {
417- __libelf_seterrno (ELF_E_INVALID_INDEX);
418- return NULL;
419- }
420-
421 if (unlikely (data_scn->d.d_type != ELF_T_RELA))
422 {
423 __libelf_seterrno (ELF_E_INVALID_HANDLE);
424@@ -93,7 +87,7 @@
425 if (scn->elf->class == ELFCLASS32)
426 {
427 /* We have to convert the data. */
428- if (unlikely ((ndx + 1) * sizeof (Elf32_Rela) > data_scn->d.d_size))
429+ if (INVALID_NDX (ndx, Elf32_Rela, &data_scn->d))
430 {
431 __libelf_seterrno (ELF_E_INVALID_INDEX);
432 result = NULL;
433@@ -114,7 +108,7 @@
434 {
435 /* Simply copy the data after we made sure we are actually getting
436 correct data. */
437- if (unlikely ((ndx + 1) * sizeof (Elf64_Rela) > data_scn->d.d_size))
438+ if (INVALID_NDX (ndx, Elf64_Rela, &data_scn->d))
439 {
440 __libelf_seterrno (ELF_E_INVALID_INDEX);
441 result = NULL;
442Index: elfutils-0.148/libelf/gelf_getrel.c
443===================================================================
444--- elfutils-0.148.orig/libelf/gelf_getrel.c 2009-01-08 20:56:37.000000000 +0000
445+++ elfutils-0.148/libelf/gelf_getrel.c 2010-07-03 13:07:11.000000000 +0000
446@@ -1,5 +1,5 @@
447 /* Get REL relocation information at given index.
448- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
449+ Copyright (C) 2000-2009 Red Hat, Inc.
450 This file is part of Red Hat elfutils.
451 Written by Ulrich Drepper <drepper@redhat.com>, 2000.
452
453@@ -71,12 +71,6 @@
454 if (data_scn == NULL)
455 return NULL;
456
457- if (unlikely (ndx < 0))
458- {
459- __libelf_seterrno (ELF_E_INVALID_INDEX);
460- return NULL;
461- }
462-
463 if (unlikely (data_scn->d.d_type != ELF_T_REL))
464 {
465 __libelf_seterrno (ELF_E_INVALID_HANDLE);
466@@ -93,7 +87,7 @@
467 if (scn->elf->class == ELFCLASS32)
468 {
469 /* We have to convert the data. */
470- if (unlikely ((ndx + 1) * sizeof (Elf32_Rel) > data_scn->d.d_size))
471+ if (INVALID_NDX (ndx, Elf32_Rel, &data_scn->d))
472 {
473 __libelf_seterrno (ELF_E_INVALID_INDEX);
474 result = NULL;
475@@ -113,7 +107,7 @@
476 {
477 /* Simply copy the data after we made sure we are actually getting
478 correct data. */
479- if (unlikely ((ndx + 1) * sizeof (Elf64_Rel) > data_scn->d.d_size))
480+ if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d))
481 {
482 __libelf_seterrno (ELF_E_INVALID_INDEX);
483 result = NULL;
484Index: elfutils-0.148/libelf/gelf_getsym.c
485===================================================================
486--- elfutils-0.148.orig/libelf/gelf_getsym.c 2009-01-08 20:56:37.000000000 +0000
487+++ elfutils-0.148/libelf/gelf_getsym.c 2010-07-03 13:07:11.000000000 +0000
488@@ -1,5 +1,5 @@
489 /* Get symbol information from symbol table at the given index.
490- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
491+ Copyright (C) 1999-2009 Red Hat, Inc.
492 This file is part of Red Hat elfutils.
493 Written by Ulrich Drepper <drepper@redhat.com>, 1999.
494
495@@ -90,7 +90,7 @@
496 table entries has to be adopted. The user better has provided
497 a buffer where we can store the information. While copying the
498 data we are converting the format. */
499- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > data->d_size))
500+ if (INVALID_NDX (ndx, Elf32_Sym, data))
501 {
502 __libelf_seterrno (ELF_E_INVALID_INDEX);
503 goto out;
504@@ -119,7 +119,7 @@
505
506 /* The data is already in the correct form. Just make sure the
507 index is OK. */
508- if (unlikely ((ndx + 1) * sizeof (GElf_Sym) > data->d_size))
509+ if (INVALID_NDX (ndx, GElf_Sym, data))
510 {
511 __libelf_seterrno (ELF_E_INVALID_INDEX);
512 goto out;
513Index: elfutils-0.148/libelf/gelf_getsyminfo.c
514===================================================================
515--- elfutils-0.148.orig/libelf/gelf_getsyminfo.c 2009-01-08 20:56:37.000000000 +0000
516+++ elfutils-0.148/libelf/gelf_getsyminfo.c 2010-07-03 13:07:11.000000000 +0000
517@@ -1,5 +1,5 @@
518 /* Get additional symbol information from symbol table at the given index.
519- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
520+ Copyright (C) 2000-2009 Red Hat, Inc.
521 This file is part of Red Hat elfutils.
522 Written by Ulrich Drepper <drepper@redhat.com>, 2000.
523
524@@ -84,7 +84,7 @@
525
526 /* The data is already in the correct form. Just make sure the
527 index is OK. */
528- if (unlikely ((ndx + 1) * sizeof (GElf_Syminfo) > data->d_size))
529+ if (INVALID_NDX (ndx, GElf_Syminfo, data))
530 {
531 __libelf_seterrno (ELF_E_INVALID_INDEX);
532 goto out;
533Index: elfutils-0.148/libelf/gelf_getsymshndx.c
534===================================================================
535--- elfutils-0.148.orig/libelf/gelf_getsymshndx.c 2009-01-08 20:56:37.000000000 +0000
536+++ elfutils-0.148/libelf/gelf_getsymshndx.c 2010-07-03 13:07:11.000000000 +0000
537@@ -1,6 +1,6 @@
538 /* Get symbol information and separate section index from symbol table
539 at the given index.
540- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
541+ Copyright (C) 2000-2009 Red Hat, Inc.
542 This file is part of Red Hat elfutils.
543 Written by Ulrich Drepper <drepper@redhat.com>, 2000.
544
545@@ -90,7 +90,7 @@
546 section index table. */
547 if (likely (shndxdata_scn != NULL))
548 {
549- if (unlikely ((ndx + 1) * sizeof (Elf32_Word) > shndxdata_scn->d.d_size))
550+ if (INVALID_NDX (ndx, Elf32_Word, &shndxdata_scn->d))
551 {
552 __libelf_seterrno (ELF_E_INVALID_INDEX);
553 goto out;
554@@ -110,7 +110,7 @@
555 table entries has to be adopted. The user better has provided
556 a buffer where we can store the information. While copying the
557 data we are converting the format. */
558- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > symdata->d_size))
559+ if (INVALID_NDX (ndx, Elf32_Sym, symdata))
560 {
561 __libelf_seterrno (ELF_E_INVALID_INDEX);
562 goto out;
563@@ -139,7 +139,7 @@
564
565 /* The data is already in the correct form. Just make sure the
566 index is OK. */
567- if (unlikely ((ndx + 1) * sizeof (GElf_Sym) > symdata->d_size))
568+ if (INVALID_NDX (ndx, GElf_Sym, symdata))
569 {
570 __libelf_seterrno (ELF_E_INVALID_INDEX);
571 goto out;
572Index: elfutils-0.148/libelf/gelf_getversym.c
573===================================================================
574--- elfutils-0.148.orig/libelf/gelf_getversym.c 2009-01-08 20:56:37.000000000 +0000
575+++ elfutils-0.148/libelf/gelf_getversym.c 2010-07-03 13:07:11.000000000 +0000
576@@ -1,5 +1,5 @@
577 /* Get symbol version information at the given index.
578- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
579+ Copyright (C) 1999-2009 Red Hat, Inc.
580 This file is part of Red Hat elfutils.
581 Written by Ulrich Drepper <drepper@redhat.com>, 1999.
582
583@@ -92,7 +92,7 @@
584
585 /* The data is already in the correct form. Just make sure the
586 index is OK. */
587- if (unlikely ((ndx + 1) * sizeof (GElf_Versym) > data->d_size))
588+ if (INVALID_NDX (ndx, GElf_Versym, data))
589 {
590 __libelf_seterrno (ELF_E_INVALID_INDEX);
591 result = NULL;
592Index: elfutils-0.148/libelf/gelf_update_dyn.c
593===================================================================
594--- elfutils-0.148.orig/libelf/gelf_update_dyn.c 2009-01-08 20:56:37.000000000 +0000
595+++ elfutils-0.148/libelf/gelf_update_dyn.c 2010-07-03 13:07:11.000000000 +0000
596@@ -1,5 +1,5 @@
597 /* Update information in dynamic table at the given index.
598- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
599+ Copyright (C) 2000-2009 Red Hat, Inc.
600 This file is part of Red Hat elfutils.
601 Written by Ulrich Drepper <drepper@redhat.com>, 2000.
602
603@@ -71,12 +71,6 @@
604 if (data == NULL)
605 return 0;
606
607- if (unlikely (ndx < 0))
608- {
609- __libelf_seterrno (ELF_E_INVALID_INDEX);
610- return 0;
611- }
612-
613 if (unlikely (data_scn->d.d_type != ELF_T_DYN))
614 {
615 /* The type of the data better should match. */
616@@ -102,7 +96,7 @@
617 }
618
619 /* Check whether we have to resize the data buffer. */
620- if (unlikely ((ndx + 1) * sizeof (Elf32_Dyn) > data_scn->d.d_size))
621+ if (INVALID_NDX (ndx, Elf32_Dyn, &data_scn->d))
622 {
623 __libelf_seterrno (ELF_E_INVALID_INDEX);
624 goto out;
625@@ -116,7 +110,7 @@
626 else
627 {
628 /* Check whether we have to resize the data buffer. */
629- if (unlikely ((ndx + 1) * sizeof (Elf64_Dyn) > data_scn->d.d_size))
630+ if (INVALID_NDX (ndx, Elf64_Dyn, &data_scn->d))
631 {
632 __libelf_seterrno (ELF_E_INVALID_INDEX);
633 goto out;
634Index: elfutils-0.148/libelf/gelf_update_lib.c
635===================================================================
636--- elfutils-0.148.orig/libelf/gelf_update_lib.c 2009-01-08 20:56:37.000000000 +0000
637+++ elfutils-0.148/libelf/gelf_update_lib.c 2010-07-03 13:07:11.000000000 +0000
638@@ -1,5 +1,5 @@
639 /* Update library in table at the given index.
640- Copyright (C) 2004 Red Hat, Inc.
641+ Copyright (C) 2004-2009 Red Hat, Inc.
642 This file is part of Red Hat elfutils.
643 Written by Ulrich Drepper <drepper@redhat.com>, 2004.
644
645@@ -68,12 +68,6 @@
646 if (data == NULL)
647 return 0;
648
649- if (unlikely (ndx < 0))
650- {
651- __libelf_seterrno (ELF_E_INVALID_INDEX);
652- return 0;
653- }
654-
655 Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
656 if (unlikely (data_scn->d.d_type != ELF_T_LIB))
657 {
658@@ -87,7 +81,7 @@
659
660 /* Check whether we have to resize the data buffer. */
661 int result = 0;
662- if (unlikely ((ndx + 1) * sizeof (Elf64_Lib) > data_scn->d.d_size))
663+ if (INVALID_NDX (ndx, Elf64_Lib, &data_scn->d))
664 __libelf_seterrno (ELF_E_INVALID_INDEX);
665 else
666 {
667Index: elfutils-0.148/libelf/gelf_update_move.c
668===================================================================
669--- elfutils-0.148.orig/libelf/gelf_update_move.c 2009-01-08 20:56:37.000000000 +0000
670+++ elfutils-0.148/libelf/gelf_update_move.c 2010-07-03 13:07:11.000000000 +0000
671@@ -1,5 +1,5 @@
672 /* Update move structure at the given index.
673- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
674+ Copyright (C) 2000-2009 Red Hat, Inc.
675 This file is part of Red Hat elfutils.
676 Written by Ulrich Drepper <drepper@redhat.com>, 2000.
677
678@@ -75,8 +75,7 @@
679 assert (sizeof (GElf_Move) == sizeof (Elf64_Move));
680
681 /* Check whether we have to resize the data buffer. */
682- if (unlikely (ndx < 0)
683- || unlikely ((ndx + 1) * sizeof (GElf_Move) > data_scn->d.d_size))
684+ if (INVALID_NDX (ndx, GElf_Move, &data_scn->d))
685 {
686 __libelf_seterrno (ELF_E_INVALID_INDEX);
687 return 0;
688Index: elfutils-0.148/libelf/gelf_update_rela.c
689===================================================================
690--- elfutils-0.148.orig/libelf/gelf_update_rela.c 2009-01-08 20:56:37.000000000 +0000
691+++ elfutils-0.148/libelf/gelf_update_rela.c 2010-07-03 13:07:11.000000000 +0000
692@@ -1,5 +1,5 @@
693 /* Update RELA relocation information at given index.
694- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
695+ Copyright (C) 2000-2009 Red Hat, Inc.
696 This file is part of Red Hat elfutils.
697 Written by Ulrich Drepper <drepper@redhat.com>, 2000.
698
699@@ -68,12 +68,6 @@
700 if (dst == NULL)
701 return 0;
702
703- if (unlikely (ndx < 0))
704- {
705- __libelf_seterrno (ELF_E_INVALID_INDEX);
706- return 0;
707- }
708-
709 if (unlikely (data_scn->d.d_type != ELF_T_RELA))
710 {
711 /* The type of the data better should match. */
712@@ -101,7 +95,7 @@
713 }
714
715 /* Check whether we have to resize the data buffer. */
716- if (unlikely ((ndx + 1) * sizeof (Elf32_Rela) > data_scn->d.d_size))
717+ if (INVALID_NDX (ndx, Elf32_Rela, &data_scn->d))
718 {
719 __libelf_seterrno (ELF_E_INVALID_INDEX);
720 goto out;
721@@ -117,7 +111,7 @@
722 else
723 {
724 /* Check whether we have to resize the data buffer. */
725- if (unlikely ((ndx + 1) * sizeof (Elf64_Rela) > data_scn->d.d_size))
726+ if (INVALID_NDX (ndx, Elf64_Rela, &data_scn->d))
727 {
728 __libelf_seterrno (ELF_E_INVALID_INDEX);
729 goto out;
730Index: elfutils-0.148/libelf/gelf_update_rel.c
731===================================================================
732--- elfutils-0.148.orig/libelf/gelf_update_rel.c 2009-01-08 20:56:37.000000000 +0000
733+++ elfutils-0.148/libelf/gelf_update_rel.c 2010-07-03 13:07:11.000000000 +0000
734@@ -1,5 +1,5 @@
735 /* Update REL relocation information at given index.
736- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
737+ Copyright (C) 2000-2009 Red Hat, Inc.
738 This file is part of Red Hat elfutils.
739 Written by Ulrich Drepper <drepper@redhat.com>, 2000.
740
741@@ -68,12 +68,6 @@
742 if (dst == NULL)
743 return 0;
744
745- if (unlikely (ndx < 0))
746- {
747- __libelf_seterrno (ELF_E_INVALID_INDEX);
748- return 0;
749- }
750-
751 if (unlikely (data_scn->d.d_type != ELF_T_REL))
752 {
753 /* The type of the data better should match. */
754@@ -99,7 +93,7 @@
755 }
756
757 /* Check whether we have to resize the data buffer. */
758- if (unlikely ((ndx + 1) * sizeof (Elf32_Rel) > data_scn->d.d_size))
759+ if (INVALID_NDX (ndx, Elf32_Rel, &data_scn->d))
760 {
761 __libelf_seterrno (ELF_E_INVALID_INDEX);
762 goto out;
763@@ -114,7 +108,7 @@
764 else
765 {
766 /* Check whether we have to resize the data buffer. */
767- if (unlikely ((ndx + 1) * sizeof (Elf64_Rel) > data_scn->d.d_size))
768+ if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d))
769 {
770 __libelf_seterrno (ELF_E_INVALID_INDEX);
771 goto out;
772Index: elfutils-0.148/libelf/gelf_update_sym.c
773===================================================================
774--- elfutils-0.148.orig/libelf/gelf_update_sym.c 2009-01-08 20:56:37.000000000 +0000
775+++ elfutils-0.148/libelf/gelf_update_sym.c 2010-07-03 13:07:11.000000000 +0000
776@@ -1,5 +1,5 @@
777 /* Update symbol information in symbol table at the given index.
778- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
779+ Copyright (C) 2000-2009 Red Hat, Inc.
780 This file is part of Red Hat elfutils.
781 Written by Ulrich Drepper <drepper@redhat.com>, 2000.
782
783@@ -72,12 +72,6 @@
784 if (data == NULL)
785 return 0;
786
787- if (unlikely (ndx < 0))
788- {
789- __libelf_seterrno (ELF_E_INVALID_INDEX);
790- return 0;
791- }
792-
793 if (unlikely (data_scn->d.d_type != ELF_T_SYM))
794 {
795 /* The type of the data better should match. */
796@@ -102,7 +96,7 @@
797 }
798
799 /* Check whether we have to resize the data buffer. */
800- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > data_scn->d.d_size))
801+ if (INVALID_NDX (ndx, Elf32_Sym, &data_scn->d))
802 {
803 __libelf_seterrno (ELF_E_INVALID_INDEX);
804 goto out;
805@@ -125,7 +119,7 @@
806 else
807 {
808 /* Check whether we have to resize the data buffer. */
809- if (unlikely ((ndx + 1) * sizeof (Elf64_Sym) > data_scn->d.d_size))
810+ if (INVALID_NDX (ndx, Elf64_Sym, &data_scn->d))
811 {
812 __libelf_seterrno (ELF_E_INVALID_INDEX);
813 goto out;
814Index: elfutils-0.148/libelf/gelf_update_syminfo.c
815===================================================================
816--- elfutils-0.148.orig/libelf/gelf_update_syminfo.c 2009-01-08 20:56:37.000000000 +0000
817+++ elfutils-0.148/libelf/gelf_update_syminfo.c 2010-07-03 13:07:11.000000000 +0000
818@@ -1,5 +1,5 @@
819 /* Update additional symbol information in symbol table at the given index.
820- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
821+ Copyright (C) 2000-2009 Red Hat, Inc.
822 This file is part of Red Hat elfutils.
823 Written by Ulrich Drepper <drepper@redhat.com>, 2000.
824
825@@ -72,12 +72,6 @@
826 if (data == NULL)
827 return 0;
828
829- if (unlikely (ndx < 0))
830- {
831- __libelf_seterrno (ELF_E_INVALID_INDEX);
832- return 0;
833- }
834-
835 if (unlikely (data_scn->d.d_type != ELF_T_SYMINFO))
836 {
837 /* The type of the data better should match. */
838@@ -93,7 +87,7 @@
839 rwlock_wrlock (scn->elf->lock);
840
841 /* Check whether we have to resize the data buffer. */
842- if (unlikely ((ndx + 1) * sizeof (GElf_Syminfo) > data_scn->d.d_size))
843+ if (INVALID_NDX (ndx, GElf_Syminfo, &data_scn->d))
844 {
845 __libelf_seterrno (ELF_E_INVALID_INDEX);
846 goto out;
847Index: elfutils-0.148/libelf/gelf_update_symshndx.c
848===================================================================
849--- elfutils-0.148.orig/libelf/gelf_update_symshndx.c 2009-01-08 20:56:37.000000000 +0000
850+++ elfutils-0.148/libelf/gelf_update_symshndx.c 2010-07-03 13:07:11.000000000 +0000
851@@ -1,6 +1,6 @@
852 /* Update symbol information and section index in symbol table at the
853 given index.
854- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
855+ Copyright (C) 2000-2009 Red Hat, Inc.
856 This file is part of Red Hat elfutils.
857 Written by Ulrich Drepper <drepper@redhat.com>, 2000.
858
859@@ -77,12 +77,6 @@
860 if (symdata == NULL)
861 return 0;
862
863- if (unlikely (ndx < 0))
864- {
865- __libelf_seterrno (ELF_E_INVALID_INDEX);
866- return 0;
867- }
868-
869 if (unlikely (symdata_scn->d.d_type != ELF_T_SYM))
870 {
871 /* The type of the data better should match. */
872@@ -128,7 +122,7 @@
873 }
874
875 /* Check whether we have to resize the data buffer. */
876- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > symdata_scn->d.d_size))
877+ if (INVALID_NDX (ndx, Elf32_Sym, &symdata_scn->d))
878 {
879 __libelf_seterrno (ELF_E_INVALID_INDEX);
880 goto out;
881@@ -151,7 +145,7 @@
882 else
883 {
884 /* Check whether we have to resize the data buffer. */
885- if (unlikely ((ndx + 1) * sizeof (Elf64_Sym) > symdata_scn->d.d_size))
886+ if (INVALID_NDX (ndx, Elf64_Sym, &symdata_scn->d))
887 {
888 __libelf_seterrno (ELF_E_INVALID_INDEX);
889 goto out;
890Index: elfutils-0.148/libelf/gelf_update_versym.c
891===================================================================
892--- elfutils-0.148.orig/libelf/gelf_update_versym.c 2009-01-08 20:56:37.000000000 +0000
893+++ elfutils-0.148/libelf/gelf_update_versym.c 2010-07-03 13:07:11.000000000 +0000
894@@ -1,5 +1,5 @@
895 /* Update symbol version information.
896- Copyright (C) 2001, 2002 Red Hat, Inc.
897+ Copyright (C) 2001-2009 Red Hat, Inc.
898 This file is part of Red Hat elfutils.
899 Written by Ulrich Drepper <drepper@redhat.com>, 2001.
900
901@@ -75,8 +75,7 @@
902 assert (sizeof (GElf_Versym) == sizeof (Elf64_Versym));
903
904 /* Check whether we have to resize the data buffer. */
905- if (unlikely (ndx < 0)
906- || unlikely ((ndx + 1) * sizeof (GElf_Versym) > data_scn->d.d_size))
907+ if (INVALID_NDX (ndx, GElf_Versym, &data_scn->d))
908 {
909 __libelf_seterrno (ELF_E_INVALID_INDEX);
910 return 0;
911Index: elfutils-0.148/libelf/libelfP.h
912===================================================================
913--- elfutils-0.148.orig/libelf/libelfP.h 2010-01-12 16:57:54.000000000 +0000
914+++ elfutils-0.148/libelf/libelfP.h 2010-07-03 13:07:11.000000000 +0000
915@@ -608,4 +608,8 @@
916 /* Align offset to 4 bytes as needed for note name and descriptor data. */
917 #define NOTE_ALIGN(n) (((n) + 3) & -4U)
918
919+/* Convenience macro. */
920+#define INVALID_NDX(ndx, type, data) \
921+ unlikely ((data)->d_size / sizeof (type) <= (unsigned int) (ndx))
922+
923 #endif /* libelfP.h */
924Index: elfutils-0.148/src/ChangeLog
925===================================================================
926--- elfutils-0.148.orig/src/ChangeLog 2010-07-03 13:07:10.000000000 +0000
927+++ elfutils-0.148/src/ChangeLog 2010-07-03 13:07:11.000000000 +0000
928@@ -1640,6 +1640,16 @@
929 object symbols or symbols with unknown type.
930 (check_rel): Likewise.
931
932+2005-06-09 Roland McGrath <roland@redhat.com>
933+
934+ * readelf.c (handle_dynamic, handle_symtab): Check for bogus sh_link.
935+ (handle_verneed, handle_verdef, handle_versym, handle_hash): Likewise.
936+ (handle_scngrp): Check for bogus sh_info.
937+
938+ * strip.c (handle_elf): Check for bogus values in sh_link, sh_info,
939+ st_shndx, e_shstrndx, and SHT_GROUP or SHT_SYMTAB_SHNDX data.
940+ Don't use assert on input values, instead bail with "illformed" error.
941+
942 2005-06-08 Roland McGrath <roland@redhat.com>
943
944 * readelf.c (print_ops): Add consts.
945@@ -1690,6 +1700,19 @@
946
947 * readelf.c (dwarf_tag_string): Add new tags.
948
949+2005-05-17 Jakub Jelinek <jakub@redhat.com>
950+
951+ * elflint.c (check_hash): Don't check entries beyond end of section.
952+ (check_note): Don't crash if gelf_rawchunk fails.
953+ (section_name): Return <invalid> if gelf_getshdr returns NULL.
954+
955+2005-05-14 Jakub Jelinek <jakub@redhat.com>
956+
957+ * elflint.c (section_name): Return "<invalid>" instead of
958+ crashing on invalid section name.
959+ (check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic,
960+ check_symtab_shndx, check_hash, check_versym): Robustify.
961+
962 2005-05-08 Roland McGrath <roland@redhat.com>
963
964 * strip.c (handle_elf): Don't translate hash and versym data formats,
965Index: elfutils-0.148/src/elflint.c
966===================================================================
967--- elfutils-0.148.orig/src/elflint.c 2010-04-13 20:08:02.000000000 +0000
968+++ elfutils-0.148/src/elflint.c 2010-07-03 13:07:11.000000000 +0000
969@@ -131,6 +131,10 @@
970 /* Array to count references in section groups. */
971 static int *scnref;
972
973+/* Numbers of sections and program headers. */
974+static unsigned int shnum;
975+static unsigned int phnum;
976+
977
978 int
979 main (int argc, char *argv[])
980@@ -319,10 +323,19 @@
981 {
982 GElf_Shdr shdr_mem;
983 GElf_Shdr *shdr;
984+ const char *ret;
985+
986+ if ((unsigned int) idx > shnum)
987+ return "<invalid>";
988
989 shdr = gelf_getshdr (elf_getscn (ebl->elf, idx), &shdr_mem);
990+ if (shdr == NULL)
991+ return "<invalid>";
992
993- return elf_strptr (ebl->elf, shstrndx, shdr->sh_name);
994+ ret = elf_strptr (ebl->elf, shstrndx, shdr->sh_name);
995+ if (ret == NULL)
996+ return "<invalid>";
997+ return ret;
998 }
999
1000
1001@@ -344,11 +357,6 @@
1002 (sizeof (valid_e_machine) / sizeof (valid_e_machine[0]))
1003
1004
1005-/* Numbers of sections and program headers. */
1006-static unsigned int shnum;
1007-static unsigned int phnum;
1008-
1009-
1010 static void
1011 check_elf_header (Ebl *ebl, GElf_Ehdr *ehdr, size_t size)
1012 {
1013@@ -632,7 +640,8 @@
1014 }
1015 }
1016
1017- if (shdr->sh_entsize != gelf_fsize (ebl->elf, ELF_T_SYM, 1, EV_CURRENT))
1018+ size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_SYM, 1, EV_CURRENT);
1019+ if (shdr->sh_entsize != sh_entsize)
1020 ERROR (gettext ("\
1021 section [%2u] '%s': entry size is does not match ElfXX_Sym\n"),
1022 idx, section_name (ebl, idx));
1023@@ -670,7 +679,7 @@
1024 xndxscnidx, section_name (ebl, xndxscnidx));
1025 }
1026
1027- for (size_t cnt = 1; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
1028+ for (size_t cnt = 1; cnt < shdr->sh_size / sh_entsize; ++cnt)
1029 {
1030 sym = gelf_getsymshndx (data, xndxdata, cnt, &sym_mem, &xndx);
1031 if (sym == NULL)
1032@@ -690,7 +699,8 @@
1033 else
1034 {
1035 name = elf_strptr (ebl->elf, shdr->sh_link, sym->st_name);
1036- assert (name != NULL);
1037+ assert (name != NULL
1038+ || strshdr->sh_type != SHT_STRTAB);
1039 }
1040
1041 if (sym->st_shndx == SHN_XINDEX)
1042@@ -1038,9 +1048,11 @@
1043 {
1044 GElf_Shdr rcshdr_mem;
1045 const GElf_Shdr *rcshdr = gelf_getshdr (scn, &rcshdr_mem);
1046- assert (rcshdr != NULL);
1047
1048- if (rcshdr->sh_type == SHT_DYNAMIC)
1049+ if (rcshdr == NULL)
1050+ break;
1051+
1052+ if (rcshdr->sh_type == SHT_DYNAMIC && rcshdr->sh_entsize)
1053 {
1054 /* Found the dynamic section. Look through it. */
1055 Elf_Data *d = elf_getdata (scn, NULL);
1056@@ -1050,7 +1062,9 @@
1057 {
1058 GElf_Dyn dyn_mem;
1059 GElf_Dyn *dyn = gelf_getdyn (d, cnt, &dyn_mem);
1060- assert (dyn != NULL);
1061+
1062+ if (dyn == NULL)
1063+ break;
1064
1065 if (dyn->d_tag == DT_RELCOUNT)
1066 {
1067@@ -1064,7 +1078,9 @@
1068 /* Does the number specified number of relative
1069 relocations exceed the total number of
1070 relocations? */
1071- if (dyn->d_un.d_val > shdr->sh_size / shdr->sh_entsize)
1072+ if (shdr->sh_entsize != 0
1073+ && dyn->d_un.d_val > (shdr->sh_size
1074+ / shdr->sh_entsize))
1075 ERROR (gettext ("\
1076 section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"),
1077 idx, section_name (ebl, idx),
1078@@ -1224,7 +1240,8 @@
1079 }
1080 }
1081
1082- if (shdr->sh_entsize != gelf_fsize (ebl->elf, reltype, 1, EV_CURRENT))
1083+ size_t sh_entsize = gelf_fsize (ebl->elf, reltype, 1, EV_CURRENT);
1084+ if (shdr->sh_entsize != sh_entsize)
1085 ERROR (gettext (reltype == ELF_T_RELA ? "\
1086 section [%2d] '%s': section entry size does not match ElfXX_Rela\n" : "\
1087 section [%2d] '%s': section entry size does not match ElfXX_Rel\n"),
1088@@ -1447,7 +1464,8 @@
1089 Elf_Data *symdata = elf_getdata (symscn, NULL);
1090 enum load_state state = state_undecided;
1091
1092- for (size_t cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
1093+ size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_RELA, 1, EV_CURRENT);
1094+ for (size_t cnt = 0; cnt < shdr->sh_size / sh_entsize; ++cnt)
1095 {
1096 GElf_Rela rela_mem;
1097 GElf_Rela *rela = gelf_getrela (data, cnt, &rela_mem);
1098@@ -1497,7 +1515,8 @@
1099 Elf_Data *symdata = elf_getdata (symscn, NULL);
1100 enum load_state state = state_undecided;
1101
1102- for (size_t cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
1103+ size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_REL, 1, EV_CURRENT);
1104+ for (size_t cnt = 0; cnt < shdr->sh_size / sh_entsize; ++cnt)
1105 {
1106 GElf_Rel rel_mem;
1107 GElf_Rel *rel = gelf_getrel (data, cnt, &rel_mem);
1108@@ -1600,7 +1619,8 @@
1109 shdr->sh_link, section_name (ebl, shdr->sh_link),
1110 idx, section_name (ebl, idx));
1111
1112- if (shdr->sh_entsize != gelf_fsize (ebl->elf, ELF_T_DYN, 1, EV_CURRENT))
1113+ size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_DYN, 1, EV_CURRENT);
1114+ if (shdr->sh_entsize != sh_entsize)
1115 ERROR (gettext ("\
1116 section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"),
1117 idx, section_name (ebl, idx));
1118@@ -1610,7 +1630,7 @@
1119 idx, section_name (ebl, idx));
1120
1121 bool non_null_warned = false;
1122- for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
1123+ for (cnt = 0; cnt < shdr->sh_size / sh_entsize; ++cnt)
1124 {
1125 GElf_Dyn dyn_mem;
1126 GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dyn_mem);
1127@@ -1891,6 +1911,8 @@
1128 idx, section_name (ebl, idx));
1129
1130 if (symshdr != NULL
1131+ && shdr->sh_entsize
1132+ && symshdr->sh_entsize
1133 && (shdr->sh_size / shdr->sh_entsize
1134 < symshdr->sh_size / symshdr->sh_entsize))
1135 ERROR (gettext ("\
1136@@ -1917,6 +1939,12 @@
1137 }
1138
1139 Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL);
1140+ if (data == NULL)
1141+ {
1142+ ERROR (gettext ("section [%2d] '%s': cannot get section data\n"),
1143+ idx, section_name (ebl, idx));
1144+ return;
1145+ }
1146
1147 if (*((Elf32_Word *) data->d_buf) != 0)
1148 ERROR (gettext ("symbol 0 should have zero extended section index\n"));
1149@@ -1959,7 +1987,7 @@
1150
1151 size_t maxidx = nchain;
1152
1153- if (symshdr != NULL)
1154+ if (symshdr != NULL && symshdr->sh_entsize != 0)
1155 {
1156 size_t symsize = symshdr->sh_size / symshdr->sh_entsize;
1157
1158@@ -1970,18 +1998,28 @@
1159 maxidx = symsize;
1160 }
1161
1162+ Elf32_Word *buf = (Elf32_Word *) data->d_buf;
1163+ Elf32_Word *end = (Elf32_Word *) ((char *) data->d_buf + shdr->sh_size);
1164 size_t cnt;
1165 for (cnt = 2; cnt < 2 + nbucket; ++cnt)
1166- if (((Elf32_Word *) data->d_buf)[cnt] >= maxidx)
1167+ {
1168+ if (buf + cnt >= end)
1169+ break;
1170+ else if (buf[cnt] >= maxidx)
1171 ERROR (gettext ("\
1172 section [%2d] '%s': hash bucket reference %zu out of bounds\n"),
1173 idx, section_name (ebl, idx), cnt - 2);
1174+ }
1175
1176 for (; cnt < 2 + nbucket + nchain; ++cnt)
1177- if (((Elf32_Word *) data->d_buf)[cnt] >= maxidx)
1178+ {
1179+ if (buf + cnt >= end)
1180+ break;
1181+ else if (buf[cnt] >= maxidx)
1182 ERROR (gettext ("\
1183 section [%2d] '%s': hash chain reference %zu out of bounds\n"),
1184 idx, section_name (ebl, idx), cnt - 2 - nbucket);
1185+ }
1186 }
1187
1188
1189@@ -2011,18 +2049,28 @@
1190 maxidx = symsize;
1191 }
1192
1193+ Elf64_Xword *buf = (Elf64_Xword *) data->d_buf;
1194+ Elf64_Xword *end = (Elf64_Xword *) ((char *) data->d_buf + shdr->sh_size);
1195 size_t cnt;
1196 for (cnt = 2; cnt < 2 + nbucket; ++cnt)
1197- if (((Elf64_Xword *) data->d_buf)[cnt] >= maxidx)
1198+ {
1199+ if (buf + cnt >= end)
1200+ break;
1201+ else if (buf[cnt] >= maxidx)
1202 ERROR (gettext ("\
1203 section [%2d] '%s': hash bucket reference %zu out of bounds\n"),
1204 idx, section_name (ebl, idx), cnt - 2);
1205+ }
1206
1207 for (; cnt < 2 + nbucket + nchain; ++cnt)
1208- if (((Elf64_Xword *) data->d_buf)[cnt] >= maxidx)
1209+ {
1210+ if (buf + cnt >= end)
1211+ break;
1212+ else if (buf[cnt] >= maxidx)
1213 ERROR (gettext ("\
1214 section [%2d] '%s': hash chain reference %" PRIu64 " out of bounds\n"),
1215- idx, section_name (ebl, idx), (uint64_t) (cnt - 2 - nbucket));
1216+ idx, section_name (ebl, idx), (uint64_t) cnt - 2 - nbucket);
1217+ }
1218 }
1219
1220
1221@@ -2047,7 +2095,7 @@
1222 if (shdr->sh_size < (4 + bitmask_words + nbuckets) * sizeof (Elf32_Word))
1223 {
1224 ERROR (gettext ("\
1225-section [%2d] '%s': hash table section is too small (is %ld, expected at least%ld)\n"),
1226+section [%2d] '%s': hash table section is too small (is %ld, expected at least %ld)\n"),
1227 idx, section_name (ebl, idx), (long int) shdr->sh_size,
1228 (long int) ((4 + bitmask_words + nbuckets) * sizeof (Elf32_Word)));
1229 return;
1230@@ -2719,8 +2767,9 @@
1231
1232 /* The number of elements in the version symbol table must be the
1233 same as the number of symbols. */
1234- if (shdr->sh_size / shdr->sh_entsize
1235- != symshdr->sh_size / symshdr->sh_entsize)
1236+ if (shdr->sh_entsize && symshdr->sh_entsize
1237+ && (shdr->sh_size / shdr->sh_entsize
1238+ != symshdr->sh_size / symshdr->sh_entsize))
1239 ERROR (gettext ("\
1240 section [%2d] '%s' has different number of entries than symbol table [%2d] '%s'\n"),
1241 idx, section_name (ebl, idx),
1242Index: elfutils-0.148/src/readelf.c
1243===================================================================
1244--- elfutils-0.148.orig/src/readelf.c 2010-07-03 13:07:10.000000000 +0000
1245+++ elfutils-0.148/src/readelf.c 2010-07-03 13:07:11.000000000 +0000
1246@@ -1172,6 +1172,8 @@
1247 Elf32_Word *grpref = (Elf32_Word *) data->d_buf;
1248
1249 GElf_Sym sym_mem;
1250+ GElf_Sym *sym = gelf_getsym (symdata, shdr->sh_info, &sym_mem);
1251+
1252 printf ((grpref[0] & GRP_COMDAT)
1253 ? ngettext ("\
1254 \nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n",
1255@@ -1184,8 +1186,8 @@
1256 data->d_size / sizeof (Elf32_Word) - 1),
1257 elf_ndxscn (scn),
1258 elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
1259- elf_strptr (ebl->elf, symshdr->sh_link,
1260- gelf_getsym (symdata, shdr->sh_info, &sym_mem)->st_name)
1261+ (sym == NULL ? NULL
1262+ : elf_strptr (ebl->elf, symshdr->sh_link, sym->st_name))
1263 ?: gettext ("<INVALID SYMBOL>"),
1264 data->d_size / sizeof (Elf32_Word) - 1);
1265
1266@@ -1336,7 +1338,8 @@
1267 handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
1268 {
1269 int class = gelf_getclass (ebl->elf);
1270- GElf_Shdr glink;
1271+ GElf_Shdr glink_mem;
1272+ GElf_Shdr *glink;
1273 Elf_Data *data;
1274 size_t cnt;
1275 size_t shstrndx;
1276@@ -1351,6 +1354,11 @@
1277 error (EXIT_FAILURE, 0,
1278 gettext ("cannot get section header string table index"));
1279
1280+ glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &glink_mem);
1281+ if (glink == NULL)
1282+ error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"),
1283+ elf_ndxscn (scn));
1284+
1285 printf (ngettext ("\
1286 \nDynamic segment contains %lu entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
1287 "\
1288@@ -1360,9 +1368,7 @@
1289 class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
1290 shdr->sh_offset,
1291 (int) shdr->sh_link,
1292- elf_strptr (ebl->elf, shstrndx,
1293- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
1294- &glink)->sh_name));
1295+ elf_strptr (ebl->elf, shstrndx, glink->sh_name));
1296 fputs_unlocked (gettext (" Type Value\n"), stdout);
1297
1298 for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
1299@@ -1945,6 +1951,13 @@
1300 error (EXIT_FAILURE, 0,
1301 gettext ("cannot get section header string table index"));
1302
1303+ GElf_Shdr glink_mem;
1304+ GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
1305+ &glink_mem);
1306+ if (glink == NULL)
1307+ error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"),
1308+ elf_ndxscn (scn));
1309+
1310 /* Now we can compute the number of entries in the section. */
1311 unsigned int nsyms = data->d_size / (class == ELFCLASS32
1312 ? sizeof (Elf32_Sym)
1313@@ -1955,15 +1968,12 @@
1314 nsyms),
1315 (unsigned int) elf_ndxscn (scn),
1316 elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms);
1317- GElf_Shdr glink;
1318 printf (ngettext (" %lu local symbol String table: [%2u] '%s'\n",
1319 " %lu local symbols String table: [%2u] '%s'\n",
1320 shdr->sh_info),
1321 (unsigned long int) shdr->sh_info,
1322 (unsigned int) shdr->sh_link,
1323- elf_strptr (ebl->elf, shstrndx,
1324- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
1325- &glink)->sh_name));
1326+ elf_strptr (ebl->elf, shstrndx, glink->sh_name));
1327
1328 fputs_unlocked (class == ELFCLASS32
1329 ? gettext ("\
1330@@ -2199,7 +2209,13 @@
1331 error (EXIT_FAILURE, 0,
1332 gettext ("cannot get section header string table index"));
1333
1334- GElf_Shdr glink;
1335+ GElf_Shdr glink_mem;
1336+ GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
1337+ &glink_mem);
1338+ if (glink == NULL)
1339+ error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"),
1340+ elf_ndxscn (scn));
1341+
1342 printf (ngettext ("\
1343 \nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
1344 "\
1345@@ -2210,9 +2226,7 @@
1346 class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
1347 shdr->sh_offset,
1348 (unsigned int) shdr->sh_link,
1349- elf_strptr (ebl->elf, shstrndx,
1350- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
1351- &glink)->sh_name));
1352+ elf_strptr (ebl->elf, shstrndx, glink->sh_name));
1353
1354 unsigned int offset = 0;
1355 for (int cnt = shdr->sh_info; --cnt >= 0; )
1356@@ -2265,8 +2279,14 @@
1357 error (EXIT_FAILURE, 0,
1358 gettext ("cannot get section header string table index"));
1359
1360+ GElf_Shdr glink_mem;
1361+ GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
1362+ &glink_mem);
1363+ if (glink == NULL)
1364+ error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"),
1365+ elf_ndxscn (scn));
1366+
1367 int class = gelf_getclass (ebl->elf);
1368- GElf_Shdr glink;
1369 printf (ngettext ("\
1370 \nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
1371 "\
1372@@ -2278,9 +2298,7 @@
1373 class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
1374 shdr->sh_offset,
1375 (unsigned int) shdr->sh_link,
1376- elf_strptr (ebl->elf, shstrndx,
1377- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
1378- &glink)->sh_name));
1379+ elf_strptr (ebl->elf, shstrndx, glink->sh_name));
1380
1381 unsigned int offset = 0;
1382 for (int cnt = shdr->sh_info; --cnt >= 0; )
1383@@ -2542,8 +2560,14 @@
1384 filename = NULL;
1385 }
1386
1387+ GElf_Shdr glink_mem;
1388+ GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
1389+ &glink_mem);
1390+ if (glink == NULL)
1391+ error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"),
1392+ elf_ndxscn (scn));
1393+
1394 /* Print the header. */
1395- GElf_Shdr glink;
1396 printf (ngettext ("\
1397 \nVersion symbols section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'",
1398 "\
1399@@ -2555,9 +2579,7 @@
1400 class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
1401 shdr->sh_offset,
1402 (unsigned int) shdr->sh_link,
1403- elf_strptr (ebl->elf, shstrndx,
1404- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
1405- &glink)->sh_name));
1406+ elf_strptr (ebl->elf, shstrndx, glink->sh_name));
1407
1408 /* Now we can finally look at the actual contents of this section. */
1409 for (unsigned int cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
1410@@ -2609,7 +2631,17 @@
1411 for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt)
1412 ++counts[lengths[cnt]];
1413
1414- GElf_Shdr glink;
1415+ GElf_Shdr glink_mem;
1416+ GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf,
1417+ shdr->sh_link),
1418+ &glink_mem);
1419+ if (glink == NULL)
1420+ {
1421+ error (0, 0, gettext ("invalid sh_link value in section %Zu"),
1422+ elf_ndxscn (scn));
1423+ return;
1424+ }
1425+
1426 printf (ngettext ("\
1427 \nHistogram for bucket list length in section [%2u] '%s' (total of %d bucket):\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
1428 "\
1429@@ -2622,9 +2654,7 @@
1430 shdr->sh_addr,
1431 shdr->sh_offset,
1432 (unsigned int) shdr->sh_link,
1433- elf_strptr (ebl->elf, shstrndx,
1434- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
1435- &glink)->sh_name));
1436+ elf_strptr (ebl->elf, shstrndx, glink->sh_name));
1437
1438 if (extrastr != NULL)
1439 fputs (extrastr, stdout);
1440@@ -4312,6 +4342,16 @@
1441 return;
1442 }
1443
1444+ GElf_Shdr glink_mem;
1445+ GElf_Shdr *glink;
1446+ glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &glink_mem);
1447+ if (glink == NULL)
1448+ {
1449+ error (0, 0, gettext ("invalid sh_link value in section %Zu"),
1450+ elf_ndxscn (scn));
1451+ return;
1452+ }
1453+
1454 printf (ngettext ("\
1455 \nDWARF section [%2zu] '%s' at offset %#" PRIx64 " contains %zu entry:\n",
1456 "\
1457Index: elfutils-0.148/src/strip.c
1458===================================================================
1459--- elfutils-0.148.orig/src/strip.c 2010-07-03 13:07:10.000000000 +0000
1460+++ elfutils-0.148/src/strip.c 2010-07-03 13:07:11.000000000 +0000
1461@@ -561,6 +561,11 @@
1462 goto fail_close;
1463 }
1464
1465+ if (shstrndx >= shnum)
1466+ goto illformed;
1467+
1468+#define elf_assert(test) do { if (!(test)) goto illformed; } while (0)
1469+
1470 /* Storage for section information. We leave room for two more
1471 entries since we unconditionally create a section header string
1472 table. Maybe some weird tool created an ELF file without one.
1473@@ -582,7 +587,7 @@
1474 {
1475 /* This should always be true (i.e., there should not be any
1476 holes in the numbering). */
1477- assert (elf_ndxscn (scn) == cnt);
1478+ elf_assert (elf_ndxscn (scn) == cnt);
1479
1480 shdr_info[cnt].scn = scn;
1481
1482@@ -595,6 +600,7 @@
1483 shdr_info[cnt].shdr.sh_name);
1484 if (shdr_info[cnt].name == NULL)
1485 {
1486+ illformed:
1487 error (0, 0, gettext ("illformed file '%s'"), fname);
1488 goto fail_close;
1489 }
1490@@ -604,6 +610,8 @@
1491
1492 /* Remember the shdr.sh_link value. */
1493 shdr_info[cnt].old_sh_link = shdr_info[cnt].shdr.sh_link;
1494+ if (shdr_info[cnt].old_sh_link >= shnum)
1495+ goto illformed;
1496
1497 /* Sections in files other than relocatable object files which
1498 are not loaded can be freely moved by us. In relocatable
1499@@ -616,7 +624,7 @@
1500 appropriate reference. */
1501 if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB_SHNDX))
1502 {
1503- assert (shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx == 0);
1504+ elf_assert (shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx == 0);
1505 shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx = cnt;
1506 }
1507 else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GROUP))
1508@@ -633,7 +641,12 @@
1509 for (inner = 1;
1510 inner < shdr_info[cnt].data->d_size / sizeof (Elf32_Word);
1511 ++inner)
1512+ {
1513+ if (grpref[inner] < shnum)
1514 shdr_info[grpref[inner]].group_idx = cnt;
1515+ else
1516+ goto illformed;
1517+ }
1518
1519 if (inner == 1 || (inner == 2 && (grpref[0] & GRP_COMDAT) == 0))
1520 /* If the section group contains only one element and this
1521@@ -644,7 +657,7 @@
1522 }
1523 else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym))
1524 {
1525- assert (shdr_info[shdr_info[cnt].shdr.sh_link].version_idx == 0);
1526+ elf_assert (shdr_info[shdr_info[cnt].shdr.sh_link].version_idx == 0);
1527 shdr_info[shdr_info[cnt].shdr.sh_link].version_idx = cnt;
1528 }
1529
1530@@ -652,7 +665,7 @@
1531 discarded right away. */
1532 if ((shdr_info[cnt].shdr.sh_flags & SHF_GROUP) != 0)
1533 {
1534- assert (shdr_info[cnt].group_idx != 0);
1535+ elf_assert (shdr_info[cnt].group_idx != 0);
1536
1537 if (shdr_info[shdr_info[cnt].group_idx].idx == 0)
1538 {
1539@@ -727,11 +740,15 @@
1540 {
1541 /* If a relocation section is marked as being removed make
1542 sure the section it is relocating is removed, too. */
1543- if ((shdr_info[cnt].shdr.sh_type == SHT_REL
1544+ if (shdr_info[cnt].shdr.sh_type == SHT_REL
1545 || shdr_info[cnt].shdr.sh_type == SHT_RELA)
1546- && shdr_info[shdr_info[cnt].shdr.sh_info].idx != 0)
1547+ {
1548+ if (shdr_info[cnt].shdr.sh_info >= shnum)
1549+ goto illformed;
1550+ else if (shdr_info[shdr_info[cnt].shdr.sh_info].idx != 0)
1551 shdr_info[cnt].idx = 1;
1552 }
1553+ }
1554
1555 if (shdr_info[cnt].idx == 1)
1556 {
1557@@ -758,7 +775,7 @@
1558 if (shdr_info[cnt].symtab_idx != 0
1559 && shdr_info[shdr_info[cnt].symtab_idx].data == NULL)
1560 {
1561- assert (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB);
1562+ elf_assert (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB);
1563
1564 shdr_info[shdr_info[cnt].symtab_idx].data
1565 = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn,
1566@@ -798,6 +815,9 @@
1567 else if (scnidx == SHN_XINDEX)
1568 scnidx = xndx;
1569
1570+ if (scnidx >= shnum)
1571+ goto illformed;
1572+
1573 if (shdr_info[scnidx].idx == 0)
1574 /* This symbol table has a real symbol in
1575 a discarded section. So preserve the
1576@@ -828,12 +848,16 @@
1577 }
1578
1579 /* Handle references through sh_info. */
1580- if (SH_INFO_LINK_P (&shdr_info[cnt].shdr)
1581- && shdr_info[shdr_info[cnt].shdr.sh_info].idx == 0)
1582+ if (SH_INFO_LINK_P (&shdr_info[cnt].shdr))
1583+ {
1584+ if (shdr_info[cnt].shdr.sh_info >= shnum)
1585+ goto illformed;
1586+ else if ( shdr_info[shdr_info[cnt].shdr.sh_info].idx == 0)
1587 {
1588 shdr_info[shdr_info[cnt].shdr.sh_info].idx = 1;
1589 changes |= shdr_info[cnt].shdr.sh_info < cnt;
1590 }
1591+ }
1592
1593 /* Mark the section as investigated. */
1594 shdr_info[cnt].idx = 2;
1595@@ -972,7 +996,7 @@
1596 error (EXIT_FAILURE, 0, gettext ("while generating output file: %s"),
1597 elf_errmsg (-1));
1598
1599- assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx);
1600+ elf_assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx);
1601
1602 /* Add this name to the section header string table. */
1603 shdr_info[cnt].se = ebl_strtabadd (shst, shdr_info[cnt].name, 0);
1604@@ -1009,7 +1033,7 @@
1605 error (EXIT_FAILURE, 0,
1606 gettext ("while create section header section: %s"),
1607 elf_errmsg (-1));
1608- assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx);
1609+ elf_assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx);
1610
1611 shdr_info[cnt].data = elf_newdata (shdr_info[cnt].newscn);
1612 if (shdr_info[cnt].data == NULL)
1613@@ -1065,7 +1089,7 @@
1614 error (EXIT_FAILURE, 0,
1615 gettext ("while create section header section: %s"),
1616 elf_errmsg (-1));
1617- assert (elf_ndxscn (shdr_info[cnt].newscn) == idx);
1618+ elf_assert (elf_ndxscn (shdr_info[cnt].newscn) == idx);
1619
1620 /* Finalize the string table and fill in the correct indices in the
1621 section headers. */
1622@@ -1155,20 +1179,20 @@
1623 shndxdata = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn,
1624 NULL);
1625
1626- assert ((versiondata->d_size / sizeof (Elf32_Word))
1627+ elf_assert ((versiondata->d_size / sizeof (Elf32_Word))
1628 >= shdr_info[cnt].data->d_size / elsize);
1629 }
1630
1631 if (shdr_info[cnt].version_idx != 0)
1632 {
1633- assert (shdr_info[cnt].shdr.sh_type == SHT_DYNSYM);
1634+ elf_assert (shdr_info[cnt].shdr.sh_type == SHT_DYNSYM);
1635 /* This section has associated version
1636 information. We have to modify that
1637 information, too. */
1638 versiondata = elf_getdata (shdr_info[shdr_info[cnt].version_idx].scn,
1639 NULL);
1640
1641- assert ((versiondata->d_size / sizeof (GElf_Versym))
1642+ elf_assert ((versiondata->d_size / sizeof (GElf_Versym))
1643 >= shdr_info[cnt].data->d_size / elsize);
1644 }
1645
1646@@ -1223,7 +1247,7 @@
1647 sec = shdr_info[sym->st_shndx].idx;
1648 else
1649 {
1650- assert (shndxdata != NULL);
1651+ elf_assert (shndxdata != NULL);
1652
1653 sec = shdr_info[xshndx].idx;
1654 }
1655@@ -1244,7 +1268,7 @@
1656 nxshndx = sec;
1657 }
1658
1659- assert (sec < SHN_LORESERVE || shndxdata != NULL);
1660+ elf_assert (sec < SHN_LORESERVE || shndxdata != NULL);
1661
1662 if ((inner != destidx || nshndx != sym->st_shndx
1663 || (shndxdata != NULL && nxshndx != xshndx))
1664@@ -1268,7 +1292,7 @@
1665 || shdr_info[cnt].debug_data == NULL)
1666 /* This is a section symbol for a section which has
1667 been removed. */
1668- assert (GELF_ST_TYPE (sym->st_info) == STT_SECTION);
1669+ elf_assert (GELF_ST_TYPE (sym->st_info) == STT_SECTION);
1670 }
1671
1672 if (destidx != inner)
1673@@ -1455,11 +1479,11 @@
1674 {
1675 GElf_Sym sym_mem;
1676 GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem);
1677- assert (sym != NULL);
1678+ elf_assert (sym != NULL);
1679
1680 const char *name = elf_strptr (elf, strshndx,
1681 sym->st_name);
1682- assert (name != NULL);
1683+ elf_assert (name != NULL);
1684 size_t hidx = elf_hash (name) % nbucket;
1685
1686 if (bucket[hidx] == 0)
1687@@ -1478,7 +1502,7 @@
1688 else
1689 {
1690 /* Alpha and S390 64-bit use 64-bit SHT_HASH entries. */
1691- assert (shdr_info[cnt].shdr.sh_entsize
1692+ elf_assert (shdr_info[cnt].shdr.sh_entsize
1693 == sizeof (Elf64_Xword));
1694
1695 Elf64_Xword *bucket = (Elf64_Xword *) hashd->d_buf;
1696@@ -1509,11 +1533,11 @@
1697 {
1698 GElf_Sym sym_mem;
1699 GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem);
1700- assert (sym != NULL);
1701+ elf_assert (sym != NULL);
1702
1703 const char *name = elf_strptr (elf, strshndx,
1704 sym->st_name);
1705- assert (name != NULL);
1706+ elf_assert (name != NULL);
1707 size_t hidx = elf_hash (name) % nbucket;
1708
1709 if (bucket[hidx] == 0)
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/remove-unused.patch b/meta/recipes-devtools/elfutils/elfutils-0.148/remove-unused.patch
deleted file mode 100644
index 6a19791480..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/remove-unused.patch
+++ /dev/null
@@ -1,154 +0,0 @@
1Upstream-Status: Backport
2
3Remove unused variables from the code to prevent -Werror causing a build
4failure on hosts with GCC 4.6.
5
6These changes are all upstream so should not be required once we've updated
7to elfutils 0.152 or later. Therefore this patch consolidates several
8changes from elfutils upstream by Roland McGrath into a single file so that
9it's easier to remove later once we upgrade.
10Links to upstream gitweb of the consolidated commits follow:
11- http://git.fedorahosted.org/git?p=elfutils.git;a=commit;h=7094d00a169afb27e0323f8580e817798ae7c240
12- http://git.fedorahosted.org/git?p=elfutils.git;a=commit;h=fd992543185126eb0280c1ee0883e073020499b4
13- http://git.fedorahosted.org/git?p=elfutils.git;a=commit;h=4db89f04bb59327abd7a3b60e88f2e7e73c65c79
14- http://git.fedorahosted.org/git?p=elfutils.git;a=commit;h=8f6c1795ab9d41f03805eebd55767070ade55aac
15- http://git.fedorahosted.org/git?p=elfutils.git;a=commit;h=240784b48aa276822c5a61c9ad6a4355051ce259
16
17Joshua Lock <josh@linux.intel.com> - 06/04/11
18
19Index: elfutils-0.148/libasm/asm_newscn.c
20===================================================================
21--- elfutils-0.148.orig/libasm/asm_newscn.c
22+++ elfutils-0.148/libasm/asm_newscn.c
23@@ -162,7 +162,6 @@ asm_newscn (ctx, scnname, type, flags)
24 GElf_Xword flags;
25 {
26 size_t scnname_len = strlen (scnname) + 1;
27- unsigned long int hval;
28 AsmScn_t *result;
29
30 /* If no context is given there might be an earlier error. */
31@@ -180,8 +179,6 @@ asm_newscn (ctx, scnname, type, flags)
32 return NULL;
33 }
34
35- hval = elf_hash (scnname);
36-
37 rwlock_wrlock (ctx->lock);
38
39 /* This is a new section. */
40Index: elfutils-0.148/src/elflint.c
41===================================================================
42--- elfutils-0.148.orig/src/elflint.c
43+++ elfutils-0.148/src/elflint.c
44@@ -707,9 +707,10 @@ section [%2d] '%s': symbol %zu: invalid
45 {
46 if (xndxdata == NULL)
47 {
48- ERROR (gettext ("\
49+ if (!no_xndx_warned)
50+ ERROR (gettext ("\
51 section [%2d] '%s': symbol %zu: too large section index but no extended section index section\n"),
52- idx, section_name (ebl, idx), cnt);
53+ idx, section_name (ebl, idx), cnt);
54 no_xndx_warned = true;
55 }
56 else if (xndx < SHN_LORESERVE)
57@@ -1592,10 +1593,6 @@ check_dynamic (Ebl *ebl, GElf_Ehdr *ehdr
58 [DT_STRSZ] = true,
59 [DT_SYMENT] = true
60 };
61- GElf_Addr reladdr = 0;
62- GElf_Word relsz = 0;
63- GElf_Addr pltreladdr = 0;
64- GElf_Word pltrelsz = 0;
65
66 memset (has_dt, '\0', sizeof (has_dt));
67 memset (has_val_dt, '\0', sizeof (has_val_dt));
68@@ -1694,15 +1691,6 @@ section [%2d] '%s': entry %zu: level 2 t
69 section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"),
70 idx, section_name (ebl, idx), cnt);
71
72- if (dyn->d_tag == DT_REL)
73- reladdr = dyn->d_un.d_ptr;
74- if (dyn->d_tag == DT_RELSZ)
75- relsz = dyn->d_un.d_val;
76- if (dyn->d_tag == DT_JMPREL)
77- pltreladdr = dyn->d_un.d_ptr;
78- if (dyn->d_tag == DT_PLTRELSZ)
79- pltrelsz = dyn->d_un.d_val;
80-
81 /* Check that addresses for entries are in loaded segments. */
82 switch (dyn->d_tag)
83 {
84Index: elfutils-0.148/src/ldgeneric.c
85===================================================================
86--- elfutils-0.148.orig/src/ldgeneric.c
87+++ elfutils-0.148/src/ldgeneric.c
88@@ -285,12 +285,10 @@ static int
89 check_for_duplicate2 (struct usedfiles *newp, struct usedfiles *list)
90 {
91 struct usedfiles *first;
92- struct usedfiles *prevp;
93
94 if (list == NULL)
95 return 0;
96
97- prevp = list;
98 list = first = list->next;
99 do
100 {
101Index: elfutils-0.148/src/ldscript.y
102===================================================================
103--- elfutils-0.148.orig/src/ldscript.y
104+++ elfutils-0.148/src/ldscript.y
105@@ -802,12 +802,9 @@ add_versions (struct version *versions)
106
107 do
108 {
109- struct version *oldp;
110-
111 add_id_list (versions->versionname, versions->local_names, true);
112 add_id_list (versions->versionname, versions->global_names, false);
113
114- oldp = versions;
115 versions = versions->next;
116 }
117 while (versions != NULL);
118Index: elfutils-0.148/src/unstrip.c
119===================================================================
120--- elfutils-0.148.orig/src/unstrip.c
121+++ elfutils-0.148/src/unstrip.c
122@@ -1301,7 +1301,6 @@ more sections in stripped file than debu
123 /* Match each debuginfo section with its corresponding stripped section. */
124 bool check_prelink = false;
125 Elf_Scn *unstripped_symtab = NULL;
126- size_t unstripped_strtab_ndx = SHN_UNDEF;
127 size_t alloc_avail = 0;
128 scn = NULL;
129 while ((scn = elf_nextscn (unstripped, scn)) != NULL)
130@@ -1313,7 +1312,6 @@ more sections in stripped file than debu
131 if (shdr->sh_type == SHT_SYMTAB)
132 {
133 unstripped_symtab = scn;
134- unstripped_strtab_ndx = shdr->sh_link;
135 continue;
136 }
137
138Index: elfutils-0.148/src/ldscript.c
139===================================================================
140--- elfutils-0.148.orig/src/ldscript.c
141+++ elfutils-0.148/src/ldscript.c
142@@ -2728,12 +2728,9 @@ add_versions (struct version *versions)
143
144 do
145 {
146- struct version *oldp;
147-
148 add_id_list (versions->versionname, versions->local_names, true);
149 add_id_list (versions->versionname, versions->global_names, false);
150
151- oldp = versions;
152 versions = versions->next;
153 }
154 while (versions != NULL);
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/testsuite-ignore-elflint.diff b/meta/recipes-devtools/elfutils/elfutils-0.148/testsuite-ignore-elflint.diff
deleted file mode 100644
index d792d5fd73..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/testsuite-ignore-elflint.diff
+++ /dev/null
@@ -1,21 +0,0 @@
1Upstream-Status: Backport
2
3On many architectures this test fails because binaries/libs produced by
4binutils don't pass elflint. However elfutils shouldn't FTBFS because of this.
5
6So we run the tests on all archs to see what breaks, but if it breaks we ignore
7the result (exitcode 77 means: this test was skipped).
8
9Index: elfutils-0.128/tests/run-elflint-self.sh
10===================================================================
11--- elfutils-0.128.orig/tests/run-elflint-self.sh 2007-07-08 21:46:16.000000000 +0000
12+++ elfutils-0.128/tests/run-elflint-self.sh 2007-07-08 21:46:49.000000000 +0000
13@@ -32,7 +32,7 @@
14 # echo $1
15 if [ -f $1 ]; then
16 testrun ../src/elflint --quiet --gnu-ld $1 ||
17- { echo "*** failure in $1"; status=1; }
18+ { echo "*** failure in $1"; status=77; }
19 fi
20 }
21
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/uclibc-support-for-elfutils-0.148.patch b/meta/recipes-devtools/elfutils/elfutils-0.148/uclibc-support-for-elfutils-0.148.patch
deleted file mode 100644
index 3cf16ac923..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/uclibc-support-for-elfutils-0.148.patch
+++ /dev/null
@@ -1,91 +0,0 @@
1on uclibc systems libintl and libuargp are separate from libc.
2so they need to be specified on commandline when we use proxy-libintl
3then libintl is a static archive so it should be listed last since
4elfutils does not respect disable-nls we need to link in libintl
5
6We add a new option --enable-uclibc which will be used to control
7the uclibc specific configurations during build.
8
9Signed-off-by: Khem Raj <raj.khem>
10
11Upstream-Status: Inappropriate [uclibc specific]
12
13Index: elfutils-0.148/configure.ac
14===================================================================
15--- elfutils-0.148.orig/configure.ac
16+++ elfutils-0.148/configure.ac
17@@ -55,9 +55,16 @@ AS_IF([test "$use_locks" = yes], [AC_DEF
18
19 AH_TEMPLATE([USE_LOCKS], [Defined if libraries should be thread-safe.])
20
21+AC_ARG_ENABLE([uclibc],
22+AS_HELP_STRING([--enable-uclibc], [Use uclibc for system libraries]),
23+use_uclibc=yes, use_uclibc=no)
24+AM_CONDITIONAL(USE_UCLIBC, test "$use_uclibc" = yes)
25+AS_IF([test "$use_uclibc" = yes], [AC_DEFINE(USE_UCLIBC)])
26+
27+AH_TEMPLATE([USE_UCLIBC], [Defined if uclibc libraries are used.])
28+
29 dnl Add all the languages for which translations are available.
30 ALL_LINGUAS=
31-
32 AC_PROG_CC
33 AC_PROG_RANLIB
34 AC_PROG_YACC
35Index: elfutils-0.148/libelf/Makefile.am
36===================================================================
37--- elfutils-0.148.orig/libelf/Makefile.am
38+++ elfutils-0.148/libelf/Makefile.am
39@@ -93,7 +93,12 @@ if !MUDFLAP
40 libelf_pic_a_SOURCES =
41 am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os)
42
43+
44 libelf_so_LDLIBS =
45+if USE_UCLIBC
46+libelf_so_LDLIBS += -lintl -luargp
47+endif
48+
49 if USE_LOCKS
50 libelf_so_LDLIBS += -lpthread
51 endif
52Index: elfutils-0.148/libdw/Makefile.am
53===================================================================
54--- elfutils-0.148.orig/libdw/Makefile.am
55+++ elfutils-0.148/libdw/Makefile.am
56@@ -98,6 +98,11 @@ if !MUDFLAP
57 libdw_pic_a_SOURCES =
58 am_libdw_pic_a_OBJECTS = $(libdw_a_SOURCES:.c=.os)
59
60+libdw_so_LDLIBS =
61+if USE_UCLIBC
62+libdw_so_LDLIBS += -lintl -luargp
63+endif
64+
65 libdw_so_SOURCES =
66 libdw.so: $(srcdir)/libdw.map libdw_pic.a \
67 ../libdwfl/libdwfl_pic.a ../libebl/libebl.a \
68@@ -108,7 +113,7 @@ libdw.so: $(srcdir)/libdw.map libdw_pic.
69 -Wl,--enable-new-dtags,-rpath,$(pkglibdir) \
70 -Wl,--version-script,$<,--no-undefined \
71 -Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\
72- -ldl $(zip_LIBS)
73+ -ldl $(zip_LIBS) $(libdw_so_LDLIBS)
74 if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
75 ln -fs $@ $@.$(VERSION)
76
77Index: elfutils-0.148/libcpu/Makefile.am
78===================================================================
79--- elfutils-0.148.orig/libcpu/Makefile.am
80+++ elfutils-0.148/libcpu/Makefile.am
81@@ -63,6 +63,10 @@ i386_parse_CFLAGS = -DNMNES="`wc -l < i3
82 i386_lex.o: i386_parse.h
83 i386_gendis_LDADD = $(libeu) -lm $(libmudflap)
84
85+if USE_UCLIBC
86+i386_gendis_LDADD += -luargp -lintl
87+endif
88+
89 i386_parse.h: i386_parse.c ;
90
91 noinst_HEADERS = memory-access.h i386_parse.h i386_data.h
diff --git a/meta/recipes-devtools/elfutils/elfutils-0.148/x86_64_dis.h b/meta/recipes-devtools/elfutils/elfutils-0.148/x86_64_dis.h
deleted file mode 100644
index a0198bed97..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils-0.148/x86_64_dis.h
+++ /dev/null
@@ -1,1632 +0,0 @@
1#define MNEMONIC_BITS 10
2#define SUFFIX_BITS 3
3#define FCT1_BITS 7
4#define STR1_BITS 4
5#define OFF1_1_BITS 7
6#define OFF1_1_BIAS 3
7#define OFF1_2_BITS 7
8#define OFF1_2_BIAS 4
9#define OFF1_3_BITS 1
10#define OFF1_3_BIAS 7
11#define FCT2_BITS 6
12#define STR2_BITS 2
13#define OFF2_1_BITS 7
14#define OFF2_1_BIAS 5
15#define OFF2_2_BITS 7
16#define OFF2_2_BIAS 4
17#define OFF2_3_BITS 4
18#define OFF2_3_BIAS 7
19#define FCT3_BITS 4
20#define STR3_BITS 1
21#define OFF3_1_BITS 6
22#define OFF3_1_BIAS 10
23#define OFF3_2_BITS 1
24#define OFF3_2_BIAS 21
25
26#include <i386_data.h>
27
28#define suffix_none 0
29#define suffix_w 1
30#define suffix_w0 2
31#define suffix_W 3
32#define suffix_tttn 4
33#define suffix_D 7
34#define suffix_w1 5
35#define suffix_W1 6
36
37static const opfct_t op1_fct[] =
38{
39 NULL,
40 FCT_MOD$R_M,
41 FCT_Mod$R_m,
42 FCT_abs,
43 FCT_ax,
44 FCT_ax$w,
45 FCT_ccc,
46 FCT_ddd,
47 FCT_disp8,
48 FCT_ds_bx,
49 FCT_ds_si,
50 FCT_dx,
51 FCT_es_di,
52 FCT_freg,
53 FCT_imm$s,
54 FCT_imm$w,
55 FCT_imm16,
56 FCT_imm64$w,
57 FCT_imm8,
58 FCT_imms8,
59 FCT_mmxreg,
60 FCT_mod$16r_m,
61 FCT_mod$64r_m,
62 FCT_mod$8r_m,
63 FCT_mod$r_m,
64 FCT_mod$r_m$w,
65 FCT_reg,
66 FCT_reg$w,
67 FCT_reg64,
68 FCT_rel,
69 FCT_sel,
70 FCT_sreg2,
71 FCT_sreg3,
72 FCT_string,
73 FCT_xmmreg,
74};
75static const char op1_str[] =
76 "%ax\0"
77 "%cl\0"
78 "%rax\0"
79 "%st\0"
80 "%xmm0\0"
81 "*";
82static const uint8_t op1_str_idx[] = {
83 0,
84 4,
85 8,
86 13,
87 17,
88 23,
89};
90static const opfct_t op2_fct[] =
91{
92 NULL,
93 FCT_MOD$R_M,
94 FCT_Mod$R_m,
95 FCT_abs,
96 FCT_absval,
97 FCT_ax$w,
98 FCT_ccc,
99 FCT_ddd,
100 FCT_ds_si,
101 FCT_dx,
102 FCT_es_di,
103 FCT_freg,
104 FCT_imm8,
105 FCT_mmxreg,
106 FCT_mod$64r_m,
107 FCT_mod$r_m,
108 FCT_mod$r_m$w,
109 FCT_oreg,
110 FCT_oreg$w,
111 FCT_reg,
112 FCT_reg$w,
113 FCT_reg64,
114 FCT_sreg3,
115 FCT_string,
116 FCT_xmmreg,
117};
118static const char op2_str[] =
119 "%rcx\0"
120 "%st";
121static const uint8_t op2_str_idx[] = {
122 0,
123 5,
124};
125static const opfct_t op3_fct[] =
126{
127 NULL,
128 FCT_mmxreg,
129 FCT_mod$r_m,
130 FCT_reg,
131 FCT_string,
132 FCT_xmmreg,
133};
134static const char op3_str[] =
135 "%rdx";
136static const uint8_t op3_str_idx[] = {
137 0,
138};
139static const struct instr_enc instrtab[] =
140{
141 { .mnemonic = MNE_adc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
142 { .mnemonic = MNE_adc, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
143 { .mnemonic = MNE_adc, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 19, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
144 { .mnemonic = MNE_adc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 27, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
145 { .mnemonic = MNE_adc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 20, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
146 { .mnemonic = MNE_add, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
147 { .mnemonic = MNE_add, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
148 { .mnemonic = MNE_add, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 19, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
149 { .mnemonic = MNE_add, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 27, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
150 { .mnemonic = MNE_add, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 20, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
151 { .mnemonic = MNE_addsubpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
152 { .mnemonic = MNE_addsubps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
153 { .mnemonic = MNE_and, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
154 { .mnemonic = MNE_and, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
155 { .mnemonic = MNE_and, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 19, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
156 { .mnemonic = MNE_and, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 27, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
157 { .mnemonic = MNE_and, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 20, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
158 { .mnemonic = MNE_andpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
159 { .mnemonic = MNE_andps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
160 { .mnemonic = MNE_andnpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
161 { .mnemonic = MNE_andnps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
162 { .mnemonic = MNE_movslq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 21, .str2 = 0, .off2_1 = 5, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
163 { .mnemonic = MNE_bsf, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
164 { .mnemonic = MNE_bsr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
165 { .mnemonic = MNE_bswap, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 26, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
166 { .mnemonic = MNE_bt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
167 { .mnemonic = MNE_bt, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
168 { .mnemonic = MNE_btc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
169 { .mnemonic = MNE_btc, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
170 { .mnemonic = MNE_btr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
171 { .mnemonic = MNE_btr, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
172 { .mnemonic = MNE_bts, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
173 { .mnemonic = MNE_bts, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
174 { .mnemonic = MNE_call, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 29, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
175 { .mnemonic = MNE_call, .rep = 0, .repe = 0, .suffix = 3, .modrm = 1, .fct1 = 22, .str1 = 6, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
176 { .mnemonic = MNE_lcall, .rep = 0, .repe = 0, .suffix = 3, .modrm = 1, .fct1 = 22, .str1 = 6, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
177 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
178 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
179 { .mnemonic = MNE_clc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
180 { .mnemonic = MNE_cld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
181 { .mnemonic = MNE_cli, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
182 { .mnemonic = MNE_syscall, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
183 { .mnemonic = MNE_clts, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
184 { .mnemonic = MNE_sysret, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
185 { .mnemonic = MNE_sysenter, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
186 { .mnemonic = MNE_sysexit, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
187 { .mnemonic = MNE_cmc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
188 { .mnemonic = MNE_cmov, .rep = 0, .repe = 0, .suffix = 4, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
189 { .mnemonic = MNE_cmp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
190 { .mnemonic = MNE_cmp, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
191 { .mnemonic = MNE_cmp, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 19, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
192 { .mnemonic = MNE_cmp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 27, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
193 { .mnemonic = MNE_cmp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 20, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
194 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
195 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
196 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
197 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
198 { .mnemonic = MNE_cmps, .rep = 0, .repe = 1, .suffix = 1, .modrm = 0, .fct1 = 12, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 8, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
199 { .mnemonic = MNE_cmpxchg, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 27, .str1 = 0, .off1_1 = 15, .off1_2 = 11, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 8, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
200 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
201 { .mnemonic = MNE_cpuid, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
202 { .mnemonic = MNE_cvtdq2pd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
203 { .mnemonic = MNE_cvtpd2dq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
204 { .mnemonic = MNE_cvttpd2dq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
205 { .mnemonic = MNE_dec, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
206 { .mnemonic = MNE_div, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
207 { .mnemonic = MNE_emms, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
208 { .mnemonic = MNE_enter, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 16, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 12, .str2 = 0, .off2_1 = 19, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
209 { .mnemonic = MNE_fnop, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
210 { .mnemonic = MNE_fchs, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
211 { .mnemonic = MNE_fabs, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
212 { .mnemonic = MNE_ftst, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
213 { .mnemonic = MNE_fxam, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
214 { .mnemonic = MNE_fld1, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
215 { .mnemonic = MNE_fldl2t, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
216 { .mnemonic = MNE_fldl2e, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
217 { .mnemonic = MNE_fldpi, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
218 { .mnemonic = MNE_fldlg2, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
219 { .mnemonic = MNE_fldln2, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
220 { .mnemonic = MNE_fldz, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
221 { .mnemonic = MNE_f2xm1, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
222 { .mnemonic = MNE_fyl2x, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
223 { .mnemonic = MNE_fptan, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
224 { .mnemonic = MNE_fpatan, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
225 { .mnemonic = MNE_fxtract, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
226 { .mnemonic = MNE_fprem1, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
227 { .mnemonic = MNE_fdecstp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
228 { .mnemonic = MNE_fincstp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
229 { .mnemonic = MNE_fprem, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
230 { .mnemonic = MNE_fyl2xp1, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
231 { .mnemonic = MNE_fsqrt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
232 { .mnemonic = MNE_fsincos, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
233 { .mnemonic = MNE_frndint, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
234 { .mnemonic = MNE_fscale, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
235 { .mnemonic = MNE_fsin, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
236 { .mnemonic = MNE_fcos, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
237 { .mnemonic = MNE_fadd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
238 { .mnemonic = MNE_fadd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
239 { .mnemonic = MNE_fadd, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
240 { .mnemonic = MNE_fmul, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
241 { .mnemonic = MNE_fmul, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
242 { .mnemonic = MNE_fmul, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
243 { .mnemonic = MNE_fsub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
244 { .mnemonic = MNE_fsub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
245 { .mnemonic = MNE_fsub, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
246 { .mnemonic = MNE_fsubr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
247 { .mnemonic = MNE_fsubr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
248 { .mnemonic = MNE_fsubr, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
249 { .mnemonic = MNE_fst, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
250 { .mnemonic = MNE_fst, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
251 { .mnemonic = MNE_fstp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
252 { .mnemonic = MNE_fstp, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
253 { .mnemonic = MNE_fldenv, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
254 { .mnemonic = MNE_fldcw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
255 { .mnemonic = MNE_fnstenv, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
256 { .mnemonic = MNE_fnstcw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
257 { .mnemonic = MNE_fxch, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
258 { .mnemonic = MNE_faddp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
259 { .mnemonic = MNE_fcmovb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
260 { .mnemonic = MNE_fiadd, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
261 { .mnemonic = MNE_fcmove, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
262 { .mnemonic = MNE_fmulp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
263 { .mnemonic = MNE_fimul, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
264 { .mnemonic = MNE_fsubp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
265 { .mnemonic = MNE_fisub, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
266 { .mnemonic = MNE_fsubrp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
267 { .mnemonic = MNE_fisubr, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
268 { .mnemonic = MNE_fnstsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 1, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
269 { .mnemonic = MNE_fbld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
270 { .mnemonic = MNE_fcomip, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
271 { .mnemonic = MNE_fbstp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
272 { .mnemonic = MNE_fchs, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
273 { .mnemonic = MNE_fclex, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
274 { .mnemonic = MNE_finit, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
275 { .mnemonic = MNE_fwait, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
276 { .mnemonic = MNE_fnclex, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
277 { .mnemonic = MNE_fcmovb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
278 { .mnemonic = MNE_fcmove, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
279 { .mnemonic = MNE_fcmovbe, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
280 { .mnemonic = MNE_fcmovu, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
281 { .mnemonic = MNE_fcmovnb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
282 { .mnemonic = MNE_fcmovne, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
283 { .mnemonic = MNE_fcmovnbe, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
284 { .mnemonic = MNE_fcmovnu, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
285 { .mnemonic = MNE_fcom, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
286 { .mnemonic = MNE_fcom, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
287 { .mnemonic = MNE_fcomp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
288 { .mnemonic = MNE_fcomp, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
289 { .mnemonic = MNE_fcompp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
290 { .mnemonic = MNE_fcomi, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
291 { .mnemonic = MNE_fcomip, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
292 { .mnemonic = MNE_fucomi, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
293 { .mnemonic = MNE_fucomip, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
294 { .mnemonic = MNE_fcos, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
295 { .mnemonic = MNE_fdecstp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
296 { .mnemonic = MNE_fdiv, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
297 { .mnemonic = MNE_fdiv, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
298 { .mnemonic = MNE_fdiv, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
299 { .mnemonic = MNE_fidivl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
300 { .mnemonic = MNE_fdivp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
301 { .mnemonic = MNE_fidiv, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
302 { .mnemonic = MNE_fdivrp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
303 { .mnemonic = MNE_fdivr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 2, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
304 { .mnemonic = MNE_fdivr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
305 { .mnemonic = MNE_fdivr, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
306 { .mnemonic = MNE_fidivrl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
307 { .mnemonic = MNE_fidivr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
308 { .mnemonic = MNE_fdivrp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 4, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 11, .str2 = 0, .off2_1 = 8, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
309 { .mnemonic = MNE_ffree, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
310 { .mnemonic = MNE_fcmovbe, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
311 { .mnemonic = MNE_ficom, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
312 { .mnemonic = MNE_fcmovu, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
313 { .mnemonic = MNE_ficomp, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
314 { .mnemonic = MNE_fild, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
315 { .mnemonic = MNE_fildl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
316 { .mnemonic = MNE_fildll, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
317 { .mnemonic = MNE_fincstp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
318 { .mnemonic = MNE_fninit, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
319 { .mnemonic = MNE_fist, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
320 { .mnemonic = MNE_fistp, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
321 { .mnemonic = MNE_fistpll, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
322 { .mnemonic = MNE_fisttp, .rep = 0, .repe = 0, .suffix = 5, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
323 { .mnemonic = MNE_fisttpll, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
324 { .mnemonic = MNE_fldt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
325 { .mnemonic = MNE_fstpt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
326 { .mnemonic = MNE_fld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
327 { .mnemonic = MNE_fld, .rep = 0, .repe = 0, .suffix = 7, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
328 { .mnemonic = MNE_fucom, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
329 { .mnemonic = MNE_frstor, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
330 { .mnemonic = MNE_fucomp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 13, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
331 { .mnemonic = MNE_fnsave, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
332 { .mnemonic = MNE_fnstsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
333 { .mnemonic = MNE_hlt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
334 { .mnemonic = MNE_idiv, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
335 { .mnemonic = MNE_imul, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
336 { .mnemonic = MNE_imul, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
337 { .mnemonic = MNE_imul, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 14, .str1 = 0, .off1_1 = 13, .off1_2 = 2, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 3, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
338 { .mnemonic = MNE_in, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
339 { .mnemonic = MNE_in, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 11, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 3, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
340 { .mnemonic = MNE_inc, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
341 { .mnemonic = MNE_ins, .rep = 1, .repe = 0, .suffix = 1, .modrm = 0, .fct1 = 11, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 10, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
342 { .mnemonic = MNE_int, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
343 { .mnemonic = MNE_int3, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
344 { .mnemonic = MNE_invd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
345 { .mnemonic = MNE_swapgs, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
346 { .mnemonic = MNE_invlpg, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
347 { .mnemonic = MNE_iret, .rep = 0, .repe = 0, .suffix = 6, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
348 { .mnemonic = MNE_j, .rep = 0, .repe = 0, .suffix = 4, .modrm = 0, .fct1 = 8, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
349 { .mnemonic = MNE_j, .rep = 0, .repe = 0, .suffix = 4, .modrm = 0, .fct1 = 29, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
350 { .mnemonic = MNE_set, .rep = 0, .repe = 0, .suffix = 4, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
351 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 8, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
352 { .mnemonic = MNE_jmp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 8, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
353 { .mnemonic = MNE_jmp, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 29, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
354 { .mnemonic = MNE_jmp, .rep = 0, .repe = 0, .suffix = 3, .modrm = 1, .fct1 = 22, .str1 = 6, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
355 { .mnemonic = MNE_ljmp, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 30, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 4, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
356 { .mnemonic = MNE_ljmp, .rep = 0, .repe = 0, .suffix = 3, .modrm = 1, .fct1 = 22, .str1 = 6, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
357 { .mnemonic = MNE_lahf, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
358 { .mnemonic = MNE_lar, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 21, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
359 { .mnemonic = MNE_lea, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 5, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
360 { .mnemonic = MNE_leave, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
361 { .mnemonic = MNE_lfs, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
362 { .mnemonic = MNE_lgs, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
363 { .mnemonic = MNE_lgdt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
364 { .mnemonic = MNE_lidt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
365 { .mnemonic = MNE_lldt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 21, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
366 { .mnemonic = MNE_lmsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 21, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
367 { .mnemonic = MNE_lock, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
368 { .mnemonic = MNE_lods, .rep = 1, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 10, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 3, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
369 { .mnemonic = MNE_loop, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 8, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
370 { .mnemonic = MNE_loope, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 8, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
371 { .mnemonic = MNE_loopne, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 8, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
372 { .mnemonic = MNE_lsl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 21, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
373 { .mnemonic = MNE_lss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
374 { .mnemonic = MNE_ltr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 21, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
375 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 27, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
376 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 20, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
377 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
378 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 17, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 18, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
379 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 3, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 35, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
380 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 5, .str1 = 0, .off1_1 = 37, .off1_2 = 3, .off1_3 = 0, .fct2 = 3, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
381 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 6, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 21, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
382 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 28, .str1 = 0, .off1_1 = 18, .off1_2 = 0, .off1_3 = 0, .fct2 = 6, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
383 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 7, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 21, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
384 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 28, .str1 = 0, .off1_1 = 18, .off1_2 = 0, .off1_3 = 0, .fct2 = 7, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
385 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 32, .str1 = 0, .off1_1 = 7, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
386 { .mnemonic = MNE_mov, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 22, .str2 = 0, .off2_1 = 5, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
387 { .mnemonic = MNE_movs, .rep = 1, .repe = 0, .suffix = 1, .modrm = 0, .fct1 = 10, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 10, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
388 { .mnemonic = MNE_movsbl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
389 { .mnemonic = MNE_movswl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 21, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
390 { .mnemonic = MNE_movzbl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
391 { .mnemonic = MNE_movzwl, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 21, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
392 { .mnemonic = MNE_mul, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
393 { .mnemonic = MNE_neg, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
394 { .mnemonic = MNE_pause, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
395 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
396 { .mnemonic = MNE_popcnt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
397 { .mnemonic = MNE_not, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
398 { .mnemonic = MNE_or, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 27, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
399 { .mnemonic = MNE_or, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 20, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
400 { .mnemonic = MNE_or, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
401 { .mnemonic = MNE_or, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 19, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
402 { .mnemonic = MNE_or, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
403 { .mnemonic = MNE_out, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 5, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 12, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
404 { .mnemonic = MNE_out, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 5, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 9, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
405 { .mnemonic = MNE_outs, .rep = 1, .repe = 0, .suffix = 1, .modrm = 0, .fct1 = 10, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 9, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
406 { .mnemonic = MNE_pop, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 28, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
407 { .mnemonic = MNE_pop, .rep = 0, .repe = 0, .suffix = 3, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
408 { .mnemonic = MNE_pop, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 32, .str1 = 0, .off1_1 = 7, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
409 { .mnemonic = MNE_popf, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
410 { .mnemonic = MNE_push, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 28, .str1 = 0, .off1_1 = 10, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
411 { .mnemonic = MNE_pushq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
412 { .mnemonic = MNE_push, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 28, .str1 = 0, .off1_1 = 2, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
413 { .mnemonic = MNE_pop, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 28, .str1 = 0, .off1_1 = 2, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
414 { .mnemonic = MNE_push, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 14, .str1 = 0, .off1_1 = 5, .off1_2 = 2, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
415 { .mnemonic = MNE_push, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 31, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
416 { .mnemonic = MNE_push, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 32, .str1 = 0, .off1_1 = 7, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
417 { .mnemonic = MNE_pushf, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
418 { .mnemonic = MNE_rcl, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
419 { .mnemonic = MNE_rcl, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
420 { .mnemonic = MNE_rcl, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
421 { .mnemonic = MNE_rcr, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
422 { .mnemonic = MNE_rcr, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
423 { .mnemonic = MNE_rcr, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
424 { .mnemonic = MNE_rdmsr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
425 { .mnemonic = MNE_rdpmc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
426 { .mnemonic = MNE_rdtsc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
427 { .mnemonic = MNE_ret, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
428 { .mnemonic = MNE_ret, .rep = 0, .repe = 0, .suffix = 3, .modrm = 0, .fct1 = 16, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
429 { .mnemonic = MNE_lret, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
430 { .mnemonic = MNE_lret, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 16, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
431 { .mnemonic = MNE_rol, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
432 { .mnemonic = MNE_rol, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
433 { .mnemonic = MNE_rol, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
434 { .mnemonic = MNE_ror, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
435 { .mnemonic = MNE_ror, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
436 { .mnemonic = MNE_ror, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
437 { .mnemonic = MNE_rsm, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
438 { .mnemonic = MNE_sahf, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
439 { .mnemonic = MNE_sar, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
440 { .mnemonic = MNE_sar, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
441 { .mnemonic = MNE_sar, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
442 { .mnemonic = MNE_sbb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 27, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
443 { .mnemonic = MNE_sbb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 20, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
444 { .mnemonic = MNE_sbb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
445 { .mnemonic = MNE_sbb, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
446 { .mnemonic = MNE_sbb, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 19, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
447 { .mnemonic = MNE_scas, .rep = 0, .repe = 1, .suffix = 0, .modrm = 0, .fct1 = 12, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 3, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
448 { .mnemonic = MNE_set, .rep = 0, .repe = 0, .suffix = 4, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
449 { .mnemonic = MNE_shl, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
450 { .mnemonic = MNE_shl, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
451 { .mnemonic = MNE_shl, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
452 { .mnemonic = MNE_shr, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
453 { .mnemonic = MNE_shld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 2, .str3 = 0, .off3_1 = 6, .off3_2 = 0, },
454 { .mnemonic = MNE_shld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 2, .str3 = 0, .off3_1 = 6, .off3_2 = 0, },
455 { .mnemonic = MNE_shr, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
456 { .mnemonic = MNE_shr, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
457 { .mnemonic = MNE_shrd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 2, .str3 = 0, .off3_1 = 6, .off3_2 = 0, },
458 { .mnemonic = MNE_shrd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 33, .str1 = 2, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 2, .str3 = 0, .off3_1 = 6, .off3_2 = 0, },
459 { .mnemonic = MNE_vmcall, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
460 { .mnemonic = MNE_vmlaunch, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
461 { .mnemonic = MNE_vmresume, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
462 { .mnemonic = MNE_vmxoff, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
463 { .mnemonic = MNE_vmread, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 28, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 14, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
464 { .mnemonic = MNE_vmwrite, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 22, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 21, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
465 { .mnemonic = MNE_sgdt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
466 { .mnemonic = MNE_monitor, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 3, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 1, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 4, .str3 = 1, .off3_1 = 0, .off3_2 = 0, },
467 { .mnemonic = MNE_mwait, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 33, .str1 = 3, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 23, .str2 = 1, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
468 { .mnemonic = MNE_sidt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
469 { .mnemonic = MNE_sldt, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
470 { .mnemonic = MNE_smsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
471 { .mnemonic = MNE_stc, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
472 { .mnemonic = MNE_std, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
473 { .mnemonic = MNE_sti, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
474 { .mnemonic = MNE_stos, .rep = 1, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 5, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 10, .str2 = 0, .off2_1 = 3, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
475 { .mnemonic = MNE_str, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
476 { .mnemonic = MNE_sub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 27, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
477 { .mnemonic = MNE_sub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 20, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
478 { .mnemonic = MNE_sub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
479 { .mnemonic = MNE_sub, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
480 { .mnemonic = MNE_sub, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 19, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
481 { .mnemonic = MNE_test, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 27, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
482 { .mnemonic = MNE_test, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
483 { .mnemonic = MNE_test, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
484 { .mnemonic = MNE_ud2a, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
485 { .mnemonic = MNE_verr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 21, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
486 { .mnemonic = MNE_verw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 21, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
487 { .mnemonic = MNE_wbinvd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
488 { .mnemonic = MNE_prefetch, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
489 { .mnemonic = MNE_prefetchw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 23, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
490 { .mnemonic = MNE_prefetchnta, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
491 { .mnemonic = MNE_prefetcht0, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
492 { .mnemonic = MNE_prefetcht1, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
493 { .mnemonic = MNE_prefetcht2, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
494 { .mnemonic = MNE_nop, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
495 { .mnemonic = MNE_wrmsr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
496 { .mnemonic = MNE_xadd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 27, .str1 = 0, .off1_1 = 15, .off1_2 = 11, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 8, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
497 { .mnemonic = MNE_xchg, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 27, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
498 { .mnemonic = MNE_xchg, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 4, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 17, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
499 { .mnemonic = MNE_xlat, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 9, .str1 = 0, .off1_1 = 5, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
500 { .mnemonic = MNE_xor, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 27, .str1 = 0, .off1_1 = 7, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
501 { .mnemonic = MNE_xor, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 25, .str1 = 0, .off1_1 = 5, .off1_2 = 9, .off1_3 = 0, .fct2 = 20, .str2 = 0, .off2_1 = 5, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
502 { .mnemonic = MNE_xor, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 15, .str1 = 0, .off1_1 = 5, .off1_2 = 3, .off1_3 = 0, .fct2 = 5, .str2 = 0, .off2_1 = 11, .off2_2 = 3, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
503 { .mnemonic = MNE_xor, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 15, .str1 = 0, .off1_1 = 13, .off1_2 = 3, .off1_3 = 0, .fct2 = 16, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
504 { .mnemonic = MNE_xor, .rep = 0, .repe = 0, .suffix = 1, .modrm = 1, .fct1 = 19, .str1 = 0, .off1_1 = 13, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 3, .off2_2 = 9, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
505 { .mnemonic = MNE_emms, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
506 { .mnemonic = MNE_pand, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
507 { .mnemonic = MNE_pand, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
508 { .mnemonic = MNE_pandn, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
509 { .mnemonic = MNE_pandn, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
510 { .mnemonic = MNE_pmaddwd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
511 { .mnemonic = MNE_pmaddwd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
512 { .mnemonic = MNE_por, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
513 { .mnemonic = MNE_por, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
514 { .mnemonic = MNE_pxor, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
515 { .mnemonic = MNE_pxor, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
516 { .mnemonic = MNE_andnps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
517 { .mnemonic = MNE_andps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
518 { .mnemonic = MNE_cmpeqps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
519 { .mnemonic = MNE_cmpltps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
520 { .mnemonic = MNE_cmpleps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
521 { .mnemonic = MNE_cmpunordps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
522 { .mnemonic = MNE_cmpneqps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
523 { .mnemonic = MNE_cmpnltps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
524 { .mnemonic = MNE_cmpnleps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
525 { .mnemonic = MNE_cmpordps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
526 { .mnemonic = MNE_cmpeqss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
527 { .mnemonic = MNE_cmpltss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
528 { .mnemonic = MNE_cmpless, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
529 { .mnemonic = MNE_cmpunordss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
530 { .mnemonic = MNE_cmpneqss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
531 { .mnemonic = MNE_cmpnltss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
532 { .mnemonic = MNE_cmpnless, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
533 { .mnemonic = MNE_cmpordss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
534 { .mnemonic = MNE_fxrstor, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
535 { .mnemonic = MNE_fxsave, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
536 { .mnemonic = MNE_ldmxcsr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
537 { .mnemonic = MNE_stmxcsr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
538 { .mnemonic = MNE_movsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
539 { .mnemonic = MNE_movss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
540 { .mnemonic = MNE_movupd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
541 { .mnemonic = MNE_movups, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
542 { .mnemonic = MNE_movsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
543 { .mnemonic = MNE_movss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
544 { .mnemonic = MNE_movupd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
545 { .mnemonic = MNE_movups, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
546 { .mnemonic = MNE_movddup, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
547 { .mnemonic = MNE_movsldup, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
548 { .mnemonic = MNE_movlpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
549 { .mnemonic = MNE_movhlps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 18, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
550 { .mnemonic = MNE_movlps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
551 { .mnemonic = MNE_movhlpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
552 { .mnemonic = MNE_movhlps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
553 { .mnemonic = MNE_movlpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
554 { .mnemonic = MNE_movlps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
555 { .mnemonic = MNE_unpcklpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
556 { .mnemonic = MNE_unpcklps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
557 { .mnemonic = MNE_unpckhpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
558 { .mnemonic = MNE_unpckhps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
559 { .mnemonic = MNE_movshdup, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
560 { .mnemonic = MNE_movhpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
561 { .mnemonic = MNE_movlhps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 18, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
562 { .mnemonic = MNE_movhps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
563 { .mnemonic = MNE_movlhpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
564 { .mnemonic = MNE_movlhps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
565 { .mnemonic = MNE_movhpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
566 { .mnemonic = MNE_movhps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
567 { .mnemonic = MNE_movapd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
568 { .mnemonic = MNE_movaps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
569 { .mnemonic = MNE_movapd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
570 { .mnemonic = MNE_movaps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
571 { .mnemonic = MNE_cvtsi2sd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
572 { .mnemonic = MNE_cvtsi2ss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
573 { .mnemonic = MNE_cvtpi2pd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
574 { .mnemonic = MNE_cvtpi2ps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
575 { .mnemonic = MNE_movntpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
576 { .mnemonic = MNE_movntps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
577 { .mnemonic = MNE_cvttsd2si, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
578 { .mnemonic = MNE_cvttss2si, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
579 { .mnemonic = MNE_cvttpd2pi, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
580 { .mnemonic = MNE_cvttps2pi, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
581 { .mnemonic = MNE_cvtpd2pi, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
582 { .mnemonic = MNE_cvtsd2si, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
583 { .mnemonic = MNE_cvtss2si, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
584 { .mnemonic = MNE_cvtps2pi, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
585 { .mnemonic = MNE_ucomisd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
586 { .mnemonic = MNE_ucomiss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
587 { .mnemonic = MNE_comisd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
588 { .mnemonic = MNE_comiss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
589 { .mnemonic = MNE_getsec, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
590 { .mnemonic = MNE_movmskpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 26, .off1_2 = 0, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
591 { .mnemonic = MNE_movmskps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 18, .off1_2 = 0, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
592 { .mnemonic = MNE_sqrtpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
593 { .mnemonic = MNE_sqrtsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
594 { .mnemonic = MNE_sqrtss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
595 { .mnemonic = MNE_sqrtps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
596 { .mnemonic = MNE_rsqrtss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
597 { .mnemonic = MNE_rsqrtps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
598 { .mnemonic = MNE_rcpss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
599 { .mnemonic = MNE_rcpps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
600 { .mnemonic = MNE_andpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
601 { .mnemonic = MNE_andps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
602 { .mnemonic = MNE_andnpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
603 { .mnemonic = MNE_andnps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
604 { .mnemonic = MNE_orpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
605 { .mnemonic = MNE_orps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
606 { .mnemonic = MNE_xorpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
607 { .mnemonic = MNE_xorps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
608 { .mnemonic = MNE_addsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
609 { .mnemonic = MNE_addss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
610 { .mnemonic = MNE_addpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
611 { .mnemonic = MNE_addps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
612 { .mnemonic = MNE_mulsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
613 { .mnemonic = MNE_mulss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
614 { .mnemonic = MNE_mulpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
615 { .mnemonic = MNE_mulps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
616 { .mnemonic = MNE_cvtsd2ss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
617 { .mnemonic = MNE_cvtss2sd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
618 { .mnemonic = MNE_cvtpd2ps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
619 { .mnemonic = MNE_cvtps2pd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
620 { .mnemonic = MNE_cvtps2dq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
621 { .mnemonic = MNE_cvttps2dq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
622 { .mnemonic = MNE_cvtdq2ps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
623 { .mnemonic = MNE_subsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
624 { .mnemonic = MNE_subss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
625 { .mnemonic = MNE_subpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
626 { .mnemonic = MNE_subps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
627 { .mnemonic = MNE_minsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
628 { .mnemonic = MNE_minss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
629 { .mnemonic = MNE_minpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
630 { .mnemonic = MNE_minps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
631 { .mnemonic = MNE_divsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
632 { .mnemonic = MNE_divss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
633 { .mnemonic = MNE_divpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
634 { .mnemonic = MNE_divps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
635 { .mnemonic = MNE_maxsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
636 { .mnemonic = MNE_maxss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
637 { .mnemonic = MNE_maxpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
638 { .mnemonic = MNE_maxps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
639 { .mnemonic = MNE_punpcklbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
640 { .mnemonic = MNE_punpcklbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
641 { .mnemonic = MNE_punpcklwd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
642 { .mnemonic = MNE_punpcklwd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
643 { .mnemonic = MNE_punpckldq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
644 { .mnemonic = MNE_punpckldq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
645 { .mnemonic = MNE_packsswb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
646 { .mnemonic = MNE_packsswb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
647 { .mnemonic = MNE_pcmpgtb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
648 { .mnemonic = MNE_pcmpgtb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
649 { .mnemonic = MNE_pcmpgtw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
650 { .mnemonic = MNE_pcmpgtw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
651 { .mnemonic = MNE_pcmpgtd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
652 { .mnemonic = MNE_pcmpgtd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
653 { .mnemonic = MNE_packuswb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
654 { .mnemonic = MNE_packuswb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
655 { .mnemonic = MNE_punpckhbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
656 { .mnemonic = MNE_punpckhbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
657 { .mnemonic = MNE_punpckhwd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
658 { .mnemonic = MNE_punpckhwd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
659 { .mnemonic = MNE_punpckhdq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
660 { .mnemonic = MNE_punpckhdq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
661 { .mnemonic = MNE_packssdw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
662 { .mnemonic = MNE_packssdw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
663 { .mnemonic = MNE_punpcklqdq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
664 { .mnemonic = MNE_punpckhqdq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
665 { .mnemonic = MNE_movd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
666 { .mnemonic = MNE_movd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
667 { .mnemonic = MNE_movdqa, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
668 { .mnemonic = MNE_movdqu, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
669 { .mnemonic = MNE_movq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
670 { .mnemonic = MNE_pshufd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 16, .off3_2 = 0, },
671 { .mnemonic = MNE_pshuflw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 16, .off3_2 = 0, },
672 { .mnemonic = MNE_pshufhw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 16, .off3_2 = 0, },
673 { .mnemonic = MNE_pshufw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 1, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 1, .str3 = 0, .off3_1 = 8, .off3_2 = 0, },
674 { .mnemonic = MNE_pcmpeqb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
675 { .mnemonic = MNE_pcmpeqb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
676 { .mnemonic = MNE_pcmpeqw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
677 { .mnemonic = MNE_pcmpeqw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
678 { .mnemonic = MNE_pcmpeqd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
679 { .mnemonic = MNE_pcmpeqd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
680 { .mnemonic = MNE_haddpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
681 { .mnemonic = MNE_haddps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
682 { .mnemonic = MNE_hsubpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
683 { .mnemonic = MNE_hsubps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
684 { .mnemonic = MNE_movd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
685 { .mnemonic = MNE_movq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
686 { .mnemonic = MNE_movd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 20, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
687 { .mnemonic = MNE_movdqa, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
688 { .mnemonic = MNE_movdqu, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
689 { .mnemonic = MNE_movq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 20, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 1, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
690 { .mnemonic = MNE_movnti, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 26, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
691 { .mnemonic = MNE_pinsrw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 16, .off3_2 = 0, },
692 { .mnemonic = MNE_pinsrw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 1, .str3 = 0, .off3_1 = 8, .off3_2 = 0, },
693 { .mnemonic = MNE_pextrw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 3, .str3 = 0, .off3_1 = 16, .off3_2 = 0, },
694 { .mnemonic = MNE_pextrw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 3, .str3 = 0, .off3_1 = 8, .off3_2 = 0, },
695 { .mnemonic = MNE_shufpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 16, .off3_2 = 0, },
696 { .mnemonic = MNE_shufps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 8, .off3_2 = 0, },
697 { .mnemonic = MNE_psrlw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
698 { .mnemonic = MNE_psrlw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
699 { .mnemonic = MNE_psrld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
700 { .mnemonic = MNE_psrld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
701 { .mnemonic = MNE_psrlq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
702 { .mnemonic = MNE_psrlq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
703 { .mnemonic = MNE_paddq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
704 { .mnemonic = MNE_paddq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
705 { .mnemonic = MNE_pmullw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
706 { .mnemonic = MNE_pmullw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
707 { .mnemonic = MNE_movq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
708 { .mnemonic = MNE_movdq2q, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 26, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
709 { .mnemonic = MNE_movq2dq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 20, .str1 = 0, .off1_1 = 26, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
710 { .mnemonic = MNE_pmovmskb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 26, .off1_2 = 0, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
711 { .mnemonic = MNE_pmovmskb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 20, .str1 = 0, .off1_1 = 18, .off1_2 = 0, .off1_3 = 0, .fct2 = 19, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
712 { .mnemonic = MNE_psubusb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
713 { .mnemonic = MNE_psubusb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
714 { .mnemonic = MNE_psubusw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
715 { .mnemonic = MNE_psubusw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
716 { .mnemonic = MNE_pminub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
717 { .mnemonic = MNE_pminub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
718 { .mnemonic = MNE_paddusb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
719 { .mnemonic = MNE_paddusb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
720 { .mnemonic = MNE_paddusw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
721 { .mnemonic = MNE_paddusw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
722 { .mnemonic = MNE_pmaxub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
723 { .mnemonic = MNE_pmaxub, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
724 { .mnemonic = MNE_pavgb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
725 { .mnemonic = MNE_pavgb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
726 { .mnemonic = MNE_psraw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
727 { .mnemonic = MNE_psraw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
728 { .mnemonic = MNE_psrad, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
729 { .mnemonic = MNE_psrad, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
730 { .mnemonic = MNE_pavgw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
731 { .mnemonic = MNE_pavgw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
732 { .mnemonic = MNE_pmulhuw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
733 { .mnemonic = MNE_pmulhuw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
734 { .mnemonic = MNE_pmulhw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
735 { .mnemonic = MNE_pmulhw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
736 { .mnemonic = MNE_movntdq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 34, .str1 = 0, .off1_1 = 23, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
737 { .mnemonic = MNE_movntq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 20, .str1 = 0, .off1_1 = 15, .off1_2 = 0, .off1_3 = 0, .fct2 = 1, .str2 = 0, .off2_1 = 11, .off2_2 = 17, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
738 { .mnemonic = MNE_psubsb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
739 { .mnemonic = MNE_psubsb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
740 { .mnemonic = MNE_psubsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
741 { .mnemonic = MNE_psubsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
742 { .mnemonic = MNE_pminsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
743 { .mnemonic = MNE_pminsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
744 { .mnemonic = MNE_paddsb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
745 { .mnemonic = MNE_paddsb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
746 { .mnemonic = MNE_paddsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
747 { .mnemonic = MNE_paddsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
748 { .mnemonic = MNE_pmaxsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
749 { .mnemonic = MNE_pmaxsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
750 { .mnemonic = MNE_lddqu, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
751 { .mnemonic = MNE_psllw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
752 { .mnemonic = MNE_psllw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
753 { .mnemonic = MNE_pslld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
754 { .mnemonic = MNE_pslld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
755 { .mnemonic = MNE_psllq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
756 { .mnemonic = MNE_psllq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
757 { .mnemonic = MNE_pmuludq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
758 { .mnemonic = MNE_pmuludq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
759 { .mnemonic = MNE_psadbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
760 { .mnemonic = MNE_psadbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
761 { .mnemonic = MNE_maskmovdqu, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 34, .str1 = 0, .off1_1 = 26, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
762 { .mnemonic = MNE_maskmovq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 20, .str1 = 0, .off1_1 = 18, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
763 { .mnemonic = MNE_psubb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
764 { .mnemonic = MNE_psubb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
765 { .mnemonic = MNE_psubw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
766 { .mnemonic = MNE_psubw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
767 { .mnemonic = MNE_psubd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
768 { .mnemonic = MNE_psubd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
769 { .mnemonic = MNE_psubq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
770 { .mnemonic = MNE_psubq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
771 { .mnemonic = MNE_paddb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
772 { .mnemonic = MNE_paddb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
773 { .mnemonic = MNE_paddw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
774 { .mnemonic = MNE_paddw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
775 { .mnemonic = MNE_paddd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
776 { .mnemonic = MNE_paddd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
777 { .mnemonic = MNE_pshufb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
778 { .mnemonic = MNE_pshufb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
779 { .mnemonic = MNE_phaddw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
780 { .mnemonic = MNE_phaddw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
781 { .mnemonic = MNE_phaddd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
782 { .mnemonic = MNE_phaddd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
783 { .mnemonic = MNE_phaddsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
784 { .mnemonic = MNE_phaddsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
785 { .mnemonic = MNE_pmaddubsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
786 { .mnemonic = MNE_pmaddubsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
787 { .mnemonic = MNE_phsubw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
788 { .mnemonic = MNE_phsubw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
789 { .mnemonic = MNE_phsubd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
790 { .mnemonic = MNE_phsubd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
791 { .mnemonic = MNE_phsubsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
792 { .mnemonic = MNE_phsubsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
793 { .mnemonic = MNE_psignb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
794 { .mnemonic = MNE_psignb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
795 { .mnemonic = MNE_psignw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
796 { .mnemonic = MNE_psignw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
797 { .mnemonic = MNE_psignd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
798 { .mnemonic = MNE_psignd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
799 { .mnemonic = MNE_pmulhrsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
800 { .mnemonic = MNE_pmulhrsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
801 { .mnemonic = MNE_pabsb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
802 { .mnemonic = MNE_pabsb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
803 { .mnemonic = MNE_pabsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
804 { .mnemonic = MNE_pabsw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
805 { .mnemonic = MNE_pabsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
806 { .mnemonic = MNE_pabsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 21, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
807 { .mnemonic = MNE_palignr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
808 { .mnemonic = MNE_palignr, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 1, .str2 = 0, .off2_1 = 19, .off2_2 = 25, .off2_3 = 0, .fct3 = 1, .str3 = 0, .off3_1 = 16, .off3_2 = 0, },
809 { .mnemonic = MNE_vmclear, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
810 { .mnemonic = MNE_vmxon, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 21, .off1_2 = 25, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
811 { .mnemonic = MNE_vmptrld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
812 { .mnemonic = MNE_vmptrst, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
813 { .mnemonic = MNE_psrlw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
814 { .mnemonic = MNE_psrlw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
815 { .mnemonic = MNE_psraw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
816 { .mnemonic = MNE_psraw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
817 { .mnemonic = MNE_psllw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
818 { .mnemonic = MNE_psllw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
819 { .mnemonic = MNE_psrld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
820 { .mnemonic = MNE_psrld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
821 { .mnemonic = MNE_psrad, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
822 { .mnemonic = MNE_psrad, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
823 { .mnemonic = MNE_pslld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
824 { .mnemonic = MNE_pslld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
825 { .mnemonic = MNE_psrlq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
826 { .mnemonic = MNE_psrlq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
827 { .mnemonic = MNE_psrldq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
828 { .mnemonic = MNE_psllq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
829 { .mnemonic = MNE_psllq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 21, .off1_2 = 0, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 16, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
830 { .mnemonic = MNE_pslldq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 18, .str1 = 0, .off1_1 = 29, .off1_2 = 0, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 24, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
831 { .mnemonic = MNE_lfence, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
832 { .mnemonic = MNE_mfence, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
833 { .mnemonic = MNE_sfence, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 0, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
834 { .mnemonic = MNE_clflush, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 24, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
835 { .mnemonic = MNE_INVALID, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 1, .str1 = 0, .off1_1 = 13, .off1_2 = 17, .off1_3 = 0, .fct2 = 13, .str2 = 0, .off2_1 = 13, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
836 { .mnemonic = MNE_blendps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
837 { .mnemonic = MNE_blendpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
838 { .mnemonic = MNE_blendvps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 33, .str1 = 5, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
839 { .mnemonic = MNE_blendvpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 33, .str1 = 5, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
840 { .mnemonic = MNE_dpps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
841 { .mnemonic = MNE_dppd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
842 { .mnemonic = MNE_insertps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
843 { .mnemonic = MNE_movntdqa, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
844 { .mnemonic = MNE_mpsadbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
845 { .mnemonic = MNE_packusdw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
846 { .mnemonic = MNE_pblendvb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 33, .str1 = 5, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
847 { .mnemonic = MNE_pblendw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
848 { .mnemonic = MNE_pcmpeqq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
849 { .mnemonic = MNE_pcmpestri, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
850 { .mnemonic = MNE_pcmpestrm, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
851 { .mnemonic = MNE_pcmpistri, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
852 { .mnemonic = MNE_pcmpistrm, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
853 { .mnemonic = MNE_pcmpgtq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
854 { .mnemonic = MNE_phminposuw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
855 { .mnemonic = MNE_pinsrb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
856 { .mnemonic = MNE_pinsrd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 15, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
857 { .mnemonic = MNE_pmaxsb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
858 { .mnemonic = MNE_pmaxsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
859 { .mnemonic = MNE_pmaxud, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
860 { .mnemonic = MNE_pmaxuw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
861 { .mnemonic = MNE_pminsb, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
862 { .mnemonic = MNE_pminsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
863 { .mnemonic = MNE_pminud, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
864 { .mnemonic = MNE_pminuw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
865 { .mnemonic = MNE_pmovsxbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
866 { .mnemonic = MNE_pmovsxbd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
867 { .mnemonic = MNE_pmovsxbq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
868 { .mnemonic = MNE_pmovsxwd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
869 { .mnemonic = MNE_pmovsxwq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
870 { .mnemonic = MNE_pmovsxdq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
871 { .mnemonic = MNE_pmovzxbw, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
872 { .mnemonic = MNE_pmovzxbd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
873 { .mnemonic = MNE_pmovzxbq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
874 { .mnemonic = MNE_pmovzxwd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
875 { .mnemonic = MNE_pmovzxwq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
876 { .mnemonic = MNE_pmovzxdq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
877 { .mnemonic = MNE_pmuldq, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
878 { .mnemonic = MNE_pmulld, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
879 { .mnemonic = MNE_ptest, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 2, .str1 = 0, .off1_1 = 29, .off1_2 = 33, .off1_3 = 0, .fct2 = 24, .str2 = 0, .off2_1 = 29, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
880 { .mnemonic = MNE_roundps, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
881 { .mnemonic = MNE_roundpd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
882 { .mnemonic = MNE_roundss, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
883 { .mnemonic = MNE_roundsd, .rep = 0, .repe = 0, .suffix = 0, .modrm = 1, .fct1 = 18, .str1 = 0, .off1_1 = 37, .off1_2 = 0, .off1_3 = 0, .fct2 = 2, .str2 = 0, .off2_1 = 27, .off2_2 = 33, .off2_3 = 0, .fct3 = 5, .str3 = 0, .off3_1 = 24, .off3_2 = 0, },
884 { .mnemonic = MNE_pop, .rep = 0, .repe = 0, .suffix = 0, .modrm = 0, .fct1 = 31, .str1 = 0, .off1_1 = 0, .off1_2 = 0, .off1_3 = 0, .fct2 = 0, .str2 = 0, .off2_1 = 0, .off2_2 = 0, .off2_3 = 0, .fct3 = 0, .str3 = 0, .off3_1 = 0, .off3_2 = 0, },
885};
886static const uint8_t match_data[] =
887{
888 0x1, 0xfe, 0x14,
889 0x2, 0xfe, 0x80, 0x38, 0x10,
890 0x2, 0xfe, 0x82, 0x38, 0x10,
891 0x2, 0xfe, 0x10, 0, 0,
892 0x2, 0xfe, 0x12, 0, 0,
893 0x1, 0xfe, 0x4,
894 0x2, 0xfe, 0x80, 0x38, 0,
895 0x12, 0x83, 0x38, 0,
896 0x2, 0xfe, 0, 0, 0,
897 0x2, 0xfe, 0x2, 0, 0,
898 0x34, 0x66, 0xf, 0xd0, 0, 0,
899 0x34, 0xf2, 0xf, 0xd0, 0, 0,
900 0x1, 0xfe, 0x24,
901 0x2, 0xfe, 0x80, 0x38, 0x20,
902 0x2, 0xfe, 0x82, 0x38, 0x20,
903 0x2, 0xfe, 0x20, 0, 0,
904 0x2, 0xfe, 0x22, 0, 0,
905 0x34, 0x66, 0xf, 0x54, 0, 0,
906 0x23, 0xf, 0x54, 0, 0,
907 0x34, 0x66, 0xf, 0x55, 0, 0,
908 0x23, 0xf, 0x55, 0, 0,
909 0x12, 0x63, 0, 0,
910 0x23, 0xf, 0xbc, 0, 0,
911 0x23, 0xf, 0xbd, 0, 0,
912 0x12, 0xf, 0xf8, 0xc8,
913 0x23, 0xf, 0xa3, 0, 0,
914 0x23, 0xf, 0xba, 0x38, 0x20,
915 0x23, 0xf, 0xbb, 0, 0,
916 0x23, 0xf, 0xba, 0x38, 0x38,
917 0x23, 0xf, 0xb3, 0, 0,
918 0x23, 0xf, 0xba, 0x38, 0x30,
919 0x23, 0xf, 0xab, 0, 0,
920 0x23, 0xf, 0xba, 0x38, 0x28,
921 0x11, 0xe8,
922 0x12, 0xff, 0x38, 0x10,
923 0x12, 0xff, 0x38, 0x18,
924 0x11, 0x98,
925 0x11, 0x99,
926 0x11, 0xf8,
927 0x11, 0xfc,
928 0x11, 0xfa,
929 0x22, 0xf, 0x5,
930 0x22, 0xf, 0x6,
931 0x22, 0xf, 0x7,
932 0x22, 0xf, 0x34,
933 0x22, 0xf, 0x35,
934 0x11, 0xf5,
935 0x13, 0xf, 0xf0, 0x40, 0, 0,
936 0x1, 0xfe, 0x3c,
937 0x2, 0xfe, 0x80, 0x38, 0x38,
938 0x12, 0x83, 0x38, 0x38,
939 0x2, 0xfe, 0x38, 0, 0,
940 0x2, 0xfe, 0x3a, 0, 0,
941 0x34, 0xf2, 0xf, 0xc2, 0, 0,
942 0x34, 0xf3, 0xf, 0xc2, 0, 0,
943 0x34, 0x66, 0xf, 0xc2, 0, 0,
944 0x23, 0xf, 0xc2, 0, 0,
945 0x1, 0xfe, 0xa6,
946 0x13, 0xf, 0xfe, 0xb0, 0, 0,
947 0x23, 0xf, 0xc7, 0x38, 0x8,
948 0x22, 0xf, 0xa2,
949 0x34, 0xf3, 0xf, 0xe6, 0, 0,
950 0x34, 0xf2, 0xf, 0xe6, 0, 0,
951 0x34, 0x66, 0xf, 0xe6, 0, 0,
952 0x2, 0xfe, 0xfe, 0x38, 0x8,
953 0x2, 0xfe, 0xf6, 0x38, 0x30,
954 0x22, 0xf, 0x77,
955 0x11, 0xc8,
956 0x22, 0xd9, 0xd0,
957 0x22, 0xd9, 0xe0,
958 0x22, 0xd9, 0xe1,
959 0x22, 0xd9, 0xe4,
960 0x22, 0xd9, 0xe5,
961 0x22, 0xd9, 0xe8,
962 0x22, 0xd9, 0xe9,
963 0x22, 0xd9, 0xea,
964 0x22, 0xd9, 0xeb,
965 0x22, 0xd9, 0xec,
966 0x22, 0xd9, 0xed,
967 0x22, 0xd9, 0xee,
968 0x22, 0xd9, 0xf0,
969 0x22, 0xd9, 0xf1,
970 0x22, 0xd9, 0xf2,
971 0x22, 0xd9, 0xf3,
972 0x22, 0xd9, 0xf4,
973 0x22, 0xd9, 0xf5,
974 0x22, 0xd9, 0xf6,
975 0x22, 0xd9, 0xf7,
976 0x22, 0xd9, 0xf8,
977 0x22, 0xd9, 0xf9,
978 0x22, 0xd9, 0xfa,
979 0x22, 0xd9, 0xfb,
980 0x22, 0xd9, 0xfc,
981 0x22, 0xd9, 0xfd,
982 0x22, 0xd9, 0xfe,
983 0x22, 0xd9, 0xff,
984 0x12, 0xd8, 0xf8, 0xc0,
985 0x12, 0xdc, 0xf8, 0xc0,
986 0x2, 0xfb, 0xd8, 0x38, 0,
987 0x12, 0xd8, 0xf8, 0xc8,
988 0x12, 0xdc, 0xf8, 0xc8,
989 0x2, 0xfb, 0xd8, 0x38, 0x8,
990 0x12, 0xd8, 0xf8, 0xe0,
991 0x12, 0xdc, 0xf8, 0xe0,
992 0x2, 0xfb, 0xd8, 0x38, 0x20,
993 0x12, 0xd8, 0xf8, 0xe8,
994 0x12, 0xdc, 0xf8, 0xe8,
995 0x2, 0xfb, 0xd8, 0x38, 0x28,
996 0x12, 0xdd, 0xf8, 0xd0,
997 0x2, 0xfb, 0xd9, 0x38, 0x10,
998 0x12, 0xdd, 0xf8, 0xd8,
999 0x2, 0xfb, 0xd9, 0x38, 0x18,
1000 0x12, 0xd9, 0x38, 0x20,
1001 0x12, 0xd9, 0x38, 0x28,
1002 0x12, 0xd9, 0x38, 0x30,
1003 0x12, 0xd9, 0x38, 0x38,
1004 0x12, 0xd9, 0xf8, 0xc8,
1005 0x12, 0xde, 0xf8, 0xc0,
1006 0x12, 0xda, 0xf8, 0xc0,
1007 0x2, 0xfb, 0xda, 0x38, 0,
1008 0x12, 0xda, 0xf8, 0xc8,
1009 0x12, 0xde, 0xf8, 0xc8,
1010 0x2, 0xfb, 0xda, 0x38, 0x8,
1011 0x12, 0xde, 0xf8, 0xe0,
1012 0x2, 0xfb, 0xda, 0x38, 0x20,
1013 0x12, 0xde, 0xf8, 0xe8,
1014 0x2, 0xfb, 0xda, 0x38, 0x28,
1015 0x22, 0xdf, 0xe0,
1016 0x12, 0xdf, 0x38, 0x20,
1017 0x12, 0xdf, 0xf8, 0xf0,
1018 0x12, 0xdf, 0x38, 0x30,
1019 0x22, 0xd9, 0xe0,
1020 0x33, 0x9b, 0xdb, 0xe2,
1021 0x33, 0x9b, 0xdb, 0xe3,
1022 0x11, 0x9b,
1023 0x22, 0xdb, 0xe2,
1024 0x12, 0xda, 0xf8, 0xc0,
1025 0x12, 0xda, 0xf8, 0xc8,
1026 0x12, 0xda, 0xf8, 0xd0,
1027 0x12, 0xda, 0xf8, 0xd8,
1028 0x12, 0xdb, 0xf8, 0xc0,
1029 0x12, 0xdb, 0xf8, 0xc8,
1030 0x12, 0xdb, 0xf8, 0xd0,
1031 0x12, 0xdb, 0xf8, 0xd8,
1032 0x12, 0xd8, 0xf8, 0xd0,
1033 0x2, 0xfb, 0xd8, 0x38, 0x10,
1034 0x12, 0xd8, 0xf8, 0xd8,
1035 0x2, 0xfb, 0xd8, 0x38, 0x18,
1036 0x22, 0xde, 0xd9,
1037 0x12, 0xdb, 0xf8, 0xf0,
1038 0x12, 0xdf, 0xf8, 0xf0,
1039 0x12, 0xdb, 0xf8, 0xe8,
1040 0x12, 0xdf, 0xf8, 0xe8,
1041 0x22, 0xd9, 0xff,
1042 0x22, 0xd9, 0xf6,
1043 0x12, 0xd8, 0xf8, 0xf0,
1044 0x12, 0xdc, 0xf8, 0xf0,
1045 0x2, 0xfb, 0xd8, 0x38, 0x30,
1046 0x12, 0xda, 0x38, 0x30,
1047 0x12, 0xde, 0xf8, 0xf0,
1048 0x12, 0xde, 0x38, 0x30,
1049 0x12, 0xde, 0xf8, 0xf8,
1050 0x12, 0xd8, 0xf8, 0xf8,
1051 0x12, 0xdc, 0xf8, 0xf8,
1052 0x2, 0xfb, 0xd8, 0x38, 0x38,
1053 0x12, 0xda, 0x38, 0x38,
1054 0x12, 0xde, 0x38, 0x38,
1055 0x12, 0xde, 0xf8, 0xf0,
1056 0x12, 0xdd, 0xf8, 0xc0,
1057 0x12, 0xda, 0xf8, 0xd0,
1058 0x2, 0xfb, 0xda, 0x38, 0x10,
1059 0x12, 0xda, 0xf8, 0xd8,
1060 0x2, 0xfb, 0xda, 0x38, 0x18,
1061 0x12, 0xdf, 0x38, 0,
1062 0x12, 0xdb, 0x38, 0,
1063 0x12, 0xdf, 0x38, 0x28,
1064 0x22, 0xd9, 0xf7,
1065 0x22, 0xdb, 0xe3,
1066 0x2, 0xfb, 0xdb, 0x38, 0x10,
1067 0x2, 0xfb, 0xdb, 0x38, 0x18,
1068 0x12, 0xdf, 0x38, 0x38,
1069 0x2, 0xfb, 0xdb, 0x38, 0x8,
1070 0x12, 0xdd, 0x38, 0x8,
1071 0x12, 0xdb, 0x38, 0x28,
1072 0x12, 0xdb, 0x38, 0x38,
1073 0x12, 0xd9, 0xf8, 0xc0,
1074 0x2, 0xfb, 0xd9, 0x38, 0,
1075 0x12, 0xdd, 0xf8, 0xe0,
1076 0x12, 0xdd, 0x38, 0x20,
1077 0x12, 0xdd, 0xf8, 0xe8,
1078 0x12, 0xdd, 0x38, 0x30,
1079 0x12, 0xdd, 0x38, 0x38,
1080 0x11, 0xf4,
1081 0x2, 0xfe, 0xf6, 0x38, 0x38,
1082 0x2, 0xfe, 0xf6, 0x38, 0x28,
1083 0x23, 0xf, 0xaf, 0, 0,
1084 0x2, 0xfd, 0x69, 0, 0,
1085 0x1, 0xfe, 0xe4,
1086 0x1, 0xfe, 0xec,
1087 0x2, 0xfe, 0xfe, 0x38, 0,
1088 0x1, 0xfe, 0x6c,
1089 0x11, 0xcd,
1090 0x11, 0xcc,
1091 0x22, 0xf, 0x8,
1092 0x33, 0xf, 0x1, 0xf8,
1093 0x23, 0xf, 0x1, 0x38, 0x38,
1094 0x11, 0xcf,
1095 0x1, 0xf0, 0x70,
1096 0x12, 0xf, 0xf0, 0x80,
1097 0x13, 0xf, 0xf0, 0x90, 0x38, 0,
1098 0x11, 0xe3,
1099 0x11, 0xeb,
1100 0x11, 0xe9,
1101 0x12, 0xff, 0x38, 0x20,
1102 0x11, 0xea,
1103 0x12, 0xff, 0x38, 0x28,
1104 0x11, 0x9f,
1105 0x23, 0xf, 0x2, 0, 0,
1106 0x12, 0x8d, 0, 0,
1107 0x11, 0xc9,
1108 0x23, 0xf, 0xb4, 0, 0,
1109 0x23, 0xf, 0xb5, 0, 0,
1110 0x23, 0xf, 0x1, 0x38, 0x10,
1111 0x23, 0xf, 0x1, 0x38, 0x18,
1112 0x23, 0xf, 0, 0x38, 0x10,
1113 0x23, 0xf, 0x1, 0x38, 0x30,
1114 0x11, 0xf0,
1115 0x1, 0xfe, 0xac,
1116 0x11, 0xe2,
1117 0x11, 0xe1,
1118 0x11, 0xe0,
1119 0x23, 0xf, 0x3, 0, 0,
1120 0x23, 0xf, 0xb2, 0, 0,
1121 0x23, 0xf, 0, 0x38, 0x18,
1122 0x2, 0xfe, 0x88, 0, 0,
1123 0x2, 0xfe, 0x8a, 0, 0,
1124 0x2, 0xfe, 0xc6, 0x38, 0,
1125 0x1, 0xf0, 0xb0,
1126 0x1, 0xfe, 0xa0,
1127 0x1, 0xfe, 0xa2,
1128 0x23, 0xf, 0x20, 0xc0, 0xc0,
1129 0x23, 0xf, 0x22, 0xc0, 0xc0,
1130 0x23, 0xf, 0x21, 0xc0, 0xc0,
1131 0x23, 0xf, 0x23, 0xc0, 0xc0,
1132 0x12, 0x8c, 0, 0,
1133 0x12, 0x8e, 0, 0,
1134 0x1, 0xfe, 0xa4,
1135 0x23, 0xf, 0xbe, 0, 0,
1136 0x23, 0xf, 0xbf, 0, 0,
1137 0x23, 0xf, 0xb6, 0, 0,
1138 0x23, 0xf, 0xb7, 0, 0,
1139 0x2, 0xfe, 0xf6, 0x38, 0x20,
1140 0x2, 0xfe, 0xf6, 0x38, 0x18,
1141 0x22, 0xf3, 0x90,
1142 0x11, 0x90,
1143 0x34, 0xf3, 0xf, 0xb8, 0, 0,
1144 0x2, 0xfe, 0xf6, 0x38, 0x10,
1145 0x2, 0xfe, 0x8, 0, 0,
1146 0x2, 0xfe, 0xa, 0, 0,
1147 0x2, 0xfe, 0x80, 0x38, 0x8,
1148 0x2, 0xfe, 0x82, 0x38, 0x8,
1149 0x1, 0xfe, 0xc,
1150 0x1, 0xfe, 0xe6,
1151 0x1, 0xfe, 0xee,
1152 0x1, 0xfe, 0x6e,
1153 0x12, 0x8f, 0xf8, 0xc0,
1154 0x12, 0x8f, 0x38, 0,
1155 0x12, 0xf, 0xc7, 0x81,
1156 0x11, 0x9d,
1157 0x12, 0xff, 0xf8, 0xf0,
1158 0x12, 0xff, 0x38, 0x30,
1159 0x1, 0xf8, 0x50,
1160 0x1, 0xf8, 0x58,
1161 0x1, 0xfd, 0x68,
1162 0x1, 0xe7, 0x6,
1163 0x12, 0xf, 0xc7, 0x80,
1164 0x11, 0x9c,
1165 0x2, 0xfe, 0xd0, 0x38, 0x10,
1166 0x2, 0xfe, 0xd2, 0x38, 0x10,
1167 0x2, 0xfe, 0xc0, 0x38, 0x10,
1168 0x2, 0xfe, 0xd0, 0x38, 0x18,
1169 0x2, 0xfe, 0xd2, 0x38, 0x18,
1170 0x2, 0xfe, 0xc0, 0x38, 0x18,
1171 0x22, 0xf, 0x32,
1172 0x22, 0xf, 0x33,
1173 0x22, 0xf, 0x31,
1174 0x11, 0xc3,
1175 0x11, 0xc2,
1176 0x11, 0xcb,
1177 0x11, 0xca,
1178 0x2, 0xfe, 0xd0, 0x38, 0,
1179 0x2, 0xfe, 0xd2, 0x38, 0,
1180 0x2, 0xfe, 0xc0, 0x38, 0,
1181 0x2, 0xfe, 0xd0, 0x38, 0x8,
1182 0x2, 0xfe, 0xd2, 0x38, 0x8,
1183 0x2, 0xfe, 0xc0, 0x38, 0x8,
1184 0x22, 0xf, 0xaa,
1185 0x11, 0x9e,
1186 0x2, 0xfe, 0xd0, 0x38, 0x38,
1187 0x2, 0xfe, 0xd2, 0x38, 0x38,
1188 0x2, 0xfe, 0xc0, 0x38, 0x38,
1189 0x2, 0xfe, 0x18, 0, 0,
1190 0x2, 0xfe, 0x1a, 0, 0,
1191 0x1, 0xfe, 0x1c,
1192 0x2, 0xfe, 0x80, 0x38, 0x18,
1193 0x2, 0xfe, 0x82, 0x38, 0x18,
1194 0x1, 0xfe, 0xae,
1195 0x13, 0xf, 0xf0, 0x90, 0x38, 0,
1196 0x2, 0xfe, 0xd0, 0x38, 0x20,
1197 0x2, 0xfe, 0xd2, 0x38, 0x20,
1198 0x2, 0xfe, 0xc0, 0x38, 0x20,
1199 0x2, 0xfe, 0xd0, 0x38, 0x28,
1200 0x23, 0xf, 0xa4, 0, 0,
1201 0x23, 0xf, 0xa5, 0, 0,
1202 0x2, 0xfe, 0xd2, 0x38, 0x28,
1203 0x2, 0xfe, 0xc0, 0x38, 0x28,
1204 0x23, 0xf, 0xac, 0, 0,
1205 0x23, 0xf, 0xad, 0, 0,
1206 0x33, 0xf, 0x1, 0xc1,
1207 0x33, 0xf, 0x1, 0xc2,
1208 0x33, 0xf, 0x1, 0xc3,
1209 0x33, 0xf, 0x1, 0xc4,
1210 0x23, 0xf, 0x78, 0, 0,
1211 0x23, 0xf, 0x79, 0, 0,
1212 0x23, 0xf, 0x1, 0x38, 0,
1213 0x33, 0xf, 0x1, 0xc8,
1214 0x33, 0xf, 0x1, 0xc9,
1215 0x23, 0xf, 0x1, 0x38, 0x8,
1216 0x23, 0xf, 0, 0x38, 0,
1217 0x23, 0xf, 0x1, 0x38, 0x20,
1218 0x11, 0xf9,
1219 0x11, 0xfd,
1220 0x11, 0xfb,
1221 0x1, 0xfe, 0xaa,
1222 0x23, 0xf, 0, 0x38, 0x8,
1223 0x2, 0xfe, 0x28, 0, 0,
1224 0x2, 0xfe, 0x2a, 0, 0,
1225 0x1, 0xfe, 0x2c,
1226 0x2, 0xfe, 0x80, 0x38, 0x28,
1227 0x2, 0xfe, 0x82, 0x38, 0x28,
1228 0x2, 0xfe, 0x84, 0, 0,
1229 0x1, 0xfe, 0xa8,
1230 0x2, 0xfe, 0xf6, 0x38, 0,
1231 0x22, 0xf, 0xb,
1232 0x23, 0xf, 0, 0x38, 0x20,
1233 0x23, 0xf, 0, 0x38, 0x28,
1234 0x22, 0xf, 0x9,
1235 0x23, 0xf, 0xd, 0x38, 0,
1236 0x23, 0xf, 0xd, 0x38, 0x8,
1237 0x23, 0xf, 0x18, 0x38, 0,
1238 0x23, 0xf, 0x18, 0x38, 0x8,
1239 0x23, 0xf, 0x18, 0x38, 0x10,
1240 0x23, 0xf, 0x18, 0x38, 0x18,
1241 0x23, 0xf, 0x1f, 0, 0,
1242 0x22, 0xf, 0x30,
1243 0x13, 0xf, 0xfe, 0xc0, 0, 0,
1244 0x2, 0xfe, 0x86, 0, 0,
1245 0x1, 0xf8, 0x90,
1246 0x11, 0xd7,
1247 0x2, 0xfe, 0x30, 0, 0,
1248 0x2, 0xfe, 0x32, 0, 0,
1249 0x1, 0xfe, 0x34,
1250 0x2, 0xfe, 0x80, 0x38, 0x30,
1251 0x2, 0xfe, 0x82, 0x38, 0x30,
1252 0x22, 0xf, 0x77,
1253 0x34, 0x66, 0xf, 0xdb, 0, 0,
1254 0x23, 0xf, 0xdb, 0, 0,
1255 0x34, 0x66, 0xf, 0xdf, 0, 0,
1256 0x23, 0xf, 0xdf, 0, 0,
1257 0x34, 0x66, 0xf, 0xf5, 0, 0,
1258 0x23, 0xf, 0xf5, 0, 0,
1259 0x34, 0x66, 0xf, 0xeb, 0, 0,
1260 0x23, 0xf, 0xeb, 0, 0,
1261 0x34, 0x66, 0xf, 0xef, 0, 0,
1262 0x23, 0xf, 0xef, 0, 0,
1263 0x23, 0xf, 0x55, 0, 0,
1264 0x23, 0xf, 0x54, 0, 0,
1265 0x24, 0xf, 0xc2, 0, 0, 0xff, 0,
1266 0x24, 0xf, 0xc2, 0, 0, 0xff, 0x1,
1267 0x24, 0xf, 0xc2, 0, 0, 0xff, 0x2,
1268 0x24, 0xf, 0xc2, 0, 0, 0xff, 0x3,
1269 0x24, 0xf, 0xc2, 0, 0, 0xff, 0x4,
1270 0x24, 0xf, 0xc2, 0, 0, 0xff, 0x5,
1271 0x24, 0xf, 0xc2, 0, 0, 0xff, 0x6,
1272 0x24, 0xf, 0xc2, 0, 0, 0xff, 0x7,
1273 0x35, 0xf3, 0xf, 0xc2, 0, 0, 0xff, 0,
1274 0x35, 0xf3, 0xf, 0xc2, 0, 0, 0xff, 0x1,
1275 0x35, 0xf3, 0xf, 0xc2, 0, 0, 0xff, 0x2,
1276 0x35, 0xf3, 0xf, 0xc2, 0, 0, 0xff, 0x3,
1277 0x35, 0xf3, 0xf, 0xc2, 0, 0, 0xff, 0x4,
1278 0x35, 0xf3, 0xf, 0xc2, 0, 0, 0xff, 0x5,
1279 0x35, 0xf3, 0xf, 0xc2, 0, 0, 0xff, 0x6,
1280 0x35, 0xf3, 0xf, 0xc2, 0, 0, 0xff, 0x7,
1281 0x23, 0xf, 0xae, 0x38, 0x8,
1282 0x23, 0xf, 0xae, 0x38, 0,
1283 0x23, 0xf, 0xae, 0x38, 0x10,
1284 0x23, 0xf, 0xae, 0x38, 0x18,
1285 0x34, 0xf2, 0xf, 0x10, 0, 0,
1286 0x34, 0xf3, 0xf, 0x10, 0, 0,
1287 0x34, 0x66, 0xf, 0x10, 0, 0,
1288 0x23, 0xf, 0x10, 0, 0,
1289 0x34, 0xf2, 0xf, 0x11, 0, 0,
1290 0x34, 0xf3, 0xf, 0x11, 0, 0,
1291 0x34, 0x66, 0xf, 0x11, 0, 0,
1292 0x23, 0xf, 0x11, 0, 0,
1293 0x34, 0xf2, 0xf, 0x12, 0, 0,
1294 0x34, 0xf3, 0xf, 0x12, 0, 0,
1295 0x34, 0x66, 0xf, 0x12, 0, 0,
1296 0x23, 0xf, 0x12, 0xc0, 0xc0,
1297 0x23, 0xf, 0x12, 0, 0,
1298 0x34, 0x66, 0xf, 0x13, 0xc0, 0xc0,
1299 0x23, 0xf, 0x13, 0xc0, 0xc0,
1300 0x34, 0x66, 0xf, 0x13, 0, 0,
1301 0x23, 0xf, 0x13, 0, 0,
1302 0x34, 0x66, 0xf, 0x14, 0, 0,
1303 0x23, 0xf, 0x14, 0, 0,
1304 0x34, 0x66, 0xf, 0x15, 0, 0,
1305 0x23, 0xf, 0x15, 0, 0,
1306 0x34, 0xf3, 0xf, 0x16, 0, 0,
1307 0x34, 0x66, 0xf, 0x16, 0, 0,
1308 0x23, 0xf, 0x16, 0xc0, 0xc0,
1309 0x23, 0xf, 0x16, 0, 0,
1310 0x34, 0x66, 0xf, 0x17, 0xc0, 0xc0,
1311 0x23, 0xf, 0x17, 0xc0, 0xc0,
1312 0x34, 0x66, 0xf, 0x17, 0, 0,
1313 0x23, 0xf, 0x17, 0, 0,
1314 0x34, 0x66, 0xf, 0x28, 0, 0,
1315 0x23, 0xf, 0x28, 0, 0,
1316 0x34, 0x66, 0xf, 0x29, 0, 0,
1317 0x23, 0xf, 0x29, 0, 0,
1318 0x34, 0xf2, 0xf, 0x2a, 0, 0,
1319 0x34, 0xf3, 0xf, 0x2a, 0, 0,
1320 0x34, 0x66, 0xf, 0x2a, 0, 0,
1321 0x23, 0xf, 0x2a, 0, 0,
1322 0x34, 0x66, 0xf, 0x2b, 0, 0,
1323 0x23, 0xf, 0x2b, 0, 0,
1324 0x34, 0xf2, 0xf, 0x2c, 0, 0,
1325 0x34, 0xf3, 0xf, 0x2c, 0, 0,
1326 0x34, 0x66, 0xf, 0x2c, 0, 0,
1327 0x23, 0xf, 0x2c, 0, 0,
1328 0x34, 0x66, 0xf, 0x2d, 0, 0,
1329 0x34, 0xf2, 0xf, 0x2d, 0, 0,
1330 0x34, 0xf3, 0xf, 0x2d, 0, 0,
1331 0x23, 0xf, 0x2d, 0, 0,
1332 0x34, 0x66, 0xf, 0x2e, 0, 0,
1333 0x23, 0xf, 0x2e, 0, 0,
1334 0x34, 0x66, 0xf, 0x2f, 0, 0,
1335 0x23, 0xf, 0x2f, 0, 0,
1336 0x22, 0xf, 0x37,
1337 0x34, 0x66, 0xf, 0x50, 0xc0, 0xc0,
1338 0x23, 0xf, 0x50, 0xc0, 0xc0,
1339 0x34, 0x66, 0xf, 0x51, 0, 0,
1340 0x34, 0xf2, 0xf, 0x51, 0, 0,
1341 0x34, 0xf3, 0xf, 0x51, 0, 0,
1342 0x23, 0xf, 0x51, 0, 0,
1343 0x34, 0xf3, 0xf, 0x52, 0, 0,
1344 0x23, 0xf, 0x52, 0, 0,
1345 0x34, 0xf3, 0xf, 0x53, 0, 0,
1346 0x23, 0xf, 0x53, 0, 0,
1347 0x34, 0x66, 0xf, 0x54, 0, 0,
1348 0x23, 0xf, 0x54, 0, 0,
1349 0x34, 0x66, 0xf, 0x55, 0, 0,
1350 0x23, 0xf, 0x55, 0, 0,
1351 0x34, 0x66, 0xf, 0x56, 0, 0,
1352 0x23, 0xf, 0x56, 0, 0,
1353 0x34, 0x66, 0xf, 0x57, 0, 0,
1354 0x23, 0xf, 0x57, 0, 0,
1355 0x34, 0xf2, 0xf, 0x58, 0, 0,
1356 0x34, 0xf3, 0xf, 0x58, 0, 0,
1357 0x34, 0x66, 0xf, 0x58, 0, 0,
1358 0x23, 0xf, 0x58, 0, 0,
1359 0x34, 0xf2, 0xf, 0x59, 0, 0,
1360 0x34, 0xf3, 0xf, 0x59, 0, 0,
1361 0x34, 0x66, 0xf, 0x59, 0, 0,
1362 0x23, 0xf, 0x59, 0, 0,
1363 0x34, 0xf2, 0xf, 0x5a, 0, 0,
1364 0x34, 0xf3, 0xf, 0x5a, 0, 0,
1365 0x34, 0x66, 0xf, 0x5a, 0, 0,
1366 0x23, 0xf, 0x5a, 0, 0,
1367 0x34, 0x66, 0xf, 0x5b, 0, 0,
1368 0x34, 0xf3, 0xf, 0x5b, 0, 0,
1369 0x23, 0xf, 0x5b, 0, 0,
1370 0x34, 0xf2, 0xf, 0x5c, 0, 0,
1371 0x34, 0xf3, 0xf, 0x5c, 0, 0,
1372 0x34, 0x66, 0xf, 0x5c, 0, 0,
1373 0x23, 0xf, 0x5c, 0, 0,
1374 0x34, 0xf2, 0xf, 0x5d, 0, 0,
1375 0x34, 0xf3, 0xf, 0x5d, 0, 0,
1376 0x34, 0x66, 0xf, 0x5d, 0, 0,
1377 0x23, 0xf, 0x5d, 0, 0,
1378 0x34, 0xf2, 0xf, 0x5e, 0, 0,
1379 0x34, 0xf3, 0xf, 0x5e, 0, 0,
1380 0x34, 0x66, 0xf, 0x5e, 0, 0,
1381 0x23, 0xf, 0x5e, 0, 0,
1382 0x34, 0xf2, 0xf, 0x5f, 0, 0,
1383 0x34, 0xf3, 0xf, 0x5f, 0, 0,
1384 0x34, 0x66, 0xf, 0x5f, 0, 0,
1385 0x23, 0xf, 0x5f, 0, 0,
1386 0x34, 0x66, 0xf, 0x60, 0, 0,
1387 0x23, 0xf, 0x60, 0, 0,
1388 0x34, 0x66, 0xf, 0x61, 0, 0,
1389 0x23, 0xf, 0x61, 0, 0,
1390 0x34, 0x66, 0xf, 0x62, 0, 0,
1391 0x23, 0xf, 0x62, 0, 0,
1392 0x34, 0x66, 0xf, 0x63, 0, 0,
1393 0x23, 0xf, 0x63, 0, 0,
1394 0x34, 0x66, 0xf, 0x64, 0, 0,
1395 0x23, 0xf, 0x64, 0, 0,
1396 0x34, 0x66, 0xf, 0x65, 0, 0,
1397 0x23, 0xf, 0x65, 0, 0,
1398 0x34, 0x66, 0xf, 0x66, 0, 0,
1399 0x23, 0xf, 0x66, 0, 0,
1400 0x34, 0x66, 0xf, 0x67, 0, 0,
1401 0x23, 0xf, 0x67, 0, 0,
1402 0x34, 0x66, 0xf, 0x68, 0, 0,
1403 0x23, 0xf, 0x68, 0, 0,
1404 0x34, 0x66, 0xf, 0x69, 0, 0,
1405 0x23, 0xf, 0x69, 0, 0,
1406 0x34, 0x66, 0xf, 0x6a, 0, 0,
1407 0x23, 0xf, 0x6a, 0, 0,
1408 0x34, 0x66, 0xf, 0x6b, 0, 0,
1409 0x23, 0xf, 0x6b, 0, 0,
1410 0x34, 0x66, 0xf, 0x6c, 0, 0,
1411 0x34, 0x66, 0xf, 0x6d, 0, 0,
1412 0x34, 0x66, 0xf, 0x6e, 0, 0,
1413 0x23, 0xf, 0x6e, 0, 0,
1414 0x34, 0x66, 0xf, 0x6f, 0, 0,
1415 0x34, 0xf3, 0xf, 0x6f, 0, 0,
1416 0x23, 0xf, 0x6f, 0, 0,
1417 0x34, 0x66, 0xf, 0x70, 0, 0,
1418 0x34, 0xf2, 0xf, 0x70, 0, 0,
1419 0x34, 0xf3, 0xf, 0x70, 0, 0,
1420 0x23, 0xf, 0x70, 0, 0,
1421 0x34, 0x66, 0xf, 0x74, 0, 0,
1422 0x23, 0xf, 0x74, 0, 0,
1423 0x34, 0x66, 0xf, 0x75, 0, 0,
1424 0x23, 0xf, 0x75, 0, 0,
1425 0x34, 0x66, 0xf, 0x76, 0, 0,
1426 0x23, 0xf, 0x76, 0, 0,
1427 0x34, 0x66, 0xf, 0x7c, 0, 0,
1428 0x34, 0xf2, 0xf, 0x7c, 0, 0,
1429 0x34, 0x66, 0xf, 0x7d, 0, 0,
1430 0x34, 0xf2, 0xf, 0x7d, 0, 0,
1431 0x34, 0x66, 0xf, 0x7e, 0, 0,
1432 0x34, 0xf3, 0xf, 0x7e, 0, 0,
1433 0x23, 0xf, 0x7e, 0, 0,
1434 0x34, 0x66, 0xf, 0x7f, 0, 0,
1435 0x34, 0xf3, 0xf, 0x7f, 0, 0,
1436 0x23, 0xf, 0x7f, 0, 0,
1437 0x23, 0xf, 0xc3, 0, 0,
1438 0x34, 0x66, 0xf, 0xc4, 0, 0,
1439 0x23, 0xf, 0xc4, 0, 0,
1440 0x34, 0x66, 0xf, 0xc5, 0xc0, 0xc0,
1441 0x23, 0xf, 0xc5, 0xc0, 0xc0,
1442 0x34, 0x66, 0xf, 0xc6, 0, 0,
1443 0x23, 0xf, 0xc6, 0, 0,
1444 0x34, 0x66, 0xf, 0xd1, 0, 0,
1445 0x23, 0xf, 0xd1, 0, 0,
1446 0x34, 0x66, 0xf, 0xd2, 0, 0,
1447 0x23, 0xf, 0xd2, 0, 0,
1448 0x34, 0x66, 0xf, 0xd3, 0, 0,
1449 0x23, 0xf, 0xd3, 0, 0,
1450 0x34, 0x66, 0xf, 0xd4, 0, 0,
1451 0x23, 0xf, 0xd4, 0, 0,
1452 0x34, 0x66, 0xf, 0xd5, 0, 0,
1453 0x23, 0xf, 0xd5, 0, 0,
1454 0x34, 0x66, 0xf, 0xd6, 0, 0,
1455 0x34, 0xf2, 0xf, 0xd6, 0xc0, 0xc0,
1456 0x34, 0xf3, 0xf, 0xd6, 0xc0, 0xc0,
1457 0x34, 0x66, 0xf, 0xd7, 0xc0, 0xc0,
1458 0x23, 0xf, 0xd7, 0xc0, 0xc0,
1459 0x34, 0x66, 0xf, 0xd8, 0, 0,
1460 0x23, 0xf, 0xd8, 0, 0,
1461 0x34, 0x66, 0xf, 0xd9, 0, 0,
1462 0x23, 0xf, 0xd9, 0, 0,
1463 0x34, 0x66, 0xf, 0xda, 0, 0,
1464 0x23, 0xf, 0xda, 0, 0,
1465 0x34, 0x66, 0xf, 0xdc, 0, 0,
1466 0x23, 0xf, 0xdc, 0, 0,
1467 0x34, 0x66, 0xf, 0xdd, 0, 0,
1468 0x23, 0xf, 0xdd, 0, 0,
1469 0x34, 0x66, 0xf, 0xde, 0, 0,
1470 0x23, 0xf, 0xde, 0, 0,
1471 0x34, 0x66, 0xf, 0xe0, 0, 0,
1472 0x23, 0xf, 0xe0, 0, 0,
1473 0x34, 0x66, 0xf, 0xe1, 0, 0,
1474 0x23, 0xf, 0xe1, 0, 0,
1475 0x34, 0x66, 0xf, 0xe2, 0, 0,
1476 0x23, 0xf, 0xe2, 0, 0,
1477 0x34, 0x66, 0xf, 0xe3, 0, 0,
1478 0x23, 0xf, 0xe3, 0, 0,
1479 0x34, 0x66, 0xf, 0xe4, 0, 0,
1480 0x23, 0xf, 0xe4, 0, 0,
1481 0x34, 0x66, 0xf, 0xe5, 0, 0,
1482 0x23, 0xf, 0xe5, 0, 0,
1483 0x34, 0x66, 0xf, 0xe7, 0, 0,
1484 0x23, 0xf, 0xe7, 0, 0,
1485 0x34, 0x66, 0xf, 0xe8, 0, 0,
1486 0x23, 0xf, 0xe8, 0, 0,
1487 0x34, 0x66, 0xf, 0xe9, 0, 0,
1488 0x23, 0xf, 0xe9, 0, 0,
1489 0x34, 0x66, 0xf, 0xea, 0, 0,
1490 0x23, 0xf, 0xea, 0, 0,
1491 0x34, 0x66, 0xf, 0xec, 0, 0,
1492 0x23, 0xf, 0xec, 0, 0,
1493 0x34, 0x66, 0xf, 0xed, 0, 0,
1494 0x23, 0xf, 0xed, 0, 0,
1495 0x34, 0x66, 0xf, 0xee, 0, 0,
1496 0x23, 0xf, 0xee, 0, 0,
1497 0x34, 0xf2, 0xf, 0xf0, 0, 0,
1498 0x34, 0x66, 0xf, 0xf1, 0, 0,
1499 0x23, 0xf, 0xf1, 0, 0,
1500 0x34, 0x66, 0xf, 0xf2, 0, 0,
1501 0x23, 0xf, 0xf2, 0, 0,
1502 0x34, 0x66, 0xf, 0xf3, 0, 0,
1503 0x23, 0xf, 0xf3, 0, 0,
1504 0x34, 0x66, 0xf, 0xf4, 0, 0,
1505 0x23, 0xf, 0xf4, 0, 0,
1506 0x34, 0x66, 0xf, 0xf6, 0, 0,
1507 0x23, 0xf, 0xf6, 0, 0,
1508 0x34, 0x66, 0xf, 0xf7, 0xc0, 0xc0,
1509 0x23, 0xf, 0xf7, 0xc0, 0xc0,
1510 0x34, 0x66, 0xf, 0xf8, 0, 0,
1511 0x23, 0xf, 0xf8, 0, 0,
1512 0x34, 0x66, 0xf, 0xf9, 0, 0,
1513 0x23, 0xf, 0xf9, 0, 0,
1514 0x34, 0x66, 0xf, 0xfa, 0, 0,
1515 0x23, 0xf, 0xfa, 0, 0,
1516 0x34, 0x66, 0xf, 0xfb, 0, 0,
1517 0x23, 0xf, 0xfb, 0, 0,
1518 0x34, 0x66, 0xf, 0xfc, 0, 0,
1519 0x23, 0xf, 0xfc, 0, 0,
1520 0x34, 0x66, 0xf, 0xfd, 0, 0,
1521 0x23, 0xf, 0xfd, 0, 0,
1522 0x34, 0x66, 0xf, 0xfe, 0, 0,
1523 0x23, 0xf, 0xfe, 0, 0,
1524 0x45, 0x66, 0xf, 0x38, 0, 0, 0,
1525 0x34, 0xf, 0x38, 0, 0, 0,
1526 0x45, 0x66, 0xf, 0x38, 0x1, 0, 0,
1527 0x34, 0xf, 0x38, 0x1, 0, 0,
1528 0x45, 0x66, 0xf, 0x38, 0x2, 0, 0,
1529 0x34, 0xf, 0x38, 0x2, 0, 0,
1530 0x45, 0x66, 0xf, 0x38, 0x3, 0, 0,
1531 0x34, 0xf, 0x38, 0x3, 0, 0,
1532 0x45, 0x66, 0xf, 0x38, 0x4, 0, 0,
1533 0x34, 0xf, 0x38, 0x4, 0, 0,
1534 0x45, 0x66, 0xf, 0x38, 0x5, 0, 0,
1535 0x34, 0xf, 0x38, 0x5, 0, 0,
1536 0x45, 0x66, 0xf, 0x38, 0x6, 0, 0,
1537 0x34, 0xf, 0x38, 0x6, 0, 0,
1538 0x45, 0x66, 0xf, 0x38, 0x7, 0, 0,
1539 0x34, 0xf, 0x38, 0x7, 0, 0,
1540 0x45, 0x66, 0xf, 0x38, 0x8, 0, 0,
1541 0x34, 0xf, 0x38, 0x8, 0, 0,
1542 0x45, 0x66, 0xf, 0x38, 0x9, 0, 0,
1543 0x34, 0xf, 0x38, 0x9, 0, 0,
1544 0x45, 0x66, 0xf, 0x38, 0xa, 0, 0,
1545 0x34, 0xf, 0x38, 0xa, 0, 0,
1546 0x45, 0x66, 0xf, 0x38, 0xb, 0, 0,
1547 0x34, 0xf, 0x38, 0xb, 0, 0,
1548 0x45, 0x66, 0xf, 0x38, 0x1c, 0, 0,
1549 0x34, 0xf, 0x38, 0x1c, 0, 0,
1550 0x45, 0x66, 0xf, 0x38, 0x1d, 0, 0,
1551 0x34, 0xf, 0x38, 0x1d, 0, 0,
1552 0x45, 0x66, 0xf, 0x38, 0x1e, 0, 0,
1553 0x34, 0xf, 0x38, 0x1e, 0, 0,
1554 0x45, 0x66, 0xf, 0x3a, 0xf, 0, 0,
1555 0x34, 0xf, 0x3a, 0xf, 0, 0,
1556 0x34, 0x66, 0xf, 0xc7, 0x38, 0x30,
1557 0x34, 0xf3, 0xf, 0xc7, 0x38, 0x30,
1558 0x23, 0xf, 0xc7, 0x38, 0x30,
1559 0x23, 0xf, 0xc7, 0x38, 0x38,
1560 0x34, 0x66, 0xf, 0x71, 0xf8, 0xd0,
1561 0x23, 0xf, 0x71, 0xf8, 0xd0,
1562 0x34, 0x66, 0xf, 0x71, 0xf8, 0xe0,
1563 0x23, 0xf, 0x71, 0xf8, 0xe0,
1564 0x34, 0x66, 0xf, 0x71, 0xf8, 0xf0,
1565 0x23, 0xf, 0x71, 0xf8, 0xf0,
1566 0x34, 0x66, 0xf, 0x72, 0xf8, 0xd0,
1567 0x23, 0xf, 0x72, 0xf8, 0xd0,
1568 0x34, 0x66, 0xf, 0x72, 0xf8, 0xe0,
1569 0x23, 0xf, 0x72, 0xf8, 0xe0,
1570 0x34, 0x66, 0xf, 0x72, 0xf8, 0xf0,
1571 0x23, 0xf, 0x72, 0xf8, 0xf0,
1572 0x34, 0x66, 0xf, 0x73, 0xf8, 0xd0,
1573 0x23, 0xf, 0x73, 0xf8, 0xd0,
1574 0x34, 0x66, 0xf, 0x73, 0xf8, 0xd8,
1575 0x34, 0x66, 0xf, 0x73, 0xf8, 0xf0,
1576 0x23, 0xf, 0x73, 0xf8, 0xf0,
1577 0x34, 0x66, 0xf, 0x73, 0xf8, 0xf8,
1578 0x33, 0xf, 0xae, 0xe8,
1579 0x33, 0xf, 0xae, 0xf0,
1580 0x33, 0xf, 0xae, 0xf8,
1581 0x23, 0xf, 0xae, 0x38, 0x38,
1582 0x23, 0xf, 0xf, 0, 0,
1583 0x45, 0x66, 0xf, 0x3a, 0xc, 0, 0,
1584 0x45, 0x66, 0xf, 0x3a, 0xd, 0, 0,
1585 0x45, 0x66, 0xf, 0x38, 0x14, 0, 0,
1586 0x45, 0x66, 0xf, 0x38, 0x15, 0, 0,
1587 0x45, 0x66, 0xf, 0x3a, 0x40, 0, 0,
1588 0x45, 0x66, 0xf, 0x3a, 0x41, 0, 0,
1589 0x45, 0x66, 0xf, 0x3a, 0x21, 0, 0,
1590 0x45, 0x66, 0xf, 0x38, 0x2a, 0, 0,
1591 0x45, 0x66, 0xf, 0x3a, 0x42, 0, 0,
1592 0x45, 0x66, 0xf, 0x38, 0x2b, 0, 0,
1593 0x45, 0x66, 0xf, 0x38, 0x10, 0, 0,
1594 0x45, 0x66, 0xf, 0x3a, 0xe, 0, 0,
1595 0x45, 0x66, 0xf, 0x38, 0x29, 0, 0,
1596 0x45, 0x66, 0xf, 0x3a, 0x61, 0, 0,
1597 0x45, 0x66, 0xf, 0x3a, 0x60, 0, 0,
1598 0x45, 0x66, 0xf, 0x3a, 0x63, 0, 0,
1599 0x45, 0x66, 0xf, 0x3a, 0x62, 0, 0,
1600 0x45, 0x66, 0xf, 0x38, 0x37, 0, 0,
1601 0x45, 0x66, 0xf, 0x38, 0x41, 0, 0,
1602 0x45, 0x66, 0xf, 0x3a, 0x20, 0, 0,
1603 0x45, 0x66, 0xf, 0x3a, 0x22, 0, 0,
1604 0x45, 0x66, 0xf, 0x38, 0x3c, 0, 0,
1605 0x45, 0x66, 0xf, 0x38, 0x3d, 0, 0,
1606 0x45, 0x66, 0xf, 0x38, 0x3f, 0, 0,
1607 0x45, 0x66, 0xf, 0x38, 0x3e, 0, 0,
1608 0x45, 0x66, 0xf, 0x38, 0x38, 0, 0,
1609 0x45, 0x66, 0xf, 0x38, 0x39, 0, 0,
1610 0x45, 0x66, 0xf, 0x38, 0x3b, 0, 0,
1611 0x45, 0x66, 0xf, 0x38, 0x3a, 0, 0,
1612 0x45, 0x66, 0xf, 0x38, 0x20, 0, 0,
1613 0x45, 0x66, 0xf, 0x38, 0x21, 0, 0,
1614 0x45, 0x66, 0xf, 0x38, 0x22, 0, 0,
1615 0x45, 0x66, 0xf, 0x38, 0x23, 0, 0,
1616 0x45, 0x66, 0xf, 0x38, 0x24, 0, 0,
1617 0x45, 0x66, 0xf, 0x38, 0x25, 0, 0,
1618 0x45, 0x66, 0xf, 0x38, 0x30, 0, 0,
1619 0x45, 0x66, 0xf, 0x38, 0x31, 0, 0,
1620 0x45, 0x66, 0xf, 0x38, 0x32, 0, 0,
1621 0x45, 0x66, 0xf, 0x38, 0x33, 0, 0,
1622 0x45, 0x66, 0xf, 0x38, 0x34, 0, 0,
1623 0x45, 0x66, 0xf, 0x38, 0x35, 0, 0,
1624 0x45, 0x66, 0xf, 0x38, 0x28, 0, 0,
1625 0x45, 0x66, 0xf, 0x38, 0x40, 0, 0,
1626 0x45, 0x66, 0xf, 0x38, 0x17, 0, 0,
1627 0x45, 0x66, 0xf, 0x3a, 0x8, 0, 0,
1628 0x45, 0x66, 0xf, 0x3a, 0x9, 0, 0,
1629 0x45, 0x66, 0xf, 0x3a, 0xa, 0, 0,
1630 0x45, 0x66, 0xf, 0x3a, 0xb, 0, 0,
1631 0x1, 0xe7, 0x7,
1632};
diff --git a/meta/recipes-devtools/elfutils/elfutils_0.148.bb b/meta/recipes-devtools/elfutils/elfutils_0.148.bb
deleted file mode 100644
index 6080c179fa..0000000000
--- a/meta/recipes-devtools/elfutils/elfutils_0.148.bb
+++ /dev/null
@@ -1,91 +0,0 @@
1SUMMARY = "Utilities and libraries for handling compiled object files"
2HOMEPAGE = "https://fedorahosted.org/elfutils"
3SECTION = "base"
4LICENSE = "(GPL-2+ & Elfutils-Exception)"
5LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3\
6 file://EXCEPTION;md5=570adcb0c1218ab57f2249c67d0ce417"
7DEPENDS = "libtool bzip2 zlib virtual/libintl"
8
9PR = "r11"
10
11SRC_URI = "https://fedorahosted.org/releases/e/l/${BPN}/${BP}.tar.bz2"
12
13SRC_URI[md5sum] = "a0bed1130135f17ad27533b0034dba8d"
14SRC_URI[sha256sum] = "8aebfa4a745db21cf5429c9541fe482729b62efc7e53e9110151b4169fe887da"
15
16# pick the patch from debian
17# http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.148-1.debian.tar.gz
18
19SRC_URI += "\
20 file://redhat-portability.diff \
21 file://redhat-robustify.diff \
22 file://hppa_backend.diff \
23 file://arm_backend.diff \
24 file://mips_backend.diff \
25 file://m68k_backend.diff \
26 file://testsuite-ignore-elflint.diff \
27 file://elf_additions.diff \
28 file://elfutils-fsize.patch \
29 file://remove-unused.patch \
30 file://fix_for_gcc-4.7.patch \
31 file://dso-link-change.patch \
32 file://nm-Fix-size-passed-to-snprintf-for-invalid-sh_name-case.patch \
33 file://elfutils-ar-c-fix-num-passed-to-memset.patch \
34 file://Fix_elf_cvt_gunhash.patch \
35 file://elf_begin.c-CVE-2014-9447-fix.patch \
36 file://fix-build-gcc-4.8.patch \
37 file://gcc6.patch \
38"
39# Only apply when building uclibc based target recipe
40SRC_URI_append_libc-uclibc = " file://uclibc-support-for-elfutils-0.148.patch"
41
42# The buildsystem wants to generate 2 .h files from source using a binary it just built,
43# which can not pass the cross compiling, so let's work around it by adding 2 .h files
44# along with the do_configure_prepend()
45
46SRC_URI += "\
47 file://i386_dis.h \
48 file://x86_64_dis.h \
49"
50inherit autotools gettext
51
52EXTRA_OECONF = "--program-prefix=eu- --without-lzma"
53EXTRA_OECONF_append_class-native = " --without-bzlib"
54EXTRA_OECONF_append_libc-uclibc = " --enable-uclibc"
55
56do_configure_prepend() {
57 sed -i '/^i386_dis.h:/,+4 {/.*/d}' ${S}/libcpu/Makefile.am
58
59 cp ${WORKDIR}/*dis.h ${S}/libcpu
60}
61
62# we can not build complete elfutils when using uclibc
63# but some recipes e.g. gcc 4.5 depends on libelf so we
64# build only libelf for uclibc case
65
66EXTRA_OEMAKE_libc-uclibc = "-C libelf"
67EXTRA_OEMAKE_class-native = ""
68EXTRA_OEMAKE_class-nativesdk = ""
69
70BBCLASSEXTEND = "native nativesdk"
71
72# Package utilities separately
73PACKAGES =+ "${PN}-binutils libelf libasm libdw"
74FILES_${PN}-binutils = "\
75 ${bindir}/eu-addr2line \
76 ${bindir}/eu-ld \
77 ${bindir}/eu-nm \
78 ${bindir}/eu-readelf \
79 ${bindir}/eu-size \
80 ${bindir}/eu-strip"
81
82FILES_libelf = "${libdir}/libelf-${PV}.so ${libdir}/libelf.so.*"
83FILES_libasm = "${libdir}/libasm-${PV}.so ${libdir}/libasm.so.*"
84FILES_libdw = "${libdir}/libdw-${PV}.so ${libdir}/libdw.so.* ${libdir}/elfutils/lib*"
85# Some packages have the version preceeding the .so instead properly
86# versioned .so.<version>, so we need to reorder and repackage.
87#FILES_${PN} += "${libdir}/*-${PV}.so ${base_libdir}/*-${PV}.so"
88#FILES_SOLIBSDEV = "${libdir}/libasm.so ${libdir}/libdw.so ${libdir}/libelf.so"
89
90# The package contains symlinks that trip up insane
91INSANE_SKIP_${MLPREFIX}libdw = "dev-so"
diff --git a/meta/recipes-devtools/m4/m4-1.4.9.inc b/meta/recipes-devtools/m4/m4-1.4.9.inc
deleted file mode 100644
index aab2c1efa2..0000000000
--- a/meta/recipes-devtools/m4/m4-1.4.9.inc
+++ /dev/null
@@ -1,13 +0,0 @@
1require m4.inc
2
3LICENSE = "GPLv2"
4
5LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe\
6 file://examples/COPYING;md5=1d49bd61dc590f014cae7173b43e3e5c"
7
8PR = "r2"
9SRC_URI += "file://fix_for_circular_dependency.patch"
10
11SRC_URI[md5sum] = "1ba8e147aff5e79bd2bfb983d86b53d5"
12SRC_URI[sha256sum] = "815ce53853fbf6493617f467389b799208b1ec98296b95be44a683f8bcfd7c47"
13
diff --git a/meta/recipes-devtools/m4/m4/fix_for_circular_dependency.patch b/meta/recipes-devtools/m4/m4/fix_for_circular_dependency.patch
deleted file mode 100644
index 98774535d5..0000000000
--- a/meta/recipes-devtools/m4/m4/fix_for_circular_dependency.patch
+++ /dev/null
@@ -1,77 +0,0 @@
1Upstream-Status: Inappropriate [licensing]
2
3The older GPLv2 m4 does not work well with newer autoconf. It causes the
4circular dependency as seen bellow.
5 Removing this m4 file which was needed only forl older autoconf
6
7| configure.ac:34: error: AC_REQUIRE: circular dependency of AC_GNU_SOURCE
8| /build_disk/poky_build/build1/tmp/work/i586-poky-linux/m4-1.4.9-r0/m4-1.4.9/m4/extensions.m4:19: AC_USE_SYSTEM_EXTENSIONS is expanded from...
9| ../../lib/autoconf/specific.m4:310: AC_GNU_SOURCE is expanded from...
10| /build_disk/poky_build/build1/tmp/work/i586-poky-linux/m4-1.4.9-r0/m4-1.4.9/m4/gnulib-comp.m4:21: M4_EARLY is expanded from...
11| configure.ac:34: the top level
12| autom4te: /build_disk/poky_build/build1/tmp/sysroots/x86_64-linux/usr/bin/m4 failed with exit status: 1
13| aclocal: /build_disk/poky_build/build1/tmp/sysroots/x86_64-linux/usr/bin/autom4te failed with exit status: 1
14| autoreconf: aclocal failed with exit status: 1
15
16Nitin A Kamble <nitin.a.kamble@intel.com>
172011/03/16
18
19Index: m4-1.4.9/m4/extensions.m4
20===================================================================
21--- m4-1.4.9.orig/m4/extensions.m4
22+++ m4-1.4.9/m4/extensions.m4
23@@ -6,53 +6,10 @@
24 # gives unlimited permission to copy and/or distribute it,
25 # with or without modifications, as long as this notice is preserved.
26
27-# This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from CVS
28-# Autoconf. Perhaps we can remove this once we can assume Autoconf
29-# 2.61 or later everywhere, but since CVS Autoconf mutates rapidly
30-# enough in this area it's likely we'll need to redefine
31-# AC_USE_SYSTEM_EXTENSIONS for quite some time.
32-
33-# AC_USE_SYSTEM_EXTENSIONS
34-# ------------------------
35-# Enable extensions on systems that normally disable them,
36-# typically due to standards-conformance issues.
37-AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
38-[
39- AC_BEFORE([$0], [AC_COMPILE_IFELSE])
40- AC_BEFORE([$0], [AC_RUN_IFELSE])
41-
42- AC_REQUIRE([AC_GNU_SOURCE])
43- AC_REQUIRE([AC_AIX])
44- AC_REQUIRE([AC_MINIX])
45-
46- AH_VERBATIM([__EXTENSIONS__],
47-[/* Enable extensions on Solaris. */
48-#ifndef __EXTENSIONS__
49-# undef __EXTENSIONS__
50-#endif
51-#ifndef _POSIX_PTHREAD_SEMANTICS
52-# undef _POSIX_PTHREAD_SEMANTICS
53-#endif
54-#ifndef _TANDEM_SOURCE
55-# undef _TANDEM_SOURCE
56-#endif])
57- AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
58- [ac_cv_safe_to_define___extensions__],
59- [AC_COMPILE_IFELSE(
60- [AC_LANG_PROGRAM([
61-# define __EXTENSIONS__ 1
62- AC_INCLUDES_DEFAULT])],
63- [ac_cv_safe_to_define___extensions__=yes],
64- [ac_cv_safe_to_define___extensions__=no])])
65- test $ac_cv_safe_to_define___extensions__ = yes &&
66- AC_DEFINE([__EXTENSIONS__])
67- AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
68- AC_DEFINE([_TANDEM_SOURCE])
69-])
70
71 # gl_USE_SYSTEM_EXTENSIONS
72 # ------------------------
73 # Enable extensions on systems that normally disable them,
74 # typically due to standards-conformance issues.
75 AC_DEFUN([gl_USE_SYSTEM_EXTENSIONS],
76- [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])])
77+ [])
diff --git a/meta/recipes-devtools/m4/m4_1.4.9.bb b/meta/recipes-devtools/m4/m4_1.4.9.bb
deleted file mode 100644
index b12c0adf3a..0000000000
--- a/meta/recipes-devtools/m4/m4_1.4.9.bb
+++ /dev/null
@@ -1,3 +0,0 @@
1require m4-${PV}.inc
2
3BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-devtools/make/make-3.81/make_fix_for_automake-1.12.patch b/meta/recipes-devtools/make/make-3.81/make_fix_for_automake-1.12.patch
deleted file mode 100644
index 102fe79ab8..0000000000
--- a/meta/recipes-devtools/make/make-3.81/make_fix_for_automake-1.12.patch
+++ /dev/null
@@ -1,43 +0,0 @@
1Upstream-Status: Pending
2
3automake 1.12 has depricated automatic de-ANSI-fication support
4
5this patch avoids these kinds of errors:
6
7| configure.in:48: error: automatic de-ANSI-fication support has been removed
8...
9| Makefile.am:19: error: automatic de-ANSI-fication support has been removed
10| autoreconf: automake failed with exit status: 1
11| ERROR: autoreconf execution failed.
12
13
14Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
152012/05/04
16
17Index: make-3.81/configure.in
18===================================================================
19--- make-3.81.orig/configure.in
20+++ make-3.81/configure.in
21@@ -44,9 +44,6 @@ AC_AIX
22 AC_ISC_POSIX
23 AC_MINIX
24
25-# Needed for ansi2knr
26-AM_C_PROTOTYPES
27-
28 # Enable gettext, in "external" mode.
29
30 AM_GNU_GETTEXT_VERSION(0.14.1)
31Index: make-3.81/Makefile.am
32===================================================================
33--- make-3.81.orig/Makefile.am
34+++ make-3.81/Makefile.am
35@@ -16,7 +16,7 @@
36 # GNU Make; see the file COPYING. If not, write to the Free Software
37 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
38
39-AUTOMAKE_OPTIONS = 1.8 dist-bzip2 check-news ansi2knr
40+AUTOMAKE_OPTIONS = 1.8 dist-bzip2 check-news
41 ACLOCAL_AMFLAGS = -I config
42
43 MAKE_HOST = @MAKE_HOST@
diff --git a/meta/recipes-devtools/make/make-3.81/makeinfo.patch b/meta/recipes-devtools/make/make-3.81/makeinfo.patch
deleted file mode 100644
index 5dd7604675..0000000000
--- a/meta/recipes-devtools/make/make-3.81/makeinfo.patch
+++ /dev/null
@@ -1,22 +0,0 @@
1Allow docs to build with makeinfo 5.X, fixing the error:
2
3doc/make.texi:8165: @itemx must follow @item
4
5Upstream-Status: Backport
6
7RP
82014/03/29
9
10Index: make-3.81/doc/make.texi
11===================================================================
12--- make-3.81.orig/doc/make.texi 2006-04-01 06:36:40.000000000 +0000
13+++ make-3.81/doc/make.texi 2014-03-29 09:39:51.007727012 +0000
14@@ -8162,7 +8162,7 @@
15 rarely need to specify this option since @samp{make} does it for you;
16 see @ref{-w Option, ,The @samp{--print-directory} Option}.)
17
18-@itemx --no-print-directory
19+@item --no-print-directory
20 @cindex @code{--no-print-directory}
21 Disable printing of the working directory under @code{-w}.
22 This option is useful when @code{-w} is turned on automatically,
diff --git a/meta/recipes-devtools/make/make_3.81.bb b/meta/recipes-devtools/make/make_3.81.bb
deleted file mode 100644
index b8a79b0eb2..0000000000
--- a/meta/recipes-devtools/make/make_3.81.bb
+++ /dev/null
@@ -1,15 +0,0 @@
1PR = "r1"
2
3LICENSE = "GPLv2 & LGPLv2"
4LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f \
5 file://tests/COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
6 file://glob/COPYING.LIB;md5=4a770b67e6be0f60da244beb2de0fce4"
7
8require make.inc
9
10SRC_URI += "file://make_fix_for_automake-1.12.patch"
11SRC_URI += "file://makeinfo.patch"
12
13SRC_URI[md5sum] = "354853e0b2da90c527e35aabb8d6f1e6"
14SRC_URI[sha256sum] = "f3e69023771e23908f5d5592954d8271d3d6af09693cecfd29cee6fde8550dc8"
15
diff --git a/meta/recipes-devtools/mtools/mtools/fix-broken-lz.patch b/meta/recipes-devtools/mtools/mtools/fix-broken-lz.patch
deleted file mode 100644
index cb454917ff..0000000000
--- a/meta/recipes-devtools/mtools/mtools/fix-broken-lz.patch
+++ /dev/null
@@ -1,23 +0,0 @@
1Upstream-Status: Backport
2
3Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
4Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
5---
6 Makefile.in | 1 +
7 1 file changed, 1 insertion(+)
8
9diff --git a/Makefile.in b/Makefile.in
10index 8f9305a..694e837 100644
11--- a/Makefile.in
12+++ b/Makefile.in
13@@ -251,6 +251,7 @@ install-scripts: ${DESTDIR}$(bindir)/mtools
14 @$(top_srcdir)/mkinstalldirs ${DESTDIR}$(bindir)
15 @for j in $(SCRIPTS) ; do \
16 $(INSTALL_SCRIPT) $(srcdir)/scripts/$$j ${DESTDIR}$(bindir)/$$j ; \
17+ $(INSTALL_PROGRAM) $(srcdir)/scripts/$$j ${DESTDIR}$(bindir)/$$j ; \
18 echo ${DESTDIR}$(bindir)/$$j ; \
19 done
20 rm -f ${DESTDIR}$(bindir)/lz
21--
222.0.0
23
diff --git a/meta/recipes-devtools/mtools/mtools/mtools.patch b/meta/recipes-devtools/mtools/mtools/mtools.patch
deleted file mode 100644
index 15a32088d1..0000000000
--- a/meta/recipes-devtools/mtools/mtools/mtools.patch
+++ /dev/null
@@ -1,129 +0,0 @@
1$NetBSD: patch-aa,v 1.10 2007/08/17 20:55:34 joerg Exp $
2
3---
4 Makefile.in | 74 ++++++++++++++++++++++++++----------------------------------
5 1 file changed, 33 insertions(+), 41 deletions(-)
6
7Upstream-Status: Inappropriate [licensing]
8
9Index: mtools-3.9.9/Makefile.in
10===================================================================
11--- mtools-3.9.9.orig/Makefile.in 2007-10-12 11:18:46.000000000 +0100
12+++ mtools-3.9.9/Makefile.in 2007-10-12 11:28:14.000000000 +0100
13@@ -195,30 +195,22 @@ html: mtools.html mtools_toc.html
14
15 # Don't cd, to avoid breaking install-sh references.
16 install-info: info
17- $(top_srcdir)/mkinstalldirs $(infodir)
18+ $(top_srcdir)/mkinstalldirs ${DESTDIR}$(infodir)
19 if test -f mtools.info; then \
20 for i in mtools.info*; do \
21- $(INSTALL_DATA) $$i $(infodir)/$$i; \
22+ $(INSTALL_DATA) $$i ${DESTDIR}$(infodir)/$$i; \
23 done; \
24 else \
25 for i in $(srcdir)/mtools.info*; do \
26- $(INSTALL_DATA) $$i $(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
27+ $(INSTALL_DATA) $$i ${DESTDIR}$(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
28 done; \
29 fi; \
30- if [ -n "$(INSTALL_INFO)" ] ; then \
31- if [ -f $(infodir)/dir.info ] ; then \
32- $(INSTALL_INFO) $(infodir)/mtools.info $(infodir)/dir.info; \
33- fi; \
34- if [ -f $(infodir)/dir ] ; then \
35- $(INSTALL_INFO) $(infodir)/mtools.info $(infodir)/dir; \
36- fi; \
37- fi
38
39 uninstall-info:
40 cd $(infodir) && rm -f mtools.info*
41
42-install: $(bindir)/mtools @BINFLOPPYD@ install-man install-links \
43- $(bindir)/mkmanifest install-scripts install-info
44+install: ${DESTDIR}$(bindir)/mtools ${DESTDIR}$(bindir)/floppyd install-man install-links \
45+ ${DESTDIR}$(bindir)/mkmanifest install-scripts install-info
46
47 uninstall: uninstall-bin uninstall-man uninstall-links \
48 uninstall-scripts
49@@ -228,52 +220,52 @@ distclean: clean texclean
50 maintainer-clean: distclean
51
52
53-$(bindir)/floppyd: floppyd
54- $(top_srcdir)/mkinstalldirs $(bindir)
55- $(INSTALL_PROGRAM) floppyd $(bindir)/floppyd
56+${DESTDIR}$(bindir)/floppyd: floppyd
57+ $(top_srcdir)/mkinstalldirs ${DESTDIR}$(bindir)
58+ $(INSTALL_PROGRAM) floppyd ${DESTDIR}$(bindir)/floppyd
59
60-$(bindir)/floppyd_installtest: floppyd_installtest
61- $(top_srcdir)/mkinstalldirs $(bindir)
62- $(INSTALL_PROGRAM) floppyd_installtest $(bindir)/floppyd_installtest
63+${DESTDIR}$(bindir)/floppyd_installtest: floppyd_installtest
64+ $(top_srcdir)/mkinstalldirs ${DESTDIR}$(bindir)
65+ $(INSTALL_PROGRAM) floppyd_installtest ${DESTDIR}$(bindir)/floppyd_installtest
66
67-$(bindir)/mtools: mtools
68- $(top_srcdir)/mkinstalldirs $(bindir)
69- $(INSTALL_PROGRAM) mtools $(bindir)/mtools
70+${DESTDIR}$(bindir)/mtools: mtools
71+ $(top_srcdir)/mkinstalldirs ${DESTDIR}$(bindir)
72+ $(INSTALL_PROGRAM) mtools ${DESTDIR}$(bindir)/mtools
73
74-$(bindir)/mkmanifest: mkmanifest
75- $(top_srcdir)/mkinstalldirs $(bindir)
76- $(INSTALL_PROGRAM) mkmanifest $(bindir)/mkmanifest
77+${DESTDIR}$(bindir)/mkmanifest: mkmanifest
78+ $(top_srcdir)/mkinstalldirs ${DESTDIR}$(bindir)
79+ $(INSTALL_PROGRAM) mkmanifest ${DESTDIR}$(bindir)/mkmanifest
80
81 #$(ETCDIR)/mtools: mtools.etc
82 # cp mtools.etc $(ETCDIR)/mtools
83
84-install-links: $(bindir)/mtools
85+install-links: ${DESTDIR}$(bindir)/mtools
86 @for j in $(LINKS); do \
87- rm -f $(bindir)/$$j ; \
88- $(LN_S) mtools $(bindir)/$$j ; \
89- echo $(bindir)/$$j ; \
90+ rm -f ${DESTDIR}$(bindir)/$$j ; \
91+ $(LN_S) mtools ${DESTDIR}$(bindir)/$$j ; \
92+ echo ${DESTDIR}$(bindir)/$$j ; \
93 done
94
95 ## "z" is the older version of "gz"; the name is just *too* short
96-install-scripts: $(bindir)/mtools
97- @$(top_srcdir)/mkinstalldirs $(bindir)
98+install-scripts: ${DESTDIR}$(bindir)/mtools
99+ @$(top_srcdir)/mkinstalldirs ${DESTDIR}$(bindir)
100 @for j in $(SCRIPTS) ; do \
101- $(INSTALL_PROGRAM) $(srcdir)/scripts/$$j $(bindir)/$$j ; \
102- echo $(bindir)/$$j ; \
103+ $(INSTALL_SCRIPT) $(srcdir)/scripts/$$j ${DESTDIR}$(bindir)/$$j ; \
104+ echo ${DESTDIR}$(bindir)/$$j ; \
105 done
106- rm -f $(bindir)/lz
107- $(LN_S) uz $(bindir)/lz
108+ rm -f ${DESTDIR}$(bindir)/lz
109+ $(LN_S) uz ${DESTDIR}$(bindir)/lz
110
111 install-man:
112- @$(top_srcdir)/mkinstalldirs $(MAN1DIR)
113+ @$(top_srcdir)/mkinstalldirs ${DESTDIR}$(MAN1DIR)
114 @for j in $(MAN1); do \
115- $(INSTALL_DATA) $(srcdir)/$$j $(MAN1DIR)/$$j ; \
116- echo $(MAN1DIR)/$$j ; \
117+ $(INSTALL_DATA) $(srcdir)/$$j ${DESTDIR}$(MAN1DIR)/$$j ; \
118+ echo ${DESTDIR}$(MAN1DIR)/$$j ; \
119 done
120- @$(top_srcdir)/mkinstalldirs $(MAN5DIR)
121+ @$(top_srcdir)/mkinstalldirs ${DESTDIR}$(MAN5DIR)
122 @for j in $(MAN5); do \
123- $(INSTALL_DATA) $(srcdir)/$$j $(MAN5DIR)/$$j ; \
124- echo $(MAN5DIR)/$$j ; \
125+ $(INSTALL_DATA) $(srcdir)/$$j ${DESTDIR}$(MAN5DIR)/$$j ; \
126+ echo ${DESTDIR}$(MAN5DIR)/$$j ; \
127 done
128
129 uninstall-bin:
diff --git a/meta/recipes-devtools/mtools/mtools/no-x11.patch b/meta/recipes-devtools/mtools/mtools/no-x11.patch
deleted file mode 100644
index 705b62944d..0000000000
--- a/meta/recipes-devtools/mtools/mtools/no-x11.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1---
2 Makefile.in | 2 +-
3 1 file changed, 1 insertion(+), 1 deletion(-)
4
5Upstream-Status: Inappropriate [licensing]
6
7--- mtools-3.9.9.orig/Makefile.in
8+++ mtools-3.9.9/Makefile.in
9@@ -128,11 +128,11 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
10 X_PRE_LIBS = @X_PRE_LIBS@
11 CFLAGS = $(CPPFLAGS) $(DEFS) $(MYCFLAGS) -I. @extraincludedir@ -I@srcdir@ $(USERCFLAGS)
12 CXXFLAGS = $(CPPFLAGS) $(DEFS) $(MYCXXFLAGS) -I. @extraincludedir@ -I@srcdir@ $(USERCFLAGS)
13 LINK = $(CC) $(LDFLAGS) $(USERLDFLAGS) @extralibdir@
14 ALLLIBS = $(USERLDLIBS) $(MACHDEPLIBS) $(SHLIB) $(LIBS)
15-X_LDFLAGS = $(X_EXTRA_LIBS) $(X_LIBS) $(X_PRE_LIBS) -lXau -lX11 $(LIBS)
16+X_LDFLAGS = $(X_EXTRA_LIBS) $(X_LIBS) $(X_PRE_LIBS) $(LIBS)
17 X_CCFLAGS = $(X_CFLAGS) $(CFLAGS)
18
19 all: mtools $(LINKS) mkmanifest @FLOPPYD@
20
21 %.o: %.c
diff --git a/meta/recipes-devtools/mtools/mtools_3.9.9.bb b/meta/recipes-devtools/mtools/mtools_3.9.9.bb
deleted file mode 100644
index 2904ff4f98..0000000000
--- a/meta/recipes-devtools/mtools/mtools_3.9.9.bb
+++ /dev/null
@@ -1,55 +0,0 @@
1SUMMARY = "Utilities to access MS-DOS disks without mounting them"
2DESCRIPTION = "Mtools is a collection of utilities to access MS-DOS disks from GNU and Unix without mounting them."
3HOMEPAGE = "http://www.gnu.org/software/mtools/"
4SECTION = "optional"
5LICENSE = "GPLv2+"
6LIC_FILES_CHKSUM = "file://COPYING;md5=92b58ec77696788ce278b044d2a8e9d3"
7PR = "r6"
8
9DEPENDS += "virtual/libiconv"
10
11RDEPENDS_${PN}_libc-glibc = "glibc-gconv-ibm850"
12RRECOMMENDS_${PN}_libc-glibc = "\
13 glibc-gconv-ibm437 \
14 glibc-gconv-ibm737 \
15 glibc-gconv-ibm775 \
16 glibc-gconv-ibm851 \
17 glibc-gconv-ibm852 \
18 glibc-gconv-ibm855 \
19 glibc-gconv-ibm857 \
20 glibc-gconv-ibm860 \
21 glibc-gconv-ibm861 \
22 glibc-gconv-ibm862 \
23 glibc-gconv-ibm863 \
24 glibc-gconv-ibm865 \
25 glibc-gconv-ibm866 \
26 glibc-gconv-ibm869 \
27 "
28SRC_URI[md5sum] = "3e68b857b4e1f3a6521d1dfefbd30a36"
29SRC_URI[sha256sum] = "af083a73425d664d4607ef6c6564fd9319a0e47ee7c105259a45356cb834690e"
30
31#http://mtools.linux.lu/mtools-${PV}.tar.gz
32SRC_URI = "http://downloads.yoctoproject.org/mirror/sources/mtools-${PV}.tar.gz \
33 file://mtools-makeinfo.patch \
34 file://mtools.patch \
35 file://no-x11.patch \
36 file://fix-broken-lz.patch \
37 file://0001-Continue-even-if-fs-size-is-not-divisible-by-sectors.patch \
38 "
39
40inherit autotools texinfo
41
42EXTRA_OECONF = "--without-x"
43
44LDFLAGS_append_libc-uclibc = " -liconv "
45
46BBCLASSEXTEND = "native nativesdk"
47
48PACKAGECONFIG ??= ""
49PACKAGECONFIG[libbsd] = "ac_cv_lib_bsd_main=yes,ac_cv_lib_bsd_main=no,libbsd"
50
51do_install_prepend () {
52 # Create bindir to fix parallel installation issues
53 mkdir -p ${D}/${bindir}
54 mkdir -p ${D}/${datadir}
55}
diff --git a/meta/recipes-devtools/patch/patch/debian.patch b/meta/recipes-devtools/patch/patch/debian.patch
deleted file mode 100644
index 1a07646591..0000000000
--- a/meta/recipes-devtools/patch/patch/debian.patch
+++ /dev/null
@@ -1,10426 +0,0 @@
1Upstream-Status: Inappropriate [debian patch]
2
3--- patch-2.5.9.orig/m4/hash.m4
4+++ patch-2.5.9/m4/hash.m4
5@@ -0,0 +1,15 @@
6+# hash.m4 serial 1
7+dnl Copyright (C) 2002 Free Software Foundation, Inc.
8+dnl This file is free software, distributed under the terms of the GNU
9+dnl General Public License. As a special exception to the GNU General
10+dnl Public License, this file may be distributed as part of a program
11+dnl that contains a configuration script generated by Autoconf, under
12+dnl the same distribution terms as the rest of that program.
13+
14+AC_DEFUN([gl_HASH],
15+[
16+ dnl Prerequisites of lib/hash.c.
17+ AC_CHECK_HEADERS_ONCE(stdlib.h)
18+ AC_HEADER_STDBOOL
19+ AC_CHECK_DECLS_ONCE(free malloc)
20+])
21--- patch-2.5.9.orig/m4/nanosecond_stat.m4
22+++ patch-2.5.9/m4/nanosecond_stat.m4
23@@ -0,0 +1,35 @@
24+AC_DEFUN([ag_CHECK_NANOSECOND_STAT],
25+ [AC_CACHE_CHECK([for nanosecond timestamps in struct stat],
26+ [ac_cv_stat_nsec],
27+ [AC_TRY_COMPILE(
28+ [
29+ #include <sys/types.h>
30+ #include <sys/stat.h>
31+ #include <unistd.h>
32+ struct stat st;
33+ ],
34+ [ return st.st_atimensec + st.st_mtimensec + st.st_ctimensec; ],
35+ [ac_cv_stat_nsec=yes],
36+ [ac_cv_stat_nsec=no])
37+ ])
38+ if test $ac_cv_stat_nsec = yes; then
39+ AC_DEFINE(HAVE_STAT_NSEC, 1, [Define to 1 if struct stat has nanosecond timestamps.])
40+ fi
41+
42+ AC_CACHE_CHECK([for nanosecond timestamps in struct stat],
43+ [ac_cv_stat_timeval],
44+ [AC_TRY_COMPILE(
45+ [
46+ #include <time.h>
47+ #include <sys/types.h>
48+ #include <sys/stat.h>
49+ #include <unistd.h>
50+ struct stat st;
51+ ],
52+ [ return st.st_atim.tv_nsec + st.st_mtim.tv_nsec + st.st_ctim.tv_nsec; ],
53+ [ac_cv_stat_timeval=yes],
54+ [ac_cv_stat_timeval=no])
55+ ])
56+ if test $ac_cv_stat_timeval = yes; then
57+ AC_DEFINE(HAVE_STAT_TIMEVAL, 1, [Define to 1 if struct stat comtains struct timeval's.])
58+ fi])
59--- patch-2.5.9.orig/Makefile.in
60+++ patch-2.5.9/Makefile.in
61@@ -62,7 +62,7 @@
62 SHELL = /bin/sh
63
64 LIBSRCS = error.c malloc.c memchr.c mkdir.c \
65- realloc.c rmdir.c strcasecmp.c strncasecmp.c
66+ realloc.c rmdir.c strcasecmp.c strncasecmp.c hash.c
67 SRCS = $(LIBSRCS) \
68 addext.c argmatch.c backupfile.c \
69 basename.c dirname.c \
70@@ -78,12 +78,12 @@
71 maketime.$(OBJEXT) partime.$(OBJEXT) \
72 patch.$(OBJEXT) pch.$(OBJEXT) \
73 quote.$(OBJEXT) quotearg.$(OBJEXT) quotesys.$(OBJEXT) \
74- util.$(OBJEXT) version.$(OBJEXT) xmalloc.$(OBJEXT)
75+ util.$(OBJEXT) version.$(OBJEXT) xmalloc.$(OBJEXT) hash.$(OBJEXT)
76 HDRS = argmatch.h backupfile.h common.h dirname.h \
77 error.h getopt.h gettext.h \
78 inp.h maketime.h partime.h pch.h \
79 quote.h quotearg.h quotesys.h \
80- unlocked-io.h util.h version.h xalloc.h
81+ unlocked-io.h util.h version.h xalloc.h hash.h
82 MISC = AUTHORS COPYING ChangeLog INSTALL Makefile.in NEWS README \
83 aclocal.m4 \
84 config.hin configure configure.ac \
85--- patch-2.5.9.orig/aclocal.m4
86+++ patch-2.5.9/aclocal.m4
87@@ -1,3 +1,1058 @@
88+dnl aclocal.m4 generated automatically by aclocal 1.4-p6
89+
90+dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
91+dnl This file is free software; the Free Software Foundation
92+dnl gives unlimited permission to copy and/or distribute it,
93+dnl with or without modifications, as long as this notice is preserved.
94+
95+dnl This program is distributed in the hope that it will be useful,
96+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
97+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
98+dnl PARTICULAR PURPOSE.
99+
100+# lib-prefix.m4 serial 3 (gettext-0.13)
101+dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
102+dnl This file is free software, distributed under the terms of the GNU
103+dnl General Public License. As a special exception to the GNU General
104+dnl Public License, this file may be distributed as part of a program
105+dnl that contains a configuration script generated by Autoconf, under
106+dnl the same distribution terms as the rest of that program.
107+
108+dnl From Bruno Haible.
109+
110+dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
111+dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
112+dnl require excessive bracketing.
113+ifdef([AC_HELP_STRING],
114+[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
115+[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
116+
117+dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
118+dnl to access previously installed libraries. The basic assumption is that
119+dnl a user will want packages to use other packages he previously installed
120+dnl with the same --prefix option.
121+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
122+dnl libraries, but is otherwise very convenient.
123+AC_DEFUN([AC_LIB_PREFIX],
124+[
125+ AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
126+ AC_REQUIRE([AC_PROG_CC])
127+ AC_REQUIRE([AC_CANONICAL_HOST])
128+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
129+ dnl By default, look in $includedir and $libdir.
130+ use_additional=yes
131+ AC_LIB_WITH_FINAL_PREFIX([
132+ eval additional_includedir=\"$includedir\"
133+ eval additional_libdir=\"$libdir\"
134+ ])
135+ AC_LIB_ARG_WITH([lib-prefix],
136+[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
137+ --without-lib-prefix don't search for libraries in includedir and libdir],
138+[
139+ if test "X$withval" = "Xno"; then
140+ use_additional=no
141+ else
142+ if test "X$withval" = "X"; then
143+ AC_LIB_WITH_FINAL_PREFIX([
144+ eval additional_includedir=\"$includedir\"
145+ eval additional_libdir=\"$libdir\"
146+ ])
147+ else
148+ additional_includedir="$withval/include"
149+ additional_libdir="$withval/lib"
150+ fi
151+ fi
152+])
153+ if test $use_additional = yes; then
154+ dnl Potentially add $additional_includedir to $CPPFLAGS.
155+ dnl But don't add it
156+ dnl 1. if it's the standard /usr/include,
157+ dnl 2. if it's already present in $CPPFLAGS,
158+ dnl 3. if it's /usr/local/include and we are using GCC on Linux,
159+ dnl 4. if it doesn't exist as a directory.
160+ if test "X$additional_includedir" != "X/usr/include"; then
161+ haveit=
162+ for x in $CPPFLAGS; do
163+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
164+ if test "X$x" = "X-I$additional_includedir"; then
165+ haveit=yes
166+ break
167+ fi
168+ done
169+ if test -z "$haveit"; then
170+ if test "X$additional_includedir" = "X/usr/local/include"; then
171+ if test -n "$GCC"; then
172+ case $host_os in
173+ linux*) haveit=yes;;
174+ esac
175+ fi
176+ fi
177+ if test -z "$haveit"; then
178+ if test -d "$additional_includedir"; then
179+ dnl Really add $additional_includedir to $CPPFLAGS.
180+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
181+ fi
182+ fi
183+ fi
184+ fi
185+ dnl Potentially add $additional_libdir to $LDFLAGS.
186+ dnl But don't add it
187+ dnl 1. if it's the standard /usr/lib,
188+ dnl 2. if it's already present in $LDFLAGS,
189+ dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
190+ dnl 4. if it doesn't exist as a directory.
191+ if test "X$additional_libdir" != "X/usr/lib"; then
192+ haveit=
193+ for x in $LDFLAGS; do
194+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
195+ if test "X$x" = "X-L$additional_libdir"; then
196+ haveit=yes
197+ break
198+ fi
199+ done
200+ if test -z "$haveit"; then
201+ if test "X$additional_libdir" = "X/usr/local/lib"; then
202+ if test -n "$GCC"; then
203+ case $host_os in
204+ linux*) haveit=yes;;
205+ esac
206+ fi
207+ fi
208+ if test -z "$haveit"; then
209+ if test -d "$additional_libdir"; then
210+ dnl Really add $additional_libdir to $LDFLAGS.
211+ LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
212+ fi
213+ fi
214+ fi
215+ fi
216+ fi
217+])
218+
219+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
220+dnl acl_final_exec_prefix, containing the values to which $prefix and
221+dnl $exec_prefix will expand at the end of the configure script.
222+AC_DEFUN([AC_LIB_PREPARE_PREFIX],
223+[
224+ dnl Unfortunately, prefix and exec_prefix get only finally determined
225+ dnl at the end of configure.
226+ if test "X$prefix" = "XNONE"; then
227+ acl_final_prefix="$ac_default_prefix"
228+ else
229+ acl_final_prefix="$prefix"
230+ fi
231+ if test "X$exec_prefix" = "XNONE"; then
232+ acl_final_exec_prefix='${prefix}'
233+ else
234+ acl_final_exec_prefix="$exec_prefix"
235+ fi
236+ acl_save_prefix="$prefix"
237+ prefix="$acl_final_prefix"
238+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
239+ prefix="$acl_save_prefix"
240+])
241+
242+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
243+dnl variables prefix and exec_prefix bound to the values they will have
244+dnl at the end of the configure script.
245+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
246+[
247+ acl_save_prefix="$prefix"
248+ prefix="$acl_final_prefix"
249+ acl_save_exec_prefix="$exec_prefix"
250+ exec_prefix="$acl_final_exec_prefix"
251+ $1
252+ exec_prefix="$acl_save_exec_prefix"
253+ prefix="$acl_save_prefix"
254+])
255+
256+# lib-link.m4 serial 4 (gettext-0.12)
257+dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
258+dnl This file is free software, distributed under the terms of the GNU
259+dnl General Public License. As a special exception to the GNU General
260+dnl Public License, this file may be distributed as part of a program
261+dnl that contains a configuration script generated by Autoconf, under
262+dnl the same distribution terms as the rest of that program.
263+
264+dnl From Bruno Haible.
265+
266+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
267+dnl the libraries corresponding to explicit and implicit dependencies.
268+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
269+dnl augments the CPPFLAGS variable.
270+AC_DEFUN([AC_LIB_LINKFLAGS],
271+[
272+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
273+ AC_REQUIRE([AC_LIB_RPATH])
274+ define([Name],[translit([$1],[./-], [___])])
275+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
276+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
277+ AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
278+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
279+ ac_cv_lib[]Name[]_libs="$LIB[]NAME"
280+ ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
281+ ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
282+ ])
283+ LIB[]NAME="$ac_cv_lib[]Name[]_libs"
284+ LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
285+ INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
286+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
287+ AC_SUBST([LIB]NAME)
288+ AC_SUBST([LTLIB]NAME)
289+ dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
290+ dnl results of this search when this library appears as a dependency.
291+ HAVE_LIB[]NAME=yes
292+ undefine([Name])
293+ undefine([NAME])
294+])
295+
296+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
297+dnl searches for libname and the libraries corresponding to explicit and
298+dnl implicit dependencies, together with the specified include files and
299+dnl the ability to compile and link the specified testcode. If found, it
300+dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
301+dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
302+dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
303+dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
304+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
305+[
306+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
307+ AC_REQUIRE([AC_LIB_RPATH])
308+ define([Name],[translit([$1],[./-], [___])])
309+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
310+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
311+
312+ dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
313+ dnl accordingly.
314+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
315+
316+ dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
317+ dnl because if the user has installed lib[]Name and not disabled its use
318+ dnl via --without-lib[]Name-prefix, he wants to use it.
319+ ac_save_CPPFLAGS="$CPPFLAGS"
320+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
321+
322+ AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
323+ ac_save_LIBS="$LIBS"
324+ LIBS="$LIBS $LIB[]NAME"
325+ AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
326+ LIBS="$ac_save_LIBS"
327+ ])
328+ if test "$ac_cv_lib[]Name" = yes; then
329+ HAVE_LIB[]NAME=yes
330+ AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
331+ AC_MSG_CHECKING([how to link with lib[]$1])
332+ AC_MSG_RESULT([$LIB[]NAME])
333+ else
334+ HAVE_LIB[]NAME=no
335+ dnl If $LIB[]NAME didn't lead to a usable library, we don't need
336+ dnl $INC[]NAME either.
337+ CPPFLAGS="$ac_save_CPPFLAGS"
338+ LIB[]NAME=
339+ LTLIB[]NAME=
340+ fi
341+ AC_SUBST([HAVE_LIB]NAME)
342+ AC_SUBST([LIB]NAME)
343+ AC_SUBST([LTLIB]NAME)
344+ undefine([Name])
345+ undefine([NAME])
346+])
347+
348+dnl Determine the platform dependent parameters needed to use rpath:
349+dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
350+dnl hardcode_direct, hardcode_minus_L.
351+AC_DEFUN([AC_LIB_RPATH],
352+[
353+ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
354+ AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
355+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
356+ AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
357+ AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
358+ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
359+ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
360+ . ./conftest.sh
361+ rm -f ./conftest.sh
362+ acl_cv_rpath=done
363+ ])
364+ wl="$acl_cv_wl"
365+ libext="$acl_cv_libext"
366+ shlibext="$acl_cv_shlibext"
367+ hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
368+ hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
369+ hardcode_direct="$acl_cv_hardcode_direct"
370+ hardcode_minus_L="$acl_cv_hardcode_minus_L"
371+ dnl Determine whether the user wants rpath handling at all.
372+ AC_ARG_ENABLE(rpath,
373+ [ --disable-rpath do not hardcode runtime library paths],
374+ :, enable_rpath=yes)
375+])
376+
377+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
378+dnl the libraries corresponding to explicit and implicit dependencies.
379+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
380+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
381+[
382+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
383+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
384+ dnl By default, look in $includedir and $libdir.
385+ use_additional=yes
386+ AC_LIB_WITH_FINAL_PREFIX([
387+ eval additional_includedir=\"$includedir\"
388+ eval additional_libdir=\"$libdir\"
389+ ])
390+ AC_LIB_ARG_WITH([lib$1-prefix],
391+[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
392+ --without-lib$1-prefix don't search for lib$1 in includedir and libdir],
393+[
394+ if test "X$withval" = "Xno"; then
395+ use_additional=no
396+ else
397+ if test "X$withval" = "X"; then
398+ AC_LIB_WITH_FINAL_PREFIX([
399+ eval additional_includedir=\"$includedir\"
400+ eval additional_libdir=\"$libdir\"
401+ ])
402+ else
403+ additional_includedir="$withval/include"
404+ additional_libdir="$withval/lib"
405+ fi
406+ fi
407+])
408+ dnl Search the library and its dependencies in $additional_libdir and
409+ dnl $LDFLAGS. Using breadth-first-seach.
410+ LIB[]NAME=
411+ LTLIB[]NAME=
412+ INC[]NAME=
413+ rpathdirs=
414+ ltrpathdirs=
415+ names_already_handled=
416+ names_next_round='$1 $2'
417+ while test -n "$names_next_round"; do
418+ names_this_round="$names_next_round"
419+ names_next_round=
420+ for name in $names_this_round; do
421+ already_handled=
422+ for n in $names_already_handled; do
423+ if test "$n" = "$name"; then
424+ already_handled=yes
425+ break
426+ fi
427+ done
428+ if test -z "$already_handled"; then
429+ names_already_handled="$names_already_handled $name"
430+ dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
431+ dnl or AC_LIB_HAVE_LINKFLAGS call.
432+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
433+ eval value=\"\$HAVE_LIB$uppername\"
434+ if test -n "$value"; then
435+ if test "$value" = yes; then
436+ eval value=\"\$LIB$uppername\"
437+ test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
438+ eval value=\"\$LTLIB$uppername\"
439+ test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
440+ else
441+ dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
442+ dnl that this library doesn't exist. So just drop it.
443+ :
444+ fi
445+ else
446+ dnl Search the library lib$name in $additional_libdir and $LDFLAGS
447+ dnl and the already constructed $LIBNAME/$LTLIBNAME.
448+ found_dir=
449+ found_la=
450+ found_so=
451+ found_a=
452+ if test $use_additional = yes; then
453+ if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
454+ found_dir="$additional_libdir"
455+ found_so="$additional_libdir/lib$name.$shlibext"
456+ if test -f "$additional_libdir/lib$name.la"; then
457+ found_la="$additional_libdir/lib$name.la"
458+ fi
459+ else
460+ if test -f "$additional_libdir/lib$name.$libext"; then
461+ found_dir="$additional_libdir"
462+ found_a="$additional_libdir/lib$name.$libext"
463+ if test -f "$additional_libdir/lib$name.la"; then
464+ found_la="$additional_libdir/lib$name.la"
465+ fi
466+ fi
467+ fi
468+ fi
469+ if test "X$found_dir" = "X"; then
470+ for x in $LDFLAGS $LTLIB[]NAME; do
471+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
472+ case "$x" in
473+ -L*)
474+ dir=`echo "X$x" | sed -e 's/^X-L//'`
475+ if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
476+ found_dir="$dir"
477+ found_so="$dir/lib$name.$shlibext"
478+ if test -f "$dir/lib$name.la"; then
479+ found_la="$dir/lib$name.la"
480+ fi
481+ else
482+ if test -f "$dir/lib$name.$libext"; then
483+ found_dir="$dir"
484+ found_a="$dir/lib$name.$libext"
485+ if test -f "$dir/lib$name.la"; then
486+ found_la="$dir/lib$name.la"
487+ fi
488+ fi
489+ fi
490+ ;;
491+ esac
492+ if test "X$found_dir" != "X"; then
493+ break
494+ fi
495+ done
496+ fi
497+ if test "X$found_dir" != "X"; then
498+ dnl Found the library.
499+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
500+ if test "X$found_so" != "X"; then
501+ dnl Linking with a shared library. We attempt to hardcode its
502+ dnl directory into the executable's runpath, unless it's the
503+ dnl standard /usr/lib.
504+ if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
505+ dnl No hardcoding is needed.
506+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
507+ else
508+ dnl Use an explicit option to hardcode DIR into the resulting
509+ dnl binary.
510+ dnl Potentially add DIR to ltrpathdirs.
511+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
512+ haveit=
513+ for x in $ltrpathdirs; do
514+ if test "X$x" = "X$found_dir"; then
515+ haveit=yes
516+ break
517+ fi
518+ done
519+ if test -z "$haveit"; then
520+ ltrpathdirs="$ltrpathdirs $found_dir"
521+ fi
522+ dnl The hardcoding into $LIBNAME is system dependent.
523+ if test "$hardcode_direct" = yes; then
524+ dnl Using DIR/libNAME.so during linking hardcodes DIR into the
525+ dnl resulting binary.
526+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
527+ else
528+ if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
529+ dnl Use an explicit option to hardcode DIR into the resulting
530+ dnl binary.
531+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
532+ dnl Potentially add DIR to rpathdirs.
533+ dnl The rpathdirs will be appended to $LIBNAME at the end.
534+ haveit=
535+ for x in $rpathdirs; do
536+ if test "X$x" = "X$found_dir"; then
537+ haveit=yes
538+ break
539+ fi
540+ done
541+ if test -z "$haveit"; then
542+ rpathdirs="$rpathdirs $found_dir"
543+ fi
544+ else
545+ dnl Rely on "-L$found_dir".
546+ dnl But don't add it if it's already contained in the LDFLAGS
547+ dnl or the already constructed $LIBNAME
548+ haveit=
549+ for x in $LDFLAGS $LIB[]NAME; do
550+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
551+ if test "X$x" = "X-L$found_dir"; then
552+ haveit=yes
553+ break
554+ fi
555+ done
556+ if test -z "$haveit"; then
557+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
558+ fi
559+ if test "$hardcode_minus_L" != no; then
560+ dnl FIXME: Not sure whether we should use
561+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
562+ dnl here.
563+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
564+ else
565+ dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
566+ dnl here, because this doesn't fit in flags passed to the
567+ dnl compiler. So give up. No hardcoding. This affects only
568+ dnl very old systems.
569+ dnl FIXME: Not sure whether we should use
570+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
571+ dnl here.
572+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
573+ fi
574+ fi
575+ fi
576+ fi
577+ else
578+ if test "X$found_a" != "X"; then
579+ dnl Linking with a static library.
580+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
581+ else
582+ dnl We shouldn't come here, but anyway it's good to have a
583+ dnl fallback.
584+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
585+ fi
586+ fi
587+ dnl Assume the include files are nearby.
588+ additional_includedir=
589+ case "$found_dir" in
590+ */lib | */lib/)
591+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
592+ additional_includedir="$basedir/include"
593+ ;;
594+ esac
595+ if test "X$additional_includedir" != "X"; then
596+ dnl Potentially add $additional_includedir to $INCNAME.
597+ dnl But don't add it
598+ dnl 1. if it's the standard /usr/include,
599+ dnl 2. if it's /usr/local/include and we are using GCC on Linux,
600+ dnl 3. if it's already present in $CPPFLAGS or the already
601+ dnl constructed $INCNAME,
602+ dnl 4. if it doesn't exist as a directory.
603+ if test "X$additional_includedir" != "X/usr/include"; then
604+ haveit=
605+ if test "X$additional_includedir" = "X/usr/local/include"; then
606+ if test -n "$GCC"; then
607+ case $host_os in
608+ linux*) haveit=yes;;
609+ esac
610+ fi
611+ fi
612+ if test -z "$haveit"; then
613+ for x in $CPPFLAGS $INC[]NAME; do
614+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
615+ if test "X$x" = "X-I$additional_includedir"; then
616+ haveit=yes
617+ break
618+ fi
619+ done
620+ if test -z "$haveit"; then
621+ if test -d "$additional_includedir"; then
622+ dnl Really add $additional_includedir to $INCNAME.
623+ INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
624+ fi
625+ fi
626+ fi
627+ fi
628+ fi
629+ dnl Look for dependencies.
630+ if test -n "$found_la"; then
631+ dnl Read the .la file. It defines the variables
632+ dnl dlname, library_names, old_library, dependency_libs, current,
633+ dnl age, revision, installed, dlopen, dlpreopen, libdir.
634+ save_libdir="$libdir"
635+ case "$found_la" in
636+ */* | *\\*) . "$found_la" ;;
637+ *) . "./$found_la" ;;
638+ esac
639+ libdir="$save_libdir"
640+ dnl We use only dependency_libs.
641+ for dep in $dependency_libs; do
642+ case "$dep" in
643+ -L*)
644+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
645+ dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
646+ dnl But don't add it
647+ dnl 1. if it's the standard /usr/lib,
648+ dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
649+ dnl 3. if it's already present in $LDFLAGS or the already
650+ dnl constructed $LIBNAME,
651+ dnl 4. if it doesn't exist as a directory.
652+ if test "X$additional_libdir" != "X/usr/lib"; then
653+ haveit=
654+ if test "X$additional_libdir" = "X/usr/local/lib"; then
655+ if test -n "$GCC"; then
656+ case $host_os in
657+ linux*) haveit=yes;;
658+ esac
659+ fi
660+ fi
661+ if test -z "$haveit"; then
662+ haveit=
663+ for x in $LDFLAGS $LIB[]NAME; do
664+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
665+ if test "X$x" = "X-L$additional_libdir"; then
666+ haveit=yes
667+ break
668+ fi
669+ done
670+ if test -z "$haveit"; then
671+ if test -d "$additional_libdir"; then
672+ dnl Really add $additional_libdir to $LIBNAME.
673+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
674+ fi
675+ fi
676+ haveit=
677+ for x in $LDFLAGS $LTLIB[]NAME; do
678+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
679+ if test "X$x" = "X-L$additional_libdir"; then
680+ haveit=yes
681+ break
682+ fi
683+ done
684+ if test -z "$haveit"; then
685+ if test -d "$additional_libdir"; then
686+ dnl Really add $additional_libdir to $LTLIBNAME.
687+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
688+ fi
689+ fi
690+ fi
691+ fi
692+ ;;
693+ -R*)
694+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
695+ if test "$enable_rpath" != no; then
696+ dnl Potentially add DIR to rpathdirs.
697+ dnl The rpathdirs will be appended to $LIBNAME at the end.
698+ haveit=
699+ for x in $rpathdirs; do
700+ if test "X$x" = "X$dir"; then
701+ haveit=yes
702+ break
703+ fi
704+ done
705+ if test -z "$haveit"; then
706+ rpathdirs="$rpathdirs $dir"
707+ fi
708+ dnl Potentially add DIR to ltrpathdirs.
709+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
710+ haveit=
711+ for x in $ltrpathdirs; do
712+ if test "X$x" = "X$dir"; then
713+ haveit=yes
714+ break
715+ fi
716+ done
717+ if test -z "$haveit"; then
718+ ltrpathdirs="$ltrpathdirs $dir"
719+ fi
720+ fi
721+ ;;
722+ -l*)
723+ dnl Handle this in the next round.
724+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
725+ ;;
726+ *.la)
727+ dnl Handle this in the next round. Throw away the .la's
728+ dnl directory; it is already contained in a preceding -L
729+ dnl option.
730+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
731+ ;;
732+ *)
733+ dnl Most likely an immediate library name.
734+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
735+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
736+ ;;
737+ esac
738+ done
739+ fi
740+ else
741+ dnl Didn't find the library; assume it is in the system directories
742+ dnl known to the linker and runtime loader. (All the system
743+ dnl directories known to the linker should also be known to the
744+ dnl runtime loader, otherwise the system is severely misconfigured.)
745+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
746+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
747+ fi
748+ fi
749+ fi
750+ done
751+ done
752+ if test "X$rpathdirs" != "X"; then
753+ if test -n "$hardcode_libdir_separator"; then
754+ dnl Weird platform: only the last -rpath option counts, the user must
755+ dnl pass all path elements in one option. We can arrange that for a
756+ dnl single library, but not when more than one $LIBNAMEs are used.
757+ alldirs=
758+ for found_dir in $rpathdirs; do
759+ alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
760+ done
761+ dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
762+ acl_save_libdir="$libdir"
763+ libdir="$alldirs"
764+ eval flag=\"$hardcode_libdir_flag_spec\"
765+ libdir="$acl_save_libdir"
766+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
767+ else
768+ dnl The -rpath options are cumulative.
769+ for found_dir in $rpathdirs; do
770+ acl_save_libdir="$libdir"
771+ libdir="$found_dir"
772+ eval flag=\"$hardcode_libdir_flag_spec\"
773+ libdir="$acl_save_libdir"
774+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
775+ done
776+ fi
777+ fi
778+ if test "X$ltrpathdirs" != "X"; then
779+ dnl When using libtool, the option that works for both libraries and
780+ dnl executables is -R. The -R options are cumulative.
781+ for found_dir in $ltrpathdirs; do
782+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
783+ done
784+ fi
785+])
786+
787+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
788+dnl unless already present in VAR.
789+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
790+dnl contains two or three consecutive elements that belong together.
791+AC_DEFUN([AC_LIB_APPENDTOVAR],
792+[
793+ for element in [$2]; do
794+ haveit=
795+ for x in $[$1]; do
796+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
797+ if test "X$x" = "X$element"; then
798+ haveit=yes
799+ break
800+ fi
801+ done
802+ if test -z "$haveit"; then
803+ [$1]="${[$1]}${[$1]:+ }$element"
804+ fi
805+ done
806+])
807+
808+# lib-ld.m4 serial 3 (gettext-0.13)
809+dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
810+dnl This file is free software, distributed under the terms of the GNU
811+dnl General Public License. As a special exception to the GNU General
812+dnl Public License, this file may be distributed as part of a program
813+dnl that contains a configuration script generated by Autoconf, under
814+dnl the same distribution terms as the rest of that program.
815+
816+dnl Subroutines of libtool.m4,
817+dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
818+dnl with libtool.m4.
819+
820+dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
821+AC_DEFUN([AC_LIB_PROG_LD_GNU],
822+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
823+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
824+case `$LD -v 2>&1 </dev/null` in
825+*GNU* | *'with BFD'*)
826+ acl_cv_prog_gnu_ld=yes ;;
827+*)
828+ acl_cv_prog_gnu_ld=no ;;
829+esac])
830+with_gnu_ld=$acl_cv_prog_gnu_ld
831+])
832+
833+dnl From libtool-1.4. Sets the variable LD.
834+AC_DEFUN([AC_LIB_PROG_LD],
835+[AC_ARG_WITH(gnu-ld,
836+[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
837+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
838+AC_REQUIRE([AC_PROG_CC])dnl
839+AC_REQUIRE([AC_CANONICAL_HOST])dnl
840+# Prepare PATH_SEPARATOR.
841+# The user is always right.
842+if test "${PATH_SEPARATOR+set}" != set; then
843+ echo "#! /bin/sh" >conf$$.sh
844+ echo "exit 0" >>conf$$.sh
845+ chmod +x conf$$.sh
846+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
847+ PATH_SEPARATOR=';'
848+ else
849+ PATH_SEPARATOR=:
850+ fi
851+ rm -f conf$$.sh
852+fi
853+ac_prog=ld
854+if test "$GCC" = yes; then
855+ # Check if gcc -print-prog-name=ld gives a path.
856+ AC_MSG_CHECKING([for ld used by GCC])
857+ case $host in
858+ *-*-mingw*)
859+ # gcc leaves a trailing carriage return which upsets mingw
860+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
861+ *)
862+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
863+ esac
864+ case $ac_prog in
865+ # Accept absolute paths.
866+ [[\\/]* | [A-Za-z]:[\\/]*)]
867+ [re_direlt='/[^/][^/]*/\.\./']
868+ # Canonicalize the path of ld
869+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
870+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
871+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
872+ done
873+ test -z "$LD" && LD="$ac_prog"
874+ ;;
875+ "")
876+ # If it fails, then pretend we aren't using GCC.
877+ ac_prog=ld
878+ ;;
879+ *)
880+ # If it is relative, then search for the first ld in PATH.
881+ with_gnu_ld=unknown
882+ ;;
883+ esac
884+elif test "$with_gnu_ld" = yes; then
885+ AC_MSG_CHECKING([for GNU ld])
886+else
887+ AC_MSG_CHECKING([for non-GNU ld])
888+fi
889+AC_CACHE_VAL(acl_cv_path_LD,
890+[if test -z "$LD"; then
891+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
892+ for ac_dir in $PATH; do
893+ test -z "$ac_dir" && ac_dir=.
894+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
895+ acl_cv_path_LD="$ac_dir/$ac_prog"
896+ # Check to see if the program is GNU ld. I'd rather use --version,
897+ # but apparently some GNU ld's only accept -v.
898+ # Break only if it was the GNU/non-GNU ld that we prefer.
899+ case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
900+ *GNU* | *'with BFD'*)
901+ test "$with_gnu_ld" != no && break ;;
902+ *)
903+ test "$with_gnu_ld" != yes && break ;;
904+ esac
905+ fi
906+ done
907+ IFS="$ac_save_ifs"
908+else
909+ acl_cv_path_LD="$LD" # Let the user override the test with a path.
910+fi])
911+LD="$acl_cv_path_LD"
912+if test -n "$LD"; then
913+ AC_MSG_RESULT($LD)
914+else
915+ AC_MSG_RESULT(no)
916+fi
917+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
918+AC_LIB_PROG_LD_GNU
919+])
920+
921+# isc-posix.m4 serial 2 (gettext-0.11.2)
922+dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
923+dnl This file is free software, distributed under the terms of the GNU
924+dnl General Public License. As a special exception to the GNU General
925+dnl Public License, this file may be distributed as part of a program
926+dnl that contains a configuration script generated by Autoconf, under
927+dnl the same distribution terms as the rest of that program.
928+
929+# This file is not needed with autoconf-2.53 and newer. Remove it in 2005.
930+
931+# This test replaces the one in autoconf.
932+# Currently this macro should have the same name as the autoconf macro
933+# because gettext's gettext.m4 (distributed in the automake package)
934+# still uses it. Otherwise, the use in gettext.m4 makes autoheader
935+# give these diagnostics:
936+# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
937+# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
938+
939+undefine([AC_ISC_POSIX])
940+
941+AC_DEFUN([AC_ISC_POSIX],
942+ [
943+ dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
944+ AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
945+ ]
946+)
947+
948+# Check for stdbool.h that conforms to C99.
949+
950+# Copyright (C) 2002-2003 Free Software Foundation, Inc.
951+
952+# This program is free software; you can redistribute it and/or modify
953+# it under the terms of the GNU General Public License as published by
954+# the Free Software Foundation; either version 2, or (at your option)
955+# any later version.
956+
957+# This program is distributed in the hope that it will be useful,
958+# but WITHOUT ANY WARRANTY; without even the implied warranty of
959+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
960+# GNU General Public License for more details.
961+
962+# You should have received a copy of the GNU General Public License
963+# along with this program; if not, write to the Free Software
964+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
965+# 02111-1307, USA.
966+
967+# Prepare for substituting <stdbool.h> if it is not supported.
968+
969+AC_DEFUN([AM_STDBOOL_H],
970+[
971+ AC_REQUIRE([AC_HEADER_STDBOOL])
972+
973+ # Define two additional variables used in the Makefile substitution.
974+
975+ if test "$ac_cv_header_stdbool_h" = yes; then
976+ STDBOOL_H=''
977+ else
978+ STDBOOL_H='stdbool.h'
979+ fi
980+ AC_SUBST([STDBOOL_H])
981+
982+ if test "$ac_cv_type__Bool" = yes; then
983+ HAVE__BOOL=1
984+ else
985+ HAVE__BOOL=0
986+ fi
987+ AC_SUBST([HAVE__BOOL])
988+])
989+
990+# This macro is only needed in autoconf <= 2.54. Newer versions of autoconf
991+# have this macro built-in.
992+
993+AC_DEFUN([AC_HEADER_STDBOOL],
994+ [AC_CACHE_CHECK([for stdbool.h that conforms to C99],
995+ [ac_cv_header_stdbool_h],
996+ [AC_TRY_COMPILE(
997+ [
998+ #include <stdbool.h>
999+ #ifndef bool
1000+ "error: bool is not defined"
1001+ #endif
1002+ #ifndef false
1003+ "error: false is not defined"
1004+ #endif
1005+ #if false
1006+ "error: false is not 0"
1007+ #endif
1008+ #ifndef true
1009+ "error: false is not defined"
1010+ #endif
1011+ #if true != 1
1012+ "error: true is not 1"
1013+ #endif
1014+ #ifndef __bool_true_false_are_defined
1015+ "error: __bool_true_false_are_defined is not defined"
1016+ #endif
1017+
1018+ struct s { _Bool s: 1; _Bool t; } s;
1019+
1020+ char a[true == 1 ? 1 : -1];
1021+ char b[false == 0 ? 1 : -1];
1022+ char c[__bool_true_false_are_defined == 1 ? 1 : -1];
1023+ char d[(bool) -0.5 == true ? 1 : -1];
1024+ bool e = &s;
1025+ char f[(_Bool) -0.0 == false ? 1 : -1];
1026+ char g[true];
1027+ char h[sizeof (_Bool)];
1028+ char i[sizeof s.t];
1029+ ],
1030+ [ return !a + !b + !c + !d + !e + !f + !g + !h + !i; ],
1031+ [ac_cv_header_stdbool_h=yes],
1032+ [ac_cv_header_stdbool_h=no])])
1033+ AC_CHECK_TYPES([_Bool])
1034+ if test $ac_cv_header_stdbool_h = yes; then
1035+ AC_DEFINE(HAVE_STDBOOL_H, 1, [Define to 1 if stdbool.h conforms to C99.])
1036+ fi])
1037+
1038+#serial 5
1039+
1040+dnl From Jim Meyering
1041+
1042+dnl Define HAVE_STRUCT_UTIMBUF if `struct utimbuf' is declared --
1043+dnl usually in <utime.h>.
1044+dnl Some systems have utime.h but don't declare the struct anywhere.
1045+
1046+AC_DEFUN([jm_CHECK_TYPE_STRUCT_UTIMBUF],
1047+[
1048+ AC_CHECK_HEADERS_ONCE(sys/time.h utime.h)
1049+ AC_REQUIRE([AC_HEADER_TIME])
1050+ AC_CACHE_CHECK([for struct utimbuf], fu_cv_sys_struct_utimbuf,
1051+ [AC_TRY_COMPILE(
1052+ [
1053+#ifdef TIME_WITH_SYS_TIME
1054+# include <sys/time.h>
1055+# include <time.h>
1056+#else
1057+# ifdef HAVE_SYS_TIME_H
1058+# include <sys/time.h>
1059+# else
1060+# include <time.h>
1061+# endif
1062+#endif
1063+#ifdef HAVE_UTIME_H
1064+# include <utime.h>
1065+#endif
1066+ ],
1067+ [static struct utimbuf x; x.actime = x.modtime;],
1068+ fu_cv_sys_struct_utimbuf=yes,
1069+ fu_cv_sys_struct_utimbuf=no)
1070+ ])
1071+
1072+ if test $fu_cv_sys_struct_utimbuf = yes; then
1073+ AC_DEFINE(HAVE_STRUCT_UTIMBUF, 1,
1074+ [Define if struct utimbuf is declared -- usually in <utime.h>.
1075+ Some systems have utime.h but don't declare the struct anywhere. ])
1076+ fi
1077+])
1078+
1079+# onceonly.m4 serial 3
1080+dnl Copyright (C) 2002, 2003 Free Software Foundation, Inc.
1081+dnl This file is free software, distributed under the terms of the GNU
1082+dnl General Public License. As a special exception to the GNU General
1083+dnl Public License, this file may be distributed as part of a program
1084+dnl that contains a configuration script generated by Autoconf, under
1085+dnl the same distribution terms as the rest of that program.
1086+
1087+dnl This file defines some "once only" variants of standard autoconf macros.
1088+dnl AC_CHECK_HEADERS_ONCE like AC_CHECK_HEADERS
1089+dnl AC_CHECK_FUNCS_ONCE like AC_CHECK_FUNCS
1090+dnl AC_CHECK_DECLS_ONCE like AC_CHECK_DECLS
1091+dnl AC_REQUIRE([AC_HEADER_STDC]) like AC_HEADER_STDC
1092+dnl The advantage is that the check for each of the headers/functions/decls
1093+dnl will be put only once into the 'configure' file. It keeps the size of
1094+dnl the 'configure' file down, and avoids redundant output when 'configure'
1095+dnl is run.
1096+dnl The drawback is that the checks cannot be conditionalized. If you write
1097+dnl if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi
1098+dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to
1099+dnl empty, and the check will be inserted before the body of the AC_DEFUNed
1100+dnl function.
1101+
1102+dnl Autoconf version 2.57 or newer is recommended.
1103+AC_PREREQ(2.54)
1104+
1105+# AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of
1106+# AC_CHECK_HEADERS(HEADER1 HEADER2 ...).
1107+AC_DEFUN([AC_CHECK_HEADERS_ONCE], [
1108+ :
1109+ AC_FOREACH([gl_HEADER_NAME], [$1], [
1110+ AC_DEFUN([gl_CHECK_HEADER_]m4_quote(translit(m4_defn([gl_HEADER_NAME]),
1111+ [-./], [___])), [
1112+ AC_CHECK_HEADERS(gl_HEADER_NAME)
1113+ ])
1114+ AC_REQUIRE([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME,
1115+ [-./], [___])))
1116+ ])
1117+])
1118+
1119+# AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of
1120+# AC_CHECK_FUNCS(FUNC1 FUNC2 ...).
1121+AC_DEFUN([AC_CHECK_FUNCS_ONCE], [
1122+ :
1123+ AC_FOREACH([gl_FUNC_NAME], [$1], [
1124+ AC_DEFUN([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]), [
1125+ AC_CHECK_FUNCS(m4_defn([gl_FUNC_NAME]))
1126+ ])
1127+ AC_REQUIRE([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]))
1128+ ])
1129+])
1130+
1131+# AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of
1132+# AC_CHECK_DECLS(DECL1, DECL2, ...).
1133+AC_DEFUN([AC_CHECK_DECLS_ONCE], [
1134+ :
1135+ AC_FOREACH([gl_DECL_NAME], [$1], [
1136+ AC_DEFUN([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]), [
1137+ AC_CHECK_DECLS(m4_defn([gl_DECL_NAME]))
1138+ ])
1139+ AC_REQUIRE([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]))
1140+ ])
1141+])
1142+
1143 # backupfile.m4 serial 1
1144 dnl Copyright (C) 2002 Free Software Foundation, Inc.
1145 dnl This file is free software, distributed under the terms of the GNU
1146@@ -21,6 +1076,7 @@
1147 AC_CHECK_HEADERS_ONCE(limits.h string.h unistd.h)
1148 AC_CHECK_FUNCS(pathconf)
1149 ])
1150+
1151 #serial 5
1152
1153 dnl From Jim Meyering.
1154@@ -63,31 +1119,7 @@
1155 fi
1156 ]
1157 )
1158-# dirname.m4 serial 1
1159-dnl Copyright (C) 2002 Free Software Foundation, Inc.
1160-dnl This file is free software, distributed under the terms of the GNU
1161-dnl General Public License. As a special exception to the GNU General
1162-dnl Public License, this file may be distributed as part of a program
1163-dnl that contains a configuration script generated by Autoconf, under
1164-dnl the same distribution terms as the rest of that program.
1165
1166-AC_DEFUN([gl_DIRNAME],
1167-[
1168- dnl Prerequisites of lib/dirname.h.
1169- AC_REQUIRE([jm_AC_DOS])
1170-
1171- dnl Prerequisites of lib/dirname.c.
1172- AC_REQUIRE([AC_HEADER_STDC])
1173- AC_CHECK_HEADERS_ONCE(string.h)
1174-
1175- dnl Prerequisites of lib/basename.c.
1176- AC_REQUIRE([AC_HEADER_STDC])
1177- AC_CHECK_HEADERS_ONCE(string.h)
1178-
1179- dnl Prerequisites of lib/stripslash.c.
1180- AC_REQUIRE([AC_HEADER_STDC])
1181- AC_CHECK_HEADERS_ONCE(string.h)
1182-])
1183 #serial 5
1184
1185 # Define some macros required for proper operation of code in lib/*.c
1186@@ -141,6 +1173,33 @@
1187 [Define if the backslash character may also serve as a file name
1188 component separator.])
1189 ])
1190+
1191+# dirname.m4 serial 1
1192+dnl Copyright (C) 2002 Free Software Foundation, Inc.
1193+dnl This file is free software, distributed under the terms of the GNU
1194+dnl General Public License. As a special exception to the GNU General
1195+dnl Public License, this file may be distributed as part of a program
1196+dnl that contains a configuration script generated by Autoconf, under
1197+dnl the same distribution terms as the rest of that program.
1198+
1199+AC_DEFUN([gl_DIRNAME],
1200+[
1201+ dnl Prerequisites of lib/dirname.h.
1202+ AC_REQUIRE([jm_AC_DOS])
1203+
1204+ dnl Prerequisites of lib/dirname.c.
1205+ AC_REQUIRE([AC_HEADER_STDC])
1206+ AC_CHECK_HEADERS_ONCE(string.h)
1207+
1208+ dnl Prerequisites of lib/basename.c.
1209+ AC_REQUIRE([AC_HEADER_STDC])
1210+ AC_CHECK_HEADERS_ONCE(string.h)
1211+
1212+ dnl Prerequisites of lib/stripslash.c.
1213+ AC_REQUIRE([AC_HEADER_STDC])
1214+ AC_CHECK_HEADERS_ONCE(string.h)
1215+])
1216+
1217 #serial 7
1218
1219 AC_DEFUN([gl_ERROR],
1220@@ -159,7 +1218,67 @@
1221 AC_CHECK_DECLS([strerror])
1222 AC_FUNC_STRERROR_R
1223 ])
1224-# getopt.m4 serial 1
1225+
1226+# memchr.m4 serial 1
1227+dnl Copyright (C) 2002 Free Software Foundation, Inc.
1228+dnl This file is free software, distributed under the terms of the GNU
1229+dnl General Public License. As a special exception to the GNU General
1230+dnl Public License, this file may be distributed as part of a program
1231+dnl that contains a configuration script generated by Autoconf, under
1232+dnl the same distribution terms as the rest of that program.
1233+
1234+AC_DEFUN([gl_FUNC_MEMCHR],
1235+[
1236+ AC_REPLACE_FUNCS(memchr)
1237+ if test $ac_cv_func_memchr = no; then
1238+ jm_PREREQ_MEMCHR
1239+ fi
1240+])
1241+
1242+# Prerequisites of lib/memchr.c.
1243+AC_DEFUN([jm_PREREQ_MEMCHR], [
1244+ AC_CHECK_HEADERS_ONCE(limits.h stdlib.h)
1245+ AC_CHECK_HEADERS(bp-sym.h)
1246+])
1247+
1248+# rmdir.m4 serial 1
1249+dnl Copyright (C) 2002 Free Software Foundation, Inc.
1250+dnl This file is free software, distributed under the terms of the GNU
1251+dnl General Public License. As a special exception to the GNU General
1252+dnl Public License, this file may be distributed as part of a program
1253+dnl that contains a configuration script generated by Autoconf, under
1254+dnl the same distribution terms as the rest of that program.
1255+
1256+AC_DEFUN([gl_FUNC_RMDIR],
1257+[
1258+ AC_REPLACE_FUNCS(rmdir)
1259+ if test $ac_cv_func_rmdir = no; then
1260+ gl_PREREQ_RMDIR
1261+ fi
1262+])
1263+
1264+# Prerequisites of lib/rmdir.c.
1265+AC_DEFUN([gl_PREREQ_RMDIR], [
1266+ AC_REQUIRE([AC_HEADER_STAT])
1267+ :
1268+])
1269+
1270+
1271+# getopt.m4 serial 1
1272+dnl Copyright (C) 2002 Free Software Foundation, Inc.
1273+dnl This file is free software, distributed under the terms of the GNU
1274+dnl General Public License. As a special exception to the GNU General
1275+dnl Public License, this file may be distributed as part of a program
1276+dnl that contains a configuration script generated by Autoconf, under
1277+dnl the same distribution terms as the rest of that program.
1278+
1279+AC_DEFUN([gl_GETOPT],
1280+[
1281+ dnl Prerequisites of lib/getopt.c.
1282+ AC_CHECK_HEADERS_ONCE(string.h)
1283+])
1284+
1285+# xalloc.m4 serial 1
1286 dnl Copyright (C) 2002 Free Software Foundation, Inc.
1287 dnl This file is free software, distributed under the terms of the GNU
1288 dnl General Public License. As a special exception to the GNU General
1289@@ -167,11 +1286,25 @@
1290 dnl that contains a configuration script generated by Autoconf, under
1291 dnl the same distribution terms as the rest of that program.
1292
1293-AC_DEFUN([gl_GETOPT],
1294+AC_DEFUN([gl_XALLOC],
1295 [
1296- dnl Prerequisites of lib/getopt.c.
1297+ gl_PREREQ_XMALLOC
1298+ gl_PREREQ_XSTRDUP
1299+])
1300+
1301+# Prerequisites of lib/xmalloc.c.
1302+AC_DEFUN([gl_PREREQ_XMALLOC], [
1303+ AC_REQUIRE([AC_HEADER_STDC])
1304+ AC_REQUIRE([jm_FUNC_MALLOC])
1305+ AC_REQUIRE([jm_FUNC_REALLOC])
1306+])
1307+
1308+# Prerequisites of lib/xstrdup.c.
1309+AC_DEFUN([gl_PREREQ_XSTRDUP], [
1310+ AC_REQUIRE([AC_HEADER_STDC])
1311 AC_CHECK_HEADERS_ONCE(string.h)
1312 ])
1313+
1314 # malloc.m4 serial 7
1315 dnl Copyright (C) 2002 Free Software Foundation, Inc.
1316 dnl This file is free software, distributed under the terms of the GNU
1317@@ -197,66 +1330,8 @@
1318 AC_DEFUN([gl_PREREQ_MALLOC], [
1319 :
1320 ])
1321-# mbrtowc.m4 serial 5
1322-dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
1323-dnl This file is free software, distributed under the terms of the GNU
1324-dnl General Public License. As a special exception to the GNU General
1325-dnl Public License, this file may be distributed as part of a program
1326-dnl that contains a configuration script generated by Autoconf, under
1327-dnl the same distribution terms as the rest of that program.
1328-
1329-dnl From Paul Eggert
1330-
1331-dnl This file can be removed, and jm_FUNC_MBRTOWC replaced with
1332-dnl AC_FUNC_MBRTOWC, when autoconf 2.57 can be assumed everywhere.
1333-
1334-AC_DEFUN([jm_FUNC_MBRTOWC],
1335-[
1336- AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared],
1337- jm_cv_func_mbrtowc,
1338- [AC_TRY_LINK(
1339- [#include <wchar.h>],
1340- [mbstate_t state; return ! (sizeof state && mbrtowc);],
1341- jm_cv_func_mbrtowc=yes,
1342- jm_cv_func_mbrtowc=no)])
1343- if test $jm_cv_func_mbrtowc = yes; then
1344- AC_DEFINE(HAVE_MBRTOWC, 1,
1345- [Define to 1 if mbrtowc and mbstate_t are properly declared.])
1346- fi
1347-])
1348-# mbstate_t.m4 serial 9
1349-dnl Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
1350-dnl This file is free software, distributed under the terms of the GNU
1351-dnl General Public License. As a special exception to the GNU General
1352-dnl Public License, this file may be distributed as part of a program
1353-dnl that contains a configuration script generated by Autoconf, under
1354-dnl the same distribution terms as the rest of that program.
1355-
1356-# From Paul Eggert.
1357-
1358-# BeOS 5 has <wchar.h> but does not define mbstate_t,
1359-# so you can't declare an object of that type.
1360-# Check for this incompatibility with Standard C.
1361
1362-# AC_TYPE_MBSTATE_T
1363-# -----------------
1364-AC_DEFUN([AC_TYPE_MBSTATE_T],
1365- [AC_CACHE_CHECK([for mbstate_t], ac_cv_type_mbstate_t,
1366- [AC_COMPILE_IFELSE(
1367- [AC_LANG_PROGRAM(
1368- [AC_INCLUDES_DEFAULT
1369-# include <wchar.h>],
1370- [mbstate_t x; return sizeof x;])],
1371- [ac_cv_type_mbstate_t=yes],
1372- [ac_cv_type_mbstate_t=no])])
1373- if test $ac_cv_type_mbstate_t = yes; then
1374- AC_DEFINE([HAVE_MBSTATE_T], 1,
1375- [Define to 1 if <wchar.h> declares mbstate_t.])
1376- else
1377- AC_DEFINE([mbstate_t], int,
1378- [Define to a type if <wchar.h> does not define.])
1379- fi])
1380-# memchr.m4 serial 1
1381+# realloc.m4 serial 7
1382 dnl Copyright (C) 2002 Free Software Foundation, Inc.
1383 dnl This file is free software, distributed under the terms of the GNU
1384 dnl General Public License. As a special exception to the GNU General
1385@@ -264,116 +1339,24 @@
1386 dnl that contains a configuration script generated by Autoconf, under
1387 dnl the same distribution terms as the rest of that program.
1388
1389-AC_DEFUN([gl_FUNC_MEMCHR],
1390+dnl From Jim Meyering.
1391+dnl Determine whether realloc works when both arguments are 0.
1392+dnl If it doesn't, arrange to use the replacement function.
1393+
1394+AC_DEFUN([jm_FUNC_REALLOC],
1395 [
1396- AC_REPLACE_FUNCS(memchr)
1397- if test $ac_cv_func_memchr = no; then
1398- jm_PREREQ_MEMCHR
1399+ AC_REQUIRE([AC_FUNC_REALLOC])
1400+ dnl autoconf < 2.57 used the symbol ac_cv_func_realloc_works.
1401+ if test X"$ac_cv_func_realloc_0_nonnull" = Xno || test X"$ac_cv_func_realloc_works" = Xno; then
1402+ gl_PREREQ_REALLOC
1403 fi
1404 ])
1405
1406-# Prerequisites of lib/memchr.c.
1407-AC_DEFUN([jm_PREREQ_MEMCHR], [
1408- AC_CHECK_HEADERS_ONCE(limits.h stdlib.h)
1409- AC_CHECK_HEADERS(bp-sym.h)
1410-])
1411-#serial 1
1412-
1413-dnl From Mumit Khan and Paul Eggert
1414-dnl Determine whether mkdir accepts only one argument instead of the usual two.
1415-
1416-AC_DEFUN([PATCH_FUNC_MKDIR_TAKES_ONE_ARG],
1417- [AC_CHECK_FUNCS(mkdir)
1418- AC_CACHE_CHECK([whether mkdir takes only one argument],
1419- patch_cv_mkdir_takes_one_arg,
1420- [patch_cv_mkdir_takes_one_arg=no
1421- if test $ac_cv_func_mkdir = yes; then
1422- AC_TRY_COMPILE([
1423-#include <sys/types.h>
1424-#include <sys/stat.h>
1425- ],
1426- [mkdir (".", 0);],
1427- ,
1428- [AC_TRY_COMPILE([
1429-#include <sys/types.h>
1430-#include <sys/stat.h>
1431- ],
1432- [mkdir (".");],
1433- patch_cv_mkdir_takes_one_arg=yes
1434- )]
1435- )
1436- fi
1437- ]
1438- )
1439- if test $patch_cv_mkdir_takes_one_arg = yes; then
1440- AC_DEFINE([MKDIR_TAKES_ONE_ARG], 1,
1441- [Define if mkdir takes only one argument.])
1442- fi
1443- ]
1444-)
1445-# onceonly.m4 serial 3
1446-dnl Copyright (C) 2002, 2003 Free Software Foundation, Inc.
1447-dnl This file is free software, distributed under the terms of the GNU
1448-dnl General Public License. As a special exception to the GNU General
1449-dnl Public License, this file may be distributed as part of a program
1450-dnl that contains a configuration script generated by Autoconf, under
1451-dnl the same distribution terms as the rest of that program.
1452-
1453-dnl This file defines some "once only" variants of standard autoconf macros.
1454-dnl AC_CHECK_HEADERS_ONCE like AC_CHECK_HEADERS
1455-dnl AC_CHECK_FUNCS_ONCE like AC_CHECK_FUNCS
1456-dnl AC_CHECK_DECLS_ONCE like AC_CHECK_DECLS
1457-dnl AC_REQUIRE([AC_HEADER_STDC]) like AC_HEADER_STDC
1458-dnl The advantage is that the check for each of the headers/functions/decls
1459-dnl will be put only once into the 'configure' file. It keeps the size of
1460-dnl the 'configure' file down, and avoids redundant output when 'configure'
1461-dnl is run.
1462-dnl The drawback is that the checks cannot be conditionalized. If you write
1463-dnl if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi
1464-dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to
1465-dnl empty, and the check will be inserted before the body of the AC_DEFUNed
1466-dnl function.
1467-
1468-dnl Autoconf version 2.57 or newer is recommended.
1469-AC_PREREQ(2.54)
1470-
1471-# AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of
1472-# AC_CHECK_HEADERS(HEADER1 HEADER2 ...).
1473-AC_DEFUN([AC_CHECK_HEADERS_ONCE], [
1474- :
1475- AC_FOREACH([gl_HEADER_NAME], [$1], [
1476- AC_DEFUN([gl_CHECK_HEADER_]m4_quote(translit(m4_defn([gl_HEADER_NAME]),
1477- [-./], [___])), [
1478- AC_CHECK_HEADERS(gl_HEADER_NAME)
1479- ])
1480- AC_REQUIRE([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME,
1481- [-./], [___])))
1482- ])
1483-])
1484-
1485-# AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of
1486-# AC_CHECK_FUNCS(FUNC1 FUNC2 ...).
1487-AC_DEFUN([AC_CHECK_FUNCS_ONCE], [
1488+# Prerequisites of lib/realloc.c.
1489+AC_DEFUN([gl_PREREQ_REALLOC], [
1490 :
1491- AC_FOREACH([gl_FUNC_NAME], [$1], [
1492- AC_DEFUN([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]), [
1493- AC_CHECK_FUNCS(m4_defn([gl_FUNC_NAME]))
1494- ])
1495- AC_REQUIRE([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]))
1496- ])
1497 ])
1498
1499-# AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of
1500-# AC_CHECK_DECLS(DECL1, DECL2, ...).
1501-AC_DEFUN([AC_CHECK_DECLS_ONCE], [
1502- :
1503- AC_FOREACH([gl_DECL_NAME], [$1], [
1504- AC_DEFUN([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]), [
1505- AC_CHECK_DECLS(m4_defn([gl_DECL_NAME]))
1506- ])
1507- AC_REQUIRE([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]))
1508- ])
1509-])
1510 # quote.m4 serial 1
1511 dnl Copyright (C) 2002 Free Software Foundation, Inc.
1512 dnl This file is free software, distributed under the terms of the GNU
1513@@ -387,6 +1370,7 @@
1514 dnl Prerequisites of lib/quote.c.
1515 AC_CHECK_HEADERS_ONCE(stddef.h)
1516 ])
1517+
1518 # quotearg.m4 serial 1
1519 dnl Copyright (C) 2002 Free Software Foundation, Inc.
1520 dnl This file is free software, distributed under the terms of the GNU
1521@@ -403,32 +1387,69 @@
1522 AC_TYPE_MBSTATE_T
1523 jm_FUNC_MBRTOWC
1524 ])
1525-# realloc.m4 serial 7
1526-dnl Copyright (C) 2002 Free Software Foundation, Inc.
1527+
1528+# mbstate_t.m4 serial 9
1529+dnl Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
1530 dnl This file is free software, distributed under the terms of the GNU
1531 dnl General Public License. As a special exception to the GNU General
1532 dnl Public License, this file may be distributed as part of a program
1533 dnl that contains a configuration script generated by Autoconf, under
1534 dnl the same distribution terms as the rest of that program.
1535
1536-dnl From Jim Meyering.
1537-dnl Determine whether realloc works when both arguments are 0.
1538-dnl If it doesn't, arrange to use the replacement function.
1539+# From Paul Eggert.
1540
1541-AC_DEFUN([jm_FUNC_REALLOC],
1542+# BeOS 5 has <wchar.h> but does not define mbstate_t,
1543+# so you can't declare an object of that type.
1544+# Check for this incompatibility with Standard C.
1545+
1546+# AC_TYPE_MBSTATE_T
1547+# -----------------
1548+AC_DEFUN([AC_TYPE_MBSTATE_T],
1549+ [AC_CACHE_CHECK([for mbstate_t], ac_cv_type_mbstate_t,
1550+ [AC_COMPILE_IFELSE(
1551+ [AC_LANG_PROGRAM(
1552+ [AC_INCLUDES_DEFAULT
1553+# include <wchar.h>],
1554+ [mbstate_t x; return sizeof x;])],
1555+ [ac_cv_type_mbstate_t=yes],
1556+ [ac_cv_type_mbstate_t=no])])
1557+ if test $ac_cv_type_mbstate_t = yes; then
1558+ AC_DEFINE([HAVE_MBSTATE_T], 1,
1559+ [Define to 1 if <wchar.h> declares mbstate_t.])
1560+ else
1561+ AC_DEFINE([mbstate_t], int,
1562+ [Define to a type if <wchar.h> does not define.])
1563+ fi])
1564+
1565+# mbrtowc.m4 serial 5
1566+dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
1567+dnl This file is free software, distributed under the terms of the GNU
1568+dnl General Public License. As a special exception to the GNU General
1569+dnl Public License, this file may be distributed as part of a program
1570+dnl that contains a configuration script generated by Autoconf, under
1571+dnl the same distribution terms as the rest of that program.
1572+
1573+dnl From Paul Eggert
1574+
1575+dnl This file can be removed, and jm_FUNC_MBRTOWC replaced with
1576+dnl AC_FUNC_MBRTOWC, when autoconf 2.57 can be assumed everywhere.
1577+
1578+AC_DEFUN([jm_FUNC_MBRTOWC],
1579 [
1580- AC_REQUIRE([AC_FUNC_REALLOC])
1581- dnl autoconf < 2.57 used the symbol ac_cv_func_realloc_works.
1582- if test X"$ac_cv_func_realloc_0_nonnull" = Xno || test X"$ac_cv_func_realloc_works" = Xno; then
1583- gl_PREREQ_REALLOC
1584+ AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared],
1585+ jm_cv_func_mbrtowc,
1586+ [AC_TRY_LINK(
1587+ [#include <wchar.h>],
1588+ [mbstate_t state; return ! (sizeof state && mbrtowc);],
1589+ jm_cv_func_mbrtowc=yes,
1590+ jm_cv_func_mbrtowc=no)])
1591+ if test $jm_cv_func_mbrtowc = yes; then
1592+ AC_DEFINE(HAVE_MBRTOWC, 1,
1593+ [Define to 1 if mbrtowc and mbstate_t are properly declared.])
1594 fi
1595 ])
1596
1597-# Prerequisites of lib/realloc.c.
1598-AC_DEFUN([gl_PREREQ_REALLOC], [
1599- :
1600-])
1601-# rmdir.m4 serial 1
1602+# hash.m4 serial 1
1603 dnl Copyright (C) 2002 Free Software Foundation, Inc.
1604 dnl This file is free software, distributed under the terms of the GNU
1605 dnl General Public License. As a special exception to the GNU General
1606@@ -436,18 +1457,71 @@
1607 dnl that contains a configuration script generated by Autoconf, under
1608 dnl the same distribution terms as the rest of that program.
1609
1610-AC_DEFUN([gl_FUNC_RMDIR],
1611+AC_DEFUN([gl_HASH],
1612 [
1613- AC_REPLACE_FUNCS(rmdir)
1614- if test $ac_cv_func_rmdir = no; then
1615- gl_PREREQ_RMDIR
1616- fi
1617+ dnl Prerequisites of lib/hash.c.
1618+ AC_CHECK_HEADERS_ONCE(stdlib.h)
1619+ AC_HEADER_STDBOOL
1620+ AC_CHECK_DECLS_ONCE(free malloc)
1621 ])
1622
1623-# Prerequisites of lib/rmdir.c.
1624-AC_DEFUN([gl_PREREQ_RMDIR], [
1625- AC_REQUIRE([AC_HEADER_STAT])
1626- :
1627+AC_DEFUN([ag_CHECK_NANOSECOND_STAT],
1628+ [AC_CACHE_CHECK([for nanosecond timestamps in struct stat],
1629+ [ac_cv_stat_nsec],
1630+ [AC_TRY_COMPILE(
1631+ [
1632+ #include <sys/types.h>
1633+ #include <sys/stat.h>
1634+ #include <unistd.h>
1635+ struct stat st;
1636+ ],
1637+ [ return st.st_atimensec + st.st_mtimensec + st.st_ctimensec; ],
1638+ [ac_cv_stat_nsec=yes],
1639+ [ac_cv_stat_nsec=no])
1640+ ])
1641+ if test $ac_cv_stat_nsec = yes; then
1642+ AC_DEFINE(HAVE_STAT_NSEC, 1, [Define to 1 if struct stat has nanosecond timestamps.])
1643+ fi
1644+
1645+ AC_CACHE_CHECK([for nanosecond timestamps in struct stat],
1646+ [ac_cv_stat_timeval],
1647+ [AC_TRY_COMPILE(
1648+ [
1649+ #include <time.h>
1650+ #include <sys/types.h>
1651+ #include <sys/stat.h>
1652+ #include <unistd.h>
1653+ struct stat st;
1654+ ],
1655+ [ return st.st_atim.tv_nsec + st.st_mtim.tv_nsec + st.st_ctim.tv_nsec; ],
1656+ [ac_cv_stat_timeval=yes],
1657+ [ac_cv_stat_timeval=no])
1658+ ])
1659+ if test $ac_cv_stat_timeval = yes; then
1660+ AC_DEFINE(HAVE_STAT_TIMEVAL, 1, [Define to 1 if struct stat comtains struct timeval's.])
1661+ fi])
1662+
1663+#serial 7 -*- autoconf -*-
1664+
1665+dnl From Jim Meyering.
1666+dnl
1667+dnl See if the glibc *_unlocked I/O macros or functions are available.
1668+dnl Use only those *_unlocked macros or functions that are declared
1669+dnl (because some of them were declared in Solaris 2.5.1 but were removed
1670+dnl in Solaris 2.6, whereas we want binaries built on Solaris 2.5.1 to run
1671+dnl on Solaris 2.6).
1672+
1673+AC_DEFUN([jm_FUNC_GLIBC_UNLOCKED_IO],
1674+[
1675+ dnl Persuade glibc <stdio.h> to declare fgets_unlocked(), fputs_unlocked()
1676+ dnl etc.
1677+ AC_REQUIRE([AC_GNU_SOURCE])
1678+
1679+ AC_CHECK_DECLS_ONCE(
1680+ [clearerr_unlocked feof_unlocked ferror_unlocked
1681+ fflush_unlocked fgets_unlocked fputc_unlocked fputs_unlocked
1682+ fread_unlocked fwrite_unlocked getc_unlocked
1683+ getchar_unlocked putc_unlocked putchar_unlocked])
1684 ])
1685
1686 # Check for setmode, DOS style.
1687@@ -488,180 +1562,39 @@
1688 AC_DEFINE(HAVE_SETMODE_DOS, 1,
1689 [Define to 1 if you have the DOS-style `setmode' function.])
1690 fi])
1691-# Check for stdbool.h that conforms to C99.
1692-
1693-# Copyright (C) 2002-2003 Free Software Foundation, Inc.
1694-
1695-# This program is free software; you can redistribute it and/or modify
1696-# it under the terms of the GNU General Public License as published by
1697-# the Free Software Foundation; either version 2, or (at your option)
1698-# any later version.
1699-
1700-# This program is distributed in the hope that it will be useful,
1701-# but WITHOUT ANY WARRANTY; without even the implied warranty of
1702-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1703-# GNU General Public License for more details.
1704-
1705-# You should have received a copy of the GNU General Public License
1706-# along with this program; if not, write to the Free Software
1707-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1708-# 02111-1307, USA.
1709-
1710-# Prepare for substituting <stdbool.h> if it is not supported.
1711-
1712-AC_DEFUN([AM_STDBOOL_H],
1713-[
1714- AC_REQUIRE([AC_HEADER_STDBOOL])
1715-
1716- # Define two additional variables used in the Makefile substitution.
1717-
1718- if test "$ac_cv_header_stdbool_h" = yes; then
1719- STDBOOL_H=''
1720- else
1721- STDBOOL_H='stdbool.h'
1722- fi
1723- AC_SUBST([STDBOOL_H])
1724-
1725- if test "$ac_cv_type__Bool" = yes; then
1726- HAVE__BOOL=1
1727- else
1728- HAVE__BOOL=0
1729- fi
1730- AC_SUBST([HAVE__BOOL])
1731-])
1732-
1733-# This macro is only needed in autoconf <= 2.54. Newer versions of autoconf
1734-# have this macro built-in.
1735-
1736-AC_DEFUN([AC_HEADER_STDBOOL],
1737- [AC_CACHE_CHECK([for stdbool.h that conforms to C99],
1738- [ac_cv_header_stdbool_h],
1739- [AC_TRY_COMPILE(
1740- [
1741- #include <stdbool.h>
1742- #ifndef bool
1743- "error: bool is not defined"
1744- #endif
1745- #ifndef false
1746- "error: false is not defined"
1747- #endif
1748- #if false
1749- "error: false is not 0"
1750- #endif
1751- #ifndef true
1752- "error: false is not defined"
1753- #endif
1754- #if true != 1
1755- "error: true is not 1"
1756- #endif
1757- #ifndef __bool_true_false_are_defined
1758- "error: __bool_true_false_are_defined is not defined"
1759- #endif
1760-
1761- struct s { _Bool s: 1; _Bool t; } s;
1762-
1763- char a[true == 1 ? 1 : -1];
1764- char b[false == 0 ? 1 : -1];
1765- char c[__bool_true_false_are_defined == 1 ? 1 : -1];
1766- char d[(bool) -0.5 == true ? 1 : -1];
1767- bool e = &s;
1768- char f[(_Bool) -0.0 == false ? 1 : -1];
1769- char g[true];
1770- char h[sizeof (_Bool)];
1771- char i[sizeof s.t];
1772- ],
1773- [ return !a + !b + !c + !d + !e + !f + !g + !h + !i; ],
1774- [ac_cv_header_stdbool_h=yes],
1775- [ac_cv_header_stdbool_h=no])])
1776- AC_CHECK_TYPES([_Bool])
1777- if test $ac_cv_header_stdbool_h = yes; then
1778- AC_DEFINE(HAVE_STDBOOL_H, 1, [Define to 1 if stdbool.h conforms to C99.])
1779- fi])
1780-#serial 7 -*- autoconf -*-
1781-
1782-dnl From Jim Meyering.
1783-dnl
1784-dnl See if the glibc *_unlocked I/O macros or functions are available.
1785-dnl Use only those *_unlocked macros or functions that are declared
1786-dnl (because some of them were declared in Solaris 2.5.1 but were removed
1787-dnl in Solaris 2.6, whereas we want binaries built on Solaris 2.5.1 to run
1788-dnl on Solaris 2.6).
1789-
1790-AC_DEFUN([jm_FUNC_GLIBC_UNLOCKED_IO],
1791-[
1792- dnl Persuade glibc <stdio.h> to declare fgets_unlocked(), fputs_unlocked()
1793- dnl etc.
1794- AC_REQUIRE([AC_GNU_SOURCE])
1795-
1796- AC_CHECK_DECLS_ONCE(
1797- [clearerr_unlocked feof_unlocked ferror_unlocked
1798- fflush_unlocked fgets_unlocked fputc_unlocked fputs_unlocked
1799- fread_unlocked fwrite_unlocked getc_unlocked
1800- getchar_unlocked putc_unlocked putchar_unlocked])
1801-])
1802-#serial 5
1803-
1804-dnl From Jim Meyering
1805-
1806-dnl Define HAVE_STRUCT_UTIMBUF if `struct utimbuf' is declared --
1807-dnl usually in <utime.h>.
1808-dnl Some systems have utime.h but don't declare the struct anywhere.
1809-
1810-AC_DEFUN([jm_CHECK_TYPE_STRUCT_UTIMBUF],
1811-[
1812- AC_CHECK_HEADERS_ONCE(sys/time.h utime.h)
1813- AC_REQUIRE([AC_HEADER_TIME])
1814- AC_CACHE_CHECK([for struct utimbuf], fu_cv_sys_struct_utimbuf,
1815- [AC_TRY_COMPILE(
1816- [
1817-#ifdef TIME_WITH_SYS_TIME
1818-# include <sys/time.h>
1819-# include <time.h>
1820-#else
1821-# ifdef HAVE_SYS_TIME_H
1822-# include <sys/time.h>
1823-# else
1824-# include <time.h>
1825-# endif
1826-#endif
1827-#ifdef HAVE_UTIME_H
1828-# include <utime.h>
1829-#endif
1830- ],
1831- [static struct utimbuf x; x.actime = x.modtime;],
1832- fu_cv_sys_struct_utimbuf=yes,
1833- fu_cv_sys_struct_utimbuf=no)
1834- ])
1835
1836- if test $fu_cv_sys_struct_utimbuf = yes; then
1837- AC_DEFINE(HAVE_STRUCT_UTIMBUF, 1,
1838- [Define if struct utimbuf is declared -- usually in <utime.h>.
1839- Some systems have utime.h but don't declare the struct anywhere. ])
1840- fi
1841-])
1842-# xalloc.m4 serial 1
1843-dnl Copyright (C) 2002 Free Software Foundation, Inc.
1844-dnl This file is free software, distributed under the terms of the GNU
1845-dnl General Public License. As a special exception to the GNU General
1846-dnl Public License, this file may be distributed as part of a program
1847-dnl that contains a configuration script generated by Autoconf, under
1848-dnl the same distribution terms as the rest of that program.
1849+#serial 1
1850
1851-AC_DEFUN([gl_XALLOC],
1852-[
1853- gl_PREREQ_XMALLOC
1854- gl_PREREQ_XSTRDUP
1855-])
1856+dnl From Mumit Khan and Paul Eggert
1857+dnl Determine whether mkdir accepts only one argument instead of the usual two.
1858
1859-# Prerequisites of lib/xmalloc.c.
1860-AC_DEFUN([gl_PREREQ_XMALLOC], [
1861- AC_REQUIRE([AC_HEADER_STDC])
1862- AC_REQUIRE([jm_FUNC_MALLOC])
1863- AC_REQUIRE([jm_FUNC_REALLOC])
1864-])
1865+AC_DEFUN([PATCH_FUNC_MKDIR_TAKES_ONE_ARG],
1866+ [AC_CHECK_FUNCS(mkdir)
1867+ AC_CACHE_CHECK([whether mkdir takes only one argument],
1868+ patch_cv_mkdir_takes_one_arg,
1869+ [patch_cv_mkdir_takes_one_arg=no
1870+ if test $ac_cv_func_mkdir = yes; then
1871+ AC_TRY_COMPILE([
1872+#include <sys/types.h>
1873+#include <sys/stat.h>
1874+ ],
1875+ [mkdir (".", 0);],
1876+ ,
1877+ [AC_TRY_COMPILE([
1878+#include <sys/types.h>
1879+#include <sys/stat.h>
1880+ ],
1881+ [mkdir (".");],
1882+ patch_cv_mkdir_takes_one_arg=yes
1883+ )]
1884+ )
1885+ fi
1886+ ]
1887+ )
1888+ if test $patch_cv_mkdir_takes_one_arg = yes; then
1889+ AC_DEFINE([MKDIR_TAKES_ONE_ARG], 1,
1890+ [Define if mkdir takes only one argument.])
1891+ fi
1892+ ]
1893+)
1894
1895-# Prerequisites of lib/xstrdup.c.
1896-AC_DEFUN([gl_PREREQ_XSTRDUP], [
1897- AC_REQUIRE([AC_HEADER_STDC])
1898- AC_CHECK_HEADERS_ONCE(string.h)
1899-])
1900--- patch-2.5.9.orig/configure
1901+++ patch-2.5.9/configure
1902@@ -1,11 +1,10 @@
1903 #! /bin/sh
1904 # Guess values for system-dependent variables and create Makefiles.
1905-# Generated by GNU Autoconf 2.57 for patch 2.5.9.
1906+# Generated by GNU Autoconf 2.59 for patch 2.5.9.
1907 #
1908 # Report bugs to <bug-patch@gnu.org>.
1909 #
1910-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
1911-# Free Software Foundation, Inc.
1912+# Copyright (C) 2003 Free Software Foundation, Inc.
1913 # This configure script is free software; the Free Software Foundation
1914 # gives unlimited permission to copy, distribute and modify it.
1915 ## --------------------- ##
1916@@ -22,9 +21,10 @@
1917 elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
1918 set -o posix
1919 fi
1920+DUALCASE=1; export DUALCASE # for MKS sh
1921
1922 # Support unset when possible.
1923-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
1924+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
1925 as_unset=unset
1926 else
1927 as_unset=false
1928@@ -43,7 +43,7 @@
1929 LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
1930 LC_TELEPHONE LC_TIME
1931 do
1932- if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
1933+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
1934 eval $as_var=C; export $as_var
1935 else
1936 $as_unset $as_var
1937@@ -220,16 +220,17 @@
1938 if mkdir -p . 2>/dev/null; then
1939 as_mkdir_p=:
1940 else
1941+ test -d ./-p && rmdir ./-p
1942 as_mkdir_p=false
1943 fi
1944
1945 as_executable_p="test -f"
1946
1947 # Sed expression to map a string onto a valid CPP name.
1948-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
1949+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
1950
1951 # Sed expression to map a string onto a valid variable name.
1952-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
1953+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
1954
1955
1956 # IFS
1957@@ -669,7 +670,7 @@
1958
1959 # Be sure to have absolute paths.
1960 for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
1961- localstatedir libdir includedir oldincludedir infodir mandir
1962+ localstatedir libdir includedir oldincludedir infodir mandir
1963 do
1964 eval ac_val=$`echo $ac_var`
1965 case $ac_val in
1966@@ -709,10 +710,10 @@
1967 # Try the directory containing this script, then its parent.
1968 ac_confdir=`(dirname "$0") 2>/dev/null ||
1969 $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
1970- X"$0" : 'X\(//\)[^/]' \| \
1971- X"$0" : 'X\(//\)$' \| \
1972- X"$0" : 'X\(/\)' \| \
1973- . : '\(.\)' 2>/dev/null ||
1974+ X"$0" : 'X\(//\)[^/]' \| \
1975+ X"$0" : 'X\(//\)$' \| \
1976+ X"$0" : 'X\(/\)' \| \
1977+ . : '\(.\)' 2>/dev/null ||
1978 echo X"$0" |
1979 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
1980 /^X\(\/\/\)[^/].*/{ s//\1/; q; }
1981@@ -804,9 +805,9 @@
1982 cat <<_ACEOF
1983 Installation directories:
1984 --prefix=PREFIX install architecture-independent files in PREFIX
1985- [$ac_default_prefix]
1986+ [$ac_default_prefix]
1987 --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
1988- [PREFIX]
1989+ [PREFIX]
1990
1991 By default, \`make install' will install all the files in
1992 \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
1993@@ -896,12 +897,45 @@
1994 ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
1995 ac_top_srcdir=$ac_top_builddir$srcdir ;;
1996 esac
1997-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
1998-# absolute.
1999-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
2000-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
2001-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
2002-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
2003+
2004+# Do not use `cd foo && pwd` to compute absolute paths, because
2005+# the directories may not exist.
2006+case `pwd` in
2007+.) ac_abs_builddir="$ac_dir";;
2008+*)
2009+ case "$ac_dir" in
2010+ .) ac_abs_builddir=`pwd`;;
2011+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
2012+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
2013+ esac;;
2014+esac
2015+case $ac_abs_builddir in
2016+.) ac_abs_top_builddir=${ac_top_builddir}.;;
2017+*)
2018+ case ${ac_top_builddir}. in
2019+ .) ac_abs_top_builddir=$ac_abs_builddir;;
2020+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
2021+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
2022+ esac;;
2023+esac
2024+case $ac_abs_builddir in
2025+.) ac_abs_srcdir=$ac_srcdir;;
2026+*)
2027+ case $ac_srcdir in
2028+ .) ac_abs_srcdir=$ac_abs_builddir;;
2029+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
2030+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
2031+ esac;;
2032+esac
2033+case $ac_abs_builddir in
2034+.) ac_abs_top_srcdir=$ac_top_srcdir;;
2035+*)
2036+ case $ac_top_srcdir in
2037+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
2038+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
2039+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
2040+ esac;;
2041+esac
2042
2043 cd $ac_dir
2044 # Check for guested configure; otherwise get Cygnus style configure.
2045@@ -912,13 +946,13 @@
2046 echo
2047 $SHELL $ac_srcdir/configure --help=recursive
2048 elif test -f $ac_srcdir/configure.ac ||
2049- test -f $ac_srcdir/configure.in; then
2050+ test -f $ac_srcdir/configure.in; then
2051 echo
2052 $ac_configure --help
2053 else
2054 echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
2055 fi
2056- cd $ac_popdir
2057+ cd "$ac_popdir"
2058 done
2059 fi
2060
2061@@ -926,10 +960,9 @@
2062 if $ac_init_version; then
2063 cat <<\_ACEOF
2064 patch configure 2.5.9
2065-generated by GNU Autoconf 2.57
2066+generated by GNU Autoconf 2.59
2067
2068-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
2069-Free Software Foundation, Inc.
2070+Copyright (C) 2003 Free Software Foundation, Inc.
2071 This configure script is free software; the Free Software Foundation
2072 gives unlimited permission to copy, distribute and modify it.
2073 _ACEOF
2074@@ -941,7 +974,7 @@
2075 running configure, to aid debugging if configure makes a mistake.
2076
2077 It was created by patch $as_me 2.5.9, which was
2078-generated by GNU Autoconf 2.57. Invocation command line was
2079+generated by GNU Autoconf 2.59. Invocation command line was
2080
2081 $ $0 $@
2082
2083@@ -1018,19 +1051,19 @@
2084 2)
2085 ac_configure_args1="$ac_configure_args1 '$ac_arg'"
2086 if test $ac_must_keep_next = true; then
2087- ac_must_keep_next=false # Got value, back to normal.
2088+ ac_must_keep_next=false # Got value, back to normal.
2089 else
2090- case $ac_arg in
2091- *=* | --config-cache | -C | -disable-* | --disable-* \
2092- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
2093- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
2094- | -with-* | --with-* | -without-* | --without-* | --x)
2095- case "$ac_configure_args0 " in
2096- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
2097- esac
2098- ;;
2099- -* ) ac_must_keep_next=true ;;
2100- esac
2101+ case $ac_arg in
2102+ *=* | --config-cache | -C | -disable-* | --disable-* \
2103+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
2104+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
2105+ | -with-* | --with-* | -without-* | --without-* | --x)
2106+ case "$ac_configure_args0 " in
2107+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
2108+ esac
2109+ ;;
2110+ -* ) ac_must_keep_next=true ;;
2111+ esac
2112 fi
2113 ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
2114 # Get rid of the leading space.
2115@@ -1064,12 +1097,12 @@
2116 case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
2117 *ac_space=\ *)
2118 sed -n \
2119- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
2120- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
2121+ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
2122+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
2123 ;;
2124 *)
2125 sed -n \
2126- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
2127+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
2128 ;;
2129 esac;
2130 }
2131@@ -1098,7 +1131,7 @@
2132 for ac_var in $ac_subst_files
2133 do
2134 eval ac_val=$`echo $ac_var`
2135- echo "$ac_var='"'"'$ac_val'"'"'"
2136+ echo "$ac_var='"'"'$ac_val'"'"'"
2137 done | sort
2138 echo
2139 fi
2140@@ -1117,7 +1150,7 @@
2141 echo "$as_me: caught signal $ac_signal"
2142 echo "$as_me: exit $exit_status"
2143 } >&5
2144- rm -f core core.* *.core &&
2145+ rm -f core *.core &&
2146 rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
2147 exit $exit_status
2148 ' 0
2149@@ -1197,7 +1230,7 @@
2150 # value.
2151 ac_cache_corrupted=false
2152 for ac_var in `(set) 2>&1 |
2153- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
2154+ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
2155 eval ac_old_set=\$ac_cv_env_${ac_var}_set
2156 eval ac_new_set=\$ac_env_${ac_var}_set
2157 eval ac_old_val="\$ac_cv_env_${ac_var}_value"
2158@@ -1214,13 +1247,13 @@
2159 ,);;
2160 *)
2161 if test "x$ac_old_val" != "x$ac_new_val"; then
2162- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
2163+ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
2164 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
2165- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
2166+ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
2167 echo "$as_me: former value: $ac_old_val" >&2;}
2168- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
2169+ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
2170 echo "$as_me: current value: $ac_new_val" >&2;}
2171- ac_cache_corrupted=:
2172+ ac_cache_corrupted=:
2173 fi;;
2174 esac
2175 # Pass precious variables to config.status.
2176@@ -1629,7 +1662,6 @@
2177 (exit $ac_status); }
2178
2179 cat >conftest.$ac_ext <<_ACEOF
2180-#line $LINENO "configure"
2181 /* confdefs.h. */
2182 _ACEOF
2183 cat confdefs.h >>conftest.$ac_ext
2184@@ -1649,8 +1681,8 @@
2185 # Try to create an executable without -o first, disregard a.out.
2186 # It will help us diagnose broken compilers, and finding out an intuition
2187 # of exeext.
2188-echo "$as_me:$LINENO: checking for C compiler default output" >&5
2189-echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
2190+echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
2191+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
2192 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
2193 if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
2194 (eval $ac_link_default) 2>&5
2195@@ -1670,23 +1702,23 @@
2196 test -f "$ac_file" || continue
2197 case $ac_file in
2198 *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
2199- ;;
2200+ ;;
2201 conftest.$ac_ext )
2202- # This is the source file.
2203- ;;
2204+ # This is the source file.
2205+ ;;
2206 [ab].out )
2207- # We found the default executable, but exeext='' is most
2208- # certainly right.
2209- break;;
2210+ # We found the default executable, but exeext='' is most
2211+ # certainly right.
2212+ break;;
2213 *.* )
2214- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
2215- # FIXME: I believe we export ac_cv_exeext for Libtool,
2216- # but it would be cool to find out if it's true. Does anybody
2217- # maintain Libtool? --akim.
2218- export ac_cv_exeext
2219- break;;
2220+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
2221+ # FIXME: I believe we export ac_cv_exeext for Libtool,
2222+ # but it would be cool to find out if it's true. Does anybody
2223+ # maintain Libtool? --akim.
2224+ export ac_cv_exeext
2225+ break;;
2226 * )
2227- break;;
2228+ break;;
2229 esac
2230 done
2231 else
2232@@ -1760,8 +1792,8 @@
2233 case $ac_file in
2234 *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
2235 *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
2236- export ac_cv_exeext
2237- break;;
2238+ export ac_cv_exeext
2239+ break;;
2240 * ) break;;
2241 esac
2242 done
2243@@ -1786,7 +1818,6 @@
2244 echo $ECHO_N "(cached) $ECHO_C" >&6
2245 else
2246 cat >conftest.$ac_ext <<_ACEOF
2247-#line $LINENO "configure"
2248 /* confdefs.h. */
2249 _ACEOF
2250 cat confdefs.h >>conftest.$ac_ext
2251@@ -1837,7 +1868,6 @@
2252 echo $ECHO_N "(cached) $ECHO_C" >&6
2253 else
2254 cat >conftest.$ac_ext <<_ACEOF
2255-#line $LINENO "configure"
2256 /* confdefs.h. */
2257 _ACEOF
2258 cat confdefs.h >>conftest.$ac_ext
2259@@ -1857,11 +1887,20 @@
2260 _ACEOF
2261 rm -f conftest.$ac_objext
2262 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2263- (eval $ac_compile) 2>&5
2264+ (eval $ac_compile) 2>conftest.er1
2265 ac_status=$?
2266+ grep -v '^ *+' conftest.er1 >conftest.err
2267+ rm -f conftest.er1
2268+ cat conftest.err >&5
2269 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2270 (exit $ac_status); } &&
2271- { ac_try='test -s conftest.$ac_objext'
2272+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
2273+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2274+ (eval $ac_try) 2>&5
2275+ ac_status=$?
2276+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
2277+ (exit $ac_status); }; } &&
2278+ { ac_try='test -s conftest.$ac_objext'
2279 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2280 (eval $ac_try) 2>&5
2281 ac_status=$?
2282@@ -1874,7 +1913,7 @@
2283
2284 ac_compiler_gnu=no
2285 fi
2286-rm -f conftest.$ac_objext conftest.$ac_ext
2287+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
2288 ac_cv_c_compiler_gnu=$ac_compiler_gnu
2289
2290 fi
2291@@ -1890,7 +1929,6 @@
2292 echo $ECHO_N "(cached) $ECHO_C" >&6
2293 else
2294 cat >conftest.$ac_ext <<_ACEOF
2295-#line $LINENO "configure"
2296 /* confdefs.h. */
2297 _ACEOF
2298 cat confdefs.h >>conftest.$ac_ext
2299@@ -1907,11 +1945,20 @@
2300 _ACEOF
2301 rm -f conftest.$ac_objext
2302 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2303- (eval $ac_compile) 2>&5
2304+ (eval $ac_compile) 2>conftest.er1
2305 ac_status=$?
2306+ grep -v '^ *+' conftest.er1 >conftest.err
2307+ rm -f conftest.er1
2308+ cat conftest.err >&5
2309 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2310 (exit $ac_status); } &&
2311- { ac_try='test -s conftest.$ac_objext'
2312+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
2313+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2314+ (eval $ac_try) 2>&5
2315+ ac_status=$?
2316+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
2317+ (exit $ac_status); }; } &&
2318+ { ac_try='test -s conftest.$ac_objext'
2319 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2320 (eval $ac_try) 2>&5
2321 ac_status=$?
2322@@ -1924,7 +1971,7 @@
2323
2324 ac_cv_prog_cc_g=no
2325 fi
2326-rm -f conftest.$ac_objext conftest.$ac_ext
2327+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
2328 fi
2329 echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
2330 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
2331@@ -1951,7 +1998,6 @@
2332 ac_cv_prog_cc_stdc=no
2333 ac_save_CC=$CC
2334 cat >conftest.$ac_ext <<_ACEOF
2335-#line $LINENO "configure"
2336 /* confdefs.h. */
2337 _ACEOF
2338 cat confdefs.h >>conftest.$ac_ext
2339@@ -1979,6 +2025,16 @@
2340 va_end (v);
2341 return s;
2342 }
2343+
2344+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
2345+ function prototypes and stuff, but not '\xHH' hex character constants.
2346+ These don't provoke an error unfortunately, instead are silently treated
2347+ as 'x'. The following induces an error, until -std1 is added to get
2348+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
2349+ array size at least. It's necessary to write '\x00'==0 to get something
2350+ that's true only with -std1. */
2351+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
2352+
2353 int test (int i, double x);
2354 struct s1 {int (*f) (int a);};
2355 struct s2 {int (*f) (double a);};
2356@@ -2005,11 +2061,20 @@
2357 CC="$ac_save_CC $ac_arg"
2358 rm -f conftest.$ac_objext
2359 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2360- (eval $ac_compile) 2>&5
2361+ (eval $ac_compile) 2>conftest.er1
2362 ac_status=$?
2363+ grep -v '^ *+' conftest.er1 >conftest.err
2364+ rm -f conftest.er1
2365+ cat conftest.err >&5
2366 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2367 (exit $ac_status); } &&
2368- { ac_try='test -s conftest.$ac_objext'
2369+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
2370+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2371+ (eval $ac_try) 2>&5
2372+ ac_status=$?
2373+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
2374+ (exit $ac_status); }; } &&
2375+ { ac_try='test -s conftest.$ac_objext'
2376 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2377 (eval $ac_try) 2>&5
2378 ac_status=$?
2379@@ -2022,7 +2087,7 @@
2380 sed 's/^/| /' conftest.$ac_ext >&5
2381
2382 fi
2383-rm -f conftest.$ac_objext
2384+rm -f conftest.err conftest.$ac_objext
2385 done
2386 rm -f conftest.$ac_ext conftest.$ac_objext
2387 CC=$ac_save_CC
2388@@ -2050,19 +2115,27 @@
2389 _ACEOF
2390 rm -f conftest.$ac_objext
2391 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2392- (eval $ac_compile) 2>&5
2393+ (eval $ac_compile) 2>conftest.er1
2394 ac_status=$?
2395+ grep -v '^ *+' conftest.er1 >conftest.err
2396+ rm -f conftest.er1
2397+ cat conftest.err >&5
2398 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2399 (exit $ac_status); } &&
2400- { ac_try='test -s conftest.$ac_objext'
2401+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
2402+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2403+ (eval $ac_try) 2>&5
2404+ ac_status=$?
2405+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
2406+ (exit $ac_status); }; } &&
2407+ { ac_try='test -s conftest.$ac_objext'
2408 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2409 (eval $ac_try) 2>&5
2410 ac_status=$?
2411 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2412 (exit $ac_status); }; }; then
2413 for ac_declaration in \
2414- ''\
2415- '#include <stdlib.h>' \
2416+ '' \
2417 'extern "C" void std::exit (int) throw (); using std::exit;' \
2418 'extern "C" void std::exit (int); using std::exit;' \
2419 'extern "C" void exit (int) throw ();' \
2420@@ -2070,14 +2143,13 @@
2421 'void exit (int);'
2422 do
2423 cat >conftest.$ac_ext <<_ACEOF
2424-#line $LINENO "configure"
2425 /* confdefs.h. */
2426 _ACEOF
2427 cat confdefs.h >>conftest.$ac_ext
2428 cat >>conftest.$ac_ext <<_ACEOF
2429 /* end confdefs.h. */
2430-#include <stdlib.h>
2431 $ac_declaration
2432+#include <stdlib.h>
2433 int
2434 main ()
2435 {
2436@@ -2088,11 +2160,20 @@
2437 _ACEOF
2438 rm -f conftest.$ac_objext
2439 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2440- (eval $ac_compile) 2>&5
2441+ (eval $ac_compile) 2>conftest.er1
2442 ac_status=$?
2443+ grep -v '^ *+' conftest.er1 >conftest.err
2444+ rm -f conftest.er1
2445+ cat conftest.err >&5
2446 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2447 (exit $ac_status); } &&
2448- { ac_try='test -s conftest.$ac_objext'
2449+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
2450+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2451+ (eval $ac_try) 2>&5
2452+ ac_status=$?
2453+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
2454+ (exit $ac_status); }; } &&
2455+ { ac_try='test -s conftest.$ac_objext'
2456 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2457 (eval $ac_try) 2>&5
2458 ac_status=$?
2459@@ -2105,9 +2186,8 @@
2460
2461 continue
2462 fi
2463-rm -f conftest.$ac_objext conftest.$ac_ext
2464+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
2465 cat >conftest.$ac_ext <<_ACEOF
2466-#line $LINENO "configure"
2467 /* confdefs.h. */
2468 _ACEOF
2469 cat confdefs.h >>conftest.$ac_ext
2470@@ -2124,11 +2204,20 @@
2471 _ACEOF
2472 rm -f conftest.$ac_objext
2473 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2474- (eval $ac_compile) 2>&5
2475+ (eval $ac_compile) 2>conftest.er1
2476 ac_status=$?
2477+ grep -v '^ *+' conftest.er1 >conftest.err
2478+ rm -f conftest.er1
2479+ cat conftest.err >&5
2480 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2481 (exit $ac_status); } &&
2482- { ac_try='test -s conftest.$ac_objext'
2483+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
2484+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2485+ (eval $ac_try) 2>&5
2486+ ac_status=$?
2487+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
2488+ (exit $ac_status); }; } &&
2489+ { ac_try='test -s conftest.$ac_objext'
2490 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2491 (eval $ac_try) 2>&5
2492 ac_status=$?
2493@@ -2140,7 +2229,7 @@
2494 sed 's/^/| /' conftest.$ac_ext >&5
2495
2496 fi
2497-rm -f conftest.$ac_objext conftest.$ac_ext
2498+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
2499 done
2500 rm -f conftest*
2501 if test -n "$ac_declaration"; then
2502@@ -2154,7 +2243,7 @@
2503 sed 's/^/| /' conftest.$ac_ext >&5
2504
2505 fi
2506-rm -f conftest.$ac_objext conftest.$ac_ext
2507+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
2508 ac_ext=c
2509 ac_cpp='$CPP $CPPFLAGS'
2510 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
2511@@ -2189,7 +2278,6 @@
2512 # On the NeXT, cc -E runs the code through the compiler's parser,
2513 # not just through cpp. "Syntax error" is here to catch this case.
2514 cat >conftest.$ac_ext <<_ACEOF
2515-#line $LINENO "configure"
2516 /* confdefs.h. */
2517 _ACEOF
2518 cat confdefs.h >>conftest.$ac_ext
2519@@ -2200,7 +2288,7 @@
2520 #else
2521 # include <assert.h>
2522 #endif
2523- Syntax error
2524+ Syntax error
2525 _ACEOF
2526 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
2527 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
2528@@ -2212,6 +2300,7 @@
2529 (exit $ac_status); } >/dev/null; then
2530 if test -s conftest.err; then
2531 ac_cpp_err=$ac_c_preproc_warn_flag
2532+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
2533 else
2534 ac_cpp_err=
2535 fi
2536@@ -2232,7 +2321,6 @@
2537 # OK, works on sane cases. Now check whether non-existent headers
2538 # can be detected and how.
2539 cat >conftest.$ac_ext <<_ACEOF
2540-#line $LINENO "configure"
2541 /* confdefs.h. */
2542 _ACEOF
2543 cat confdefs.h >>conftest.$ac_ext
2544@@ -2250,6 +2338,7 @@
2545 (exit $ac_status); } >/dev/null; then
2546 if test -s conftest.err; then
2547 ac_cpp_err=$ac_c_preproc_warn_flag
2548+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
2549 else
2550 ac_cpp_err=
2551 fi
2552@@ -2296,7 +2385,6 @@
2553 # On the NeXT, cc -E runs the code through the compiler's parser,
2554 # not just through cpp. "Syntax error" is here to catch this case.
2555 cat >conftest.$ac_ext <<_ACEOF
2556-#line $LINENO "configure"
2557 /* confdefs.h. */
2558 _ACEOF
2559 cat confdefs.h >>conftest.$ac_ext
2560@@ -2307,7 +2395,7 @@
2561 #else
2562 # include <assert.h>
2563 #endif
2564- Syntax error
2565+ Syntax error
2566 _ACEOF
2567 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
2568 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
2569@@ -2319,6 +2407,7 @@
2570 (exit $ac_status); } >/dev/null; then
2571 if test -s conftest.err; then
2572 ac_cpp_err=$ac_c_preproc_warn_flag
2573+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
2574 else
2575 ac_cpp_err=
2576 fi
2577@@ -2339,7 +2428,6 @@
2578 # OK, works on sane cases. Now check whether non-existent headers
2579 # can be detected and how.
2580 cat >conftest.$ac_ext <<_ACEOF
2581-#line $LINENO "configure"
2582 /* confdefs.h. */
2583 _ACEOF
2584 cat confdefs.h >>conftest.$ac_ext
2585@@ -2357,6 +2445,7 @@
2586 (exit $ac_status); } >/dev/null; then
2587 if test -s conftest.err; then
2588 ac_cpp_err=$ac_c_preproc_warn_flag
2589+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
2590 else
2591 ac_cpp_err=
2592 fi
2593@@ -2431,6 +2520,7 @@
2594 # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
2595 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
2596 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
2597+# OS/2's system install, which has a completely different semantic
2598 # ./install, which can be erroneously created by make from ./install.sh.
2599 echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
2600 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
2601@@ -2447,6 +2537,7 @@
2602 case $as_dir/ in
2603 ./ | .// | /cC/* | \
2604 /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
2605+ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
2606 /usr/ucb/* ) ;;
2607 *)
2608 # OSF1 and SCO ODT 3.0 have their own names for install.
2609@@ -2454,20 +2545,20 @@
2610 # by default.
2611 for ac_prog in ginstall scoinst install; do
2612 for ac_exec_ext in '' $ac_executable_extensions; do
2613- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
2614- if test $ac_prog = install &&
2615- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
2616- # AIX install. It has an incompatible calling convention.
2617- :
2618- elif test $ac_prog = install &&
2619- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
2620- # program-specific install script used by HP pwplus--don't use.
2621- :
2622- else
2623- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
2624- break 3
2625- fi
2626- fi
2627+ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
2628+ if test $ac_prog = install &&
2629+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
2630+ # AIX install. It has an incompatible calling convention.
2631+ :
2632+ elif test $ac_prog = install &&
2633+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
2634+ # program-specific install script used by HP pwplus--don't use.
2635+ :
2636+ else
2637+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
2638+ break 3
2639+ fi
2640+ fi
2641 done
2642 done
2643 ;;
2644@@ -2499,7 +2590,7 @@
2645
2646 echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
2647 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
2648-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
2649+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
2650 if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
2651 echo $ECHO_N "(cached) $ECHO_C" >&6
2652 else
2653@@ -2596,7 +2687,6 @@
2654 echo "$as_me:$LINENO: checking for AIX" >&5
2655 echo $ECHO_N "checking for AIX... $ECHO_C" >&6
2656 cat >conftest.$ac_ext <<_ACEOF
2657-#line $LINENO "configure"
2658 /* confdefs.h. */
2659 _ACEOF
2660 cat confdefs.h >>conftest.$ac_ext
2661@@ -2628,7 +2718,6 @@
2662 echo $ECHO_N "(cached) $ECHO_C" >&6
2663 else
2664 cat >conftest.$ac_ext <<_ACEOF
2665-#line $LINENO "configure"
2666 /* confdefs.h. */
2667 _ACEOF
2668 cat confdefs.h >>conftest.$ac_ext
2669@@ -2649,11 +2738,20 @@
2670 _ACEOF
2671 rm -f conftest.$ac_objext
2672 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2673- (eval $ac_compile) 2>&5
2674+ (eval $ac_compile) 2>conftest.er1
2675 ac_status=$?
2676+ grep -v '^ *+' conftest.er1 >conftest.err
2677+ rm -f conftest.er1
2678+ cat conftest.err >&5
2679 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2680 (exit $ac_status); } &&
2681- { ac_try='test -s conftest.$ac_objext'
2682+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
2683+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2684+ (eval $ac_try) 2>&5
2685+ ac_status=$?
2686+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
2687+ (exit $ac_status); }; } &&
2688+ { ac_try='test -s conftest.$ac_objext'
2689 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2690 (eval $ac_try) 2>&5
2691 ac_status=$?
2692@@ -2666,12 +2764,11 @@
2693
2694 ac_cv_header_stdc=no
2695 fi
2696-rm -f conftest.$ac_objext conftest.$ac_ext
2697+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
2698
2699 if test $ac_cv_header_stdc = yes; then
2700 # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
2701 cat >conftest.$ac_ext <<_ACEOF
2702-#line $LINENO "configure"
2703 /* confdefs.h. */
2704 _ACEOF
2705 cat confdefs.h >>conftest.$ac_ext
2706@@ -2693,7 +2790,6 @@
2707 if test $ac_cv_header_stdc = yes; then
2708 # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
2709 cat >conftest.$ac_ext <<_ACEOF
2710-#line $LINENO "configure"
2711 /* confdefs.h. */
2712 _ACEOF
2713 cat confdefs.h >>conftest.$ac_ext
2714@@ -2718,7 +2814,6 @@
2715 :
2716 else
2717 cat >conftest.$ac_ext <<_ACEOF
2718-#line $LINENO "configure"
2719 /* confdefs.h. */
2720 _ACEOF
2721 cat confdefs.h >>conftest.$ac_ext
2722@@ -2730,9 +2825,9 @@
2723 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
2724 #else
2725 # define ISLOWER(c) \
2726- (('a' <= (c) && (c) <= 'i') \
2727- || ('j' <= (c) && (c) <= 'r') \
2728- || ('s' <= (c) && (c) <= 'z'))
2729+ (('a' <= (c) && (c) <= 'i') \
2730+ || ('j' <= (c) && (c) <= 'r') \
2731+ || ('s' <= (c) && (c) <= 'z'))
2732 # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
2733 #endif
2734
2735@@ -2743,7 +2838,7 @@
2736 int i;
2737 for (i = 0; i < 256; i++)
2738 if (XOR (islower (i), ISLOWER (i))
2739- || toupper (i) != TOUPPER (i))
2740+ || toupper (i) != TOUPPER (i))
2741 exit(2);
2742 exit (0);
2743 }
2744@@ -2768,7 +2863,7 @@
2745 ( exit $ac_status )
2746 ac_cv_header_stdc=no
2747 fi
2748-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
2749+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
2750 fi
2751 fi
2752 fi
2753@@ -2793,7 +2888,7 @@
2754
2755
2756 for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
2757- inttypes.h stdint.h unistd.h
2758+ inttypes.h stdint.h unistd.h
2759 do
2760 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
2761 echo "$as_me:$LINENO: checking for $ac_header" >&5
2762@@ -2802,7 +2897,6 @@
2763 echo $ECHO_N "(cached) $ECHO_C" >&6
2764 else
2765 cat >conftest.$ac_ext <<_ACEOF
2766-#line $LINENO "configure"
2767 /* confdefs.h. */
2768 _ACEOF
2769 cat confdefs.h >>conftest.$ac_ext
2770@@ -2814,11 +2908,20 @@
2771 _ACEOF
2772 rm -f conftest.$ac_objext
2773 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2774- (eval $ac_compile) 2>&5
2775+ (eval $ac_compile) 2>conftest.er1
2776 ac_status=$?
2777+ grep -v '^ *+' conftest.er1 >conftest.err
2778+ rm -f conftest.er1
2779+ cat conftest.err >&5
2780 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2781 (exit $ac_status); } &&
2782- { ac_try='test -s conftest.$ac_objext'
2783+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
2784+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2785+ (eval $ac_try) 2>&5
2786+ ac_status=$?
2787+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
2788+ (exit $ac_status); }; } &&
2789+ { ac_try='test -s conftest.$ac_objext'
2790 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2791 (eval $ac_try) 2>&5
2792 ac_status=$?
2793@@ -2831,7 +2934,7 @@
2794
2795 eval "$as_ac_Header=no"
2796 fi
2797-rm -f conftest.$ac_objext conftest.$ac_ext
2798+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
2799 fi
2800 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
2801 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
2802@@ -2858,7 +2961,6 @@
2803 echo "$as_me:$LINENO: checking minix/config.h usability" >&5
2804 echo $ECHO_N "checking minix/config.h usability... $ECHO_C" >&6
2805 cat >conftest.$ac_ext <<_ACEOF
2806-#line $LINENO "configure"
2807 /* confdefs.h. */
2808 _ACEOF
2809 cat confdefs.h >>conftest.$ac_ext
2810@@ -2869,11 +2971,20 @@
2811 _ACEOF
2812 rm -f conftest.$ac_objext
2813 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2814- (eval $ac_compile) 2>&5
2815+ (eval $ac_compile) 2>conftest.er1
2816 ac_status=$?
2817+ grep -v '^ *+' conftest.er1 >conftest.err
2818+ rm -f conftest.er1
2819+ cat conftest.err >&5
2820 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2821 (exit $ac_status); } &&
2822- { ac_try='test -s conftest.$ac_objext'
2823+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
2824+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2825+ (eval $ac_try) 2>&5
2826+ ac_status=$?
2827+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
2828+ (exit $ac_status); }; } &&
2829+ { ac_try='test -s conftest.$ac_objext'
2830 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2831 (eval $ac_try) 2>&5
2832 ac_status=$?
2833@@ -2886,7 +2997,7 @@
2834
2835 ac_header_compiler=no
2836 fi
2837-rm -f conftest.$ac_objext conftest.$ac_ext
2838+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
2839 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
2840 echo "${ECHO_T}$ac_header_compiler" >&6
2841
2842@@ -2894,7 +3005,6 @@
2843 echo "$as_me:$LINENO: checking minix/config.h presence" >&5
2844 echo $ECHO_N "checking minix/config.h presence... $ECHO_C" >&6
2845 cat >conftest.$ac_ext <<_ACEOF
2846-#line $LINENO "configure"
2847 /* confdefs.h. */
2848 _ACEOF
2849 cat confdefs.h >>conftest.$ac_ext
2850@@ -2912,6 +3022,7 @@
2851 (exit $ac_status); } >/dev/null; then
2852 if test -s conftest.err; then
2853 ac_cpp_err=$ac_c_preproc_warn_flag
2854+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
2855 else
2856 ac_cpp_err=
2857 fi
2858@@ -2931,33 +3042,32 @@
2859 echo "${ECHO_T}$ac_header_preproc" >&6
2860
2861 # So? What about this header?
2862-case $ac_header_compiler:$ac_header_preproc in
2863- yes:no )
2864+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
2865+ yes:no: )
2866 { echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5
2867 echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
2868- { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5
2869-echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;}
2870- (
2871- cat <<\_ASBOX
2872-## ------------------------------------ ##
2873-## Report this to bug-autoconf@gnu.org. ##
2874-## ------------------------------------ ##
2875-_ASBOX
2876- ) |
2877- sed "s/^/$as_me: WARNING: /" >&2
2878+ { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5
2879+echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;}
2880+ ac_header_preproc=yes
2881 ;;
2882- no:yes )
2883+ no:yes:* )
2884 { echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5
2885 echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;}
2886- { echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5
2887-echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;}
2888+ { echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5
2889+echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;}
2890+ { echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5
2891+echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;}
2892+ { echo "$as_me:$LINENO: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&5
2893+echo "$as_me: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&2;}
2894 { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5
2895 echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;}
2896+ { echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5
2897+echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;}
2898 (
2899 cat <<\_ASBOX
2900-## ------------------------------------ ##
2901-## Report this to bug-autoconf@gnu.org. ##
2902-## ------------------------------------ ##
2903+## -------------------------------- ##
2904+## Report this to bug-patch@gnu.org ##
2905+## -------------------------------- ##
2906 _ASBOX
2907 ) |
2908 sed "s/^/$as_me: WARNING: /" >&2
2909@@ -3000,15 +3110,15 @@
2910 fi
2911
2912
2913-echo "$as_me:$LINENO: checking for library containing strerror" >&5
2914-echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6
2915-if test "${ac_cv_search_strerror+set}" = set; then
2916+
2917+ echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5
2918+echo $ECHO_N "checking for strerror in -lcposix... $ECHO_C" >&6
2919+if test "${ac_cv_lib_cposix_strerror+set}" = set; then
2920 echo $ECHO_N "(cached) $ECHO_C" >&6
2921 else
2922- ac_func_search_save_LIBS=$LIBS
2923-ac_cv_search_strerror=no
2924+ ac_check_lib_save_LIBS=$LIBS
2925+LIBS="-lcposix $LIBS"
2926 cat >conftest.$ac_ext <<_ACEOF
2927-#line $LINENO "configure"
2928 /* confdefs.h. */
2929 _ACEOF
2930 cat confdefs.h >>conftest.$ac_ext
2931@@ -3032,79 +3142,43 @@
2932 _ACEOF
2933 rm -f conftest.$ac_objext conftest$ac_exeext
2934 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
2935- (eval $ac_link) 2>&5
2936+ (eval $ac_link) 2>conftest.er1
2937 ac_status=$?
2938+ grep -v '^ *+' conftest.er1 >conftest.err
2939+ rm -f conftest.er1
2940+ cat conftest.err >&5
2941 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2942 (exit $ac_status); } &&
2943- { ac_try='test -s conftest$ac_exeext'
2944+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
2945 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2946 (eval $ac_try) 2>&5
2947 ac_status=$?
2948 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2949- (exit $ac_status); }; }; then
2950- ac_cv_search_strerror="none required"
2951-else
2952- echo "$as_me: failed program was:" >&5
2953-sed 's/^/| /' conftest.$ac_ext >&5
2954-
2955-fi
2956-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
2957-if test "$ac_cv_search_strerror" = no; then
2958- for ac_lib in cposix; do
2959- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
2960- cat >conftest.$ac_ext <<_ACEOF
2961-#line $LINENO "configure"
2962-/* confdefs.h. */
2963-_ACEOF
2964-cat confdefs.h >>conftest.$ac_ext
2965-cat >>conftest.$ac_ext <<_ACEOF
2966-/* end confdefs.h. */
2967-
2968-/* Override any gcc2 internal prototype to avoid an error. */
2969-#ifdef __cplusplus
2970-extern "C"
2971-#endif
2972-/* We use char because int might match the return type of a gcc2
2973- builtin and then its argument prototype would still apply. */
2974-char strerror ();
2975-int
2976-main ()
2977-{
2978-strerror ();
2979- ;
2980- return 0;
2981-}
2982-_ACEOF
2983-rm -f conftest.$ac_objext conftest$ac_exeext
2984-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
2985- (eval $ac_link) 2>&5
2986- ac_status=$?
2987- echo "$as_me:$LINENO: \$? = $ac_status" >&5
2988- (exit $ac_status); } &&
2989- { ac_try='test -s conftest$ac_exeext'
2990+ (exit $ac_status); }; } &&
2991+ { ac_try='test -s conftest$ac_exeext'
2992 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
2993 (eval $ac_try) 2>&5
2994 ac_status=$?
2995 echo "$as_me:$LINENO: \$? = $ac_status" >&5
2996 (exit $ac_status); }; }; then
2997- ac_cv_search_strerror="-l$ac_lib"
2998-break
2999+ ac_cv_lib_cposix_strerror=yes
3000 else
3001 echo "$as_me: failed program was:" >&5
3002 sed 's/^/| /' conftest.$ac_ext >&5
3003
3004+ac_cv_lib_cposix_strerror=no
3005 fi
3006-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
3007- done
3008+rm -f conftest.err conftest.$ac_objext \
3009+ conftest$ac_exeext conftest.$ac_ext
3010+LIBS=$ac_check_lib_save_LIBS
3011 fi
3012-LIBS=$ac_func_search_save_LIBS
3013+echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5
3014+echo "${ECHO_T}$ac_cv_lib_cposix_strerror" >&6
3015+if test $ac_cv_lib_cposix_strerror = yes; then
3016+ LIBS="$LIBS -lcposix"
3017 fi
3018-echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5
3019-echo "${ECHO_T}$ac_cv_search_strerror" >&6
3020-if test "$ac_cv_search_strerror" != no; then
3021- test "$ac_cv_search_strerror" = "none required" || LIBS="$ac_cv_search_strerror $LIBS"
3022
3023-fi
3024+
3025
3026 # Check whether --enable-largefile or --disable-largefile was given.
3027 if test "${enable_largefile+set}" = set; then
3028@@ -3124,8 +3198,7 @@
3029 while :; do
3030 # IRIX 6.2 and later do not support large files by default,
3031 # so use the C compiler's -n32 option if that helps.
3032- cat >conftest.$ac_ext <<_ACEOF
3033-#line $LINENO "configure"
3034+ cat >conftest.$ac_ext <<_ACEOF
3035 /* confdefs.h. */
3036 _ACEOF
3037 cat confdefs.h >>conftest.$ac_ext
3038@@ -3150,11 +3223,20 @@
3039 _ACEOF
3040 rm -f conftest.$ac_objext
3041 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3042- (eval $ac_compile) 2>&5
3043+ (eval $ac_compile) 2>conftest.er1
3044 ac_status=$?
3045+ grep -v '^ *+' conftest.er1 >conftest.err
3046+ rm -f conftest.er1
3047+ cat conftest.err >&5
3048 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3049 (exit $ac_status); } &&
3050- { ac_try='test -s conftest.$ac_objext'
3051+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3052+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3053+ (eval $ac_try) 2>&5
3054+ ac_status=$?
3055+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3056+ (exit $ac_status); }; } &&
3057+ { ac_try='test -s conftest.$ac_objext'
3058 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3059 (eval $ac_try) 2>&5
3060 ac_status=$?
3061@@ -3166,15 +3248,24 @@
3062 sed 's/^/| /' conftest.$ac_ext >&5
3063
3064 fi
3065-rm -f conftest.$ac_objext
3066+rm -f conftest.err conftest.$ac_objext
3067 CC="$CC -n32"
3068 rm -f conftest.$ac_objext
3069 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3070- (eval $ac_compile) 2>&5
3071+ (eval $ac_compile) 2>conftest.er1
3072 ac_status=$?
3073+ grep -v '^ *+' conftest.er1 >conftest.err
3074+ rm -f conftest.er1
3075+ cat conftest.err >&5
3076 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3077 (exit $ac_status); } &&
3078- { ac_try='test -s conftest.$ac_objext'
3079+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3080+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3081+ (eval $ac_try) 2>&5
3082+ ac_status=$?
3083+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3084+ (exit $ac_status); }; } &&
3085+ { ac_try='test -s conftest.$ac_objext'
3086 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3087 (eval $ac_try) 2>&5
3088 ac_status=$?
3089@@ -3186,8 +3277,8 @@
3090 sed 's/^/| /' conftest.$ac_ext >&5
3091
3092 fi
3093-rm -f conftest.$ac_objext
3094- break
3095+rm -f conftest.err conftest.$ac_objext
3096+ break
3097 done
3098 CC=$ac_save_CC
3099 rm -f conftest.$ac_ext
3100@@ -3207,7 +3298,6 @@
3101 while :; do
3102 ac_cv_sys_file_offset_bits=no
3103 cat >conftest.$ac_ext <<_ACEOF
3104-#line $LINENO "configure"
3105 /* confdefs.h. */
3106 _ACEOF
3107 cat confdefs.h >>conftest.$ac_ext
3108@@ -3232,11 +3322,20 @@
3109 _ACEOF
3110 rm -f conftest.$ac_objext
3111 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3112- (eval $ac_compile) 2>&5
3113+ (eval $ac_compile) 2>conftest.er1
3114 ac_status=$?
3115+ grep -v '^ *+' conftest.er1 >conftest.err
3116+ rm -f conftest.er1
3117+ cat conftest.err >&5
3118 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3119 (exit $ac_status); } &&
3120- { ac_try='test -s conftest.$ac_objext'
3121+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3122+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3123+ (eval $ac_try) 2>&5
3124+ ac_status=$?
3125+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3126+ (exit $ac_status); }; } &&
3127+ { ac_try='test -s conftest.$ac_objext'
3128 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3129 (eval $ac_try) 2>&5
3130 ac_status=$?
3131@@ -3248,9 +3347,8 @@
3132 sed 's/^/| /' conftest.$ac_ext >&5
3133
3134 fi
3135-rm -f conftest.$ac_objext conftest.$ac_ext
3136+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
3137 cat >conftest.$ac_ext <<_ACEOF
3138-#line $LINENO "configure"
3139 /* confdefs.h. */
3140 _ACEOF
3141 cat confdefs.h >>conftest.$ac_ext
3142@@ -3276,11 +3374,20 @@
3143 _ACEOF
3144 rm -f conftest.$ac_objext
3145 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3146- (eval $ac_compile) 2>&5
3147+ (eval $ac_compile) 2>conftest.er1
3148 ac_status=$?
3149+ grep -v '^ *+' conftest.er1 >conftest.err
3150+ rm -f conftest.er1
3151+ cat conftest.err >&5
3152 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3153 (exit $ac_status); } &&
3154- { ac_try='test -s conftest.$ac_objext'
3155+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3156+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3157+ (eval $ac_try) 2>&5
3158+ ac_status=$?
3159+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3160+ (exit $ac_status); }; } &&
3161+ { ac_try='test -s conftest.$ac_objext'
3162 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3163 (eval $ac_try) 2>&5
3164 ac_status=$?
3165@@ -3292,7 +3399,7 @@
3166 sed 's/^/| /' conftest.$ac_ext >&5
3167
3168 fi
3169-rm -f conftest.$ac_objext conftest.$ac_ext
3170+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
3171 break
3172 done
3173 fi
3174@@ -3314,7 +3421,6 @@
3175 while :; do
3176 ac_cv_sys_large_files=no
3177 cat >conftest.$ac_ext <<_ACEOF
3178-#line $LINENO "configure"
3179 /* confdefs.h. */
3180 _ACEOF
3181 cat confdefs.h >>conftest.$ac_ext
3182@@ -3339,11 +3445,20 @@
3183 _ACEOF
3184 rm -f conftest.$ac_objext
3185 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3186- (eval $ac_compile) 2>&5
3187+ (eval $ac_compile) 2>conftest.er1
3188 ac_status=$?
3189+ grep -v '^ *+' conftest.er1 >conftest.err
3190+ rm -f conftest.er1
3191+ cat conftest.err >&5
3192 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3193 (exit $ac_status); } &&
3194- { ac_try='test -s conftest.$ac_objext'
3195+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3196+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3197+ (eval $ac_try) 2>&5
3198+ ac_status=$?
3199+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3200+ (exit $ac_status); }; } &&
3201+ { ac_try='test -s conftest.$ac_objext'
3202 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3203 (eval $ac_try) 2>&5
3204 ac_status=$?
3205@@ -3355,9 +3470,8 @@
3206 sed 's/^/| /' conftest.$ac_ext >&5
3207
3208 fi
3209-rm -f conftest.$ac_objext conftest.$ac_ext
3210+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
3211 cat >conftest.$ac_ext <<_ACEOF
3212-#line $LINENO "configure"
3213 /* confdefs.h. */
3214 _ACEOF
3215 cat confdefs.h >>conftest.$ac_ext
3216@@ -3383,11 +3497,20 @@
3217 _ACEOF
3218 rm -f conftest.$ac_objext
3219 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3220- (eval $ac_compile) 2>&5
3221+ (eval $ac_compile) 2>conftest.er1
3222 ac_status=$?
3223+ grep -v '^ *+' conftest.er1 >conftest.err
3224+ rm -f conftest.er1
3225+ cat conftest.err >&5
3226 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3227 (exit $ac_status); } &&
3228- { ac_try='test -s conftest.$ac_objext'
3229+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3230+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3231+ (eval $ac_try) 2>&5
3232+ ac_status=$?
3233+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3234+ (exit $ac_status); }; } &&
3235+ { ac_try='test -s conftest.$ac_objext'
3236 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3237 (eval $ac_try) 2>&5
3238 ac_status=$?
3239@@ -3399,7 +3522,7 @@
3240 sed 's/^/| /' conftest.$ac_ext >&5
3241
3242 fi
3243-rm -f conftest.$ac_objext conftest.$ac_ext
3244+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
3245 break
3246 done
3247 fi
3248@@ -3443,7 +3566,6 @@
3249 echo $ECHO_N "(cached) $ECHO_C" >&6
3250 else
3251 cat >conftest.$ac_ext <<_ACEOF
3252-#line $LINENO "configure"
3253 /* confdefs.h. */
3254 _ACEOF
3255 cat confdefs.h >>conftest.$ac_ext
3256@@ -3506,11 +3628,20 @@
3257 _ACEOF
3258 rm -f conftest.$ac_objext
3259 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3260- (eval $ac_compile) 2>&5
3261+ (eval $ac_compile) 2>conftest.er1
3262 ac_status=$?
3263+ grep -v '^ *+' conftest.er1 >conftest.err
3264+ rm -f conftest.er1
3265+ cat conftest.err >&5
3266 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3267 (exit $ac_status); } &&
3268- { ac_try='test -s conftest.$ac_objext'
3269+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3270+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3271+ (eval $ac_try) 2>&5
3272+ ac_status=$?
3273+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3274+ (exit $ac_status); }; } &&
3275+ { ac_try='test -s conftest.$ac_objext'
3276 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3277 (eval $ac_try) 2>&5
3278 ac_status=$?
3279@@ -3523,7 +3654,7 @@
3280
3281 ac_cv_c_const=no
3282 fi
3283-rm -f conftest.$ac_objext conftest.$ac_ext
3284+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
3285 fi
3286 echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
3287 echo "${ECHO_T}$ac_cv_c_const" >&6
3288@@ -3550,7 +3681,6 @@
3289 echo $ECHO_N "(cached) $ECHO_C" >&6
3290 else
3291 cat >conftest.$ac_ext <<_ACEOF
3292-#line $LINENO "configure"
3293 /* confdefs.h. */
3294 _ACEOF
3295 cat confdefs.h >>conftest.$ac_ext
3296@@ -3570,11 +3700,20 @@
3297 _ACEOF
3298 rm -f conftest.$ac_objext
3299 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3300- (eval $ac_compile) 2>&5
3301+ (eval $ac_compile) 2>conftest.er1
3302 ac_status=$?
3303+ grep -v '^ *+' conftest.er1 >conftest.err
3304+ rm -f conftest.er1
3305+ cat conftest.err >&5
3306 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3307 (exit $ac_status); } &&
3308- { ac_try='test -s conftest.$ac_objext'
3309+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3310+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3311+ (eval $ac_try) 2>&5
3312+ ac_status=$?
3313+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3314+ (exit $ac_status); }; } &&
3315+ { ac_try='test -s conftest.$ac_objext'
3316 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3317 (eval $ac_try) 2>&5
3318 ac_status=$?
3319@@ -3587,7 +3726,7 @@
3320
3321 eval "$as_ac_Header=no"
3322 fi
3323-rm -f conftest.$ac_objext conftest.$ac_ext
3324+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
3325 fi
3326 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
3327 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
3328@@ -3610,7 +3749,6 @@
3329 ac_func_search_save_LIBS=$LIBS
3330 ac_cv_search_opendir=no
3331 cat >conftest.$ac_ext <<_ACEOF
3332-#line $LINENO "configure"
3333 /* confdefs.h. */
3334 _ACEOF
3335 cat confdefs.h >>conftest.$ac_ext
3336@@ -3634,11 +3772,20 @@
3337 _ACEOF
3338 rm -f conftest.$ac_objext conftest$ac_exeext
3339 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
3340- (eval $ac_link) 2>&5
3341+ (eval $ac_link) 2>conftest.er1
3342 ac_status=$?
3343+ grep -v '^ *+' conftest.er1 >conftest.err
3344+ rm -f conftest.er1
3345+ cat conftest.err >&5
3346 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3347 (exit $ac_status); } &&
3348- { ac_try='test -s conftest$ac_exeext'
3349+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3350+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3351+ (eval $ac_try) 2>&5
3352+ ac_status=$?
3353+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3354+ (exit $ac_status); }; } &&
3355+ { ac_try='test -s conftest$ac_exeext'
3356 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3357 (eval $ac_try) 2>&5
3358 ac_status=$?
3359@@ -3650,12 +3797,12 @@
3360 sed 's/^/| /' conftest.$ac_ext >&5
3361
3362 fi
3363-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
3364+rm -f conftest.err conftest.$ac_objext \
3365+ conftest$ac_exeext conftest.$ac_ext
3366 if test "$ac_cv_search_opendir" = no; then
3367 for ac_lib in dir; do
3368 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
3369 cat >conftest.$ac_ext <<_ACEOF
3370-#line $LINENO "configure"
3371 /* confdefs.h. */
3372 _ACEOF
3373 cat confdefs.h >>conftest.$ac_ext
3374@@ -3679,11 +3826,20 @@
3375 _ACEOF
3376 rm -f conftest.$ac_objext conftest$ac_exeext
3377 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
3378- (eval $ac_link) 2>&5
3379+ (eval $ac_link) 2>conftest.er1
3380 ac_status=$?
3381+ grep -v '^ *+' conftest.er1 >conftest.err
3382+ rm -f conftest.er1
3383+ cat conftest.err >&5
3384 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3385 (exit $ac_status); } &&
3386- { ac_try='test -s conftest$ac_exeext'
3387+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3388+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3389+ (eval $ac_try) 2>&5
3390+ ac_status=$?
3391+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3392+ (exit $ac_status); }; } &&
3393+ { ac_try='test -s conftest$ac_exeext'
3394 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3395 (eval $ac_try) 2>&5
3396 ac_status=$?
3397@@ -3696,7 +3852,8 @@
3398 sed 's/^/| /' conftest.$ac_ext >&5
3399
3400 fi
3401-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
3402+rm -f conftest.err conftest.$ac_objext \
3403+ conftest$ac_exeext conftest.$ac_ext
3404 done
3405 fi
3406 LIBS=$ac_func_search_save_LIBS
3407@@ -3717,7 +3874,6 @@
3408 ac_func_search_save_LIBS=$LIBS
3409 ac_cv_search_opendir=no
3410 cat >conftest.$ac_ext <<_ACEOF
3411-#line $LINENO "configure"
3412 /* confdefs.h. */
3413 _ACEOF
3414 cat confdefs.h >>conftest.$ac_ext
3415@@ -3741,11 +3897,20 @@
3416 _ACEOF
3417 rm -f conftest.$ac_objext conftest$ac_exeext
3418 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
3419- (eval $ac_link) 2>&5
3420+ (eval $ac_link) 2>conftest.er1
3421 ac_status=$?
3422+ grep -v '^ *+' conftest.er1 >conftest.err
3423+ rm -f conftest.er1
3424+ cat conftest.err >&5
3425 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3426 (exit $ac_status); } &&
3427- { ac_try='test -s conftest$ac_exeext'
3428+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3429+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3430+ (eval $ac_try) 2>&5
3431+ ac_status=$?
3432+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3433+ (exit $ac_status); }; } &&
3434+ { ac_try='test -s conftest$ac_exeext'
3435 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3436 (eval $ac_try) 2>&5
3437 ac_status=$?
3438@@ -3757,12 +3922,12 @@
3439 sed 's/^/| /' conftest.$ac_ext >&5
3440
3441 fi
3442-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
3443+rm -f conftest.err conftest.$ac_objext \
3444+ conftest$ac_exeext conftest.$ac_ext
3445 if test "$ac_cv_search_opendir" = no; then
3446 for ac_lib in x; do
3447 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
3448 cat >conftest.$ac_ext <<_ACEOF
3449-#line $LINENO "configure"
3450 /* confdefs.h. */
3451 _ACEOF
3452 cat confdefs.h >>conftest.$ac_ext
3453@@ -3786,11 +3951,20 @@
3454 _ACEOF
3455 rm -f conftest.$ac_objext conftest$ac_exeext
3456 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
3457- (eval $ac_link) 2>&5
3458+ (eval $ac_link) 2>conftest.er1
3459 ac_status=$?
3460+ grep -v '^ *+' conftest.er1 >conftest.err
3461+ rm -f conftest.er1
3462+ cat conftest.err >&5
3463 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3464 (exit $ac_status); } &&
3465- { ac_try='test -s conftest$ac_exeext'
3466+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3467+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3468+ (eval $ac_try) 2>&5
3469+ ac_status=$?
3470+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3471+ (exit $ac_status); }; } &&
3472+ { ac_try='test -s conftest$ac_exeext'
3473 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3474 (eval $ac_try) 2>&5
3475 ac_status=$?
3476@@ -3803,7 +3977,8 @@
3477 sed 's/^/| /' conftest.$ac_ext >&5
3478
3479 fi
3480-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
3481+rm -f conftest.err conftest.$ac_objext \
3482+ conftest$ac_exeext conftest.$ac_ext
3483 done
3484 fi
3485 LIBS=$ac_func_search_save_LIBS
3486@@ -3823,7 +3998,6 @@
3487 echo $ECHO_N "(cached) $ECHO_C" >&6
3488 else
3489 cat >conftest.$ac_ext <<_ACEOF
3490-#line $LINENO "configure"
3491 /* confdefs.h. */
3492 _ACEOF
3493 cat confdefs.h >>conftest.$ac_ext
3494@@ -3844,11 +4018,20 @@
3495 _ACEOF
3496 rm -f conftest.$ac_objext
3497 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3498- (eval $ac_compile) 2>&5
3499+ (eval $ac_compile) 2>conftest.er1
3500 ac_status=$?
3501+ grep -v '^ *+' conftest.er1 >conftest.err
3502+ rm -f conftest.er1
3503+ cat conftest.err >&5
3504 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3505 (exit $ac_status); } &&
3506- { ac_try='test -s conftest.$ac_objext'
3507+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3508+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3509+ (eval $ac_try) 2>&5
3510+ ac_status=$?
3511+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3512+ (exit $ac_status); }; } &&
3513+ { ac_try='test -s conftest.$ac_objext'
3514 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3515 (eval $ac_try) 2>&5
3516 ac_status=$?
3517@@ -3861,12 +4044,11 @@
3518
3519 ac_cv_header_stdc=no
3520 fi
3521-rm -f conftest.$ac_objext conftest.$ac_ext
3522+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
3523
3524 if test $ac_cv_header_stdc = yes; then
3525 # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
3526 cat >conftest.$ac_ext <<_ACEOF
3527-#line $LINENO "configure"
3528 /* confdefs.h. */
3529 _ACEOF
3530 cat confdefs.h >>conftest.$ac_ext
3531@@ -3888,7 +4070,6 @@
3532 if test $ac_cv_header_stdc = yes; then
3533 # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
3534 cat >conftest.$ac_ext <<_ACEOF
3535-#line $LINENO "configure"
3536 /* confdefs.h. */
3537 _ACEOF
3538 cat confdefs.h >>conftest.$ac_ext
3539@@ -3913,7 +4094,6 @@
3540 :
3541 else
3542 cat >conftest.$ac_ext <<_ACEOF
3543-#line $LINENO "configure"
3544 /* confdefs.h. */
3545 _ACEOF
3546 cat confdefs.h >>conftest.$ac_ext
3547@@ -3925,9 +4105,9 @@
3548 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
3549 #else
3550 # define ISLOWER(c) \
3551- (('a' <= (c) && (c) <= 'i') \
3552- || ('j' <= (c) && (c) <= 'r') \
3553- || ('s' <= (c) && (c) <= 'z'))
3554+ (('a' <= (c) && (c) <= 'i') \
3555+ || ('j' <= (c) && (c) <= 'r') \
3556+ || ('s' <= (c) && (c) <= 'z'))
3557 # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
3558 #endif
3559
3560@@ -3938,7 +4118,7 @@
3561 int i;
3562 for (i = 0; i < 256; i++)
3563 if (XOR (islower (i), ISLOWER (i))
3564- || toupper (i) != TOUPPER (i))
3565+ || toupper (i) != TOUPPER (i))
3566 exit(2);
3567 exit (0);
3568 }
3569@@ -3963,7 +4143,7 @@
3570 ( exit $ac_status )
3571 ac_cv_header_stdc=no
3572 fi
3573-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
3574+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
3575 fi
3576 fi
3577 fi
3578@@ -3999,7 +4179,6 @@
3579 echo "$as_me:$LINENO: checking $ac_header usability" >&5
3580 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
3581 cat >conftest.$ac_ext <<_ACEOF
3582-#line $LINENO "configure"
3583 /* confdefs.h. */
3584 _ACEOF
3585 cat confdefs.h >>conftest.$ac_ext
3586@@ -4010,11 +4189,20 @@
3587 _ACEOF
3588 rm -f conftest.$ac_objext
3589 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3590- (eval $ac_compile) 2>&5
3591+ (eval $ac_compile) 2>conftest.er1
3592 ac_status=$?
3593+ grep -v '^ *+' conftest.er1 >conftest.err
3594+ rm -f conftest.er1
3595+ cat conftest.err >&5
3596 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3597 (exit $ac_status); } &&
3598- { ac_try='test -s conftest.$ac_objext'
3599+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3600+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3601+ (eval $ac_try) 2>&5
3602+ ac_status=$?
3603+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3604+ (exit $ac_status); }; } &&
3605+ { ac_try='test -s conftest.$ac_objext'
3606 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3607 (eval $ac_try) 2>&5
3608 ac_status=$?
3609@@ -4027,7 +4215,7 @@
3610
3611 ac_header_compiler=no
3612 fi
3613-rm -f conftest.$ac_objext conftest.$ac_ext
3614+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
3615 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
3616 echo "${ECHO_T}$ac_header_compiler" >&6
3617
3618@@ -4035,7 +4223,6 @@
3619 echo "$as_me:$LINENO: checking $ac_header presence" >&5
3620 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
3621 cat >conftest.$ac_ext <<_ACEOF
3622-#line $LINENO "configure"
3623 /* confdefs.h. */
3624 _ACEOF
3625 cat confdefs.h >>conftest.$ac_ext
3626@@ -4053,6 +4240,7 @@
3627 (exit $ac_status); } >/dev/null; then
3628 if test -s conftest.err; then
3629 ac_cpp_err=$ac_c_preproc_warn_flag
3630+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
3631 else
3632 ac_cpp_err=
3633 fi
3634@@ -4072,33 +4260,32 @@
3635 echo "${ECHO_T}$ac_header_preproc" >&6
3636
3637 # So? What about this header?
3638-case $ac_header_compiler:$ac_header_preproc in
3639- yes:no )
3640+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
3641+ yes:no: )
3642 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
3643 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
3644+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
3645+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
3646+ ac_header_preproc=yes
3647+ ;;
3648+ no:yes:* )
3649+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
3650+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
3651+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
3652+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
3653+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
3654+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
3655+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
3656+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
3657 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
3658 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
3659+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
3660+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
3661 (
3662 cat <<\_ASBOX
3663-## ------------------------------------ ##
3664-## Report this to bug-autoconf@gnu.org. ##
3665-## ------------------------------------ ##
3666-_ASBOX
3667- ) |
3668- sed "s/^/$as_me: WARNING: /" >&2
3669- ;;
3670- no:yes )
3671- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
3672-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
3673- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
3674-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
3675- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
3676-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
3677- (
3678- cat <<\_ASBOX
3679-## ------------------------------------ ##
3680-## Report this to bug-autoconf@gnu.org. ##
3681-## ------------------------------------ ##
3682+## -------------------------------- ##
3683+## Report this to bug-patch@gnu.org ##
3684+## -------------------------------- ##
3685 _ASBOX
3686 ) |
3687 sed "s/^/$as_me: WARNING: /" >&2
3688@@ -4109,7 +4296,7 @@
3689 if eval "test \"\${$as_ac_Header+set}\" = set"; then
3690 echo $ECHO_N "(cached) $ECHO_C" >&6
3691 else
3692- eval "$as_ac_Header=$ac_header_preproc"
3693+ eval "$as_ac_Header=\$ac_header_preproc"
3694 fi
3695 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
3696 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
3697@@ -4131,7 +4318,6 @@
3698 echo $ECHO_N "(cached) $ECHO_C" >&6
3699 else
3700 cat >conftest.$ac_ext <<_ACEOF
3701-#line $LINENO "configure"
3702 /* confdefs.h. */
3703 _ACEOF
3704 cat confdefs.h >>conftest.$ac_ext
3705@@ -4151,11 +4337,20 @@
3706 _ACEOF
3707 rm -f conftest.$ac_objext
3708 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3709- (eval $ac_compile) 2>&5
3710+ (eval $ac_compile) 2>conftest.er1
3711 ac_status=$?
3712+ grep -v '^ *+' conftest.er1 >conftest.err
3713+ rm -f conftest.er1
3714+ cat conftest.err >&5
3715 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3716 (exit $ac_status); } &&
3717- { ac_try='test -s conftest.$ac_objext'
3718+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3719+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3720+ (eval $ac_try) 2>&5
3721+ ac_status=$?
3722+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3723+ (exit $ac_status); }; } &&
3724+ { ac_try='test -s conftest.$ac_objext'
3725 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3726 (eval $ac_try) 2>&5
3727 ac_status=$?
3728@@ -4168,7 +4363,7 @@
3729
3730 ac_cv_type_mode_t=no
3731 fi
3732-rm -f conftest.$ac_objext conftest.$ac_ext
3733+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
3734 fi
3735 echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5
3736 echo "${ECHO_T}$ac_cv_type_mode_t" >&6
3737@@ -4188,7 +4383,6 @@
3738 echo $ECHO_N "(cached) $ECHO_C" >&6
3739 else
3740 cat >conftest.$ac_ext <<_ACEOF
3741-#line $LINENO "configure"
3742 /* confdefs.h. */
3743 _ACEOF
3744 cat confdefs.h >>conftest.$ac_ext
3745@@ -4208,11 +4402,20 @@
3746 _ACEOF
3747 rm -f conftest.$ac_objext
3748 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3749- (eval $ac_compile) 2>&5
3750+ (eval $ac_compile) 2>conftest.er1
3751 ac_status=$?
3752+ grep -v '^ *+' conftest.er1 >conftest.err
3753+ rm -f conftest.er1
3754+ cat conftest.err >&5
3755 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3756 (exit $ac_status); } &&
3757- { ac_try='test -s conftest.$ac_objext'
3758+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3759+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3760+ (eval $ac_try) 2>&5
3761+ ac_status=$?
3762+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3763+ (exit $ac_status); }; } &&
3764+ { ac_try='test -s conftest.$ac_objext'
3765 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3766 (eval $ac_try) 2>&5
3767 ac_status=$?
3768@@ -4225,7 +4428,7 @@
3769
3770 ac_cv_type_off_t=no
3771 fi
3772-rm -f conftest.$ac_objext conftest.$ac_ext
3773+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
3774 fi
3775 echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
3776 echo "${ECHO_T}$ac_cv_type_off_t" >&6
3777@@ -4245,7 +4448,6 @@
3778 echo $ECHO_N "(cached) $ECHO_C" >&6
3779 else
3780 cat >conftest.$ac_ext <<_ACEOF
3781-#line $LINENO "configure"
3782 /* confdefs.h. */
3783 _ACEOF
3784 cat confdefs.h >>conftest.$ac_ext
3785@@ -4265,11 +4467,20 @@
3786 _ACEOF
3787 rm -f conftest.$ac_objext
3788 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3789- (eval $ac_compile) 2>&5
3790+ (eval $ac_compile) 2>conftest.er1
3791 ac_status=$?
3792+ grep -v '^ *+' conftest.er1 >conftest.err
3793+ rm -f conftest.er1
3794+ cat conftest.err >&5
3795 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3796 (exit $ac_status); } &&
3797- { ac_try='test -s conftest.$ac_objext'
3798+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3799+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3800+ (eval $ac_try) 2>&5
3801+ ac_status=$?
3802+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3803+ (exit $ac_status); }; } &&
3804+ { ac_try='test -s conftest.$ac_objext'
3805 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3806 (eval $ac_try) 2>&5
3807 ac_status=$?
3808@@ -4282,7 +4493,7 @@
3809
3810 ac_cv_type_pid_t=no
3811 fi
3812-rm -f conftest.$ac_objext conftest.$ac_ext
3813+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
3814 fi
3815 echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5
3816 echo "${ECHO_T}$ac_cv_type_pid_t" >&6
3817@@ -4302,7 +4513,6 @@
3818 echo $ECHO_N "(cached) $ECHO_C" >&6
3819 else
3820 cat >conftest.$ac_ext <<_ACEOF
3821-#line $LINENO "configure"
3822 /* confdefs.h. */
3823 _ACEOF
3824 cat confdefs.h >>conftest.$ac_ext
3825@@ -4329,11 +4539,20 @@
3826 _ACEOF
3827 rm -f conftest.$ac_objext
3828 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3829- (eval $ac_compile) 2>&5
3830+ (eval $ac_compile) 2>conftest.er1
3831 ac_status=$?
3832+ grep -v '^ *+' conftest.er1 >conftest.err
3833+ rm -f conftest.er1
3834+ cat conftest.err >&5
3835 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3836 (exit $ac_status); } &&
3837- { ac_try='test -s conftest.$ac_objext'
3838+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3839+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3840+ (eval $ac_try) 2>&5
3841+ ac_status=$?
3842+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3843+ (exit $ac_status); }; } &&
3844+ { ac_try='test -s conftest.$ac_objext'
3845 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3846 (eval $ac_try) 2>&5
3847 ac_status=$?
3848@@ -4346,7 +4565,7 @@
3849
3850 ac_cv_type_signal=int
3851 fi
3852-rm -f conftest.$ac_objext conftest.$ac_ext
3853+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
3854 fi
3855 echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
3856 echo "${ECHO_T}$ac_cv_type_signal" >&6
3857@@ -4362,7 +4581,6 @@
3858 echo $ECHO_N "(cached) $ECHO_C" >&6
3859 else
3860 cat >conftest.$ac_ext <<_ACEOF
3861-#line $LINENO "configure"
3862 /* confdefs.h. */
3863 _ACEOF
3864 cat confdefs.h >>conftest.$ac_ext
3865@@ -4382,11 +4600,20 @@
3866 _ACEOF
3867 rm -f conftest.$ac_objext
3868 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3869- (eval $ac_compile) 2>&5
3870+ (eval $ac_compile) 2>conftest.er1
3871 ac_status=$?
3872+ grep -v '^ *+' conftest.er1 >conftest.err
3873+ rm -f conftest.er1
3874+ cat conftest.err >&5
3875 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3876 (exit $ac_status); } &&
3877- { ac_try='test -s conftest.$ac_objext'
3878+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3879+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3880+ (eval $ac_try) 2>&5
3881+ ac_status=$?
3882+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3883+ (exit $ac_status); }; } &&
3884+ { ac_try='test -s conftest.$ac_objext'
3885 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3886 (eval $ac_try) 2>&5
3887 ac_status=$?
3888@@ -4399,7 +4626,7 @@
3889
3890 ac_cv_type_size_t=no
3891 fi
3892-rm -f conftest.$ac_objext conftest.$ac_ext
3893+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
3894 fi
3895 echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
3896 echo "${ECHO_T}$ac_cv_type_size_t" >&6
3897@@ -4419,7 +4646,6 @@
3898 echo $ECHO_N "(cached) $ECHO_C" >&6
3899 else
3900 cat >conftest.$ac_ext <<_ACEOF
3901-#line $LINENO "configure"
3902 /* confdefs.h. */
3903 _ACEOF
3904 cat confdefs.h >>conftest.$ac_ext
3905@@ -4468,11 +4694,20 @@
3906 _ACEOF
3907 rm -f conftest.$ac_objext
3908 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3909- (eval $ac_compile) 2>&5
3910+ (eval $ac_compile) 2>conftest.er1
3911 ac_status=$?
3912+ grep -v '^ *+' conftest.er1 >conftest.err
3913+ rm -f conftest.er1
3914+ cat conftest.err >&5
3915 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3916 (exit $ac_status); } &&
3917- { ac_try='test -s conftest.$ac_objext'
3918+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3919+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3920+ (eval $ac_try) 2>&5
3921+ ac_status=$?
3922+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3923+ (exit $ac_status); }; } &&
3924+ { ac_try='test -s conftest.$ac_objext'
3925 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3926 (eval $ac_try) 2>&5
3927 ac_status=$?
3928@@ -4485,7 +4720,7 @@
3929
3930 ac_cv_header_stdbool_h=no
3931 fi
3932-rm -f conftest.$ac_objext conftest.$ac_ext
3933+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
3934 fi
3935 echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5
3936 echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6
3937@@ -4495,7 +4730,6 @@
3938 echo $ECHO_N "(cached) $ECHO_C" >&6
3939 else
3940 cat >conftest.$ac_ext <<_ACEOF
3941-#line $LINENO "configure"
3942 /* confdefs.h. */
3943 _ACEOF
3944 cat confdefs.h >>conftest.$ac_ext
3945@@ -4515,11 +4749,20 @@
3946 _ACEOF
3947 rm -f conftest.$ac_objext
3948 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3949- (eval $ac_compile) 2>&5
3950+ (eval $ac_compile) 2>conftest.er1
3951 ac_status=$?
3952+ grep -v '^ *+' conftest.er1 >conftest.err
3953+ rm -f conftest.er1
3954+ cat conftest.err >&5
3955 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3956 (exit $ac_status); } &&
3957- { ac_try='test -s conftest.$ac_objext'
3958+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3959+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3960+ (eval $ac_try) 2>&5
3961+ ac_status=$?
3962+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
3963+ (exit $ac_status); }; } &&
3964+ { ac_try='test -s conftest.$ac_objext'
3965 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3966 (eval $ac_try) 2>&5
3967 ac_status=$?
3968@@ -4532,7 +4775,7 @@
3969
3970 ac_cv_type__Bool=no
3971 fi
3972-rm -f conftest.$ac_objext conftest.$ac_ext
3973+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
3974 fi
3975 echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5
3976 echo "${ECHO_T}$ac_cv_type__Bool" >&6
3977@@ -4589,7 +4832,6 @@
3978 echo "$as_me:$LINENO: checking $ac_header usability" >&5
3979 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
3980 cat >conftest.$ac_ext <<_ACEOF
3981-#line $LINENO "configure"
3982 /* confdefs.h. */
3983 _ACEOF
3984 cat confdefs.h >>conftest.$ac_ext
3985@@ -4600,11 +4842,20 @@
3986 _ACEOF
3987 rm -f conftest.$ac_objext
3988 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3989- (eval $ac_compile) 2>&5
3990+ (eval $ac_compile) 2>conftest.er1
3991 ac_status=$?
3992+ grep -v '^ *+' conftest.er1 >conftest.err
3993+ rm -f conftest.er1
3994+ cat conftest.err >&5
3995 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3996 (exit $ac_status); } &&
3997- { ac_try='test -s conftest.$ac_objext'
3998+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3999+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4000+ (eval $ac_try) 2>&5
4001+ ac_status=$?
4002+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
4003+ (exit $ac_status); }; } &&
4004+ { ac_try='test -s conftest.$ac_objext'
4005 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4006 (eval $ac_try) 2>&5
4007 ac_status=$?
4008@@ -4617,7 +4868,7 @@
4009
4010 ac_header_compiler=no
4011 fi
4012-rm -f conftest.$ac_objext conftest.$ac_ext
4013+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
4014 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
4015 echo "${ECHO_T}$ac_header_compiler" >&6
4016
4017@@ -4625,7 +4876,6 @@
4018 echo "$as_me:$LINENO: checking $ac_header presence" >&5
4019 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
4020 cat >conftest.$ac_ext <<_ACEOF
4021-#line $LINENO "configure"
4022 /* confdefs.h. */
4023 _ACEOF
4024 cat confdefs.h >>conftest.$ac_ext
4025@@ -4643,6 +4893,7 @@
4026 (exit $ac_status); } >/dev/null; then
4027 if test -s conftest.err; then
4028 ac_cpp_err=$ac_c_preproc_warn_flag
4029+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
4030 else
4031 ac_cpp_err=
4032 fi
4033@@ -4662,33 +4913,32 @@
4034 echo "${ECHO_T}$ac_header_preproc" >&6
4035
4036 # So? What about this header?
4037-case $ac_header_compiler:$ac_header_preproc in
4038- yes:no )
4039+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
4040+ yes:no: )
4041 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
4042 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
4043- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
4044-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
4045- (
4046- cat <<\_ASBOX
4047-## ------------------------------------ ##
4048-## Report this to bug-autoconf@gnu.org. ##
4049-## ------------------------------------ ##
4050-_ASBOX
4051- ) |
4052- sed "s/^/$as_me: WARNING: /" >&2
4053+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
4054+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
4055+ ac_header_preproc=yes
4056 ;;
4057- no:yes )
4058+ no:yes:* )
4059 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
4060 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
4061- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
4062-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
4063+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
4064+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
4065+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
4066+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
4067+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
4068+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
4069 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
4070 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
4071+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
4072+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
4073 (
4074 cat <<\_ASBOX
4075-## ------------------------------------ ##
4076-## Report this to bug-autoconf@gnu.org. ##
4077-## ------------------------------------ ##
4078+## -------------------------------- ##
4079+## Report this to bug-patch@gnu.org ##
4080+## -------------------------------- ##
4081 _ASBOX
4082 ) |
4083 sed "s/^/$as_me: WARNING: /" >&2
4084@@ -4699,7 +4949,7 @@
4085 if eval "test \"\${$as_ac_Header+set}\" = set"; then
4086 echo $ECHO_N "(cached) $ECHO_C" >&6
4087 else
4088- eval "$as_ac_Header=$ac_header_preproc"
4089+ eval "$as_ac_Header=\$ac_header_preproc"
4090 fi
4091 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
4092 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
4093@@ -4733,7 +4983,6 @@
4094 echo "$as_me:$LINENO: checking $ac_header usability" >&5
4095 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
4096 cat >conftest.$ac_ext <<_ACEOF
4097-#line $LINENO "configure"
4098 /* confdefs.h. */
4099 _ACEOF
4100 cat confdefs.h >>conftest.$ac_ext
4101@@ -4744,11 +4993,20 @@
4102 _ACEOF
4103 rm -f conftest.$ac_objext
4104 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4105- (eval $ac_compile) 2>&5
4106+ (eval $ac_compile) 2>conftest.er1
4107 ac_status=$?
4108+ grep -v '^ *+' conftest.er1 >conftest.err
4109+ rm -f conftest.er1
4110+ cat conftest.err >&5
4111 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4112 (exit $ac_status); } &&
4113- { ac_try='test -s conftest.$ac_objext'
4114+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4115+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4116+ (eval $ac_try) 2>&5
4117+ ac_status=$?
4118+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
4119+ (exit $ac_status); }; } &&
4120+ { ac_try='test -s conftest.$ac_objext'
4121 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4122 (eval $ac_try) 2>&5
4123 ac_status=$?
4124@@ -4761,7 +5019,7 @@
4125
4126 ac_header_compiler=no
4127 fi
4128-rm -f conftest.$ac_objext conftest.$ac_ext
4129+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
4130 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
4131 echo "${ECHO_T}$ac_header_compiler" >&6
4132
4133@@ -4769,7 +5027,6 @@
4134 echo "$as_me:$LINENO: checking $ac_header presence" >&5
4135 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
4136 cat >conftest.$ac_ext <<_ACEOF
4137-#line $LINENO "configure"
4138 /* confdefs.h. */
4139 _ACEOF
4140 cat confdefs.h >>conftest.$ac_ext
4141@@ -4787,6 +5044,7 @@
4142 (exit $ac_status); } >/dev/null; then
4143 if test -s conftest.err; then
4144 ac_cpp_err=$ac_c_preproc_warn_flag
4145+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
4146 else
4147 ac_cpp_err=
4148 fi
4149@@ -4806,33 +5064,32 @@
4150 echo "${ECHO_T}$ac_header_preproc" >&6
4151
4152 # So? What about this header?
4153-case $ac_header_compiler:$ac_header_preproc in
4154- yes:no )
4155+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
4156+ yes:no: )
4157 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
4158 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
4159- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
4160-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
4161- (
4162- cat <<\_ASBOX
4163-## ------------------------------------ ##
4164-## Report this to bug-autoconf@gnu.org. ##
4165-## ------------------------------------ ##
4166-_ASBOX
4167- ) |
4168- sed "s/^/$as_me: WARNING: /" >&2
4169+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
4170+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
4171+ ac_header_preproc=yes
4172 ;;
4173- no:yes )
4174+ no:yes:* )
4175 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
4176 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
4177- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
4178-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
4179+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
4180+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
4181+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
4182+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
4183+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
4184+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
4185 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
4186 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
4187+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
4188+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
4189 (
4190 cat <<\_ASBOX
4191-## ------------------------------------ ##
4192-## Report this to bug-autoconf@gnu.org. ##
4193-## ------------------------------------ ##
4194+## -------------------------------- ##
4195+## Report this to bug-patch@gnu.org ##
4196+## -------------------------------- ##
4197 _ASBOX
4198 ) |
4199 sed "s/^/$as_me: WARNING: /" >&2
4200@@ -4843,7 +5100,7 @@
4201 if eval "test \"\${$as_ac_Header+set}\" = set"; then
4202 echo $ECHO_N "(cached) $ECHO_C" >&6
4203 else
4204- eval "$as_ac_Header=$ac_header_preproc"
4205+ eval "$as_ac_Header=\$ac_header_preproc"
4206 fi
4207 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
4208 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
4209@@ -4865,7 +5122,6 @@
4210 echo $ECHO_N "(cached) $ECHO_C" >&6
4211 else
4212 cat >conftest.$ac_ext <<_ACEOF
4213-#line $LINENO "configure"
4214 /* confdefs.h. */
4215 _ACEOF
4216 cat confdefs.h >>conftest.$ac_ext
4217@@ -4886,11 +5142,20 @@
4218 _ACEOF
4219 rm -f conftest.$ac_objext
4220 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4221- (eval $ac_compile) 2>&5
4222+ (eval $ac_compile) 2>conftest.er1
4223 ac_status=$?
4224+ grep -v '^ *+' conftest.er1 >conftest.err
4225+ rm -f conftest.er1
4226+ cat conftest.err >&5
4227 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4228 (exit $ac_status); } &&
4229- { ac_try='test -s conftest.$ac_objext'
4230+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4231+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4232+ (eval $ac_try) 2>&5
4233+ ac_status=$?
4234+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
4235+ (exit $ac_status); }; } &&
4236+ { ac_try='test -s conftest.$ac_objext'
4237 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4238 (eval $ac_try) 2>&5
4239 ac_status=$?
4240@@ -4903,7 +5168,7 @@
4241
4242 ac_cv_header_time=no
4243 fi
4244-rm -f conftest.$ac_objext conftest.$ac_ext
4245+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
4246 fi
4247 echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
4248 echo "${ECHO_T}$ac_cv_header_time" >&6
4249@@ -4933,7 +5198,6 @@
4250 echo $ECHO_N "(cached) $ECHO_C" >&6
4251 else
4252 cat >conftest.$ac_ext <<_ACEOF
4253-#line $LINENO "configure"
4254 /* confdefs.h. */
4255 _ACEOF
4256 cat confdefs.h >>conftest.$ac_ext
4257@@ -4964,11 +5228,20 @@
4258 _ACEOF
4259 rm -f conftest.$ac_objext
4260 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4261- (eval $ac_compile) 2>&5
4262+ (eval $ac_compile) 2>conftest.er1
4263 ac_status=$?
4264+ grep -v '^ *+' conftest.er1 >conftest.err
4265+ rm -f conftest.er1
4266+ cat conftest.err >&5
4267 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4268 (exit $ac_status); } &&
4269- { ac_try='test -s conftest.$ac_objext'
4270+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4271+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4272+ (eval $ac_try) 2>&5
4273+ ac_status=$?
4274+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
4275+ (exit $ac_status); }; } &&
4276+ { ac_try='test -s conftest.$ac_objext'
4277 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4278 (eval $ac_try) 2>&5
4279 ac_status=$?
4280@@ -4981,7 +5254,7 @@
4281
4282 fu_cv_sys_struct_utimbuf=no
4283 fi
4284-rm -f conftest.$ac_objext conftest.$ac_ext
4285+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
4286
4287 fi
4288 echo "$as_me:$LINENO: result: $fu_cv_sys_struct_utimbuf" >&5
4289@@ -5005,7 +5278,6 @@
4290 ac_cv_func_closedir_void=yes
4291 else
4292 cat >conftest.$ac_ext <<_ACEOF
4293-#line $LINENO "configure"
4294 /* confdefs.h. */
4295 _ACEOF
4296 cat confdefs.h >>conftest.$ac_ext
4297@@ -5045,7 +5317,7 @@
4298 ( exit $ac_status )
4299 ac_cv_func_closedir_void=yes
4300 fi
4301-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
4302+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
4303 fi
4304 fi
4305 echo "$as_me:$LINENO: result: $ac_cv_func_closedir_void" >&5
4306@@ -5076,7 +5348,6 @@
4307 echo "$as_me:$LINENO: checking $ac_header usability" >&5
4308 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
4309 cat >conftest.$ac_ext <<_ACEOF
4310-#line $LINENO "configure"
4311 /* confdefs.h. */
4312 _ACEOF
4313 cat confdefs.h >>conftest.$ac_ext
4314@@ -5087,11 +5358,20 @@
4315 _ACEOF
4316 rm -f conftest.$ac_objext
4317 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4318- (eval $ac_compile) 2>&5
4319+ (eval $ac_compile) 2>conftest.er1
4320 ac_status=$?
4321+ grep -v '^ *+' conftest.er1 >conftest.err
4322+ rm -f conftest.er1
4323+ cat conftest.err >&5
4324 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4325 (exit $ac_status); } &&
4326- { ac_try='test -s conftest.$ac_objext'
4327+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4328+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4329+ (eval $ac_try) 2>&5
4330+ ac_status=$?
4331+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
4332+ (exit $ac_status); }; } &&
4333+ { ac_try='test -s conftest.$ac_objext'
4334 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4335 (eval $ac_try) 2>&5
4336 ac_status=$?
4337@@ -5104,7 +5384,7 @@
4338
4339 ac_header_compiler=no
4340 fi
4341-rm -f conftest.$ac_objext conftest.$ac_ext
4342+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
4343 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
4344 echo "${ECHO_T}$ac_header_compiler" >&6
4345
4346@@ -5112,7 +5392,6 @@
4347 echo "$as_me:$LINENO: checking $ac_header presence" >&5
4348 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
4349 cat >conftest.$ac_ext <<_ACEOF
4350-#line $LINENO "configure"
4351 /* confdefs.h. */
4352 _ACEOF
4353 cat confdefs.h >>conftest.$ac_ext
4354@@ -5130,6 +5409,7 @@
4355 (exit $ac_status); } >/dev/null; then
4356 if test -s conftest.err; then
4357 ac_cpp_err=$ac_c_preproc_warn_flag
4358+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
4359 else
4360 ac_cpp_err=
4361 fi
4362@@ -5149,33 +5429,32 @@
4363 echo "${ECHO_T}$ac_header_preproc" >&6
4364
4365 # So? What about this header?
4366-case $ac_header_compiler:$ac_header_preproc in
4367- yes:no )
4368+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
4369+ yes:no: )
4370 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
4371 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
4372- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
4373-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
4374- (
4375- cat <<\_ASBOX
4376-## ------------------------------------ ##
4377-## Report this to bug-autoconf@gnu.org. ##
4378-## ------------------------------------ ##
4379-_ASBOX
4380- ) |
4381- sed "s/^/$as_me: WARNING: /" >&2
4382+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
4383+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
4384+ ac_header_preproc=yes
4385 ;;
4386- no:yes )
4387+ no:yes:* )
4388 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
4389 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
4390- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
4391-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
4392+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
4393+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
4394+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
4395+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
4396+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
4397+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
4398 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
4399 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
4400+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
4401+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
4402 (
4403 cat <<\_ASBOX
4404-## ------------------------------------ ##
4405-## Report this to bug-autoconf@gnu.org. ##
4406-## ------------------------------------ ##
4407+## -------------------------------- ##
4408+## Report this to bug-patch@gnu.org ##
4409+## -------------------------------- ##
4410 _ASBOX
4411 ) |
4412 sed "s/^/$as_me: WARNING: /" >&2
4413@@ -5186,7 +5465,7 @@
4414 if eval "test \"\${$as_ac_Header+set}\" = set"; then
4415 echo $ECHO_N "(cached) $ECHO_C" >&6
4416 else
4417- eval "$as_ac_Header=$ac_header_preproc"
4418+ eval "$as_ac_Header=\$ac_header_preproc"
4419 fi
4420 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
4421 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
4422@@ -5220,7 +5499,6 @@
4423 echo "$as_me:$LINENO: checking $ac_header usability" >&5
4424 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
4425 cat >conftest.$ac_ext <<_ACEOF
4426-#line $LINENO "configure"
4427 /* confdefs.h. */
4428 _ACEOF
4429 cat confdefs.h >>conftest.$ac_ext
4430@@ -5231,11 +5509,20 @@
4431 _ACEOF
4432 rm -f conftest.$ac_objext
4433 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4434- (eval $ac_compile) 2>&5
4435+ (eval $ac_compile) 2>conftest.er1
4436 ac_status=$?
4437+ grep -v '^ *+' conftest.er1 >conftest.err
4438+ rm -f conftest.er1
4439+ cat conftest.err >&5
4440 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4441 (exit $ac_status); } &&
4442- { ac_try='test -s conftest.$ac_objext'
4443+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4444+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4445+ (eval $ac_try) 2>&5
4446+ ac_status=$?
4447+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
4448+ (exit $ac_status); }; } &&
4449+ { ac_try='test -s conftest.$ac_objext'
4450 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4451 (eval $ac_try) 2>&5
4452 ac_status=$?
4453@@ -5248,7 +5535,7 @@
4454
4455 ac_header_compiler=no
4456 fi
4457-rm -f conftest.$ac_objext conftest.$ac_ext
4458+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
4459 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
4460 echo "${ECHO_T}$ac_header_compiler" >&6
4461
4462@@ -5256,7 +5543,6 @@
4463 echo "$as_me:$LINENO: checking $ac_header presence" >&5
4464 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
4465 cat >conftest.$ac_ext <<_ACEOF
4466-#line $LINENO "configure"
4467 /* confdefs.h. */
4468 _ACEOF
4469 cat confdefs.h >>conftest.$ac_ext
4470@@ -5274,6 +5560,7 @@
4471 (exit $ac_status); } >/dev/null; then
4472 if test -s conftest.err; then
4473 ac_cpp_err=$ac_c_preproc_warn_flag
4474+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
4475 else
4476 ac_cpp_err=
4477 fi
4478@@ -5293,33 +5580,32 @@
4479 echo "${ECHO_T}$ac_header_preproc" >&6
4480
4481 # So? What about this header?
4482-case $ac_header_compiler:$ac_header_preproc in
4483- yes:no )
4484+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
4485+ yes:no: )
4486 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
4487 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
4488- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
4489-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
4490- (
4491- cat <<\_ASBOX
4492-## ------------------------------------ ##
4493-## Report this to bug-autoconf@gnu.org. ##
4494-## ------------------------------------ ##
4495-_ASBOX
4496- ) |
4497- sed "s/^/$as_me: WARNING: /" >&2
4498+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
4499+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
4500+ ac_header_preproc=yes
4501 ;;
4502- no:yes )
4503+ no:yes:* )
4504 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
4505 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
4506- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
4507-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
4508+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
4509+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
4510+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
4511+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
4512+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
4513+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
4514 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
4515 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
4516+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
4517+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
4518 (
4519 cat <<\_ASBOX
4520-## ------------------------------------ ##
4521-## Report this to bug-autoconf@gnu.org. ##
4522-## ------------------------------------ ##
4523+## -------------------------------- ##
4524+## Report this to bug-patch@gnu.org ##
4525+## -------------------------------- ##
4526 _ASBOX
4527 ) |
4528 sed "s/^/$as_me: WARNING: /" >&2
4529@@ -5330,7 +5616,7 @@
4530 if eval "test \"\${$as_ac_Header+set}\" = set"; then
4531 echo $ECHO_N "(cached) $ECHO_C" >&6
4532 else
4533- eval "$as_ac_Header=$ac_header_preproc"
4534+ eval "$as_ac_Header=\$ac_header_preproc"
4535 fi
4536 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
4537 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
4538@@ -5364,7 +5650,6 @@
4539 echo "$as_me:$LINENO: checking $ac_header usability" >&5
4540 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
4541 cat >conftest.$ac_ext <<_ACEOF
4542-#line $LINENO "configure"
4543 /* confdefs.h. */
4544 _ACEOF
4545 cat confdefs.h >>conftest.$ac_ext
4546@@ -5375,11 +5660,20 @@
4547 _ACEOF
4548 rm -f conftest.$ac_objext
4549 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4550- (eval $ac_compile) 2>&5
4551+ (eval $ac_compile) 2>conftest.er1
4552 ac_status=$?
4553+ grep -v '^ *+' conftest.er1 >conftest.err
4554+ rm -f conftest.er1
4555+ cat conftest.err >&5
4556 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4557 (exit $ac_status); } &&
4558- { ac_try='test -s conftest.$ac_objext'
4559+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4560+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4561+ (eval $ac_try) 2>&5
4562+ ac_status=$?
4563+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
4564+ (exit $ac_status); }; } &&
4565+ { ac_try='test -s conftest.$ac_objext'
4566 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4567 (eval $ac_try) 2>&5
4568 ac_status=$?
4569@@ -5392,7 +5686,7 @@
4570
4571 ac_header_compiler=no
4572 fi
4573-rm -f conftest.$ac_objext conftest.$ac_ext
4574+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
4575 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
4576 echo "${ECHO_T}$ac_header_compiler" >&6
4577
4578@@ -5400,7 +5694,6 @@
4579 echo "$as_me:$LINENO: checking $ac_header presence" >&5
4580 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
4581 cat >conftest.$ac_ext <<_ACEOF
4582-#line $LINENO "configure"
4583 /* confdefs.h. */
4584 _ACEOF
4585 cat confdefs.h >>conftest.$ac_ext
4586@@ -5418,6 +5711,7 @@
4587 (exit $ac_status); } >/dev/null; then
4588 if test -s conftest.err; then
4589 ac_cpp_err=$ac_c_preproc_warn_flag
4590+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
4591 else
4592 ac_cpp_err=
4593 fi
4594@@ -5437,33 +5731,32 @@
4595 echo "${ECHO_T}$ac_header_preproc" >&6
4596
4597 # So? What about this header?
4598-case $ac_header_compiler:$ac_header_preproc in
4599- yes:no )
4600+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
4601+ yes:no: )
4602 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
4603 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
4604- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
4605-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
4606- (
4607- cat <<\_ASBOX
4608-## ------------------------------------ ##
4609-## Report this to bug-autoconf@gnu.org. ##
4610-## ------------------------------------ ##
4611-_ASBOX
4612- ) |
4613- sed "s/^/$as_me: WARNING: /" >&2
4614+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
4615+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
4616+ ac_header_preproc=yes
4617 ;;
4618- no:yes )
4619+ no:yes:* )
4620 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
4621 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
4622- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
4623-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
4624+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
4625+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
4626+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
4627+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
4628+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
4629+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
4630 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
4631 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
4632+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
4633+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
4634 (
4635 cat <<\_ASBOX
4636-## ------------------------------------ ##
4637-## Report this to bug-autoconf@gnu.org. ##
4638-## ------------------------------------ ##
4639+## -------------------------------- ##
4640+## Report this to bug-patch@gnu.org ##
4641+## -------------------------------- ##
4642 _ASBOX
4643 ) |
4644 sed "s/^/$as_me: WARNING: /" >&2
4645@@ -5474,7 +5767,7 @@
4646 if eval "test \"\${$as_ac_Header+set}\" = set"; then
4647 echo $ECHO_N "(cached) $ECHO_C" >&6
4648 else
4649- eval "$as_ac_Header=$ac_header_preproc"
4650+ eval "$as_ac_Header=\$ac_header_preproc"
4651 fi
4652 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
4653 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
4654@@ -5497,7 +5790,6 @@
4655 echo $ECHO_N "(cached) $ECHO_C" >&6
4656 else
4657 cat >conftest.$ac_ext <<_ACEOF
4658-#line $LINENO "configure"
4659 /* confdefs.h. */
4660 _ACEOF
4661 cat confdefs.h >>conftest.$ac_ext
4662@@ -5517,11 +5809,20 @@
4663 _ACEOF
4664 rm -f conftest.$ac_objext
4665 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4666- (eval $ac_compile) 2>&5
4667+ (eval $ac_compile) 2>conftest.er1
4668 ac_status=$?
4669+ grep -v '^ *+' conftest.er1 >conftest.err
4670+ rm -f conftest.er1
4671+ cat conftest.err >&5
4672 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4673 (exit $ac_status); } &&
4674- { ac_try='test -s conftest.$ac_objext'
4675+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4676+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4677+ (eval $ac_try) 2>&5
4678+ ac_status=$?
4679+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
4680+ (exit $ac_status); }; } &&
4681+ { ac_try='test -s conftest.$ac_objext'
4682 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4683 (eval $ac_try) 2>&5
4684 ac_status=$?
4685@@ -5534,7 +5835,7 @@
4686
4687 ac_cv_have_decl_getenv=no
4688 fi
4689-rm -f conftest.$ac_objext conftest.$ac_ext
4690+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
4691 fi
4692 echo "$as_me:$LINENO: result: $ac_cv_have_decl_getenv" >&5
4693 echo "${ECHO_T}$ac_cv_have_decl_getenv" >&6
4694@@ -5562,7 +5863,6 @@
4695 echo $ECHO_N "(cached) $ECHO_C" >&6
4696 else
4697 cat >conftest.$ac_ext <<_ACEOF
4698-#line $LINENO "configure"
4699 /* confdefs.h. */
4700 _ACEOF
4701 cat confdefs.h >>conftest.$ac_ext
4702@@ -5582,11 +5882,20 @@
4703 _ACEOF
4704 rm -f conftest.$ac_objext
4705 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4706- (eval $ac_compile) 2>&5
4707+ (eval $ac_compile) 2>conftest.er1
4708 ac_status=$?
4709+ grep -v '^ *+' conftest.er1 >conftest.err
4710+ rm -f conftest.er1
4711+ cat conftest.err >&5
4712 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4713 (exit $ac_status); } &&
4714- { ac_try='test -s conftest.$ac_objext'
4715+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4716+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4717+ (eval $ac_try) 2>&5
4718+ ac_status=$?
4719+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
4720+ (exit $ac_status); }; } &&
4721+ { ac_try='test -s conftest.$ac_objext'
4722 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4723 (eval $ac_try) 2>&5
4724 ac_status=$?
4725@@ -5599,7 +5908,7 @@
4726
4727 ac_cv_have_decl_malloc=no
4728 fi
4729-rm -f conftest.$ac_objext conftest.$ac_ext
4730+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
4731 fi
4732 echo "$as_me:$LINENO: result: $ac_cv_have_decl_malloc" >&5
4733 echo "${ECHO_T}$ac_cv_have_decl_malloc" >&6
4734@@ -5628,7 +5937,6 @@
4735 else
4736
4737 cat >conftest.$ac_ext <<_ACEOF
4738-#line $LINENO "configure"
4739 /* confdefs.h. */
4740 _ACEOF
4741 cat confdefs.h >>conftest.$ac_ext
4742@@ -5647,11 +5955,20 @@
4743 _ACEOF
4744 rm -f conftest.$ac_objext
4745 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4746- (eval $ac_compile) 2>&5
4747+ (eval $ac_compile) 2>conftest.er1
4748 ac_status=$?
4749+ grep -v '^ *+' conftest.er1 >conftest.err
4750+ rm -f conftest.er1
4751+ cat conftest.err >&5
4752 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4753 (exit $ac_status); } &&
4754- { ac_try='test -s conftest.$ac_objext'
4755+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4756+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4757+ (eval $ac_try) 2>&5
4758+ ac_status=$?
4759+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
4760+ (exit $ac_status); }; } &&
4761+ { ac_try='test -s conftest.$ac_objext'
4762 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4763 (eval $ac_try) 2>&5
4764 ac_status=$?
4765@@ -5664,7 +5981,7 @@
4766
4767 ac_cv_win_or_dos=no
4768 fi
4769-rm -f conftest.$ac_objext conftest.$ac_ext
4770+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
4771
4772 fi
4773 echo "$as_me:$LINENO: result: $ac_cv_win_or_dos" >&5
4774@@ -5714,7 +6031,6 @@
4775 echo "$as_me:$LINENO: checking $ac_header usability" >&5
4776 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
4777 cat >conftest.$ac_ext <<_ACEOF
4778-#line $LINENO "configure"
4779 /* confdefs.h. */
4780 _ACEOF
4781 cat confdefs.h >>conftest.$ac_ext
4782@@ -5725,11 +6041,20 @@
4783 _ACEOF
4784 rm -f conftest.$ac_objext
4785 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4786- (eval $ac_compile) 2>&5
4787+ (eval $ac_compile) 2>conftest.er1
4788 ac_status=$?
4789+ grep -v '^ *+' conftest.er1 >conftest.err
4790+ rm -f conftest.er1
4791+ cat conftest.err >&5
4792 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4793 (exit $ac_status); } &&
4794- { ac_try='test -s conftest.$ac_objext'
4795+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4796+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4797+ (eval $ac_try) 2>&5
4798+ ac_status=$?
4799+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
4800+ (exit $ac_status); }; } &&
4801+ { ac_try='test -s conftest.$ac_objext'
4802 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4803 (eval $ac_try) 2>&5
4804 ac_status=$?
4805@@ -5742,7 +6067,7 @@
4806
4807 ac_header_compiler=no
4808 fi
4809-rm -f conftest.$ac_objext conftest.$ac_ext
4810+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
4811 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
4812 echo "${ECHO_T}$ac_header_compiler" >&6
4813
4814@@ -5750,7 +6075,6 @@
4815 echo "$as_me:$LINENO: checking $ac_header presence" >&5
4816 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
4817 cat >conftest.$ac_ext <<_ACEOF
4818-#line $LINENO "configure"
4819 /* confdefs.h. */
4820 _ACEOF
4821 cat confdefs.h >>conftest.$ac_ext
4822@@ -5768,6 +6092,7 @@
4823 (exit $ac_status); } >/dev/null; then
4824 if test -s conftest.err; then
4825 ac_cpp_err=$ac_c_preproc_warn_flag
4826+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
4827 else
4828 ac_cpp_err=
4829 fi
4830@@ -5787,33 +6112,32 @@
4831 echo "${ECHO_T}$ac_header_preproc" >&6
4832
4833 # So? What about this header?
4834-case $ac_header_compiler:$ac_header_preproc in
4835- yes:no )
4836+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
4837+ yes:no: )
4838 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
4839 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
4840- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
4841-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
4842- (
4843- cat <<\_ASBOX
4844-## ------------------------------------ ##
4845-## Report this to bug-autoconf@gnu.org. ##
4846-## ------------------------------------ ##
4847-_ASBOX
4848- ) |
4849- sed "s/^/$as_me: WARNING: /" >&2
4850+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
4851+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
4852+ ac_header_preproc=yes
4853 ;;
4854- no:yes )
4855+ no:yes:* )
4856 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
4857 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
4858- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
4859-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
4860+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
4861+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
4862+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
4863+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
4864+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
4865+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
4866 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
4867 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
4868+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
4869+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
4870 (
4871 cat <<\_ASBOX
4872-## ------------------------------------ ##
4873-## Report this to bug-autoconf@gnu.org. ##
4874-## ------------------------------------ ##
4875+## -------------------------------- ##
4876+## Report this to bug-patch@gnu.org ##
4877+## -------------------------------- ##
4878 _ASBOX
4879 ) |
4880 sed "s/^/$as_me: WARNING: /" >&2
4881@@ -5824,7 +6148,7 @@
4882 if eval "test \"\${$as_ac_Header+set}\" = set"; then
4883 echo $ECHO_N "(cached) $ECHO_C" >&6
4884 else
4885- eval "$as_ac_Header=$ac_header_preproc"
4886+ eval "$as_ac_Header=\$ac_header_preproc"
4887 fi
4888 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
4889 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
4890@@ -5872,7 +6196,6 @@
4891 echo $ECHO_N "(cached) $ECHO_C" >&6
4892 else
4893 cat >conftest.$ac_ext <<_ACEOF
4894-#line $LINENO "configure"
4895 /* confdefs.h. */
4896 _ACEOF
4897 cat confdefs.h >>conftest.$ac_ext
4898@@ -5905,11 +6228,20 @@
4899 _ACEOF
4900 rm -f conftest.$ac_objext conftest$ac_exeext
4901 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4902- (eval $ac_link) 2>&5
4903+ (eval $ac_link) 2>conftest.er1
4904 ac_status=$?
4905+ grep -v '^ *+' conftest.er1 >conftest.err
4906+ rm -f conftest.er1
4907+ cat conftest.err >&5
4908 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4909 (exit $ac_status); } &&
4910- { ac_try='test -s conftest$ac_exeext'
4911+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4912+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4913+ (eval $ac_try) 2>&5
4914+ ac_status=$?
4915+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
4916+ (exit $ac_status); }; } &&
4917+ { ac_try='test -s conftest$ac_exeext'
4918 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4919 (eval $ac_try) 2>&5
4920 ac_status=$?
4921@@ -5922,7 +6254,8 @@
4922
4923 jm_cv_struct_dirent_d_ino=no
4924 fi
4925-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4926+rm -f conftest.err conftest.$ac_objext \
4927+ conftest$ac_exeext conftest.$ac_ext
4928
4929
4930 fi
4931@@ -6011,21 +6344,28 @@
4932 echo $ECHO_N "(cached) $ECHO_C" >&6
4933 else
4934 cat >conftest.$ac_ext <<_ACEOF
4935-#line $LINENO "configure"
4936 /* confdefs.h. */
4937 _ACEOF
4938 cat confdefs.h >>conftest.$ac_ext
4939 cat >>conftest.$ac_ext <<_ACEOF
4940 /* end confdefs.h. */
4941+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
4942+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
4943+#define $ac_func innocuous_$ac_func
4944+
4945 /* System header to define __stub macros and hopefully few prototypes,
4946 which can conflict with char $ac_func (); below.
4947 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
4948 <limits.h> exists even on freestanding compilers. */
4949+
4950 #ifdef __STDC__
4951 # include <limits.h>
4952 #else
4953 # include <assert.h>
4954 #endif
4955+
4956+#undef $ac_func
4957+
4958 /* Override any gcc2 internal prototype to avoid an error. */
4959 #ifdef __cplusplus
4960 extern "C"
4961@@ -6056,11 +6396,20 @@
4962 _ACEOF
4963 rm -f conftest.$ac_objext conftest$ac_exeext
4964 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4965- (eval $ac_link) 2>&5
4966+ (eval $ac_link) 2>conftest.er1
4967 ac_status=$?
4968+ grep -v '^ *+' conftest.er1 >conftest.err
4969+ rm -f conftest.er1
4970+ cat conftest.err >&5
4971 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4972 (exit $ac_status); } &&
4973- { ac_try='test -s conftest$ac_exeext'
4974+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4975+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4976+ (eval $ac_try) 2>&5
4977+ ac_status=$?
4978+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
4979+ (exit $ac_status); }; } &&
4980+ { ac_try='test -s conftest$ac_exeext'
4981 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4982 (eval $ac_try) 2>&5
4983 ac_status=$?
4984@@ -6073,7 +6422,8 @@
4985
4986 eval "$as_ac_var=no"
4987 fi
4988-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
4989+rm -f conftest.err conftest.$ac_objext \
4990+ conftest$ac_exeext conftest.$ac_ext
4991 fi
4992 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
4993 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
4994@@ -6126,21 +6476,28 @@
4995 echo $ECHO_N "(cached) $ECHO_C" >&6
4996 else
4997 cat >conftest.$ac_ext <<_ACEOF
4998-#line $LINENO "configure"
4999 /* confdefs.h. */
5000 _ACEOF
5001 cat confdefs.h >>conftest.$ac_ext
5002 cat >>conftest.$ac_ext <<_ACEOF
5003 /* end confdefs.h. */
5004+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
5005+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
5006+#define $ac_func innocuous_$ac_func
5007+
5008 /* System header to define __stub macros and hopefully few prototypes,
5009 which can conflict with char $ac_func (); below.
5010 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
5011 <limits.h> exists even on freestanding compilers. */
5012+
5013 #ifdef __STDC__
5014 # include <limits.h>
5015 #else
5016 # include <assert.h>
5017 #endif
5018+
5019+#undef $ac_func
5020+
5021 /* Override any gcc2 internal prototype to avoid an error. */
5022 #ifdef __cplusplus
5023 extern "C"
5024@@ -6171,11 +6528,20 @@
5025 _ACEOF
5026 rm -f conftest.$ac_objext conftest$ac_exeext
5027 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5028- (eval $ac_link) 2>&5
5029+ (eval $ac_link) 2>conftest.er1
5030 ac_status=$?
5031+ grep -v '^ *+' conftest.er1 >conftest.err
5032+ rm -f conftest.er1
5033+ cat conftest.err >&5
5034 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5035 (exit $ac_status); } &&
5036- { ac_try='test -s conftest$ac_exeext'
5037+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5038+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5039+ (eval $ac_try) 2>&5
5040+ ac_status=$?
5041+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
5042+ (exit $ac_status); }; } &&
5043+ { ac_try='test -s conftest$ac_exeext'
5044 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5045 (eval $ac_try) 2>&5
5046 ac_status=$?
5047@@ -6188,7 +6554,8 @@
5048
5049 eval "$as_ac_var=no"
5050 fi
5051-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5052+rm -f conftest.err conftest.$ac_objext \
5053+ conftest$ac_exeext conftest.$ac_ext
5054 fi
5055 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
5056 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
5057@@ -6203,21 +6570,28 @@
5058 echo $ECHO_N "(cached) $ECHO_C" >&6
5059 else
5060 cat >conftest.$ac_ext <<_ACEOF
5061-#line $LINENO "configure"
5062 /* confdefs.h. */
5063 _ACEOF
5064 cat confdefs.h >>conftest.$ac_ext
5065 cat >>conftest.$ac_ext <<_ACEOF
5066 /* end confdefs.h. */
5067+/* Define _doprnt to an innocuous variant, in case <limits.h> declares _doprnt.
5068+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
5069+#define _doprnt innocuous__doprnt
5070+
5071 /* System header to define __stub macros and hopefully few prototypes,
5072 which can conflict with char _doprnt (); below.
5073 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
5074 <limits.h> exists even on freestanding compilers. */
5075+
5076 #ifdef __STDC__
5077 # include <limits.h>
5078 #else
5079 # include <assert.h>
5080 #endif
5081+
5082+#undef _doprnt
5083+
5084 /* Override any gcc2 internal prototype to avoid an error. */
5085 #ifdef __cplusplus
5086 extern "C"
5087@@ -6248,11 +6622,20 @@
5088 _ACEOF
5089 rm -f conftest.$ac_objext conftest$ac_exeext
5090 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5091- (eval $ac_link) 2>&5
5092+ (eval $ac_link) 2>conftest.er1
5093 ac_status=$?
5094+ grep -v '^ *+' conftest.er1 >conftest.err
5095+ rm -f conftest.er1
5096+ cat conftest.err >&5
5097 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5098 (exit $ac_status); } &&
5099- { ac_try='test -s conftest$ac_exeext'
5100+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5101+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5102+ (eval $ac_try) 2>&5
5103+ ac_status=$?
5104+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
5105+ (exit $ac_status); }; } &&
5106+ { ac_try='test -s conftest$ac_exeext'
5107 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5108 (eval $ac_try) 2>&5
5109 ac_status=$?
5110@@ -6265,7 +6648,8 @@
5111
5112 ac_cv_func__doprnt=no
5113 fi
5114-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5115+rm -f conftest.err conftest.$ac_objext \
5116+ conftest$ac_exeext conftest.$ac_ext
5117 fi
5118 echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5
5119 echo "${ECHO_T}$ac_cv_func__doprnt" >&6
5120@@ -6288,13 +6672,12 @@
5121 echo $ECHO_N "(cached) $ECHO_C" >&6
5122 else
5123 cat >conftest.$ac_ext <<_ACEOF
5124-#line $LINENO "configure"
5125 /* confdefs.h. */
5126 _ACEOF
5127 cat confdefs.h >>conftest.$ac_ext
5128 cat >>conftest.$ac_ext <<_ACEOF
5129 /* end confdefs.h. */
5130-
5131+$ac_includes_default
5132 int
5133 main ()
5134 {
5135@@ -6305,11 +6688,20 @@
5136 _ACEOF
5137 rm -f conftest.$ac_objext conftest$ac_exeext
5138 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5139- (eval $ac_link) 2>&5
5140+ (eval $ac_link) 2>conftest.er1
5141 ac_status=$?
5142+ grep -v '^ *+' conftest.er1 >conftest.err
5143+ rm -f conftest.er1
5144+ cat conftest.err >&5
5145 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5146 (exit $ac_status); } &&
5147- { ac_try='test -s conftest$ac_exeext'
5148+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5149+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5150+ (eval $ac_try) 2>&5
5151+ ac_status=$?
5152+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
5153+ (exit $ac_status); }; } &&
5154+ { ac_try='test -s conftest$ac_exeext'
5155 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5156 (eval $ac_try) 2>&5
5157 ac_status=$?
5158@@ -6322,12 +6714,20 @@
5159
5160 ac_cv_lib_error_at_line=no
5161 fi
5162-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5163+rm -f conftest.err conftest.$ac_objext \
5164+ conftest$ac_exeext conftest.$ac_ext
5165 fi
5166 echo "$as_me:$LINENO: result: $ac_cv_lib_error_at_line" >&5
5167 echo "${ECHO_T}$ac_cv_lib_error_at_line" >&6
5168 if test $ac_cv_lib_error_at_line = no; then
5169- LIBOBJS="$LIBOBJS error.$ac_objext"
5170+ case $LIBOBJS in
5171+ "error.$ac_objext" | \
5172+ *" error.$ac_objext" | \
5173+ "error.$ac_objext "* | \
5174+ *" error.$ac_objext "* ) ;;
5175+ *) LIBOBJS="$LIBOBJS error.$ac_objext" ;;
5176+esac
5177+
5178 fi
5179
5180
5181@@ -6343,21 +6743,28 @@
5182 echo $ECHO_N "(cached) $ECHO_C" >&6
5183 else
5184 cat >conftest.$ac_ext <<_ACEOF
5185-#line $LINENO "configure"
5186 /* confdefs.h. */
5187 _ACEOF
5188 cat confdefs.h >>conftest.$ac_ext
5189 cat >>conftest.$ac_ext <<_ACEOF
5190 /* end confdefs.h. */
5191+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
5192+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
5193+#define $ac_func innocuous_$ac_func
5194+
5195 /* System header to define __stub macros and hopefully few prototypes,
5196 which can conflict with char $ac_func (); below.
5197 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
5198 <limits.h> exists even on freestanding compilers. */
5199+
5200 #ifdef __STDC__
5201 # include <limits.h>
5202 #else
5203 # include <assert.h>
5204 #endif
5205+
5206+#undef $ac_func
5207+
5208 /* Override any gcc2 internal prototype to avoid an error. */
5209 #ifdef __cplusplus
5210 extern "C"
5211@@ -6388,11 +6795,20 @@
5212 _ACEOF
5213 rm -f conftest.$ac_objext conftest$ac_exeext
5214 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5215- (eval $ac_link) 2>&5
5216+ (eval $ac_link) 2>conftest.er1
5217 ac_status=$?
5218- echo "$as_me:$LINENO: \$? = $ac_status" >&5
5219+ grep -v '^ *+' conftest.er1 >conftest.err
5220+ rm -f conftest.er1
5221+ cat conftest.err >&5
5222+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
5223 (exit $ac_status); } &&
5224- { ac_try='test -s conftest$ac_exeext'
5225+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5226+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5227+ (eval $ac_try) 2>&5
5228+ ac_status=$?
5229+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
5230+ (exit $ac_status); }; } &&
5231+ { ac_try='test -s conftest$ac_exeext'
5232 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5233 (eval $ac_try) 2>&5
5234 ac_status=$?
5235@@ -6405,7 +6821,8 @@
5236
5237 eval "$as_ac_var=no"
5238 fi
5239-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5240+rm -f conftest.err conftest.$ac_objext \
5241+ conftest$ac_exeext conftest.$ac_ext
5242 fi
5243 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
5244 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
5245@@ -6423,7 +6840,6 @@
5246 echo $ECHO_N "(cached) $ECHO_C" >&6
5247 else
5248 cat >conftest.$ac_ext <<_ACEOF
5249-#line $LINENO "configure"
5250 /* confdefs.h. */
5251 _ACEOF
5252 cat confdefs.h >>conftest.$ac_ext
5253@@ -6443,11 +6859,20 @@
5254 _ACEOF
5255 rm -f conftest.$ac_objext
5256 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5257- (eval $ac_compile) 2>&5
5258+ (eval $ac_compile) 2>conftest.er1
5259 ac_status=$?
5260+ grep -v '^ *+' conftest.er1 >conftest.err
5261+ rm -f conftest.er1
5262+ cat conftest.err >&5
5263 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5264 (exit $ac_status); } &&
5265- { ac_try='test -s conftest.$ac_objext'
5266+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5267+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5268+ (eval $ac_try) 2>&5
5269+ ac_status=$?
5270+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
5271+ (exit $ac_status); }; } &&
5272+ { ac_try='test -s conftest.$ac_objext'
5273 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5274 (eval $ac_try) 2>&5
5275 ac_status=$?
5276@@ -6460,7 +6885,7 @@
5277
5278 ac_cv_have_decl_strerror=no
5279 fi
5280-rm -f conftest.$ac_objext conftest.$ac_ext
5281+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
5282 fi
5283 echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror" >&5
5284 echo "${ECHO_T}$ac_cv_have_decl_strerror" >&6
5285@@ -6486,7 +6911,6 @@
5286 echo $ECHO_N "(cached) $ECHO_C" >&6
5287 else
5288 cat >conftest.$ac_ext <<_ACEOF
5289-#line $LINENO "configure"
5290 /* confdefs.h. */
5291 _ACEOF
5292 cat confdefs.h >>conftest.$ac_ext
5293@@ -6506,11 +6930,20 @@
5294 _ACEOF
5295 rm -f conftest.$ac_objext
5296 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5297- (eval $ac_compile) 2>&5
5298+ (eval $ac_compile) 2>conftest.er1
5299 ac_status=$?
5300+ grep -v '^ *+' conftest.er1 >conftest.err
5301+ rm -f conftest.er1
5302+ cat conftest.err >&5
5303 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5304 (exit $ac_status); } &&
5305- { ac_try='test -s conftest.$ac_objext'
5306+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5307+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5308+ (eval $ac_try) 2>&5
5309+ ac_status=$?
5310+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
5311+ (exit $ac_status); }; } &&
5312+ { ac_try='test -s conftest.$ac_objext'
5313 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5314 (eval $ac_try) 2>&5
5315 ac_status=$?
5316@@ -6523,7 +6956,7 @@
5317
5318 ac_cv_have_decl_strerror_r=no
5319 fi
5320-rm -f conftest.$ac_objext conftest.$ac_ext
5321+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
5322 fi
5323 echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror_r" >&5
5324 echo "${ECHO_T}$ac_cv_have_decl_strerror_r" >&6
5325@@ -6553,21 +6986,28 @@
5326 echo $ECHO_N "(cached) $ECHO_C" >&6
5327 else
5328 cat >conftest.$ac_ext <<_ACEOF
5329-#line $LINENO "configure"
5330 /* confdefs.h. */
5331 _ACEOF
5332 cat confdefs.h >>conftest.$ac_ext
5333 cat >>conftest.$ac_ext <<_ACEOF
5334 /* end confdefs.h. */
5335+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
5336+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
5337+#define $ac_func innocuous_$ac_func
5338+
5339 /* System header to define __stub macros and hopefully few prototypes,
5340 which can conflict with char $ac_func (); below.
5341 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
5342 <limits.h> exists even on freestanding compilers. */
5343+
5344 #ifdef __STDC__
5345 # include <limits.h>
5346 #else
5347 # include <assert.h>
5348 #endif
5349+
5350+#undef $ac_func
5351+
5352 /* Override any gcc2 internal prototype to avoid an error. */
5353 #ifdef __cplusplus
5354 extern "C"
5355@@ -6598,11 +7038,20 @@
5356 _ACEOF
5357 rm -f conftest.$ac_objext conftest$ac_exeext
5358 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5359- (eval $ac_link) 2>&5
5360+ (eval $ac_link) 2>conftest.er1
5361 ac_status=$?
5362+ grep -v '^ *+' conftest.er1 >conftest.err
5363+ rm -f conftest.er1
5364+ cat conftest.err >&5
5365 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5366 (exit $ac_status); } &&
5367- { ac_try='test -s conftest$ac_exeext'
5368+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5369+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5370+ (eval $ac_try) 2>&5
5371+ ac_status=$?
5372+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
5373+ (exit $ac_status); }; } &&
5374+ { ac_try='test -s conftest$ac_exeext'
5375 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5376 (eval $ac_try) 2>&5
5377 ac_status=$?
5378@@ -6615,7 +7064,8 @@
5379
5380 eval "$as_ac_var=no"
5381 fi
5382-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5383+rm -f conftest.err conftest.$ac_objext \
5384+ conftest$ac_exeext conftest.$ac_ext
5385 fi
5386 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
5387 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
5388@@ -6636,7 +7086,6 @@
5389 ac_cv_func_strerror_r_char_p=no
5390 if test $ac_cv_have_decl_strerror_r = yes; then
5391 cat >conftest.$ac_ext <<_ACEOF
5392-#line $LINENO "configure"
5393 /* confdefs.h. */
5394 _ACEOF
5395 cat confdefs.h >>conftest.$ac_ext
5396@@ -6657,11 +7106,20 @@
5397 _ACEOF
5398 rm -f conftest.$ac_objext
5399 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5400- (eval $ac_compile) 2>&5
5401+ (eval $ac_compile) 2>conftest.er1
5402 ac_status=$?
5403+ grep -v '^ *+' conftest.er1 >conftest.err
5404+ rm -f conftest.er1
5405+ cat conftest.err >&5
5406 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5407 (exit $ac_status); } &&
5408- { ac_try='test -s conftest.$ac_objext'
5409+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5410+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5411+ (eval $ac_try) 2>&5
5412+ ac_status=$?
5413+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
5414+ (exit $ac_status); }; } &&
5415+ { ac_try='test -s conftest.$ac_objext'
5416 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5417 (eval $ac_try) 2>&5
5418 ac_status=$?
5419@@ -6673,7 +7131,7 @@
5420 sed 's/^/| /' conftest.$ac_ext >&5
5421
5422 fi
5423-rm -f conftest.$ac_objext conftest.$ac_ext
5424+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
5425 else
5426 # strerror_r is not declared. Choose between
5427 # systems that have relatively inaccessible declarations for the
5428@@ -6685,7 +7143,6 @@
5429 :
5430 else
5431 cat >conftest.$ac_ext <<_ACEOF
5432-#line $LINENO "configure"
5433 /* confdefs.h. */
5434 _ACEOF
5435 cat confdefs.h >>conftest.$ac_ext
5436@@ -6721,7 +7178,7 @@
5437 sed 's/^/| /' conftest.$ac_ext >&5
5438
5439 fi
5440-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
5441+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
5442 fi
5443 fi
5444
5445@@ -6749,21 +7206,28 @@
5446 echo $ECHO_N "(cached) $ECHO_C" >&6
5447 else
5448 cat >conftest.$ac_ext <<_ACEOF
5449-#line $LINENO "configure"
5450 /* confdefs.h. */
5451 _ACEOF
5452 cat confdefs.h >>conftest.$ac_ext
5453 cat >>conftest.$ac_ext <<_ACEOF
5454 /* end confdefs.h. */
5455+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
5456+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
5457+#define $ac_func innocuous_$ac_func
5458+
5459 /* System header to define __stub macros and hopefully few prototypes,
5460 which can conflict with char $ac_func (); below.
5461 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
5462 <limits.h> exists even on freestanding compilers. */
5463+
5464 #ifdef __STDC__
5465 # include <limits.h>
5466 #else
5467 # include <assert.h>
5468 #endif
5469+
5470+#undef $ac_func
5471+
5472 /* Override any gcc2 internal prototype to avoid an error. */
5473 #ifdef __cplusplus
5474 extern "C"
5475@@ -6794,11 +7258,20 @@
5476 _ACEOF
5477 rm -f conftest.$ac_objext conftest$ac_exeext
5478 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5479- (eval $ac_link) 2>&5
5480+ (eval $ac_link) 2>conftest.er1
5481 ac_status=$?
5482+ grep -v '^ *+' conftest.er1 >conftest.err
5483+ rm -f conftest.er1
5484+ cat conftest.err >&5
5485 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5486 (exit $ac_status); } &&
5487- { ac_try='test -s conftest$ac_exeext'
5488+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5489+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5490+ (eval $ac_try) 2>&5
5491+ ac_status=$?
5492+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
5493+ (exit $ac_status); }; } &&
5494+ { ac_try='test -s conftest$ac_exeext'
5495 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5496 (eval $ac_try) 2>&5
5497 ac_status=$?
5498@@ -6811,7 +7284,8 @@
5499
5500 eval "$as_ac_var=no"
5501 fi
5502-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5503+rm -f conftest.err conftest.$ac_objext \
5504+ conftest$ac_exeext conftest.$ac_ext
5505 fi
5506 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
5507 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
5508@@ -6821,7 +7295,14 @@
5509 _ACEOF
5510
5511 else
5512- LIBOBJS="$LIBOBJS $ac_func.$ac_objext"
5513+ case $LIBOBJS in
5514+ "$ac_func.$ac_objext" | \
5515+ *" $ac_func.$ac_objext" | \
5516+ "$ac_func.$ac_objext "* | \
5517+ *" $ac_func.$ac_objext "* ) ;;
5518+ *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;;
5519+esac
5520+
5521 fi
5522 done
5523
5524@@ -6855,7 +7336,6 @@
5525 echo "$as_me:$LINENO: checking $ac_header usability" >&5
5526 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
5527 cat >conftest.$ac_ext <<_ACEOF
5528-#line $LINENO "configure"
5529 /* confdefs.h. */
5530 _ACEOF
5531 cat confdefs.h >>conftest.$ac_ext
5532@@ -6866,11 +7346,20 @@
5533 _ACEOF
5534 rm -f conftest.$ac_objext
5535 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5536- (eval $ac_compile) 2>&5
5537+ (eval $ac_compile) 2>conftest.er1
5538 ac_status=$?
5539+ grep -v '^ *+' conftest.er1 >conftest.err
5540+ rm -f conftest.er1
5541+ cat conftest.err >&5
5542 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5543 (exit $ac_status); } &&
5544- { ac_try='test -s conftest.$ac_objext'
5545+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5546+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5547+ (eval $ac_try) 2>&5
5548+ ac_status=$?
5549+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
5550+ (exit $ac_status); }; } &&
5551+ { ac_try='test -s conftest.$ac_objext'
5552 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5553 (eval $ac_try) 2>&5
5554 ac_status=$?
5555@@ -6883,7 +7372,7 @@
5556
5557 ac_header_compiler=no
5558 fi
5559-rm -f conftest.$ac_objext conftest.$ac_ext
5560+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
5561 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
5562 echo "${ECHO_T}$ac_header_compiler" >&6
5563
5564@@ -6891,7 +7380,6 @@
5565 echo "$as_me:$LINENO: checking $ac_header presence" >&5
5566 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
5567 cat >conftest.$ac_ext <<_ACEOF
5568-#line $LINENO "configure"
5569 /* confdefs.h. */
5570 _ACEOF
5571 cat confdefs.h >>conftest.$ac_ext
5572@@ -6909,6 +7397,7 @@
5573 (exit $ac_status); } >/dev/null; then
5574 if test -s conftest.err; then
5575 ac_cpp_err=$ac_c_preproc_warn_flag
5576+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
5577 else
5578 ac_cpp_err=
5579 fi
5580@@ -6928,33 +7417,32 @@
5581 echo "${ECHO_T}$ac_header_preproc" >&6
5582
5583 # So? What about this header?
5584-case $ac_header_compiler:$ac_header_preproc in
5585- yes:no )
5586+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
5587+ yes:no: )
5588 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
5589 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
5590- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
5591-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
5592- (
5593- cat <<\_ASBOX
5594-## ------------------------------------ ##
5595-## Report this to bug-autoconf@gnu.org. ##
5596-## ------------------------------------ ##
5597-_ASBOX
5598- ) |
5599- sed "s/^/$as_me: WARNING: /" >&2
5600+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
5601+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
5602+ ac_header_preproc=yes
5603 ;;
5604- no:yes )
5605+ no:yes:* )
5606 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
5607 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
5608- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
5609-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
5610+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
5611+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
5612+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
5613+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
5614+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
5615+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
5616 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
5617 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
5618+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
5619+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
5620 (
5621 cat <<\_ASBOX
5622-## ------------------------------------ ##
5623-## Report this to bug-autoconf@gnu.org. ##
5624-## ------------------------------------ ##
5625+## -------------------------------- ##
5626+## Report this to bug-patch@gnu.org ##
5627+## -------------------------------- ##
5628 _ASBOX
5629 ) |
5630 sed "s/^/$as_me: WARNING: /" >&2
5631@@ -6965,7 +7453,7 @@
5632 if eval "test \"\${$as_ac_Header+set}\" = set"; then
5633 echo $ECHO_N "(cached) $ECHO_C" >&6
5634 else
5635- eval "$as_ac_Header=$ac_header_preproc"
5636+ eval "$as_ac_Header=\$ac_header_preproc"
5637 fi
5638 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
5639 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
5640@@ -6989,7 +7477,6 @@
5641 echo $ECHO_N "(cached) $ECHO_C" >&6
5642 else
5643 cat >conftest.$ac_ext <<_ACEOF
5644-#line $LINENO "configure"
5645 /* confdefs.h. */
5646 _ACEOF
5647 cat confdefs.h >>conftest.$ac_ext
5648@@ -7053,21 +7540,28 @@
5649 echo $ECHO_N "(cached) $ECHO_C" >&6
5650 else
5651 cat >conftest.$ac_ext <<_ACEOF
5652-#line $LINENO "configure"
5653 /* confdefs.h. */
5654 _ACEOF
5655 cat confdefs.h >>conftest.$ac_ext
5656 cat >>conftest.$ac_ext <<_ACEOF
5657 /* end confdefs.h. */
5658+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
5659+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
5660+#define $ac_func innocuous_$ac_func
5661+
5662 /* System header to define __stub macros and hopefully few prototypes,
5663 which can conflict with char $ac_func (); below.
5664 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
5665 <limits.h> exists even on freestanding compilers. */
5666+
5667 #ifdef __STDC__
5668 # include <limits.h>
5669 #else
5670 # include <assert.h>
5671 #endif
5672+
5673+#undef $ac_func
5674+
5675 /* Override any gcc2 internal prototype to avoid an error. */
5676 #ifdef __cplusplus
5677 extern "C"
5678@@ -7098,11 +7592,20 @@
5679 _ACEOF
5680 rm -f conftest.$ac_objext conftest$ac_exeext
5681 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5682- (eval $ac_link) 2>&5
5683+ (eval $ac_link) 2>conftest.er1
5684 ac_status=$?
5685+ grep -v '^ *+' conftest.er1 >conftest.err
5686+ rm -f conftest.er1
5687+ cat conftest.err >&5
5688 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5689 (exit $ac_status); } &&
5690- { ac_try='test -s conftest$ac_exeext'
5691+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5692+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5693+ (eval $ac_try) 2>&5
5694+ ac_status=$?
5695+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
5696+ (exit $ac_status); }; } &&
5697+ { ac_try='test -s conftest$ac_exeext'
5698 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5699 (eval $ac_try) 2>&5
5700 ac_status=$?
5701@@ -7115,7 +7618,8 @@
5702
5703 eval "$as_ac_var=no"
5704 fi
5705-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
5706+rm -f conftest.err conftest.$ac_objext \
5707+ conftest$ac_exeext conftest.$ac_ext
5708 fi
5709 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
5710 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
5711@@ -7125,7 +7629,14 @@
5712 _ACEOF
5713
5714 else
5715- LIBOBJS="$LIBOBJS $ac_func.$ac_objext"
5716+ case $LIBOBJS in
5717+ "$ac_func.$ac_objext" | \
5718+ *" $ac_func.$ac_objext" | \
5719+ "$ac_func.$ac_objext "* | \
5720+ *" $ac_func.$ac_objext "* ) ;;
5721+ *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;;
5722+esac
5723+
5724 fi
5725 done
5726
5727@@ -7163,7 +7674,6 @@
5728 echo "$as_me:$LINENO: checking $ac_header usability" >&5
5729 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
5730 cat >conftest.$ac_ext <<_ACEOF
5731-#line $LINENO "configure"
5732 /* confdefs.h. */
5733 _ACEOF
5734 cat confdefs.h >>conftest.$ac_ext
5735@@ -7174,11 +7684,20 @@
5736 _ACEOF
5737 rm -f conftest.$ac_objext
5738 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5739- (eval $ac_compile) 2>&5
5740+ (eval $ac_compile) 2>conftest.er1
5741 ac_status=$?
5742+ grep -v '^ *+' conftest.er1 >conftest.err
5743+ rm -f conftest.er1
5744+ cat conftest.err >&5
5745 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5746 (exit $ac_status); } &&
5747- { ac_try='test -s conftest.$ac_objext'
5748+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5749+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5750+ (eval $ac_try) 2>&5
5751+ ac_status=$?
5752+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
5753+ (exit $ac_status); }; } &&
5754+ { ac_try='test -s conftest.$ac_objext'
5755 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5756 (eval $ac_try) 2>&5
5757 ac_status=$?
5758@@ -7191,7 +7710,7 @@
5759
5760 ac_header_compiler=no
5761 fi
5762-rm -f conftest.$ac_objext conftest.$ac_ext
5763+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
5764 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
5765 echo "${ECHO_T}$ac_header_compiler" >&6
5766
5767@@ -7199,7 +7718,6 @@
5768 echo "$as_me:$LINENO: checking $ac_header presence" >&5
5769 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
5770 cat >conftest.$ac_ext <<_ACEOF
5771-#line $LINENO "configure"
5772 /* confdefs.h. */
5773 _ACEOF
5774 cat confdefs.h >>conftest.$ac_ext
5775@@ -7217,6 +7735,7 @@
5776 (exit $ac_status); } >/dev/null; then
5777 if test -s conftest.err; then
5778 ac_cpp_err=$ac_c_preproc_warn_flag
5779+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
5780 else
5781 ac_cpp_err=
5782 fi
5783@@ -7236,33 +7755,32 @@
5784 echo "${ECHO_T}$ac_header_preproc" >&6
5785
5786 # So? What about this header?
5787-case $ac_header_compiler:$ac_header_preproc in
5788- yes:no )
5789+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
5790+ yes:no: )
5791 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
5792 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
5793- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
5794-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
5795- (
5796- cat <<\_ASBOX
5797-## ------------------------------------ ##
5798-## Report this to bug-autoconf@gnu.org. ##
5799-## ------------------------------------ ##
5800-_ASBOX
5801- ) |
5802- sed "s/^/$as_me: WARNING: /" >&2
5803+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
5804+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
5805+ ac_header_preproc=yes
5806 ;;
5807- no:yes )
5808+ no:yes:* )
5809 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
5810 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
5811- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
5812-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
5813+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
5814+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
5815+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
5816+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
5817+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
5818+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
5819 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
5820 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
5821+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
5822+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
5823 (
5824 cat <<\_ASBOX
5825-## ------------------------------------ ##
5826-## Report this to bug-autoconf@gnu.org. ##
5827-## ------------------------------------ ##
5828+## -------------------------------- ##
5829+## Report this to bug-patch@gnu.org ##
5830+## -------------------------------- ##
5831 _ASBOX
5832 ) |
5833 sed "s/^/$as_me: WARNING: /" >&2
5834@@ -7273,7 +7791,7 @@
5835 if eval "test \"\${$as_ac_Header+set}\" = set"; then
5836 echo $ECHO_N "(cached) $ECHO_C" >&6
5837 else
5838- eval "$as_ac_Header=$ac_header_preproc"
5839+ eval "$as_ac_Header=\$ac_header_preproc"
5840 fi
5841 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
5842 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
5843@@ -7297,7 +7815,6 @@
5844 ac_cv_func_malloc_0_nonnull=no
5845 else
5846 cat >conftest.$ac_ext <<_ACEOF
5847-#line $LINENO "configure"
5848 /* confdefs.h. */
5849 _ACEOF
5850 cat confdefs.h >>conftest.$ac_ext
5851@@ -7337,7 +7854,7 @@
5852 ( exit $ac_status )
5853 ac_cv_func_malloc_0_nonnull=no
5854 fi
5855-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
5856+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
5857 fi
5858 fi
5859 echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5
5860@@ -7353,7 +7870,14 @@
5861 #define HAVE_MALLOC 0
5862 _ACEOF
5863
5864- LIBOBJS="$LIBOBJS malloc.$ac_objext"
5865+ case $LIBOBJS in
5866+ "malloc.$ac_objext" | \
5867+ *" malloc.$ac_objext" | \
5868+ "malloc.$ac_objext "* | \
5869+ *" malloc.$ac_objext "* ) ;;
5870+ *) LIBOBJS="$LIBOBJS malloc.$ac_objext" ;;
5871+esac
5872+
5873
5874 cat >>confdefs.h <<\_ACEOF
5875 #define malloc rpl_malloc
5876@@ -7388,7 +7912,6 @@
5877 echo "$as_me:$LINENO: checking $ac_header usability" >&5
5878 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
5879 cat >conftest.$ac_ext <<_ACEOF
5880-#line $LINENO "configure"
5881 /* confdefs.h. */
5882 _ACEOF
5883 cat confdefs.h >>conftest.$ac_ext
5884@@ -7399,11 +7922,20 @@
5885 _ACEOF
5886 rm -f conftest.$ac_objext
5887 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5888- (eval $ac_compile) 2>&5
5889+ (eval $ac_compile) 2>conftest.er1
5890 ac_status=$?
5891+ grep -v '^ *+' conftest.er1 >conftest.err
5892+ rm -f conftest.er1
5893+ cat conftest.err >&5
5894 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5895 (exit $ac_status); } &&
5896- { ac_try='test -s conftest.$ac_objext'
5897+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5898+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5899+ (eval $ac_try) 2>&5
5900+ ac_status=$?
5901+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
5902+ (exit $ac_status); }; } &&
5903+ { ac_try='test -s conftest.$ac_objext'
5904 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5905 (eval $ac_try) 2>&5
5906 ac_status=$?
5907@@ -7416,7 +7948,7 @@
5908
5909 ac_header_compiler=no
5910 fi
5911-rm -f conftest.$ac_objext conftest.$ac_ext
5912+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
5913 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
5914 echo "${ECHO_T}$ac_header_compiler" >&6
5915
5916@@ -7424,7 +7956,6 @@
5917 echo "$as_me:$LINENO: checking $ac_header presence" >&5
5918 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
5919 cat >conftest.$ac_ext <<_ACEOF
5920-#line $LINENO "configure"
5921 /* confdefs.h. */
5922 _ACEOF
5923 cat confdefs.h >>conftest.$ac_ext
5924@@ -7442,6 +7973,7 @@
5925 (exit $ac_status); } >/dev/null; then
5926 if test -s conftest.err; then
5927 ac_cpp_err=$ac_c_preproc_warn_flag
5928+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
5929 else
5930 ac_cpp_err=
5931 fi
5932@@ -7461,33 +7993,32 @@
5933 echo "${ECHO_T}$ac_header_preproc" >&6
5934
5935 # So? What about this header?
5936-case $ac_header_compiler:$ac_header_preproc in
5937- yes:no )
5938+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
5939+ yes:no: )
5940 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
5941 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
5942- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
5943-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
5944- (
5945- cat <<\_ASBOX
5946-## ------------------------------------ ##
5947-## Report this to bug-autoconf@gnu.org. ##
5948-## ------------------------------------ ##
5949-_ASBOX
5950- ) |
5951- sed "s/^/$as_me: WARNING: /" >&2
5952+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
5953+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
5954+ ac_header_preproc=yes
5955 ;;
5956- no:yes )
5957+ no:yes:* )
5958 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
5959 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
5960- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
5961-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
5962+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
5963+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
5964+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
5965+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
5966+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
5967+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
5968 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
5969 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
5970+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
5971+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
5972 (
5973 cat <<\_ASBOX
5974-## ------------------------------------ ##
5975-## Report this to bug-autoconf@gnu.org. ##
5976-## ------------------------------------ ##
5977+## -------------------------------- ##
5978+## Report this to bug-patch@gnu.org ##
5979+## -------------------------------- ##
5980 _ASBOX
5981 ) |
5982 sed "s/^/$as_me: WARNING: /" >&2
5983@@ -7498,7 +8029,7 @@
5984 if eval "test \"\${$as_ac_Header+set}\" = set"; then
5985 echo $ECHO_N "(cached) $ECHO_C" >&6
5986 else
5987- eval "$as_ac_Header=$ac_header_preproc"
5988+ eval "$as_ac_Header=\$ac_header_preproc"
5989 fi
5990 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
5991 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
5992@@ -7522,7 +8053,6 @@
5993 ac_cv_func_realloc_0_nonnull=no
5994 else
5995 cat >conftest.$ac_ext <<_ACEOF
5996-#line $LINENO "configure"
5997 /* confdefs.h. */
5998 _ACEOF
5999 cat confdefs.h >>conftest.$ac_ext
6000@@ -7562,7 +8092,7 @@
6001 ( exit $ac_status )
6002 ac_cv_func_realloc_0_nonnull=no
6003 fi
6004-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
6005+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
6006 fi
6007 fi
6008 echo "$as_me:$LINENO: result: $ac_cv_func_realloc_0_nonnull" >&5
6009@@ -7578,7 +8108,14 @@
6010 #define HAVE_REALLOC 0
6011 _ACEOF
6012
6013- LIBOBJS="$LIBOBJS realloc.$ac_objext"
6014+ case $LIBOBJS in
6015+ "realloc.$ac_objext" | \
6016+ *" realloc.$ac_objext" | \
6017+ "realloc.$ac_objext "* | \
6018+ *" realloc.$ac_objext "* ) ;;
6019+ *) LIBOBJS="$LIBOBJS realloc.$ac_objext" ;;
6020+esac
6021+
6022
6023 cat >>confdefs.h <<\_ACEOF
6024 #define realloc rpl_realloc
6025@@ -7619,7 +8156,6 @@
6026 echo "$as_me:$LINENO: checking $ac_header usability" >&5
6027 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
6028 cat >conftest.$ac_ext <<_ACEOF
6029-#line $LINENO "configure"
6030 /* confdefs.h. */
6031 _ACEOF
6032 cat confdefs.h >>conftest.$ac_ext
6033@@ -7630,11 +8166,20 @@
6034 _ACEOF
6035 rm -f conftest.$ac_objext
6036 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6037- (eval $ac_compile) 2>&5
6038+ (eval $ac_compile) 2>conftest.er1
6039 ac_status=$?
6040+ grep -v '^ *+' conftest.er1 >conftest.err
6041+ rm -f conftest.er1
6042+ cat conftest.err >&5
6043 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6044 (exit $ac_status); } &&
6045- { ac_try='test -s conftest.$ac_objext'
6046+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6047+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6048+ (eval $ac_try) 2>&5
6049+ ac_status=$?
6050+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6051+ (exit $ac_status); }; } &&
6052+ { ac_try='test -s conftest.$ac_objext'
6053 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6054 (eval $ac_try) 2>&5
6055 ac_status=$?
6056@@ -7647,7 +8192,7 @@
6057
6058 ac_header_compiler=no
6059 fi
6060-rm -f conftest.$ac_objext conftest.$ac_ext
6061+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
6062 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
6063 echo "${ECHO_T}$ac_header_compiler" >&6
6064
6065@@ -7655,7 +8200,6 @@
6066 echo "$as_me:$LINENO: checking $ac_header presence" >&5
6067 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
6068 cat >conftest.$ac_ext <<_ACEOF
6069-#line $LINENO "configure"
6070 /* confdefs.h. */
6071 _ACEOF
6072 cat confdefs.h >>conftest.$ac_ext
6073@@ -7673,6 +8217,7 @@
6074 (exit $ac_status); } >/dev/null; then
6075 if test -s conftest.err; then
6076 ac_cpp_err=$ac_c_preproc_warn_flag
6077+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
6078 else
6079 ac_cpp_err=
6080 fi
6081@@ -7692,33 +8237,32 @@
6082 echo "${ECHO_T}$ac_header_preproc" >&6
6083
6084 # So? What about this header?
6085-case $ac_header_compiler:$ac_header_preproc in
6086- yes:no )
6087+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
6088+ yes:no: )
6089 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
6090 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
6091- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
6092-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
6093- (
6094- cat <<\_ASBOX
6095-## ------------------------------------ ##
6096-## Report this to bug-autoconf@gnu.org. ##
6097-## ------------------------------------ ##
6098-_ASBOX
6099- ) |
6100- sed "s/^/$as_me: WARNING: /" >&2
6101+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
6102+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
6103+ ac_header_preproc=yes
6104 ;;
6105- no:yes )
6106+ no:yes:* )
6107 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
6108 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
6109- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
6110-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
6111+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
6112+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
6113+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
6114+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
6115+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
6116+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
6117 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
6118 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
6119+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
6120+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
6121 (
6122 cat <<\_ASBOX
6123-## ------------------------------------ ##
6124-## Report this to bug-autoconf@gnu.org. ##
6125-## ------------------------------------ ##
6126+## -------------------------------- ##
6127+## Report this to bug-patch@gnu.org ##
6128+## -------------------------------- ##
6129 _ASBOX
6130 ) |
6131 sed "s/^/$as_me: WARNING: /" >&2
6132@@ -7729,7 +8273,7 @@
6133 if eval "test \"\${$as_ac_Header+set}\" = set"; then
6134 echo $ECHO_N "(cached) $ECHO_C" >&6
6135 else
6136- eval "$as_ac_Header=$ac_header_preproc"
6137+ eval "$as_ac_Header=\$ac_header_preproc"
6138 fi
6139 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
6140 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
6141@@ -7772,7 +8316,6 @@
6142 echo "$as_me:$LINENO: checking $ac_header usability" >&5
6143 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
6144 cat >conftest.$ac_ext <<_ACEOF
6145-#line $LINENO "configure"
6146 /* confdefs.h. */
6147 _ACEOF
6148 cat confdefs.h >>conftest.$ac_ext
6149@@ -7783,11 +8326,20 @@
6150 _ACEOF
6151 rm -f conftest.$ac_objext
6152 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6153- (eval $ac_compile) 2>&5
6154+ (eval $ac_compile) 2>conftest.er1
6155 ac_status=$?
6156+ grep -v '^ *+' conftest.er1 >conftest.err
6157+ rm -f conftest.er1
6158+ cat conftest.err >&5
6159 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6160 (exit $ac_status); } &&
6161- { ac_try='test -s conftest.$ac_objext'
6162+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6163+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6164+ (eval $ac_try) 2>&5
6165+ ac_status=$?
6166+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6167+ (exit $ac_status); }; } &&
6168+ { ac_try='test -s conftest.$ac_objext'
6169 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6170 (eval $ac_try) 2>&5
6171 ac_status=$?
6172@@ -7800,7 +8352,7 @@
6173
6174 ac_header_compiler=no
6175 fi
6176-rm -f conftest.$ac_objext conftest.$ac_ext
6177+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
6178 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
6179 echo "${ECHO_T}$ac_header_compiler" >&6
6180
6181@@ -7808,7 +8360,6 @@
6182 echo "$as_me:$LINENO: checking $ac_header presence" >&5
6183 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
6184 cat >conftest.$ac_ext <<_ACEOF
6185-#line $LINENO "configure"
6186 /* confdefs.h. */
6187 _ACEOF
6188 cat confdefs.h >>conftest.$ac_ext
6189@@ -7826,6 +8377,7 @@
6190 (exit $ac_status); } >/dev/null; then
6191 if test -s conftest.err; then
6192 ac_cpp_err=$ac_c_preproc_warn_flag
6193+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
6194 else
6195 ac_cpp_err=
6196 fi
6197@@ -7845,33 +8397,32 @@
6198 echo "${ECHO_T}$ac_header_preproc" >&6
6199
6200 # So? What about this header?
6201-case $ac_header_compiler:$ac_header_preproc in
6202- yes:no )
6203+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
6204+ yes:no: )
6205 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
6206 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
6207- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
6208-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
6209- (
6210- cat <<\_ASBOX
6211-## ------------------------------------ ##
6212-## Report this to bug-autoconf@gnu.org. ##
6213-## ------------------------------------ ##
6214-_ASBOX
6215- ) |
6216- sed "s/^/$as_me: WARNING: /" >&2
6217+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
6218+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
6219+ ac_header_preproc=yes
6220 ;;
6221- no:yes )
6222+ no:yes:* )
6223 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
6224 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
6225- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
6226-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
6227+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
6228+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
6229+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
6230+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
6231+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
6232+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
6233 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
6234 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
6235+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
6236+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
6237 (
6238 cat <<\_ASBOX
6239-## ------------------------------------ ##
6240-## Report this to bug-autoconf@gnu.org. ##
6241-## ------------------------------------ ##
6242+## -------------------------------- ##
6243+## Report this to bug-patch@gnu.org ##
6244+## -------------------------------- ##
6245 _ASBOX
6246 ) |
6247 sed "s/^/$as_me: WARNING: /" >&2
6248@@ -7882,7 +8433,7 @@
6249 if eval "test \"\${$as_ac_Header+set}\" = set"; then
6250 echo $ECHO_N "(cached) $ECHO_C" >&6
6251 else
6252- eval "$as_ac_Header=$ac_header_preproc"
6253+ eval "$as_ac_Header=\$ac_header_preproc"
6254 fi
6255 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
6256 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
6257@@ -7916,7 +8467,6 @@
6258 echo "$as_me:$LINENO: checking $ac_header usability" >&5
6259 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
6260 cat >conftest.$ac_ext <<_ACEOF
6261-#line $LINENO "configure"
6262 /* confdefs.h. */
6263 _ACEOF
6264 cat confdefs.h >>conftest.$ac_ext
6265@@ -7927,11 +8477,20 @@
6266 _ACEOF
6267 rm -f conftest.$ac_objext
6268 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6269- (eval $ac_compile) 2>&5
6270+ (eval $ac_compile) 2>conftest.er1
6271 ac_status=$?
6272+ grep -v '^ *+' conftest.er1 >conftest.err
6273+ rm -f conftest.er1
6274+ cat conftest.err >&5
6275 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6276 (exit $ac_status); } &&
6277- { ac_try='test -s conftest.$ac_objext'
6278+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6279+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6280+ (eval $ac_try) 2>&5
6281+ ac_status=$?
6282+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6283+ (exit $ac_status); }; } &&
6284+ { ac_try='test -s conftest.$ac_objext'
6285 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6286 (eval $ac_try) 2>&5
6287 ac_status=$?
6288@@ -7944,7 +8503,7 @@
6289
6290 ac_header_compiler=no
6291 fi
6292-rm -f conftest.$ac_objext conftest.$ac_ext
6293+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
6294 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
6295 echo "${ECHO_T}$ac_header_compiler" >&6
6296
6297@@ -7952,7 +8511,6 @@
6298 echo "$as_me:$LINENO: checking $ac_header presence" >&5
6299 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
6300 cat >conftest.$ac_ext <<_ACEOF
6301-#line $LINENO "configure"
6302 /* confdefs.h. */
6303 _ACEOF
6304 cat confdefs.h >>conftest.$ac_ext
6305@@ -7970,6 +8528,7 @@
6306 (exit $ac_status); } >/dev/null; then
6307 if test -s conftest.err; then
6308 ac_cpp_err=$ac_c_preproc_warn_flag
6309+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
6310 else
6311 ac_cpp_err=
6312 fi
6313@@ -7989,33 +8548,32 @@
6314 echo "${ECHO_T}$ac_header_preproc" >&6
6315
6316 # So? What about this header?
6317-case $ac_header_compiler:$ac_header_preproc in
6318- yes:no )
6319+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
6320+ yes:no: )
6321 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
6322 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
6323- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
6324-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
6325- (
6326- cat <<\_ASBOX
6327-## ------------------------------------ ##
6328-## Report this to bug-autoconf@gnu.org. ##
6329-## ------------------------------------ ##
6330-_ASBOX
6331- ) |
6332- sed "s/^/$as_me: WARNING: /" >&2
6333+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
6334+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
6335+ ac_header_preproc=yes
6336 ;;
6337- no:yes )
6338+ no:yes:* )
6339 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
6340 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
6341- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
6342-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
6343+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
6344+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
6345+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
6346+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
6347+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
6348+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
6349 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
6350 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
6351+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
6352+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
6353 (
6354 cat <<\_ASBOX
6355-## ------------------------------------ ##
6356-## Report this to bug-autoconf@gnu.org. ##
6357-## ------------------------------------ ##
6358+## -------------------------------- ##
6359+## Report this to bug-patch@gnu.org ##
6360+## -------------------------------- ##
6361 _ASBOX
6362 ) |
6363 sed "s/^/$as_me: WARNING: /" >&2
6364@@ -8026,7 +8584,7 @@
6365 if eval "test \"\${$as_ac_Header+set}\" = set"; then
6366 echo $ECHO_N "(cached) $ECHO_C" >&6
6367 else
6368- eval "$as_ac_Header=$ac_header_preproc"
6369+ eval "$as_ac_Header=\$ac_header_preproc"
6370 fi
6371 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
6372 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
6373@@ -8053,21 +8611,28 @@
6374 echo $ECHO_N "(cached) $ECHO_C" >&6
6375 else
6376 cat >conftest.$ac_ext <<_ACEOF
6377-#line $LINENO "configure"
6378 /* confdefs.h. */
6379 _ACEOF
6380 cat confdefs.h >>conftest.$ac_ext
6381 cat >>conftest.$ac_ext <<_ACEOF
6382 /* end confdefs.h. */
6383+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
6384+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
6385+#define $ac_func innocuous_$ac_func
6386+
6387 /* System header to define __stub macros and hopefully few prototypes,
6388 which can conflict with char $ac_func (); below.
6389 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
6390 <limits.h> exists even on freestanding compilers. */
6391+
6392 #ifdef __STDC__
6393 # include <limits.h>
6394 #else
6395 # include <assert.h>
6396 #endif
6397+
6398+#undef $ac_func
6399+
6400 /* Override any gcc2 internal prototype to avoid an error. */
6401 #ifdef __cplusplus
6402 extern "C"
6403@@ -8098,11 +8663,20 @@
6404 _ACEOF
6405 rm -f conftest.$ac_objext conftest$ac_exeext
6406 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6407- (eval $ac_link) 2>&5
6408+ (eval $ac_link) 2>conftest.er1
6409 ac_status=$?
6410+ grep -v '^ *+' conftest.er1 >conftest.err
6411+ rm -f conftest.er1
6412+ cat conftest.err >&5
6413 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6414 (exit $ac_status); } &&
6415- { ac_try='test -s conftest$ac_exeext'
6416+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6417+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6418+ (eval $ac_try) 2>&5
6419+ ac_status=$?
6420+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6421+ (exit $ac_status); }; } &&
6422+ { ac_try='test -s conftest$ac_exeext'
6423 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6424 (eval $ac_try) 2>&5
6425 ac_status=$?
6426@@ -8115,7 +8689,8 @@
6427
6428 eval "$as_ac_var=no"
6429 fi
6430-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6431+rm -f conftest.err conftest.$ac_objext \
6432+ conftest$ac_exeext conftest.$ac_ext
6433 fi
6434 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
6435 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
6436@@ -8139,21 +8714,28 @@
6437 echo $ECHO_N "(cached) $ECHO_C" >&6
6438 else
6439 cat >conftest.$ac_ext <<_ACEOF
6440-#line $LINENO "configure"
6441 /* confdefs.h. */
6442 _ACEOF
6443 cat confdefs.h >>conftest.$ac_ext
6444 cat >>conftest.$ac_ext <<_ACEOF
6445 /* end confdefs.h. */
6446+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
6447+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
6448+#define $ac_func innocuous_$ac_func
6449+
6450 /* System header to define __stub macros and hopefully few prototypes,
6451 which can conflict with char $ac_func (); below.
6452 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
6453 <limits.h> exists even on freestanding compilers. */
6454+
6455 #ifdef __STDC__
6456 # include <limits.h>
6457 #else
6458 # include <assert.h>
6459 #endif
6460+
6461+#undef $ac_func
6462+
6463 /* Override any gcc2 internal prototype to avoid an error. */
6464 #ifdef __cplusplus
6465 extern "C"
6466@@ -8184,11 +8766,20 @@
6467 _ACEOF
6468 rm -f conftest.$ac_objext conftest$ac_exeext
6469 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6470- (eval $ac_link) 2>&5
6471+ (eval $ac_link) 2>conftest.er1
6472 ac_status=$?
6473+ grep -v '^ *+' conftest.er1 >conftest.err
6474+ rm -f conftest.er1
6475+ cat conftest.err >&5
6476 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6477 (exit $ac_status); } &&
6478- { ac_try='test -s conftest$ac_exeext'
6479+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6480+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6481+ (eval $ac_try) 2>&5
6482+ ac_status=$?
6483+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6484+ (exit $ac_status); }; } &&
6485+ { ac_try='test -s conftest$ac_exeext'
6486 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6487 (eval $ac_try) 2>&5
6488 ac_status=$?
6489@@ -8201,7 +8792,8 @@
6490
6491 eval "$as_ac_var=no"
6492 fi
6493-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6494+rm -f conftest.err conftest.$ac_objext \
6495+ conftest$ac_exeext conftest.$ac_ext
6496 fi
6497 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
6498 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
6499@@ -8241,7 +8833,6 @@
6500 echo $ECHO_N "(cached) $ECHO_C" >&6
6501 else
6502 cat >conftest.$ac_ext <<_ACEOF
6503-#line $LINENO "configure"
6504 /* confdefs.h. */
6505 _ACEOF
6506 cat confdefs.h >>conftest.$ac_ext
6507@@ -8259,11 +8850,20 @@
6508 _ACEOF
6509 rm -f conftest.$ac_objext
6510 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6511- (eval $ac_compile) 2>&5
6512+ (eval $ac_compile) 2>conftest.er1
6513 ac_status=$?
6514+ grep -v '^ *+' conftest.er1 >conftest.err
6515+ rm -f conftest.er1
6516+ cat conftest.err >&5
6517 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6518 (exit $ac_status); } &&
6519- { ac_try='test -s conftest.$ac_objext'
6520+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6521+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6522+ (eval $ac_try) 2>&5
6523+ ac_status=$?
6524+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6525+ (exit $ac_status); }; } &&
6526+ { ac_try='test -s conftest.$ac_objext'
6527 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6528 (eval $ac_try) 2>&5
6529 ac_status=$?
6530@@ -8276,7 +8876,7 @@
6531
6532 ac_cv_type_mbstate_t=no
6533 fi
6534-rm -f conftest.$ac_objext conftest.$ac_ext
6535+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
6536 fi
6537 echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5
6538 echo "${ECHO_T}$ac_cv_type_mbstate_t" >&6
6539@@ -8300,7 +8900,6 @@
6540 echo $ECHO_N "(cached) $ECHO_C" >&6
6541 else
6542 cat >conftest.$ac_ext <<_ACEOF
6543-#line $LINENO "configure"
6544 /* confdefs.h. */
6545 _ACEOF
6546 cat confdefs.h >>conftest.$ac_ext
6547@@ -8317,11 +8916,20 @@
6548 _ACEOF
6549 rm -f conftest.$ac_objext conftest$ac_exeext
6550 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6551- (eval $ac_link) 2>&5
6552+ (eval $ac_link) 2>conftest.er1
6553 ac_status=$?
6554+ grep -v '^ *+' conftest.er1 >conftest.err
6555+ rm -f conftest.er1
6556+ cat conftest.err >&5
6557 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6558 (exit $ac_status); } &&
6559- { ac_try='test -s conftest$ac_exeext'
6560+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6561+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6562+ (eval $ac_try) 2>&5
6563+ ac_status=$?
6564+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6565+ (exit $ac_status); }; } &&
6566+ { ac_try='test -s conftest$ac_exeext'
6567 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6568 (eval $ac_try) 2>&5
6569 ac_status=$?
6570@@ -8334,7 +8942,8 @@
6571
6572 jm_cv_func_mbrtowc=no
6573 fi
6574-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
6575+rm -f conftest.err conftest.$ac_objext \
6576+ conftest$ac_exeext conftest.$ac_ext
6577 fi
6578 echo "$as_me:$LINENO: result: $jm_cv_func_mbrtowc" >&5
6579 echo "${ECHO_T}$jm_cv_func_mbrtowc" >&6
6580@@ -8348,69 +8957,465 @@
6581
6582
6583
6584-
6585-
6586-
6587-
6588-for ac_func in pathconf
6589-do
6590-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
6591-echo "$as_me:$LINENO: checking for $ac_func" >&5
6592-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
6593-if eval "test \"\${$as_ac_var+set}\" = set"; then
6594+ echo "$as_me:$LINENO: checking whether free is declared" >&5
6595+echo $ECHO_N "checking whether free is declared... $ECHO_C" >&6
6596+if test "${ac_cv_have_decl_free+set}" = set; then
6597 echo $ECHO_N "(cached) $ECHO_C" >&6
6598 else
6599 cat >conftest.$ac_ext <<_ACEOF
6600-#line $LINENO "configure"
6601 /* confdefs.h. */
6602 _ACEOF
6603 cat confdefs.h >>conftest.$ac_ext
6604 cat >>conftest.$ac_ext <<_ACEOF
6605 /* end confdefs.h. */
6606-/* System header to define __stub macros and hopefully few prototypes,
6607- which can conflict with char $ac_func (); below.
6608- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
6609- <limits.h> exists even on freestanding compilers. */
6610-#ifdef __STDC__
6611-# include <limits.h>
6612-#else
6613-# include <assert.h>
6614-#endif
6615-/* Override any gcc2 internal prototype to avoid an error. */
6616-#ifdef __cplusplus
6617-extern "C"
6618-{
6619-#endif
6620-/* We use char because int might match the return type of a gcc2
6621- builtin and then its argument prototype would still apply. */
6622-char $ac_func ();
6623-/* The GNU C library defines this for functions which it implements
6624- to always fail with ENOSYS. Some functions are actually named
6625- something starting with __ and the normal name is an alias. */
6626-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
6627-choke me
6628-#else
6629-char (*f) () = $ac_func;
6630-#endif
6631-#ifdef __cplusplus
6632-}
6633-#endif
6634-
6635+$ac_includes_default
6636 int
6637 main ()
6638 {
6639-return f != $ac_func;
6640+#ifndef free
6641+ char *p = (char *) free;
6642+#endif
6643+
6644 ;
6645 return 0;
6646 }
6647 _ACEOF
6648-rm -f conftest.$ac_objext conftest$ac_exeext
6649-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6650- (eval $ac_link) 2>&5
6651+rm -f conftest.$ac_objext
6652+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6653+ (eval $ac_compile) 2>conftest.er1
6654+ ac_status=$?
6655+ grep -v '^ *+' conftest.er1 >conftest.err
6656+ rm -f conftest.er1
6657+ cat conftest.err >&5
6658+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6659+ (exit $ac_status); } &&
6660+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6661+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6662+ (eval $ac_try) 2>&5
6663+ ac_status=$?
6664+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6665+ (exit $ac_status); }; } &&
6666+ { ac_try='test -s conftest.$ac_objext'
6667+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6668+ (eval $ac_try) 2>&5
6669+ ac_status=$?
6670+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6671+ (exit $ac_status); }; }; then
6672+ ac_cv_have_decl_free=yes
6673+else
6674+ echo "$as_me: failed program was:" >&5
6675+sed 's/^/| /' conftest.$ac_ext >&5
6676+
6677+ac_cv_have_decl_free=no
6678+fi
6679+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
6680+fi
6681+echo "$as_me:$LINENO: result: $ac_cv_have_decl_free" >&5
6682+echo "${ECHO_T}$ac_cv_have_decl_free" >&6
6683+if test $ac_cv_have_decl_free = yes; then
6684+
6685+cat >>confdefs.h <<_ACEOF
6686+#define HAVE_DECL_FREE 1
6687+_ACEOF
6688+
6689+
6690+else
6691+ cat >>confdefs.h <<_ACEOF
6692+#define HAVE_DECL_FREE 0
6693+_ACEOF
6694+
6695+
6696+fi
6697+
6698+
6699+
6700+
6701+
6702+ :
6703+
6704+
6705+
6706+
6707+
6708+ echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5
6709+echo $ECHO_N "checking for stdbool.h that conforms to C99... $ECHO_C" >&6
6710+if test "${ac_cv_header_stdbool_h+set}" = set; then
6711+ echo $ECHO_N "(cached) $ECHO_C" >&6
6712+else
6713+ cat >conftest.$ac_ext <<_ACEOF
6714+/* confdefs.h. */
6715+_ACEOF
6716+cat confdefs.h >>conftest.$ac_ext
6717+cat >>conftest.$ac_ext <<_ACEOF
6718+/* end confdefs.h. */
6719+
6720+ #include <stdbool.h>
6721+ #ifndef bool
6722+ "error: bool is not defined"
6723+ #endif
6724+ #ifndef false
6725+ "error: false is not defined"
6726+ #endif
6727+ #if false
6728+ "error: false is not 0"
6729+ #endif
6730+ #ifndef true
6731+ "error: false is not defined"
6732+ #endif
6733+ #if true != 1
6734+ "error: true is not 1"
6735+ #endif
6736+ #ifndef __bool_true_false_are_defined
6737+ "error: __bool_true_false_are_defined is not defined"
6738+ #endif
6739+
6740+ struct s { _Bool s: 1; _Bool t; } s;
6741+
6742+ char a[true == 1 ? 1 : -1];
6743+ char b[false == 0 ? 1 : -1];
6744+ char c[__bool_true_false_are_defined == 1 ? 1 : -1];
6745+ char d[(bool) -0.5 == true ? 1 : -1];
6746+ bool e = &s;
6747+ char f[(_Bool) -0.0 == false ? 1 : -1];
6748+ char g[true];
6749+ char h[sizeof (_Bool)];
6750+ char i[sizeof s.t];
6751+
6752+int
6753+main ()
6754+{
6755+ return !a + !b + !c + !d + !e + !f + !g + !h + !i;
6756+ ;
6757+ return 0;
6758+}
6759+_ACEOF
6760+rm -f conftest.$ac_objext
6761+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6762+ (eval $ac_compile) 2>conftest.er1
6763+ ac_status=$?
6764+ grep -v '^ *+' conftest.er1 >conftest.err
6765+ rm -f conftest.er1
6766+ cat conftest.err >&5
6767+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6768+ (exit $ac_status); } &&
6769+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6770+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6771+ (eval $ac_try) 2>&5
6772+ ac_status=$?
6773+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6774+ (exit $ac_status); }; } &&
6775+ { ac_try='test -s conftest.$ac_objext'
6776+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6777+ (eval $ac_try) 2>&5
6778+ ac_status=$?
6779+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6780+ (exit $ac_status); }; }; then
6781+ ac_cv_header_stdbool_h=yes
6782+else
6783+ echo "$as_me: failed program was:" >&5
6784+sed 's/^/| /' conftest.$ac_ext >&5
6785+
6786+ac_cv_header_stdbool_h=no
6787+fi
6788+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
6789+fi
6790+echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5
6791+echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6
6792+ echo "$as_me:$LINENO: checking for _Bool" >&5
6793+echo $ECHO_N "checking for _Bool... $ECHO_C" >&6
6794+if test "${ac_cv_type__Bool+set}" = set; then
6795+ echo $ECHO_N "(cached) $ECHO_C" >&6
6796+else
6797+ cat >conftest.$ac_ext <<_ACEOF
6798+/* confdefs.h. */
6799+_ACEOF
6800+cat confdefs.h >>conftest.$ac_ext
6801+cat >>conftest.$ac_ext <<_ACEOF
6802+/* end confdefs.h. */
6803+$ac_includes_default
6804+int
6805+main ()
6806+{
6807+if ((_Bool *) 0)
6808+ return 0;
6809+if (sizeof (_Bool))
6810+ return 0;
6811+ ;
6812+ return 0;
6813+}
6814+_ACEOF
6815+rm -f conftest.$ac_objext
6816+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6817+ (eval $ac_compile) 2>conftest.er1
6818+ ac_status=$?
6819+ grep -v '^ *+' conftest.er1 >conftest.err
6820+ rm -f conftest.er1
6821+ cat conftest.err >&5
6822+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6823+ (exit $ac_status); } &&
6824+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6825+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6826+ (eval $ac_try) 2>&5
6827+ ac_status=$?
6828+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6829+ (exit $ac_status); }; } &&
6830+ { ac_try='test -s conftest.$ac_objext'
6831+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6832+ (eval $ac_try) 2>&5
6833+ ac_status=$?
6834+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6835+ (exit $ac_status); }; }; then
6836+ ac_cv_type__Bool=yes
6837+else
6838+ echo "$as_me: failed program was:" >&5
6839+sed 's/^/| /' conftest.$ac_ext >&5
6840+
6841+ac_cv_type__Bool=no
6842+fi
6843+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
6844+fi
6845+echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5
6846+echo "${ECHO_T}$ac_cv_type__Bool" >&6
6847+if test $ac_cv_type__Bool = yes; then
6848+
6849+cat >>confdefs.h <<_ACEOF
6850+#define HAVE__BOOL 1
6851+_ACEOF
6852+
6853+
6854+fi
6855+
6856+ if test $ac_cv_header_stdbool_h = yes; then
6857+
6858+cat >>confdefs.h <<\_ACEOF
6859+#define HAVE_STDBOOL_H 1
6860+_ACEOF
6861+
6862+ fi
6863+
6864+ :
6865+
6866+
6867+
6868+
6869+
6870+
6871+
6872+
6873+
6874+
6875+echo "$as_me:$LINENO: checking for nanosecond timestamps in struct stat" >&5
6876+echo $ECHO_N "checking for nanosecond timestamps in struct stat... $ECHO_C" >&6
6877+if test "${ac_cv_stat_nsec+set}" = set; then
6878+ echo $ECHO_N "(cached) $ECHO_C" >&6
6879+else
6880+ cat >conftest.$ac_ext <<_ACEOF
6881+/* confdefs.h. */
6882+_ACEOF
6883+cat confdefs.h >>conftest.$ac_ext
6884+cat >>conftest.$ac_ext <<_ACEOF
6885+/* end confdefs.h. */
6886+
6887+ #include <sys/types.h>
6888+ #include <sys/stat.h>
6889+ #include <unistd.h>
6890+ struct stat st;
6891+
6892+int
6893+main ()
6894+{
6895+ return st.st_atimensec + st.st_mtimensec + st.st_ctimensec;
6896+ ;
6897+ return 0;
6898+}
6899+_ACEOF
6900+rm -f conftest.$ac_objext
6901+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6902+ (eval $ac_compile) 2>conftest.er1
6903 ac_status=$?
6904+ grep -v '^ *+' conftest.er1 >conftest.err
6905+ rm -f conftest.er1
6906+ cat conftest.err >&5
6907 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6908 (exit $ac_status); } &&
6909- { ac_try='test -s conftest$ac_exeext'
6910+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6911+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6912+ (eval $ac_try) 2>&5
6913+ ac_status=$?
6914+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6915+ (exit $ac_status); }; } &&
6916+ { ac_try='test -s conftest.$ac_objext'
6917+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6918+ (eval $ac_try) 2>&5
6919+ ac_status=$?
6920+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6921+ (exit $ac_status); }; }; then
6922+ ac_cv_stat_nsec=yes
6923+else
6924+ echo "$as_me: failed program was:" >&5
6925+sed 's/^/| /' conftest.$ac_ext >&5
6926+
6927+ac_cv_stat_nsec=no
6928+fi
6929+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
6930+
6931+fi
6932+echo "$as_me:$LINENO: result: $ac_cv_stat_nsec" >&5
6933+echo "${ECHO_T}$ac_cv_stat_nsec" >&6
6934+ if test $ac_cv_stat_nsec = yes; then
6935+
6936+cat >>confdefs.h <<\_ACEOF
6937+#define HAVE_STAT_NSEC 1
6938+_ACEOF
6939+
6940+ fi
6941+
6942+ echo "$as_me:$LINENO: checking for nanosecond timestamps in struct stat" >&5
6943+echo $ECHO_N "checking for nanosecond timestamps in struct stat... $ECHO_C" >&6
6944+if test "${ac_cv_stat_timeval+set}" = set; then
6945+ echo $ECHO_N "(cached) $ECHO_C" >&6
6946+else
6947+ cat >conftest.$ac_ext <<_ACEOF
6948+/* confdefs.h. */
6949+_ACEOF
6950+cat confdefs.h >>conftest.$ac_ext
6951+cat >>conftest.$ac_ext <<_ACEOF
6952+/* end confdefs.h. */
6953+
6954+ #include <time.h>
6955+ #include <sys/types.h>
6956+ #include <sys/stat.h>
6957+ #include <unistd.h>
6958+ struct stat st;
6959+
6960+int
6961+main ()
6962+{
6963+ return st.st_atim.tv_nsec + st.st_mtim.tv_nsec + st.st_ctim.tv_nsec;
6964+ ;
6965+ return 0;
6966+}
6967+_ACEOF
6968+rm -f conftest.$ac_objext
6969+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6970+ (eval $ac_compile) 2>conftest.er1
6971+ ac_status=$?
6972+ grep -v '^ *+' conftest.er1 >conftest.err
6973+ rm -f conftest.er1
6974+ cat conftest.err >&5
6975+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6976+ (exit $ac_status); } &&
6977+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6978+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6979+ (eval $ac_try) 2>&5
6980+ ac_status=$?
6981+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6982+ (exit $ac_status); }; } &&
6983+ { ac_try='test -s conftest.$ac_objext'
6984+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6985+ (eval $ac_try) 2>&5
6986+ ac_status=$?
6987+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
6988+ (exit $ac_status); }; }; then
6989+ ac_cv_stat_timeval=yes
6990+else
6991+ echo "$as_me: failed program was:" >&5
6992+sed 's/^/| /' conftest.$ac_ext >&5
6993+
6994+ac_cv_stat_timeval=no
6995+fi
6996+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
6997+
6998+fi
6999+echo "$as_me:$LINENO: result: $ac_cv_stat_timeval" >&5
7000+echo "${ECHO_T}$ac_cv_stat_timeval" >&6
7001+ if test $ac_cv_stat_timeval = yes; then
7002+
7003+cat >>confdefs.h <<\_ACEOF
7004+#define HAVE_STAT_TIMEVAL 1
7005+_ACEOF
7006+
7007+ fi
7008+
7009+
7010+
7011+
7012+
7013+for ac_func in pathconf
7014+do
7015+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
7016+echo "$as_me:$LINENO: checking for $ac_func" >&5
7017+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
7018+if eval "test \"\${$as_ac_var+set}\" = set"; then
7019+ echo $ECHO_N "(cached) $ECHO_C" >&6
7020+else
7021+ cat >conftest.$ac_ext <<_ACEOF
7022+/* confdefs.h. */
7023+_ACEOF
7024+cat confdefs.h >>conftest.$ac_ext
7025+cat >>conftest.$ac_ext <<_ACEOF
7026+/* end confdefs.h. */
7027+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
7028+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
7029+#define $ac_func innocuous_$ac_func
7030+
7031+/* System header to define __stub macros and hopefully few prototypes,
7032+ which can conflict with char $ac_func (); below.
7033+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
7034+ <limits.h> exists even on freestanding compilers. */
7035+
7036+#ifdef __STDC__
7037+# include <limits.h>
7038+#else
7039+# include <assert.h>
7040+#endif
7041+
7042+#undef $ac_func
7043+
7044+/* Override any gcc2 internal prototype to avoid an error. */
7045+#ifdef __cplusplus
7046+extern "C"
7047+{
7048+#endif
7049+/* We use char because int might match the return type of a gcc2
7050+ builtin and then its argument prototype would still apply. */
7051+char $ac_func ();
7052+/* The GNU C library defines this for functions which it implements
7053+ to always fail with ENOSYS. Some functions are actually named
7054+ something starting with __ and the normal name is an alias. */
7055+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
7056+choke me
7057+#else
7058+char (*f) () = $ac_func;
7059+#endif
7060+#ifdef __cplusplus
7061+}
7062+#endif
7063+
7064+int
7065+main ()
7066+{
7067+return f != $ac_func;
7068+ ;
7069+ return 0;
7070+}
7071+_ACEOF
7072+rm -f conftest.$ac_objext conftest$ac_exeext
7073+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7074+ (eval $ac_link) 2>conftest.er1
7075+ ac_status=$?
7076+ grep -v '^ *+' conftest.er1 >conftest.err
7077+ rm -f conftest.er1
7078+ cat conftest.err >&5
7079+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7080+ (exit $ac_status); } &&
7081+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7082+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7083+ (eval $ac_try) 2>&5
7084+ ac_status=$?
7085+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7086+ (exit $ac_status); }; } &&
7087+ { ac_try='test -s conftest$ac_exeext'
7088 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7089 (eval $ac_try) 2>&5
7090 ac_status=$?
7091@@ -8423,7 +9428,8 @@
7092
7093 eval "$as_ac_var=no"
7094 fi
7095-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7096+rm -f conftest.err conftest.$ac_objext \
7097+ conftest$ac_exeext conftest.$ac_ext
7098 fi
7099 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
7100 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
7101@@ -8454,7 +9460,6 @@
7102 echo "$as_me:$LINENO: checking $ac_header usability" >&5
7103 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
7104 cat >conftest.$ac_ext <<_ACEOF
7105-#line $LINENO "configure"
7106 /* confdefs.h. */
7107 _ACEOF
7108 cat confdefs.h >>conftest.$ac_ext
7109@@ -8465,11 +9470,20 @@
7110 _ACEOF
7111 rm -f conftest.$ac_objext
7112 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7113- (eval $ac_compile) 2>&5
7114+ (eval $ac_compile) 2>conftest.er1
7115 ac_status=$?
7116+ grep -v '^ *+' conftest.er1 >conftest.err
7117+ rm -f conftest.er1
7118+ cat conftest.err >&5
7119 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7120 (exit $ac_status); } &&
7121- { ac_try='test -s conftest.$ac_objext'
7122+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7123+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7124+ (eval $ac_try) 2>&5
7125+ ac_status=$?
7126+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7127+ (exit $ac_status); }; } &&
7128+ { ac_try='test -s conftest.$ac_objext'
7129 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7130 (eval $ac_try) 2>&5
7131 ac_status=$?
7132@@ -8482,7 +9496,7 @@
7133
7134 ac_header_compiler=no
7135 fi
7136-rm -f conftest.$ac_objext conftest.$ac_ext
7137+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7138 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
7139 echo "${ECHO_T}$ac_header_compiler" >&6
7140
7141@@ -8490,7 +9504,6 @@
7142 echo "$as_me:$LINENO: checking $ac_header presence" >&5
7143 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
7144 cat >conftest.$ac_ext <<_ACEOF
7145-#line $LINENO "configure"
7146 /* confdefs.h. */
7147 _ACEOF
7148 cat confdefs.h >>conftest.$ac_ext
7149@@ -8508,6 +9521,7 @@
7150 (exit $ac_status); } >/dev/null; then
7151 if test -s conftest.err; then
7152 ac_cpp_err=$ac_c_preproc_warn_flag
7153+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
7154 else
7155 ac_cpp_err=
7156 fi
7157@@ -8527,33 +9541,32 @@
7158 echo "${ECHO_T}$ac_header_preproc" >&6
7159
7160 # So? What about this header?
7161-case $ac_header_compiler:$ac_header_preproc in
7162- yes:no )
7163+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
7164+ yes:no: )
7165 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
7166 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
7167- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
7168-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
7169- (
7170- cat <<\_ASBOX
7171-## ------------------------------------ ##
7172-## Report this to bug-autoconf@gnu.org. ##
7173-## ------------------------------------ ##
7174-_ASBOX
7175- ) |
7176- sed "s/^/$as_me: WARNING: /" >&2
7177+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
7178+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
7179+ ac_header_preproc=yes
7180 ;;
7181- no:yes )
7182+ no:yes:* )
7183 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
7184 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
7185- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
7186-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
7187+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
7188+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
7189+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
7190+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
7191+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
7192+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
7193 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
7194 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
7195+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
7196+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
7197 (
7198 cat <<\_ASBOX
7199-## ------------------------------------ ##
7200-## Report this to bug-autoconf@gnu.org. ##
7201-## ------------------------------------ ##
7202+## -------------------------------- ##
7203+## Report this to bug-patch@gnu.org ##
7204+## -------------------------------- ##
7205 _ASBOX
7206 ) |
7207 sed "s/^/$as_me: WARNING: /" >&2
7208@@ -8564,7 +9577,7 @@
7209 if eval "test \"\${$as_ac_Header+set}\" = set"; then
7210 echo $ECHO_N "(cached) $ECHO_C" >&6
7211 else
7212- eval "$as_ac_Header=$ac_header_preproc"
7213+ eval "$as_ac_Header=\$ac_header_preproc"
7214 fi
7215 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
7216 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
7217@@ -8587,7 +9600,6 @@
7218 echo $ECHO_N "(cached) $ECHO_C" >&6
7219 else
7220 cat >conftest.$ac_ext <<_ACEOF
7221-#line $LINENO "configure"
7222 /* confdefs.h. */
7223 _ACEOF
7224 cat confdefs.h >>conftest.$ac_ext
7225@@ -8607,11 +9619,20 @@
7226 _ACEOF
7227 rm -f conftest.$ac_objext
7228 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7229- (eval $ac_compile) 2>&5
7230+ (eval $ac_compile) 2>conftest.er1
7231 ac_status=$?
7232+ grep -v '^ *+' conftest.er1 >conftest.err
7233+ rm -f conftest.er1
7234+ cat conftest.err >&5
7235 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7236 (exit $ac_status); } &&
7237- { ac_try='test -s conftest.$ac_objext'
7238+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7239+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7240+ (eval $ac_try) 2>&5
7241+ ac_status=$?
7242+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7243+ (exit $ac_status); }; } &&
7244+ { ac_try='test -s conftest.$ac_objext'
7245 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7246 (eval $ac_try) 2>&5
7247 ac_status=$?
7248@@ -8624,7 +9645,7 @@
7249
7250 ac_cv_have_decl_free=no
7251 fi
7252-rm -f conftest.$ac_objext conftest.$ac_ext
7253+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7254 fi
7255 echo "$as_me:$LINENO: result: $ac_cv_have_decl_free" >&5
7256 echo "${ECHO_T}$ac_cv_have_decl_free" >&6
7257@@ -8648,7 +9669,6 @@
7258 echo $ECHO_N "(cached) $ECHO_C" >&6
7259 else
7260 cat >conftest.$ac_ext <<_ACEOF
7261-#line $LINENO "configure"
7262 /* confdefs.h. */
7263 _ACEOF
7264 cat confdefs.h >>conftest.$ac_ext
7265@@ -8668,11 +9688,20 @@
7266 _ACEOF
7267 rm -f conftest.$ac_objext
7268 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7269- (eval $ac_compile) 2>&5
7270+ (eval $ac_compile) 2>conftest.er1
7271 ac_status=$?
7272+ grep -v '^ *+' conftest.er1 >conftest.err
7273+ rm -f conftest.er1
7274+ cat conftest.err >&5
7275 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7276 (exit $ac_status); } &&
7277- { ac_try='test -s conftest.$ac_objext'
7278+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7279+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7280+ (eval $ac_try) 2>&5
7281+ ac_status=$?
7282+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7283+ (exit $ac_status); }; } &&
7284+ { ac_try='test -s conftest.$ac_objext'
7285 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7286 (eval $ac_try) 2>&5
7287 ac_status=$?
7288@@ -8685,7 +9714,7 @@
7289
7290 ac_cv_have_decl_getenv=no
7291 fi
7292-rm -f conftest.$ac_objext conftest.$ac_ext
7293+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7294 fi
7295 echo "$as_me:$LINENO: result: $ac_cv_have_decl_getenv" >&5
7296 echo "${ECHO_T}$ac_cv_have_decl_getenv" >&6
7297@@ -8709,7 +9738,6 @@
7298 echo $ECHO_N "(cached) $ECHO_C" >&6
7299 else
7300 cat >conftest.$ac_ext <<_ACEOF
7301-#line $LINENO "configure"
7302 /* confdefs.h. */
7303 _ACEOF
7304 cat confdefs.h >>conftest.$ac_ext
7305@@ -8729,11 +9757,20 @@
7306 _ACEOF
7307 rm -f conftest.$ac_objext
7308 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7309- (eval $ac_compile) 2>&5
7310+ (eval $ac_compile) 2>conftest.er1
7311 ac_status=$?
7312+ grep -v '^ *+' conftest.er1 >conftest.err
7313+ rm -f conftest.er1
7314+ cat conftest.err >&5
7315 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7316 (exit $ac_status); } &&
7317- { ac_try='test -s conftest.$ac_objext'
7318+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7319+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7320+ (eval $ac_try) 2>&5
7321+ ac_status=$?
7322+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7323+ (exit $ac_status); }; } &&
7324+ { ac_try='test -s conftest.$ac_objext'
7325 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7326 (eval $ac_try) 2>&5
7327 ac_status=$?
7328@@ -8746,7 +9783,7 @@
7329
7330 ac_cv_have_decl_malloc=no
7331 fi
7332-rm -f conftest.$ac_objext conftest.$ac_ext
7333+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7334 fi
7335 echo "$as_me:$LINENO: result: $ac_cv_have_decl_malloc" >&5
7336 echo "${ECHO_T}$ac_cv_have_decl_malloc" >&6
7337@@ -8770,7 +9807,6 @@
7338 echo $ECHO_N "(cached) $ECHO_C" >&6
7339 else
7340 cat >conftest.$ac_ext <<_ACEOF
7341-#line $LINENO "configure"
7342 /* confdefs.h. */
7343 _ACEOF
7344 cat confdefs.h >>conftest.$ac_ext
7345@@ -8790,11 +9826,20 @@
7346 _ACEOF
7347 rm -f conftest.$ac_objext
7348 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7349- (eval $ac_compile) 2>&5
7350+ (eval $ac_compile) 2>conftest.er1
7351 ac_status=$?
7352+ grep -v '^ *+' conftest.er1 >conftest.err
7353+ rm -f conftest.er1
7354+ cat conftest.err >&5
7355 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7356 (exit $ac_status); } &&
7357- { ac_try='test -s conftest.$ac_objext'
7358+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7359+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7360+ (eval $ac_try) 2>&5
7361+ ac_status=$?
7362+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7363+ (exit $ac_status); }; } &&
7364+ { ac_try='test -s conftest.$ac_objext'
7365 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7366 (eval $ac_try) 2>&5
7367 ac_status=$?
7368@@ -8807,7 +9852,7 @@
7369
7370 ac_cv_have_decl_mktemp=no
7371 fi
7372-rm -f conftest.$ac_objext conftest.$ac_ext
7373+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7374 fi
7375 echo "$as_me:$LINENO: result: $ac_cv_have_decl_mktemp" >&5
7376 echo "${ECHO_T}$ac_cv_have_decl_mktemp" >&6
7377@@ -8849,21 +9894,28 @@
7378 echo $ECHO_N "(cached) $ECHO_C" >&6
7379 else
7380 cat >conftest.$ac_ext <<_ACEOF
7381-#line $LINENO "configure"
7382 /* confdefs.h. */
7383 _ACEOF
7384 cat confdefs.h >>conftest.$ac_ext
7385 cat >>conftest.$ac_ext <<_ACEOF
7386 /* end confdefs.h. */
7387+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
7388+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
7389+#define $ac_func innocuous_$ac_func
7390+
7391 /* System header to define __stub macros and hopefully few prototypes,
7392 which can conflict with char $ac_func (); below.
7393 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
7394 <limits.h> exists even on freestanding compilers. */
7395+
7396 #ifdef __STDC__
7397 # include <limits.h>
7398 #else
7399 # include <assert.h>
7400 #endif
7401+
7402+#undef $ac_func
7403+
7404 /* Override any gcc2 internal prototype to avoid an error. */
7405 #ifdef __cplusplus
7406 extern "C"
7407@@ -8894,11 +9946,20 @@
7408 _ACEOF
7409 rm -f conftest.$ac_objext conftest$ac_exeext
7410 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7411- (eval $ac_link) 2>&5
7412+ (eval $ac_link) 2>conftest.er1
7413 ac_status=$?
7414+ grep -v '^ *+' conftest.er1 >conftest.err
7415+ rm -f conftest.er1
7416+ cat conftest.err >&5
7417 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7418 (exit $ac_status); } &&
7419- { ac_try='test -s conftest$ac_exeext'
7420+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7421+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7422+ (eval $ac_try) 2>&5
7423+ ac_status=$?
7424+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7425+ (exit $ac_status); }; } &&
7426+ { ac_try='test -s conftest$ac_exeext'
7427 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7428 (eval $ac_try) 2>&5
7429 ac_status=$?
7430@@ -8911,7 +9972,8 @@
7431
7432 eval "$as_ac_var=no"
7433 fi
7434-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7435+rm -f conftest.err conftest.$ac_objext \
7436+ conftest$ac_exeext conftest.$ac_ext
7437 fi
7438 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
7439 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
7440@@ -8934,21 +9996,28 @@
7441 echo $ECHO_N "(cached) $ECHO_C" >&6
7442 else
7443 cat >conftest.$ac_ext <<_ACEOF
7444-#line $LINENO "configure"
7445 /* confdefs.h. */
7446 _ACEOF
7447 cat confdefs.h >>conftest.$ac_ext
7448 cat >>conftest.$ac_ext <<_ACEOF
7449 /* end confdefs.h. */
7450+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
7451+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
7452+#define $ac_func innocuous_$ac_func
7453+
7454 /* System header to define __stub macros and hopefully few prototypes,
7455 which can conflict with char $ac_func (); below.
7456 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
7457 <limits.h> exists even on freestanding compilers. */
7458+
7459 #ifdef __STDC__
7460 # include <limits.h>
7461 #else
7462 # include <assert.h>
7463 #endif
7464+
7465+#undef $ac_func
7466+
7467 /* Override any gcc2 internal prototype to avoid an error. */
7468 #ifdef __cplusplus
7469 extern "C"
7470@@ -8979,11 +10048,20 @@
7471 _ACEOF
7472 rm -f conftest.$ac_objext conftest$ac_exeext
7473 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7474- (eval $ac_link) 2>&5
7475+ (eval $ac_link) 2>conftest.er1
7476 ac_status=$?
7477+ grep -v '^ *+' conftest.er1 >conftest.err
7478+ rm -f conftest.er1
7479+ cat conftest.err >&5
7480 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7481 (exit $ac_status); } &&
7482- { ac_try='test -s conftest$ac_exeext'
7483+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7484+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7485+ (eval $ac_try) 2>&5
7486+ ac_status=$?
7487+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7488+ (exit $ac_status); }; } &&
7489+ { ac_try='test -s conftest$ac_exeext'
7490 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7491 (eval $ac_try) 2>&5
7492 ac_status=$?
7493@@ -8996,7 +10074,8 @@
7494
7495 eval "$as_ac_var=no"
7496 fi
7497-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7498+rm -f conftest.err conftest.$ac_objext \
7499+ conftest$ac_exeext conftest.$ac_ext
7500 fi
7501 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
7502 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
7503@@ -9006,7 +10085,14 @@
7504 _ACEOF
7505
7506 else
7507- LIBOBJS="$LIBOBJS $ac_func.$ac_objext"
7508+ case $LIBOBJS in
7509+ "$ac_func.$ac_objext" | \
7510+ *" $ac_func.$ac_objext" | \
7511+ "$ac_func.$ac_objext "* | \
7512+ *" $ac_func.$ac_objext "* ) ;;
7513+ *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;;
7514+esac
7515+
7516 fi
7517 done
7518
7519@@ -9019,7 +10105,6 @@
7520 while :; do
7521 ac_cv_sys_largefile_source=no
7522 cat >conftest.$ac_ext <<_ACEOF
7523-#line $LINENO "configure"
7524 /* confdefs.h. */
7525 _ACEOF
7526 cat confdefs.h >>conftest.$ac_ext
7527@@ -9036,11 +10121,20 @@
7528 _ACEOF
7529 rm -f conftest.$ac_objext
7530 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7531- (eval $ac_compile) 2>&5
7532+ (eval $ac_compile) 2>conftest.er1
7533 ac_status=$?
7534+ grep -v '^ *+' conftest.er1 >conftest.err
7535+ rm -f conftest.er1
7536+ cat conftest.err >&5
7537 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7538 (exit $ac_status); } &&
7539- { ac_try='test -s conftest.$ac_objext'
7540+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7541+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7542+ (eval $ac_try) 2>&5
7543+ ac_status=$?
7544+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7545+ (exit $ac_status); }; } &&
7546+ { ac_try='test -s conftest.$ac_objext'
7547 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7548 (eval $ac_try) 2>&5
7549 ac_status=$?
7550@@ -9052,9 +10146,8 @@
7551 sed 's/^/| /' conftest.$ac_ext >&5
7552
7553 fi
7554-rm -f conftest.$ac_objext conftest.$ac_ext
7555+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7556 cat >conftest.$ac_ext <<_ACEOF
7557-#line $LINENO "configure"
7558 /* confdefs.h. */
7559 _ACEOF
7560 cat confdefs.h >>conftest.$ac_ext
7561@@ -9072,11 +10165,20 @@
7562 _ACEOF
7563 rm -f conftest.$ac_objext
7564 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7565- (eval $ac_compile) 2>&5
7566+ (eval $ac_compile) 2>conftest.er1
7567 ac_status=$?
7568+ grep -v '^ *+' conftest.er1 >conftest.err
7569+ rm -f conftest.er1
7570+ cat conftest.err >&5
7571 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7572 (exit $ac_status); } &&
7573- { ac_try='test -s conftest.$ac_objext'
7574+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7575+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7576+ (eval $ac_try) 2>&5
7577+ ac_status=$?
7578+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7579+ (exit $ac_status); }; } &&
7580+ { ac_try='test -s conftest.$ac_objext'
7581 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7582 (eval $ac_try) 2>&5
7583 ac_status=$?
7584@@ -9088,7 +10190,7 @@
7585 sed 's/^/| /' conftest.$ac_ext >&5
7586
7587 fi
7588-rm -f conftest.$ac_objext conftest.$ac_ext
7589+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7590 break
7591 done
7592 fi
7593@@ -9112,7 +10214,6 @@
7594 echo $ECHO_N "(cached) $ECHO_C" >&6
7595 else
7596 cat >conftest.$ac_ext <<_ACEOF
7597-#line $LINENO "configure"
7598 /* confdefs.h. */
7599 _ACEOF
7600 cat confdefs.h >>conftest.$ac_ext
7601@@ -9129,11 +10230,20 @@
7602 _ACEOF
7603 rm -f conftest.$ac_objext conftest$ac_exeext
7604 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7605- (eval $ac_link) 2>&5
7606+ (eval $ac_link) 2>conftest.er1
7607 ac_status=$?
7608+ grep -v '^ *+' conftest.er1 >conftest.err
7609+ rm -f conftest.er1
7610+ cat conftest.err >&5
7611 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7612 (exit $ac_status); } &&
7613- { ac_try='test -s conftest$ac_exeext'
7614+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7615+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7616+ (eval $ac_try) 2>&5
7617+ ac_status=$?
7618+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7619+ (exit $ac_status); }; } &&
7620+ { ac_try='test -s conftest$ac_exeext'
7621 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7622 (eval $ac_try) 2>&5
7623 ac_status=$?
7624@@ -9146,7 +10256,8 @@
7625
7626 ac_cv_func_fseeko=no
7627 fi
7628-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
7629+rm -f conftest.err conftest.$ac_objext \
7630+ conftest$ac_exeext conftest.$ac_ext
7631 fi
7632 echo "$as_me:$LINENO: result: $ac_cv_func_fseeko" >&5
7633 echo "${ECHO_T}$ac_cv_func_fseeko" >&6
7634@@ -9165,7 +10276,6 @@
7635 echo $ECHO_N "(cached) $ECHO_C" >&6
7636 else
7637 cat >conftest.$ac_ext <<_ACEOF
7638-#line $LINENO "configure"
7639 /* confdefs.h. */
7640 _ACEOF
7641 cat confdefs.h >>conftest.$ac_ext
7642@@ -9185,11 +10295,20 @@
7643 _ACEOF
7644 rm -f conftest.$ac_objext
7645 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7646- (eval $ac_compile) 2>&5
7647+ (eval $ac_compile) 2>conftest.er1
7648 ac_status=$?
7649+ grep -v '^ *+' conftest.er1 >conftest.err
7650+ rm -f conftest.er1
7651+ cat conftest.err >&5
7652 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7653 (exit $ac_status); } &&
7654- { ac_try='test -s conftest.$ac_objext'
7655+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7656+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7657+ (eval $ac_try) 2>&5
7658+ ac_status=$?
7659+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7660+ (exit $ac_status); }; } &&
7661+ { ac_try='test -s conftest.$ac_objext'
7662 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7663 (eval $ac_try) 2>&5
7664 ac_status=$?
7665@@ -9202,7 +10321,7 @@
7666
7667 ac_cv_have_decl_clearerr_unlocked=no
7668 fi
7669-rm -f conftest.$ac_objext conftest.$ac_ext
7670+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7671 fi
7672 echo "$as_me:$LINENO: result: $ac_cv_have_decl_clearerr_unlocked" >&5
7673 echo "${ECHO_T}$ac_cv_have_decl_clearerr_unlocked" >&6
7674@@ -9230,7 +10349,6 @@
7675 echo $ECHO_N "(cached) $ECHO_C" >&6
7676 else
7677 cat >conftest.$ac_ext <<_ACEOF
7678-#line $LINENO "configure"
7679 /* confdefs.h. */
7680 _ACEOF
7681 cat confdefs.h >>conftest.$ac_ext
7682@@ -9250,11 +10368,20 @@
7683 _ACEOF
7684 rm -f conftest.$ac_objext
7685 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7686- (eval $ac_compile) 2>&5
7687+ (eval $ac_compile) 2>conftest.er1
7688 ac_status=$?
7689+ grep -v '^ *+' conftest.er1 >conftest.err
7690+ rm -f conftest.er1
7691+ cat conftest.err >&5
7692 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7693 (exit $ac_status); } &&
7694- { ac_try='test -s conftest.$ac_objext'
7695+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7696+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7697+ (eval $ac_try) 2>&5
7698+ ac_status=$?
7699+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7700+ (exit $ac_status); }; } &&
7701+ { ac_try='test -s conftest.$ac_objext'
7702 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7703 (eval $ac_try) 2>&5
7704 ac_status=$?
7705@@ -9267,7 +10394,7 @@
7706
7707 ac_cv_have_decl_feof_unlocked=no
7708 fi
7709-rm -f conftest.$ac_objext conftest.$ac_ext
7710+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7711 fi
7712 echo "$as_me:$LINENO: result: $ac_cv_have_decl_feof_unlocked" >&5
7713 echo "${ECHO_T}$ac_cv_have_decl_feof_unlocked" >&6
7714@@ -9295,7 +10422,6 @@
7715 echo $ECHO_N "(cached) $ECHO_C" >&6
7716 else
7717 cat >conftest.$ac_ext <<_ACEOF
7718-#line $LINENO "configure"
7719 /* confdefs.h. */
7720 _ACEOF
7721 cat confdefs.h >>conftest.$ac_ext
7722@@ -9315,11 +10441,20 @@
7723 _ACEOF
7724 rm -f conftest.$ac_objext
7725 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7726- (eval $ac_compile) 2>&5
7727+ (eval $ac_compile) 2>conftest.er1
7728 ac_status=$?
7729+ grep -v '^ *+' conftest.er1 >conftest.err
7730+ rm -f conftest.er1
7731+ cat conftest.err >&5
7732 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7733 (exit $ac_status); } &&
7734- { ac_try='test -s conftest.$ac_objext'
7735+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7736+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7737+ (eval $ac_try) 2>&5
7738+ ac_status=$?
7739+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7740+ (exit $ac_status); }; } &&
7741+ { ac_try='test -s conftest.$ac_objext'
7742 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7743 (eval $ac_try) 2>&5
7744 ac_status=$?
7745@@ -9332,7 +10467,7 @@
7746
7747 ac_cv_have_decl_ferror_unlocked=no
7748 fi
7749-rm -f conftest.$ac_objext conftest.$ac_ext
7750+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7751 fi
7752 echo "$as_me:$LINENO: result: $ac_cv_have_decl_ferror_unlocked" >&5
7753 echo "${ECHO_T}$ac_cv_have_decl_ferror_unlocked" >&6
7754@@ -9360,7 +10495,6 @@
7755 echo $ECHO_N "(cached) $ECHO_C" >&6
7756 else
7757 cat >conftest.$ac_ext <<_ACEOF
7758-#line $LINENO "configure"
7759 /* confdefs.h. */
7760 _ACEOF
7761 cat confdefs.h >>conftest.$ac_ext
7762@@ -9380,11 +10514,20 @@
7763 _ACEOF
7764 rm -f conftest.$ac_objext
7765 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7766- (eval $ac_compile) 2>&5
7767+ (eval $ac_compile) 2>conftest.er1
7768 ac_status=$?
7769+ grep -v '^ *+' conftest.er1 >conftest.err
7770+ rm -f conftest.er1
7771+ cat conftest.err >&5
7772 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7773 (exit $ac_status); } &&
7774- { ac_try='test -s conftest.$ac_objext'
7775+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7776+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7777+ (eval $ac_try) 2>&5
7778+ ac_status=$?
7779+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7780+ (exit $ac_status); }; } &&
7781+ { ac_try='test -s conftest.$ac_objext'
7782 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7783 (eval $ac_try) 2>&5
7784 ac_status=$?
7785@@ -9397,7 +10540,7 @@
7786
7787 ac_cv_have_decl_fflush_unlocked=no
7788 fi
7789-rm -f conftest.$ac_objext conftest.$ac_ext
7790+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7791 fi
7792 echo "$as_me:$LINENO: result: $ac_cv_have_decl_fflush_unlocked" >&5
7793 echo "${ECHO_T}$ac_cv_have_decl_fflush_unlocked" >&6
7794@@ -9425,7 +10568,6 @@
7795 echo $ECHO_N "(cached) $ECHO_C" >&6
7796 else
7797 cat >conftest.$ac_ext <<_ACEOF
7798-#line $LINENO "configure"
7799 /* confdefs.h. */
7800 _ACEOF
7801 cat confdefs.h >>conftest.$ac_ext
7802@@ -9445,11 +10587,20 @@
7803 _ACEOF
7804 rm -f conftest.$ac_objext
7805 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7806- (eval $ac_compile) 2>&5
7807+ (eval $ac_compile) 2>conftest.er1
7808 ac_status=$?
7809+ grep -v '^ *+' conftest.er1 >conftest.err
7810+ rm -f conftest.er1
7811+ cat conftest.err >&5
7812 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7813 (exit $ac_status); } &&
7814- { ac_try='test -s conftest.$ac_objext'
7815+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7816+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7817+ (eval $ac_try) 2>&5
7818+ ac_status=$?
7819+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7820+ (exit $ac_status); }; } &&
7821+ { ac_try='test -s conftest.$ac_objext'
7822 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7823 (eval $ac_try) 2>&5
7824 ac_status=$?
7825@@ -9462,7 +10613,7 @@
7826
7827 ac_cv_have_decl_fgets_unlocked=no
7828 fi
7829-rm -f conftest.$ac_objext conftest.$ac_ext
7830+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7831 fi
7832 echo "$as_me:$LINENO: result: $ac_cv_have_decl_fgets_unlocked" >&5
7833 echo "${ECHO_T}$ac_cv_have_decl_fgets_unlocked" >&6
7834@@ -9490,7 +10641,6 @@
7835 echo $ECHO_N "(cached) $ECHO_C" >&6
7836 else
7837 cat >conftest.$ac_ext <<_ACEOF
7838-#line $LINENO "configure"
7839 /* confdefs.h. */
7840 _ACEOF
7841 cat confdefs.h >>conftest.$ac_ext
7842@@ -9510,11 +10660,20 @@
7843 _ACEOF
7844 rm -f conftest.$ac_objext
7845 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7846- (eval $ac_compile) 2>&5
7847+ (eval $ac_compile) 2>conftest.er1
7848 ac_status=$?
7849+ grep -v '^ *+' conftest.er1 >conftest.err
7850+ rm -f conftest.er1
7851+ cat conftest.err >&5
7852 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7853 (exit $ac_status); } &&
7854- { ac_try='test -s conftest.$ac_objext'
7855+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7856+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7857+ (eval $ac_try) 2>&5
7858+ ac_status=$?
7859+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7860+ (exit $ac_status); }; } &&
7861+ { ac_try='test -s conftest.$ac_objext'
7862 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7863 (eval $ac_try) 2>&5
7864 ac_status=$?
7865@@ -9527,7 +10686,7 @@
7866
7867 ac_cv_have_decl_fputc_unlocked=no
7868 fi
7869-rm -f conftest.$ac_objext conftest.$ac_ext
7870+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7871 fi
7872 echo "$as_me:$LINENO: result: $ac_cv_have_decl_fputc_unlocked" >&5
7873 echo "${ECHO_T}$ac_cv_have_decl_fputc_unlocked" >&6
7874@@ -9555,7 +10714,6 @@
7875 echo $ECHO_N "(cached) $ECHO_C" >&6
7876 else
7877 cat >conftest.$ac_ext <<_ACEOF
7878-#line $LINENO "configure"
7879 /* confdefs.h. */
7880 _ACEOF
7881 cat confdefs.h >>conftest.$ac_ext
7882@@ -9575,11 +10733,20 @@
7883 _ACEOF
7884 rm -f conftest.$ac_objext
7885 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7886- (eval $ac_compile) 2>&5
7887+ (eval $ac_compile) 2>conftest.er1
7888 ac_status=$?
7889+ grep -v '^ *+' conftest.er1 >conftest.err
7890+ rm -f conftest.er1
7891+ cat conftest.err >&5
7892 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7893 (exit $ac_status); } &&
7894- { ac_try='test -s conftest.$ac_objext'
7895+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7896+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7897+ (eval $ac_try) 2>&5
7898+ ac_status=$?
7899+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7900+ (exit $ac_status); }; } &&
7901+ { ac_try='test -s conftest.$ac_objext'
7902 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7903 (eval $ac_try) 2>&5
7904 ac_status=$?
7905@@ -9592,7 +10759,7 @@
7906
7907 ac_cv_have_decl_fputs_unlocked=no
7908 fi
7909-rm -f conftest.$ac_objext conftest.$ac_ext
7910+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7911 fi
7912 echo "$as_me:$LINENO: result: $ac_cv_have_decl_fputs_unlocked" >&5
7913 echo "${ECHO_T}$ac_cv_have_decl_fputs_unlocked" >&6
7914@@ -9620,7 +10787,6 @@
7915 echo $ECHO_N "(cached) $ECHO_C" >&6
7916 else
7917 cat >conftest.$ac_ext <<_ACEOF
7918-#line $LINENO "configure"
7919 /* confdefs.h. */
7920 _ACEOF
7921 cat confdefs.h >>conftest.$ac_ext
7922@@ -9640,11 +10806,20 @@
7923 _ACEOF
7924 rm -f conftest.$ac_objext
7925 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7926- (eval $ac_compile) 2>&5
7927+ (eval $ac_compile) 2>conftest.er1
7928 ac_status=$?
7929+ grep -v '^ *+' conftest.er1 >conftest.err
7930+ rm -f conftest.er1
7931+ cat conftest.err >&5
7932 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7933 (exit $ac_status); } &&
7934- { ac_try='test -s conftest.$ac_objext'
7935+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7936+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7937+ (eval $ac_try) 2>&5
7938+ ac_status=$?
7939+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7940+ (exit $ac_status); }; } &&
7941+ { ac_try='test -s conftest.$ac_objext'
7942 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7943 (eval $ac_try) 2>&5
7944 ac_status=$?
7945@@ -9657,7 +10832,7 @@
7946
7947 ac_cv_have_decl_fread_unlocked=no
7948 fi
7949-rm -f conftest.$ac_objext conftest.$ac_ext
7950+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7951 fi
7952 echo "$as_me:$LINENO: result: $ac_cv_have_decl_fread_unlocked" >&5
7953 echo "${ECHO_T}$ac_cv_have_decl_fread_unlocked" >&6
7954@@ -9685,7 +10860,6 @@
7955 echo $ECHO_N "(cached) $ECHO_C" >&6
7956 else
7957 cat >conftest.$ac_ext <<_ACEOF
7958-#line $LINENO "configure"
7959 /* confdefs.h. */
7960 _ACEOF
7961 cat confdefs.h >>conftest.$ac_ext
7962@@ -9705,11 +10879,20 @@
7963 _ACEOF
7964 rm -f conftest.$ac_objext
7965 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7966- (eval $ac_compile) 2>&5
7967+ (eval $ac_compile) 2>conftest.er1
7968 ac_status=$?
7969+ grep -v '^ *+' conftest.er1 >conftest.err
7970+ rm -f conftest.er1
7971+ cat conftest.err >&5
7972 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7973 (exit $ac_status); } &&
7974- { ac_try='test -s conftest.$ac_objext'
7975+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7976+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7977+ (eval $ac_try) 2>&5
7978+ ac_status=$?
7979+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
7980+ (exit $ac_status); }; } &&
7981+ { ac_try='test -s conftest.$ac_objext'
7982 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7983 (eval $ac_try) 2>&5
7984 ac_status=$?
7985@@ -9722,7 +10905,7 @@
7986
7987 ac_cv_have_decl_fwrite_unlocked=no
7988 fi
7989-rm -f conftest.$ac_objext conftest.$ac_ext
7990+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7991 fi
7992 echo "$as_me:$LINENO: result: $ac_cv_have_decl_fwrite_unlocked" >&5
7993 echo "${ECHO_T}$ac_cv_have_decl_fwrite_unlocked" >&6
7994@@ -9750,7 +10933,6 @@
7995 echo $ECHO_N "(cached) $ECHO_C" >&6
7996 else
7997 cat >conftest.$ac_ext <<_ACEOF
7998-#line $LINENO "configure"
7999 /* confdefs.h. */
8000 _ACEOF
8001 cat confdefs.h >>conftest.$ac_ext
8002@@ -9770,11 +10952,20 @@
8003 _ACEOF
8004 rm -f conftest.$ac_objext
8005 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
8006- (eval $ac_compile) 2>&5
8007+ (eval $ac_compile) 2>conftest.er1
8008 ac_status=$?
8009+ grep -v '^ *+' conftest.er1 >conftest.err
8010+ rm -f conftest.er1
8011+ cat conftest.err >&5
8012 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8013 (exit $ac_status); } &&
8014- { ac_try='test -s conftest.$ac_objext'
8015+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8016+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8017+ (eval $ac_try) 2>&5
8018+ ac_status=$?
8019+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
8020+ (exit $ac_status); }; } &&
8021+ { ac_try='test -s conftest.$ac_objext'
8022 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8023 (eval $ac_try) 2>&5
8024 ac_status=$?
8025@@ -9787,7 +10978,7 @@
8026
8027 ac_cv_have_decl_getc_unlocked=no
8028 fi
8029-rm -f conftest.$ac_objext conftest.$ac_ext
8030+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
8031 fi
8032 echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5
8033 echo "${ECHO_T}$ac_cv_have_decl_getc_unlocked" >&6
8034@@ -9815,7 +11006,6 @@
8035 echo $ECHO_N "(cached) $ECHO_C" >&6
8036 else
8037 cat >conftest.$ac_ext <<_ACEOF
8038-#line $LINENO "configure"
8039 /* confdefs.h. */
8040 _ACEOF
8041 cat confdefs.h >>conftest.$ac_ext
8042@@ -9835,11 +11025,20 @@
8043 _ACEOF
8044 rm -f conftest.$ac_objext
8045 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
8046- (eval $ac_compile) 2>&5
8047+ (eval $ac_compile) 2>conftest.er1
8048 ac_status=$?
8049+ grep -v '^ *+' conftest.er1 >conftest.err
8050+ rm -f conftest.er1
8051+ cat conftest.err >&5
8052 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8053 (exit $ac_status); } &&
8054- { ac_try='test -s conftest.$ac_objext'
8055+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8056+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8057+ (eval $ac_try) 2>&5
8058+ ac_status=$?
8059+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
8060+ (exit $ac_status); }; } &&
8061+ { ac_try='test -s conftest.$ac_objext'
8062 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8063 (eval $ac_try) 2>&5
8064 ac_status=$?
8065@@ -9852,7 +11051,7 @@
8066
8067 ac_cv_have_decl_getchar_unlocked=no
8068 fi
8069-rm -f conftest.$ac_objext conftest.$ac_ext
8070+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
8071 fi
8072 echo "$as_me:$LINENO: result: $ac_cv_have_decl_getchar_unlocked" >&5
8073 echo "${ECHO_T}$ac_cv_have_decl_getchar_unlocked" >&6
8074@@ -9880,7 +11079,6 @@
8075 echo $ECHO_N "(cached) $ECHO_C" >&6
8076 else
8077 cat >conftest.$ac_ext <<_ACEOF
8078-#line $LINENO "configure"
8079 /* confdefs.h. */
8080 _ACEOF
8081 cat confdefs.h >>conftest.$ac_ext
8082@@ -9900,11 +11098,20 @@
8083 _ACEOF
8084 rm -f conftest.$ac_objext
8085 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
8086- (eval $ac_compile) 2>&5
8087+ (eval $ac_compile) 2>conftest.er1
8088 ac_status=$?
8089+ grep -v '^ *+' conftest.er1 >conftest.err
8090+ rm -f conftest.er1
8091+ cat conftest.err >&5
8092 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8093 (exit $ac_status); } &&
8094- { ac_try='test -s conftest.$ac_objext'
8095+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8096+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8097+ (eval $ac_try) 2>&5
8098+ ac_status=$?
8099+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
8100+ (exit $ac_status); }; } &&
8101+ { ac_try='test -s conftest.$ac_objext'
8102 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8103 (eval $ac_try) 2>&5
8104 ac_status=$?
8105@@ -9917,7 +11124,7 @@
8106
8107 ac_cv_have_decl_putc_unlocked=no
8108 fi
8109-rm -f conftest.$ac_objext conftest.$ac_ext
8110+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
8111 fi
8112 echo "$as_me:$LINENO: result: $ac_cv_have_decl_putc_unlocked" >&5
8113 echo "${ECHO_T}$ac_cv_have_decl_putc_unlocked" >&6
8114@@ -9945,7 +11152,6 @@
8115 echo $ECHO_N "(cached) $ECHO_C" >&6
8116 else
8117 cat >conftest.$ac_ext <<_ACEOF
8118-#line $LINENO "configure"
8119 /* confdefs.h. */
8120 _ACEOF
8121 cat confdefs.h >>conftest.$ac_ext
8122@@ -9965,11 +11171,20 @@
8123 _ACEOF
8124 rm -f conftest.$ac_objext
8125 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
8126- (eval $ac_compile) 2>&5
8127+ (eval $ac_compile) 2>conftest.er1
8128 ac_status=$?
8129+ grep -v '^ *+' conftest.er1 >conftest.err
8130+ rm -f conftest.er1
8131+ cat conftest.err >&5
8132 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8133 (exit $ac_status); } &&
8134- { ac_try='test -s conftest.$ac_objext'
8135+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8136+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8137+ (eval $ac_try) 2>&5
8138+ ac_status=$?
8139+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
8140+ (exit $ac_status); }; } &&
8141+ { ac_try='test -s conftest.$ac_objext'
8142 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8143 (eval $ac_try) 2>&5
8144 ac_status=$?
8145@@ -9982,7 +11197,7 @@
8146
8147 ac_cv_have_decl_putchar_unlocked=no
8148 fi
8149-rm -f conftest.$ac_objext conftest.$ac_ext
8150+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
8151 fi
8152 echo "$as_me:$LINENO: result: $ac_cv_have_decl_putchar_unlocked" >&5
8153 echo "${ECHO_T}$ac_cv_have_decl_putchar_unlocked" >&6
8154@@ -10075,7 +11290,6 @@
8155 ac_cv_func_closedir_void=yes
8156 else
8157 cat >conftest.$ac_ext <<_ACEOF
8158-#line $LINENO "configure"
8159 /* confdefs.h. */
8160 _ACEOF
8161 cat confdefs.h >>conftest.$ac_ext
8162@@ -10115,7 +11329,7 @@
8163 ( exit $ac_status )
8164 ac_cv_func_closedir_void=yes
8165 fi
8166-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
8167+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
8168 fi
8169 fi
8170 echo "$as_me:$LINENO: result: $ac_cv_func_closedir_void" >&5
8171@@ -10146,7 +11360,6 @@
8172 echo "$as_me:$LINENO: checking $ac_header usability" >&5
8173 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
8174 cat >conftest.$ac_ext <<_ACEOF
8175-#line $LINENO "configure"
8176 /* confdefs.h. */
8177 _ACEOF
8178 cat confdefs.h >>conftest.$ac_ext
8179@@ -10157,11 +11370,20 @@
8180 _ACEOF
8181 rm -f conftest.$ac_objext
8182 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
8183- (eval $ac_compile) 2>&5
8184+ (eval $ac_compile) 2>conftest.er1
8185 ac_status=$?
8186+ grep -v '^ *+' conftest.er1 >conftest.err
8187+ rm -f conftest.er1
8188+ cat conftest.err >&5
8189 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8190 (exit $ac_status); } &&
8191- { ac_try='test -s conftest.$ac_objext'
8192+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8193+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8194+ (eval $ac_try) 2>&5
8195+ ac_status=$?
8196+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
8197+ (exit $ac_status); }; } &&
8198+ { ac_try='test -s conftest.$ac_objext'
8199 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8200 (eval $ac_try) 2>&5
8201 ac_status=$?
8202@@ -10174,7 +11396,7 @@
8203
8204 ac_header_compiler=no
8205 fi
8206-rm -f conftest.$ac_objext conftest.$ac_ext
8207+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
8208 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
8209 echo "${ECHO_T}$ac_header_compiler" >&6
8210
8211@@ -10182,7 +11404,6 @@
8212 echo "$as_me:$LINENO: checking $ac_header presence" >&5
8213 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
8214 cat >conftest.$ac_ext <<_ACEOF
8215-#line $LINENO "configure"
8216 /* confdefs.h. */
8217 _ACEOF
8218 cat confdefs.h >>conftest.$ac_ext
8219@@ -10200,6 +11421,7 @@
8220 (exit $ac_status); } >/dev/null; then
8221 if test -s conftest.err; then
8222 ac_cpp_err=$ac_c_preproc_warn_flag
8223+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
8224 else
8225 ac_cpp_err=
8226 fi
8227@@ -10219,33 +11441,32 @@
8228 echo "${ECHO_T}$ac_header_preproc" >&6
8229
8230 # So? What about this header?
8231-case $ac_header_compiler:$ac_header_preproc in
8232- yes:no )
8233+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
8234+ yes:no: )
8235 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
8236 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
8237- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
8238-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
8239- (
8240- cat <<\_ASBOX
8241-## ------------------------------------ ##
8242-## Report this to bug-autoconf@gnu.org. ##
8243-## ------------------------------------ ##
8244-_ASBOX
8245- ) |
8246- sed "s/^/$as_me: WARNING: /" >&2
8247+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
8248+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
8249+ ac_header_preproc=yes
8250 ;;
8251- no:yes )
8252+ no:yes:* )
8253 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
8254 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
8255- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
8256-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
8257+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
8258+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
8259+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
8260+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
8261+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
8262+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
8263 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
8264 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
8265+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
8266+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
8267 (
8268 cat <<\_ASBOX
8269-## ------------------------------------ ##
8270-## Report this to bug-autoconf@gnu.org. ##
8271-## ------------------------------------ ##
8272+## -------------------------------- ##
8273+## Report this to bug-patch@gnu.org ##
8274+## -------------------------------- ##
8275 _ASBOX
8276 ) |
8277 sed "s/^/$as_me: WARNING: /" >&2
8278@@ -10256,7 +11477,7 @@
8279 if eval "test \"\${$as_ac_Header+set}\" = set"; then
8280 echo $ECHO_N "(cached) $ECHO_C" >&6
8281 else
8282- eval "$as_ac_Header=$ac_header_preproc"
8283+ eval "$as_ac_Header=\$ac_header_preproc"
8284 fi
8285 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
8286 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
8287@@ -10277,7 +11498,6 @@
8288 echo $ECHO_N "(cached) $ECHO_C" >&6
8289 else
8290 cat >conftest.$ac_ext <<_ACEOF
8291-#line $LINENO "configure"
8292 /* confdefs.h. */
8293 _ACEOF
8294 cat confdefs.h >>conftest.$ac_ext
8295@@ -10300,11 +11520,20 @@
8296 _ACEOF
8297 rm -f conftest.$ac_objext conftest$ac_exeext
8298 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8299- (eval $ac_link) 2>&5
8300+ (eval $ac_link) 2>conftest.er1
8301 ac_status=$?
8302+ grep -v '^ *+' conftest.er1 >conftest.err
8303+ rm -f conftest.er1
8304+ cat conftest.err >&5
8305 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8306 (exit $ac_status); } &&
8307- { ac_try='test -s conftest$ac_exeext'
8308+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8309+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8310+ (eval $ac_try) 2>&5
8311+ ac_status=$?
8312+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
8313+ (exit $ac_status); }; } &&
8314+ { ac_try='test -s conftest$ac_exeext'
8315 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8316 (eval $ac_try) 2>&5
8317 ac_status=$?
8318@@ -10317,7 +11546,8 @@
8319
8320 ac_cv_func_setmode_dos=no
8321 fi
8322-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8323+rm -f conftest.err conftest.$ac_objext \
8324+ conftest$ac_exeext conftest.$ac_ext
8325 fi
8326 echo "$as_me:$LINENO: result: $ac_cv_func_setmode_dos" >&5
8327 echo "${ECHO_T}$ac_cv_func_setmode_dos" >&6
8328@@ -10338,21 +11568,28 @@
8329 echo $ECHO_N "(cached) $ECHO_C" >&6
8330 else
8331 cat >conftest.$ac_ext <<_ACEOF
8332-#line $LINENO "configure"
8333 /* confdefs.h. */
8334 _ACEOF
8335 cat confdefs.h >>conftest.$ac_ext
8336 cat >>conftest.$ac_ext <<_ACEOF
8337 /* end confdefs.h. */
8338+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
8339+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
8340+#define $ac_func innocuous_$ac_func
8341+
8342 /* System header to define __stub macros and hopefully few prototypes,
8343 which can conflict with char $ac_func (); below.
8344 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
8345 <limits.h> exists even on freestanding compilers. */
8346+
8347 #ifdef __STDC__
8348 # include <limits.h>
8349 #else
8350 # include <assert.h>
8351 #endif
8352+
8353+#undef $ac_func
8354+
8355 /* Override any gcc2 internal prototype to avoid an error. */
8356 #ifdef __cplusplus
8357 extern "C"
8358@@ -10383,11 +11620,20 @@
8359 _ACEOF
8360 rm -f conftest.$ac_objext conftest$ac_exeext
8361 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8362- (eval $ac_link) 2>&5
8363+ (eval $ac_link) 2>conftest.er1
8364 ac_status=$?
8365+ grep -v '^ *+' conftest.er1 >conftest.err
8366+ rm -f conftest.er1
8367+ cat conftest.err >&5
8368 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8369 (exit $ac_status); } &&
8370- { ac_try='test -s conftest$ac_exeext'
8371+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8372+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8373+ (eval $ac_try) 2>&5
8374+ ac_status=$?
8375+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
8376+ (exit $ac_status); }; } &&
8377+ { ac_try='test -s conftest$ac_exeext'
8378 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8379 (eval $ac_try) 2>&5
8380 ac_status=$?
8381@@ -10400,7 +11646,8 @@
8382
8383 eval "$as_ac_var=no"
8384 fi
8385-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8386+rm -f conftest.err conftest.$ac_objext \
8387+ conftest$ac_exeext conftest.$ac_ext
8388 fi
8389 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
8390 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
8391@@ -10415,21 +11662,28 @@
8392 echo $ECHO_N "(cached) $ECHO_C" >&6
8393 else
8394 cat >conftest.$ac_ext <<_ACEOF
8395-#line $LINENO "configure"
8396 /* confdefs.h. */
8397 _ACEOF
8398 cat confdefs.h >>conftest.$ac_ext
8399 cat >>conftest.$ac_ext <<_ACEOF
8400 /* end confdefs.h. */
8401+/* Define _doprnt to an innocuous variant, in case <limits.h> declares _doprnt.
8402+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
8403+#define _doprnt innocuous__doprnt
8404+
8405 /* System header to define __stub macros and hopefully few prototypes,
8406 which can conflict with char _doprnt (); below.
8407 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
8408 <limits.h> exists even on freestanding compilers. */
8409+
8410 #ifdef __STDC__
8411 # include <limits.h>
8412 #else
8413 # include <assert.h>
8414 #endif
8415+
8416+#undef _doprnt
8417+
8418 /* Override any gcc2 internal prototype to avoid an error. */
8419 #ifdef __cplusplus
8420 extern "C"
8421@@ -10460,11 +11714,20 @@
8422 _ACEOF
8423 rm -f conftest.$ac_objext conftest$ac_exeext
8424 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8425- (eval $ac_link) 2>&5
8426+ (eval $ac_link) 2>conftest.er1
8427 ac_status=$?
8428+ grep -v '^ *+' conftest.er1 >conftest.err
8429+ rm -f conftest.er1
8430+ cat conftest.err >&5
8431 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8432 (exit $ac_status); } &&
8433- { ac_try='test -s conftest$ac_exeext'
8434+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8435+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8436+ (eval $ac_try) 2>&5
8437+ ac_status=$?
8438+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
8439+ (exit $ac_status); }; } &&
8440+ { ac_try='test -s conftest$ac_exeext'
8441 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8442 (eval $ac_try) 2>&5
8443 ac_status=$?
8444@@ -10477,7 +11740,8 @@
8445
8446 ac_cv_func__doprnt=no
8447 fi
8448-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8449+rm -f conftest.err conftest.$ac_objext \
8450+ conftest$ac_exeext conftest.$ac_ext
8451 fi
8452 echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5
8453 echo "${ECHO_T}$ac_cv_func__doprnt" >&6
8454@@ -10503,21 +11767,28 @@
8455 echo $ECHO_N "(cached) $ECHO_C" >&6
8456 else
8457 cat >conftest.$ac_ext <<_ACEOF
8458-#line $LINENO "configure"
8459 /* confdefs.h. */
8460 _ACEOF
8461 cat confdefs.h >>conftest.$ac_ext
8462 cat >>conftest.$ac_ext <<_ACEOF
8463 /* end confdefs.h. */
8464+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
8465+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
8466+#define $ac_func innocuous_$ac_func
8467+
8468 /* System header to define __stub macros and hopefully few prototypes,
8469 which can conflict with char $ac_func (); below.
8470 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
8471 <limits.h> exists even on freestanding compilers. */
8472+
8473 #ifdef __STDC__
8474 # include <limits.h>
8475 #else
8476 # include <assert.h>
8477 #endif
8478+
8479+#undef $ac_func
8480+
8481 /* Override any gcc2 internal prototype to avoid an error. */
8482 #ifdef __cplusplus
8483 extern "C"
8484@@ -10548,11 +11819,20 @@
8485 _ACEOF
8486 rm -f conftest.$ac_objext conftest$ac_exeext
8487 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8488- (eval $ac_link) 2>&5
8489+ (eval $ac_link) 2>conftest.er1
8490 ac_status=$?
8491+ grep -v '^ *+' conftest.er1 >conftest.err
8492+ rm -f conftest.er1
8493+ cat conftest.err >&5
8494 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8495 (exit $ac_status); } &&
8496- { ac_try='test -s conftest$ac_exeext'
8497+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8498+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8499+ (eval $ac_try) 2>&5
8500+ ac_status=$?
8501+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
8502+ (exit $ac_status); }; } &&
8503+ { ac_try='test -s conftest$ac_exeext'
8504 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8505 (eval $ac_try) 2>&5
8506 ac_status=$?
8507@@ -10565,7 +11845,8 @@
8508
8509 eval "$as_ac_var=no"
8510 fi
8511-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
8512+rm -f conftest.err conftest.$ac_objext \
8513+ conftest$ac_exeext conftest.$ac_ext
8514 fi
8515 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
8516 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
8517@@ -10585,7 +11866,6 @@
8518 patch_cv_mkdir_takes_one_arg=no
8519 if test $ac_cv_func_mkdir = yes; then
8520 cat >conftest.$ac_ext <<_ACEOF
8521-#line $LINENO "configure"
8522 /* confdefs.h. */
8523 _ACEOF
8524 cat confdefs.h >>conftest.$ac_ext
8525@@ -10605,11 +11885,20 @@
8526 _ACEOF
8527 rm -f conftest.$ac_objext
8528 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
8529- (eval $ac_compile) 2>&5
8530+ (eval $ac_compile) 2>conftest.er1
8531 ac_status=$?
8532+ grep -v '^ *+' conftest.er1 >conftest.err
8533+ rm -f conftest.er1
8534+ cat conftest.err >&5
8535 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8536 (exit $ac_status); } &&
8537- { ac_try='test -s conftest.$ac_objext'
8538+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8539+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8540+ (eval $ac_try) 2>&5
8541+ ac_status=$?
8542+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
8543+ (exit $ac_status); }; } &&
8544+ { ac_try='test -s conftest.$ac_objext'
8545 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8546 (eval $ac_try) 2>&5
8547 ac_status=$?
8548@@ -10621,7 +11910,6 @@
8549 sed 's/^/| /' conftest.$ac_ext >&5
8550
8551 cat >conftest.$ac_ext <<_ACEOF
8552-#line $LINENO "configure"
8553 /* confdefs.h. */
8554 _ACEOF
8555 cat confdefs.h >>conftest.$ac_ext
8556@@ -10641,11 +11929,20 @@
8557 _ACEOF
8558 rm -f conftest.$ac_objext
8559 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
8560- (eval $ac_compile) 2>&5
8561+ (eval $ac_compile) 2>conftest.er1
8562 ac_status=$?
8563+ grep -v '^ *+' conftest.er1 >conftest.err
8564+ rm -f conftest.er1
8565+ cat conftest.err >&5
8566 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8567 (exit $ac_status); } &&
8568- { ac_try='test -s conftest.$ac_objext'
8569+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8570+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8571+ (eval $ac_try) 2>&5
8572+ ac_status=$?
8573+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
8574+ (exit $ac_status); }; } &&
8575+ { ac_try='test -s conftest.$ac_objext'
8576 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8577 (eval $ac_try) 2>&5
8578 ac_status=$?
8579@@ -10658,10 +11955,10 @@
8580 sed 's/^/| /' conftest.$ac_ext >&5
8581
8582 fi
8583-rm -f conftest.$ac_objext conftest.$ac_ext
8584+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
8585
8586 fi
8587-rm -f conftest.$ac_objext conftest.$ac_ext
8588+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
8589 fi
8590
8591
8592@@ -10686,7 +11983,6 @@
8593 else
8594
8595 cat >conftest.$ac_ext <<_ACEOF
8596-#line $LINENO "configure"
8597 /* confdefs.h. */
8598 _ACEOF
8599 cat confdefs.h >>conftest.$ac_ext
8600@@ -10705,11 +12001,20 @@
8601 _ACEOF
8602 rm -f conftest.$ac_objext
8603 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
8604- (eval $ac_compile) 2>&5
8605+ (eval $ac_compile) 2>conftest.er1
8606 ac_status=$?
8607+ grep -v '^ *+' conftest.er1 >conftest.err
8608+ rm -f conftest.er1
8609+ cat conftest.err >&5
8610 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8611 (exit $ac_status); } &&
8612- { ac_try='test -s conftest.$ac_objext'
8613+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8614+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8615+ (eval $ac_try) 2>&5
8616+ ac_status=$?
8617+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
8618+ (exit $ac_status); }; } &&
8619+ { ac_try='test -s conftest.$ac_objext'
8620 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8621 (eval $ac_try) 2>&5
8622 ac_status=$?
8623@@ -10722,7 +12027,7 @@
8624
8625 ac_cv_win_or_dos=no
8626 fi
8627-rm -f conftest.$ac_objext conftest.$ac_ext
8628+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
8629
8630 fi
8631 echo "$as_me:$LINENO: result: $ac_cv_win_or_dos" >&5
8632@@ -10834,13 +12139,13 @@
8633 # `set' does not quote correctly, so add quotes (double-quote
8634 # substitution turns \\\\ into \\, and sed turns \\ into \).
8635 sed -n \
8636- "s/'/'\\\\''/g;
8637- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
8638+ "s/'/'\\\\''/g;
8639+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
8640 ;;
8641 *)
8642 # `set' quotes correctly as required by POSIX, so do not add quotes.
8643 sed -n \
8644- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
8645+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
8646 ;;
8647 esac;
8648 } |
8649@@ -10870,13 +12175,13 @@
8650 # trailing colons and then remove the whole line if VPATH becomes empty
8651 # (actually we leave an empty line to preserve line numbers).
8652 if test "x$srcdir" = x.; then
8653- ac_vpsub='/^[ ]*VPATH[ ]*=/{
8654+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
8655 s/:*\$(srcdir):*/:/;
8656 s/:*\${srcdir}:*/:/;
8657 s/:*@srcdir@:*/:/;
8658-s/^\([^=]*=[ ]*\):*/\1/;
8659+s/^\([^=]*=[ ]*\):*/\1/;
8660 s/:*$//;
8661-s/^[^=]*=[ ]*$//;
8662+s/^[^=]*=[ ]*$//;
8663 }'
8664 fi
8665
8666@@ -10887,7 +12192,7 @@
8667 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
8668 # 1. Remove the extension, and $U if already installed.
8669 ac_i=`echo "$ac_i" |
8670- sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
8671+ sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
8672 # 2. Add them.
8673 ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
8674 ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
8675@@ -10931,9 +12236,10 @@
8676 elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
8677 set -o posix
8678 fi
8679+DUALCASE=1; export DUALCASE # for MKS sh
8680
8681 # Support unset when possible.
8682-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
8683+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
8684 as_unset=unset
8685 else
8686 as_unset=false
8687@@ -10952,7 +12258,7 @@
8688 LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
8689 LC_TELEPHONE LC_TIME
8690 do
8691- if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
8692+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
8693 eval $as_var=C; export $as_var
8694 else
8695 $as_unset $as_var
8696@@ -11131,16 +12437,17 @@
8697 if mkdir -p . 2>/dev/null; then
8698 as_mkdir_p=:
8699 else
8700+ test -d ./-p && rmdir ./-p
8701 as_mkdir_p=false
8702 fi
8703
8704 as_executable_p="test -f"
8705
8706 # Sed expression to map a string onto a valid CPP name.
8707-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
8708+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
8709
8710 # Sed expression to map a string onto a valid variable name.
8711-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
8712+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
8713
8714
8715 # IFS
8716@@ -11167,7 +12474,7 @@
8717 cat >&5 <<_CSEOF
8718
8719 This file was extended by patch $as_me 2.5.9, which was
8720-generated by GNU Autoconf 2.57. Invocation command line was
8721+generated by GNU Autoconf 2.59. Invocation command line was
8722
8723 CONFIG_FILES = $CONFIG_FILES
8724 CONFIG_HEADERS = $CONFIG_HEADERS
8725@@ -11211,9 +12518,9 @@
8726 -d, --debug don't remove temporary files
8727 --recheck update $as_me by reconfiguring in the same conditions
8728 --file=FILE[:TEMPLATE]
8729- instantiate the configuration file FILE
8730+ instantiate the configuration file FILE
8731 --header=FILE[:TEMPLATE]
8732- instantiate the configuration header FILE
8733+ instantiate the configuration header FILE
8734
8735 Configuration files:
8736 $config_files
8737@@ -11227,11 +12534,10 @@
8738 cat >>$CONFIG_STATUS <<_ACEOF
8739 ac_cs_version="\\
8740 patch config.status 2.5.9
8741-configured by $0, generated by GNU Autoconf 2.57,
8742+configured by $0, generated by GNU Autoconf 2.59,
8743 with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
8744
8745-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
8746-Free Software Foundation, Inc.
8747+Copyright (C) 2003 Free Software Foundation, Inc.
8748 This config.status script is free software; the Free Software Foundation
8749 gives unlimited permission to copy, distribute and modify it."
8750 srcdir=$srcdir
8751@@ -11463,9 +12769,9 @@
8752 (echo ':t
8753 /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
8754 if test -z "$ac_sed_cmds"; then
8755- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
8756+ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
8757 else
8758- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
8759+ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
8760 fi
8761 ac_sed_frag=`expr $ac_sed_frag + 1`
8762 ac_beg=$ac_end
8763@@ -11483,21 +12789,21 @@
8764 # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
8765 case $ac_file in
8766 - | *:- | *:-:* ) # input from stdin
8767- cat >$tmp/stdin
8768- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
8769- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
8770+ cat >$tmp/stdin
8771+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
8772+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
8773 *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
8774- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
8775+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
8776 * ) ac_file_in=$ac_file.in ;;
8777 esac
8778
8779 # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
8780 ac_dir=`(dirname "$ac_file") 2>/dev/null ||
8781 $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
8782- X"$ac_file" : 'X\(//\)[^/]' \| \
8783- X"$ac_file" : 'X\(//\)$' \| \
8784- X"$ac_file" : 'X\(/\)' \| \
8785- . : '\(.\)' 2>/dev/null ||
8786+ X"$ac_file" : 'X\(//\)[^/]' \| \
8787+ X"$ac_file" : 'X\(//\)$' \| \
8788+ X"$ac_file" : 'X\(/\)' \| \
8789+ . : '\(.\)' 2>/dev/null ||
8790 echo X"$ac_file" |
8791 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
8792 /^X\(\/\/\)[^/].*/{ s//\1/; q; }
8793@@ -11513,10 +12819,10 @@
8794 as_dirs="$as_dir $as_dirs"
8795 as_dir=`(dirname "$as_dir") 2>/dev/null ||
8796 $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
8797- X"$as_dir" : 'X\(//\)[^/]' \| \
8798- X"$as_dir" : 'X\(//\)$' \| \
8799- X"$as_dir" : 'X\(/\)' \| \
8800- . : '\(.\)' 2>/dev/null ||
8801+ X"$as_dir" : 'X\(//\)[^/]' \| \
8802+ X"$as_dir" : 'X\(//\)$' \| \
8803+ X"$as_dir" : 'X\(/\)' \| \
8804+ . : '\(.\)' 2>/dev/null ||
8805 echo X"$as_dir" |
8806 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
8807 /^X\(\/\/\)[^/].*/{ s//\1/; q; }
8808@@ -11554,12 +12860,45 @@
8809 ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
8810 ac_top_srcdir=$ac_top_builddir$srcdir ;;
8811 esac
8812-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
8813-# absolute.
8814-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
8815-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
8816-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
8817-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
8818+
8819+# Do not use `cd foo && pwd` to compute absolute paths, because
8820+# the directories may not exist.
8821+case `pwd` in
8822+.) ac_abs_builddir="$ac_dir";;
8823+*)
8824+ case "$ac_dir" in
8825+ .) ac_abs_builddir=`pwd`;;
8826+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
8827+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
8828+ esac;;
8829+esac
8830+case $ac_abs_builddir in
8831+.) ac_abs_top_builddir=${ac_top_builddir}.;;
8832+*)
8833+ case ${ac_top_builddir}. in
8834+ .) ac_abs_top_builddir=$ac_abs_builddir;;
8835+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
8836+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
8837+ esac;;
8838+esac
8839+case $ac_abs_builddir in
8840+.) ac_abs_srcdir=$ac_srcdir;;
8841+*)
8842+ case $ac_srcdir in
8843+ .) ac_abs_srcdir=$ac_abs_builddir;;
8844+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
8845+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
8846+ esac;;
8847+esac
8848+case $ac_abs_builddir in
8849+.) ac_abs_top_srcdir=$ac_top_srcdir;;
8850+*)
8851+ case $ac_top_srcdir in
8852+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
8853+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
8854+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
8855+ esac;;
8856+esac
8857
8858
8859 case $INSTALL in
8860@@ -11567,11 +12906,6 @@
8861 *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
8862 esac
8863
8864- if test x"$ac_file" != x-; then
8865- { echo "$as_me:$LINENO: creating $ac_file" >&5
8866-echo "$as_me: creating $ac_file" >&6;}
8867- rm -f "$ac_file"
8868- fi
8869 # Let's still pretend it is `configure' which instantiates (i.e., don't
8870 # use $as_me), people would be surprised to read:
8871 # /* config.h. Generated by config.status. */
8872@@ -11581,7 +12915,7 @@
8873 configure_input="$ac_file. "
8874 fi
8875 configure_input=$configure_input"Generated from `echo $ac_file_in |
8876- sed 's,.*/,,'` by configure."
8877+ sed 's,.*/,,'` by configure."
8878
8879 # First look for the input files in the build tree, otherwise in the
8880 # src tree.
8881@@ -11590,26 +12924,32 @@
8882 case $f in
8883 -) echo $tmp/stdin ;;
8884 [\\/$]*)
8885- # Absolute (can't be DOS-style, as IFS=:)
8886- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
8887+ # Absolute (can't be DOS-style, as IFS=:)
8888+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
8889 echo "$as_me: error: cannot find input file: $f" >&2;}
8890 { (exit 1); exit 1; }; }
8891- echo $f;;
8892+ echo "$f";;
8893 *) # Relative
8894- if test -f "$f"; then
8895- # Build tree
8896- echo $f
8897- elif test -f "$srcdir/$f"; then
8898- # Source tree
8899- echo $srcdir/$f
8900- else
8901- # /dev/null tree
8902- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
8903+ if test -f "$f"; then
8904+ # Build tree
8905+ echo "$f"
8906+ elif test -f "$srcdir/$f"; then
8907+ # Source tree
8908+ echo "$srcdir/$f"
8909+ else
8910+ # /dev/null tree
8911+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
8912 echo "$as_me: error: cannot find input file: $f" >&2;}
8913 { (exit 1); exit 1; }; }
8914- fi;;
8915+ fi;;
8916 esac
8917 done` || { (exit 1); exit 1; }
8918+
8919+ if test x"$ac_file" != x-; then
8920+ { echo "$as_me:$LINENO: creating $ac_file" >&5
8921+echo "$as_me: creating $ac_file" >&6;}
8922+ rm -f "$ac_file"
8923+ fi
8924 _ACEOF
8925 cat >>$CONFIG_STATUS <<_ACEOF
8926 sed "$ac_vpsub
8927@@ -11649,12 +12989,12 @@
8928 # NAME is the cpp macro being defined and VALUE is the value it is being given.
8929 #
8930 # ac_d sets the value in "#define NAME VALUE" lines.
8931-ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
8932-ac_dB='[ ].*$,\1#\2'
8933+ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
8934+ac_dB='[ ].*$,\1#\2'
8935 ac_dC=' '
8936 ac_dD=',;t'
8937 # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
8938-ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
8939+ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
8940 ac_uB='$,\1#\2define\3'
8941 ac_uC=' '
8942 ac_uD=',;t'
8943@@ -11663,11 +13003,11 @@
8944 # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
8945 case $ac_file in
8946 - | *:- | *:-:* ) # input from stdin
8947- cat >$tmp/stdin
8948- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
8949- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
8950+ cat >$tmp/stdin
8951+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
8952+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
8953 *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
8954- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
8955+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
8956 * ) ac_file_in=$ac_file.in ;;
8957 esac
8958
8959@@ -11681,28 +13021,29 @@
8960 case $f in
8961 -) echo $tmp/stdin ;;
8962 [\\/$]*)
8963- # Absolute (can't be DOS-style, as IFS=:)
8964- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
8965+ # Absolute (can't be DOS-style, as IFS=:)
8966+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
8967 echo "$as_me: error: cannot find input file: $f" >&2;}
8968 { (exit 1); exit 1; }; }
8969- echo $f;;
8970+ # Do quote $f, to prevent DOS paths from being IFS'd.
8971+ echo "$f";;
8972 *) # Relative
8973- if test -f "$f"; then
8974- # Build tree
8975- echo $f
8976- elif test -f "$srcdir/$f"; then
8977- # Source tree
8978- echo $srcdir/$f
8979- else
8980- # /dev/null tree
8981- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
8982+ if test -f "$f"; then
8983+ # Build tree
8984+ echo "$f"
8985+ elif test -f "$srcdir/$f"; then
8986+ # Source tree
8987+ echo "$srcdir/$f"
8988+ else
8989+ # /dev/null tree
8990+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
8991 echo "$as_me: error: cannot find input file: $f" >&2;}
8992 { (exit 1); exit 1; }; }
8993- fi;;
8994+ fi;;
8995 esac
8996 done` || { (exit 1); exit 1; }
8997 # Remove the trailing spaces.
8998- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
8999+ sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
9000
9001 _ACEOF
9002
9003@@ -11725,9 +13066,9 @@
9004 s,[\\$`],\\&,g
9005 t clear
9006 : clear
9007-s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
9008+s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
9009 t end
9010-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
9011+s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
9012 : end
9013 _ACEOF
9014 # If some macros were called several times there might be several times
9015@@ -11741,13 +13082,13 @@
9016 # example, in the case of _POSIX_SOURCE, which is predefined and required
9017 # on some systems where configure will not decide to define it.
9018 cat >>conftest.undefs <<\_ACEOF
9019-s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
9020+s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
9021 _ACEOF
9022
9023 # Break up conftest.defines because some shells have a limit on the size
9024 # of here documents, and old seds have small limits too (100 cmds).
9025 echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
9026-echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
9027+echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
9028 echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
9029 echo ' :' >>$CONFIG_STATUS
9030 rm -f conftest.tail
9031@@ -11756,7 +13097,7 @@
9032 # Write a limited-size here document to $tmp/defines.sed.
9033 echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
9034 # Speed up: don't consider the non `#define' lines.
9035- echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
9036+ echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
9037 # Work around the forget-to-reset-the-flag bug.
9038 echo 't clr' >>$CONFIG_STATUS
9039 echo ': clr' >>$CONFIG_STATUS
9040@@ -11783,7 +13124,7 @@
9041 # Write a limited-size here document to $tmp/undefs.sed.
9042 echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
9043 # Speed up: don't consider the non `#undef'
9044- echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
9045+ echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
9046 # Work around the forget-to-reset-the-flag bug.
9047 echo 't clr' >>$CONFIG_STATUS
9048 echo ': clr' >>$CONFIG_STATUS
9049@@ -11817,10 +13158,10 @@
9050 else
9051 ac_dir=`(dirname "$ac_file") 2>/dev/null ||
9052 $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
9053- X"$ac_file" : 'X\(//\)[^/]' \| \
9054- X"$ac_file" : 'X\(//\)$' \| \
9055- X"$ac_file" : 'X\(/\)' \| \
9056- . : '\(.\)' 2>/dev/null ||
9057+ X"$ac_file" : 'X\(//\)[^/]' \| \
9058+ X"$ac_file" : 'X\(//\)$' \| \
9059+ X"$ac_file" : 'X\(/\)' \| \
9060+ . : '\(.\)' 2>/dev/null ||
9061 echo X"$ac_file" |
9062 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
9063 /^X\(\/\/\)[^/].*/{ s//\1/; q; }
9064@@ -11836,10 +13177,10 @@
9065 as_dirs="$as_dir $as_dirs"
9066 as_dir=`(dirname "$as_dir") 2>/dev/null ||
9067 $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
9068- X"$as_dir" : 'X\(//\)[^/]' \| \
9069- X"$as_dir" : 'X\(//\)$' \| \
9070- X"$as_dir" : 'X\(/\)' \| \
9071- . : '\(.\)' 2>/dev/null ||
9072+ X"$as_dir" : 'X\(//\)[^/]' \| \
9073+ X"$as_dir" : 'X\(//\)$' \| \
9074+ X"$as_dir" : 'X\(/\)' \| \
9075+ . : '\(.\)' 2>/dev/null ||
9076 echo X"$as_dir" |
9077 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
9078 /^X\(\/\/\)[^/].*/{ s//\1/; q; }
9079--- patch-2.5.9.orig/configure.ac
9080+++ patch-2.5.9/configure.ac
9081@@ -64,6 +64,9 @@
9082 gl_PREREQ_XMALLOC
9083 gl_QUOTE
9084 gl_QUOTEARG
9085+gl_HASH
9086+
9087+ag_CHECK_NANOSECOND_STAT
9088
9089 dnl This should be in gnulib, but isn't for some reason.
9090 AC_DEFUN([jm_PREREQ_ADDEXT],
9091--- patch-2.5.9.orig/pch.c
9092+++ patch-2.5.9/pch.c
9093@@ -1,6 +1,6 @@
9094 /* reading patches */
9095
9096-/* $Id: pch.c,v 1.44 2003/05/20 14:03:17 eggert Exp $ */
9097+/* $Id: pch.c,v 1.45 2003/07/02 22:19:21 eggert Exp $ */
9098
9099 /* Copyright (C) 1986, 1987, 1988 Larry Wall
9100
9101@@ -366,10 +366,16 @@
9102 if (!stars_last_line && strnEQ(s, "*** ", 4))
9103 name[OLD] = fetchname (s+4, strippath, &p_timestamp[OLD]);
9104 else if (strnEQ(s, "+++ ", 4))
9105+ {
9106 /* Swap with NEW below. */
9107 name[OLD] = fetchname (s+4, strippath, &p_timestamp[OLD]);
9108+ p_strip_trailing_cr = strip_trailing_cr;
9109+ }
9110 else if (strnEQ(s, "Index:", 6))
9111+ {
9112 name[INDEX] = fetchname (s+6, strippath, (time_t *) 0);
9113+ p_strip_trailing_cr = strip_trailing_cr;
9114+ }
9115 else if (strnEQ(s, "Prereq:", 7)) {
9116 for (t = s + 7; ISSPACE ((unsigned char) *t); t++)
9117 continue;
9118@@ -409,6 +415,7 @@
9119 p_timestamp[NEW] = timestamp;
9120 p_rfc934_nesting = (t - s) >> 1;
9121 }
9122+ p_strip_trailing_cr = strip_trailing_cr;
9123 }
9124 }
9125 if ((diff_type == NO_DIFF || diff_type == ED_DIFF) &&
9126--- patch-2.5.9.orig/util.c
9127+++ patch-2.5.9/util.c
9128@@ -45,9 +45,17 @@
9129 # define raise(sig) kill (getpid (), sig)
9130 #endif
9131
9132+#if defined(HAVE_STAT_TIMEVAL)
9133+#include <time.h>
9134+#endif
9135+
9136 #include <stdarg.h>
9137+#include <hash.h>
9138
9139 static void makedirs (char *);
9140+static bool fid_search (const char *, const struct stat *, bool);
9141+# define fid_exists(name, pst) fid_search (name, pst, false)
9142+# define insert_fid(name) fid_search (name, NULL, true)
9143
9144 /* Move a file FROM (where *FROM_NEEDS_REMOVAL is nonzero if FROM
9145 needs removal when cleaning up at the end of execution)
9146@@ -64,7 +72,7 @@
9147 struct stat to_st;
9148 int to_errno = ! backup ? -1 : stat (to, &to_st) == 0 ? 0 : errno;
9149
9150- if (backup)
9151+ if (backup && (to_errno || ! fid_exists (to, &to_st)))
9152 {
9153 int try_makedirs_errno = 0;
9154 char *bakname;
9155@@ -165,6 +173,7 @@
9156 if (! to_dir_known_to_exist)
9157 makedirs (to);
9158 copy_file (from, to, 0, mode);
9159+ insert_fid (to);
9160 return;
9161 }
9162
9163@@ -173,6 +182,7 @@
9164 }
9165
9166 rename_succeeded:
9167+ insert_fid (to);
9168 /* Do not clear *FROM_NEEDS_REMOVAL if it's possible that the
9169 rename returned zero because FROM and TO are hard links to
9170 the same file. */
9171@@ -1011,3 +1021,105 @@
9172 if (file_seek (stream, offset, ptrname) != 0)
9173 pfatal ("fseek");
9174 }
9175+
9176+typedef struct
9177+{
9178+ dev_t fid_dev;
9179+ ino_t fid_ino;
9180+ time_t fid_mtime;
9181+ unsigned long fid_mtimensec;
9182+} file_id;
9183+
9184+unsigned
9185+file_id_hasher (file_id *entry, unsigned table_size)
9186+{
9187+ return ((unsigned long) entry->fid_ino +
9188+ (unsigned long) entry->fid_dev +
9189+ (unsigned long) entry->fid_mtime +
9190+ (unsigned long) entry->fid_mtimensec) % table_size;
9191+}
9192+
9193+bool
9194+file_id_comparator (file_id *entry1, file_id *entry2)
9195+{
9196+ return (entry1->fid_dev == entry2->fid_dev &&
9197+ entry1->fid_ino == entry2->fid_ino &&
9198+ entry1->fid_mtime == entry2->fid_mtime &&
9199+ entry1->fid_mtimensec == entry2->fid_mtimensec);
9200+}
9201+
9202+void
9203+file_id_freer (file_id *entry)
9204+{
9205+ free (entry);
9206+}
9207+
9208+Hash_table *file_id_hash;
9209+
9210+/* Check if the file identified by FILENAME and PST was already seen. If the
9211+ file was already seen, returns TRUE. If the file has not yet been seen
9212+ and INSERT is TRUE, it is inserted. PST or FILENAME may be NULL (but not
9213+ both of them). */
9214+
9215+static bool
9216+fid_search (const char *filename, const struct stat *pst, bool insert)
9217+{
9218+ struct stat st;
9219+
9220+ if (!file_id_hash)
9221+ {
9222+ file_id_hash = hash_initialize (0, NULL, (Hash_hasher) file_id_hasher,
9223+ (Hash_comparator) file_id_comparator,
9224+ (Hash_data_freer) file_id_freer);
9225+ if (!file_id_hash)
9226+ pfatal ("hash_initialize");
9227+ }
9228+
9229+ if (!pst)
9230+ {
9231+ if (stat (filename, &st) != 0)
9232+ pfatal ("%s", quotearg (filename));
9233+ pst = &st;
9234+ }
9235+
9236+ if (insert)
9237+ {
9238+ file_id *pfid = xmalloc (sizeof (file_id)), *old_pfid;
9239+ pfid->fid_dev = pst->st_dev;
9240+ pfid->fid_ino = pst->st_ino;
9241+ pfid->fid_mtime = pst->st_mtime;
9242+#if defined(HAVE_STAT_NSEC)
9243+ pfid->fid_mtimensec = pst->st_mtimensec;
9244+#elif defined(HAVE_STAT_TIMEVAL)
9245+ pfid->fid_mtimensec = pst->st_mtim.tv_nsec;
9246+#else
9247+ pfid->fid_mtimensec = 0;
9248+#endif
9249+ old_pfid = hash_insert (file_id_hash, pfid);
9250+ if (!old_pfid)
9251+ pfatal ("hash_insert");
9252+ else if (old_pfid != pfid)
9253+ {
9254+ free (pfid);
9255+ return true;
9256+ }
9257+ else
9258+ return false;
9259+ }
9260+ else
9261+ {
9262+ file_id fid;
9263+ fid.fid_dev = pst->st_dev;
9264+ fid.fid_ino = pst->st_ino;
9265+ fid.fid_mtime = pst->st_mtime;
9266+#if defined(HAVE_STAT_NSEC)
9267+ fid.fid_mtimensec = pst->st_mtimensec;
9268+#elif defined(HAVE_STAT_TIMEVAL)
9269+ fid.fid_mtimensec = pst->st_mtim.tv_nsec;
9270+#else
9271+ fid.fid_mtimensec = 0;
9272+#endif
9273+ return hash_lookup (file_id_hash, &fid) != 0;
9274+ }
9275+}
9276+
9277--- patch-2.5.9.orig/hash.c
9278+++ patch-2.5.9/hash.c
9279@@ -0,0 +1,1051 @@
9280+/* hash - hashing table processing.
9281+
9282+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software
9283+ Foundation, Inc.
9284+
9285+ Written by Jim Meyering, 1992.
9286+
9287+ This program is free software; you can redistribute it and/or modify
9288+ it under the terms of the GNU General Public License as published by
9289+ the Free Software Foundation; either version 2, or (at your option)
9290+ any later version.
9291+
9292+ This program is distributed in the hope that it will be useful,
9293+ but WITHOUT ANY WARRANTY; without even the implied warranty of
9294+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9295+ GNU General Public License for more details.
9296+
9297+ You should have received a copy of the GNU General Public License
9298+ along with this program; if not, write to the Free Software Foundation,
9299+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
9300+
9301+/* A generic hash table package. */
9302+
9303+/* Define USE_OBSTACK to 1 if you want the allocator to use obstacks instead
9304+ of malloc. If you change USE_OBSTACK, you have to recompile! */
9305+
9306+#if HAVE_CONFIG_H
9307+# include <config.h>
9308+#endif
9309+#if HAVE_STDLIB_H
9310+# include <stdlib.h>
9311+#endif
9312+
9313+#include <limits.h>
9314+#include <stdbool.h>
9315+#include <stdio.h>
9316+
9317+#ifndef HAVE_DECL_FREE
9318+"this configure-time declaration test was not run"
9319+#endif
9320+#if !HAVE_DECL_FREE
9321+void free ();
9322+#endif
9323+
9324+#ifndef HAVE_DECL_MALLOC
9325+"this configure-time declaration test was not run"
9326+#endif
9327+#if !HAVE_DECL_MALLOC
9328+char *malloc ();
9329+#endif
9330+
9331+#if USE_OBSTACK
9332+# include "obstack.h"
9333+# ifndef obstack_chunk_alloc
9334+# define obstack_chunk_alloc malloc
9335+# endif
9336+# ifndef obstack_chunk_free
9337+# define obstack_chunk_free free
9338+# endif
9339+#endif
9340+
9341+#include "hash.h"
9342+
9343+struct hash_table
9344+ {
9345+ /* The array of buckets starts at BUCKET and extends to BUCKET_LIMIT-1,
9346+ for a possibility of N_BUCKETS. Among those, N_BUCKETS_USED buckets
9347+ are not empty, there are N_ENTRIES active entries in the table. */
9348+ struct hash_entry *bucket;
9349+ struct hash_entry *bucket_limit;
9350+ unsigned n_buckets;
9351+ unsigned n_buckets_used;
9352+ unsigned n_entries;
9353+
9354+ /* Tuning arguments, kept in a physicaly separate structure. */
9355+ const Hash_tuning *tuning;
9356+
9357+ /* Three functions are given to `hash_initialize', see the documentation
9358+ block for this function. In a word, HASHER randomizes a user entry
9359+ into a number up from 0 up to some maximum minus 1; COMPARATOR returns
9360+ true if two user entries compare equally; and DATA_FREER is the cleanup
9361+ function for a user entry. */
9362+ Hash_hasher hasher;
9363+ Hash_comparator comparator;
9364+ Hash_data_freer data_freer;
9365+
9366+ /* A linked list of freed struct hash_entry structs. */
9367+ struct hash_entry *free_entry_list;
9368+
9369+#if USE_OBSTACK
9370+ /* Whenever obstacks are used, it is possible to allocate all overflowed
9371+ entries into a single stack, so they all can be freed in a single
9372+ operation. It is not clear if the speedup is worth the trouble. */
9373+ struct obstack entry_stack;
9374+#endif
9375+ };
9376+
9377+/* A hash table contains many internal entries, each holding a pointer to
9378+ some user provided data (also called a user entry). An entry indistinctly
9379+ refers to both the internal entry and its associated user entry. A user
9380+ entry contents may be hashed by a randomization function (the hashing
9381+ function, or just `hasher' for short) into a number (or `slot') between 0
9382+ and the current table size. At each slot position in the hash table,
9383+ starts a linked chain of entries for which the user data all hash to this
9384+ slot. A bucket is the collection of all entries hashing to the same slot.
9385+
9386+ A good `hasher' function will distribute entries rather evenly in buckets.
9387+ In the ideal case, the length of each bucket is roughly the number of
9388+ entries divided by the table size. Finding the slot for a data is usually
9389+ done in constant time by the `hasher', and the later finding of a precise
9390+ entry is linear in time with the size of the bucket. Consequently, a
9391+ larger hash table size (that is, a larger number of buckets) is prone to
9392+ yielding shorter chains, *given* the `hasher' function behaves properly.
9393+
9394+ Long buckets slow down the lookup algorithm. One might use big hash table
9395+ sizes in hope to reduce the average length of buckets, but this might
9396+ become inordinate, as unused slots in the hash table take some space. The
9397+ best bet is to make sure you are using a good `hasher' function (beware
9398+ that those are not that easy to write! :-), and to use a table size
9399+ larger than the actual number of entries. */
9400+
9401+/* If an insertion makes the ratio of nonempty buckets to table size larger
9402+ than the growth threshold (a number between 0.0 and 1.0), then increase
9403+ the table size by multiplying by the growth factor (a number greater than
9404+ 1.0). The growth threshold defaults to 0.8, and the growth factor
9405+ defaults to 1.414, meaning that the table will have doubled its size
9406+ every second time 80% of the buckets get used. */
9407+#define DEFAULT_GROWTH_THRESHOLD 0.8
9408+#define DEFAULT_GROWTH_FACTOR 1.414
9409+
9410+/* If a deletion empties a bucket and causes the ratio of used buckets to
9411+ table size to become smaller than the shrink threshold (a number between
9412+ 0.0 and 1.0), then shrink the table by multiplying by the shrink factor (a
9413+ number greater than the shrink threshold but smaller than 1.0). The shrink
9414+ threshold and factor default to 0.0 and 1.0, meaning that the table never
9415+ shrinks. */
9416+#define DEFAULT_SHRINK_THRESHOLD 0.0
9417+#define DEFAULT_SHRINK_FACTOR 1.0
9418+
9419+/* Use this to initialize or reset a TUNING structure to
9420+ some sensible values. */
9421+static const Hash_tuning default_tuning =
9422+ {
9423+ DEFAULT_SHRINK_THRESHOLD,
9424+ DEFAULT_SHRINK_FACTOR,
9425+ DEFAULT_GROWTH_THRESHOLD,
9426+ DEFAULT_GROWTH_FACTOR,
9427+ false
9428+ };
9429+
9430+/* Information and lookup. */
9431+
9432+/* The following few functions provide information about the overall hash
9433+ table organization: the number of entries, number of buckets and maximum
9434+ length of buckets. */
9435+
9436+/* Return the number of buckets in the hash table. The table size, the total
9437+ number of buckets (used plus unused), or the maximum number of slots, are
9438+ the same quantity. */
9439+
9440+unsigned
9441+hash_get_n_buckets (const Hash_table *table)
9442+{
9443+ return table->n_buckets;
9444+}
9445+
9446+/* Return the number of slots in use (non-empty buckets). */
9447+
9448+unsigned
9449+hash_get_n_buckets_used (const Hash_table *table)
9450+{
9451+ return table->n_buckets_used;
9452+}
9453+
9454+/* Return the number of active entries. */
9455+
9456+unsigned
9457+hash_get_n_entries (const Hash_table *table)
9458+{
9459+ return table->n_entries;
9460+}
9461+
9462+/* Return the length of the longest chain (bucket). */
9463+
9464+unsigned
9465+hash_get_max_bucket_length (const Hash_table *table)
9466+{
9467+ struct hash_entry *bucket;
9468+ unsigned max_bucket_length = 0;
9469+
9470+ for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
9471+ {
9472+ if (bucket->data)
9473+ {
9474+ struct hash_entry *cursor = bucket;
9475+ unsigned bucket_length = 1;
9476+
9477+ while (cursor = cursor->next, cursor)
9478+ bucket_length++;
9479+
9480+ if (bucket_length > max_bucket_length)
9481+ max_bucket_length = bucket_length;
9482+ }
9483+ }
9484+
9485+ return max_bucket_length;
9486+}
9487+
9488+/* Do a mild validation of a hash table, by traversing it and checking two
9489+ statistics. */
9490+
9491+bool
9492+hash_table_ok (const Hash_table *table)
9493+{
9494+ struct hash_entry *bucket;
9495+ unsigned n_buckets_used = 0;
9496+ unsigned n_entries = 0;
9497+
9498+ for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
9499+ {
9500+ if (bucket->data)
9501+ {
9502+ struct hash_entry *cursor = bucket;
9503+
9504+ /* Count bucket head. */
9505+ n_buckets_used++;
9506+ n_entries++;
9507+
9508+ /* Count bucket overflow. */
9509+ while (cursor = cursor->next, cursor)
9510+ n_entries++;
9511+ }
9512+ }
9513+
9514+ if (n_buckets_used == table->n_buckets_used && n_entries == table->n_entries)
9515+ return true;
9516+
9517+ return false;
9518+}
9519+
9520+void
9521+hash_print_statistics (const Hash_table *table, FILE *stream)
9522+{
9523+ unsigned n_entries = hash_get_n_entries (table);
9524+ unsigned n_buckets = hash_get_n_buckets (table);
9525+ unsigned n_buckets_used = hash_get_n_buckets_used (table);
9526+ unsigned max_bucket_length = hash_get_max_bucket_length (table);
9527+
9528+ fprintf (stream, "# entries: %u\n", n_entries);
9529+ fprintf (stream, "# buckets: %u\n", n_buckets);
9530+ fprintf (stream, "# buckets used: %u (%.2f%%)\n", n_buckets_used,
9531+ (100.0 * n_buckets_used) / n_buckets);
9532+ fprintf (stream, "max bucket length: %u\n", max_bucket_length);
9533+}
9534+
9535+/* If ENTRY matches an entry already in the hash table, return the
9536+ entry from the table. Otherwise, return NULL. */
9537+
9538+void *
9539+hash_lookup (const Hash_table *table, const void *entry)
9540+{
9541+ struct hash_entry *bucket
9542+ = table->bucket + table->hasher (entry, table->n_buckets);
9543+ struct hash_entry *cursor;
9544+
9545+ if (! (bucket < table->bucket_limit))
9546+ abort ();
9547+
9548+ if (bucket->data == NULL)
9549+ return NULL;
9550+
9551+ for (cursor = bucket; cursor; cursor = cursor->next)
9552+ if (table->comparator (entry, cursor->data))
9553+ return cursor->data;
9554+
9555+ return NULL;
9556+}
9557+
9558+/* Walking. */
9559+
9560+/* The functions in this page traverse the hash table and process the
9561+ contained entries. For the traversal to work properly, the hash table
9562+ should not be resized nor modified while any particular entry is being
9563+ processed. In particular, entries should not be added or removed. */
9564+
9565+/* Return the first data in the table, or NULL if the table is empty. */
9566+
9567+void *
9568+hash_get_first (const Hash_table *table)
9569+{
9570+ struct hash_entry *bucket;
9571+
9572+ if (table->n_entries == 0)
9573+ return NULL;
9574+
9575+ for (bucket = table->bucket; ; bucket++)
9576+ if (! (bucket < table->bucket_limit))
9577+ abort ();
9578+ else if (bucket->data)
9579+ return bucket->data;
9580+}
9581+
9582+/* Return the user data for the entry following ENTRY, where ENTRY has been
9583+ returned by a previous call to either `hash_get_first' or `hash_get_next'.
9584+ Return NULL if there are no more entries. */
9585+
9586+void *
9587+hash_get_next (const Hash_table *table, const void *entry)
9588+{
9589+ struct hash_entry *bucket
9590+ = table->bucket + table->hasher (entry, table->n_buckets);
9591+ struct hash_entry *cursor;
9592+
9593+ if (! (bucket < table->bucket_limit))
9594+ abort ();
9595+
9596+ /* Find next entry in the same bucket. */
9597+ for (cursor = bucket; cursor; cursor = cursor->next)
9598+ if (cursor->data == entry && cursor->next)
9599+ return cursor->next->data;
9600+
9601+ /* Find first entry in any subsequent bucket. */
9602+ while (++bucket < table->bucket_limit)
9603+ if (bucket->data)
9604+ return bucket->data;
9605+
9606+ /* None found. */
9607+ return NULL;
9608+}
9609+
9610+/* Fill BUFFER with pointers to active user entries in the hash table, then
9611+ return the number of pointers copied. Do not copy more than BUFFER_SIZE
9612+ pointers. */
9613+
9614+unsigned
9615+hash_get_entries (const Hash_table *table, void **buffer,
9616+ unsigned buffer_size)
9617+{
9618+ unsigned counter = 0;
9619+ struct hash_entry *bucket;
9620+ struct hash_entry *cursor;
9621+
9622+ for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
9623+ {
9624+ if (bucket->data)
9625+ {
9626+ for (cursor = bucket; cursor; cursor = cursor->next)
9627+ {
9628+ if (counter >= buffer_size)
9629+ return counter;
9630+ buffer[counter++] = cursor->data;
9631+ }
9632+ }
9633+ }
9634+
9635+ return counter;
9636+}
9637+
9638+/* Call a PROCESSOR function for each entry of a hash table, and return the
9639+ number of entries for which the processor function returned success. A
9640+ pointer to some PROCESSOR_DATA which will be made available to each call to
9641+ the processor function. The PROCESSOR accepts two arguments: the first is
9642+ the user entry being walked into, the second is the value of PROCESSOR_DATA
9643+ as received. The walking continue for as long as the PROCESSOR function
9644+ returns nonzero. When it returns zero, the walking is interrupted. */
9645+
9646+unsigned
9647+hash_do_for_each (const Hash_table *table, Hash_processor processor,
9648+ void *processor_data)
9649+{
9650+ unsigned counter = 0;
9651+ struct hash_entry *bucket;
9652+ struct hash_entry *cursor;
9653+
9654+ for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
9655+ {
9656+ if (bucket->data)
9657+ {
9658+ for (cursor = bucket; cursor; cursor = cursor->next)
9659+ {
9660+ if (!(*processor) (cursor->data, processor_data))
9661+ return counter;
9662+ counter++;
9663+ }
9664+ }
9665+ }
9666+
9667+ return counter;
9668+}
9669+
9670+/* Allocation and clean-up. */
9671+
9672+/* Return a hash index for a NUL-terminated STRING between 0 and N_BUCKETS-1.
9673+ This is a convenience routine for constructing other hashing functions. */
9674+
9675+#if USE_DIFF_HASH
9676+
9677+/* About hashings, Paul Eggert writes to me (FP), on 1994-01-01: "Please see
9678+ B. J. McKenzie, R. Harries & T. Bell, Selecting a hashing algorithm,
9679+ Software--practice & experience 20, 2 (Feb 1990), 209-224. Good hash
9680+ algorithms tend to be domain-specific, so what's good for [diffutils'] io.c
9681+ may not be good for your application." */
9682+
9683+unsigned
9684+hash_string (const char *string, unsigned n_buckets)
9685+{
9686+# define ROTATE_LEFT(Value, Shift) \
9687+ ((Value) << (Shift) | (Value) >> ((sizeof (unsigned) * CHAR_BIT) - (Shift)))
9688+# define HASH_ONE_CHAR(Value, Byte) \
9689+ ((Byte) + ROTATE_LEFT (Value, 7))
9690+
9691+ unsigned value = 0;
9692+
9693+ for (; *string; string++)
9694+ value = HASH_ONE_CHAR (value, *(const unsigned char *) string);
9695+ return value % n_buckets;
9696+
9697+# undef ROTATE_LEFT
9698+# undef HASH_ONE_CHAR
9699+}
9700+
9701+#else /* not USE_DIFF_HASH */
9702+
9703+/* This one comes from `recode', and performs a bit better than the above as
9704+ per a few experiments. It is inspired from a hashing routine found in the
9705+ very old Cyber `snoop', itself written in typical Greg Mansfield style.
9706+ (By the way, what happened to this excellent man? Is he still alive?) */
9707+
9708+unsigned
9709+hash_string (const char *string, unsigned n_buckets)
9710+{
9711+ unsigned value = 0;
9712+
9713+ while (*string)
9714+ value = ((value * 31 + (int) *(const unsigned char *) string++)
9715+ % n_buckets);
9716+ return value;
9717+}
9718+
9719+#endif /* not USE_DIFF_HASH */
9720+
9721+/* Return true if CANDIDATE is a prime number. CANDIDATE should be an odd
9722+ number at least equal to 11. */
9723+
9724+static bool
9725+is_prime (unsigned long candidate)
9726+{
9727+ unsigned long divisor = 3;
9728+ unsigned long square = divisor * divisor;
9729+
9730+ while (square < candidate && (candidate % divisor))
9731+ {
9732+ divisor++;
9733+ square += 4 * divisor;
9734+ divisor++;
9735+ }
9736+
9737+ return (candidate % divisor ? true : false);
9738+}
9739+
9740+/* Round a given CANDIDATE number up to the nearest prime, and return that
9741+ prime. Primes lower than 10 are merely skipped. */
9742+
9743+static unsigned long
9744+next_prime (unsigned long candidate)
9745+{
9746+ /* Skip small primes. */
9747+ if (candidate < 10)
9748+ candidate = 10;
9749+
9750+ /* Make it definitely odd. */
9751+ candidate |= 1;
9752+
9753+ while (!is_prime (candidate))
9754+ candidate += 2;
9755+
9756+ return candidate;
9757+}
9758+
9759+void
9760+hash_reset_tuning (Hash_tuning *tuning)
9761+{
9762+ *tuning = default_tuning;
9763+}
9764+
9765+/* For the given hash TABLE, check the user supplied tuning structure for
9766+ reasonable values, and return true if there is no gross error with it.
9767+ Otherwise, definitively reset the TUNING field to some acceptable default
9768+ in the hash table (that is, the user loses the right of further modifying
9769+ tuning arguments), and return false. */
9770+
9771+static bool
9772+check_tuning (Hash_table *table)
9773+{
9774+ const Hash_tuning *tuning = table->tuning;
9775+
9776+ if (tuning->growth_threshold > 0.0
9777+ && tuning->growth_threshold < 1.0
9778+ && tuning->growth_factor > 1.0
9779+ && tuning->shrink_threshold >= 0.0
9780+ && tuning->shrink_threshold < 1.0
9781+ && tuning->shrink_factor > tuning->shrink_threshold
9782+ && tuning->shrink_factor <= 1.0
9783+ && tuning->shrink_threshold < tuning->growth_threshold)
9784+ return true;
9785+
9786+ table->tuning = &default_tuning;
9787+ return false;
9788+}
9789+
9790+/* Allocate and return a new hash table, or NULL upon failure. The initial
9791+ number of buckets is automatically selected so as to _guarantee_ that you
9792+ may insert at least CANDIDATE different user entries before any growth of
9793+ the hash table size occurs. So, if have a reasonably tight a-priori upper
9794+ bound on the number of entries you intend to insert in the hash table, you
9795+ may save some table memory and insertion time, by specifying it here. If
9796+ the IS_N_BUCKETS field of the TUNING structure is true, the CANDIDATE
9797+ argument has its meaning changed to the wanted number of buckets.
9798+
9799+ TUNING points to a structure of user-supplied values, in case some fine
9800+ tuning is wanted over the default behavior of the hasher. If TUNING is
9801+ NULL, the default tuning parameters are used instead.
9802+
9803+ The user-supplied HASHER function should be provided. It accepts two
9804+ arguments ENTRY and TABLE_SIZE. It computes, by hashing ENTRY contents, a
9805+ slot number for that entry which should be in the range 0..TABLE_SIZE-1.
9806+ This slot number is then returned.
9807+
9808+ The user-supplied COMPARATOR function should be provided. It accepts two
9809+ arguments pointing to user data, it then returns true for a pair of entries
9810+ that compare equal, or false otherwise. This function is internally called
9811+ on entries which are already known to hash to the same bucket index.
9812+
9813+ The user-supplied DATA_FREER function, when not NULL, may be later called
9814+ with the user data as an argument, just before the entry containing the
9815+ data gets freed. This happens from within `hash_free' or `hash_clear'.
9816+ You should specify this function only if you want these functions to free
9817+ all of your `data' data. This is typically the case when your data is
9818+ simply an auxiliary struct that you have malloc'd to aggregate several
9819+ values. */
9820+
9821+Hash_table *
9822+hash_initialize (unsigned candidate, const Hash_tuning *tuning,
9823+ Hash_hasher hasher, Hash_comparator comparator,
9824+ Hash_data_freer data_freer)
9825+{
9826+ Hash_table *table;
9827+ struct hash_entry *bucket;
9828+
9829+ if (hasher == NULL || comparator == NULL)
9830+ return NULL;
9831+
9832+ table = (Hash_table *) malloc (sizeof (Hash_table));
9833+ if (table == NULL)
9834+ return NULL;
9835+
9836+ if (!tuning)
9837+ tuning = &default_tuning;
9838+ table->tuning = tuning;
9839+ if (!check_tuning (table))
9840+ {
9841+ /* Fail if the tuning options are invalid. This is the only occasion
9842+ when the user gets some feedback about it. Once the table is created,
9843+ if the user provides invalid tuning options, we silently revert to
9844+ using the defaults, and ignore further request to change the tuning
9845+ options. */
9846+ free (table);
9847+ return NULL;
9848+ }
9849+
9850+ table->n_buckets
9851+ = next_prime (tuning->is_n_buckets ? candidate
9852+ : (unsigned) (candidate / tuning->growth_threshold));
9853+
9854+ table->bucket = (struct hash_entry *)
9855+ malloc (table->n_buckets * sizeof (struct hash_entry));
9856+ if (table->bucket == NULL)
9857+ {
9858+ free (table);
9859+ return NULL;
9860+ }
9861+ table->bucket_limit = table->bucket + table->n_buckets;
9862+
9863+ for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
9864+ {
9865+ bucket->data = NULL;
9866+ bucket->next = NULL;
9867+ }
9868+ table->n_buckets_used = 0;
9869+ table->n_entries = 0;
9870+
9871+ table->hasher = hasher;
9872+ table->comparator = comparator;
9873+ table->data_freer = data_freer;
9874+
9875+ table->free_entry_list = NULL;
9876+#if USE_OBSTACK
9877+ obstack_init (&table->entry_stack);
9878+#endif
9879+ return table;
9880+}
9881+
9882+/* Make all buckets empty, placing any chained entries on the free list.
9883+ Apply the user-specified function data_freer (if any) to the datas of any
9884+ affected entries. */
9885+
9886+void
9887+hash_clear (Hash_table *table)
9888+{
9889+ struct hash_entry *bucket;
9890+
9891+ for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
9892+ {
9893+ if (bucket->data)
9894+ {
9895+ struct hash_entry *cursor;
9896+ struct hash_entry *next;
9897+
9898+ /* Free the bucket overflow. */
9899+ for (cursor = bucket->next; cursor; cursor = next)
9900+ {
9901+ if (table->data_freer)
9902+ (*table->data_freer) (cursor->data);
9903+ cursor->data = NULL;
9904+
9905+ next = cursor->next;
9906+ /* Relinking is done one entry at a time, as it is to be expected
9907+ that overflows are either rare or short. */
9908+ cursor->next = table->free_entry_list;
9909+ table->free_entry_list = cursor;
9910+ }
9911+
9912+ /* Free the bucket head. */
9913+ if (table->data_freer)
9914+ (*table->data_freer) (bucket->data);
9915+ bucket->data = NULL;
9916+ bucket->next = NULL;
9917+ }
9918+ }
9919+
9920+ table->n_buckets_used = 0;
9921+ table->n_entries = 0;
9922+}
9923+
9924+/* Reclaim all storage associated with a hash table. If a data_freer
9925+ function has been supplied by the user when the hash table was created,
9926+ this function applies it to the data of each entry before freeing that
9927+ entry. */
9928+
9929+void
9930+hash_free (Hash_table *table)
9931+{
9932+ struct hash_entry *bucket;
9933+ struct hash_entry *cursor;
9934+ struct hash_entry *next;
9935+
9936+ /* Call the user data_freer function. */
9937+ if (table->data_freer && table->n_entries)
9938+ {
9939+ for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
9940+ {
9941+ if (bucket->data)
9942+ {
9943+ for (cursor = bucket; cursor; cursor = cursor->next)
9944+ {
9945+ (*table->data_freer) (cursor->data);
9946+ }
9947+ }
9948+ }
9949+ }
9950+
9951+#if USE_OBSTACK
9952+
9953+ obstack_free (&table->entry_stack, NULL);
9954+
9955+#else
9956+
9957+ /* Free all bucket overflowed entries. */
9958+ for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
9959+ {
9960+ for (cursor = bucket->next; cursor; cursor = next)
9961+ {
9962+ next = cursor->next;
9963+ free (cursor);
9964+ }
9965+ }
9966+
9967+ /* Also reclaim the internal list of previously freed entries. */
9968+ for (cursor = table->free_entry_list; cursor; cursor = next)
9969+ {
9970+ next = cursor->next;
9971+ free (cursor);
9972+ }
9973+
9974+#endif
9975+
9976+ /* Free the remainder of the hash table structure. */
9977+ free (table->bucket);
9978+ free (table);
9979+}
9980+
9981+/* Insertion and deletion. */
9982+
9983+/* Get a new hash entry for a bucket overflow, possibly by reclying a
9984+ previously freed one. If this is not possible, allocate a new one. */
9985+
9986+static struct hash_entry *
9987+allocate_entry (Hash_table *table)
9988+{
9989+ struct hash_entry *new;
9990+
9991+ if (table->free_entry_list)
9992+ {
9993+ new = table->free_entry_list;
9994+ table->free_entry_list = new->next;
9995+ }
9996+ else
9997+ {
9998+#if USE_OBSTACK
9999+ new = (struct hash_entry *)
10000+ obstack_alloc (&table->entry_stack, sizeof (struct hash_entry));
10001+#else
10002+ new = (struct hash_entry *) malloc (sizeof (struct hash_entry));
10003+#endif
10004+ }
10005+
10006+ return new;
10007+}
10008+
10009+/* Free a hash entry which was part of some bucket overflow,
10010+ saving it for later recycling. */
10011+
10012+static void
10013+free_entry (Hash_table *table, struct hash_entry *entry)
10014+{
10015+ entry->data = NULL;
10016+ entry->next = table->free_entry_list;
10017+ table->free_entry_list = entry;
10018+}
10019+
10020+/* This private function is used to help with insertion and deletion. When
10021+ ENTRY matches an entry in the table, return a pointer to the corresponding
10022+ user data and set *BUCKET_HEAD to the head of the selected bucket.
10023+ Otherwise, return NULL. When DELETE is true and ENTRY matches an entry in
10024+ the table, unlink the matching entry. */
10025+
10026+static void *
10027+hash_find_entry (Hash_table *table, const void *entry,
10028+ struct hash_entry **bucket_head, bool delete)
10029+{
10030+ struct hash_entry *bucket
10031+ = table->bucket + table->hasher (entry, table->n_buckets);
10032+ struct hash_entry *cursor;
10033+
10034+ if (! (bucket < table->bucket_limit))
10035+ abort ();
10036+
10037+ *bucket_head = bucket;
10038+
10039+ /* Test for empty bucket. */
10040+ if (bucket->data == NULL)
10041+ return NULL;
10042+
10043+ /* See if the entry is the first in the bucket. */
10044+ if ((*table->comparator) (entry, bucket->data))
10045+ {
10046+ void *data = bucket->data;
10047+
10048+ if (delete)
10049+ {
10050+ if (bucket->next)
10051+ {
10052+ struct hash_entry *next = bucket->next;
10053+
10054+ /* Bump the first overflow entry into the bucket head, then save
10055+ the previous first overflow entry for later recycling. */
10056+ *bucket = *next;
10057+ free_entry (table, next);
10058+ }
10059+ else
10060+ {
10061+ bucket->data = NULL;
10062+ }
10063+ }
10064+
10065+ return data;
10066+ }
10067+
10068+ /* Scan the bucket overflow. */
10069+ for (cursor = bucket; cursor->next; cursor = cursor->next)
10070+ {
10071+ if ((*table->comparator) (entry, cursor->next->data))
10072+ {
10073+ void *data = cursor->next->data;
10074+
10075+ if (delete)
10076+ {
10077+ struct hash_entry *next = cursor->next;
10078+
10079+ /* Unlink the entry to delete, then save the freed entry for later
10080+ recycling. */
10081+ cursor->next = next->next;
10082+ free_entry (table, next);
10083+ }
10084+
10085+ return data;
10086+ }
10087+ }
10088+
10089+ /* No entry found. */
10090+ return NULL;
10091+}
10092+
10093+/* For an already existing hash table, change the number of buckets through
10094+ specifying CANDIDATE. The contents of the hash table are preserved. The
10095+ new number of buckets is automatically selected so as to _guarantee_ that
10096+ the table may receive at least CANDIDATE different user entries, including
10097+ those already in the table, before any other growth of the hash table size
10098+ occurs. If TUNING->IS_N_BUCKETS is true, then CANDIDATE specifies the
10099+ exact number of buckets desired. */
10100+
10101+bool
10102+hash_rehash (Hash_table *table, unsigned candidate)
10103+{
10104+ Hash_table *new_table;
10105+ struct hash_entry *bucket;
10106+ struct hash_entry *cursor;
10107+ struct hash_entry *next;
10108+
10109+ new_table = hash_initialize (candidate, table->tuning, table->hasher,
10110+ table->comparator, table->data_freer);
10111+ if (new_table == NULL)
10112+ return false;
10113+
10114+ /* Merely reuse the extra old space into the new table. */
10115+#if USE_OBSTACK
10116+ obstack_free (&new_table->entry_stack, NULL);
10117+ new_table->entry_stack = table->entry_stack;
10118+#endif
10119+ new_table->free_entry_list = table->free_entry_list;
10120+
10121+ for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
10122+ if (bucket->data)
10123+ for (cursor = bucket; cursor; cursor = next)
10124+ {
10125+ void *data = cursor->data;
10126+ struct hash_entry *new_bucket
10127+ = (new_table->bucket
10128+ + new_table->hasher (data, new_table->n_buckets));
10129+
10130+ if (! (new_bucket < new_table->bucket_limit))
10131+ abort ();
10132+
10133+ next = cursor->next;
10134+
10135+ if (new_bucket->data)
10136+ {
10137+ if (cursor == bucket)
10138+ {
10139+ /* Allocate or recycle an entry, when moving from a bucket
10140+ header into a bucket overflow. */
10141+ struct hash_entry *new_entry = allocate_entry (new_table);
10142+
10143+ if (new_entry == NULL)
10144+ return false;
10145+
10146+ new_entry->data = data;
10147+ new_entry->next = new_bucket->next;
10148+ new_bucket->next = new_entry;
10149+ }
10150+ else
10151+ {
10152+ /* Merely relink an existing entry, when moving from a
10153+ bucket overflow into a bucket overflow. */
10154+ cursor->next = new_bucket->next;
10155+ new_bucket->next = cursor;
10156+ }
10157+ }
10158+ else
10159+ {
10160+ /* Free an existing entry, when moving from a bucket
10161+ overflow into a bucket header. Also take care of the
10162+ simple case of moving from a bucket header into a bucket
10163+ header. */
10164+ new_bucket->data = data;
10165+ new_table->n_buckets_used++;
10166+ if (cursor != bucket)
10167+ free_entry (new_table, cursor);
10168+ }
10169+ }
10170+
10171+ free (table->bucket);
10172+ table->bucket = new_table->bucket;
10173+ table->bucket_limit = new_table->bucket_limit;
10174+ table->n_buckets = new_table->n_buckets;
10175+ table->n_buckets_used = new_table->n_buckets_used;
10176+ table->free_entry_list = new_table->free_entry_list;
10177+ /* table->n_entries already holds its value. */
10178+#if USE_OBSTACK
10179+ table->entry_stack = new_table->entry_stack;
10180+#endif
10181+ free (new_table);
10182+
10183+ return true;
10184+}
10185+
10186+/* If ENTRY matches an entry already in the hash table, return the pointer
10187+ to the entry from the table. Otherwise, insert ENTRY and return ENTRY.
10188+ Return NULL if the storage required for insertion cannot be allocated. */
10189+
10190+void *
10191+hash_insert (Hash_table *table, const void *entry)
10192+{
10193+ void *data;
10194+ struct hash_entry *bucket;
10195+
10196+ /* The caller cannot insert a NULL entry. */
10197+ if (! entry)
10198+ abort ();
10199+
10200+ /* If there's a matching entry already in the table, return that. */
10201+ if ((data = hash_find_entry (table, entry, &bucket, false)) != NULL)
10202+ return data;
10203+
10204+ /* ENTRY is not matched, it should be inserted. */
10205+
10206+ if (bucket->data)
10207+ {
10208+ struct hash_entry *new_entry = allocate_entry (table);
10209+
10210+ if (new_entry == NULL)
10211+ return NULL;
10212+
10213+ /* Add ENTRY in the overflow of the bucket. */
10214+
10215+ new_entry->data = (void *) entry;
10216+ new_entry->next = bucket->next;
10217+ bucket->next = new_entry;
10218+ table->n_entries++;
10219+ return (void *) entry;
10220+ }
10221+
10222+ /* Add ENTRY right in the bucket head. */
10223+
10224+ bucket->data = (void *) entry;
10225+ table->n_entries++;
10226+ table->n_buckets_used++;
10227+
10228+ /* If the growth threshold of the buckets in use has been reached, increase
10229+ the table size and rehash. There's no point in checking the number of
10230+ entries: if the hashing function is ill-conditioned, rehashing is not
10231+ likely to improve it. */
10232+
10233+ if (table->n_buckets_used
10234+ > table->tuning->growth_threshold * table->n_buckets)
10235+ {
10236+ /* Check more fully, before starting real work. If tuning arguments
10237+ became invalid, the second check will rely on proper defaults. */
10238+ check_tuning (table);
10239+ if (table->n_buckets_used
10240+ > table->tuning->growth_threshold * table->n_buckets)
10241+ {
10242+ const Hash_tuning *tuning = table->tuning;
10243+ unsigned candidate
10244+ = (unsigned) (tuning->is_n_buckets
10245+ ? (table->n_buckets * tuning->growth_factor)
10246+ : (table->n_buckets * tuning->growth_factor
10247+ * tuning->growth_threshold));
10248+
10249+ /* If the rehash fails, arrange to return NULL. */
10250+ if (!hash_rehash (table, candidate))
10251+ entry = NULL;
10252+ }
10253+ }
10254+
10255+ return (void *) entry;
10256+}
10257+
10258+/* If ENTRY is already in the table, remove it and return the just-deleted
10259+ data (the user may want to deallocate its storage). If ENTRY is not in the
10260+ table, don't modify the table and return NULL. */
10261+
10262+void *
10263+hash_delete (Hash_table *table, const void *entry)
10264+{
10265+ void *data;
10266+ struct hash_entry *bucket;
10267+
10268+ data = hash_find_entry (table, entry, &bucket, true);
10269+ if (!data)
10270+ return NULL;
10271+
10272+ table->n_entries--;
10273+ if (!bucket->data)
10274+ {
10275+ table->n_buckets_used--;
10276+
10277+ /* If the shrink threshold of the buckets in use has been reached,
10278+ rehash into a smaller table. */
10279+
10280+ if (table->n_buckets_used
10281+ < table->tuning->shrink_threshold * table->n_buckets)
10282+ {
10283+ /* Check more fully, before starting real work. If tuning arguments
10284+ became invalid, the second check will rely on proper defaults. */
10285+ check_tuning (table);
10286+ if (table->n_buckets_used
10287+ < table->tuning->shrink_threshold * table->n_buckets)
10288+ {
10289+ const Hash_tuning *tuning = table->tuning;
10290+ unsigned candidate
10291+ = (unsigned) (tuning->is_n_buckets
10292+ ? table->n_buckets * tuning->shrink_factor
10293+ : (table->n_buckets * tuning->shrink_factor
10294+ * tuning->growth_threshold));
10295+
10296+ hash_rehash (table, candidate);
10297+ }
10298+ }
10299+ }
10300+
10301+ return data;
10302+}
10303+
10304+/* Testing. */
10305+
10306+#if TESTING
10307+
10308+void
10309+hash_print (const Hash_table *table)
10310+{
10311+ struct hash_entry *bucket;
10312+
10313+ for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
10314+ {
10315+ struct hash_entry *cursor;
10316+
10317+ if (bucket)
10318+ printf ("%d:\n", bucket - table->bucket);
10319+
10320+ for (cursor = bucket; cursor; cursor = cursor->next)
10321+ {
10322+ char *s = (char *) cursor->data;
10323+ /* FIXME */
10324+ if (s)
10325+ printf (" %s\n", s);
10326+ }
10327+ }
10328+}
10329+
10330+#endif /* TESTING */
10331--- patch-2.5.9.orig/hash.h
10332+++ patch-2.5.9/hash.h
10333@@ -0,0 +1,93 @@
10334+/* hash - hashing table processing.
10335+ Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
10336+ Written by Jim Meyering <meyering@ascend.com>, 1998.
10337+
10338+ This program is free software; you can redistribute it and/or modify
10339+ it under the terms of the GNU General Public License as published by
10340+ the Free Software Foundation; either version 2, or (at your option)
10341+ any later version.
10342+
10343+ This program is distributed in the hope that it will be useful,
10344+ but WITHOUT ANY WARRANTY; without even the implied warranty of
10345+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10346+ GNU General Public License for more details.
10347+
10348+ You should have received a copy of the GNU General Public License
10349+ along with this program; if not, write to the Free Software Foundation,
10350+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
10351+
10352+/* A generic hash table package. */
10353+
10354+/* Make sure USE_OBSTACK is defined to 1 if you want the allocator to use
10355+ obstacks instead of malloc, and recompile `hash.c' with same setting. */
10356+
10357+#ifndef HASH_H_
10358+# define HASH_H_
10359+
10360+# ifndef PARAMS
10361+# if PROTOTYPES || __STDC__
10362+# define PARAMS(Args) Args
10363+# else
10364+# define PARAMS(Args) ()
10365+# endif
10366+# endif
10367+
10368+typedef unsigned (*Hash_hasher) PARAMS ((const void *, unsigned));
10369+typedef bool (*Hash_comparator) PARAMS ((const void *, const void *));
10370+typedef void (*Hash_data_freer) PARAMS ((void *));
10371+typedef bool (*Hash_processor) PARAMS ((void *, void *));
10372+
10373+struct hash_entry
10374+ {
10375+ void *data;
10376+ struct hash_entry *next;
10377+ };
10378+
10379+struct hash_tuning
10380+ {
10381+ /* This structure is mainly used for `hash_initialize', see the block
10382+ documentation of `hash_reset_tuning' for more complete comments. */
10383+
10384+ float shrink_threshold; /* ratio of used buckets to trigger a shrink */
10385+ float shrink_factor; /* ratio of new smaller size to original size */
10386+ float growth_threshold; /* ratio of used buckets to trigger a growth */
10387+ float growth_factor; /* ratio of new bigger size to original size */
10388+ bool is_n_buckets; /* if CANDIDATE really means table size */
10389+ };
10390+
10391+typedef struct hash_tuning Hash_tuning;
10392+
10393+struct hash_table;
10394+
10395+typedef struct hash_table Hash_table;
10396+
10397+/* Information and lookup. */
10398+unsigned hash_get_n_buckets PARAMS ((const Hash_table *));
10399+unsigned hash_get_n_buckets_used PARAMS ((const Hash_table *));
10400+unsigned hash_get_n_entries PARAMS ((const Hash_table *));
10401+unsigned hash_get_max_bucket_length PARAMS ((const Hash_table *));
10402+bool hash_table_ok PARAMS ((const Hash_table *));
10403+void hash_print_statistics PARAMS ((const Hash_table *, FILE *));
10404+void *hash_lookup PARAMS ((const Hash_table *, const void *));
10405+
10406+/* Walking. */
10407+void *hash_get_first PARAMS ((const Hash_table *));
10408+void *hash_get_next PARAMS ((const Hash_table *, const void *));
10409+unsigned hash_get_entries PARAMS ((const Hash_table *, void **, unsigned));
10410+unsigned hash_do_for_each PARAMS ((const Hash_table *, Hash_processor, void *));
10411+
10412+/* Allocation and clean-up. */
10413+unsigned hash_string PARAMS ((const char *, unsigned));
10414+void hash_reset_tuning PARAMS ((Hash_tuning *));
10415+Hash_table *hash_initialize PARAMS ((unsigned, const Hash_tuning *,
10416+ Hash_hasher, Hash_comparator,
10417+ Hash_data_freer));
10418+void hash_clear PARAMS ((Hash_table *));
10419+void hash_free PARAMS ((Hash_table *));
10420+
10421+/* Insertion and deletion. */
10422+bool hash_rehash PARAMS ((Hash_table *, unsigned));
10423+void *hash_insert PARAMS ((Hash_table *, const void *));
10424+void *hash_delete PARAMS ((Hash_table *, const void *));
10425+
10426+#endif
diff --git a/meta/recipes-devtools/patch/patch/global-reject-file.diff b/meta/recipes-devtools/patch/patch/global-reject-file.diff
deleted file mode 100644
index bb7ca79123..0000000000
--- a/meta/recipes-devtools/patch/patch/global-reject-file.diff
+++ /dev/null
@@ -1,203 +0,0 @@
1Upstream-Status: Inappropriate [debian patch]
2
3Index: patch-2.5.9/patch.man
4===================================================================
5--- patch-2.5.9.orig/patch.man
6+++ patch-2.5.9/patch.man
7@@ -520,6 +520,15 @@ file.
8 \fB\*=reject\-unified\fP
9 Produce unified reject files. The default is to produce context type reject files.
10 .TP
11+.BI \*=global\-reject\-file= rejectfile
12+Put all rejects into
13+.I rejectfile
14+instead of creating separate reject files for all files that have rejects. The
15+.I rejectfile
16+will contain headers that identify which file each reject refers to. Note that
17+the global reject file is created even if \-\-dry\-run is specified (while
18+non-global reject files will only be created without \-\-dry\-run).
19+.TP
20 \fB\-R\fP or \fB\*=reverse\fP
21 Assume that this patch was created with the old and new files swapped.
22 (Yes, I'm afraid that does happen occasionally, human nature being what it
23Index: patch-2.5.9/patch.c
24===================================================================
25--- patch-2.5.9.orig/patch.c
26+++ patch-2.5.9/patch.c
27@@ -67,6 +67,7 @@ static bool similar (char const *, size_
28 static bool spew_output (struct outstate *);
29 static char const *make_temp (char);
30 static int numeric_string (char const *, bool, char const *);
31+static void reject_header (const char *filename);
32 static void abort_hunk (void);
33 static void cleanup (void);
34 static void get_some_switches (void);
35@@ -98,6 +99,7 @@ static int Argc;
36 static char * const *Argv;
37
38 static FILE *rejfp; /* reject file pointer */
39+static char *global_reject;
40
41 static char const *patchname;
42 static char *rejname;
43@@ -172,6 +174,10 @@ main (int argc, char **argv)
44 /* Make sure we clean up in case of disaster. */
45 set_signals (false);
46
47+ /* initialize global reject file */
48+ if (global_reject)
49+ init_reject ();
50+
51 for (
52 open_patch_file (patchname);
53 there_is_another_patch();
54@@ -208,8 +214,9 @@ main (int argc, char **argv)
55 init_output (TMPOUTNAME, exclusive, &outstate);
56 }
57
58- /* initialize reject file */
59- init_reject ();
60+ /* initialize per-patch reject file */
61+ if (!global_reject)
62+ init_reject ();
63
64 /* find out where all the lines are */
65 if (!skip_rest_of_patch)
66@@ -278,6 +285,8 @@ main (int argc, char **argv)
67
68 newwhere = pch_newfirst() + last_offset;
69 if (skip_rest_of_patch) {
70+ if (!failed)
71+ reject_header(outname);
72 abort_hunk();
73 failed++;
74 if (verbosity == VERBOSE)
75@@ -292,6 +301,8 @@ main (int argc, char **argv)
76 say ("Patch attempted to create file %s, which already exists.\n",
77 quotearg (inname));
78
79+ if (!failed)
80+ reject_header(outname);
81 abort_hunk();
82 failed++;
83 if (verbosity != SILENT)
84@@ -299,6 +310,8 @@ main (int argc, char **argv)
85 format_linenum (numbuf, newwhere));
86 }
87 else if (! apply_hunk (&outstate, where)) {
88+ if (!failed)
89+ reject_header(outname);
90 abort_hunk ();
91 failed++;
92 if (verbosity != SILENT)
93@@ -332,7 +345,8 @@ main (int argc, char **argv)
94 fclose (outstate.ofp);
95 outstate.ofp = 0;
96 }
97- fclose (rejfp);
98+ if (!global_reject)
99+ fclose (rejfp);
100 continue;
101 }
102
103@@ -412,13 +426,13 @@ main (int argc, char **argv)
104 }
105 }
106 if (diff_type != ED_DIFF) {
107- if (fclose (rejfp) != 0)
108+ if (!global_reject && fclose (rejfp) != 0)
109 write_fatal ();
110 if (failed) {
111 somefailed = true;
112 say ("%d out of %d hunk%s %s", failed, hunk, "s" + (hunk == 1),
113 skip_rest_of_patch ? "ignored" : "FAILED");
114- if (outname) {
115+ if (!global_reject && outname) {
116 char *rej = rejname;
117 if (!rejname) {
118 rej = xmalloc (strlen (outname) + 5);
119@@ -445,6 +459,20 @@ main (int argc, char **argv)
120 }
121 set_signals (true);
122 }
123+ if (global_reject)
124+ {
125+ if (fclose (rejfp) != 0)
126+ write_fatal ();
127+ if (somefailed)
128+ {
129+ say (" -- saving rejects to file %s\n", quotearg (global_reject));
130+ /*if (! dry_run)
131+ {*/
132+ move_file (TMPREJNAME, &TMPREJNAME_needs_removal,
133+ global_reject, 0644, false);
134+ /*}*/
135+ }
136+ }
137 if (outstate.ofp && (ferror (outstate.ofp) || fclose (outstate.ofp) != 0))
138 write_fatal ();
139 cleanup ();
140@@ -523,6 +551,7 @@ static struct option const longopts[] =
141 {"posix", no_argument, NULL, CHAR_MAX + 7},
142 {"quoting-style", required_argument, NULL, CHAR_MAX + 8},
143 {"unified-reject-files", no_argument, NULL, CHAR_MAX + 9},
144+ {"global-reject-file", required_argument, NULL, CHAR_MAX + 10},
145 {NULL, no_argument, NULL, 0}
146 };
147
148@@ -582,6 +611,7 @@ static char const *const option_help[] =
149 " --dry-run Do not actually change any files; just print what would happen.",
150 " --posix Conform to the POSIX standard.",
151 " --unified-reject-files Create unified reject files.",
152+" --global-reject-file=file Put all rejects into one file.",
153 "",
154 " -d DIR --directory=DIR Change the working directory to DIR first.",
155 #if HAVE_SETMODE_DOS
156@@ -784,6 +814,9 @@ get_some_switches (void)
157 case CHAR_MAX + 9:
158 unified_reject_files = true;
159 break;
160+ case CHAR_MAX + 10:
161+ global_reject = savestr (optarg);
162+ break;
163 default:
164 usage (stderr, 2);
165 }
166@@ -933,6 +966,37 @@ locate_hunk (LINENUM fuzz)
167 }
168
169 static char *
170+format_timestamp (char timebuf[37], bool which)
171+{
172+ time_t ts = pch_timestamp(which);
173+ if (ts != -1)
174+ {
175+ struct tm *tm = localtime(&ts);
176+ strftime(timebuf, 37, "\t%Y-%m-%d %H:%M:%S.000000000 %z", tm);
177+ }
178+ else
179+ timebuf[0] = 0;
180+ return timebuf;
181+}
182+
183+/* Write a header in a reject file that combines multiple hunks. */
184+static void
185+reject_header (const char *outname)
186+{
187+ char timebuf0[37], timebuf1[37];
188+ if (!global_reject)
189+ return;
190+ if (diff_type == UNI_DIFF)
191+ fprintf(rejfp, "--- %s.orig%s\n+++ %s%s\n",
192+ outname, format_timestamp(timebuf0, reverse),
193+ outname, format_timestamp(timebuf1, !reverse));
194+ else
195+ fprintf(rejfp, "*** %s.orig%s\n--- %s%s\n",
196+ outname, format_timestamp(timebuf0, reverse),
197+ outname, format_timestamp(timebuf1, !reverse));
198+}
199+
200+static char *
201 format_linerange (char rangebuf[LINENUM_LENGTH_BOUND*2 + 2],
202 LINENUM first, LINENUM lines)
203 {
diff --git a/meta/recipes-devtools/patch/patch/install.patch b/meta/recipes-devtools/patch/patch/install.patch
deleted file mode 100644
index 0354ec8f04..0000000000
--- a/meta/recipes-devtools/patch/patch/install.patch
+++ /dev/null
@@ -1,43 +0,0 @@
1Upstream-Status: Inappropriate [embedded specific]
2
3Index: patch-2.5.4/Makefile.in
4===================================================================
5--- patch-2.5.4.orig/Makefile.in 2005-03-09 07:23:54.779311824 -0500
6+++ patch-2.5.4/Makefile.in 2005-03-09 07:26:09.616813408 -0500
7@@ -43,10 +43,11 @@
8 PACKAGE_NAME = @PACKAGE_NAME@
9 PACKAGE_VERSION = @PACKAGE_VERSION@
10
11+DESTDIR =
12 prefix = @prefix@
13 exec_prefix = @exec_prefix@
14
15-bindir = $(exec_prefix)/bin
16+bindir = @bindir@
17
18 # Where to put the manual pages.
19 mandir = @mandir@
20@@ -112,18 +113,18 @@
21 $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS)
22
23 install:: all installdirs
24- $(INSTALL_PROGRAM) patch$(EXEEXT) $(bindir)/$(patch_name)$(EXEEXT)
25- -$(INSTALL_DATA) $(srcdir)/patch.man $(man1dir)/$(patch_name)$(man1ext)
26+ $(INSTALL_PROGRAM) patch$(EXEEXT) $(DESTDIR)$(bindir)/$(patch_name)$(EXEEXT)
27+ -$(INSTALL_DATA) $(srcdir)/patch.man $(DESTDIR)$(man1dir)/$(patch_name)$(man1ext)
28
29 installdirs::
30- $(SHELL) $(srcdir)/mkinstalldirs $(bindir) $(man1dir)
31+ $(SHELL) $(srcdir)/mkinstalldirs $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir)
32
33 install-strip::
34 $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install
35
36 uninstall::
37- rm -f $(bindir)/$(patch_name)$(EXEEXT)
38- rm -f $(man1dir)/$(patch_name)$(man1ext)
39+ rm -f $(DESTDIR)$(bindir)/$(patch_name)$(EXEEXT)
40+ rm -f $(DESTDIR)$(man1dir)/$(patch_name)$(man1ext)
41
42 Makefile: Makefile.in $(CONFIG_STATUS)
43 $(SHELL) $(CONFIG_STATUS)
diff --git a/meta/recipes-devtools/patch/patch/unified-reject-files.diff b/meta/recipes-devtools/patch/patch/unified-reject-files.diff
deleted file mode 100644
index 4b59212dba..0000000000
--- a/meta/recipes-devtools/patch/patch/unified-reject-files.diff
+++ /dev/null
@@ -1,307 +0,0 @@
1Upstream-Status: Inappropriate [debian patch]
2
3Generate unified diff style reject files. Also include the C function names
4in reject files whenever possible.
5
6 $ cat > f.orig
7 < a() {
8 < 2
9 < 3
10 <
11 < 5
12 < 6
13 < }
14
15 $ sed -e 's/5/5a/' f.orig > f
16 $ diff -U2 -p f.orig f > f.diff
17 $ sed -e 's/5/5a/' -e 's/6/6x/' f.orig > f
18 $ ./patch -F0 -s --no-backup-if-mismatch f --reject-unified < f.diff
19 > 1 out of 1 hunk FAILED -- saving rejects to file f.rej
20
21 $ cat f.rej
22 > @@ -3,5 +3,5 @@ a() {
23 > 3
24 >
25 > -5
26 > +5a
27 > 6
28 > }
29
30 $ ./patch -F0 -s --no-backup-if-mismatch f < f.diff
31 > 1 out of 1 hunk FAILED -- saving rejects to file f.rej
32
33 $ cat f.rej
34 > *************** a() {
35 > *** 3,7 ****
36 > 3
37 >
38 > - 5
39 > 6
40 > }
41 > --- 3,7 ----
42 > 3
43 >
44 > + 5a
45 > 6
46 > }
47
48 $ diff -Nu -p /dev/null f.orig > f2.diff
49 $ ./patch -F0 -s --no-backup-if-mismatch f --reject-unified < f2.diff
50 > Patch attempted to create file f, which already exists.
51 > 1 out of 1 hunk FAILED -- saving rejects to file f.rej
52
53 $ cat f.rej
54 > @@ -0,0 +1,7 @@
55 > +a() {
56 > +2
57 > +3
58 > +
59 > +5
60 > +6
61 > +}
62
63 $ rm -f f f.orig f.rej f.diff f2.diff
64
65Index: patch-2.5.9/pch.c
66===================================================================
67--- patch-2.5.9.orig/pch.c
68+++ patch-2.5.9/pch.c
69@@ -68,6 +68,7 @@ static LINENUM p_sline; /* and the lin
70 static LINENUM p_hunk_beg; /* line number of current hunk */
71 static LINENUM p_efake = -1; /* end of faked up lines--don't free */
72 static LINENUM p_bfake = -1; /* beg of faked up lines */
73+static char *p_c_function; /* the C function a hunk is in */
74
75 enum nametype { OLD, NEW, INDEX, NONE };
76
77@@ -888,6 +889,19 @@ another_hunk (enum diff difftype, bool r
78 next_intuit_at(line_beginning,p_input_line);
79 return chars_read == (size_t) -1 ? -1 : 0;
80 }
81+ s = buf;
82+ while (*s == '*')
83+ s++;
84+ if (*s == ' ')
85+ {
86+ p_c_function = s;
87+ while (*s != '\n')
88+ s++;
89+ *s = '\0';
90+ p_c_function = savestr (p_c_function);
91+ }
92+ else
93+ p_c_function = NULL;
94 p_hunk_beg = p_input_line + 1;
95 while (p_end < p_max) {
96 chars_read = get_line ();
97@@ -1277,8 +1291,18 @@ another_hunk (enum diff difftype, bool r
98 else
99 p_repl_lines = 1;
100 if (*s == ' ') s++;
101- if (*s != '@')
102+ if (*s++ != '@')
103 malformed ();
104+ if (*s++ == '@' && *s == ' ' && *s != '\0')
105+ {
106+ p_c_function = s;
107+ while (*s != '\n')
108+ s++;
109+ *s = '\0';
110+ p_c_function = savestr (p_c_function);
111+ }
112+ else
113+ p_c_function = NULL;
114 if (!p_ptrn_lines)
115 p_first++; /* do append rather than insert */
116 if (!p_repl_lines)
117@@ -1884,6 +1908,12 @@ pch_hunk_beg (void)
118 return p_hunk_beg;
119 }
120
121+char const *
122+pch_c_function (void)
123+{
124+ return p_c_function;
125+}
126+
127 /* Is the newline-terminated line a valid `ed' command for patch
128 input? If so, return the command character; if not, return 0.
129 This accepts accepts just a subset of the valid commands, but it's
130Index: patch-2.5.9/pch.h
131===================================================================
132--- patch-2.5.9.orig/pch.h
133+++ patch-2.5.9/pch.h
134@@ -25,6 +25,7 @@
135 LINENUM pch_end (void);
136 LINENUM pch_first (void);
137 LINENUM pch_hunk_beg (void);
138+char const *pch_c_function (void);
139 LINENUM pch_newfirst (void);
140 LINENUM pch_prefix_context (void);
141 LINENUM pch_ptrn_lines (void);
142Index: patch-2.5.9/patch.man
143===================================================================
144--- patch-2.5.9.orig/patch.man
145+++ patch-2.5.9/patch.man
146@@ -517,6 +517,9 @@ instead of the default
147 .B \&.rej
148 file.
149 .TP
150+\fB\*=reject\-unified\fP
151+Produce unified reject files. The default is to produce context type reject files.
152+.TP
153 \fB\-R\fP or \fB\*=reverse\fP
154 Assume that this patch was created with the old and new files swapped.
155 (Yes, I'm afraid that does happen occasionally, human nature being what it
156Index: patch-2.5.9/common.h
157===================================================================
158--- patch-2.5.9.orig/common.h
159+++ patch-2.5.9/common.h
160@@ -146,6 +146,7 @@ XTERN int invc;
161 XTERN struct stat instat;
162 XTERN bool dry_run;
163 XTERN bool posixly_correct;
164+XTERN bool unified_reject_files;
165
166 XTERN char const *origprae;
167 XTERN char const *origbase;
168Index: patch-2.5.9/patch.c
169===================================================================
170--- patch-2.5.9.orig/patch.c
171+++ patch-2.5.9/patch.c
172@@ -522,6 +522,7 @@ static struct option const longopts[] =
173 {"no-backup-if-mismatch", no_argument, NULL, CHAR_MAX + 6},
174 {"posix", no_argument, NULL, CHAR_MAX + 7},
175 {"quoting-style", required_argument, NULL, CHAR_MAX + 8},
176+ {"unified-reject-files", no_argument, NULL, CHAR_MAX + 9},
177 {NULL, no_argument, NULL, 0}
178 };
179
180@@ -580,6 +581,7 @@ static char const *const option_help[] =
181 " --verbose Output extra information about the work being done.",
182 " --dry-run Do not actually change any files; just print what would happen.",
183 " --posix Conform to the POSIX standard.",
184+" --unified-reject-files Create unified reject files.",
185 "",
186 " -d DIR --directory=DIR Change the working directory to DIR first.",
187 #if HAVE_SETMODE_DOS
188@@ -779,6 +781,9 @@ get_some_switches (void)
189 (enum quoting_style) i);
190 }
191 break;
192+ case CHAR_MAX + 9:
193+ unified_reject_files = true;
194+ break;
195 default:
196 usage (stderr, 2);
197 }
198@@ -927,6 +932,24 @@ locate_hunk (LINENUM fuzz)
199 return 0;
200 }
201
202+static char *
203+format_linerange (char rangebuf[LINENUM_LENGTH_BOUND*2 + 2],
204+ LINENUM first, LINENUM lines)
205+{
206+ if (lines == 1)
207+ rangebuf = format_linenum (rangebuf, first);
208+ else
209+ {
210+ char *rb;
211+ rangebuf = format_linenum (rangebuf + LINENUM_LENGTH_BOUND + 1, lines);
212+ rb = rangebuf-1;
213+ rangebuf = format_linenum (rangebuf - LINENUM_LENGTH_BOUND - 1,
214+ (lines > 0) ? first : 0);
215+ *rb = ',';
216+ }
217+ return rangebuf;
218+}
219+
220 /* We did not find the pattern, dump out the hunk so they can handle it. */
221
222 static void
223@@ -943,8 +966,83 @@ abort_hunk (void)
224 (int) NEW_CONTEXT_DIFF <= (int) diff_type ? " ****" : "";
225 char const *minuses =
226 (int) NEW_CONTEXT_DIFF <= (int) diff_type ? " ----" : " -----";
227+ char const *function = pch_c_function();
228+ if (function == NULL)
229+ function = "";
230+
231+ if (unified_reject_files)
232+ {
233+ /* produce unified reject files */
234+ char rangebuf0[LINENUM_LENGTH_BOUND*2 + 2];
235+ char rangebuf1[LINENUM_LENGTH_BOUND*2 + 2];
236+ LINENUM j;
237+
238+ /* Find the beginning of the remove and insert section. */
239+ for (j = 0; j <= pat_end; j++)
240+ if (pch_char (j) == '=')
241+ break;
242+ for (i = j+1; i <= pat_end; i++)
243+ if (pch_char (i) == '^')
244+ break;
245+ if (pch_char (0) != '*' || j > pat_end || i > pat_end+1)
246+ fatal ("internal error in abort_hunk");
247+ i = 1; j++;
248+
249+ /* @@ -from,lines +to,lines @@ */
250+ fprintf (rejfp, "@@ -%s +%s @@%s\n",
251+ format_linerange (rangebuf0, oldfirst, pch_ptrn_lines()),
252+ format_linerange (rangebuf1, newfirst, pch_repl_lines()),
253+ function);
254+
255+ while ( (i <= pat_end && pch_char (i) != '=')
256+ || (j <= pat_end && pch_char (j) != '^'))
257+ {
258+ if (i <= pat_end
259+ && (pch_char (i) == '-' || pch_char (i) == '!'))
260+ {
261+ fputc('-', rejfp);
262+ pch_write_line (i++, rejfp);
263+ }
264+ else if (j <= pat_end
265+ && (pch_char (j) == '+' || pch_char (j) == '!'))
266+ {
267+ fputc('+', rejfp);
268+ pch_write_line (j++, rejfp);
269+ }
270+ else if ((i <= pat_end
271+ && (pch_char (i) == ' ' || pch_char (i) == '\n')) &&
272+ (j > pat_end
273+ || (pch_char (j) == ' ' || pch_char (j) == '\n')))
274+ {
275+ /* Unless j is already past the end, lines i and j
276+ must be equal here. */
277+
278+ if (pch_char (i) == ' ')
279+ fputc(' ', rejfp);
280+ pch_write_line (i++, rejfp);
281+ if (j <= pat_end)
282+ j++;
283+ }
284+ else if ((j <= pat_end &&
285+ (pch_char (j) == ' ' || pch_char (j) == '\n')) &&
286+ (pch_char (i) == '='))
287+ {
288+ if (pch_char (j) == ' ')
289+ fputc(' ', rejfp);
290+ pch_write_line (j++, rejfp);
291+ }
292+ else
293+ fatal ("internal error in abort_hunk");
294+ }
295+
296+ if (ferror (rejfp))
297+ write_fatal ();
298+ return;
299+ }
300
301- fprintf(rejfp, "***************\n");
302+ /* produce context type reject files */
303+
304+ fprintf(rejfp, "***************%s\n", function);
305 for (i=0; i<=pat_end; i++) {
306 char numbuf0[LINENUM_LENGTH_BOUND + 1];
307 char numbuf1[LINENUM_LENGTH_BOUND + 1];
diff --git a/meta/recipes-devtools/patch/patch_2.5.9.bb b/meta/recipes-devtools/patch/patch_2.5.9.bb
deleted file mode 100644
index c29b240756..0000000000
--- a/meta/recipes-devtools/patch/patch_2.5.9.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1require patch.inc
2LICENSE = "GPLv2"
3
4SRC_URI += " file://debian.patch \
5 file://install.patch \
6 file://unified-reject-files.diff \
7 file://global-reject-file.diff "
8PR = "r3"
9
10LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
11SRC_URI[md5sum] = "dacfb618082f8d3a2194601193cf8716"
12SRC_URI[sha256sum] = "ecb5c6469d732bcf01d6ec1afe9e64f1668caba5bfdb103c28d7f537ba3cdb8a"
diff --git a/meta/recipes-devtools/rsync/rsync-2.6.9/rsync-2.6.9-fname-obo.patch b/meta/recipes-devtools/rsync/rsync-2.6.9/rsync-2.6.9-fname-obo.patch
deleted file mode 100644
index bea325ea05..0000000000
--- a/meta/recipes-devtools/rsync/rsync-2.6.9/rsync-2.6.9-fname-obo.patch
+++ /dev/null
@@ -1,71 +0,0 @@
1Upstream-Status: Backport [ The patch is rsync-2.6.9 specific ]
2CVE: CVE-2007-4091
3
4The patch is from https://issues.rpath.com/browse/RPL-1647 and is used to
5address http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2007-4091
6
7Date: Tue May 10 10:07:36 2011 +0800
8Dexuan Cui <dexuan.cui@intel.com>
9
10diff --git a/sender.c b/sender.c
11index 6fcaa65..053a8f1 100644
12--- a/sender.c
13+++ b/sender.c
14@@ -123,6 +123,7 @@ void successful_send(int ndx)
15 char fname[MAXPATHLEN];
16 struct file_struct *file;
17 unsigned int offset;
18+ size_t l = 0;
19
20 if (ndx < 0 || ndx >= the_file_list->count)
21 return;
22@@ -133,6 +134,20 @@ void successful_send(int ndx)
23 file->dir.root, "/", NULL);
24 } else
25 offset = 0;
26+
27+ l = offset + 1;
28+ if (file) {
29+ if (file->dirname)
30+ l += strlen(file->dirname);
31+ if (file->basename)
32+ l += strlen(file->basename);
33+ }
34+
35+ if (l >= sizeof(fname)) {
36+ rprintf(FERROR, "Overlong pathname\n");
37+ exit_cleanup(RERR_FILESELECT);
38+ }
39+
40 f_name(file, fname + offset);
41 if (remove_source_files) {
42 if (do_unlink(fname) == 0) {
43@@ -224,6 +239,7 @@ void send_files(struct file_list *flist, int f_out, int f_in)
44 enum logcode log_code = log_before_transfer ? FLOG : FINFO;
45 int f_xfer = write_batch < 0 ? batch_fd : f_out;
46 int i, j;
47+ size_t l = 0;
48
49 if (verbose > 2)
50 rprintf(FINFO, "send_files starting\n");
51@@ -259,6 +275,20 @@ void send_files(struct file_list *flist, int f_out, int f_in)
52 fname[offset++] = '/';
53 } else
54 offset = 0;
55+
56+ l = offset + 1;
57+ if (file) {
58+ if (file->dirname)
59+ l += strlen(file->dirname);
60+ if (file->basename)
61+ l += strlen(file->basename);
62+ }
63+
64+ if (l >= sizeof(fname)) {
65+ rprintf(FERROR, "Overlong pathname\n");
66+ exit_cleanup(RERR_FILESELECT);
67+ }
68+
69 fname2 = f_name(file, fname + offset);
70
71 if (verbose > 2)
diff --git a/meta/recipes-devtools/rsync/rsync-2.6.9/rsyncd.conf b/meta/recipes-devtools/rsync/rsync-2.6.9/rsyncd.conf
deleted file mode 100644
index 845f5b33f5..0000000000
--- a/meta/recipes-devtools/rsync/rsync-2.6.9/rsyncd.conf
+++ /dev/null
@@ -1,15 +0,0 @@
1# /etc/rsyncd.conf
2
3# Minimal configuration file for rsync daemon
4# See rsync(1) and rsyncd.conf(5) man pages for help
5
6# This file is required by rsync --daemon
7pid file = /var/run/rsyncd.pid
8use chroot = yes
9read only = yes
10
11# Simple example for enabling your own local rsync server
12#[everything]
13# path = /
14# comment = Everything except /etc exposed
15# exclude = /etc
diff --git a/meta/recipes-devtools/rsync/rsync_2.6.9.bb b/meta/recipes-devtools/rsync/rsync_2.6.9.bb
deleted file mode 100644
index 17f1d31945..0000000000
--- a/meta/recipes-devtools/rsync/rsync_2.6.9.bb
+++ /dev/null
@@ -1,15 +0,0 @@
1require rsync.inc
2
3SRC_URI += "file://rsync-2.6.9-fname-obo.patch \
4 file://rsyncd.conf \
5"
6
7SRC_URI[md5sum] = "996d8d8831dbca17910094e56dcb5942"
8SRC_URI[sha256sum] = "ca437301becd890e73300bc69a39189ff1564baa761948ff149b3dd7bde633f9"
9
10LICENSE = "GPLv2+"
11LIC_FILES_CHKSUM = "file://COPYING;md5=6d5a9d4c4d3af25cd68fd83e8a8cb09c"
12
13PR = "r4"
14
15PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
diff --git a/meta/recipes-extended/bash/bash-3.2.57/build-tests.patch b/meta/recipes-extended/bash/bash-3.2.57/build-tests.patch
deleted file mode 100644
index e63457cf2b..0000000000
--- a/meta/recipes-extended/bash/bash-3.2.57/build-tests.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1Add 'ptest' target to Makefile, to run tests without checking dependencies.
2
3Signed-off-by: Anders Roxell <anders.roxell@enea.com>
4Upstream-Status: Pending
5---
6diff -dNaur bash-3.2.48/Makefile.in.orig bash-3.2.48/Makefile.in
7--- bash-3.2.48/Makefile.in.orig 2006-08-17 23:03:35.000000000 +0500
8+++ bash-3.2.48/Makefile.in 2013-07-02 20:20:07.512709327 +0500
9@@ -803,17 +803,31 @@
10 fi
11
12 recho$(EXEEXT): $(SUPPORT_SRC)recho.c
13- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)recho.c ${LIBS_FOR_BUILD}
14+ @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $<
15
16 zecho$(EXEEXT): $(SUPPORT_SRC)zecho.c
17- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)zecho.c ${LIBS_FOR_BUILD}
18+ @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $<
19
20 printenv$(EXEEXT): $(SUPPORT_SRC)printenv.c
21- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)printenv.c ${LIBS_FOR_BUILD}
22+ @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $<
23
24-test tests check: force $(Program) $(TESTS_SUPPORT)
25+test tests check:
26+ @$(MAKE) install-test
27+ @$(MAKE) runtest
28+
29+install-test: buildtest
30+ifeq ($(origin INSTALL_TEST_DIR), undefined)
31 @-test -d tests || mkdir tests
32 @cp $(TESTS_SUPPORT) tests
33+else
34+ @-test -d $(INSTALL_TEST_DIR) || mkdir -p $(INSTALL_TEST_DIR)
35+ @cp -r $(srcdir)/tests/* $(INSTALL_TEST_DIR)/
36+ @cp $(TESTS_SUPPORT) $(INSTALL_TEST_DIR)
37+endif
38+
39+buildtest: force $(Program) $(TESTS_SUPPORT)
40+
41+runtest:
42 @( cd $(srcdir)/tests && \
43 PATH=$(BUILD_DIR)/tests:$$PATH THIS_SH=$(THIS_SH) $(SHELL) ${TESTSCRIPT} )
44
diff --git a/meta/recipes-extended/bash/bash-3.2.57/dont-include-target-CFLAGS-in-host-LDFLAGS.patch b/meta/recipes-extended/bash/bash-3.2.57/dont-include-target-CFLAGS-in-host-LDFLAGS.patch
deleted file mode 100644
index ee756dc9e3..0000000000
--- a/meta/recipes-extended/bash/bash-3.2.57/dont-include-target-CFLAGS-in-host-LDFLAGS.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1From 933bd886af49667e88e2385409449ab598813dab Mon Sep 17 00:00:00 2001
2From: Andre McCurdy <armccurdy@gmail.com>
3Date: Wed, 15 Jul 2015 00:54:33 -0700
4Subject: [PATCH] dont include target CFLAGS in host LDFLAGS
5
6Building the host tool 'mkbuiltins' will fail if the target CFLAGS
7contains an option which isn't supported by the host's gcc. To prevent
8the issue, define LDFLAGS_FOR_BUILD based on CFLAGS_FOR_BUILD instead
9of CFLAGS.
10
11Upstream-Status: Inappropriate [required for bash 3.2.57 (GPLv2) recipe only]
12
13Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
14---
15 builtins/Makefile.in | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-)
17
18diff --git a/builtins/Makefile.in b/builtins/Makefile.in
19index e027f7a..ebfddf3 100644
20--- a/builtins/Makefile.in
21+++ b/builtins/Makefile.in
22@@ -63,7 +63,7 @@ LOCAL_DEFS = @LOCAL_DEFS@
23
24 LIBS = @LIBS@
25 LDFLAGS = @LDFLAGS@ $(LOCAL_LDFLAGS) $(CFLAGS)
26-LDFLAGS_FOR_BUILD = $(LDFLAGS)
27+LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ $(LOCAL_LDFLAGS) $(CFLAGS_FOR_BUILD)
28 LOCAL_LDFLAGS = @LOCAL_LDFLAGS@
29 #LIBS_FOR_BUILD = @LIBS_FOR_BUILD@
30 LIBS_FOR_BUILD = $(LIBS)
31--
321.9.1
33
diff --git a/meta/recipes-extended/bash/bash-3.2.57/mkbuiltins_have_stringize.patch b/meta/recipes-extended/bash/bash-3.2.57/mkbuiltins_have_stringize.patch
deleted file mode 100644
index c4229a7ed9..0000000000
--- a/meta/recipes-extended/bash/bash-3.2.57/mkbuiltins_have_stringize.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1On hosts with FORTIFY_SOURCES, stringize support is required, as it's used by
2the macros to wrap functions (e.g. read and open in unistd.h). Those wrappers
3use the STRING() macro from unistd.h. A header in the bash sources overrides
4the unistd.h macro to 'x' when HAVE_STRINGIZE is not defined, causing the
5wrappers to generate calls to 'xread' and 'xopen', which do not exist,
6resulting in a failure to link.
7
8Assume we have stringize support when cross-compiling, which works around the
9issue.
10
11It may be best for upstream to either give up on supporting compilers without
12stringize support, or to not define STRING() at all when FORTIFY_SOURCES is
13defined, letting the unistd.h one be used, instead.
14
15Upstream-Status: Pending
16
17Signed-off-by: Christopher Larson <chris_larson@mentor.com>
18Signed-off-by: Saul Wold <sgw@linux.intel.com>
19
20--- bash-4.2.orig/builtins/mkbuiltins.c
21+++ bash-4.2/builtins/mkbuiltins.c
22@@ -28,6 +28,7 @@
23 # define HAVE_STDLIB_H
24
25 # define HAVE_RENAME
26+# define HAVE_STRINGIZE
27 #endif /* CROSS_COMPILING */
28
29 #if defined (HAVE_UNISTD_H)
diff --git a/meta/recipes-extended/bash/bash-3.2.57/run-ptest b/meta/recipes-extended/bash/bash-3.2.57/run-ptest
deleted file mode 100644
index 8dd3b9981d..0000000000
--- a/meta/recipes-extended/bash/bash-3.2.57/run-ptest
+++ /dev/null
@@ -1,2 +0,0 @@
1#!/bin/sh
2make -k THIS_SH=/bin/bash BUILD_DIR=. runtest
diff --git a/meta/recipes-extended/bash/bash-3.2.57/string-format.patch b/meta/recipes-extended/bash/bash-3.2.57/string-format.patch
deleted file mode 100644
index eda39649d9..0000000000
--- a/meta/recipes-extended/bash/bash-3.2.57/string-format.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1Fix a string format warning when using security flags:
2
3| ../bash-3.2.48/print_cmd.c:1152:3: error: format not a string literal and no format arguments [-Werror=format-security]
4| cprintf (indentation_string);
5
6Upstream-Status: Backport
7Signed-off-by: Ross Burton <ross.burton@intel.com>
8
9diff --git a/print_cmd.c b/print_cmd.c
10index d1dfd1a..956db53 100644
11--- a/print_cmd.c
12+++ b/print_cmd.c
13@@ -1149,7 +1149,7 @@ indent (amount)
14 for (i = 0; amount > 0; amount--)
15 indentation_string[i++] = ' ';
16 indentation_string[i] = '\0';
17- cprintf (indentation_string);
18+ cprintf ("%s", indentation_string);
19 }
20
21 static void
diff --git a/meta/recipes-extended/bash/bash-3.2.57/test-output.patch b/meta/recipes-extended/bash/bash-3.2.57/test-output.patch
deleted file mode 100644
index 2b09b7d977..0000000000
--- a/meta/recipes-extended/bash/bash-3.2.57/test-output.patch
+++ /dev/null
@@ -1,25 +0,0 @@
1Add FAIL/PASS output to test output.
2
3Signed-off-by: Björn Stenberg <bjst@enea.com>
4Upstream-Status: Pending
5---
6diff -uNr a/tests/run-all b/tests/run-all
7--- a/tests/run-all 1999-10-08 17:07:46.000000000 +0200
8+++ b/tests/run-all 2012-10-27 21:04:18.663331887 +0200
9@@ -22,7 +22,15 @@
10 case $x in
11 $0|run-minimal|run-gprof) ;;
12 *.orig|*~) ;;
13- *) echo $x ; sh $x ;;
14+ *) echo $x
15+ output=`sh $x`
16+ if [ -n "$output" ]; then
17+ echo "$output"
18+ echo "FAIL: $x"
19+ else
20+ echo "PASS: $x"
21+ fi
22+ ;;
23 esac
24 done
25
diff --git a/meta/recipes-extended/bash/bash_3.2.57.bb b/meta/recipes-extended/bash/bash_3.2.57.bb
deleted file mode 100644
index 5c288b35a2..0000000000
--- a/meta/recipes-extended/bash/bash_3.2.57.bb
+++ /dev/null
@@ -1,18 +0,0 @@
1require bash.inc
2
3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=fd5d9bcabd8ed5a54a01ce8d183d592a"
5
6SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
7 file://mkbuiltins_have_stringize.patch \
8 file://build-tests.patch \
9 file://test-output.patch \
10 file://run-ptest \
11 file://dont-include-target-CFLAGS-in-host-LDFLAGS.patch \
12 file://string-format.patch \
13 "
14
15SRC_URI[md5sum] = "237a8767c990b43ae2c89895c2dbc062"
16SRC_URI[sha256sum] = "3fa9daf85ebf35068f090ce51283ddeeb3c75eb5bc70b1a4a7cb05868bfe06a4"
17
18PARALLEL_MAKE = ""
diff --git a/meta/recipes-extended/cpio/cpio-2.8/avoid_heap_overflow.patch b/meta/recipes-extended/cpio/cpio-2.8/avoid_heap_overflow.patch
deleted file mode 100644
index a31573510a..0000000000
--- a/meta/recipes-extended/cpio/cpio-2.8/avoid_heap_overflow.patch
+++ /dev/null
@@ -1,26 +0,0 @@
1Upstream-Status: Inappropriate [bugfix: http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0624]
2CVE: CVE-2010-0624
3
4This patch avoids heap overflow reported by :
5http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0624
6
7This is a clean patch for the GPLv2 tar recipe.
8
9the GPLv2 tar recipe patch is also applicable to this GPLv2 cpio
10recipe, as they share code.
11
12Nitin A Kamble <nitin.a.kamble@intel.com> 2011/04/25
13
14Index: tar-1.17/lib/rtapelib.c
15===================================================================
16--- tar-1.17.orig/lib/rtapelib.c
17+++ tar-1.17/lib/rtapelib.c
18@@ -570,7 +570,7 @@ rmt_read__ (int handle, char *buffer, si
19
20 sprintf (command_buffer, "R%lu\n", (unsigned long) length);
21 if (do_command (handle, command_buffer) == -1
22- || (status = get_status (handle)) == SAFE_READ_ERROR)
23+ || ((status = get_status (handle)) == SAFE_READ_ERROR) || (status > length))
24 return SAFE_READ_ERROR;
25
26 for (counter = 0; counter < status; counter += rlen, buffer += rlen)
diff --git a/meta/recipes-extended/cpio/cpio-2.8/fix-memory-overrun.patch b/meta/recipes-extended/cpio/cpio-2.8/fix-memory-overrun.patch
deleted file mode 100644
index 0148e70797..0000000000
--- a/meta/recipes-extended/cpio/cpio-2.8/fix-memory-overrun.patch
+++ /dev/null
@@ -1,217 +0,0 @@
1cpio: Fix memory overrun on reading improperly created link records
2
3Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
4
5http://git.savannah.gnu.org/cgit/cpio.git/commit/?id=746f3ff670dcfcdd28fcc990e79cd6fccc7ae48d
6
7 * src/copyin.c (get_link_name): New function.
8 (list_file, copyin_link): use get_link_name
9
10 * tests/symlink-bad-length.at: New file.
11 * tests/symlink-long.at: New file.
12 * tests/Makefile.am: Add new files.
13 * tests/testsuite.at: Likewise.
14
15 See http://lists.gnu.org/archive/html/bug-cpio/2014-11/msg00007.html
16
17Upstream-Status: Backport
18
19Signed-off-by: Sergey Poznyakoff <gray@gnu.org.ua>
20
21diff -Nurp cpio-2.8.orig/src/copyin.c cpio-2.8/src/copyin.c
22--- cpio-2.8.orig/src/copyin.c 2007-06-07 19:58:03.000000000 +0800
23+++ cpio-2.8/src/copyin.c 2014-12-08 11:30:01.159791484 +0800
24@@ -126,6 +126,28 @@ tape_skip_padding (int in_file_des, int
25 }
26
27
28+static char *
29+get_link_name (struct cpio_file_stat *file_hdr, int in_file_des)
30+{
31+ off_t n = file_hdr->c_filesize + 1;
32+ char *link_name;
33+
34+ if (n == 0 || n > SIZE_MAX)
35+ {
36+ error (0, 0, _("%s: stored filename length too big"), file_hdr->c_name);
37+ link_name = NULL;
38+ }
39+ else
40+ {
41+ link_name = xmalloc (n);
42+ tape_buffered_read (link_name, in_file_des, file_hdr->c_filesize);
43+ link_name[file_hdr->c_filesize] = '\0';
44+ tape_skip_padding (in_file_des, file_hdr->c_filesize);
45+ }
46+ return link_name;
47+}
48+
49+
50 static void
51 list_file(struct cpio_file_stat* file_hdr, int in_file_des)
52 {
53@@ -136,21 +158,16 @@ list_file(struct cpio_file_stat* file_hd
54 {
55 if (archive_format != arf_tar && archive_format != arf_ustar)
56 {
57- char *link_name = NULL; /* Name of hard and symbolic links. */
58-
59- link_name = (char *) xmalloc ((unsigned int) file_hdr->c_filesize + 1);
60- link_name[file_hdr->c_filesize] = '\0';
61- tape_buffered_read (link_name, in_file_des, file_hdr->c_filesize);
62- long_format (file_hdr, link_name);
63- free (link_name);
64- tape_skip_padding (in_file_des, file_hdr->c_filesize);
65- return;
66+ char *link_name = get_link_name (file_hdr, in_file_des);
67+ if (link_name)
68+ {
69+ long_format (file_hdr, link_name);
70+ free (link_name);
71+ }
72 }
73 else
74- {
75 long_format (file_hdr, file_hdr->c_tar_linkname);
76- return;
77- }
78+ return;
79 }
80 else
81 #endif
82@@ -732,10 +749,7 @@ copyin_link(struct cpio_file_stat *file_
83
84 if (archive_format != arf_tar && archive_format != arf_ustar)
85 {
86- link_name = (char *) xmalloc ((unsigned int) file_hdr->c_filesize + 1);
87- link_name[file_hdr->c_filesize] = '\0';
88- tape_buffered_read (link_name, in_file_des, file_hdr->c_filesize);
89- tape_skip_padding (in_file_des, file_hdr->c_filesize);
90+ link_name = get_link_name (file_hdr, in_file_des);
91 }
92 else
93 {
94diff -Nurp cpio-2.8.orig/tests/Makefile.am cpio-2.8/tests/Makefile.am
95--- cpio-2.8.orig/tests/Makefile.am 2006-10-24 18:32:13.000000000 +0800
96+++ cpio-2.8/tests/Makefile.am 2014-12-08 11:30:52.387789482 +0800
97@@ -45,6 +45,8 @@ TESTSUITE_AT = \
98 testsuite.at\
99 inout.at\
100 symlink.at\
101+ symlink-bad-length.at\
102+ symlink-long.at\
103 version.at
104
105 TESTSUITE = $(srcdir)/testsuite
106diff -Nurp cpio-2.8.orig/tests/symlink-bad-length.at cpio-2.8/tests/symlink-bad-length.at
107--- cpio-2.8.orig/tests/symlink-bad-length.at 1970-01-01 08:00:00.000000000 +0800
108+++ cpio-2.8/tests/symlink-bad-length.at 2014-12-08 11:33:25.283783507 +0800
109@@ -0,0 +1,49 @@
110+# Process this file with autom4te to create testsuite. -*- Autotest -*-
111+# Copyright (C) 2014 Free Software Foundation, Inc.
112+
113+# This program is free software; you can redistribute it and/or modify
114+# it under the terms of the GNU General Public License as published by
115+# the Free Software Foundation; either version 3, or (at your option)
116+# any later version.
117+
118+# This program is distributed in the hope that it will be useful,
119+# but WITHOUT ANY WARRANTY; without even the implied warranty of
120+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
121+# GNU General Public License for more details.
122+
123+# You should have received a copy of the GNU General Public License
124+# along with this program; if not, write to the Free Software
125+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
126+# 02110-1301 USA.
127+
128+# Cpio v2.11 did segfault with badly set symlink length.
129+# References:
130+# http://lists.gnu.org/archive/html/bug-cpio/2014-11/msg00007.html
131+
132+AT_SETUP([symlink-bad-length])
133+AT_KEYWORDS([symlink-long copyout])
134+
135+AT_DATA([ARCHIVE.base64],
136+[x3EjAIBAtIEtJy8nAQAAAHRUYW0FAAAADQBGSUxFAABzb21lIGNvbnRlbnQKAMdxIwBgQ/+hLScv
137+JwEAAAB0VEhuBQD/////TElOSwAARklMRcdxAAAAAAAAAAAAAAEAAAAAAAAACwAAAAAAVFJBSUxF
138+UiEhIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
139+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
140+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
141+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
142+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
143+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
144+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
145+])
146+
147+AT_CHECK([
148+base64 -d ARCHIVE.base64 > ARCHIVE || AT_SKIP_TEST
149+cpio -ntv < ARCHIVE
150+test $? -eq 2
151+],
152+[0],
153+[-rw-rw-r-- 1 10029 10031 13 Nov 25 13:52 FILE
154+],[cpio: LINK: stored filename length too big
155+cpio: premature end of file
156+])
157+
158+AT_CLEANUP
159diff -Nurp cpio-2.8.orig/tests/symlink-long.at cpio-2.8/tests/symlink-long.at
160--- cpio-2.8.orig/tests/symlink-long.at 1970-01-01 08:00:00.000000000 +0800
161+++ cpio-2.8/tests/symlink-long.at 2014-12-08 11:34:28.807781024 +0800
162@@ -0,0 +1,46 @@
163+# Process this file with autom4te to create testsuite. -*- Autotest -*-
164+# Copyright (C) 2014 Free Software Foundation, Inc.
165+
166+# This program is free software; you can redistribute it and/or modify
167+# it under the terms of the GNU General Public License as published by
168+# the Free Software Foundation; either version 3, or (at your option)
169+# any later version.
170+
171+# This program is distributed in the hope that it will be useful,
172+# but WITHOUT ANY WARRANTY; without even the implied warranty of
173+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
174+# GNU General Public License for more details.
175+
176+# You should have received a copy of the GNU General Public License
177+# along with this program; if not, write to the Free Software
178+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
179+# 02110-1301 USA.
180+
181+# Cpio v2.11.90 changed the way symlink name is read from archive.
182+# References:
183+# http://lists.gnu.org/archive/html/bug-cpio/2014-11/msg00007.html
184+
185+AT_SETUP([symlink-long])
186+AT_KEYWORDS([symlink-long copyout])
187+
188+AT_CHECK([
189+
190+# len(dirname) > READBUFSIZE
191+dirname=
192+for i in {1..52}; do
193+ dirname="xxxxxxxxx/$dirname"
194+ mkdir "$dirname"
195+done
196+ln -s "$dirname" x || AT_SKIP_TEST
197+
198+echo x | cpio -o > ar
199+list=`cpio -tv < ar | sed 's|.*-> ||'`
200+test "$list" = "$dirname" && echo success || echo fail
201+],
202+[0],
203+[success
204+],[2 blocks
205+2 blocks
206+])
207+
208+AT_CLEANUP
209diff -Nurp cpio-2.8.orig/tests/testsuite.at cpio-2.8/tests/testsuite.at
210--- cpio-2.8.orig/tests/testsuite.at 2006-10-24 18:32:13.000000000 +0800
211+++ cpio-2.8/tests/testsuite.at 2014-12-08 11:34:56.515779942 +0800
212@@ -31,3 +31,5 @@ m4_include([version.at])
213
214 m4_include([inout.at])
215 m4_include([symlink.at])
216+m4_include([symlink-bad-length.at])
217+m4_include([symlink-long.at])
diff --git a/meta/recipes-extended/cpio/cpio-2.8/m4extensions.patch b/meta/recipes-extended/cpio/cpio-2.8/m4extensions.patch
deleted file mode 100644
index e16585dd3f..0000000000
--- a/meta/recipes-extended/cpio/cpio-2.8/m4extensions.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1Upstream-Status: Inappropriate [licensing]
2
3# Define AC_USE_SYSTEM_EXTENSIONS only if it was previously undefined.
4# This is needed to configure correctly with newer versions of autoconf.
5
6diff -urN cpio-2.8.orig/m4/extensions.m4 cpio-2.8/m4/extensions.m4
7--- cpio-2.8.orig/m4/extensions.m4 2006-10-12 04:34:45.000000000 -0700
8+++ cpio-2.8/m4/extensions.m4 2010-07-23 14:37:36.000000000 -0700
9@@ -1,4 +1,4 @@
10-# serial 4 -*- Autoconf -*-
11+# serial 5 -*- Autoconf -*-
12 # Enable extensions on systems that normally disable them.
13
14 # Copyright (C) 2003, 2006 Free Software Foundation, Inc.
15@@ -16,6 +16,7 @@
16 # ------------------------
17 # Enable extensions on systems that normally disable them,
18 # typically due to standards-conformance issues.
19+m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [], [
20 AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
21 [
22 AC_BEFORE([$0], [AC_COMPILE_IFELSE])
23@@ -48,7 +49,7 @@
24 AC_DEFINE([__EXTENSIONS__])
25 AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
26 AC_DEFINE([_TANDEM_SOURCE])
27-])
28+])])
29
30 # gl_USE_SYSTEM_EXTENSIONS
31 # ------------------------
diff --git a/meta/recipes-extended/cpio/cpio-2.8/statdef.patch b/meta/recipes-extended/cpio/cpio-2.8/statdef.patch
deleted file mode 100644
index a00799fea9..0000000000
--- a/meta/recipes-extended/cpio/cpio-2.8/statdef.patch
+++ /dev/null
@@ -1,15 +0,0 @@
1Upstream-Status: Inappropriate [licensing]
2
3# Avoid multiple stat definitions
4# Patch taken from cpio mailing list posting 2010-03-19
5
6diff -urN cpio-2.11.orig/src/filetypes.h cpio-2.11/src/filetypes.h
7--- cpio-2.11.orig/src/filetypes.h 2010-02-12 02:19:23.000000000 -0800
8+++ cpio-2.11/src/filetypes.h 2010-07-23 13:17:25.000000000 -0700
9@@ -82,4 +82,6 @@
10 #define lstat stat
11 #endif
12 int lstat ();
13+#ifndef stat
14 int stat ();
15+#endif
diff --git a/meta/recipes-extended/cpio/cpio_2.8.bb b/meta/recipes-extended/cpio/cpio_2.8.bb
deleted file mode 100644
index 624906b134..0000000000
--- a/meta/recipes-extended/cpio/cpio_2.8.bb
+++ /dev/null
@@ -1,19 +0,0 @@
1require cpio_v2.inc
2
3LICENSE = "GPLv2"
4LIC_FILES_CHKSUM = "file://COPYING;md5=b7f772ea3a2489231cb4872656cac34b"
5
6PR = "r4"
7
8SRC_URI += " \
9 file://statdef.patch \
10 file://m4extensions.patch \
11 file://avoid_heap_overflow.patch \
12 file://fix-memory-overrun.patch \
13 "
14
15SRC_URI[md5sum] = "0caa356e69e149fb49b76bacc64615a1"
16SRC_URI[sha256sum] = "1b203248874c3b5a728b351f06513e5282f73e0170b7f207fbf8c39f28f6b4ad"
17
18# Required to build with gcc 4.3 and later:
19CFLAGS += "-fgnu89-inline"
diff --git a/meta/recipes-extended/diffutils/diffutils-2.8.1/diffutils_fix_for_automake-1.12.patch b/meta/recipes-extended/diffutils/diffutils-2.8.1/diffutils_fix_for_automake-1.12.patch
deleted file mode 100644
index f8638bbffe..0000000000
--- a/meta/recipes-extended/diffutils/diffutils-2.8.1/diffutils_fix_for_automake-1.12.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1Upstream-Status: Pending
2
3automake 1.12 has depricated automatic de-ANSI-fication support
4
5this patch avoids these kinds of errors:
6
7| configure.ac:90: error: automatic de-ANSI-fication support has been removed
8| /srv/home/nitin/builds/build-gcc47/tmp/sysroots/x86_64-linux/usr/share/aclocal-1.12/protos.m4:12: AM_C_PROTOTYPES is expanded from...
9| /srv/home/nitin/builds/build-gcc47/tmp/work/i586-poky-linux/diffutils-2.8.1-r4/diffutils-2.8.1/m4/prereq.m4:110: jm_PREREQ_QUOTEARG is expanded from...
10| configure.ac:90: the top level
11| autom4te: m4 failed with exit status: 1
12
13Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
142012/05/04
15
16Index: diffutils-2.8.1/m4/prereq.m4
17===================================================================
18--- diffutils-2.8.1.orig/m4/prereq.m4
19+++ diffutils-2.8.1/m4/prereq.m4
20@@ -115,7 +115,6 @@ AC_DEFUN([jm_PREREQ_QUOTEARG],
21 AC_HEADER_STDC
22 AC_C_BACKSLASH_A
23 AC_MBSTATE_T
24- AM_C_PROTOTYPES
25 ])
26
27 AC_DEFUN([jm_PREREQ_REGEX],
diff --git a/meta/recipes-extended/diffutils/diffutils-2.8.1/fix_gcc6.patch b/meta/recipes-extended/diffutils/diffutils-2.8.1/fix_gcc6.patch
deleted file mode 100644
index f915287fe7..0000000000
--- a/meta/recipes-extended/diffutils/diffutils-2.8.1/fix_gcc6.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1Fixes to allow diffutils to build with gcc v6.
2
3RP
42016/5/25
5
6Index: diffutils-2.8.1/lib/posix/regex.h
7===================================================================
8--- diffutils-2.8.1.orig/lib/posix/regex.h
9+++ diffutils-2.8.1/lib/posix/regex.h
10@@ -529,7 +529,9 @@ extern int re_exec _RE_ARGS ((const char
11 /* For now unconditionally define __restrict_arr to expand to nothing.
12 Ideally we would have a test for the compiler which allows defining
13 it to restrict. */
14+#ifndef __restrict_arr
15 #define __restrict_arr
16+#endif
17
18 /* POSIX compatibility. */
19 extern int regcomp _RE_ARGS ((regex_t *__restrict __preg,
20Index: diffutils-2.8.1/src/diff.c
21===================================================================
22--- diffutils-2.8.1.orig/src/diff.c
23+++ diffutils-2.8.1/src/diff.c
24@@ -71,6 +71,7 @@ static void usage (void);
25 static bool recursive;
26
27 /* In context diffs, show previous lines that match these regexps. */
28+struct re_pattern_buffer function_regexp;
29 static struct regexp_list function_regexp_list;
30
31 /* Ignore changes affecting only lines that match these regexps. */
diff --git a/meta/recipes-extended/diffutils/diffutils_2.8.1.bb b/meta/recipes-extended/diffutils/diffutils_2.8.1.bb
deleted file mode 100644
index fe56f9ce5f..0000000000
--- a/meta/recipes-extended/diffutils/diffutils_2.8.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
1LICENSE = "GPLv2+"
2LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
3
4require diffutils.inc
5
6PR = "r7.0"
7
8SRC_URI = "${GNU_MIRROR}/diffutils/diffutils-${PV}.tar.gz \
9 file://diffutils_fix_for_automake-1.12.patch \
10 file://fix_gcc6.patch"
11
12SRC_URI[md5sum] = "71f9c5ae19b60608f6c7f162da86a428"
13SRC_URI[sha256sum] = "c5001748b069224dd98bf1bb9ee877321c7de8b332c8aad5af3e2a7372d23f5a"
14
15do_configure_prepend () {
16 chmod u+w ${S}/po/Makefile.in.in
17}
diff --git a/meta/recipes-extended/ed/ed_0.5.bb b/meta/recipes-extended/ed/ed_0.5.bb
deleted file mode 100644
index e2df13f4bc..0000000000
--- a/meta/recipes-extended/ed/ed_0.5.bb
+++ /dev/null
@@ -1,20 +0,0 @@
1SUMMARY = "Line-oriented text editor"
2HOMEPAGE = "http://www.gnu.org/software/ed/"
3SECTION = "base"
4LICENSE = "GPLv2+"
5LIC_FILES_CHKSUM = "file://COPYING;md5=6ddd5335ef96fb858a138230af773710 \
6 file://main.c;beginline=1;endline=17;md5=36d4b85e5ae9028e918d1cc775c2475e"
7
8PR = "r2"
9SRC_URI = "${SAVANNAH_GNU_MIRROR}/ed/ed-${PV}.tar.bz2"
10
11SRC_URI[md5sum] = "4ee21e9dcc9b5b6012c23038734e1632"
12SRC_URI[sha256sum] = "edef2bbde0fbf0d88232782a0eded323f483a0519d6fde9a3b1809056fd35f3e"
13
14inherit autotools texinfo
15
16EXTRA_OECONF = "'CC=${CC}' 'CXX=${CXX}' 'CFLAGS=${CFLAGS}' 'CXXFLAGS=${CXXFLAGS}' 'CPPFLAGS=${CPPFLAGS}' 'LDFLAGS=${LDFLAGS}'"
17
18CONFIGUREOPTS_remove = "--disable-dependency-tracking"
19CONFIGUREOPTS_remove = "--disable-silent-rules"
20EXTRA_OECONF_remove = "--disable-static"
diff --git a/meta/recipes-extended/findutils/findutils-4.2.31/findutils-fix-doc-build-error.patch b/meta/recipes-extended/findutils/findutils-4.2.31/findutils-fix-doc-build-error.patch
deleted file mode 100644
index 2076e44097..0000000000
--- a/meta/recipes-extended/findutils/findutils-4.2.31/findutils-fix-doc-build-error.patch
+++ /dev/null
@@ -1,53 +0,0 @@
1From 33cba24cba7b0973a702e9627bd5b93962948ae4 Mon Sep 17 00:00:00 2001
2From: Jackie Huang <jackie.huang@windriver.com>
3Date: Tue, 17 Sep 2013 16:11:16 +0800
4Subject: [PATCH] findutils: fix doc build error
5
6Upstream-Status: Backport
7
8Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
9---
10 doc/find.texi | 6 +++---
11 1 files changed, 3 insertions(+), 3 deletions(-)
12
13diff --git a/doc/find.texi b/doc/find.texi
14index 5b5f0cf..b3d9c6b 100644
15--- a/doc/find.texi
16+++ b/doc/find.texi
17@@ -63,7 +63,7 @@ translation approved by the Foundation.
18
19 @page
20 @vskip 0pt plus 1filll
21-@insertcopying{}
22+@insertcopying
23 @end titlepage
24
25 @contents
26@@ -1466,6 +1466,7 @@ no output is ever sent to it.
27 * Escapes::
28 * Format Directives::
29 * Time Formats::
30+* Formatting Flags::
31 @end menu
32
33 @node Escapes
34@@ -1534,7 +1535,6 @@ from the novel you are reading.
35 * Size Directives::
36 * Location Directives::
37 * Time Directives::
38-* Formatting Flags::
39 @end menu
40
41 @node Name Directives
42@@ -1780,7 +1780,7 @@ setting the TZ environment variable). This is a GNU extension.
43 @end table
44
45 @node Formatting Flags
46-@subsubsection Formatting Flags
47+@subsection Formatting Flags
48
49 The @samp{%m} and @samp{%d} directives support the @samp{#}, @samp{0}
50 and @samp{+} flags, but the other directives do not, even if they
51--
521.7.4.1
53
diff --git a/meta/recipes-extended/findutils/findutils-4.2.31/findutils_fix_for_automake-1.12.patch b/meta/recipes-extended/findutils/findutils-4.2.31/findutils_fix_for_automake-1.12.patch
deleted file mode 100644
index 1b7f8cfb99..0000000000
--- a/meta/recipes-extended/findutils/findutils-4.2.31/findutils_fix_for_automake-1.12.patch
+++ /dev/null
@@ -1,23 +0,0 @@
1Upstream-Status: Pending
2
3automake 1.12 has depricated automatic de-ANSI-fication support
4
5this patch avoids these kinds of errors:
6
7| configure.in:75: error: automatic de-ANSI-fication support has been removed
8
9Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
102012/05/04
11
12Index: findutils-4.2.31/configure.in
13===================================================================
14--- findutils-4.2.31.orig/configure.in
15+++ findutils-4.2.31/configure.in
16@@ -72,7 +72,6 @@ dnl gl_EARLY calls AC_GNU_SOURCE anyway.
17
18
19 AC_ISC_POSIX
20-AM_C_PROTOTYPES
21
22 AC_PROG_INSTALL
23 AC_PROG_RANLIB
diff --git a/meta/recipes-extended/findutils/findutils-4.2.31/gnulib-extension.patch b/meta/recipes-extended/findutils/findutils-4.2.31/gnulib-extension.patch
deleted file mode 100644
index 65bd64277c..0000000000
--- a/meta/recipes-extended/findutils/findutils-4.2.31/gnulib-extension.patch
+++ /dev/null
@@ -1,56 +0,0 @@
1Upstream-Status: Inappropriate [legacy version]
2
3the old AC_USE_SYSTEM_EXTENSIONS won't work with AC_GNU_SOURCE
4
5against 4.2.31
607/08/2010 - qhe
7
8diff --git a/gnulib/m4/extensions.m4 b/gnulib/m4/extensions.m4
9index 143a9e5..0f27ceb 100644
10--- a/gnulib/m4/extensions.m4
11+++ b/gnulib/m4/extensions.m4
12@@ -12,44 +12,6 @@
13 # enough in this area it's likely we'll need to redefine
14 # AC_USE_SYSTEM_EXTENSIONS for quite some time.
15
16-# AC_USE_SYSTEM_EXTENSIONS
17-# ------------------------
18-# Enable extensions on systems that normally disable them,
19-# typically due to standards-conformance issues.
20-AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
21-[
22- AC_BEFORE([$0], [AC_COMPILE_IFELSE])
23- AC_BEFORE([$0], [AC_RUN_IFELSE])
24-
25- AC_REQUIRE([AC_GNU_SOURCE])
26- AC_REQUIRE([AC_AIX])
27- AC_REQUIRE([AC_MINIX])
28-
29- AH_VERBATIM([__EXTENSIONS__],
30-[/* Enable extensions on Solaris. */
31-#ifndef __EXTENSIONS__
32-# undef __EXTENSIONS__
33-#endif
34-#ifndef _POSIX_PTHREAD_SEMANTICS
35-# undef _POSIX_PTHREAD_SEMANTICS
36-#endif
37-#ifndef _TANDEM_SOURCE
38-# undef _TANDEM_SOURCE
39-#endif])
40- AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
41- [ac_cv_safe_to_define___extensions__],
42- [AC_COMPILE_IFELSE(
43- [AC_LANG_PROGRAM([
44-# define __EXTENSIONS__ 1
45- AC_INCLUDES_DEFAULT])],
46- [ac_cv_safe_to_define___extensions__=yes],
47- [ac_cv_safe_to_define___extensions__=no])])
48- test $ac_cv_safe_to_define___extensions__ = yes &&
49- AC_DEFINE([__EXTENSIONS__])
50- AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
51- AC_DEFINE([_TANDEM_SOURCE])
52-])
53-
54 # gl_USE_SYSTEM_EXTENSIONS
55 # ------------------------
56 # Enable extensions on systems that normally disable them,
diff --git a/meta/recipes-extended/findutils/findutils_4.2.31.bb b/meta/recipes-extended/findutils/findutils_4.2.31.bb
deleted file mode 100644
index 7dee018834..0000000000
--- a/meta/recipes-extended/findutils/findutils_4.2.31.bb
+++ /dev/null
@@ -1,14 +0,0 @@
1LICENSE = "GPLv2+"
2LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
3PR = "r4"
4
5require findutils.inc
6
7SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
8 file://gnulib-extension.patch \
9 file://findutils_fix_for_automake-1.12.patch \
10 file://findutils-fix-doc-build-error.patch \
11 "
12
13SRC_URI[md5sum] = "a0e31a0f18a49709bf5a449867c8049a"
14SRC_URI[sha256sum] = "e0d34b8faca0b3cca0703f6c6b498afbe72f0ba16c35980c10ec9ef7724d6204"
diff --git a/meta/recipes-extended/gawk/gawk-3.1.5/0001-gawk-fix-non-glibc-gcc-4-compilation.patch b/meta/recipes-extended/gawk/gawk-3.1.5/0001-gawk-fix-non-glibc-gcc-4-compilation.patch
deleted file mode 100644
index bc9201b631..0000000000
--- a/meta/recipes-extended/gawk/gawk-3.1.5/0001-gawk-fix-non-glibc-gcc-4-compilation.patch
+++ /dev/null
@@ -1,67 +0,0 @@
1From 53496e2e306b16ac59801553f775bcca164e6a39 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net>
3Date: Wed, 14 Sep 2016 16:20:37 +0100
4Subject: [PATCH] fix gcc >= 4 compilation
5
6| ../gawk-3.1.5/hard-locale.h: In function 'hard_locale':
7| ../gawk-3.1.5/hard-locale.h:43:20: error: invalid storage class for function 'xmalloc'
8| static ptr_t xmalloc PARAMS ((size_t n));
9| ^~~~~~~
10
11| ../gawk-3.1.5/hard-locale.h:45:22: warning: implicit declaration of function 'xmalloc' [-Wimplicit-function-declaration]
12| char *locale = xmalloc (strlen (p) + 1);
13| ^~~~~~~
14| ../gawk-3.1.5/hard-locale.h:45:22: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
15| ../gawk-3.1.5/dfa.c: At top level:
16| ../gawk-3.1.5/dfa.c:125:14: error: conflicting types for 'xmalloc'
17| static ptr_t xmalloc PARAMS ((size_t n));
18| ^~~~~~~
19| In file included from ../gawk-3.1.5/dfa.c:112:0:
20| ../gawk-3.1.5/hard-locale.h:45:22: note: previous implicit declaration of 'xmalloc' was here
21| char *locale = xmalloc (strlen (p) + 1);
22| ^~~~~~~
23
24Upstream-Status: Inappropriate [required for gawk 3.1.5 (GPLv2) recipe only]
25
26Signed-off-by: André Draszik <git@andred.net>
27---
28 dfa.c | 2 +-
29 hard-locale.h | 2 --
30 2 files changed, 1 insertion(+), 3 deletions(-)
31
32diff --git a/dfa.c b/dfa.c
33index 71e3736..97f6045 100644
34--- a/dfa.c
35+++ b/dfa.c
36@@ -109,6 +109,7 @@ extern void free();
37
38 #include "regex.h"
39 #include "dfa.h"
40+static ptr_t xmalloc PARAMS ((size_t n));
41 #include "hard-locale.h"
42
43 /* HPUX, define those as macros in sys/param.h */
44@@ -122,7 +123,6 @@ extern void free();
45 static void dfamust PARAMS ((struct dfa *dfa));
46
47 static ptr_t xcalloc PARAMS ((size_t n, size_t s));
48-static ptr_t xmalloc PARAMS ((size_t n));
49 static ptr_t xrealloc PARAMS ((ptr_t p, size_t n));
50 #ifdef DEBUG
51 static void prtok PARAMS ((token t));
52diff --git a/hard-locale.h b/hard-locale.h
53index 0f4986b..9ee57e0 100644
54--- a/hard-locale.h
55+++ b/hard-locale.h
56@@ -40,8 +40,6 @@ hard_locale (int category)
57 if (strcmp (p, "C") == 0 || strcmp (p, "POSIX") == 0)
58 hard = 0;
59 # else
60- static ptr_t xmalloc PARAMS ((size_t n));
61-
62 char *locale = xmalloc (strlen (p) + 1);
63 strcpy (locale, p);
64
65--
662.9.3
67
diff --git a/meta/recipes-extended/gawk/gawk-3.1.5/gawk-3.1.5_fix_for_automake-1.12.patch b/meta/recipes-extended/gawk/gawk-3.1.5/gawk-3.1.5_fix_for_automake-1.12.patch
deleted file mode 100644
index c42c33c420..0000000000
--- a/meta/recipes-extended/gawk/gawk-3.1.5/gawk-3.1.5_fix_for_automake-1.12.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1Upstream-Status: Pending
2
3automake 1.12 has depricated automatic de-ANSI-fication support
4
5this patch avoids these kinds of errors:
6
7| configure.ac:127: error: automatic de-ANSI-fication support has been removed
8| /srv/home/nitin/builds/build-gcc47/tmp/sysroots/x86_64-linux/usr/share/aclocal-1.12/protos.m4:12: AM_C_PROTOTYPES is expanded from...
9| configure.ac:127: the top level
10| autom4te: m4 failed with exit status: 1
11...
12| Makefile.am:27: error: automatic de-ANSI-fication support has been removed
13
14Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
152012/05/04
16
17Index: gawk-3.1.5/configure.ac
18===================================================================
19--- gawk-3.1.5.orig/configure.ac
20+++ gawk-3.1.5/configure.ac
21@@ -124,7 +124,6 @@ fi
22
23 dnl check for C compiler for automake
24 AM_PROG_CC_STDC
25-AM_C_PROTOTYPES
26
27 dnl Cygwin doesn't like to get libs with full paths
28 dnl since that overrides linking against DLLs.
29Index: gawk-3.1.5/Makefile.am
30===================================================================
31--- gawk-3.1.5.orig/Makefile.am
32+++ gawk-3.1.5/Makefile.am
33@@ -24,7 +24,7 @@
34 ## process this file with automake to produce Makefile.in
35
36 # Automatic de-ANSI-fication if needed, make .bz2 files also.
37-AUTOMAKE_OPTIONS = ansi2knr dist-bzip2
38+AUTOMAKE_OPTIONS = dist-bzip2
39
40 # This undocumented variable insures that aclocal runs
41 # correctly after changing configure.ac
diff --git a/meta/recipes-extended/gawk/gawk_3.1.5.bb b/meta/recipes-extended/gawk/gawk_3.1.5.bb
deleted file mode 100644
index 63fd32f4b9..0000000000
--- a/meta/recipes-extended/gawk/gawk_3.1.5.bb
+++ /dev/null
@@ -1,44 +0,0 @@
1SUMMARY = "GNU awk text processing utility"
2DESCRIPTION = "The GNU version of awk, a text processing utility. \
3Awk interprets a special-purpose programming language to do \
4quick and easy text pattern matching and reformatting jobs."
5HOMEPAGE = "www.gnu.org/software/gawk"
6BUGTRACKER = "bug-gawk@gnu.org"
7SECTION = "console/utils"
8
9# gawk <= 3.1.5: GPLv2
10# gawk >= 3.1.6: GPLv3
11LICENSE = "GPLv2"
12LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
13
14RDEPENDS_gawk += "gawk-common"
15RDEPENDS_pgawk += "gawk-common"
16PR = "r2"
17
18SRC_URI = "\
19 ${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz \
20 file://gawk-3.1.5_fix_for_automake-1.12.patch \
21 file://0001-gawk-fix-non-glibc-gcc-4-compilation.patch \
22"
23
24SRC_URI[md5sum] = "4760325489479cac17fe0114b8f62f30"
25SRC_URI[sha256sum] = "463dcb9d0ca398b1d4f5a332f6cd9cec56441265fca616f2ea1b44d459e9f0f8"
26
27inherit autotools gettext texinfo update-alternatives
28
29PACKAGES += "gawk-common pgawk"
30
31FILES_${PN} = "${bindir}/gawk* ${bindir}/igawk"
32FILES_gawk-common += "${datadir}/awk/* ${libexecdir}/awk/*"
33FILES_pgawk = "${bindir}/pgawk*"
34
35ALTERNATIVE_${PN} = "awk"
36ALTERNATIVE_TARGET[awk] = "${bindir}/gawk"
37ALTERNATIVE_PRIORITY = "100"
38
39CFLAGS += "-D PROTOTYPES"
40
41do_install_append() {
42 # remove the link since we don't package it
43 rm ${D}${bindir}/awk
44}
diff --git a/meta/recipes-extended/gperf/gperf_3.0.3.bb b/meta/recipes-extended/gperf/gperf_3.0.3.bb
deleted file mode 100644
index 772886121b..0000000000
--- a/meta/recipes-extended/gperf/gperf_3.0.3.bb
+++ /dev/null
@@ -1,10 +0,0 @@
1require gperf.inc
2
3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=a5f84abb0070adf8a0925d7d534b6e0a \
5 file://src/main.cc;beginline=8;endline=19;md5=72a3034a19e72f08ee48ef8244a121fd"
6
7PR = "r1"
8
9SRC_URI[md5sum] = "cc20e58975a38075440423c8fb85fd00"
10SRC_URI[sha256sum] = "63287527c8d9e27e801cf0804436f3494bd569db05d49dcdd2a942ae72fa9055"
diff --git a/meta/recipes-extended/grep/grep-2.5.1a/Makevars b/meta/recipes-extended/grep/grep-2.5.1a/Makevars
deleted file mode 100644
index 8b09f53b0f..0000000000
--- a/meta/recipes-extended/grep/grep-2.5.1a/Makevars
+++ /dev/null
@@ -1,25 +0,0 @@
1# Makefile variables for PO directory in any package using GNU gettext.
2
3# Usually the message domain is the same as the package name.
4DOMAIN = $(PACKAGE)
5
6# These two variables depend on the location of this directory.
7subdir = po
8top_builddir = ..
9
10# These options get passed to xgettext.
11XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
12
13# This is the copyright holder that gets inserted into the header of the
14# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
15# package. (Note that the msgstr strings, extracted from the package's
16# sources, belong to the copyright holder of the package.) Translators are
17# expected to transfer the copyright for their translations to this person
18# or entity, or to disclaim their copyright. The empty string stands for
19# the public domain; in this case the translators are expected to disclaim
20# their copyright.
21COPYRIGHT_HOLDER = Free Software Foundation, Inc.
22
23# This is the list of locale categories, beyond LC_MESSAGES, for which the
24# message catalogs shall be used. It is usually empty.
25EXTRA_LOCALE_CATEGORIES =
diff --git a/meta/recipes-extended/grep/grep-2.5.1a/fix-for-texinfo-5.1.patch b/meta/recipes-extended/grep/grep-2.5.1a/fix-for-texinfo-5.1.patch
deleted file mode 100644
index ce595099f4..0000000000
--- a/meta/recipes-extended/grep/grep-2.5.1a/fix-for-texinfo-5.1.patch
+++ /dev/null
@@ -1,17 +0,0 @@
1Upstream-Status: Inappropriate [Poky Specific this is gplv2 version]
2
3Signed-off-by: Saul Wold <sgw@linux.intel.com>
4
5Index: grep-2.5.1a/doc/grep.texi
6===================================================================
7--- grep-2.5.1a.orig/doc/grep.texi
8+++ grep-2.5.1a/doc/grep.texi
9@@ -288,7 +288,7 @@ This version number should be included i
10 Print a usage message briefly summarizing these command-line options
11 and the bug-reporting address, then exit.
12
13-@itemx --binary-files=@var{type}
14+@item --binary-files=@var{type}
15 @opindex --binary-files
16 @cindex binary files
17 If the first few bytes of a file indicate that the file contains binary
diff --git a/meta/recipes-extended/grep/grep-2.5.1a/fix64-int-to-pointer.patch b/meta/recipes-extended/grep/grep-2.5.1a/fix64-int-to-pointer.patch
deleted file mode 100644
index 3b91520fb2..0000000000
--- a/meta/recipes-extended/grep/grep-2.5.1a/fix64-int-to-pointer.patch
+++ /dev/null
@@ -1,17 +0,0 @@
1Always use locale.h as HAVE_LOCALE_H is no longer handled by ./configure
2Upstream-Status: Inappropriate [ old version that will not be maintained ]
3Signed-off-by: Alex DAMIAN <alexandru.damian@intel.com>
4
5diff --recursive --unified grep-2.5.1a-orig/lib/hard-locale.c grep-2.5.1a/lib/hard-locale.c
6--- grep-2.5.1a-orig/lib/hard-locale.c 2001-03-04 07:33:12.000000000 +0200
7+++ grep-2.5.1a/lib/hard-locale.c 2013-03-11 17:05:52.086444891 +0200
8@@ -38,9 +38,7 @@
9 # endif
10 #endif
11
12-#if HAVE_LOCALE_H
13 # include <locale.h>
14-#endif
15
16 #if HAVE_STRING_H
17 # include <string.h>
diff --git a/meta/recipes-extended/grep/grep-2.5.1a/gettext.patch b/meta/recipes-extended/grep/grep-2.5.1a/gettext.patch
deleted file mode 100644
index 57463355a7..0000000000
--- a/meta/recipes-extended/grep/grep-2.5.1a/gettext.patch
+++ /dev/null
@@ -1,15 +0,0 @@
1Enable operation with later versions of gettext.
2
3Upstream-Status: Inappropriate
4RP 2012/10/19
5
6Index: grep-2.5.1a/configure.in
7===================================================================
8--- grep-2.5.1a.orig/configure.in 2012-10-19 12:57:51.646970204 +0000
9+++ grep-2.5.1a/configure.in 2012-10-19 12:59:49.946968803 +0000
10@@ -140,4 +140,4 @@
11 AC_CHECK_LIB(pcre, pcre_exec)
12 fi
13
14-AC_OUTPUT(Makefile lib/Makefile lib/posix/Makefile src/Makefile tests/Makefile po/Makefile.in intl/Makefile doc/Makefile m4/Makefile vms/Makefile bootstrap/Makefile, [sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile; echo timestamp > stamp-h])
15+AC_OUTPUT(Makefile lib/Makefile lib/posix/Makefile src/Makefile tests/Makefile po/Makefile.in intl/Makefile doc/Makefile m4/Makefile vms/Makefile bootstrap/Makefile, [echo timestamp > stamp-h])
diff --git a/meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch b/meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch
deleted file mode 100644
index a40a9f30bc..0000000000
--- a/meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1The patch to fix CVE-2012-5667
2Reference: https://bugzilla.redhat.com/attachment.cgi?id=686605&action=diff
3
4Multiple integer overflows in GNU Grep before 2.11 might allow
5context-dependent attackers to execute arbitrary code via vectors
6involving a long input line that triggers a heap-based buffer overflow.
7
8http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-5667
9
10Upstream-Status: Inappropriate [other]
11This version of GNU Grep has been abandoned upstream and they are no longer
12accepting patches. This is not a backport.
13CVE: CVE-2012-5667
14
15Signed-off-by: Ming Liu <ming.liu@windriver.com>
16---
17 grep.c | 7 +++----
18 1 file changed, 3 insertions(+), 4 deletions(-)
19
20--- a/src/grep.c 2013-05-15 13:39:33.359191769 +0800
21+++ a/src/grep.c 2013-05-15 13:50:22.609191882 +0800
22@@ -306,6 +306,11 @@ fillbuf (size_t save, struct stats const
23 int cc = 1;
24 char *readbuf;
25 size_t readsize;
26+ const size_t max_save = INT_MAX / 2;
27+
28+ /* Limit the amount of saved data to INT_MAX to fix CVE-2012-5667 */
29+ if (save > max_save)
30+ error (2, 0, _("line too long"));
31
32 /* Offset from start of buffer to start of old stuff
33 that we want to save. */
diff --git a/meta/recipes-extended/grep/grep-2.5.1a/grep-egrep-fgrep-Fix-LSB-NG-cases.patch b/meta/recipes-extended/grep/grep-2.5.1a/grep-egrep-fgrep-Fix-LSB-NG-cases.patch
deleted file mode 100644
index 327ee56402..0000000000
--- a/meta/recipes-extended/grep/grep-2.5.1a/grep-egrep-fgrep-Fix-LSB-NG-cases.patch
+++ /dev/null
@@ -1,1342 +0,0 @@
1From c884dd12ec062569335702848fc5f29f436c28fa Mon Sep 17 00:00:00 2001
2From: Li xin <lixin.fnst@cn.fujitsu.com>
3Date: Mon, 25 May 2015 10:15:57 +0900
4Subject: [PATCH] grep egrep fgrep: Fix LSB NG cases.
5
6The LSB core test requires grep egrep and fgrep can
7perform pattern matching in searches without regard
8to case if -i option is specified.
9
10Upstream-Status: backport.
11
12Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
13---
14 lib/posix/regex.h | 4 +
15 src/dfa.c | 22 +-
16 src/grep.c | 96 ++++---
17 src/search.c | 833 +++++++++++++++++++++++++++++++++++++++++++++---------
18 4 files changed, 768 insertions(+), 187 deletions(-)
19
20diff --git a/lib/posix/regex.h b/lib/posix/regex.h
21index 63c2fef..7bb2b0e 100644
22--- a/lib/posix/regex.h
23+++ b/lib/posix/regex.h
24@@ -109,6 +109,10 @@ typedef unsigned long int reg_syntax_t;
25 If not set, \{, \}, {, and } are literals. */
26 #define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
27
28+/* If this bit is set, then ignore case when matching.
29+ If not set, then case is significant. */
30+#define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1)
31+
32 /* If this bit is set, +, ? and | aren't recognized as operators.
33 If not set, they are. */
34 #define RE_LIMITED_OPS (RE_INTERVALS << 1)
35diff --git a/src/dfa.c b/src/dfa.c
36index 590bfa7..27c876a 100644
37--- a/src/dfa.c
38+++ b/src/dfa.c
39@@ -414,7 +414,7 @@ update_mb_len_index (unsigned char const *p, int len)
40
41 /* This function fetch a wide character, and update cur_mb_len,
42 used only if the current locale is a multibyte environment. */
43-static wchar_t
44+static wint_t
45 fetch_wc (char const *eoferr)
46 {
47 wchar_t wc;
48@@ -423,7 +423,7 @@ fetch_wc (char const *eoferr)
49 if (eoferr != 0)
50 dfaerror (eoferr);
51 else
52- return -1;
53+ return WEOF;
54 }
55
56 cur_mb_len = mbrtowc(&wc, lexptr, lexleft, &mbs);
57@@ -459,7 +459,7 @@ fetch_wc (char const *eoferr)
58 static void
59 parse_bracket_exp_mb ()
60 {
61- wchar_t wc, wc1, wc2;
62+ wint_t wc, wc1, wc2;
63
64 /* Work area to build a mb_char_classes. */
65 struct mb_char_classes *work_mbc;
66@@ -496,7 +496,7 @@ parse_bracket_exp_mb ()
67 work_mbc->invert = 0;
68 do
69 {
70- wc1 = -1; /* mark wc1 is not initialized". */
71+ wc1 = WEOF; /* mark wc1 is not initialized". */
72
73 /* Note that if we're looking at some other [:...:] construct,
74 we just treat it as a bunch of ordinary characters. We can do
75@@ -586,7 +586,7 @@ parse_bracket_exp_mb ()
76 work_mbc->coll_elems[work_mbc->ncoll_elems++] = elem;
77 }
78 }
79- wc = -1;
80+ wc1 = wc = WEOF;
81 }
82 else
83 /* We treat '[' as a normal character here. */
84@@ -600,7 +600,7 @@ parse_bracket_exp_mb ()
85 wc = fetch_wc(("Unbalanced ["));
86 }
87
88- if (wc1 == -1)
89+ if (wc1 == WEOF)
90 wc1 = fetch_wc(_("Unbalanced ["));
91
92 if (wc1 == L'-')
93@@ -630,17 +630,17 @@ parse_bracket_exp_mb ()
94 }
95 REALLOC_IF_NECESSARY(work_mbc->range_sts, wchar_t,
96 range_sts_al, work_mbc->nranges + 1);
97- work_mbc->range_sts[work_mbc->nranges] = wc;
98+ work_mbc->range_sts[work_mbc->nranges] = (wchar_t)wc;
99 REALLOC_IF_NECESSARY(work_mbc->range_ends, wchar_t,
100 range_ends_al, work_mbc->nranges + 1);
101- work_mbc->range_ends[work_mbc->nranges++] = wc2;
102+ work_mbc->range_ends[work_mbc->nranges++] = (wchar_t)wc2;
103 }
104- else if (wc != -1)
105+ else if (wc != WEOF)
106 /* build normal characters. */
107 {
108 REALLOC_IF_NECESSARY(work_mbc->chars, wchar_t, chars_al,
109 work_mbc->nchars + 1);
110- work_mbc->chars[work_mbc->nchars++] = wc;
111+ work_mbc->chars[work_mbc->nchars++] = (wchar_t)wc;
112 }
113 }
114 while ((wc = wc1) != L']');
115@@ -2552,6 +2552,8 @@ match_mb_charset (struct dfa *d, int s, position pos, int index)
116 }
117
118 /* match with a character? */
119+ if (case_fold)
120+ wc = towlower (wc);
121 for (i = 0; i<work_mbc->nchars; i++)
122 {
123 if (wc == work_mbc->chars[i])
124diff --git a/src/grep.c b/src/grep.c
125index 2fb2fac..3fd4b47 100644
126--- a/src/grep.c
127+++ b/src/grep.c
128@@ -30,6 +30,12 @@
129 # include <sys/time.h>
130 # include <sys/resource.h>
131 #endif
132+#if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_MBRTOWC
133+/* We can handle multibyte string. */
134+# define MBS_SUPPORT
135+# include <wchar.h>
136+# include <wctype.h>
137+#endif
138 #include <stdio.h>
139 #include "system.h"
140 #include "getopt.h"
141@@ -255,19 +261,6 @@ reset (int fd, char const *file, struct stats *stats)
142 bufbeg[-1] = eolbyte;
143 bufdesc = fd;
144
145- if (fstat (fd, &stats->stat) != 0)
146- {
147- error (0, errno, "fstat");
148- return 0;
149- }
150- if (directories == SKIP_DIRECTORIES && S_ISDIR (stats->stat.st_mode))
151- return 0;
152-#ifndef DJGPP
153- if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode) || S_ISSOCK(stats->stat.st_mode)))
154-#else
155- if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode)))
156-#endif
157- return 0;
158 if (S_ISREG (stats->stat.st_mode))
159 {
160 if (file)
161@@ -558,33 +551,6 @@ prline (char const *beg, char const *lim, int sep)
162 {
163 size_t match_size;
164 size_t match_offset;
165- if(match_icase)
166- {
167- /* Yuck, this is tricky */
168- char *buf = (char*) xmalloc (lim - beg);
169- char *ibeg = buf;
170- char *ilim = ibeg + (lim - beg);
171- int i;
172- for (i = 0; i < lim - beg; i++)
173- ibeg[i] = tolower (beg[i]);
174- while ((match_offset = (*execute) (ibeg, ilim-ibeg, &match_size, 1))
175- != (size_t) -1)
176- {
177- char const *b = beg + match_offset;
178- if (b == lim)
179- break;
180- fwrite (beg, sizeof (char), match_offset, stdout);
181- printf ("\33[%sm", grep_color);
182- fwrite (b, sizeof (char), match_size, stdout);
183- fputs ("\33[00m", stdout);
184- beg = b + match_size;
185- ibeg = ibeg + match_offset + match_size;
186- }
187- fwrite (beg, 1, lim - beg, stdout);
188- free (buf);
189- lastout = lim;
190- return;
191- }
192 while (lim-beg && (match_offset = (*execute) (beg, lim - beg, &match_size, 1))
193 != (size_t) -1)
194 {
195@@ -601,6 +567,7 @@ prline (char const *beg, char const *lim, int sep)
196 fputs ("\33[00m", stdout);
197 beg = b + match_size;
198 }
199+ fputs ("\33[K", stdout);
200 }
201 fwrite (beg, 1, lim - beg, stdout);
202 if (ferror (stdout))
203@@ -623,7 +590,7 @@ prpending (char const *lim)
204 size_t match_size;
205 --pending;
206 if (outleft
207- || (((*execute) (lastout, nl - lastout, &match_size, 0) == (size_t) -1)
208+ || (((*execute) (lastout, nl + 1 - lastout, &match_size, 0) == (size_t) -1)
209 == !out_invert))
210 prline (lastout, nl + 1, '-');
211 else
212@@ -895,6 +862,19 @@ grepfile (char const *file, struct stats *stats)
213 }
214 else
215 {
216+ if (stat (file, &stats->stat) != 0)
217+ {
218+ suppressible_error (file, errno);
219+ return 1;
220+ }
221+ if (directories == SKIP_DIRECTORIES && S_ISDIR (stats->stat.st_mode))
222+ return 1;
223+#ifndef DJGPP
224+ if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode) || S_ISSOCK(stats->stat.st_mode) || S_ISFIFO(stats->stat.st_mode)))
225+#else
226+ if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode)))
227+#endif
228+ return 1;
229 while ((desc = open (file, O_RDONLY)) < 0 && errno == EINTR)
230 continue;
231
232@@ -1681,9 +1661,6 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"))
233 out_invert ^= 1;
234 match_lines = match_words = 0;
235 }
236- else
237- /* Strip trailing newline. */
238- --keycc;
239 }
240 else
241 if (optind < argc)
242@@ -1697,6 +1674,37 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"))
243 if (!install_matcher (matcher) && !install_matcher ("default"))
244 abort ();
245
246+#ifdef MBS_SUPPORT
247+ if (MB_CUR_MAX != 1 && match_icase)
248+ {
249+ wchar_t wc;
250+ mbstate_t cur_state, prev_state;
251+ int i, len = strlen(keys);
252+
253+ memset(&cur_state, 0, sizeof(mbstate_t));
254+ for (i = 0; i <= len ;)
255+ {
256+ size_t mbclen;
257+ mbclen = mbrtowc(&wc, keys + i, len - i, &cur_state);
258+ if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0)
259+ {
260+ /* An invalid sequence, or a truncated multibyte character.
261+ We treat it as a singlebyte character. */
262+ mbclen = 1;
263+ }
264+ else
265+ {
266+ if (iswupper((wint_t)wc))
267+ {
268+ wc = towlower((wint_t)wc);
269+ wcrtomb(keys + i, wc, &cur_state);
270+ }
271+ }
272+ i += mbclen;
273+ }
274+ }
275+#endif /* MBS_SUPPORT */
276+
277 (*compile)(keys, keycc);
278
279 if ((argc - optind > 1 && !no_filenames) || with_filenames)
280diff --git a/src/search.c b/src/search.c
281index 7bd233f..3c6a485 100644
282--- a/src/search.c
283+++ b/src/search.c
284@@ -18,9 +18,13 @@
285
286 /* Written August 1992 by Mike Haertel. */
287
288+#ifndef _GNU_SOURCE
289+# define _GNU_SOURCE 1
290+#endif
291 #ifdef HAVE_CONFIG_H
292 # include <config.h>
293 #endif
294+#include <assert.h>
295 #include <sys/types.h>
296 #if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_MBRTOWC
297 /* We can handle multibyte string. */
298@@ -31,7 +35,7 @@
299
300 #include "system.h"
301 #include "grep.h"
302-#include "regex.h"
303+#include <regex.h>
304 #include "dfa.h"
305 #include "kwset.h"
306 #include "error.h"
307@@ -39,6 +43,9 @@
308 #ifdef HAVE_LIBPCRE
309 # include <pcre.h>
310 #endif
311+#ifdef HAVE_LANGINFO_CODESET
312+# include <langinfo.h>
313+#endif
314
315 #define NCHAR (UCHAR_MAX + 1)
316
317@@ -70,9 +77,10 @@ static kwset_t kwset;
318 call the regexp matcher at all. */
319 static int kwset_exact_matches;
320
321-#if defined(MBS_SUPPORT)
322-static char* check_multibyte_string PARAMS ((char const *buf, size_t size));
323-#endif
324+/* UTF-8 encoding allows some optimizations that we can't otherwise
325+ assume in a multibyte encoding. */
326+static int using_utf8;
327+
328 static void kwsinit PARAMS ((void));
329 static void kwsmusts PARAMS ((void));
330 static void Gcompile PARAMS ((char const *, size_t));
331@@ -84,6 +92,15 @@ static void Pcompile PARAMS ((char const *, size_t ));
332 static size_t Pexecute PARAMS ((char const *, size_t, size_t *, int));
333
334 void
335+check_utf8 (void)
336+{
337+#ifdef HAVE_LANGINFO_CODESET
338+ if (strcmp (nl_langinfo (CODESET), "UTF-8") == 0)
339+ using_utf8 = 1;
340+#endif
341+}
342+
343+void
344 dfaerror (char const *mesg)
345 {
346 error (2, 0, mesg);
347@@ -141,38 +158,6 @@ kwsmusts (void)
348 }
349 }
350
351-#ifdef MBS_SUPPORT
352-/* This function allocate the array which correspond to "buf".
353- Then this check multibyte string and mark on the positions which
354- are not singlebyte character nor the first byte of a multibyte
355- character. Caller must free the array. */
356-static char*
357-check_multibyte_string(char const *buf, size_t size)
358-{
359- char *mb_properties = malloc(size);
360- mbstate_t cur_state;
361- int i;
362- memset(&cur_state, 0, sizeof(mbstate_t));
363- memset(mb_properties, 0, sizeof(char)*size);
364- for (i = 0; i < size ;)
365- {
366- size_t mbclen;
367- mbclen = mbrlen(buf + i, size - i, &cur_state);
368-
369- if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0)
370- {
371- /* An invalid sequence, or a truncated multibyte character.
372- We treat it as a singlebyte character. */
373- mbclen = 1;
374- }
375- mb_properties[i] = mbclen;
376- i += mbclen;
377- }
378-
379- return mb_properties;
380-}
381-#endif
382-
383 static void
384 Gcompile (char const *pattern, size_t size)
385 {
386@@ -181,7 +166,8 @@ Gcompile (char const *pattern, size_t size)
387 size_t total = size;
388 char const *motif = pattern;
389
390- re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE);
391+ check_utf8 ();
392+ re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE | (match_icase ? RE_ICASE : 0));
393 dfasyntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE, match_icase, eolbyte);
394
395 /* For GNU regex compiler we have to pass the patterns separately to detect
396@@ -218,6 +204,10 @@ Gcompile (char const *pattern, size_t size)
397 motif = sep;
398 } while (sep && total != 0);
399
400+ /* Strip trailing newline. */
401+ if (size && pattern[size - 1] == '\n')
402+ size--;
403+
404 /* In the match_words and match_lines cases, we use a different pattern
405 for the DFA matcher that will quickly throw out cases that won't work.
406 Then if DFA succeeds we do some hairy stuff using the regex matcher
407@@ -233,7 +223,7 @@ Gcompile (char const *pattern, size_t size)
408 static char const line_end[] = "\\)$";
409 static char const word_beg[] = "\\(^\\|[^[:alnum:]_]\\)\\(";
410 static char const word_end[] = "\\)\\([^[:alnum:]_]\\|$\\)";
411- char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end);
412+ char *n = xmalloc (sizeof word_beg - 1 + size + sizeof word_end);
413 size_t i;
414 strcpy (n, match_lines ? line_beg : word_beg);
415 i = strlen (n);
416@@ -257,14 +247,15 @@ Ecompile (char const *pattern, size_t size)
417 size_t total = size;
418 char const *motif = pattern;
419
420+ check_utf8 ();
421 if (strcmp (matcher, "awk") == 0)
422 {
423- re_set_syntax (RE_SYNTAX_AWK);
424+ re_set_syntax (RE_SYNTAX_AWK | (match_icase ? RE_ICASE : 0));
425 dfasyntax (RE_SYNTAX_AWK, match_icase, eolbyte);
426 }
427 else
428 {
429- re_set_syntax (RE_SYNTAX_POSIX_EGREP);
430+ re_set_syntax (RE_SYNTAX_POSIX_EGREP | (match_icase ? RE_ICASE : 0));
431 dfasyntax (RE_SYNTAX_POSIX_EGREP, match_icase, eolbyte);
432 }
433
434@@ -301,6 +292,10 @@ Ecompile (char const *pattern, size_t size)
435 motif = sep;
436 } while (sep && total != 0);
437
438+ /* Strip trailing newline. */
439+ if (size && pattern[size - 1] == '\n')
440+ size--;
441+
442 /* In the match_words and match_lines cases, we use a different pattern
443 for the DFA matcher that will quickly throw out cases that won't work.
444 Then if DFA succeeds we do some hairy stuff using the regex matcher
445@@ -316,7 +311,7 @@ Ecompile (char const *pattern, size_t size)
446 static char const line_end[] = ")$";
447 static char const word_beg[] = "(^|[^[:alnum:]_])(";
448 static char const word_end[] = ")([^[:alnum:]_]|$)";
449- char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end);
450+ char *n = xmalloc (sizeof word_beg - 1 + size + sizeof word_end);
451 size_t i;
452 strcpy (n, match_lines ? line_beg : word_beg);
453 i = strlen(n);
454@@ -339,15 +334,34 @@ EGexecute (char const *buf, size_t size, size_t *match_size, int exact)
455 char eol = eolbyte;
456 int backref, start, len;
457 struct kwsmatch kwsm;
458- size_t i;
459+ size_t i, ret_val;
460+ static int use_dfa;
461+ static int use_dfa_checked = 0;
462 #ifdef MBS_SUPPORT
463- char *mb_properties = NULL;
464+ int mb_cur_max = MB_CUR_MAX;
465+ mbstate_t mbs;
466+ memset (&mbs, '\0', sizeof (mbstate_t));
467 #endif /* MBS_SUPPORT */
468
469+ if (!use_dfa_checked)
470+ {
471+ char *grep_use_dfa = getenv ("GREP_USE_DFA");
472+ if (!grep_use_dfa)
473+ {
474 #ifdef MBS_SUPPORT
475- if (MB_CUR_MAX > 1 && kwset)
476- mb_properties = check_multibyte_string(buf, size);
477+ /* Turn off DFA when processing multibyte input. */
478+ use_dfa = (MB_CUR_MAX == 1);
479+#else
480+ use_dfa = 1;
481 #endif /* MBS_SUPPORT */
482+ }
483+ else
484+ {
485+ use_dfa = atoi (grep_use_dfa);
486+ }
487+
488+ use_dfa_checked = 1;
489+ }
490
491 buflim = buf + size;
492
493@@ -358,47 +372,120 @@ EGexecute (char const *buf, size_t size, size_t *match_size, int exact)
494 if (kwset)
495 {
496 /* Find a possible match using the KWset matcher. */
497- size_t offset = kwsexec (kwset, beg, buflim - beg, &kwsm);
498+#ifdef MBS_SUPPORT
499+ size_t bytes_left = 0;
500+#endif /* MBS_SUPPORT */
501+ size_t offset;
502+#ifdef MBS_SUPPORT
503+ /* kwsexec doesn't work with match_icase and multibyte input. */
504+ if (match_icase && mb_cur_max > 1)
505+ /* Avoid kwset */
506+ offset = 0;
507+ else
508+#endif /* MBS_SUPPORT */
509+ offset = kwsexec (kwset, beg, buflim - beg, &kwsm);
510 if (offset == (size_t) -1)
511- {
512+ goto failure;
513 #ifdef MBS_SUPPORT
514- if (MB_CUR_MAX > 1)
515- free(mb_properties);
516-#endif
517- return (size_t)-1;
518+ if (mb_cur_max > 1 && !using_utf8)
519+ {
520+ bytes_left = offset;
521+ while (bytes_left)
522+ {
523+ size_t mlen = mbrlen (beg, bytes_left, &mbs);
524+ if (mlen == (size_t) -1 || mlen == 0)
525+ {
526+ /* Incomplete character: treat as single-byte. */
527+ memset (&mbs, '\0', sizeof (mbstate_t));
528+ beg++;
529+ bytes_left--;
530+ continue;
531+ }
532+
533+ if (mlen == (size_t) -2)
534+ /* Offset points inside multibyte character:
535+ * no good. */
536+ break;
537+
538+ beg += mlen;
539+ bytes_left -= mlen;
540+ }
541 }
542+ else
543+#endif /* MBS_SUPPORT */
544 beg += offset;
545 /* Narrow down to the line containing the candidate, and
546 run it through DFA. */
547 end = memchr(beg, eol, buflim - beg);
548 end++;
549 #ifdef MBS_SUPPORT
550- if (MB_CUR_MAX > 1 && mb_properties[beg - buf] == 0)
551+ if (mb_cur_max > 1 && bytes_left)
552 continue;
553-#endif
554+#endif /* MBS_SUPPORT */
555 while (beg > buf && beg[-1] != eol)
556 --beg;
557- if (kwsm.index < kwset_exact_matches)
558- goto success;
559- if (dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1)
560+ if (
561+#ifdef MBS_SUPPORT
562+ !(match_icase && mb_cur_max > 1) &&
563+#endif /* MBS_SUPPORT */
564+ (kwsm.index < kwset_exact_matches))
565+ goto success_in_beg_and_end;
566+ if (use_dfa &&
567+ dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1)
568 continue;
569 }
570 else
571 {
572 /* No good fixed strings; start with DFA. */
573- size_t offset = dfaexec (&dfa, beg, buflim - beg, &backref);
574+#ifdef MBS_SUPPORT
575+ size_t bytes_left = 0;
576+#endif /* MBS_SUPPORT */
577+ size_t offset = 0;
578+ if (use_dfa)
579+ offset = dfaexec (&dfa, beg, buflim - beg, &backref);
580 if (offset == (size_t) -1)
581 break;
582 /* Narrow down to the line we've found. */
583+#ifdef MBS_SUPPORT
584+ if (mb_cur_max > 1 && !using_utf8)
585+ {
586+ bytes_left = offset;
587+ while (bytes_left)
588+ {
589+ size_t mlen = mbrlen (beg, bytes_left, &mbs);
590+ if (mlen == (size_t) -1 || mlen == 0)
591+ {
592+ /* Incomplete character: treat as single-byte. */
593+ memset (&mbs, '\0', sizeof (mbstate_t));
594+ beg++;
595+ bytes_left--;
596+ continue;
597+ }
598+
599+ if (mlen == (size_t) -2)
600+ /* Offset points inside multibyte character:
601+ * no good. */
602+ break;
603+
604+ beg += mlen;
605+ bytes_left -= mlen;
606+ }
607+ }
608+ else
609+#endif /* MBS_SUPPORT */
610 beg += offset;
611 end = memchr (beg, eol, buflim - beg);
612 end++;
613+#ifdef MBS_SUPPORT
614+ if (mb_cur_max > 1 && bytes_left)
615+ continue;
616+#endif /* MBS_SUPPORT */
617 while (beg > buf && beg[-1] != eol)
618 --beg;
619 }
620 /* Successful, no backreferences encountered! */
621- if (!backref)
622- goto success;
623+ if (use_dfa && !backref)
624+ goto success_in_beg_and_end;
625 }
626 else
627 end = beg + size;
628@@ -413,14 +500,11 @@ EGexecute (char const *buf, size_t size, size_t *match_size, int exact)
629 end - beg - 1, &(patterns[i].regs))))
630 {
631 len = patterns[i].regs.end[0] - start;
632- if (exact)
633- {
634- *match_size = len;
635- return start;
636- }
637+ if (exact && !match_words)
638+ goto success_in_start_and_len;
639 if ((!match_lines && !match_words)
640 || (match_lines && len == end - beg - 1))
641- goto success;
642+ goto success_in_beg_and_end;
643 /* If -w, check if the match aligns with word boundaries.
644 We do this iteratively because:
645 (a) the line may contain more than one occurence of the
646@@ -431,10 +515,114 @@ EGexecute (char const *buf, size_t size, size_t *match_size, int exact)
647 if (match_words)
648 while (start >= 0)
649 {
650- if ((start == 0 || !WCHAR ((unsigned char) beg[start - 1]))
651- && (len == end - beg - 1
652- || !WCHAR ((unsigned char) beg[start + len])))
653- goto success;
654+ int lword_match = 0;
655+ if (start == 0)
656+ lword_match = 1;
657+ else
658+ {
659+ assert (start > 0);
660+#ifdef MBS_SUPPORT
661+ if (mb_cur_max > 1)
662+ {
663+ const char *s;
664+ size_t mr;
665+ wchar_t pwc;
666+
667+ /* Locate the start of the multibyte character
668+ before the match position (== beg + start). */
669+ if (using_utf8)
670+ {
671+ /* UTF-8 is a special case: scan backwards
672+ until we find a 7-bit character or a
673+ lead byte. */
674+ s = beg + start - 1;
675+ while (s > buf
676+ && (unsigned char) *s >= 0x80
677+ && (unsigned char) *s <= 0xbf)
678+ --s;
679+ }
680+ else
681+ {
682+ /* Scan forwards to find the start of the
683+ last complete character before the
684+ match position. */
685+ size_t bytes_left = start - 1;
686+ s = beg;
687+ while (bytes_left > 0)
688+ {
689+ mr = mbrlen (s, bytes_left, &mbs);
690+ if (mr == (size_t) -1 || mr == 0)
691+ {
692+ memset (&mbs, '\0', sizeof (mbs));
693+ s++;
694+ bytes_left--;
695+ continue;
696+ }
697+ if (mr == (size_t) -2)
698+ {
699+ memset (&mbs, '\0', sizeof (mbs));
700+ break;
701+ }
702+ s += mr;
703+ bytes_left -= mr;
704+ }
705+ }
706+ mr = mbrtowc (&pwc, s, beg + start - s, &mbs);
707+ if (mr == (size_t) -2 || mr == (size_t) -1 ||
708+ mr == 0)
709+ {
710+ memset (&mbs, '\0', sizeof (mbstate_t));
711+ lword_match = 1;
712+ }
713+ else if (!(iswalnum (pwc) || pwc == L'_')
714+ && mr == beg + start - s)
715+ lword_match = 1;
716+ }
717+ else
718+#endif /* MBS_SUPPORT */
719+ if (!WCHAR ((unsigned char) beg[start - 1]))
720+ lword_match = 1;
721+ }
722+
723+ if (lword_match)
724+ {
725+ int rword_match = 0;
726+ if (start + len == end - beg - 1)
727+ rword_match = 1;
728+ else
729+ {
730+#ifdef MBS_SUPPORT
731+ if (mb_cur_max > 1)
732+ {
733+ wchar_t nwc;
734+ int mr;
735+
736+ mr = mbtowc (&nwc, beg + start + len,
737+ end - beg - start - len - 1);
738+ if (mr <= 0)
739+ {
740+ memset (&mbs, '\0', sizeof (mbstate_t));
741+ rword_match = 1;
742+ }
743+ else if (!iswalnum (nwc) && nwc != L'_')
744+ rword_match = 1;
745+ }
746+ else
747+#endif /* MBS_SUPPORT */
748+ if (!WCHAR ((unsigned char) beg[start + len]))
749+ rword_match = 1;
750+ }
751+
752+ if (rword_match)
753+ {
754+ if (!exact)
755+ /* Returns the whole line. */
756+ goto success_in_beg_and_end;
757+ else
758+ /* Returns just this word match. */
759+ goto success_in_start_and_len;
760+ }
761+ }
762 if (len > 0)
763 {
764 /* Try a shorter length anchored at the same place. */
765@@ -461,26 +649,154 @@ EGexecute (char const *buf, size_t size, size_t *match_size, int exact)
766 }
767 } /* for Regex patterns. */
768 } /* for (beg = end ..) */
769-#ifdef MBS_SUPPORT
770- if (MB_CUR_MAX > 1 && mb_properties)
771- free (mb_properties);
772-#endif /* MBS_SUPPORT */
773+
774+ failure:
775 return (size_t) -1;
776
777- success:
778-#ifdef MBS_SUPPORT
779- if (MB_CUR_MAX > 1 && mb_properties)
780- free (mb_properties);
781-#endif /* MBS_SUPPORT */
782- *match_size = end - beg;
783- return beg - buf;
784+ success_in_beg_and_end:
785+ len = end - beg;
786+ start = beg - buf;
787+ /* FALLTHROUGH */
788+
789+ success_in_start_and_len:
790+ *match_size = len;
791+ return start;
792 }
793
794+#ifdef MBS_SUPPORT
795+static int f_i_multibyte; /* whether we're using the new -Fi MB method */
796+static struct
797+{
798+ wchar_t **patterns;
799+ size_t count, maxlen;
800+ unsigned char *match;
801+} Fimb;
802+#endif
803+
804 static void
805 Fcompile (char const *pattern, size_t size)
806 {
807+ int mb_cur_max = MB_CUR_MAX;
808 char const *beg, *lim, *err;
809
810+ check_utf8 ();
811+#ifdef MBS_SUPPORT
812+ /* Support -F -i for UTF-8 input. */
813+ if (match_icase && mb_cur_max > 1)
814+ {
815+ mbstate_t mbs;
816+ wchar_t *wcpattern = xmalloc ((size + 1) * sizeof (wchar_t));
817+ const char *patternend = pattern;
818+ size_t wcsize;
819+ kwset_t fimb_kwset = NULL;
820+ char *starts = NULL;
821+ wchar_t *wcbeg, *wclim;
822+ size_t allocated = 0;
823+
824+ memset (&mbs, '\0', sizeof (mbs));
825+# ifdef __GNU_LIBRARY__
826+ wcsize = mbsnrtowcs (wcpattern, &patternend, size, size, &mbs);
827+ if (patternend != pattern + size)
828+ wcsize = (size_t) -1;
829+# else
830+ {
831+ char *patterncopy = xmalloc (size + 1);
832+
833+ memcpy (patterncopy, pattern, size);
834+ patterncopy[size] = '\0';
835+ patternend = patterncopy;
836+ wcsize = mbsrtowcs (wcpattern, &patternend, size, &mbs);
837+ if (patternend != patterncopy + size)
838+ wcsize = (size_t) -1;
839+ free (patterncopy);
840+ }
841+# endif
842+ if (wcsize + 2 <= 2)
843+ {
844+fimb_fail:
845+ free (wcpattern);
846+ free (starts);
847+ if (fimb_kwset)
848+ kwsfree (fimb_kwset);
849+ free (Fimb.patterns);
850+ Fimb.patterns = NULL;
851+ }
852+ else
853+ {
854+ if (!(fimb_kwset = kwsalloc (NULL)))
855+ error (2, 0, _("memory exhausted"));
856+
857+ starts = xmalloc (mb_cur_max * 3);
858+ wcbeg = wcpattern;
859+ do
860+ {
861+ int i;
862+ size_t wclen;
863+
864+ if (Fimb.count >= allocated)
865+ {
866+ if (allocated == 0)
867+ allocated = 128;
868+ else
869+ allocated *= 2;
870+ Fimb.patterns = xrealloc (Fimb.patterns,
871+ sizeof (wchar_t *) * allocated);
872+ }
873+ Fimb.patterns[Fimb.count++] = wcbeg;
874+ for (wclim = wcbeg;
875+ wclim < wcpattern + wcsize && *wclim != L'\n'; ++wclim)
876+ *wclim = towlower (*wclim);
877+ *wclim = L'\0';
878+ wclen = wclim - wcbeg;
879+ if (wclen > Fimb.maxlen)
880+ Fimb.maxlen = wclen;
881+ if (wclen > 3)
882+ wclen = 3;
883+ if (wclen == 0)
884+ {
885+ if ((err = kwsincr (fimb_kwset, "", 0)) != 0)
886+ error (2, 0, err);
887+ }
888+ else
889+ for (i = 0; i < (1 << wclen); i++)
890+ {
891+ char *p = starts;
892+ int j, k;
893+
894+ for (j = 0; j < wclen; ++j)
895+ {
896+ wchar_t wc = wcbeg[j];
897+ if (i & (1 << j))
898+ {
899+ wc = towupper (wc);
900+ if (wc == wcbeg[j])
901+ continue;
902+ }
903+ k = wctomb (p, wc);
904+ if (k <= 0)
905+ goto fimb_fail;
906+ p += k;
907+ }
908+ if ((err = kwsincr (fimb_kwset, starts, p - starts)) != 0)
909+ error (2, 0, err);
910+ }
911+ if (wclim < wcpattern + wcsize)
912+ ++wclim;
913+ wcbeg = wclim;
914+ }
915+ while (wcbeg < wcpattern + wcsize);
916+ f_i_multibyte = 1;
917+ kwset = fimb_kwset;
918+ free (starts);
919+ Fimb.match = xmalloc (Fimb.count);
920+ if ((err = kwsprep (kwset)) != 0)
921+ error (2, 0, err);
922+ return;
923+ }
924+ }
925+#endif /* MBS_SUPPORT */
926+
927+
928 kwsinit ();
929 beg = pattern;
930 do
931@@ -499,6 +815,76 @@ Fcompile (char const *pattern, size_t size)
932 error (2, 0, err);
933 }
934
935+#ifdef MBS_SUPPORT
936+static int
937+Fimbexec (const char *buf, size_t size, size_t *plen, int exact)
938+{
939+ size_t len, letter, i;
940+ int ret = -1;
941+ mbstate_t mbs;
942+ wchar_t wc;
943+ int patterns_left;
944+
945+ assert (match_icase && f_i_multibyte == 1);
946+ assert (MB_CUR_MAX > 1);
947+
948+ memset (&mbs, '\0', sizeof (mbs));
949+ memset (Fimb.match, '\1', Fimb.count);
950+ letter = len = 0;
951+ patterns_left = 1;
952+ while (patterns_left && len <= size)
953+ {
954+ size_t c;
955+
956+ patterns_left = 0;
957+ if (len < size)
958+ {
959+ c = mbrtowc (&wc, buf + len, size - len, &mbs);
960+ if (c + 2 <= 2)
961+ return ret;
962+
963+ wc = towlower (wc);
964+ }
965+ else
966+ {
967+ c = 1;
968+ wc = L'\0';
969+ }
970+
971+ for (i = 0; i < Fimb.count; i++)
972+ {
973+ if (Fimb.match[i])
974+ {
975+ if (Fimb.patterns[i][letter] == L'\0')
976+ {
977+ /* Found a match. */
978+ *plen = len;
979+ if (!exact && !match_words)
980+ return 0;
981+ else
982+ {
983+ /* For -w or exact look for longest match. */
984+ ret = 0;
985+ Fimb.match[i] = '\0';
986+ continue;
987+ }
988+ }
989+
990+ if (Fimb.patterns[i][letter] == wc)
991+ patterns_left = 1;
992+ else
993+ Fimb.match[i] = '\0';
994+ }
995+ }
996+
997+ len += c;
998+ letter++;
999+ }
1000+
1001+ return ret;
1002+}
1003+#endif /* MBS_SUPPORT */
1004+
1005 static size_t
1006 Fexecute (char const *buf, size_t size, size_t *match_size, int exact)
1007 {
1008@@ -506,88 +892,268 @@ Fexecute (char const *buf, size_t size, size_t *match_size, int exact)
1009 register size_t len;
1010 char eol = eolbyte;
1011 struct kwsmatch kwsmatch;
1012+ size_t ret_val;
1013 #ifdef MBS_SUPPORT
1014- char *mb_properties;
1015- if (MB_CUR_MAX > 1)
1016- mb_properties = check_multibyte_string (buf, size);
1017+ int mb_cur_max = MB_CUR_MAX;
1018+ mbstate_t mbs;
1019+ memset (&mbs, '\0', sizeof (mbstate_t));
1020+ const char *last_char = NULL;
1021 #endif /* MBS_SUPPORT */
1022
1023- for (beg = buf; beg <= buf + size; ++beg)
1024+ for (beg = buf; beg < buf + size; ++beg)
1025 {
1026- size_t offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch);
1027+ size_t offset;
1028+ offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch);
1029+
1030 if (offset == (size_t) -1)
1031- {
1032+ goto failure;
1033 #ifdef MBS_SUPPORT
1034- if (MB_CUR_MAX > 1)
1035- free(mb_properties);
1036-#endif /* MBS_SUPPORT */
1037- return offset;
1038+ if (mb_cur_max > 1 && !using_utf8)
1039+ {
1040+ size_t bytes_left = offset;
1041+ while (bytes_left)
1042+ {
1043+ size_t mlen = mbrlen (beg, bytes_left, &mbs);
1044+
1045+ last_char = beg;
1046+ if (mlen == (size_t) -1 || mlen == 0)
1047+ {
1048+ /* Incomplete character: treat as single-byte. */
1049+ memset (&mbs, '\0', sizeof (mbstate_t));
1050+ beg++;
1051+ bytes_left--;
1052+ continue;
1053+ }
1054+
1055+ if (mlen == (size_t) -2)
1056+ /* Offset points inside multibyte character: no good. */
1057+ break;
1058+
1059+ beg += mlen;
1060+ bytes_left -= mlen;
1061+ }
1062+
1063+ if (bytes_left)
1064+ continue;
1065 }
1066-#ifdef MBS_SUPPORT
1067- if (MB_CUR_MAX > 1 && mb_properties[offset+beg-buf] == 0)
1068- continue; /* It is a part of multibyte character. */
1069+ else
1070 #endif /* MBS_SUPPORT */
1071 beg += offset;
1072- len = kwsmatch.size[0];
1073- if (exact)
1074- {
1075- *match_size = len;
1076 #ifdef MBS_SUPPORT
1077- if (MB_CUR_MAX > 1)
1078- free (mb_properties);
1079+ /* For f_i_multibyte, the string at beg now matches first 3 chars of
1080+ one of the search strings (less if there are shorter search strings).
1081+ See if this is a real match. */
1082+ if (f_i_multibyte
1083+ && Fimbexec (beg, buf + size - beg, &kwsmatch.size[0], exact))
1084+ goto next_char;
1085 #endif /* MBS_SUPPORT */
1086- return beg - buf;
1087- }
1088+ len = kwsmatch.size[0];
1089+ if (exact && !match_words)
1090+ goto success_in_beg_and_len;
1091 if (match_lines)
1092 {
1093 if (beg > buf && beg[-1] != eol)
1094- continue;
1095+ goto next_char;
1096 if (beg + len < buf + size && beg[len] != eol)
1097- continue;
1098+ goto next_char;
1099 goto success;
1100 }
1101 else if (match_words)
1102- for (try = beg; len; )
1103- {
1104- if (try > buf && WCHAR((unsigned char) try[-1]))
1105- break;
1106- if (try + len < buf + size && WCHAR((unsigned char) try[len]))
1107- {
1108- offset = kwsexec (kwset, beg, --len, &kwsmatch);
1109- if (offset == (size_t) -1)
1110- {
1111+ {
1112+ while (len)
1113+ {
1114+ int word_match = 0;
1115+ if (beg > buf)
1116+ {
1117 #ifdef MBS_SUPPORT
1118- if (MB_CUR_MAX > 1)
1119- free (mb_properties);
1120+ if (mb_cur_max > 1)
1121+ {
1122+ const char *s;
1123+ int mr;
1124+ wchar_t pwc;
1125+
1126+ if (using_utf8)
1127+ {
1128+ s = beg - 1;
1129+ while (s > buf
1130+ && (unsigned char) *s >= 0x80
1131+ && (unsigned char) *s <= 0xbf)
1132+ --s;
1133+ }
1134+ else
1135+ s = last_char;
1136+ mr = mbtowc (&pwc, s, beg - s);
1137+ if (mr <= 0)
1138+ memset (&mbs, '\0', sizeof (mbstate_t));
1139+ else if ((iswalnum (pwc) || pwc == L'_')
1140+ && mr == (int) (beg - s))
1141+ goto next_char;
1142+ }
1143+ else
1144 #endif /* MBS_SUPPORT */
1145- return offset;
1146- }
1147- try = beg + offset;
1148- len = kwsmatch.size[0];
1149- }
1150- else
1151- goto success;
1152- }
1153+ if (WCHAR ((unsigned char) beg[-1]))
1154+ goto next_char;
1155+ }
1156+#ifdef MBS_SUPPORT
1157+ if (mb_cur_max > 1)
1158+ {
1159+ wchar_t nwc;
1160+ int mr;
1161+
1162+ mr = mbtowc (&nwc, beg + len, buf + size - beg - len);
1163+ if (mr <= 0)
1164+ {
1165+ memset (&mbs, '\0', sizeof (mbstate_t));
1166+ word_match = 1;
1167+ }
1168+ else if (!iswalnum (nwc) && nwc != L'_')
1169+ word_match = 1;
1170+ }
1171+ else
1172+#endif /* MBS_SUPPORT */
1173+ if (beg + len >= buf + size || !WCHAR ((unsigned char) beg[len]))
1174+ word_match = 1;
1175+ if (word_match)
1176+ {
1177+ if (!exact)
1178+ /* Returns the whole line now we know there's a word match. */
1179+ goto success;
1180+ else
1181+ /* Returns just this word match. */
1182+ goto success_in_beg_and_len;
1183+ }
1184+ if (len > 0)
1185+ {
1186+ /* Try a shorter length anchored at the same place. */
1187+ --len;
1188+ offset = kwsexec (kwset, beg, len, &kwsmatch);
1189+
1190+ if (offset == -1)
1191+ goto next_char; /* Try a different anchor. */
1192+#ifdef MBS_SUPPORT
1193+ if (mb_cur_max > 1 && !using_utf8)
1194+ {
1195+ size_t bytes_left = offset;
1196+ while (bytes_left)
1197+ {
1198+ size_t mlen = mbrlen (beg, bytes_left, &mbs);
1199+
1200+ last_char = beg;
1201+ if (mlen == (size_t) -1 || mlen == 0)
1202+ {
1203+ /* Incomplete character: treat as single-byte. */
1204+ memset (&mbs, '\0', sizeof (mbstate_t));
1205+ beg++;
1206+ bytes_left--;
1207+ continue;
1208+ }
1209+
1210+ if (mlen == (size_t) -2)
1211+ {
1212+ /* Offset points inside multibyte character:
1213+ * no good. */
1214+ break;
1215+ }
1216+
1217+ beg += mlen;
1218+ bytes_left -= mlen;
1219+ }
1220+
1221+ if (bytes_left)
1222+ {
1223+ memset (&mbs, '\0', sizeof (mbstate_t));
1224+ goto next_char; /* Try a different anchor. */
1225+ }
1226+ }
1227+ else
1228+#endif /* MBS_SUPPORT */
1229+ beg += offset;
1230+#ifdef MBS_SUPPORT
1231+ /* The string at beg now matches first 3 chars of one of
1232+ the search strings (less if there are shorter search
1233+ strings). See if this is a real match. */
1234+ if (f_i_multibyte
1235+ && Fimbexec (beg, len - offset, &kwsmatch.size[0],
1236+ exact))
1237+ goto next_char;
1238+#endif /* MBS_SUPPORT */
1239+ len = kwsmatch.size[0];
1240+ }
1241+ }
1242+ }
1243 else
1244 goto success;
1245- }
1246-
1247+next_char:;
1248 #ifdef MBS_SUPPORT
1249- if (MB_CUR_MAX > 1)
1250- free (mb_properties);
1251+ /* Advance to next character. For MB_CUR_MAX == 1 case this is handled
1252+ by ++beg above. */
1253+ if (mb_cur_max > 1)
1254+ {
1255+ if (using_utf8)
1256+ {
1257+ unsigned char c = *beg;
1258+ if (c >= 0xc2)
1259+ {
1260+ if (c < 0xe0)
1261+ ++beg;
1262+ else if (c < 0xf0)
1263+ beg += 2;
1264+ else if (c < 0xf8)
1265+ beg += 3;
1266+ else if (c < 0xfc)
1267+ beg += 4;
1268+ else if (c < 0xfe)
1269+ beg += 5;
1270+ }
1271+ }
1272+ else
1273+ {
1274+ size_t l = mbrlen (beg, buf + size - beg, &mbs);
1275+
1276+ last_char = beg;
1277+ if (l + 2 >= 2)
1278+ beg += l - 1;
1279+ else
1280+ memset (&mbs, '\0', sizeof (mbstate_t));
1281+ }
1282+ }
1283 #endif /* MBS_SUPPORT */
1284+ }
1285+
1286+ failure:
1287 return -1;
1288
1289 success:
1290+#ifdef MBS_SUPPORT
1291+ if (mb_cur_max > 1 && !using_utf8)
1292+ {
1293+ end = beg + len;
1294+ while (end < buf + size)
1295+ {
1296+ size_t mlen = mbrlen (end, buf + size - end, &mbs);
1297+ if (mlen == (size_t) -1 || mlen == (size_t) -2 || mlen == 0)
1298+ {
1299+ memset (&mbs, '\0', sizeof (mbstate_t));
1300+ mlen = 1;
1301+ }
1302+ if (mlen == 1 && *end == eol)
1303+ break;
1304+
1305+ end += mlen;
1306+ }
1307+ }
1308+ else
1309+#endif /* MBS_SUPPORT */
1310 end = memchr (beg + len, eol, (buf + size) - (beg + len));
1311+
1312 end++;
1313 while (buf < beg && beg[-1] != eol)
1314 --beg;
1315- *match_size = end - beg;
1316-#ifdef MBS_SUPPORT
1317- if (MB_CUR_MAX > 1)
1318- free (mb_properties);
1319-#endif /* MBS_SUPPORT */
1320+ len = end - beg;
1321+ /* FALLTHROUGH */
1322+
1323+ success_in_beg_and_len:
1324+ *match_size = len;
1325 return beg - buf;
1326 }
1327
1328@@ -701,8 +1267,9 @@ Pexecute (char const *buf, size_t size, size_t *match_size, int exact)
1329 char eol = eolbyte;
1330 if (!exact)
1331 {
1332- end = memchr (end, eol, buflim - end);
1333- end++;
1334+ while (end < buflim)
1335+ if (*end++ == eol)
1336+ break;
1337 while (buf < beg && beg[-1] != eol)
1338 --beg;
1339 }
1340--
13411.8.4.2
1342
diff --git a/meta/recipes-extended/grep/grep-2.5.1a/grep_fix_for_automake-1.12.patch b/meta/recipes-extended/grep/grep-2.5.1a/grep_fix_for_automake-1.12.patch
deleted file mode 100644
index d9b1e35e72..0000000000
--- a/meta/recipes-extended/grep/grep-2.5.1a/grep_fix_for_automake-1.12.patch
+++ /dev/null
@@ -1,52 +0,0 @@
1Upstream-Status: Pending
2
3automake 1.12 has depricated automatic de-ANSI-fication support
4
5this patch avoids these kinds of errors:
6
7| configure.in:33: error: automatic de-ANSI-fication support has been removed
8| /srv/home/nitin/builds/build-gcc47/tmp/sysroots/x86_64-linux/usr/share/aclocal-1.12/protos.m4:12: AM_C_PROTOTYPES is expanded from...
9| configure.in:33: the top level
10| autom4te: m4 failed with exit status: 1
11...
12| lib/Makefile.am:2: error: automatic de-ANSI-fication support has been removed
13| src/Makefile.am:2: error: automatic de-ANSI-fication support has been removed
14| autoreconf: automake failed with exit status: 1
15
16Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
172012/05/04
18
19Index: grep-2.5.1a/configure.in
20===================================================================
21--- grep-2.5.1a.orig/configure.in
22+++ grep-2.5.1a/configure.in
23@@ -30,7 +30,6 @@ AC_PROG_RANLIB
24
25 dnl Checks for typedefs, structures, and compiler characteristics.
26 AC_SYS_LARGEFILE
27-AM_C_PROTOTYPES
28 AC_TYPE_SIZE_T
29 AC_CHECK_TYPE(ssize_t, int)
30 AC_C_CONST
31Index: grep-2.5.1a/lib/Makefile.am
32===================================================================
33--- grep-2.5.1a.orig/lib/Makefile.am
34+++ grep-2.5.1a/lib/Makefile.am
35@@ -1,5 +1,5 @@
36 #
37-AUTOMAKE_OPTIONS = ../src/ansi2knr
38+AUTOMAKE_OPTIONS =
39
40 SUBDIRS = posix
41
42Index: grep-2.5.1a/src/Makefile.am
43===================================================================
44--- grep-2.5.1a.orig/src/Makefile.am
45+++ grep-2.5.1a/src/Makefile.am
46@@ -1,5 +1,5 @@
47 ## Process this file with automake to create Makefile.in
48-AUTOMAKE_OPTIONS = ansi2knr no-dependencies
49+AUTOMAKE_OPTIONS = no-dependencies
50
51 LN = ln
52
diff --git a/meta/recipes-extended/grep/grep-2.5.1a/uclibc-fix.patch b/meta/recipes-extended/grep/grep-2.5.1a/uclibc-fix.patch
deleted file mode 100644
index de054fc755..0000000000
--- a/meta/recipes-extended/grep/grep-2.5.1a/uclibc-fix.patch
+++ /dev/null
@@ -1,55 +0,0 @@
1Upstream-Status: Inappropriate [licensing]
2
3# Fix to use mempcpy instead of __mempcpy. This is needed for uclibc which
4# doesn't define __mempcpy, only mempcpy. Since both uclibc and glibc have
5# mempcpy, we'll just use that instead.
6# Patch source: OpenEmbedded
7
8Index: grep-2.5.1/intl/localealias.c
9===================================================================
10--- grep-2.5.1.orig/intl/localealias.c 2002-03-14 00:39:06.000000000 +1100
11+++ grep-2.5.1/intl/localealias.c 2007-05-17 13:53:58.000000000 +1000
12@@ -65,7 +65,7 @@
13 # define strcasecmp __strcasecmp
14
15 # ifndef mempcpy
16-# define mempcpy __mempcpy
17+# error "mempcpy not detected"
18 # endif
19 # define HAVE_MEMPCPY 1
20 # define HAVE___FSETLOCKING 1
21Index: grep-2.5.1/lib/getopt.c
22===================================================================
23--- grep-2.5.1.orig/lib/getopt.c 2001-03-04 16:33:12.000000000 +1100
24+++ grep-2.5.1/lib/getopt.c 2007-05-17 13:51:44.000000000 +1000
25@@ -326,7 +326,7 @@
26 nonoption_flags_len = nonoption_flags_max_len = 0;
27 else
28 {
29- memset (__mempcpy (new_str, __getopt_nonoption_flags,
30+ memset (mempcpy (new_str, __getopt_nonoption_flags,
31 nonoption_flags_max_len),
32 '\0', top + 1 - nonoption_flags_max_len);
33 nonoption_flags_max_len = top + 1;
34@@ -437,7 +437,7 @@
35 if (__getopt_nonoption_flags == NULL)
36 nonoption_flags_max_len = -1;
37 else
38- memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
39+ memset (mempcpy (__getopt_nonoption_flags, orig_str, len),
40 '\0', nonoption_flags_max_len - len);
41 }
42 }
43Index: grep-2.5.1/lib/regex.c
44===================================================================
45--- grep-2.5.1.orig/lib/regex.c 2001-04-03 04:04:45.000000000 +1000
46+++ grep-2.5.1/lib/regex.c 2007-05-17 13:51:48.000000000 +1000
47@@ -7842,7 +7842,7 @@
48 if (msg_size > errbuf_size)
49 {
50 #if defined HAVE_MEMPCPY || defined _LIBC
51- *((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
52+ *((char *) mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
53 #else
54 memcpy (errbuf, msg, errbuf_size - 1);
55 errbuf[errbuf_size - 1] = 0;
diff --git a/meta/recipes-extended/grep/grep_2.5.1a.bb b/meta/recipes-extended/grep/grep_2.5.1a.bb
deleted file mode 100644
index 5a2da28327..0000000000
--- a/meta/recipes-extended/grep/grep_2.5.1a.bb
+++ /dev/null
@@ -1,56 +0,0 @@
1SUMMARY = "Pattern matching utilities"
2DESCRIPTION = "The GNU versions of commonly used grep utilities. The grep command searches one or more input \
3files for lines containing a match to a specified pattern."
4SECTION = "console/utils"
5LICENSE = "GPLv2"
6LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
7
8PR = "r2"
9
10SRC_URI = "${GNU_MIRROR}/grep/grep-${PV}.tar.bz2 \
11 file://uclibc-fix.patch \
12 file://grep_fix_for_automake-1.12.patch \
13 file://gettext.patch \
14 file://fix64-int-to-pointer.patch \
15 file://Makevars \
16 file://grep-CVE-2012-5667.patch \
17 file://fix-for-texinfo-5.1.patch \
18 file://grep-egrep-fgrep-Fix-LSB-NG-cases.patch \
19 "
20
21SRC_URI[md5sum] = "52202fe462770fa6be1bb667bd6cf30c"
22SRC_URI[sha256sum] = "38c8a2bb9223d1fb1b10bdd607cf44830afc92fd451ac4cd07619bf92bdd3132"
23
24inherit autotools gettext texinfo
25
26EXTRA_OECONF_INCLUDED_REGEX = "--without-included-regex"
27EXTRA_OECONF_INCLUDED_REGEX_libc-musl = "--with-included-regex"
28
29EXTRA_OECONF = "--disable-perl-regexp \
30 ${EXTRA_OECONF_INCLUDED_REGEX}"
31
32CFLAGS += "-D PROTOTYPES"
33do_configure_prepend () {
34 rm -f ${S}/m4/init.m4
35 cp -f ${WORKDIR}/Makevars ${S}/po/
36}
37
38do_install () {
39 autotools_do_install
40 install -d ${D}${base_bindir}
41 mv ${D}${bindir}/grep ${D}${base_bindir}/grep
42 mv ${D}${bindir}/egrep ${D}${base_bindir}/egrep
43 mv ${D}${bindir}/fgrep ${D}${base_bindir}/fgrep
44 rmdir ${D}${bindir}/
45}
46
47inherit update-alternatives
48
49ALTERNATIVE_PRIORITY = "100"
50
51ALTERNATIVE_${PN} = "grep egrep fgrep"
52ALTERNATIVE_LINK_NAME[grep] = "${base_bindir}/grep"
53ALTERNATIVE_LINK_NAME[egrep] = "${base_bindir}/egrep"
54ALTERNATIVE_LINK_NAME[fgrep] = "${base_bindir}/fgrep"
55
56export CONFIG_SHELL="/bin/sh"
diff --git a/meta/recipes-extended/groff/groff-1.18.1.4/fix-narrowing-conversion-error.patch b/meta/recipes-extended/groff/groff-1.18.1.4/fix-narrowing-conversion-error.patch
deleted file mode 100644
index 4b0176fcdd..0000000000
--- a/meta/recipes-extended/groff/groff-1.18.1.4/fix-narrowing-conversion-error.patch
+++ /dev/null
@@ -1,61 +0,0 @@
1From fc289ab69c6d7e4ad489172509a85f68afec43ea Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Fri, 29 Jul 2016 03:19:39 -0400
4Subject: [PATCH] fix narrowing conversion error
5
6While gcc6 used, build old groff (for anti-GPLv3 reasons) failed:
7.....
8|groff-1.18.1.4/src/devices/grolbp/charset.h:69:1: error: narrowing
9conversion of '130' from 'int' to 'char' inside { } [-Wnarrowing]
10......
11
12In upstream git://git.savannah.gnu.org/groff.git,
13the following commit fix the issue, but the license is GPLV3,
14we could not backport it to the old groff which license is GPLV2.
15...
16commit d180038ae0da19655bc2760ae2043efa0550a76c
17Author: Werner LEMBERG <wl@gnu.org>
18Date: Wed Apr 16 21:11:07 2003 +0000
19 * src/devices/grolbp/charset.h (symset): Use `unsigned char'.
20...
21
22We use another different way to fix the issue.
23
24Upstream-Status: Pending
25
26Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
27---
28 src/devices/grolbp/charset.h | 2 +-
29 src/devices/grolbp/lbp.cc | 4 ++--
30 2 files changed, 3 insertions(+), 3 deletions(-)
31
32diff --git a/src/devices/grolbp/charset.h b/src/devices/grolbp/charset.h
33index adc76f4..e9c6c5b 100644
34--- a/src/devices/grolbp/charset.h
35+++ b/src/devices/grolbp/charset.h
36@@ -1,6 +1,6 @@
37 // Definition of the WP54 character set
38
39-char symset[] = {
40+int symset[] = {
41 0x57,0x50,0x35,0x34,0x00,0x41,0x76,0x61,0x6e,0x74,0x47,0x61,
42 0x72,0x64,0x65,0x2d,0x42,0x6f,0x6f,0x6b,0x00,0x41,0x76,
43 0x61,0x6e,0x74,0x47,0x61,0x72,0x64,0x65,0x2d,0x44,0x65,
44diff --git a/src/devices/grolbp/lbp.cc b/src/devices/grolbp/lbp.cc
45index 76db32a..00d4ca7 100644
46--- a/src/devices/grolbp/lbp.cc
47+++ b/src/devices/grolbp/lbp.cc
48@@ -152,8 +152,8 @@ static void wp54charset()
49 {
50 unsigned int i;
51 lbpputs("\033[714;100;29;0;32;120.}");
52- for (i = 0; i < sizeof(symset); i++)
53- lbpputc(symset[i]);
54+ for (i = 0; i < sizeof(symset)/sizeof(symset[0]); i++)
55+ lbpputc((char)symset[i]&0xFF);
56 lbpputs("\033[100;0 D");
57 return;
58 }
59--
602.8.1
61
diff --git a/meta/recipes-extended/groff/groff-1.18.1.4/groff-1.18.1.4-fix-bindir.patch b/meta/recipes-extended/groff/groff-1.18.1.4/groff-1.18.1.4-fix-bindir.patch
deleted file mode 100644
index 559ae72898..0000000000
--- a/meta/recipes-extended/groff/groff-1.18.1.4/groff-1.18.1.4-fix-bindir.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1Upstream-Status: Inappropriate [embedded]
2
3Signed-off-by: Ming Liu <ming.liu@windriver.com>
4---
5 Makefile.sub | 10 +++++-----
6 1 file changed, 5 insertions(+), 5 deletions(-)
7
8--- a/contrib/groffer/Makefile.sub
9+++ b/contrib/groffer/Makefile.sub
10@@ -38,16 +38,16 @@ groffer: groffer.sh groffer2.sh version.
11 $(RM) $@;
12 sed \
13 -e "s|@g@|$(g)|g" \
14- -e "s|@BINDIR@|$(DESTDIR)$(bindir)|g" \
15+ -e "s|@BINDIR@|$(bindir)|g" \
16 -e "s|@libdir@|$(DESTDIR)$(libdir)|g" \
17 -e "s|@VERSION@|$(version)$(revision)|g" \
18 $(srcdir)/groffer.sh >$@;
19 chmod +x $@
20
21 install_data: groffer
22- -test -d $(DESTDIR)$(bindir) || $(mkinstalldirs) $(DESTDIR)$(bindir)
23- -$(RM) $(DESTDIR)$(bindir)/groffer
24- $(INSTALL_SCRIPT) groffer $(DESTDIR)$(bindir)/groffer
25+ -test -d $(bindir) || $(mkinstalldirs) $(bindir)
26+ -$(RM) $(bindir)/groffer
27+ $(INSTALL_SCRIPT) groffer $(bindir)/groffer
28 -test -d $(DESTDIR)$(libdir)/groff/groffer || \
29 $(mkinstalldirs) $(DESTDIR)$(libdir)/groff/groffer
30 -$(RM) $(DESTDIR)$(libdir)/groff/groffer/groffer2.sh
31@@ -58,7 +58,7 @@ install_data: groffer
32 $(DESTDIR)$(libdir)/groff/groffer/version.sh
33
34 uninstall_sub:
35- -$(RM) $(DESTDIR)$(bindir)/groffer
36+ -$(RM) $(bindir)/groffer
37 -$(RM) $(DESTDIR)$(libdir)/groff/groffer/groffer2.sh
38 -$(RM) $(DESTDIR)$(libdir)/groff/groffer/version.sh
39 -rmdir $(DESTDIR)$(libdir)/groff/groffer
diff --git a/meta/recipes-extended/groff/groff-1.18.1.4/groff-1.18.1.4-remove-mom.patch b/meta/recipes-extended/groff/groff-1.18.1.4/groff-1.18.1.4-remove-mom.patch
deleted file mode 100644
index c24eff9af5..0000000000
--- a/meta/recipes-extended/groff/groff-1.18.1.4/groff-1.18.1.4-remove-mom.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1
2Upstream-Status: Inappropriate [embedded]
3
4Signed-off-by: Saul Wold <sgw@linux.intel.com>
5---
6 groff-1.18.1.4/Makefile.in | 7 +------
7 1 file changed, 1 insertion(+), 6 deletions(-)
8
9--- a/Makefile.in
10+++ b/Makefile.in
11@@ -460,27 +460,22 @@ OTHERDIRS=\
12 src/roff/grog \
13 src/roff/nroff \
14 contrib/mm \
15 contrib/pic2graph \
16 contrib/eqn2graph \
17- contrib/groffer \
18- contrib/mom \
19- doc
20+ contrib/groffer
21 ALLDIRS=$(INCDIRS) $(LIBDIRS) $(PROGDIRS) \
22 $(DEVDIRS) $(OTHERDEVDIRS) $(TTYDEVDIRS) $(OTHERDIRS)
23 EXTRADIRS=\
24 font/devps/generate \
25 font/devdvi/generate \
26 font/devlj4/generate \
27- src/xditview \
28 doc
29 NOMAKEDIRS=\
30 arch/djgpp \
31 contrib/mm/examples \
32 contrib/mm/mm \
33- contrib/mom/examples \
34- contrib/mom/momdoc \
35 src/libs/snprintf
36 DISTDIRS=\
37 $(INCDIRS) $(LIBDIRS) $(PROGDIRS) $(DEVDIRS) $(OTHERDEVDIRS) \
38 $(ALLTTYDEVDIRS) $(OTHERDIRS) $(EXTRADIRS) $(NOMAKEDIRS)
39 TARGETS=all install install_bin install_data clean distclean mostlyclean \
diff --git a/meta/recipes-extended/groff/groff-1.18.1.4/man-local.patch b/meta/recipes-extended/groff/groff-1.18.1.4/man-local.patch
deleted file mode 100644
index e3f1aa6a48..0000000000
--- a/meta/recipes-extended/groff/groff-1.18.1.4/man-local.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1Upstream-Status: Inappropriate [embedded]
2
3Signed-off-by: Saul Wold <sgw@linux.intel.com>
4
5Index: groff-1.18.1.4/tmac/man.local
6===================================================================
7--- groff-1.18.1.4.orig/tmac/man.local 2000-10-26 22:15:17.000000000 +0800
8+++ groff-1.18.1.4/tmac/man.local 2010-08-24 14:17:52.070006664 +0800
9@@ -1,2 +1,27 @@
10 .\" This file is loaded after an-old.tmac.
11 .\" Put any local modifications to an-old.tmac here.
12+.
13+.if n \{\
14+. \" Debian: Map \(oq to ' rather than ` in nroff mode for devices other
15+. \" than utf8.
16+. if !'\*[.T]'utf8' \
17+. tr \[oq]'
18+.
19+. \" Debian: Disable the use of SGR (ANSI colour) escape sequences by
20+. \" grotty.
21+. if '\V[GROFF_SGR]'' \
22+. output x X tty: sgr 0
23+.
24+. \" Debian: Map \- to the Unicode HYPHEN-MINUS character, to make
25+. \" searching in man pages easier.
26+. if '\*[.T]'utf8' \
27+. char \- \N'45'
28+.
29+. \" Debian: Many UTF-8 man pages use "-" instead of "\-" for dashes such
30+. \" as those in command-line options. This is a bug in those pages, but
31+. \" too many fonts are missing the Unicode HYPHEN character, so we render
32+. \" this as the ASCII-compatible HYPHEN-MINUS instead.
33+. if '\*[.T]'utf8' \
34+. char - \N'45'
35+.\}
36+
diff --git a/meta/recipes-extended/groff/groff-1.18.1.4/mdoc-local.patch b/meta/recipes-extended/groff/groff-1.18.1.4/mdoc-local.patch
deleted file mode 100644
index 409c1a5a18..0000000000
--- a/meta/recipes-extended/groff/groff-1.18.1.4/mdoc-local.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1
2Upstream-Status: Inappropriate [embedded]
3
4Signed-off-by: Saul Wold <sgw@linux.intel.com>
5
6Index: groff-1.18.1.4/tmac/mdoc.local
7===================================================================
8--- groff-1.18.1.4.orig/tmac/mdoc.local 2001-03-23 08:17:51.000000000 +0800
9+++ groff-1.18.1.4/tmac/mdoc.local 2010-08-24 14:20:22.014006846 +0800
10@@ -1,2 +1,26 @@
11 .\" This file is loaded after doc.tmac.
12 .\" Put any local modifications to doc.tmac here.
13+.
14+.if n \{\
15+. \" Debian: Map \(oq to ' rather than ` in nroff mode for devices other
16+. \" than utf8.
17+. if !'\*[.T]'utf8' \
18+. tr \[oq]'
19+.
20+. \" Debian: Disable the use of SGR (ANSI colour) escape sequences by
21+. \" grotty.
22+. if '\V[GROFF_SGR]'' \
23+. output x X tty: sgr 0
24+.
25+. \" Debian: Map \- to the Unicode HYPHEN-MINUS character, to make
26+. \" searching in man pages easier.
27+. if '\*[.T]'utf8' \
28+. char \- \N'45'
29+.
30+. \" Debian: Many UTF-8 man pages use "-" instead of "\-" for dashes such
31+. \" as those in command-line options. This is a bug in those pages, but
32+. \" too many fonts are missing the Unicode HYPHEN character, so we render
33+. \" this as the ASCII-compatible HYPHEN-MINUS instead.
34+. if '\*[.T]'utf8' \
35+. char - \N'45'
36+.\}
diff --git a/meta/recipes-extended/groff/groff_1.18.1.4.bb b/meta/recipes-extended/groff/groff_1.18.1.4.bb
deleted file mode 100644
index fc7eb44781..0000000000
--- a/meta/recipes-extended/groff/groff_1.18.1.4.bb
+++ /dev/null
@@ -1,50 +0,0 @@
1SUMMARY = "GNU Troff software"
2DESCRIPTION = "The groff (GNU troff) software is a typesetting package which reads plain text mixed with \
3formatting commands and produces formatted output."
4SECTION = "console/utils"
5HOMEPAGE = "http://www.gnu.org/software/groff/"
6LICENSE = "GPLv2"
7PR = "r1"
8
9LIC_FILES_CHKSUM = "file://COPYING;md5=e43fc16fccd8519fba405f0a0ff6e8a3"
10
11SRC_URI = "${GNU_MIRROR}/${BPN}/old/${BP}.tar.gz \
12 file://groff-1.18.1.4-remove-mom.patch;striplevel=1 \
13 file://man-local.patch \
14 file://mdoc-local.patch \
15 file://groff-1.18.1.4-fix-bindir.patch \
16 file://fix-narrowing-conversion-error.patch \
17"
18
19inherit autotools texinfo
20
21EXTRA_OECONF="--without-x --prefix=${D} --exec-prefix=${D} --bindir=${D}${bindir} --datadir=${D}${datadir} --mandir=${D}${datadir}/man --infodir=${D}${datadir}info --with-appresdir=${D}${datadir}"
22
23SRC_URI[md5sum] = "ceecb81533936d251ed015f40e5f7287"
24SRC_URI[sha256sum] = "ff3c7c3b6cae5e8cc5062a144de5eff0022e8e970e1774529cc2d5dde46ce50d"
25PARALLEL_MAKE = ""
26
27do_configure (){
28 oe_runconf
29}
30
31do_install_append() {
32 # Some distros have both /bin/perl and /usr/bin/perl, but we set perl location
33 # for target as /usr/bin/perl, so fix it to /usr/bin/perl.
34 for i in afmtodit mmroff; do
35 if [ -f ${D}${bindir}/$i ]; then
36 sed -i -e '1s,#!.*perl,#! ${USRBINPATH}/env perl,' ${D}${bindir}/$i
37 fi
38 done
39
40 mkdir -p ${D}${sysconfdir}/groff
41 cp -rf ${D}${datadir}/groff/site-tmac/* ${D}${sysconfdir}/groff/
42 cp -rf ${D}${datadir}/groff/site-tmac/* ${D}${datadir}/groff/${PV}/tmac/
43}
44
45pkg_postinst_${PN}() {
46 ln -s tbl $D${bindir}/gtbl
47 echo "export GROFF_FONT_PATH=/usr/share/groff/${PV}/font" >> $D${sysconfdir}/profile
48 echo "export GROFF_TMAC_PATH=/usr/share/groff/${PV}/tmac" >> $D${sysconfdir}/profile
49}
50
diff --git a/meta/recipes-extended/gzip/gzip-1.3.12/dup-def-fix.patch b/meta/recipes-extended/gzip/gzip-1.3.12/dup-def-fix.patch
deleted file mode 100644
index d9e8d212bf..0000000000
--- a/meta/recipes-extended/gzip/gzip-1.3.12/dup-def-fix.patch
+++ /dev/null
@@ -1,48 +0,0 @@
1gzip uses gnulib, whose header conflict with glibc. This patch rename some function to avoid conflict.
2
3Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
4
5Upstream-Status: Inappropriate [licensing]
6
7Index: gzip-1.3.12/gzip.c
8===================================================================
9--- gzip-1.3.12.orig/gzip.c 2010-08-13 10:29:38.000000000 +0800
10+++ gzip-1.3.12/gzip.c 2010-08-13 10:29:44.000000000 +0800
11@@ -1637,7 +1637,7 @@
12 }
13 }
14
15- if (futimens (ofd, ofname, timespec) != 0)
16+ if (futimens_gnulib (ofd, ofname, timespec) != 0)
17 {
18 int e = errno;
19 WARN ((stderr, "%s: ", program_name));
20Index: gzip-1.3.12/lib/utimens.c
21===================================================================
22--- gzip-1.3.12.orig/lib/utimens.c 2010-08-13 10:33:47.000000000 +0800
23+++ gzip-1.3.12/lib/utimens.c 2010-08-13 10:34:02.000000000 +0800
24@@ -75,7 +75,7 @@
25 Return 0 on success, -1 (setting errno) on failure. */
26
27 int
28-futimens (int fd ATTRIBUTE_UNUSED,
29+futimens_gnulib (int fd ATTRIBUTE_UNUSED,
30 char const *file, struct timespec const timespec[2])
31 {
32 /* Some Linux-based NFS clients are buggy, and mishandle time stamps
33@@ -185,5 +185,5 @@
34 int
35 utimens (char const *file, struct timespec const timespec[2])
36 {
37- return futimens (-1, file, timespec);
38+ return futimens_gnulib (-1, file, timespec);
39 }
40Index: gzip-1.3.12/lib/utimens.h
41===================================================================
42--- gzip-1.3.12.orig/lib/utimens.h 2010-08-13 10:14:57.000000000 +0800
43+++ gzip-1.3.12/lib/utimens.h 2010-08-13 10:21:45.000000000 +0800
44@@ -1,3 +1,3 @@
45 #include <time.h>
46-int futimens (int, char const *, struct timespec const [2]);
47+int futimens_gnulib (int, char const *, struct timespec const [2]);
48 int utimens (char const *, struct timespec const [2]);
diff --git a/meta/recipes-extended/gzip/gzip-1.3.12/m4-extensions-fix.patch b/meta/recipes-extended/gzip/gzip-1.3.12/m4-extensions-fix.patch
deleted file mode 100644
index 6b2f69870e..0000000000
--- a/meta/recipes-extended/gzip/gzip-1.3.12/m4-extensions-fix.patch
+++ /dev/null
@@ -1,56 +0,0 @@
1remove AC_USE_SYSTEM_EXTENSIONS to fix the autoconf error "AC_REQUIRE: circular
2dependency of AC_GNU_SOURCE"
3
4Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
5
6Upstream-Status: Inappropriate [licensing]
7
8Index: gzip-1.3.12/m4/extensions.m4
9===================================================================
10--- gzip-1.3.12.orig/m4/extensions.m4 2010-08-16 14:18:16.000000000 +0800
11+++ gzip-1.3.12/m4/extensions.m4 2010-08-16 14:21:54.000000000 +0800
12@@ -12,44 +12,6 @@
13 # enough in this area it's likely we'll need to redefine
14 # AC_USE_SYSTEM_EXTENSIONS for quite some time.
15
16-# AC_USE_SYSTEM_EXTENSIONS
17-# ------------------------
18-# Enable extensions on systems that normally disable them,
19-# typically due to standards-conformance issues.
20-AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
21-[
22- AC_BEFORE([$0], [AC_COMPILE_IFELSE])
23- AC_BEFORE([$0], [AC_RUN_IFELSE])
24-
25- AC_REQUIRE([AC_GNU_SOURCE])
26- AC_REQUIRE([AC_AIX])
27- AC_REQUIRE([AC_MINIX])
28-
29- AH_VERBATIM([__EXTENSIONS__],
30-[/* Enable extensions on Solaris. */
31-#ifndef __EXTENSIONS__
32-# undef __EXTENSIONS__
33-#endif
34-#ifndef _POSIX_PTHREAD_SEMANTICS
35-# undef _POSIX_PTHREAD_SEMANTICS
36-#endif
37-#ifndef _TANDEM_SOURCE
38-# undef _TANDEM_SOURCE
39-#endif])
40- AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
41- [ac_cv_safe_to_define___extensions__],
42- [AC_COMPILE_IFELSE(
43- [AC_LANG_PROGRAM([
44-# define __EXTENSIONS__ 1
45- AC_INCLUDES_DEFAULT])],
46- [ac_cv_safe_to_define___extensions__=yes],
47- [ac_cv_safe_to_define___extensions__=no])])
48- test $ac_cv_safe_to_define___extensions__ = yes &&
49- AC_DEFINE([__EXTENSIONS__])
50- AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
51- AC_DEFINE([_TANDEM_SOURCE])
52-])
53-
54 # gl_USE_SYSTEM_EXTENSIONS
55 # ------------------------
56 # Enable extensions on systems that normally disable them,
diff --git a/meta/recipes-extended/gzip/gzip_1.3.12.bb b/meta/recipes-extended/gzip/gzip_1.3.12.bb
deleted file mode 100644
index e4062827bd..0000000000
--- a/meta/recipes-extended/gzip/gzip_1.3.12.bb
+++ /dev/null
@@ -1,15 +0,0 @@
1require gzip.inc
2
3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
5 file://gzip.h;endline=22;md5=c0934ad1900d927f86556153d4c76d23 \
6 file://lzw.h;endline=19;md5=c273e09a02edd9801cc74d39683049e9 "
7
8SRC_URI = "${GNU_MIRROR}/gzip/gzip-${PV}.tar.gz \
9 file://m4-extensions-fix.patch \
10 file://dup-def-fix.patch"
11
12SRC_URI[md5sum] = "b5bac2d21840ae077e0217bc5e4845b1"
13SRC_URI[sha256sum] = "3f565be05f7f3d1aff117c030eb7c738300510b7d098cedea796ca8e4cd587af"
14
15PR = "r2"
diff --git a/meta/recipes-extended/libidn/libidn_0.6.14.bb b/meta/recipes-extended/libidn/libidn_0.6.14.bb
deleted file mode 100644
index c681560d82..0000000000
--- a/meta/recipes-extended/libidn/libidn_0.6.14.bb
+++ /dev/null
@@ -1,36 +0,0 @@
1SUMMARY = "Internationalized Domain Name support library"
2DESCRIPTION = "Implementation of the Stringprep, Punycode and IDNA specifications defined by the IETF Internationalized Domain Names (IDN) working group."
3HOMEPAGE = "http://www.gnu.org/software/libidn/"
4SECTION = "libs"
5LICENSE = "LGPLv2.1+ & GPLv2+"
6LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
7 file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \
8 file://lib/idna.h;beginline=6;endline=18;md5=1336e848ca7b8e25767c3c7e8fa38a89 \
9 file://src/idn.c;beginline=6;endline=18;md5=56c89e359652a71cda128d75f0ffdac4"
10PR = "r1"
11
12inherit pkgconfig autotools gettext texinfo
13
14SRC_URI = "http://alpha.gnu.org/gnu/libidn/${BPN}-${PV}.tar.gz"
15
16SRC_URI[md5sum] = "040f012a45feb56168853998bb87ad4d"
17SRC_URI[sha256sum] = "98910c2ad664bdf4eed2c2fff88e24f8882636ec9d26669366ff03b469c05ae3"
18
19do_configure_prepend() {
20 # this version of libidn copies AC_USE_SYSTEM_EXTENSIONS from
21 # autoconf CVS because atm the autoconf it uses is a bit old
22 # now with cross autotool, that macro is already there and this
23 # local definition causes circular dependency. Actually AC_GNU_SOURCE
24 # is identical to AC_USE_SYSTEM_EXTENSIONS. So remove all local
25 # references to the latter here.
26 sed -i -e "/AC_REQUIRE(\[gl_USE_SYSTEM_EXTENSIONS/d" ${S}/lib/gl/m4/gnulib-comp.m4
27 rm -f ${S}/lib/gl/m4/extensions.m4
28}
29
30do_install_append() {
31 rm -rf ${D}${libdir}/Libidn.dll
32 rm -rf ${D}${datadir}/emacs
33}
34
35BBCLASSEXTEND = "native nativesdk"
36
diff --git a/meta/recipes-extended/mc/mc/mc-CTRL.patch b/meta/recipes-extended/mc/mc/mc-CTRL.patch
deleted file mode 100644
index ee4ba9f26b..0000000000
--- a/meta/recipes-extended/mc/mc/mc-CTRL.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1Fix build with musl by ensuring CTRL is defined.
2
3musl does not define CTRL in <termios.h>, we could include <sys/ttydefaults.h>
4explicitly but it's easier just to ensure CTRL is defined.
5
6This patch is taken from Sabotage Linux, the license statement for patches and
7build scripts in Sabotage Linux says:
8
9 To the extent possible under law, Christian Neukirchen has waived
10 all copyright and related or neighboring rights to this work.
11
12 http://creativecommons.org/publicdomain/zero/1.0/
13
14Therefore this should be good to include in OpenEmbedded.
15
16Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
17
18Upstream-Status: Accepted (should be included in v4.8.14)
19
20diff -u mc-4.8.1.7.org/lib/tty/tty-ncurses.c mc-4.8.1.7/lib/tty/tty-ncurses.c
21--- mc-4.8.1.7.org/lib/tty/tty-ncurses.c
22+++ mc-4.8.1.7/lib/tty/tty-ncurses.c
23@@ -65,7 +65,7 @@
24
25 /*** file scope macro definitions ****************************************************************/
26
27-#if defined(_AIX) && !defined(CTRL)
28+#if !defined(CTRL)
29 #define CTRL(x) ((x) & 0x1f)
30 #endif
31
diff --git a/meta/recipes-extended/mc/mc_4.7.5.2.bb b/meta/recipes-extended/mc/mc_4.7.5.2.bb
deleted file mode 100644
index b38964d827..0000000000
--- a/meta/recipes-extended/mc/mc_4.7.5.2.bb
+++ /dev/null
@@ -1,47 +0,0 @@
1SUMMARY = "Midnight Commander is an ncurses based file manager"
2HOMEPAGE = "http://www.midnight-commander.org/"
3LICENSE = "GPLv2"
4LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
5SECTION = "console/utils"
6DEPENDS = "ncurses glib-2.0"
7RDEPENDS_${PN} = "ncurses-terminfo"
8
9PR = "r3"
10
11SRC_URI = "http://www.midnight-commander.org/downloads/${BPN}-${PV}.tar.bz2 \
12 file://mc-CTRL.patch \
13 "
14
15SRC_URI[md5sum] = "bdae966244496cd4f6d282d80c9cf3c6"
16SRC_URI[sha256sum] = "a68338862bb30017eb65ed569a58e80ab66ae8cef11c886440c9e9f4d1efc6ab"
17
18inherit autotools gettext pkgconfig
19
20EXTRA_OECONF = "--with-screen=ncurses --without-gpm-mouse --without-x --without-samba"
21
22do_install_append () {
23 sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${libexecdir}/mc/extfs.d/*
24 sed -i -e '1s,#!.*python,#!${bindir}/env python,' ${D}${libexecdir}/mc/extfs.d/*
25}
26
27PACKAGES =+ "${BPN}-helpers-perl ${BPN}-helpers-python ${BPN}-helpers ${BPN}-fish"
28
29SUMMARY_${BPN}-helpers-perl = "Midnight Commander Perl-based helper scripts"
30FILES_${BPN}-helpers-perl = "${libexecdir}/mc/extfs.d/a+ ${libexecdir}/mc/extfs.d/apt+ \
31 ${libexecdir}/mc/extfs.d/deb ${libexecdir}/mc/extfs.d/deba \
32 ${libexecdir}/mc/extfs.d/debd ${libexecdir}/mc/extfs.d/dpkg+ \
33 ${libexecdir}/mc/extfs.d/mailfs ${libexecdir}/mc/extfs.d/patchfs \
34 ${libexecdir}/mc/extfs.d/rpms+ ${libexecdir}/mc/extfs.d/ulib \
35 ${libexecdir}/mc/extfs.d/uzip"
36RDEPENDS_${BPN}-helpers-perl = "perl"
37
38SUMMARY_${BPN}-helpers-python = "Midnight Commander Python-based helper scripts"
39FILES_${BPN}-helpers-python = "${libexecdir}/mc/extfs.d/s3+ ${libexecdir}/mc/extfs.d/uc1541"
40RDEPENDS_${BPN}-helpers-python = "python"
41
42SUMMARY_${BPN}-helpers = "Midnight Commander shell helper scripts"
43FILES_${BPN}-helpers = "${libexecdir}/mc/extfs.d/* ${libexecdir}/mc/ext.d/*"
44
45SUMMARY_${BPN}-fish = "Midnight Commander Fish scripts"
46FILES_${BPN}-fish = "${libexecdir}/mc/fish"
47
diff --git a/meta/recipes-extended/sed/sed-4.1.2/Makevars b/meta/recipes-extended/sed/sed-4.1.2/Makevars
deleted file mode 100644
index 8b09f53b0f..0000000000
--- a/meta/recipes-extended/sed/sed-4.1.2/Makevars
+++ /dev/null
@@ -1,25 +0,0 @@
1# Makefile variables for PO directory in any package using GNU gettext.
2
3# Usually the message domain is the same as the package name.
4DOMAIN = $(PACKAGE)
5
6# These two variables depend on the location of this directory.
7subdir = po
8top_builddir = ..
9
10# These options get passed to xgettext.
11XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
12
13# This is the copyright holder that gets inserted into the header of the
14# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
15# package. (Note that the msgstr strings, extracted from the package's
16# sources, belong to the copyright holder of the package.) Translators are
17# expected to transfer the copyright for their translations to this person
18# or entity, or to disclaim their copyright. The empty string stands for
19# the public domain; in this case the translators are expected to disclaim
20# their copyright.
21COPYRIGHT_HOLDER = Free Software Foundation, Inc.
22
23# This is the list of locale categories, beyond LC_MESSAGES, for which the
24# message catalogs shall be used. It is usually empty.
25EXTRA_LOCALE_CATEGORIES =
diff --git a/meta/recipes-extended/sed/sed-4.1.2/fix_return_type.patch b/meta/recipes-extended/sed/sed-4.1.2/fix_return_type.patch
deleted file mode 100644
index 836551ea18..0000000000
--- a/meta/recipes-extended/sed/sed-4.1.2/fix_return_type.patch
+++ /dev/null
@@ -1,18 +0,0 @@
1Upstream-Status: Pending
2
3Change the getline return type to match its declaration.
4
5Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
6
7diff -urN sed-4.1.2-orig/lib/getline.c sed-4.1.2/lib/getline.c
8--- sed-4.1.2-orig/lib/getline.c 2010-08-31 08:47:50.070094024 +0800
9+++ sed-4.1.2/lib/getline.c 2010-08-31 08:48:50.982178172 +0800
10@@ -30,7 +30,7 @@
11 necessary. Returns the number of characters read (not including the
12 null terminator), or -1 on error or EOF. */
13
14-size_t
15+ssize_t
16 getline (lineptr, n, stream)
17 char **lineptr;
18 size_t *n;
diff --git a/meta/recipes-extended/sed/sed-4.1.2/sed-4.1.2_fix_for_automake-1.12.patch b/meta/recipes-extended/sed/sed-4.1.2/sed-4.1.2_fix_for_automake-1.12.patch
deleted file mode 100644
index c7c0aa015d..0000000000
--- a/meta/recipes-extended/sed/sed-4.1.2/sed-4.1.2_fix_for_automake-1.12.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1Upstream-Status: Pending
2
3automake-1.12.x has deprecated use of @mkdir_p@, fix the issue by using @MKDIR_P@ instead.
4
5Avoid this build issue:
6| make[1]: mkdir_p@: Command not found
7| make[1]: *** [install-data-yes] Error 127
8
9Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
102012/07/13
11
12Index: sed-4.1.2/intl/Makefile.in
13===================================================================
14--- sed-4.1.2.orig/intl/Makefile.in
15+++ sed-4.1.2/intl/Makefile.in
16@@ -40,7 +40,7 @@ subdir = intl
17 INSTALL = @INSTALL@
18 INSTALL_DATA = @INSTALL_DATA@
19 mkinstalldirs = $(mkdir_p)
20-mkdir_p = @mkdir_p@
21+mkdir_p = @MKDIR_P@
22
23 l = @INTL_LIBTOOL_SUFFIX_PREFIX@
24
25Index: sed-4.1.2/po/Makefile.in.in
26===================================================================
27--- sed-4.1.2.orig/po/Makefile.in.in
28+++ sed-4.1.2/po/Makefile.in.in
29@@ -29,7 +29,7 @@ gettextsrcdir = $(datadir)/gettext/po
30 INSTALL = /srv/home/nitin/builds2/build0/tmp/sysroots/x86_64-linux/usr/bin/install -c
31 INSTALL_DATA = ${INSTALL} -m 644
32 mkinstalldirs = $(mkdir_p)
33-mkdir_p = @mkdir_p@
34+mkdir_p = @MKDIR_P@
35
36 CC = i586-poky-linux-gcc -m32 -march=i586 --sysroot=/srv/home/nitin/builds2/build0/tmp/sysroots/qemux86
37 GMSGFMT = /srv/home/nitin/builds2/build0/tmp/sysroots/x86_64-linux/usr/bin/msgfmt
diff --git a/meta/recipes-extended/sed/sed_4.1.2.bb b/meta/recipes-extended/sed/sed_4.1.2.bb
deleted file mode 100644
index 40e3a53ceb..0000000000
--- a/meta/recipes-extended/sed/sed_4.1.2.bb
+++ /dev/null
@@ -1,35 +0,0 @@
1SUMMARY = "Stream EDitor (text filtering utility)"
2HOMEPAGE = "http://www.gnu.org/software/sed/"
3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
5 file://sed/sed.h;beginline=1;endline=17;md5=e00ffd1837f298439a214fd197f6a407"
6SECTION = "console/utils"
7PR = "r7"
8
9SRC_URI = "${GNU_MIRROR}/sed/sed-${PV}.tar.gz \
10 file://fix_return_type.patch \
11 file://sed-4.1.2_fix_for_automake-1.12.patch \
12 file://Makevars"
13
14SRC_URI[md5sum] = "928f0e06422f414091917401f1a834d0"
15SRC_URI[sha256sum] = "638e837ba765d5da0a30c98b57c2953cecea96827882f594612acace93ceeeab"
16
17inherit autotools texinfo update-alternatives gettext
18
19do_configure_prepend () {
20 cp ${WORKDIR}/Makevars ${S}/po/
21}
22
23do_install () {
24 autotools_do_install
25 install -d ${D}${base_bindir}
26 if [ ! ${D}${bindir} -ef ${D}${base_bindir} ]; then
27 mv ${D}${bindir}/sed ${D}${base_bindir}/sed
28 rmdir ${D}${bindir}/
29 fi
30}
31
32ALTERNATIVE_${PN} = "sed"
33ALTERNATIVE_LINK_NAME[sed] = "${base_bindir}/sed"
34ALTERNATIVE_PRIORITY = "100"
35
diff --git a/meta/recipes-extended/tar/tar-1.17/avoid_heap_overflow.patch b/meta/recipes-extended/tar/tar-1.17/avoid_heap_overflow.patch
deleted file mode 100644
index af5026f529..0000000000
--- a/meta/recipes-extended/tar/tar-1.17/avoid_heap_overflow.patch
+++ /dev/null
@@ -1,23 +0,0 @@
1Upstream-Status: Inappropriate [bugfix: http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0624]
2CVE: CVE-2010-0624
3
4This patch avoids heap overflow reported by :
5http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0624
6
7This is a clean patch for the GPLv2 tar recipe.
8
9Nitin A Kamble <nitin.a.kamble@intel.com> 2011/04/25
10
11Index: tar-1.17/lib/rtapelib.c
12===================================================================
13--- tar-1.17.orig/lib/rtapelib.c
14+++ tar-1.17/lib/rtapelib.c
15@@ -570,7 +570,7 @@ rmt_read__ (int handle, char *buffer, si
16
17 sprintf (command_buffer, "R%lu\n", (unsigned long) length);
18 if (do_command (handle, command_buffer) == -1
19- || (status = get_status (handle)) == SAFE_READ_ERROR)
20+ || ((status = get_status (handle)) == SAFE_READ_ERROR) || (status > length))
21 return SAFE_READ_ERROR;
22
23 for (counter = 0; counter < status; counter += rlen, buffer += rlen)
diff --git a/meta/recipes-extended/tar/tar-1.17/gcc43build.patch b/meta/recipes-extended/tar/tar-1.17/gcc43build.patch
deleted file mode 100644
index f8059a0a89..0000000000
--- a/meta/recipes-extended/tar/tar-1.17/gcc43build.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1Upstream-Status: Inappropriate [licensing]
2
3# Fix errors when built with gcc 4.3
4# Patch taken from Debian bug #452096
5
6diff -urN tar-1.17.orig/lib/argp-fmtstream.h tar-1.17/lib/argp-fmtstream.h
7--- tar-1.17.orig/lib/argp-fmtstream.h 2006-01-11 12:24:05.000000000 -0800
8+++ tar-1.17/lib/argp-fmtstream.h 2010-07-22 22:36:12.000000000 -0700
9@@ -198,7 +198,11 @@
10 #endif
11
12 #ifndef ARGP_FS_EI
13-#define ARGP_FS_EI extern inline
14+ #if defined __GNUC_STDC_INLINE__
15+ #define ARGP_FS_EI extern inline __attribute__((__gnu_inline__))
16+ #else
17+ #define ARGP_FS_EI extern inline
18+ #endif
19 #endif
20
21 ARGP_FS_EI size_t
22diff -urN tar-1.17.orig/lib/argp.h tar-1.17/lib/argp.h
23--- tar-1.17.orig/lib/argp.h 2007-03-30 00:09:11.000000000 -0700
24+++ tar-1.17/lib/argp.h 2010-07-22 22:38:44.000000000 -0700
25@@ -580,7 +580,11 @@
26 # endif
27
28 # ifndef ARGP_EI
29-# define ARGP_EI extern __inline__
30+# if defined __GNUC_STDC_INLINE__
31+# define ARGP_EI extern __inline__ __attribute__((__gnu_inline__))
32+# else
33+# define ARGP_EI extern __inline__
34+# endif
35 # endif
36
37 ARGP_EI void
diff --git a/meta/recipes-extended/tar/tar-1.17/m4extensions.patch b/meta/recipes-extended/tar/tar-1.17/m4extensions.patch
deleted file mode 100644
index 30534c29ce..0000000000
--- a/meta/recipes-extended/tar/tar-1.17/m4extensions.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1Upstream-Status: Inappropriate [licensing]
2
3# Define AC_USE_SYSTEM_EXTENSIONS only if it was previously undefined.
4# This is needed to configure correctly with newer versions of autoconf.
5
6--- tar-1.17/m4/extensions.m4.orig 2010-07-22 22:21:35.000000000 -0700
7+++ tar-1.17/m4/extensions.m4 2010-07-22 22:23:41.000000000 -0700
8@@ -1,4 +1,4 @@
9-# serial 4 -*- Autoconf -*-
10+# serial 5 -*- Autoconf -*-
11 # Enable extensions on systems that normally disable them.
12
13 # Copyright (C) 2003, 2006 Free Software Foundation, Inc.
14@@ -16,6 +16,7 @@
15 # ------------------------
16 # Enable extensions on systems that normally disable them,
17 # typically due to standards-conformance issues.
18+m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [], [
19 AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
20 [
21 AC_BEFORE([$0], [AC_COMPILE_IFELSE])
22@@ -48,7 +49,7 @@
23 AC_DEFINE([__EXTENSIONS__])
24 AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
25 AC_DEFINE([_TANDEM_SOURCE])
26-])
27+])])
28
29 # gl_USE_SYSTEM_EXTENSIONS
30 # ------------------------
diff --git a/meta/recipes-extended/tar/tar_1.17.bb b/meta/recipes-extended/tar/tar_1.17.bb
deleted file mode 100644
index b9ca2063df..0000000000
--- a/meta/recipes-extended/tar/tar_1.17.bb
+++ /dev/null
@@ -1,14 +0,0 @@
1require tar.inc
2
3LICENSE = "GPLv2"
4LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
5
6PR = "r3"
7
8SRC_URI += "file://m4extensions.patch \
9 file://gcc43build.patch \
10 file://avoid_heap_overflow.patch \
11 "
12
13SRC_URI[md5sum] = "c6c4f1c075dbf0f75c29737faa58f290"
14SRC_URI[sha256sum] = "19f9021dda51a16295e4706e80870e71f87107675e51c176a491eba0fc4ca492"
diff --git a/meta/recipes-extended/texinfo/texinfo-4.8/check-locale-h.patch b/meta/recipes-extended/texinfo/texinfo-4.8/check-locale-h.patch
deleted file mode 100644
index f4d66600a1..0000000000
--- a/meta/recipes-extended/texinfo/texinfo-4.8/check-locale-h.patch
+++ /dev/null
@@ -1,28 +0,0 @@
1fix the macro check
2
3Upstream-Status: Pending
4
5configure does not check if locale.h exists, but check setlocale,
6if setlocale exist, the locale.h should exist.
7
8Signed-off-by: Roy Li <rongqing.li@windriver.com>
9---
10 lib/system.h | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-)
12
13diff --git a/lib/system.h b/lib/system.h
14index 946eb3c..c70037b 100644
15--- a/lib/system.h
16+++ b/lib/system.h
17@@ -42,7 +42,7 @@ extern char *substring (const char *, const char *);
18 #include <ctype.h>
19
20 /* All systems nowadays probably have these functions, but ... */
21-#ifdef HAVE_LOCALE_H
22+#ifdef HAVE_SETLOCALE
23 #include <locale.h>
24 #endif
25 #ifndef HAVE_SETLOCALE
26--
271.7.10.4
28
diff --git a/meta/recipes-extended/texinfo/texinfo-4.8/do-compile-native-tools.patch b/meta/recipes-extended/texinfo/texinfo-4.8/do-compile-native-tools.patch
deleted file mode 100644
index 81ebe26cf6..0000000000
--- a/meta/recipes-extended/texinfo/texinfo-4.8/do-compile-native-tools.patch
+++ /dev/null
@@ -1,49 +0,0 @@
1From 458e9450cecf703f55536e609365162719585900 Mon Sep 17 00:00:00 2001
2From: "Roy.Li" <rongqing.li@windriver.com>
3Date: Wed, 10 Sep 2014 17:03:29 +0800
4Subject: [PATCH] do not compile host tools, since we have native
5
6Upstream-Status: Pending
7
8Signed-off-by: Roy.Li <rongqing.li@windriver.com>
9---
10 configure.ac | 23 +----------------------
11 1 file changed, 1 insertion(+), 22 deletions(-)
12
13diff --git a/configure.ac b/configure.ac
14index b46130d..cf58654 100644
15--- a/configure.ac
16+++ b/configure.ac
17@@ -90,28 +90,7 @@ AC_CANONICAL_BUILD
18 # $native_tools is also added to SUBDIRS in the main Makefile.am,
19 # so that make compiles the native tools first.
20 #
21-if test "$cross_compiling" = no; then
22- native_tools=
23-else
24- native_tools=tools
25- test -d "$native_tools" || mkdir "$native_tools"
26- confdir=`(cd "$srcdir";pwd)`
27- # Make sure the secondary configure won't fail with
28- # "error: source directory already configured".
29- rm -f config.status
30- AC_MSG_NOTICE([[Doing configure of native tools (${build}).]])
31- cd "$native_tools" || exit 1
32- # Run secondary configure in alternate environment or
33- # it gets the wrong CC etc. env -i gives this build host configure
34- # a clean environment.
35- env -i CC="${BUILD_CC}" AR="${BUILD_AR}" RANLIB="${BUILD_RANLIB}" \
36- PATH="${PATH}" \
37- tools_only=1 \
38- ${confdir}/configure --build=${build} --host=${build} \
39- --disable-rpath --disable-nls
40- cd .. || exit 1
41- AC_MSG_NOTICE([[Continuing with main configure (${host}).]])
42-fi
43+native_tools=
44 AC_SUBST(native_tools)
45 AM_CONDITIONAL(TOOLS_ONLY, [[test "x$tools_only" = x1]])
46
47--
481.9.1
49
diff --git a/meta/recipes-extended/texinfo/texinfo-4.8/using-native-makeinfo.patch b/meta/recipes-extended/texinfo/texinfo-4.8/using-native-makeinfo.patch
deleted file mode 100644
index 2297051ddb..0000000000
--- a/meta/recipes-extended/texinfo/texinfo-4.8/using-native-makeinfo.patch
+++ /dev/null
@@ -1,24 +0,0 @@
1From 9b0df7d6d3c18cfac82c291d60a5357d1bc8d9d0 Mon Sep 17 00:00:00 2001
2From: "Roy.Li" <rongqing.li@windriver.com>
3Date: Wed, 10 Sep 2014 17:10:03 +0800
4Subject: [PATCH] using native makeinfo
5
6Upstream-Status: Pending
7
8Signed-off-by: Roy.Li <rongqing.li@windriver.com>
9---
10 doc/Makefile.am | 2 +-
11
12diff --git a/doc/Makefile.am b/doc/Makefile.am
13index 63df818..b6ceb34 100644
14--- a/doc/Makefile.am
15+++ b/doc/Makefile.am
16@@ -19,7 +19,7 @@ man_MANS = info.1 infokey.1 install-info.1 makeinfo.1 texindex.1 texi2dvi.1 \
17
18 # Use the programs built in our distribution, taking account of possible
19 # cross-compiling.
20-MAKEINFO = $(top_builddir)/$(native_tools)/makeinfo/makeinfo
21+MAKEINFO = makeinfo
22 INSTALL_INFO = $(top_builddir)/$(native_tools)/util/install-info
23
24 TXI_XLATE = txi-cs.tex txi-de.tex txi-en.tex txi-es.tex txi-fr.tex \
diff --git a/meta/recipes-extended/texinfo/texinfo_4.8.bb b/meta/recipes-extended/texinfo/texinfo_4.8.bb
deleted file mode 100644
index 13678e093b..0000000000
--- a/meta/recipes-extended/texinfo/texinfo_4.8.bb
+++ /dev/null
@@ -1,55 +0,0 @@
1SUMMARY = "Documentation system for on-line information and printed output"
2DESCRIPTION = "Texinfo is a documentation system that can produce both \
3online information and printed output from a single source file. The \
4GNU Project uses the Texinfo file format for most of its documentation."
5HOMEPAGE = "http://www.gnu.org/software/texinfo/"
6SECTION = "console/utils"
7LICENSE = "GPLv2"
8LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
9
10PROVIDES_append_class-native = " texinfo-4.8-replacement-native"
11
12DEPENDS = "zlib ncurses texinfo-4.8-replacement-native"
13DEPENDS_class-native = "zlib-native ncurses-native"
14
15TARGET_PATCH = "file://use_host_makedoc.patch \
16 file://using-native-makeinfo.patch \
17"
18TARGET_PATCH_class-native = ""
19
20SRC_URI = "${GNU_MIRROR}/texinfo/${BP}.tar.gz \
21 file://check-locale-h.patch \
22 file://do-compile-native-tools.patch \
23 ${TARGET_PATCH} \
24 "
25
26SRC_URI[md5sum] = "4e9a1a591ed236003d0d4b008bf07eef"
27SRC_URI[sha256sum] = "1f3cdeebe65fdf510f55d765ab1031b54416aa5bc2635b6a54ef9bcb2367c917"
28
29tex_texinfo = "texmf/tex/texinfo"
30
31inherit gettext autotools
32
33do_install_append() {
34 mkdir -p ${D}${datadir}/${tex_texinfo}
35 install -p -m644 ${S}/doc/texinfo.tex ${S}/doc/txi-??.tex ${D}${datadir}/${tex_texinfo}
36}
37
38do_install_append_class-native() {
39 install -m 755 info/makedoc ${D}${bindir}
40 install -m 755 makeinfo/makeinfo ${D}${bindir}
41}
42
43PACKAGES += "info info-doc"
44
45FILES_info = "${bindir}/info ${bindir}/infokey ${bindir}/install-info"
46FILES_info-doc = "${infodir}/info.info ${infodir}/dir ${infodir}/info-*.info \
47 ${mandir}/man1/info.1* ${mandir}/man5/info.5* \
48 ${mandir}/man1/infokey.1* ${mandir}/man1/install-info.1*"
49
50FILES_${PN} = "${bindir}/makeinfo ${bindir}/texi* ${bindir}/pdftexi2dvi ${bindir}/pod2texi ${datadir}/texinfo"
51FILES_${PN}-doc = "${infodir}/texinfo* \
52 ${datadir}/${tex_texinfo} \
53 ${mandir}/man1 ${mandir}/man5"
54
55BBCLASSEXTEND = "native"
diff --git a/meta/recipes-extended/which/which-2.18/automake-foreign.patch b/meta/recipes-extended/which/which-2.18/automake-foreign.patch
deleted file mode 100644
index 495cdc6cf4..0000000000
--- a/meta/recipes-extended/which/which-2.18/automake-foreign.patch
+++ /dev/null
@@ -1,28 +0,0 @@
1Subject: [PATCH] automake foreign strictness
2
3Use foreign strictness to avoid automake errors.
4
5Upstream-Status: Inappropriate [upstream no longer active]
6
7Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
8---
9 configure.ac | 5 +++--
10 1 files changed, 3 insertions(+), 2 deletions(-)
11
12diff --git a/configure.ac b/configure.ac
13index b30b6f5..bd3222c 100644
14--- a/configure.ac
15+++ b/configure.ac
16@@ -1,6 +1,7 @@
17 dnl Process this file with autoconf to produce a configure script.
18-AC_INIT(which.c)
19-AM_INIT_AUTOMAKE(which, 2.18)
20+AC_INIT([which],[2.18])
21+AC_CONFIG_SRCDIR(which.c)
22+AM_INIT_AUTOMAKE([foreign])
23 AM_CONFIG_HEADER(config.h)
24 AM_MAINTAINER_MODE
25
26--
271.7.1
28
diff --git a/meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch b/meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch
deleted file mode 100644
index 0e0988b262..0000000000
--- a/meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch
+++ /dev/null
@@ -1,53 +0,0 @@
1Upstream-Status: Inappropriate [this is 2.18(GPLv2) specific]
2
3# glibc also implements the function group_member. To avoid name conflict,
4# here let us append a "_" to which's version.
5#
6# Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>, 2010-08-20
7# (this patch is licensed under GPLv2)
8
9--- which-2.18/bash.c
10+++ which-2.18/bash.c
11@@ -45,7 +45,12 @@
12 * - changed all occurences of 'gid_t' into 'GID_T'.
13 * - exported functions needed in which.c
14 */
15-static int group_member (GID_T gid);
16+
17+/*
18+ * glibc also implements the function group_member. To avoid name conflict,
19+ * here let us append a "_" to which's version.
20+ */
21+static int _group_member (GID_T gid);
22 static char* extract_colon_unit (char const* string, int *p_index);
23
24 /*===========================================================================
25@@ -200,8 +205,8 @@
26
27 /* From bash-2.05b / general.c / line 805 */
28 /* Return non-zero if GID is one that we have in our groups list. */
29-int
30-group_member (GID_T gid)
31+static int
32+_group_member (GID_T gid)
33 {
34 #if defined (HAVE_GETGROUPS)
35 register int i;
36@@ -290,7 +295,7 @@
37 return (X_BIT (u_mode_bits (finfo.st_mode))) ? (FS_EXISTS | FS_EXECABLE) : FS_EXISTS;
38
39 /* Otherwise, if we are in the owning group, the group permissions apply. */
40- if (group_member (finfo.st_gid))
41+ if (_group_member (finfo.st_gid))
42 return (X_BIT (g_mode_bits (finfo.st_mode))) ? (FS_EXISTS | FS_EXECABLE) : FS_EXISTS;
43
44 /* Otherwise, if we are in the other group, the other permissions apply. */
45@@ -331,7 +336,7 @@
46 /* Given a string containing units of information separated by colons,
47 return the next one pointed to by (P_INDEX), or NULL if there are no more.
48 Advance (P_INDEX) to the character after the colon. */
49-char*
50+static char*
51 extract_colon_unit (char const* string, int* p_index)
52 {
53 int i, start, len;
diff --git a/meta/recipes-extended/which/which_2.18.bb b/meta/recipes-extended/which/which_2.18.bb
deleted file mode 100644
index eb6cc9967e..0000000000
--- a/meta/recipes-extended/which/which_2.18.bb
+++ /dev/null
@@ -1,34 +0,0 @@
1SUMMARY = "Displays the full path of shell commands"
2DESCRIPTION = "Which is a utility that prints out the full path of the \
3executables that bash(1) would execute when the passed \
4program names would have been entered on the shell prompt. \
5It does this by using the exact same algorithm as bash."
6SECTION = "libs"
7HOMEPAGE = "http://carlo17.home.xs4all.nl/which/"
8
9LICENSE = "GPLv2+"
10LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
11
12PR = "r2"
13
14SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/which/which-2.18.tar.gz/42d51938e48b91f6e19fabf216f5c3e9/which-${PV}.tar.gz \
15 file://fix_name_conflict_group_member.patch \
16 file://automake-foreign.patch \
17"
18
19SRC_URI[md5sum] = "42d51938e48b91f6e19fabf216f5c3e9"
20SRC_URI[sha256sum] = "9445cd7e02ec0c26a44fd56098464ded064ba5d93dd2e15ec12410ba56b2e544"
21
22DEPENDS = "cwautomacros-native"
23
24inherit autotools texinfo update-alternatives
25
26do_configure_prepend() {
27 OLD="@ACLOCAL_CWFLAGS@"
28 NEW="-I ${STAGING_DIR_NATIVE}/${datadir}/cwautomacros/m4"
29 sed -i "s#${OLD}#${NEW}#g" `grep -rl ${OLD} ${S}`
30}
31
32ALTERNATIVE_${PN} = "which"
33ALTERNATIVE_PRIORITY = "100"
34
diff --git a/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.20.bb b/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.20.bb
deleted file mode 100644
index 3480ec74bf..0000000000
--- a/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.20.bb
+++ /dev/null
@@ -1,8 +0,0 @@
1require rxvt-unicode.inc
2
3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
5 file://src/main.C;beginline=1;endline=31;md5=775485398a09fa7aee6f90464af88432"
6
7SRC_URI[md5sum] = "4a5b823f08d21036f94a6c51e94d025b"
8SRC_URI[sha256sum] = "e73e13fe64b59fd3c8e6e20c00f149d388741f141b8155e4700d3ed40aa94b4e"
diff --git a/meta/recipes-support/gdbm/gdbm-1.8.3/ldflags.patch b/meta/recipes-support/gdbm/gdbm-1.8.3/ldflags.patch
deleted file mode 100644
index d3cb43b9b9..0000000000
--- a/meta/recipes-support/gdbm/gdbm-1.8.3/ldflags.patch
+++ /dev/null
@@ -1,22 +0,0 @@
1Obey LDFLAGS
2
3Signed-off-by: Christopher Larson <chris_larson@mentor.com>
4Upstream-Status: Inappropriate [old version]
5
6--- gdbm-1.8.3.orig/Makefile.in
7+++ gdbm-1.8.3/Makefile.in
8@@ -156,12 +156,12 @@ install-compat:
9
10 libgdbm.la: $(LOBJS) gdbm.h
11 rm -f libgdbm.la
12- $(LIBTOOL) --mode=link $(CC) -o libgdbm.la -rpath $(libdir) \
13+ $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o libgdbm.la -rpath $(libdir) \
14 -version-info $(SHLIB_VER) $(LOBJS)
15
16 libgdbm_compat.la: $(C_LOBJS) gdbm.h
17 rm -f libgdbm_compat.la
18- $(LIBTOOL) --mode=link $(CC) -o libgdbm_compat.la -rpath $(libdir) \
19+ $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o libgdbm_compat.la -rpath $(libdir) \
20 -version-info $(SHLIB_VER) $(C_LOBJS)
21
22 gdbm.h: gdbm.proto gdbmerrno.h gdbm.proto2
diff --git a/meta/recipes-support/gdbm/gdbm-1.8.3/libtool-mode.patch b/meta/recipes-support/gdbm/gdbm-1.8.3/libtool-mode.patch
deleted file mode 100644
index 0f9d04f4a1..0000000000
--- a/meta/recipes-support/gdbm/gdbm-1.8.3/libtool-mode.patch
+++ /dev/null
@@ -1,22 +0,0 @@
1Upstream-Status: Pending
2
3--- gdbm-1.8.3/Makefile.in.orig 2006-02-16 15:17:25.000000000 +0000
4+++ gdbm-1.8.3/Makefile.in 2006-02-16 15:18:08.000000000 +0000
5@@ -131,7 +131,7 @@
6 $(srcdir)/mkinstalldirs $(DESTDIR)$(libdir) \
7 $(DESTDIR)$(includedir) $(DESTDIR)$(man3dir) \
8 $(DESTDIR)$(infodir)
9- $(LIBTOOL) $(INSTALL) -c libgdbm.la $(DESTDIR)$(libdir)/libgdbm.la
10+ $(LIBTOOL) --mode=install $(INSTALL) -c libgdbm.la $(DESTDIR)$(libdir)/libgdbm.la
11 $(INSTALL_DATA) gdbm.h \
12 $(DESTDIR)$(includedir)/gdbm.h
13 $(INSTALL_DATA) $(srcdir)/gdbm.3 \
14@@ -142,7 +142,7 @@
15 install-compat:
16 $(srcdir)/mkinstalldirs $(DESTDIR)$(libdir) \
17 $(DESTDIR)$(includedir)
18- $(LIBTOOL) $(INSTALL) -c libgdbm_compat.la \
19+ $(LIBTOOL) --mode=install $(INSTALL) -c libgdbm_compat.la \
20 $(DESTDIR)$(libdir)/libgdbm_compat.la
21 $(INSTALL_DATA) $(srcdir)/dbm.h \
22 $(DESTDIR)$(includedir)/dbm.h
diff --git a/meta/recipes-support/gdbm/gdbm-1.8.3/makefile.patch b/meta/recipes-support/gdbm/gdbm-1.8.3/makefile.patch
deleted file mode 100644
index 369145c410..0000000000
--- a/meta/recipes-support/gdbm/gdbm-1.8.3/makefile.patch
+++ /dev/null
@@ -1,60 +0,0 @@
1Upstream-Status: Pending
2
3#
4# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
5#
6
7--- gdbm-1.8.3/Makefile.in~makefile
8+++ gdbm-1.8.3/Makefile.in
9@@ -22,6 +22,7 @@
10 TEXI2DVI = texi2dvi
11
12 DEFS =
13+DESTDIR =
14
15 # Where the system [n]dbm routines are...
16 LIBS = @LIBS@ -lc
17@@ -127,26 +128,26 @@
18 progs: $(PROGS)
19
20 install: libgdbm.la gdbm.h gdbm.info
21- $(srcdir)/mkinstalldirs $(INSTALL_ROOT)$(libdir) \
22- $(INSTALL_ROOT)$(includedir) $(INSTALL_ROOT)$(man3dir) \
23- $(INSTALL_ROOT)$(infodir)
24- $(LIBTOOL) $(INSTALL) -c libgdbm.la $(INSTALL_ROOT)$(libdir)/libgdbm.la
25- $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) gdbm.h \
26- $(INSTALL_ROOT)$(includedir)/gdbm.h
27- $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/gdbm.3 \
28- $(INSTALL_ROOT)$(man3dir)/gdbm.3
29- $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/gdbm.info \
30- $(INSTALL_ROOT)$(infodir)/gdbm.info
31+ $(srcdir)/mkinstalldirs $(DESTDIR)$(libdir) \
32+ $(DESTDIR)$(includedir) $(DESTDIR)$(man3dir) \
33+ $(DESTDIR)$(infodir)
34+ $(LIBTOOL) $(INSTALL) -c libgdbm.la $(DESTDIR)$(libdir)/libgdbm.la
35+ $(INSTALL_DATA) gdbm.h \
36+ $(DESTDIR)$(includedir)/gdbm.h
37+ $(INSTALL_DATA) $(srcdir)/gdbm.3 \
38+ $(DESTDIR)$(man3dir)/gdbm.3
39+ $(INSTALL_DATA) $(srcdir)/gdbm.info \
40+ $(DESTDIR)$(infodir)/gdbm.info
41
42 install-compat:
43- $(srcdir)/mkinstalldirs $(INSTALL_ROOT)$(libdir) \
44- $(INSTALL_ROOT)$(includedir)
45+ $(srcdir)/mkinstalldirs $(DESTDIR)$(libdir) \
46+ $(DESTDIR)$(includedir)
47 $(LIBTOOL) $(INSTALL) -c libgdbm_compat.la \
48- $(INSTALL_ROOT)$(libdir)/libgdbm_compat.la
49- $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/dbm.h \
50- $(INSTALL_ROOT)$(includedir)/dbm.h
51- $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/ndbm.h \
52- $(INSTALL_ROOT)$(includedir)/ndbm.h
53+ $(DESTDIR)$(libdir)/libgdbm_compat.la
54+ $(INSTALL_DATA) $(srcdir)/dbm.h \
55+ $(DESTDIR)$(includedir)/dbm.h
56+ $(INSTALL_DATA) $(srcdir)/ndbm.h \
57+ $(DESTDIR)$(includedir)/ndbm.h
58
59 #libgdbm.a: $(OBJS) gdbm.h
60 # rm -f libgdbm.a
diff --git a/meta/recipes-support/gdbm/gdbm_1.8.3.bb b/meta/recipes-support/gdbm/gdbm_1.8.3.bb
deleted file mode 100644
index b253dc1447..0000000000
--- a/meta/recipes-support/gdbm/gdbm_1.8.3.bb
+++ /dev/null
@@ -1,30 +0,0 @@
1SUMMARY = "Key/value database library with extensible hashing"
2HOMEPAGE = "http://www.gnu.org/software/gdbm/"
3SECTION = "libs"
4LICENSE = "GPLv2+"
5LIC_FILES_CHKSUM = "file://COPYING;md5=d8e20eece214df8ef953ed5857862150"
6
7PR = "r4"
8
9SRC_URI = "${GNU_MIRROR}/gdbm/gdbm-${PV}.tar.gz \
10 file://makefile.patch \
11 file://libtool-mode.patch \
12 file://ldflags.patch"
13
14SRC_URI[md5sum] = "1d1b1d5c0245b1c00aff92da751e9aa1"
15SRC_URI[sha256sum] = "cc340338a2e28b40058ab9eb5354a21d53f88a1582ea21ba0bb185c37a281dc9"
16
17inherit autotools texinfo
18
19BBCLASSEXTEND = "native nativesdk"
20
21do_install_append () {
22 oe_runmake install-compat DESTDIR=${D}
23 install -d ${D}${includedir}/gdbm
24 install -m 0644 ${S}/dbm.h ${D}${includedir}/
25 install -m 0644 ${S}/ndbm.h ${D}${includedir}/
26 # Create a symlink to ndbm.h and gdbm.h in include/gdbm to let other packages to find
27 # these headers
28 ln -sf ../ndbm.h ${D}/${includedir}/gdbm/ndbm.h
29 ln -sf ../gdbm.h ${D}/${includedir}/gdbm/gdbm.h
30}
diff --git a/meta/recipes-support/gmp/gmp-4.2.1/Use-__gnu_inline__-attribute.patch b/meta/recipes-support/gmp/gmp-4.2.1/Use-__gnu_inline__-attribute.patch
deleted file mode 100644
index 627d71aba9..0000000000
--- a/meta/recipes-support/gmp/gmp-4.2.1/Use-__gnu_inline__-attribute.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1From 3cb33502bafd04b8ad4ca3454fab16d5ff313297 Mon Sep 17 00:00:00 2001
2From: Jussi Kukkonen <jussi.kukkonen@intel.com>
3Date: Tue, 22 Sep 2015 13:16:23 +0300
4Subject: [PATCH] Use __gnu_inline__ attribute
5
6gcc5 uses C11 inline rules. This means the old "extern inline"
7semantics are not available without a special attribute.
8
9See: https://gcc.gnu.org/gcc-5/porting_to.html
10
11Upstream-Status: Inappropriate [Fixed in current versions]
12Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
13---
14 gmp-h.in | 5 ++++-
15 1 file changed, 4 insertions(+), 1 deletion(-)
16
17diff --git a/gmp-h.in b/gmp-h.in
18index eed6fe4..361dd1d 100644
19--- a/gmp-h.in
20+++ b/gmp-h.in
21@@ -419,8 +419,11 @@ typedef __mpq_struct *mpq_ptr;
22 /* gcc has __inline__ in all modes, including strict ansi. Give a prototype
23 for an inline too, so as to correctly specify "dllimport" on windows, in
24 case the function is called rather than inlined. */
25+
26+/* Use __gnu_inline__ attribute: later gcc uses different "extern inline"
27+ behaviour */
28 #ifdef __GNUC__
29-#define __GMP_EXTERN_INLINE extern __inline__
30+#define __GMP_EXTERN_INLINE extern __inline__ __attribute__ ((__gnu_inline__))
31 #define __GMP_INLINE_PROTOTYPES 1
32 #endif
33
34--
352.1.4
36
diff --git a/meta/recipes-support/gmp/gmp-4.2.1/avoid-h-asm-constraint-for-MIPS.patch b/meta/recipes-support/gmp/gmp-4.2.1/avoid-h-asm-constraint-for-MIPS.patch
deleted file mode 100644
index 6da0be9ca0..0000000000
--- a/meta/recipes-support/gmp/gmp-4.2.1/avoid-h-asm-constraint-for-MIPS.patch
+++ /dev/null
@@ -1,57 +0,0 @@
1From d50686de0406a88ef9112f5252103f799982e84a Mon Sep 17 00:00:00 2001
2From: Andre McCurdy <armccurdy@gmail.com>
3Date: Thu, 4 Feb 2016 14:00:00 -0800
4Subject: [PATCH] avoid h asm constraint for MIPS
5
6The h asm constrain (to extract the high part of a multiplication
7result) has not been recognised since gcc 4.4:
8
9 https://gcc.gnu.org/gcc-4.4/changes.html
10
11Drop the MIPS umul_ppmm() implementations which rely on "=h" and fall
12back to the older implementations (which use explicit mfhi and mflo
13instructions to move the high and low parts of the multiplication
14result into their destinations).
15
16Upstream-Status: Inappropriate [upstream has a different solution]
17
18Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
19---
20 longlong.h | 10 ----------
21 1 file changed, 10 deletions(-)
22
23diff --git a/longlong.h b/longlong.h
24index b53fbee..0193abb 100644
25--- a/longlong.h
26+++ b/longlong.h
27@@ -1011,27 +1011,17 @@ extern UWtype __MPN(udiv_qrnnd) _PROTO ((UWtype *, UWtype, UWtype, UWtype));
28 #endif /* __m88000__ */
29
30 #if defined (__mips) && W_TYPE_SIZE == 32
31-#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
32-#define umul_ppmm(w1, w0, u, v) \
33- __asm__ ("multu %2,%3" : "=l" (w0), "=h" (w1) : "d" (u), "d" (v))
34-#else
35 #define umul_ppmm(w1, w0, u, v) \
36 __asm__ ("multu %2,%3\n\tmflo %0\n\tmfhi %1" \
37 : "=d" (w0), "=d" (w1) : "d" (u), "d" (v))
38-#endif
39 #define UMUL_TIME 10
40 #define UDIV_TIME 100
41 #endif /* __mips */
42
43 #if (defined (__mips) && __mips >= 3) && W_TYPE_SIZE == 64
44-#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
45-#define umul_ppmm(w1, w0, u, v) \
46- __asm__ ("dmultu %2,%3" : "=l" (w0), "=h" (w1) : "d" (u), "d" (v))
47-#else
48 #define umul_ppmm(w1, w0, u, v) \
49 __asm__ ("dmultu %2,%3\n\tmflo %0\n\tmfhi %1" \
50 : "=d" (w0), "=d" (w1) : "d" (u), "d" (v))
51-#endif
52 #define UMUL_TIME 20
53 #define UDIV_TIME 140
54 #endif /* __mips */
55--
561.9.1
57
diff --git a/meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch b/meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch
deleted file mode 100644
index 26fd8ef8bc..0000000000
--- a/meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch
+++ /dev/null
@@ -1,56 +0,0 @@
1automake 1.12 has depricated automatic de-ANSI-fication support
2
3this patch avoids these kinds of errors:
4
5| configure.in:2240: error: automatic de-ANSI-fication support has been removed
6| Makefile.am:28: error: automatic de-ANSI-fication support has been removed
7
8Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
92012/05/02
10
11
12This patch was removed in f181c6ce8b3 when gmp 4.2.1 was mistakenly
13dropped.
14
15Upstream is not interested in patches for ancient versions.
16
17Upstream-Status: Inappropriate
18Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
19
20
21Index: gmp-4.2.1/configure.in
22===================================================================
23--- gmp-4.2.1.orig/configure.in
24+++ gmp-4.2.1/configure.in
25@@ -67,7 +67,7 @@ dnl
26 dnl Note that there's a copy of these options in the top-level Makefile.am,
27 dnl so update there too if changing anything.
28 dnl
29-AM_INIT_AUTOMAKE([1.8 gnu no-dependencies $(top_builddir)/ansi2knr])
30+AM_INIT_AUTOMAKE([1.8 gnu no-dependencies])
31 AM_CONFIG_HEADER(config.h:config.in)
32 AM_MAINTAINER_MODE
33
34@@ -2022,9 +2022,6 @@ fi
35 echo " MPN_PATH=\"$path\""
36
37
38-# Automake ansi2knr support.
39-AM_C_PROTOTYPES
40-
41 GMP_PROG_AR
42 GMP_PROG_NM
43
44Index: gmp-4.2.1/Makefile.am
45===================================================================
46--- gmp-4.2.1.orig/Makefile.am
47+++ gmp-4.2.1/Makefile.am
48@@ -27,7 +27,7 @@
49 # Makefiles in subdirectories, but here we must omit it so automake gives
50 # the actual ansi2knr build rule, not "cd $(top_builddir) && make ansi2knr".
51 #
52-AUTOMAKE_OPTIONS = 1.8 gnu no-dependencies ansi2knr
53+AUTOMAKE_OPTIONS = 1.8 gnu no-dependencies
54
55
56 # Libtool -version-info for libgmp.la and libmp.la. See "Versioning" in the
diff --git a/meta/recipes-support/gmp/gmp_4.2.1.bb b/meta/recipes-support/gmp/gmp_4.2.1.bb
deleted file mode 100644
index 5e8ee29f36..0000000000
--- a/meta/recipes-support/gmp/gmp_4.2.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
1require gmp.inc
2
3LICENSE = "LGPLv2.1+ & GPLv2+"
4LICENSE_${PN} = "LGPLv2.1+"
5
6LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a \
7 file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24 \
8 file://gmp-h.in;beginline=6;endline=21;md5=e056f74a12c3277d730dbcfb85d2ca34"
9
10SRC_URI = "https://gmplib.org/download/${BPN}/archive/${BP}.tar.bz2 \
11 file://Use-__gnu_inline__-attribute.patch \
12 file://gmp_fix_for_automake-1.12.patch \
13 file://avoid-h-asm-constraint-for-MIPS.patch \
14"
15
16SRC_URI[md5sum] = "091c56e0e1cca6b09b17b69d47ef18e3"
17SRC_URI[sha256sum] = "d07ffcb37eecec35c5ec72516d10b35fdf6e6fef1fcf1dcd37e30b8cbf8bf941"
diff --git a/meta/recipes-support/gnupg/gnupg-1.4.7/CVE-2013-4242.patch b/meta/recipes-support/gnupg/gnupg-1.4.7/CVE-2013-4242.patch
deleted file mode 100644
index f0667741c8..0000000000
--- a/meta/recipes-support/gnupg/gnupg-1.4.7/CVE-2013-4242.patch
+++ /dev/null
@@ -1,63 +0,0 @@
1From e2202ff2b704623efc6277fb5256e4e15bac5676 Mon Sep 17 00:00:00 2001
2From: Werner Koch <wk@gnupg.org>
3Date: Thu, 25 Jul 2013 11:17:52 +0200
4Subject: [PATCH] Mitigate a flush+reload cache attack on RSA secret
5 exponents.
6
7commit e2202ff2b704623efc6277fb5256e4e15bac5676 from
8git://git.gnupg.org/libgcrypt.git
9
10* mpi/mpi-pow.c (gcry_mpi_powm): Always perfrom the mpi_mul for
11exponents in secure memory.
12
13Upstream-Status: Backport
14CVE: CVE-2013-4242
15
16Signed-off-by: Kai Kang <kai.kang@windriver.com>
17--
18
19The attack is published as http://eprint.iacr.org/2013/448 :
20
21Flush+Reload: a High Resolution, Low Noise, L3 Cache Side-Channel
22Attack by Yuval Yarom and Katrina Falkner. 18 July 2013.
23
24 Flush+Reload is a cache side-channel attack that monitors access to
25 data in shared pages. In this paper we demonstrate how to use the
26 attack to extract private encryption keys from GnuPG. The high
27 resolution and low noise of the Flush+Reload attack enables a spy
28 program to recover over 98% of the bits of the private key in a
29 single decryption or signing round. Unlike previous attacks, the
30 attack targets the last level L3 cache. Consequently, the spy
31 program and the victim do not need to share the execution core of
32 the CPU. The attack is not limited to a traditional OS and can be
33 used in a virtualised environment, where it can attack programs
34 executing in a different VM.
35
36Index: gnupg-1.4.7/mpi/mpi-pow.c
37===================================================================
38--- gnupg-1.4.7.orig/mpi/mpi-pow.c
39+++ gnupg-1.4.7/mpi/mpi-pow.c
40@@ -212,7 +212,13 @@ mpi_powm( MPI res, MPI base, MPI exponen
41 tp = rp; rp = xp; xp = tp;
42 rsize = xsize;
43
44- if( (mpi_limb_signed_t)e < 0 ) {
45+ /* To mitigate the Yarom/Falkner flush+reload cache
46+ * side-channel attack on the RSA secret exponent, we do
47+ * the multiplication regardless of the value of the
48+ * high-bit of E. But to avoid this performance penalty
49+ * we do it only if the exponent has been stored in secure
50+ * memory and we can thus assume it is a secret exponent. */
51+ if (esec || (mpi_limb_signed_t)e < 0) {
52 /*mpihelp_mul( xp, rp, rsize, bp, bsize );*/
53 if( bsize < KARATSUBA_THRESHOLD ) {
54 mpihelp_mul( xp, rp, rsize, bp, bsize );
55@@ -227,6 +233,8 @@ mpi_powm( MPI res, MPI base, MPI exponen
56 mpihelp_divrem(xp + msize, 0, xp, xsize, mp, msize);
57 xsize = msize;
58 }
59+ }
60+ if ( (mpi_limb_signed_t)e < 0 ) {
61
62 tp = rp; rp = xp; xp = tp;
63 rsize = xsize;
diff --git a/meta/recipes-support/gnupg/gnupg-1.4.7/CVE-2013-4351.patch b/meta/recipes-support/gnupg/gnupg-1.4.7/CVE-2013-4351.patch
deleted file mode 100644
index b50a32f40c..0000000000
--- a/meta/recipes-support/gnupg/gnupg-1.4.7/CVE-2013-4351.patch
+++ /dev/null
@@ -1,45 +0,0 @@
1Upstream-Status: Backport
2CVE: CVE-2013-4351
3
4Index: gnupg-1.4.7/g10/getkey.c
5===================================================================
6--- gnupg-1.4.7.orig/g10/getkey.c 2007-03-05 16:54:41.000000000 +0800
7+++ gnupg-1.4.7/g10/getkey.c 2013-11-28 14:41:59.640212240 +0800
8@@ -1454,7 +1454,11 @@
9
10 if(flags)
11 key_usage |= PUBKEY_USAGE_UNKNOWN;
12+ if (!key_usage)
13+ key_usage |= PUBKEY_USAGE_NONE;
14 }
15+ else if (p)
16+ key_usage |= PUBKEY_USAGE_NONE;
17
18 /* We set PUBKEY_USAGE_UNKNOWN to indicate that this key has a
19 capability that we do not handle. This serves to distinguish
20Index: gnupg-1.4.7/g10/keygen.c
21===================================================================
22--- gnupg-1.4.7.orig/g10/keygen.c 2007-02-05 00:27:40.000000000 +0800
23+++ gnupg-1.4.7/g10/keygen.c 2013-11-28 14:43:05.016670092 +0800
24@@ -209,9 +209,6 @@
25 if (use & PUBKEY_USAGE_AUTH)
26 buf[0] |= 0x20;
27
28- if (!buf[0])
29- return;
30-
31 build_sig_subpkt (sig, SIGSUBPKT_KEY_FLAGS, buf, 1);
32 }
33
34Index: gnupg-1.4.7/include/cipher.h
35===================================================================
36--- gnupg-1.4.7.orig/include/cipher.h 2006-04-21 20:39:49.000000000 +0800
37+++ gnupg-1.4.7/include/cipher.h 2013-11-28 14:49:24.159322744 +0800
38@@ -52,6 +52,7 @@
39 #define PUBKEY_USAGE_CERT 4 /* key is also good to certify other keys*/
40 #define PUBKEY_USAGE_AUTH 8 /* key is good for authentication */
41 #define PUBKEY_USAGE_UNKNOWN 128 /* key has an unknown usage bit */
42+#define PUBKEY_USAGE_NONE 256 /* No usage given. */
43
44 #define DIGEST_ALGO_MD5 1
45 #define DIGEST_ALGO_SHA1 2
diff --git a/meta/recipes-support/gnupg/gnupg-1.4.7/CVE-2013-4576.patch b/meta/recipes-support/gnupg/gnupg-1.4.7/CVE-2013-4576.patch
deleted file mode 100644
index 5dcde1f9cb..0000000000
--- a/meta/recipes-support/gnupg/gnupg-1.4.7/CVE-2013-4576.patch
+++ /dev/null
@@ -1,154 +0,0 @@
1Upstream-Status: Backport
2CVE: CVE-2013-4576
3
4Index: gnupg-1.4.7/cipher/dsa.c
5===================================================================
6--- gnupg-1.4.7.orig/cipher/dsa.c 2006-12-12 02:27:21.000000000 +0800
7+++ gnupg-1.4.7/cipher/dsa.c 2014-01-23 11:30:17.300915919 +0800
8@@ -287,6 +287,8 @@
9 MPI kinv;
10 MPI tmp;
11
12+ mpi_normalize (hash);
13+
14 /* select a random k with 0 < k < q */
15 k = gen_k( skey->q );
16
17Index: gnupg-1.4.7/cipher/elgamal.c
18===================================================================
19--- gnupg-1.4.7.orig/cipher/elgamal.c 2006-12-12 03:08:05.000000000 +0800
20+++ gnupg-1.4.7/cipher/elgamal.c 2014-01-23 11:30:17.300915919 +0800
21@@ -376,6 +376,9 @@
22 {
23 MPI t1 = mpi_alloc_secure( mpi_get_nlimbs( skey->p ) );
24
25+ mpi_normalize (a);
26+ mpi_normalize (b);
27+
28 /* output = b/(a^x) mod p */
29 mpi_powm( t1, a, skey->x, skey->p );
30 mpi_invm( t1, t1, skey->p );
31Index: gnupg-1.4.7/cipher/random.c
32===================================================================
33--- gnupg-1.4.7.orig/cipher/random.c 2006-11-03 18:09:39.000000000 +0800
34+++ gnupg-1.4.7/cipher/random.c 2014-01-23 11:31:53.993495462 +0800
35@@ -273,6 +273,18 @@
36 }
37
38
39+/* Randomize the MPI */
40+void
41+randomize_mpi (MPI mpi, size_t nbits, int level)
42+{
43+ unsigned char *buffer;
44+
45+ buffer = get_random_bits (nbits, level, mpi_is_secure (mpi));
46+ mpi_set_buffer (mpi, buffer, (nbits+7)/8, 0);
47+ xfree (buffer);
48+}
49+
50+
51 int
52 random_is_faked()
53 {
54Index: gnupg-1.4.7/cipher/random.h
55===================================================================
56--- gnupg-1.4.7.orig/cipher/random.h 2006-02-09 19:29:29.000000000 +0800
57+++ gnupg-1.4.7/cipher/random.h 2014-01-23 11:30:17.300915919 +0800
58@@ -32,6 +32,7 @@
59 int random_is_faked(void);
60 void random_disable_locking (void);
61 void randomize_buffer( byte *buffer, size_t length, int level );
62+void randomize_mpi (MPI mpi, size_t nbits, int level);
63 byte *get_random_bits( size_t nbits, int level, int secure );
64 void fast_random_poll( void );
65
66Index: gnupg-1.4.7/cipher/rsa.c
67===================================================================
68--- gnupg-1.4.7.orig/cipher/rsa.c 2006-12-12 03:09:00.000000000 +0800
69+++ gnupg-1.4.7/cipher/rsa.c 2014-01-23 11:35:04.330639125 +0800
70@@ -301,9 +301,26 @@
71 #if 0
72 mpi_powm( output, input, skey->d, skey->n );
73 #else
74- MPI m1 = mpi_alloc_secure( mpi_get_nlimbs(skey->n)+1 );
75- MPI m2 = mpi_alloc_secure( mpi_get_nlimbs(skey->n)+1 );
76- MPI h = mpi_alloc_secure( mpi_get_nlimbs(skey->n)+1 );
77+ int nlimbs = mpi_get_nlimbs (skey->n)+1;
78+ MPI m1 = mpi_alloc_secure (nlimbs);
79+ MPI m2 = mpi_alloc_secure (nlimbs);
80+ MPI h = mpi_alloc_secure (nlimbs);
81+# if 1
82+ MPI bdata= mpi_alloc_secure (nlimbs);
83+ MPI r = mpi_alloc_secure (nlimbs);
84+# endif
85+
86+ /* Remove superfluous leading zeroes from INPUT. */
87+ mpi_normalize (input);
88+
89+# if 1
90+ /* Blind: bdata = (data * r^e) mod n */
91+ randomize_mpi (r, mpi_get_nbits (skey->n), 0);
92+ mpi_fdiv_r (r, r, skey->n);
93+ mpi_powm (bdata, r, skey->e, skey->n);
94+ mpi_mulm (bdata, bdata, input, skey->n);
95+ input = bdata;
96+# endif
97
98 /* m1 = c ^ (d mod (p-1)) mod p */
99 mpi_sub_ui( h, skey->p, 1 );
100@@ -321,8 +338,15 @@
101 /* m = m2 + h * p */
102 mpi_mul ( h, h, skey->p );
103 mpi_add ( output, m1, h );
104- /* ready */
105-
106+
107+# if 1
108+ mpi_free (bdata);
109+ /* Unblind: output = (output * r^(-1)) mod n */
110+ mpi_invm (r, r, skey->n);
111+ mpi_mulm (output, output, r, skey->n);
112+ mpi_free (r);
113+# endif
114+
115 mpi_free ( h );
116 mpi_free ( m1 );
117 mpi_free ( m2 );
118@@ -397,6 +421,7 @@
119 rsa_decrypt( int algo, MPI *result, MPI *data, MPI *skey )
120 {
121 RSA_secret_key sk;
122+ MPI input;
123
124 if( algo != 1 && algo != 2 )
125 return G10ERR_PUBKEY_ALGO;
126@@ -407,8 +432,14 @@
127 sk.p = skey[3];
128 sk.q = skey[4];
129 sk.u = skey[5];
130- *result = mpi_alloc_secure( mpi_get_nlimbs( sk.n ) );
131- secret( *result, data[0], &sk );
132+
133+ /* Mitigates side-channel attacks (CVE-2013-4576). */
134+ input = mpi_alloc (0);
135+ mpi_normalize (data[0]);
136+ mpi_fdiv_r (input, data[0], sk.n);
137+ *result = mpi_alloc_secure (mpi_get_nlimbs (sk.n));
138+ secret (*result, input, &sk);
139+ mpi_free (input);
140 return 0;
141 }
142
143Index: gnupg-1.4.7/g10/gpgv.c
144===================================================================
145--- gnupg-1.4.7.orig/g10/gpgv.c 2006-12-13 19:25:04.000000000 +0800
146+++ gnupg-1.4.7/g10/gpgv.c 2014-01-23 11:30:17.300915919 +0800
147@@ -390,6 +390,7 @@
148 void random_dump_stats(void) {}
149 int quick_random_gen( int onoff ) { return -1;}
150 void randomize_buffer( byte *buffer, size_t length, int level ) {}
151+void randomize_mpi (MPI mpi, size_t nbits, int level) {}
152 int random_is_faked() { return -1;}
153 byte *get_random_bits( size_t nbits, int level, int secure ) { return NULL;}
154 void set_random_seed_file( const char *name ) {}
diff --git a/meta/recipes-support/gnupg/gnupg-1.4.7/GnuPG1-CVE-2012-6085.patch b/meta/recipes-support/gnupg/gnupg-1.4.7/GnuPG1-CVE-2012-6085.patch
deleted file mode 100644
index 362717636b..0000000000
--- a/meta/recipes-support/gnupg/gnupg-1.4.7/GnuPG1-CVE-2012-6085.patch
+++ /dev/null
@@ -1,64 +0,0 @@
1commit f0b33b6fb8e0586e9584a7a409dcc31263776a67
2Author: Werner Koch <wk@gnupg.org>
3Date: Thu Dec 20 09:43:41 2012 +0100
4
5 gpg: Import only packets which are allowed in a keyblock.
6
7 * g10/import.c (valid_keyblock_packet): New.
8 (read_block): Store only valid packets.
9 --
10
11 A corrupted key, which for example included a mangled public key
12 encrypted packet, used to corrupt the keyring. This change skips all
13 packets which are not allowed in a keyblock.
14
15 GnuPG-bug-id: 1455
16
17 (cherry-picked from commit f795a0d59e197455f8723c300eebf59e09853efa)
18
19Upstream-Status: Backport
20CVE: CVE-2012-6085
21
22Signed-off-by: Saul Wold <sgw@linux.intel.com>
23
24diff --git a/g10/import.c b/g10/import.c
25index bfe02eb..a57b32e 100644
26--- a/g10/import.c
27+++ b/g10/import.c
28@@ -384,6 +384,27 @@ import_print_stats (void *hd)
29 }
30
31
32+/* Return true if PKTTYPE is valid in a keyblock. */
33+static int
34+valid_keyblock_packet (int pkttype)
35+{
36+ switch (pkttype)
37+ {
38+ case PKT_PUBLIC_KEY:
39+ case PKT_PUBLIC_SUBKEY:
40+ case PKT_SECRET_KEY:
41+ case PKT_SECRET_SUBKEY:
42+ case PKT_SIGNATURE:
43+ case PKT_USER_ID:
44+ case PKT_ATTRIBUTE:
45+ case PKT_RING_TRUST:
46+ return 1;
47+ default:
48+ return 0;
49+ }
50+}
51+
52+
53 /****************
54 * Read the next keyblock from stream A.
55 * PENDING_PKT should be initialzed to NULL
56@@ -461,7 +482,7 @@ read_block( IOBUF a, PACKET **pending_pkt, KBNODE *ret_root )
57 }
58 in_cert = 1;
59 default:
60- if( in_cert ) {
61+ if (in_cert && valid_keyblock_packet (pkt->pkttype)) {
62 if( !root )
63 root = new_kbnode( pkt );
64 else
diff --git a/meta/recipes-support/gnupg/gnupg-1.4.7/configure.patch b/meta/recipes-support/gnupg/gnupg-1.4.7/configure.patch
deleted file mode 100644
index e005ac658f..0000000000
--- a/meta/recipes-support/gnupg/gnupg-1.4.7/configure.patch
+++ /dev/null
@@ -1,17 +0,0 @@
1
2Upstream-Status: Inappropriate [configuration]
3
4Signed-off-by: Saul Wold <sgw@linux.intel.com>
5
6Index: gnupg-1.4.7/configure.ac
7===================================================================
8--- gnupg-1.4.7.orig/configure.ac
9+++ gnupg-1.4.7/configure.ac
10@@ -827,7 +827,6 @@ else
11 AC_SUBST(USE_NLS)
12 AC_SUBST(USE_INCLUDED_LIBINTL)
13 AC_SUBST(BUILD_INCLUDED_LIBINTL)
14- AM_PO_SUBDIRS
15 fi
16
17 if test "$try_extensions" = yes || test x"$card_support" = xyes ; then
diff --git a/meta/recipes-support/gnupg/gnupg-1.4.7/curl_typeof_fix_backport.patch b/meta/recipes-support/gnupg/gnupg-1.4.7/curl_typeof_fix_backport.patch
deleted file mode 100644
index e5fb24aa63..0000000000
--- a/meta/recipes-support/gnupg/gnupg-1.4.7/curl_typeof_fix_backport.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1
2This has been discussed in a couple of different bug reported
3upstream:
4
5http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=486250
6http://bugs.sourcemage.org/show_bug.cgi?id=14446
7
8Fix:
9http://lists.gnupg.org/pipermail/gnupg-devel/2008-April/024344.html
10
11Upstream-Status: Backport [Debian]
12
13Signed-off-by: Saul Wold <sgw@linux.intel.com>
14
15Index: gnupg-1.4.7/keyserver/gpgkeys_curl.c
16===================================================================
17--- gnupg-1.4.7.orig/keyserver/gpgkeys_curl.c
18+++ gnupg-1.4.7/keyserver/gpgkeys_curl.c
19@@ -286,7 +286,7 @@ main(int argc,char *argv[])
20 curl_easy_setopt(curl,CURLOPT_VERBOSE,1);
21 }
22
23- curl_easy_setopt(curl,CURLOPT_SSL_VERIFYPEER,opt->flags.check_cert);
24+ curl_easy_setopt(curl,CURLOPT_SSL_VERIFYPEER,(long)opt->flags.check_cert);
25 curl_easy_setopt(curl,CURLOPT_CAINFO,opt->ca_cert_file);
26
27 if(proxy)
diff --git a/meta/recipes-support/gnupg/gnupg-1.4.7/long-long-thumb.patch b/meta/recipes-support/gnupg/gnupg-1.4.7/long-long-thumb.patch
deleted file mode 100644
index 2855cab24b..0000000000
--- a/meta/recipes-support/gnupg/gnupg-1.4.7/long-long-thumb.patch
+++ /dev/null
@@ -1,19 +0,0 @@
1Orignal Patch came from OpenWrt via OE-Classic
2https://dev.openwrt.org/browser/packages/utils/gnupg/patches/001-mips_gcc4.4
3which is no longer a valid revision!
4
5Upstream-Status: Inappropriate [configuration]
6
7
8--- gnupg/mpi/longlong.h~ 2006-02-14 10:09:55.000000000 +0000
9+++ gnupg/mpi/longlong.h 2008-10-27 13:11:09.000000000 +0000
10@@ -181,7 +181,7 @@
11 /***************************************
12 ************** ARM ******************
13 ***************************************/
14-#if defined (__arm__) && W_TYPE_SIZE == 32
15+#if defined (__arm__) && W_TYPE_SIZE == 32 && !defined(__thumb__)
16 #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
17 __asm__ ("adds %1, %4, %5\n" \
18 "adc %0, %2, %3" \
19
diff --git a/meta/recipes-support/gnupg/gnupg-1.4.7/mips_gcc4.4.patch b/meta/recipes-support/gnupg/gnupg-1.4.7/mips_gcc4.4.patch
deleted file mode 100644
index 9a03b2b705..0000000000
--- a/meta/recipes-support/gnupg/gnupg-1.4.7/mips_gcc4.4.patch
+++ /dev/null
@@ -1,50 +0,0 @@
1
2From Openembedded-Classic
3
4 gnupg-1.4.10: Readd the ARM Thumb patch as debian has no thumb support
5
6
7Upstream-Status: Inappropriate [embedded-specific]
8
9Index: gnupg-1.4.10/mpi/longlong.h
10===================================================================
11--- gnupg-1.4.10.orig/mpi/longlong.h 2008-12-11 17:39:43.000000000 +0100
12+++ gnupg-1.4.10/mpi/longlong.h 2010-03-27 14:27:53.000000000 +0100
13@@ -706,18 +706,35 @@
14 #endif /* __m88110__ */
15 #endif /* __m88000__ */
16
17+/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */
18+#if defined (__GNUC__) && defined (__GNUC_MINOR__)
19+#define __GNUC_PREREQ(maj, min) \
20+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
21+#else
22+#define __GNUC_PREREQ(maj, min) 0
23+#endif
24+
25 /***************************************
26 ************** MIPS *****************
27 ***************************************/
28 #if defined (__mips__) && W_TYPE_SIZE == 32
29-#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
30+#if __GNUC_PREREQ (4,4)
31+#define umul_ppmm(w1, w0, u, v) \
32+ do { \
33+ UDItype __ll = (UDItype)(u) * (v); \
34+ w1 = __ll >> 32; \
35+ w0 = __ll; \
36+ } while (0)
37+#endif
38+#if !defined (umul_ppmm) && __GNUC_PREREQ (2,7)
39 #define umul_ppmm(w1, w0, u, v) \
40 __asm__ ("multu %2,%3" \
41 : "=l" ((USItype)(w0)), \
42 "=h" ((USItype)(w1)) \
43 : "d" ((USItype)(u)), \
44 "d" ((USItype)(v)))
45-#else
46+#endif
47+#if !defined (umul_ppmm)
48 #define umul_ppmm(w1, w0, u, v) \
49 __asm__ ("multu %2,%3 \n" \
50 "mflo %0 \n" \
diff --git a/meta/recipes-support/gnupg/gnupg_1.4.7.bb b/meta/recipes-support/gnupg/gnupg_1.4.7.bb
deleted file mode 100644
index 6ccffd54ca..0000000000
--- a/meta/recipes-support/gnupg/gnupg_1.4.7.bb
+++ /dev/null
@@ -1,104 +0,0 @@
1SUMMARY = "GNU Privacy Guard - encryption and signing tools"
2HOMEPAGE = "http://www.gnupg.org/"
3DEPENDS = "zlib bzip2 readline"
4SECTION = "console/utils"
5
6LICENSE = "GPLv2"
7
8LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
9
10PR = "r9"
11
12SRC_URI = "${GNUPG_MIRROR}/gnupg/gnupg-${PV}.tar.bz2 \
13 file://long-long-thumb.patch \
14 file://configure.patch \
15 file://mips_gcc4.4.patch \
16 file://GnuPG1-CVE-2012-6085.patch \
17 file://curl_typeof_fix_backport.patch \
18 file://CVE-2013-4351.patch \
19 file://CVE-2013-4576.patch \
20 file://CVE-2013-4242.patch \
21 "
22
23SRC_URI[md5sum] = "b06a141cca5cd1a55bbdd25ab833303c"
24SRC_URI[sha256sum] = "69d18b7d193f62ca27ed4febcb4c9044aa0c95305d3258fe902e2fae5fc6468d"
25
26inherit autotools gettext texinfo
27
28# --with-egd-socket=NAME use NAME for the EGD socket
29# --with-photo-viewer=FIXED_VIEWER set a fixed photo ID viewer
30# --with-included-zlib use the zlib code included here
31# --with-capabilities use linux capabilities default=no
32# --with-mailprog=NAME use "NAME -t" for mail transport
33# --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
34# --without-libiconv-prefix don't search for libiconv in includedir and libdir
35# --with-included-gettext use the GNU gettext library included here
36# --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib
37# --without-libintl-prefix don't search for libintl in includedir and libdir
38# --without-readline do not support fancy command line editing
39# --with-included-regex use the included GNU regex library
40# --with-zlib=DIR use libz in DIR
41# --with-bzip2=DIR look for bzip2 in DIR
42# --enable-static-rnd=egd|unix|linux|auto
43# --disable-dev-random disable the use of dev random
44# --disable-asm do not use assembler modules
45# --enable-m-guard enable memory guard facility
46# --enable-selinux-support
47# enable SELinux support
48# --disable-card-support disable OpenPGP card support
49# --disable-gnupg-iconv disable the new iconv code
50# --enable-backsigs enable the experimental backsigs code
51# --enable-minimal build the smallest gpg binary possible
52# --disable-rsa disable the RSA public key algorithm
53# --disable-idea disable the IDEA cipher
54# --disable-cast5 disable the CAST5 cipher
55# --disable-blowfish disable the BLOWFISH cipher
56# --disable-aes disable the AES, AES192, and AES256 ciphers
57# --disable-twofish disable the TWOFISH cipher
58# --disable-sha256 disable the SHA-256 digest
59# --disable-sha512 disable the SHA-384 and SHA-512 digests
60# --disable-bzip2 disable the BZIP2 compression algorithm
61# --disable-exec disable all external program execution
62# --disable-photo-viewers disable photo ID viewers
63# --disable-keyserver-helpers disable all external keyserver support
64# --disable-ldap disable LDAP keyserver interface
65# --disable-hkp disable HKP keyserver interface
66# --disable-http disable HTTP key fetching interface
67# --disable-finger disable Finger key fetching interface
68# --disable-mailto disable email keyserver interface
69# --disable-keyserver-path disable the exec-path option for keyserver helpers
70# --enable-key-cache=SIZE Set key cache to SIZE (default 4096)
71# --disable-largefile omit support for large files
72# --disable-dns-srv disable the use of DNS SRV in HKP and HTTP
73# --disable-nls do not use Native Language Support
74# --disable-regex do not handle regular expressions in trust sigs
75
76EXTRA_OECONF = "--disable-ldap \
77 --with-zlib=${STAGING_LIBDIR}/.. \
78 --with-bzip2=${STAGING_LIBDIR}/.. \
79 --disable-selinux-support \
80 --with-readline=${STAGING_LIBDIR}/.. \
81 ac_cv_sys_symbol_underscore=no \
82 "
83
84# Force gcc's traditional handling of inline to avoid issues with gcc 5
85CFLAGS += "-fgnu89-inline"
86
87do_install () {
88 autotools_do_install
89 install -d ${D}${docdir}/${BPN}
90 mv ${D}${datadir}/${BPN}/* ${D}/${docdir}/${BPN}/ || :
91 mv ${D}${prefix}/doc/* ${D}/${docdir}/${BPN}/ || :
92}
93
94# split out gpgv from main package
95RDEPENDS_${PN} = "gpgv"
96PACKAGES =+ "gpgv"
97FILES_gpgv = "${bindir}/gpgv"
98
99# Exclude debug files from the main packages
100FILES_${PN} = "${bindir}/* ${datadir}/${BPN} ${libexecdir}/${BPN}/*"
101
102PACKAGECONFIG ??= ""
103PACKAGECONFIG[curl] = "--with-libcurl=${STAGING_LIBDIR},--without-libcurl,curl"
104PACKAGECONFIG[libusb] = "--with-libusb=${STAGING_LIBDIR},--without-libusb,libusb-compat"
diff --git a/meta/recipes-support/libiconv/libiconv-1.11.1/autoconf.patch b/meta/recipes-support/libiconv/libiconv-1.11.1/autoconf.patch
deleted file mode 100644
index 3cbf549d48..0000000000
--- a/meta/recipes-support/libiconv/libiconv-1.11.1/autoconf.patch
+++ /dev/null
@@ -1,50 +0,0 @@
1It adds the variables that are needed
2for autoconf 2.65 to reconfigure libiconv and defines the m4 macros
3directory. Its imported from OE.
4
5Upstream-Status: Pending
6
7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8
9Index: libiconv-1.11.1/configure.ac
10===================================================================
11--- libiconv-1.11.1.orig/configure.ac
12+++ libiconv-1.11.1/configure.ac
13@@ -23,7 +23,7 @@ AC_CONFIG_AUX_DIR(build-aux)
14 AM_INIT_AUTOMAKE(libiconv, 1.11)
15 AC_CONFIG_HEADERS(config.h lib/config.h)
16 AC_PROG_MAKE_SET
17-
18+AC_CONFIG_MACRO_DIR([m4])
19 dnl checks for basic programs
20
21 AC_PROG_CC
22Index: libiconv-1.11.1/libcharset/configure.ac
23===================================================================
24--- libiconv-1.11.1.orig/libcharset/configure.ac
25+++ libiconv-1.11.1/libcharset/configure.ac
26@@ -16,17 +16,17 @@ dnl along with the GNU CHARSET Library;
27 dnl write to the Free Software Foundation, Inc., 51 Franklin Street,
28 dnl Fifth Floor, Boston, MA 02110-1301, USA.
29
30-AC_PREREQ(2.13)
31+AC_PREREQ(2.61)
32+AC_INIT([libcharset],[1.4] )
33+AC_CONFIG_SRCDIR([lib/localcharset.c])
34
35-PACKAGE=libcharset
36-VERSION=1.4
37-
38-AC_INIT(lib/localcharset.c)
39 AC_CONFIG_AUX_DIR(build-aux)
40 AC_CONFIG_HEADER(config.h)
41 AC_PROG_MAKE_SET
42-AC_SUBST(PACKAGE)
43-AC_SUBST(VERSION)
44+dnl AC_SUBST(PACKAGE)
45+dnl AC_SUBST(VERSION)
46+
47+AC_CONFIG_MACRO_DIR([m4])
48
49 dnl checks for basic programs
50
diff --git a/meta/recipes-support/libiconv/libiconv-1.11.1/shared_preloadable_libiconv_linux.patch b/meta/recipes-support/libiconv/libiconv-1.11.1/shared_preloadable_libiconv_linux.patch
deleted file mode 100644
index fb07f7366b..0000000000
--- a/meta/recipes-support/libiconv/libiconv-1.11.1/shared_preloadable_libiconv_linux.patch
+++ /dev/null
@@ -1,26 +0,0 @@
1With libtool generating shared and static version of libraries needs -fPIC flags
2without this it will not generate the commands to create shared linked library
3Its more enforced by libtool 2.4. I have not checked it with older libtool
4libiconv 1.11.x is relatively old release and libtool 2.4 did not exist when it
5was released these kind of problem are more likely
6
7Upstream-Status: Pending
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10
11Index: libiconv-1.11.1/lib/Makefile.in
12===================================================================
13--- libiconv-1.11.1.orig/lib/Makefile.in
14+++ libiconv-1.11.1/lib/Makefile.in
15@@ -70,9 +70,9 @@ preloadable_libiconv.so : preloadable_li
16
17 preloadable_libiconv_linux.so : $(SOURCES)
18 if test -n "@GCC@"; then \
19- $(LIBTOOL_LINK) $(CC) $(LDFLAGS) $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(DEFS) -fPIC -DPIC -DLIBICONV_PLUG $(SOURCES) -shared -o preloadable_libiconv_linux.so; \
20+ $(LIBTOOL_LINK) $(CC) $(LDFLAGS) $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(DEFS) -fPIC -DPIC -DLIBICONV_PLUG $(SOURCES) -rpath $(libdir) -o libpreload_iconv.la && cp .libs/libpreload_iconv.so preloadable_libiconv_linux.so; \
21 else \
22- $(LIBTOOL_LINK) $(CC) $(LDFLAGS) $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(DEFS) -KPIC -DPIC -DLIBICONV_PLUG $(SOURCES) -shared -o preloadable_libiconv_linux.so; \
23+ $(LIBTOOL_LINK) $(CC) $(LDFLAGS) $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(DEFS) -KPIC -DPIC -DLIBICONV_PLUG $(SOURCES) -rpath $(libdir) -o libpreload_iconv.la && cp .libs/libpreload_iconv.so preloadable_libiconv_linux.so; \
24 fi
25
26 preloadable_libiconv_solaris.so : $(SOURCES)
diff --git a/meta/recipes-support/libiconv/libiconv_1.11.1.bb b/meta/recipes-support/libiconv/libiconv_1.11.1.bb
deleted file mode 100644
index f28e64ae2e..0000000000
--- a/meta/recipes-support/libiconv/libiconv_1.11.1.bb
+++ /dev/null
@@ -1,47 +0,0 @@
1SUMMARY = "Character encoding support library"
2DESCRIPTION = "GNU libiconv - libiconv is for you if your application needs to support \
3multiple character encodings, but that support lacks from your system."
4HOMEPAGE = "http://www.gnu.org/software/libiconv"
5SECTION = "libs"
6NOTES = "Needs to be stripped down to: ascii iso8859-1 eucjp iso-2022jp gb utf8"
7PROVIDES = "virtual/libiconv"
8
9LICENSE = "LGPLv2.0"
10LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674 \
11 file://libcharset/COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674"
12
13SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
14 file://autoconf.patch \
15 file://shared_preloadable_libiconv_linux.patch \
16 "
17
18SRC_URI[md5sum] = "d42b97f6ef5dd0ba4469d520ed732fed"
19SRC_URI[sha256sum] = "e78c347a1a0cb15f2648519e9799151f4b4a934b61ad9ee7424478efe2b8257f"
20
21S = "${WORKDIR}/libiconv-${PV}"
22
23inherit autotools pkgconfig gettext
24
25python __anonymous() {
26 if d.getVar("TCLIBC") == "glibc":
27 raise bb.parse.SkipPackage("libiconv is provided for use with uClibc only - glibc already provides iconv")
28}
29
30EXTRA_OECONF += "--enable-shared --enable-static --enable-relocatable"
31
32LEAD_SONAME = "libiconv.so"
33
34do_configure_prepend () {
35 rm -f ${S}/m4/libtool.m4 ${S}/m4/ltoptions.m4 ${S}/m4/ltsugar.m4 ${S}/m4/ltversion.m4 ${S}/m4/lt~obsolete.m4 ${S}/libcharset/m4/libtool.m4 ${S}/libcharset/m4/ltoptions.m4 ${S}/libcharset/m4/ltsugar.m4 ${S}/libcharset/m4/ltversion.m4 ${S}/libcharset/m4/lt~obsolete.m4
36}
37
38do_configure_append () {
39 # forcibly remove RPATH from libtool
40 sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' *libtool
41 sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=_NO_RPATH_|g' *libtool
42}
43
44do_install_append () {
45 rm -rf ${D}${libdir}/preloadable_libiconv.so
46 rm -rf ${D}${libdir}/charset.alias
47}
diff --git a/meta/recipes-support/nettle/nettle-2.7.1/CVE-2015-8803_8805.patch b/meta/recipes-support/nettle/nettle-2.7.1/CVE-2015-8803_8805.patch
deleted file mode 100644
index a956f426b8..0000000000
--- a/meta/recipes-support/nettle/nettle-2.7.1/CVE-2015-8803_8805.patch
+++ /dev/null
@@ -1,71 +0,0 @@
1Upstream-Status: Backport
2https://git.lysator.liu.se/nettle/nettle/commit/c71d2c9d20eeebb985e3872e4550137209e3ce4d
3
4CVE: CVE-2015-8803
5CVE: CVE-2015-8805
6
7Same fix for both.
8
9Signed-off-by: Armin Kuster <akuster@mvista.com>
10
11Index: nettle-2.7.1/ecc-256.c
12===================================================================
13--- nettle-2.7.1.orig/ecc-256.c
14+++ nettle-2.7.1/ecc-256.c
15@@ -96,9 +96,19 @@ ecc_256_modp (const struct ecc_curve *ec
16 q2 += t + (q1 < t);
17
18 assert (q2 < 2);
19+ /*
20+ n-1 n-2 n-3 n-4
21+ +---+---+---+---+
22+ | u1| u0| u low |
23+ +---+---+---+---+
24+ - | q1(2^96-1)|
25+ +-------+---+
26+ |q2(2^.)|
27+ +-------+
28
29- /* We multiply by two low limbs of p, 2^96 - 1, so we could use
30- shifts rather than mul. */
31+ We multiply by two low limbs of p, 2^96 - 1, so we could use
32+ shifts rather than mul.
33+ */
34 t = mpn_submul_1 (rp + n - 4, ecc->p, 2, q1);
35 t += cnd_sub_n (q2, rp + n - 3, ecc->p, 1);
36 t += (-q2) & 0xffffffff;
37@@ -108,7 +118,10 @@ ecc_256_modp (const struct ecc_curve *ec
38 u0 -= t;
39 t = (u1 < cy);
40 u1 -= cy;
41- u1 += cnd_add_n (t, rp + n - 4, ecc->p, 3);
42+
43+ cy = cnd_add_n (t, rp + n - 4, ecc->p, 2);
44+ u0 += cy;
45+ u1 += (u0 < cy);
46 u1 -= (-t) & 0xffffffff;
47 }
48 rp[2] = u0;
49@@ -195,7 +208,7 @@ ecc_256_modq (const struct ecc_curve *ec
50
51 /* Conditional add of p */
52 u1 += t;
53- u2 += (t<<32) + (u0 < t);
54+ u2 += (t<<32) + (u1 < t);
55
56 t = cnd_add_n (t, rp + n - 4, ecc->q, 2);
57 u1 += t;
58Index: nettle-2.7.1/ChangeLog
59===================================================================
60--- nettle-2.7.1.orig/ChangeLog
61+++ nettle-2.7.1/ChangeLog
62@@ -1,3 +1,9 @@
63+2015-12-10 Niels Möller <nisse@lysator.liu.se>
64+
65+ * ecc-256.c (ecc_256_modp): Fixed carry propagation bug. Problem
66+ reported by Hanno Böck.
67+ (ecc_256_modq): Fixed another carry propagation bug.
68+
69 2013-05-28 Niels Möller <nisse@lysator.liu.se>
70
71 * Released nettle-2.7.1.
diff --git a/meta/recipes-support/nettle/nettle-2.7.1/CVE-2015-8804.patch b/meta/recipes-support/nettle/nettle-2.7.1/CVE-2015-8804.patch
deleted file mode 100644
index 73723a998d..0000000000
--- a/meta/recipes-support/nettle/nettle-2.7.1/CVE-2015-8804.patch
+++ /dev/null
@@ -1,272 +0,0 @@
1Upstream-Status: Backport
2 https://git.lysator.liu.se/nettle/nettle/commit/fa269b6ad06dd13c901dbd84a12e52b918a09cd7
3
4CVE: CVE-2015-8804
5Signed-off-by: Armin Kuster <akuster@mvista.com>
6
7Index: nettle-2.7.1/ChangeLog
8===================================================================
9--- nettle-2.7.1.orig/ChangeLog
10+++ nettle-2.7.1/ChangeLog
11@@ -1,3 +1,11 @@
12+2015-12-15 Niels Möller <nisse@lysator.liu.se>
13+
14+ * x86_64/ecc-384-modp.asm: Fixed carry propagation bug. Problem
15+ reported by Hanno Böck. Simplified the folding to always use
16+ non-negative carry, the old code attempted to add in a carry which
17+ could be either positive or negative, but didn't get that case
18+ right.
19+
20 2015-12-10 Niels Möller <nisse@lysator.liu.se>
21
22 * ecc-256.c (ecc_256_modp): Fixed carry propagation bug. Problem
23Index: nettle-2.7.1/x86_64/ecc-384-modp.asm
24===================================================================
25--- nettle-2.7.1.orig/x86_64/ecc-384-modp.asm
26+++ nettle-2.7.1/x86_64/ecc-384-modp.asm
27@@ -20,7 +20,7 @@ C MA 02111-1301, USA.
28 .file "ecc-384-modp.asm"
29
30 define(<RP>, <%rsi>)
31-define(<D4>, <%rax>)
32+define(<D5>, <%rax>)
33 define(<T0>, <%rbx>)
34 define(<T1>, <%rcx>)
35 define(<T2>, <%rdx>)
36@@ -35,8 +35,8 @@ define(<H4>, <%r13>)
37 define(<H5>, <%r14>)
38 define(<C2>, <%r15>)
39 define(<C0>, H5) C Overlap
40-define(<D0>, RP) C Overlap
41-define(<TMP>, H4) C Overlap
42+define(<TMP>, RP) C Overlap
43+
44
45 PROLOGUE(nettle_ecc_384_modp)
46 W64_ENTRY(2, 0)
47@@ -48,34 +48,38 @@ PROLOGUE(nettle_ecc_384_modp)
48 push %r14
49 push %r15
50
51- C First get top 2 limbs, which need folding twice
52+ C First get top 2 limbs, which need folding twice.
53+ C B^10 = B^6 + B^4 + 2^32 (B-1)B^4.
54+ C We handle the terms as follow:
55 C
56- C H5 H4
57- C -H5
58- C ------
59- C H0 D4
60+ C B^6: Folded immediatly.
61 C
62- C Then shift right, (H1,H0,D4) <-- (H0,D4) << 32
63- C and add
64+ C B^4: Delayed, added in in the next folding.
65 C
66- C H5 H4
67- C H1 H0
68- C ----------
69- C C2 H1 H0
70-
71- mov 80(RP), D4
72- mov 88(RP), H0
73- mov D4, H4
74- mov H0, H5
75- sub H0, D4
76- sbb $0, H0
77-
78- mov D4, T2
79- mov H0, H1
80- shl $32, H0
81- shr $32, T2
82+ C 2^32(B-1) B^4: Low half limb delayed until the next
83+ C folding. Top 1.5 limbs subtracted and shifter now, resulting
84+ C in 2.5 limbs. The low limb saved in D5, high 1.5 limbs added
85+ C in.
86+
87+ mov 80(RP), H4
88+ mov 88(RP), H5
89+ C Shift right 32 bits, into H1, H0
90+ mov H4, H0
91+ mov H5, H1
92+ mov H5, D5
93 shr $32, H1
94- or T2, H0
95+ shl $32, D5
96+ shr $32, H0
97+ or D5, H0
98+
99+ C H1 H0
100+ C - H1 H0
101+ C --------
102+ C H1 H0 D5
103+ mov H0, D5
104+ neg D5
105+ sbb H1, H0
106+ sbb $0, H1
107
108 xor C2, C2
109 add H4, H0
110@@ -114,118 +118,95 @@ PROLOGUE(nettle_ecc_384_modp)
111 adc H3, T5
112 adc $0, C0
113
114- C H3 H2 H1 H0 0
115- C - H4 H3 H2 H1 H0
116- C ---------------
117- C H3 H2 H1 H0 D0
118-
119- mov XREG(D4), XREG(D4)
120- mov H0, D0
121- neg D0
122- sbb H1, H0
123- sbb H2, H1
124- sbb H3, H2
125- sbb H4, H3
126- sbb $0, D4
127-
128- C Shift right. High bits are sign, to be added to C0.
129- mov D4, TMP
130- sar $32, TMP
131- shl $32, D4
132- add TMP, C0
133-
134+ C Shift left, including low half of H4
135 mov H3, TMP
136+ shl $32, H4
137 shr $32, TMP
138- shl $32, H3
139- or TMP, D4
140+ or TMP, H4
141
142 mov H2, TMP
143+ shl $32, H3
144 shr $32, TMP
145- shl $32, H2
146 or TMP, H3
147
148 mov H1, TMP
149+ shl $32, H2
150 shr $32, TMP
151- shl $32, H1
152 or TMP, H2
153
154 mov H0, TMP
155+ shl $32, H1
156 shr $32, TMP
157- shl $32, H0
158 or TMP, H1
159
160- mov D0, TMP
161- shr $32, TMP
162- shl $32, D0
163- or TMP, H0
164+ shl $32, H0
165+
166+ C H4 H3 H2 H1 H0 0
167+ C - H4 H3 H2 H1 H0
168+ C ---------------
169+ C H4 H3 H2 H1 H0 TMP
170
171- add D0, T0
172+ mov H0, TMP
173+ neg TMP
174+ sbb H1, H0
175+ sbb H2, H1
176+ sbb H3, H2
177+ sbb H4, H3
178+ sbb $0, H4
179+
180+ add TMP, T0
181 adc H0, T1
182 adc H1, T2
183 adc H2, T3
184 adc H3, T4
185- adc D4, T5
186+ adc H4, T5
187 adc $0, C0
188
189 C Remains to add in C2 and C0
190- C C0 C0<<32 (-2^32+1)C0
191- C C2 C2<<32 (-2^32+1)C2
192- C where C2 is always positive, while C0 may be -1.
193+ C Set H1, H0 = (2^96 - 2^32 + 1) C0
194 mov C0, H0
195 mov C0, H1
196- mov C0, H2
197- sar $63, C0 C Get sign
198 shl $32, H1
199- sub H1, H0 C Gives borrow iff C0 > 0
200+ sub H1, H0
201 sbb $0, H1
202- add C0, H2
203
204+ C Set H3, H2 = (2^96 - 2^32 + 1) C2
205+ mov C2, H2
206+ mov C2, H3
207+ shl $32, H3
208+ sub H3, H2
209+ sbb $0, H3
210+ add C0, H2 C No carry. Could use lea trick
211+
212+ xor C0, C0
213 add H0, T0
214 adc H1, T1
215- adc $0, H2
216- adc $0, C0
217-
218- C Set (H1 H0) <-- C2 << 96 - C2 << 32 + 1
219- mov C2, H0
220- mov C2, H1
221- shl $32, H1
222- sub H1, H0
223- sbb $0, H1
224-
225- add H2, H0
226- adc C0, H1
227- adc C2, C0
228- mov C0, H2
229- sar $63, C0
230- add H0, T2
231- adc H1, T3
232- adc H2, T4
233- adc C0, T5
234- sbb C0, C0
235+ adc H2, T2
236+ adc H3, T3
237+ adc C2, T4
238+ adc D5, T5 C Value delayed from initial folding
239+ adc $0, C0 C Use sbb and switch sign?
240
241 C Final unlikely carry
242 mov C0, H0
243 mov C0, H1
244- mov C0, H2
245- sar $63, C0
246 shl $32, H1
247 sub H1, H0
248 sbb $0, H1
249- add C0, H2
250
251 pop RP
252
253- sub H0, T0
254+ add H0, T0
255 mov T0, (RP)
256- sbb H1, T1
257+ adc H1, T1
258 mov T1, 8(RP)
259- sbb H2, T2
260+ adc C0, T2
261 mov T2, 16(RP)
262- sbb C0, T3
263+ adc $0, T3
264 mov T3, 24(RP)
265- sbb C0, T4
266+ adc $0, T4
267 mov T4, 32(RP)
268- sbb C0, T5
269+ adc $0, T5
270 mov T5, 40(RP)
271
272 pop %r15
diff --git a/meta/recipes-support/nettle/nettle-2.7.1/check-header-files-of-openssl-only-if-enable_.patch b/meta/recipes-support/nettle/nettle-2.7.1/check-header-files-of-openssl-only-if-enable_.patch
deleted file mode 100644
index 38d9107ce7..0000000000
--- a/meta/recipes-support/nettle/nettle-2.7.1/check-header-files-of-openssl-only-if-enable_.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1From c369dd7049f5a198f8b6c96fde6e294ce5146c2f Mon Sep 17 00:00:00 2001
2From: Haiqing Bai <Haiqing.Bai@windriver.com>
3Date: Fri, 9 Dec 2016 16:16:45 +0800
4Subject: [PATCH] nettle: check header files of openssl only if
5 'enable_openssl=yes'.
6
7The original configure script checks openssl header files to generate
8config.h even if 'enable_openssl' is not set to yes, this made inconsistent
9building for nettle.
10
11Upstream-Status: Pending
12Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
13---
14 configure.ac | 8 +++++---
15 1 file changed, 5 insertions(+), 3 deletions(-)
16
17diff --git a/configure.ac b/configure.ac
18index 78a3d4e..4f16a98 100644
19--- a/configure.ac
20+++ b/configure.ac
21@@ -603,9 +603,11 @@ AC_CHECK_ALIGNOF(uint64_t)
22 ALIGNOF_UINT64_T="$ac_cv_alignof_uint64_t"
23 AC_SUBST(ALIGNOF_UINT64_T)
24
25-AC_CHECK_HEADERS([openssl/blowfish.h openssl/des.h openssl/cast.h openssl/aes.h],,
26-[enable_openssl=no
27- break])
28+if test "x$enable_openssl" = "xyes"; then
29+ AC_CHECK_HEADERS([openssl/blowfish.h openssl/des.h openssl/cast.h openssl/aes.h],,
30+ [enable_openssl=no
31+ break])
32+fi
33
34 LSH_FUNC_ALLOCA
35 LSH_FUNC_STRERROR
36--
371.9.1
38
diff --git a/meta/recipes-support/nettle/nettle_2.7.1.bb b/meta/recipes-support/nettle/nettle_2.7.1.bb
deleted file mode 100644
index 2006146cfe..0000000000
--- a/meta/recipes-support/nettle/nettle_2.7.1.bb
+++ /dev/null
@@ -1,19 +0,0 @@
1require nettle.inc
2
3LICENSE = "LGPLv2.1+ & GPLv2"
4LICENSE_${PN} = "LGPLv2.1+"
5
6LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
7 file://serpent-decrypt.c;beginline=53;endline=67;md5=bcfd4745d53ca57f82907089898e390d \
8 file://serpent-set-key.c;beginline=56;endline=70;md5=bcfd4745d53ca57f82907089898e390d"
9
10SRC_URI[md5sum] = "003d5147911317931dd453520eb234a5"
11SRC_URI[sha256sum] = "bc71ebd43435537d767799e414fce88e521b7278d48c860651216e1fc6555b40"
12
13SRC_URI += "\
14 file://CVE-2015-8803_8805.patch \
15 file://CVE-2015-8804.patch \
16 file://check-header-files-of-openssl-only-if-enable_.patch \
17 "
18
19DISABLE_STATIC = ""