]> git.ipfire.org Git - ipfire-3.x.git/commitdiff
Merge remote-tracking branch 'stevee/bash-comletion'
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 23 Feb 2015 17:39:08 +0000 (18:39 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 23 Feb 2015 17:39:08 +0000 (18:39 +0100)
81 files changed:
compat-libmpc/compat-libmpc.nm [new file with mode: 0644]
coreutils/coreutils.nm
coreutils/patches/coreutils-i18n.patch
coreutils/patches/coreutils-ipfire-disabled-tests.patch
coreutils/patches/coreutils-selinux.patch [deleted file]
coreutils/patches/coreutils-selinuxmanpages.patch [deleted file]
dracut/dracut.nm
elfutils/elfutils.nm
elfutils/patches/elfutils-portability-0.161.patch [new file with mode: 0644]
elfutils/patches/elfutils-portability.patch [deleted file]
elfutils/patches/elfutils-robustify.patch [deleted file]
file/file.nm
findutils/findutils.nm
findutils/patches/findutils-4.5.10-gets.patch [deleted file]
flex/flex.nm
flex/patches/flex-2.5.36-bison-2.6.1.patch [deleted file]
gdbm/gdbm.nm
gpgme/gpgme.nm
gpgme/patches/gpgme-1.2.0-largefile.patch [deleted file]
gpgme/patches/gpgme-1.3.0-ImplicitDSOLinking.patch [deleted file]
gpgme/patches/gpgme-1.3.0-config_extras.patch [deleted file]
help2man/help2man.nm
kernel/config-arm-generic
kernel/config-arm32-generic [new file with mode: 0644]
kernel/config-arm64-generic [new file with mode: 0644]
kernel/config-armv5tel-default
kernel/config-armv7hl-default
kernel/config-generic
kernel/config-i686-default
kernel/config-x86-generic
kernel/config-x86_64-default
kernel/kernel.nm
kernel/patches/grsec-aarch64-fix1.patch0 [new file with mode: 0644]
kernel/scripts/configure
libarchive/libarchive.nm
libcap-ng/libcap-ng.nm
libcroco/libcroco.nm
libdb/libdb.nm
libedit/libedit.nm
libevent/libevent.nm
libgcrypt/libgcrypt.nm
libgpg-error/libgpg-error.nm
libmpc/libmpc.nm
libssh2/libssh2.nm
make/make.nm
make/patches/make-3.79.1-noclock_gettime.patch [deleted file]
make/patches/make-3.80-getcwd.patch [deleted file]
make/patches/make-3.81-err-reporting.patch [deleted file]
make/patches/make-3.81-fdleak.patch [deleted file]
make/patches/make-3.81-jobserver.patch [deleted file]
make/patches/make-3.81-memory.patch [deleted file]
make/patches/make-3.81-newlines.patch [deleted file]
make/patches/make-3.81-rlimit.patch [deleted file]
make/patches/make-3.81-strcpy-overlap.patch [deleted file]
make/patches/make-4.0-err-reporting.patch [new file with mode: 0644]
make/patches/make-4.0-getcwd.patch [new file with mode: 0644]
make/patches/make-4.0-j8k.patch [moved from make/patches/make-3.80-j8k.patch with 57% similarity]
make/patches/make-4.0-newlines.patch [new file with mode: 0644]
make/patches/make-4.0-noclock_gettime.patch [new file with mode: 0644]
make/patches/make-4.0-weird-shell.patch [new file with mode: 0644]
ncurses/ncurses.nm
openldap/openldap.nm
popt/popt.nm
psmisc/psmisc.nm
readline/patches/readline-6.1-audit.patch [deleted file]
readline/patches/readline-6.2-shlib.patch [deleted file]
readline/readline.nm
shadow-utils/patches/shadow-4.1.4.2-ipfire.patch [deleted file]
shadow-utils/patches/shadow-4.1.4.3-goodname.patch [deleted file]
shadow-utils/shadow-utils.nm
slang/patches/slang-2.1.4-makefile.patch [deleted file]
slang/slang.nm
sqlite/sqlite.nm
systemd/patches/0001-Make-systemctl-is-enabled-work-for-templated-units.patch [deleted file]
systemd/systemd.nm
sysvinit/patches/sysvinit-2.86-remove-utils-1.patch
sysvinit/sysvinit.nm
util-linux/pam.d/runuser [new file with mode: 0644]
util-linux/pam.d/runuser-l [new file with mode: 0644]
util-linux/util-linux.nm
xz/xz.nm

diff --git a/compat-libmpc/compat-libmpc.nm b/compat-libmpc/compat-libmpc.nm
new file mode 100644 (file)
index 0000000..123cfec
--- /dev/null
@@ -0,0 +1,67 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = compat-libmpc
+version    = 0.9
+release    = 1
+
+thisapp    = mpc-%{version}
+
+groups     = System/Libraries
+url        = http://www.multiprecision.org/
+license    = LGPLv2.1+
+summary    = Mpc is a C library for the arithmetic of complex numbers.
+
+description
+       Mpc is a C library for the arithmetic of complex numbers with
+       arbitrarily high precision and correct rounding of the result.
+       It is built upon and follows the same principles as Mpfr.
+end
+
+source_dl  = http://www.multiprecision.org/mpc/download/
+
+build
+       requires
+               gmp-devel >= 4.3.2
+               mpfr-devel >= 2.4.2
+       end
+
+       export EGREP = egrep
+
+       configure_options += \
+               --disable-static \
+               --enable-shared
+
+       test
+               make check
+       end
+
+       install
+               # Only install libraries.
+               mkdir -pv %{BUILDROOT}%{libdir}
+               install -m 644 src/.libs/libmpc.so.2.0.0 %{BUILDROOT}%{libdir}
+               ln -svf libmpc.so.2.0.0 %{BUILDROOT}%{libdir}/libmpc.so.2
+       end
+end
+
+packages
+       package %{name}
+               provides
+                       mpc = %{thisver}
+               end
+
+               obsoletes
+                       mpc-compat
+               end
+
+               conflicts
+                       mpc <= %{thisver}
+               end
+       end
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end
index f377aae606c333ca6dbf47bc6db6b68037ccf32f..af1dae7f920e7c952903ef15d620e95a88f12338 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = coreutils
-version    = 8.21
+version    = 8.23
 release    = 1
 
 groups     = System/Base
@@ -37,18 +37,18 @@ build
 
        CFLAGS += \
                -D_GNU_SOURCE=1 \
-               -fno-strict-aliasing
+               -fno-strict-aliasing \
+               -fpic
 
        configure_options += \
+               FORCE_UNSAFE_CONFIGURE=1 \
+               --enable-dependency-tracking \
                --libexecdir=%{libdir} \
-               --enable-selinux \
                --enable-largefile \
                --disable-rpath \
                --enable-install-program=arch \
                --enable-no-install-program=hostname,kill,uptime \
                --with-tty-group \
-               \
-               gl_cv_func_mknod_works=yes
 
        prepare_cmds
                autoreconf -vfi
index 0e25f49864e33d0d77612f84e93adb17ca678bcc..eda68eb2d2853e38d717aed0a30ca73331077553 100644 (file)
@@ -1,6 +1,26 @@
-diff -urNp coreutils-8.21-orig/lib/linebuffer.h coreutils-8.21/lib/linebuffer.h
---- coreutils-8.21-orig/lib/linebuffer.h       2013-01-02 13:34:46.000000000 +0100
-+++ coreutils-8.21/lib/linebuffer.h    2013-02-15 14:25:07.758469108 +0100
+Submitted by:            Matt Burgess (matthew_at_linuxfromscratch_dot_org)
+Date:                    2013-12-16
+Initial Package Version: 8.22 (Rebased for version 8.23 by bdubbs@linuxfromscratch.org))
+Upstream Status:         Rejected
+Origin:                  Based on Fedora's i18n patch at
+  http://pkgs.fedoraproject.org/cgit/coreutils.git/plain/coreutils-i18n.patch
+Description:             Fixes several i18n issues with various Coreutils programs
+
+
+diff -Naur coreutils-8.23.orig/Makefile.in coreutils-8.23/Makefile.in
+--- coreutils-8.23.orig/Makefile.in    2014-07-18 17:22:24.000000000 -0500
++++ coreutils-8.23/Makefile.in 2014-07-18 22:36:17.404066931 -0500
+@@ -5057,6 +5057,7 @@
+   tests/misc/chcon.sh                         \
+   tests/misc/chroot-credentials.sh            \
+   tests/misc/selinux.sh                               \
++  tests/misc/sort-mb-tests.sh                 \
+   tests/misc/truncate-owned-by-other.sh               \
+   tests/mkdir/writable-under-readonly.sh      \
+   tests/mkdir/smack-root.sh                   \
+diff -Naur coreutils-8.23.orig/lib/linebuffer.h coreutils-8.23/lib/linebuffer.h
+--- coreutils-8.23.orig/lib/linebuffer.h       2014-05-29 07:05:50.000000000 -0500
++++ coreutils-8.23/lib/linebuffer.h    2014-07-18 22:36:17.392067256 -0500
 @@ -21,6 +21,11 @@
  
  # include <stdio.h>
@@ -13,7 +33,7 @@ diff -urNp coreutils-8.21-orig/lib/linebuffer.h coreutils-8.21/lib/linebuffer.h
  /* A 'struct linebuffer' holds a line of text. */
  
  struct linebuffer
-@@ -28,6 +33,9 @@ struct linebuffer
+@@ -28,6 +33,9 @@
    size_t size;                  /* Allocated. */
    size_t length;                /* Used. */
    char *buffer;
@@ -23,9 +43,9 @@ diff -urNp coreutils-8.21-orig/lib/linebuffer.h coreutils-8.21/lib/linebuffer.h
  };
  
  /* Initialize linebuffer LINEBUFFER for use. */
-diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
---- coreutils-8.21-orig/src/cut.c      2013-02-05 00:40:31.000000000 +0100
-+++ coreutils-8.21/src/cut.c   2013-02-15 14:25:07.760467982 +0100
+diff -Naur coreutils-8.23.orig/src/cut.c coreutils-8.23/src/cut.c
+--- coreutils-8.23.orig/src/cut.c      2014-07-11 06:00:07.000000000 -0500
++++ coreutils-8.23/src/cut.c   2014-07-18 22:44:56.489482312 -0500
 @@ -28,6 +28,11 @@
  #include <assert.h>
  #include <getopt.h>
@@ -57,8 +77,8 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
  /* The official name of this program (e.g., no 'g' prefix).  */
  #define PROGRAM_NAME "cut"
  
-@@ -72,6 +89,52 @@
-     }                                                 \
+@@ -53,6 +70,52 @@
+     }                                                                 \
    while (0)
  
 +/* Refill the buffer BUF to get a multibyte character. */
@@ -75,7 +95,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +  while (0)
 +
 +/* Get wide character on BUFPOS. BUFPOS is not included after that.
-+   If byte sequence is not valid as a character, CONVFAIL is 1. Otherwise 0. */
++   If byte sequence is not valid as a character, CONVFAIL is true. Otherwise false. */
 +#define GET_NEXT_WC_FROM_BUFFER(WC, BUFPOS, BUFLEN, MBLENGTH, STATE, CONVFAIL) \
 +  do                                                                        \
 +    {                                                                        \
@@ -88,7 +108,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +        }                                                                \
 +                                                                        \
 +      /* Get a wide character. */                                        \
-+      CONVFAIL = 0;                                                        \
++      CONVFAIL = false;                                                        \
 +      state_bak = STATE;                                                \
 +      MBLENGTH = mbrtowc ((wchar_t *)&WC, BUFPOS, BUFLEN, &STATE);        \
 +                                                                        \
@@ -96,7 +116,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +        {                                                                \
 +        case (size_t)-1:                                                \
 +        case (size_t)-2:                                                \
-+          CONVFAIL++;                                                        \
++          CONVFAIL = true;                                                        \
 +          STATE = state_bak;                                                \
 +          /* Fall througn. */                                                \
 +                                                                        \
@@ -107,33 +127,19 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +    }                                                                        \
 +  while (0)
 +
  struct range_pair
    {
-     size_t lo;
-@@ -90,7 +153,7 @@ static char *field_1_buffer;
- /* The number of bytes allocated for FIELD_1_BUFFER.  */
- static size_t field_1_bufsize;
--/* The largest field or byte index used as an endpoint of a closed
-+/* The largest byte, character or field index used as an endpoint of a closed
-    or degenerate range specification;  this doesn't include the starting
-    index of right-open-ended ranges.  For example, with either range spec
-    '2-5,9-', '2-3,5,9-' this variable would be set to 5.  */
-@@ -102,10 +165,11 @@ static size_t eol_range_start;
- /* This is a bit vector.
-    In byte mode, which bytes to output.
-+   In character mode, which characters to output.
-    In field mode, which DELIM-separated fields to output.
--   Both bytes and fields are numbered starting with 1,
-+   Bytes, characters and fields are numbered starting with 1,
-    so the zeroth bit of this array is unused.
--   A field or byte K has been selected if
-+   A byte, character or field K has been selected if
-    (K <= MAX_RANGE_ENDPOINT and is_printable_field(K))
-     || (EOL_RANGE_START > 0 && K >= EOL_RANGE_START).  */
- static unsigned char *printable_field;
-@@ -114,15 +178,25 @@ enum operating_mode
+@@ -75,6 +138,8 @@
+ /* Number of `struct range_pair's allocated. */
+ static size_t n_rp_allocated;
++/* Length of the delimiter given as argument to -d.  */
++size_t delimlen;
+ /* Append LOW, HIGH to the list RP of range pairs, allocating additional
+    space if necessary.  Update global variable N_RP.  When allocating,
+@@ -106,15 +171,25 @@
    {
      undefined_mode,
  
@@ -144,7 +150,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +    /* Output characters that are at the given positions. */
 +    character_mode,
 +
-     /* Output the given delimeter-separated fields. */
+     /* Output the given delimiter-separated fields. */
      field_mode
    };
  
@@ -157,12 +163,12 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +   if this program runs on multibyte locale. */
 +static int force_singlebyte_mode;
 +
- /* If true do not output lines containing no delimeter characters.
+ /* If true do not output lines containing no delimiter characters.
     Otherwise, all such lines are printed.  This option is valid only
     with field mode.  */
-@@ -134,6 +208,9 @@ static bool complement;
+@@ -126,6 +201,9 @@
  
- /* The delimeter character for field mode. */
+ /* The delimiter character for field mode. */
  static unsigned char delim;
 +#if HAVE_WCHAR_H
 +static wchar_t wcdelim;
@@ -170,7 +176,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
  
  /* True if the --output-delimiter=STRING option was specified.  */
  static bool output_delimiter_specified;
-@@ -205,7 +282,7 @@ Print selected parts of lines from each 
+@@ -188,7 +266,7 @@
    -f, --fields=LIST       select only these fields;  also print any line\n\
                              that contains no delimiter character, unless\n\
                              the -s option is specified\n\
@@ -179,7 +185,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
  "), stdout);
        fputs (_("\
        --complement        complement the set of selected bytes, characters\n\
-@@ -480,6 +557,9 @@ set_fields (const char *fieldstr)
+@@ -381,6 +459,9 @@
                if (operating_mode == byte_mode)
                  error (0, 0,
                         _("byte offset %s is too large"), quote (bad_num));
@@ -189,7 +195,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
                else
                  error (0, 0,
                         _("field number %s is too large"), quote (bad_num));
-@@ -588,6 +668,77 @@ cut_bytes (FILE *stream)
+@@ -505,6 +586,82 @@
      }
  }
  
@@ -205,7 +211,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +static void
 +cut_characters_or_cut_bytes_no_split (FILE *stream)
 +{
-+  int idx;                /* number of bytes or characters in the line so far. */
++  size_t idx;                /* number of bytes or characters in the line so far. */
 +  char buf[MB_LEN_MAX + BUFSIZ];  /* For spooling a read byte sequence. */
 +  char *bufpos;                /* Next read position of BUF. */
 +  size_t buflen;        /* The length of the byte sequence in buf. */
@@ -213,7 +219,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +  size_t mblength;        /* The byte size of a multibyte character which shows
 +                           as same character as WC. */
 +  mbstate_t state;        /* State of the stream. */
-+  int convfail = 0;                /* 1, when conversion is failed. Otherwise 0. */
++  bool convfail = false;  /* true, when conversion failed. Otherwise false. */
 +  /* Whether to begin printing delimiters between ranges for the current line.
 +     Set after we've begun printing data corresponding to the first range.  */
 +  bool print_delimiter = false;
@@ -223,11 +229,14 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +  bufpos = buf;
 +  memset (&state, '\0', sizeof(mbstate_t));
 +
++  current_rp = rp;
++
 +  while (1)
 +    {
 +      REFILL_BUFFER (buf, bufpos, buflen, stream);
 +
 +      GET_NEXT_WC_FROM_BUFFER (wc, bufpos, buflen, mblength, state, convfail);
++      (void) convfail;  /* ignore unused */
 +
 +      if (wc == WEOF)
 +        {
@@ -240,20 +249,22 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +          putchar ('\n');
 +          idx = 0;
 +          print_delimiter = false;
++          current_rp = rp;
 +        }
 +      else
 +        {
-+          bool range_start;
-+          bool *rs = output_delimiter_specified ? &range_start : NULL;
-+          idx += (operating_mode == byte_mode) ? mblength : 1;
-+          if (print_kth (idx, rs))
++          next_item (&idx);
++          if (print_kth (idx))
 +            {
-+              if (rs && *rs && print_delimiter)
++              if (output_delimiter_specified)
 +                {
-+                  fwrite (output_delimiter_string, sizeof (char),
-+                         output_delimiter_length, stdout);
-+               }
-+              print_delimiter = true;
++                  if (print_delimiter && is_range_start_index (idx))
++                    {
++                      fwrite (output_delimiter_string, sizeof (char),
++                              output_delimiter_length, stdout);
++                    }
++                  print_delimiter = true;
++                }
 +              fwrite (bufpos, mblength, sizeof(char), stdout);
 +            }
 +        }
@@ -267,7 +278,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
  /* Read from stream STREAM, printing to standard output any selected fields.  */
  
  static void
-@@ -709,13 +860,195 @@ cut_fields (FILE *stream)
+@@ -649,13 +806,211 @@
      }
  }
  
@@ -276,7 +287,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +cut_fields_mb (FILE *stream)
 +{
 +  int c;
-+  unsigned int field_idx;
++  size_t field_idx;
 +  int found_any_selected_field;
 +  int buffer_first_field;
 +  int empty_input;
@@ -287,7 +298,9 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +  size_t mblength;        /* The byte size of a multibyte character which shows
 +                           as same character as WC. */
 +  mbstate_t state;        /* State of the stream. */
-+  int convfail = 0;                /* 1, when conversion is failed. Otherwise 0. */
++  bool convfail = false;  /* true, when conversion failed. Otherwise false. */
++
++  current_rp = rp;
 +
 +  found_any_selected_field = 0;
 +  field_idx = 1;
@@ -311,7 +324,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +     and the first field has been selected, or if non-delimited lines
 +     must be suppressed and the first field has *not* been selected.
 +     That is because a non-delimited line has exactly one field.  */
-+  buffer_first_field = (suppress_non_delimited ^ !print_kth (1, NULL));
++  buffer_first_field = (suppress_non_delimited ^ !print_kth (1));
 +
 +  while (1)
 +    {
@@ -361,18 +374,18 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +              continue;
 +            }
 +
-+          if (print_kth (1, NULL))
++          if (print_kth (1))
 +            {
 +              /* Print the field, but not the trailing delimiter.  */
 +              fwrite (field_1_buffer, sizeof (char), len - 1, stdout);
 +              found_any_selected_field = 1;
 +            }
-+          ++field_idx;
++          next_item (&field_idx);
 +        }
 +
 +      if (wc != WEOF)
 +        {
-+          if (print_kth (field_idx, NULL))
++          if (print_kth (field_idx))
 +            {
 +              if (found_any_selected_field)
 +                {
@@ -398,7 +411,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +                  break;
 +                }
 +
-+              if (print_kth (field_idx, NULL))
++              if (print_kth (field_idx))
 +                fwrite (bufpos, mblength, sizeof(char), stdout);
 +
 +              buflen -= mblength;
@@ -410,7 +423,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +        wc = WEOF;
 +
 +      if (!convfail && wc == wcdelim)
-+        ++field_idx;
++        next_item (&field_idx);
 +      else if (wc == WEOF || (!convfail && wc == L'\n'))
 +        {
 +          if (found_any_selected_field
@@ -419,6 +432,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +          if (wc == WEOF)
 +            break;
 +          field_idx = 1;
++          current_rp = rp;
 +          found_any_selected_field = 0;
 +        }
 +    }
@@ -447,6 +461,19 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +          break;
 +
 +        case field_mode:
++          if (delimlen == 1)
++            {
++              /* Check if we have utf8 multibyte locale, so we can use this
++                 optimization because of uniqueness of characters, which is
++                 not true for e.g. SJIS */
++              char * loc = setlocale(LC_CTYPE, NULL);
++              if (loc && (strstr (loc, "UTF-8") || strstr (loc, "utf-8") ||
++                  strstr (loc, "UTF8") || strstr (loc, "utf8")))
++                {
++                  cut_fields (stream);
++                  break;
++                }
++            }
 +          cut_fields_mb (stream);
 +          break;
 +
@@ -466,16 +493,15 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
  }
  
  /* Process file FILE to standard output.
-@@ -767,6 +1100,8 @@ main (int argc, char **argv)
+@@ -707,6 +1062,7 @@
    bool ok;
    bool delim_specified = false;
    char *spec_list_string IF_LINT ( = NULL);
 +  char mbdelim[MB_LEN_MAX + 1];
-+  size_t delimlen = 0;
  
    initialize_main (&argc, &argv);
    set_program_name (argv[0]);
-@@ -789,7 +1124,6 @@ main (int argc, char **argv)
+@@ -729,7 +1085,6 @@
        switch (optc)
          {
          case 'b':
@@ -483,7 +509,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
            /* Build the byte list. */
            if (operating_mode != undefined_mode)
              FATAL_ERROR (_("only one type of list may be specified"));
-@@ -797,6 +1131,14 @@ main (int argc, char **argv)
+@@ -737,6 +1092,14 @@
            spec_list_string = optarg;
            break;
  
@@ -498,7 +524,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
          case 'f':
            /* Build the field list. */
            if (operating_mode != undefined_mode)
-@@ -808,10 +1150,36 @@ main (int argc, char **argv)
+@@ -748,10 +1111,38 @@
          case 'd':
            /* New delimiter. */
            /* Interpret -d '' to mean 'use the NUL byte as the delimiter.'  */
@@ -524,6 +550,8 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
 +                        FATAL_ERROR (_("the delimiter must be a single character"));
 +                      memcpy (mbdelim, optarg, delimlen);
 +                      mbdelim[delimlen] = '\0';
++                      if (delimlen == 1)
++                        delim = *optarg;
 +                    }
 +                }
 +
@@ -539,7 +567,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
            break;
  
          case OUTPUT_DELIMITER_OPTION:
-@@ -824,6 +1191,7 @@ main (int argc, char **argv)
+@@ -764,6 +1155,7 @@
            break;
  
          case 'n':
@@ -547,7 +575,7 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
            break;
  
          case 's':
-@@ -873,15 +1241,34 @@ main (int argc, char **argv)
+@@ -803,15 +1195,34 @@
      }
  
    if (!delim_specified)
@@ -588,11 +616,10 @@ diff -urNp coreutils-8.21-orig/src/cut.c coreutils-8.21/src/cut.c
      }
  
    if (optind == argc)
-Binary files coreutils-8.21-orig/src/.cut.c.swp and coreutils-8.21/src/.cut.c.swp differ
-diff -urNp coreutils-8.21-orig/src/expand.c coreutils-8.21/src/expand.c
---- coreutils-8.21-orig/src/expand.c   2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/src/expand.c        2013-02-15 14:25:07.774467536 +0100
-@@ -37,12 +37,29 @@
+diff -Naur coreutils-8.23.orig/src/expand.c coreutils-8.23/src/expand.c
+--- coreutils-8.23.orig/src/expand.c   2014-07-11 06:00:07.000000000 -0500
++++ coreutils-8.23/src/expand.c        2014-07-18 22:36:17.394067191 -0500
+@@ -37,12 +37,34 @@
  #include <stdio.h>
  #include <getopt.h>
  #include <sys/types.h>
@@ -601,6 +628,11 @@ diff -urNp coreutils-8.21-orig/src/expand.c coreutils-8.21/src/expand.c
 +#if HAVE_WCHAR_H
 +# include <wchar.h>
 +#endif
++
++/* Get iswblank(). */
++#if HAVE_WCTYPE_H
++# include <wctype.h>
++#endif
 +
  #include "system.h"
  #include "error.h"
@@ -622,7 +654,7 @@ diff -urNp coreutils-8.21-orig/src/expand.c coreutils-8.21/src/expand.c
  /* The official name of this program (e.g., no 'g' prefix).  */
  #define PROGRAM_NAME "expand"
  
-@@ -357,6 +374,142 @@ expand (void)
+@@ -357,6 +379,142 @@
      }
  }
  
@@ -765,7 +797,7 @@ diff -urNp coreutils-8.21-orig/src/expand.c coreutils-8.21/src/expand.c
  int
  main (int argc, char **argv)
  {
-@@ -421,7 +574,12 @@ main (int argc, char **argv)
+@@ -421,7 +579,12 @@
  
    file_list = (optind < argc ? &argv[optind] : stdin_argv);
  
@@ -779,9 +811,9 @@ diff -urNp coreutils-8.21-orig/src/expand.c coreutils-8.21/src/expand.c
  
    if (have_read_stdin && fclose (stdin) != 0)
      error (EXIT_FAILURE, errno, "-");
-diff -urNp coreutils-8.21-orig/src/fold.c coreutils-8.21/src/fold.c
---- coreutils-8.21-orig/src/fold.c     2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/src/fold.c  2013-02-15 14:25:07.789467891 +0100
+diff -Naur coreutils-8.23.orig/src/fold.c coreutils-8.23/src/fold.c
+--- coreutils-8.23.orig/src/fold.c     2014-07-11 06:00:07.000000000 -0500
++++ coreutils-8.23/src/fold.c  2014-07-18 22:36:17.394067191 -0500
 @@ -22,12 +22,34 @@
  #include <getopt.h>
  #include <sys/types.h>
@@ -863,7 +895,7 @@ diff -urNp coreutils-8.21-orig/src/fold.c coreutils-8.21/src/fold.c
    {"spaces", no_argument, NULL, 's'},
    {"width", required_argument, NULL, 'w'},
    {GETOPT_HELP_OPTION_DECL},
-@@ -76,6 +119,7 @@ standard output.\n\
+@@ -76,6 +119,7 @@
  
        fputs (_("\
    -b, --bytes         count bytes rather than columns\n\
@@ -871,7 +903,7 @@ diff -urNp coreutils-8.21-orig/src/fold.c coreutils-8.21/src/fold.c
    -s, --spaces        break at spaces\n\
    -w, --width=WIDTH   use WIDTH columns instead of 80\n\
  "), stdout);
-@@ -93,7 +137,7 @@ standard output.\n\
+@@ -93,7 +137,7 @@
  static size_t
  adjust_column (size_t column, char c)
  {
@@ -880,7 +912,7 @@ diff -urNp coreutils-8.21-orig/src/fold.c coreutils-8.21/src/fold.c
      {
        if (c == '\b')
          {
-@@ -116,30 +160,14 @@ adjust_column (size_t column, char c)
+@@ -116,30 +160,14 @@
     to stdout, with maximum line length WIDTH.
     Return true if successful.  */
  
@@ -913,7 +945,7 @@ diff -urNp coreutils-8.21-orig/src/fold.c coreutils-8.21/src/fold.c
  
    fadvise (istream, FADVISE_SEQUENTIAL);
  
-@@ -169,6 +197,15 @@ fold_file (char const *filename, size_t 
+@@ -169,6 +197,15 @@
                bool found_blank = false;
                size_t logical_end = offset_out;
  
@@ -929,16 +961,16 @@ diff -urNp coreutils-8.21-orig/src/fold.c coreutils-8.21/src/fold.c
                /* Look for the last blank. */
                while (logical_end)
                  {
-@@ -215,11 +252,221 @@ fold_file (char const *filename, size_t 
+@@ -215,11 +252,221 @@
        line_out[offset_out++] = c;
      }
  
 -  saved_errno = errno;
 +  *saved_errno = errno;
-   if (offset_out)
-     fwrite (line_out, sizeof (char), (size_t) offset_out, stdout);
++
++  if (offset_out)
++    fwrite (line_out, sizeof (char), (size_t) offset_out, stdout);
++
 +}
 +
 +#if HAVE_MBRTOWC
@@ -1110,10 +1142,10 @@ diff -urNp coreutils-8.21-orig/src/fold.c coreutils-8.21/src/fold.c
 +    }
 +
 +  *saved_errno = errno;
-+
-+  if (offset_out)
-+    fwrite (line_out, sizeof (char), (size_t) offset_out, stdout);
-+
+   if (offset_out)
+     fwrite (line_out, sizeof (char), (size_t) offset_out, stdout);
 +}
 +#endif
 +
@@ -1122,7 +1154,7 @@ diff -urNp coreutils-8.21-orig/src/fold.c coreutils-8.21/src/fold.c
 +   Return 0 if successful, 1 if an error occurs. */
 +
 +static bool
-+fold_file (char *filename, size_t width)
++fold_file (char const *filename, size_t width)
 +{
 +  FILE *istream;
 +  int saved_errno;
@@ -1152,7 +1184,7 @@ diff -urNp coreutils-8.21-orig/src/fold.c coreutils-8.21/src/fold.c
    if (ferror (istream))
      {
        error (0, saved_errno, "%s", filename);
-@@ -252,7 +499,8 @@ main (int argc, char **argv)
+@@ -252,7 +499,8 @@
  
    atexit (close_stdout);
  
@@ -1162,7 +1194,7 @@ diff -urNp coreutils-8.21-orig/src/fold.c coreutils-8.21/src/fold.c
  
    while ((optc = getopt_long (argc, argv, shortopts, longopts, NULL)) != -1)
      {
-@@ -261,7 +509,15 @@ main (int argc, char **argv)
+@@ -261,7 +509,15 @@
        switch (optc)
          {
          case 'b':             /* Count bytes rather than columns. */
@@ -1179,9 +1211,9 @@ diff -urNp coreutils-8.21-orig/src/fold.c coreutils-8.21/src/fold.c
            break;
  
          case 's':             /* Break at word boundaries. */
-diff -urNp coreutils-8.21-orig/src/join.c coreutils-8.21/src/join.c
---- coreutils-8.21-orig/src/join.c     2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/src/join.c  2013-02-15 14:25:07.804467922 +0100
+diff -Naur coreutils-8.23.orig/src/join.c coreutils-8.23/src/join.c
+--- coreutils-8.23.orig/src/join.c     2014-07-11 06:00:07.000000000 -0500
++++ coreutils-8.23/src/join.c  2014-07-18 22:36:17.394067191 -0500
 @@ -22,18 +22,32 @@
  #include <sys/types.h>
  #include <getopt.h>
@@ -1216,7 +1248,7 @@ diff -urNp coreutils-8.21-orig/src/join.c coreutils-8.21/src/join.c
  /* The official name of this program (e.g., no 'g' prefix).  */
  #define PROGRAM_NAME "join"
  
-@@ -135,10 +149,12 @@ static struct outlist outlist_head;
+@@ -135,10 +149,12 @@
  /* Last element in 'outlist', where a new element can be added.  */
  static struct outlist *outlist_end = &outlist_head;
  
@@ -1233,7 +1265,7 @@ diff -urNp coreutils-8.21-orig/src/join.c coreutils-8.21/src/join.c
  
  /* If nonzero, check that the input is correctly ordered. */
  static enum
-@@ -262,13 +278,14 @@ xfields (struct line *line)
+@@ -269,13 +285,14 @@
    if (ptr == lim)
      return;
  
@@ -1251,7 +1283,7 @@ diff -urNp coreutils-8.21-orig/src/join.c coreutils-8.21/src/join.c
      {
        /* Skip leading blanks before the first field.  */
        while (isblank (to_uchar (*ptr)))
-@@ -292,6 +309,148 @@ xfields (struct line *line)
+@@ -299,6 +316,147 @@
    extract_field (line, ptr, lim - ptr);
  }
  
@@ -1272,7 +1304,6 @@ diff -urNp coreutils-8.21-orig/src/join.c coreutils-8.21/src/join.c
 +
 +  if (tab != NULL)
 +    {
-+      unsigned char t = tab[0];
 +      char *sep = ptr;
 +      for (; ptr < lim; ptr = sep + mblength)
 +      {
@@ -1400,7 +1431,7 @@ diff -urNp coreutils-8.21-orig/src/join.c coreutils-8.21/src/join.c
  static void
  freeline (struct line *line)
  {
-@@ -313,56 +472,130 @@ keycmp (struct line const *line1, struct
+@@ -320,56 +478,133 @@
          size_t jf_1, size_t jf_2)
  {
    /* Start of field to compare in each file.  */
@@ -1472,6 +1503,7 @@ diff -urNp coreutils-8.21-orig/src/join.c coreutils-8.21/src/join.c
 +          {
 +            mallocd = 1;
 +            copy[i] = xmalloc (len[i] + 1);
++            memset (copy[i], '\0',len[i] + 1);
 +
 +            for (j = 0; j < MIN (len[0], len[1]);)
 +              {
@@ -1494,9 +1526,11 @@ diff -urNp coreutils-8.21-orig/src/join.c coreutils-8.21/src/join.c
 +                    if (uwc != wc)
 +                      {
 +                        mbstate_t state_wc;
++                        size_t mblen;
 +
 +                        memset (&state_wc, '\0', sizeof (mbstate_t));
-+                        wcrtomb (copy[i] + j, uwc, &state_wc);
++                        mblen = wcrtomb (copy[i] + j, uwc, &state_wc);
++                        assert (mblen != (size_t)-1);
 +                      }
 +                    else
 +                      memcpy (copy[i] + j, beg[i] + j, mblength);
@@ -1526,10 +1560,10 @@ diff -urNp coreutils-8.21-orig/src/join.c coreutils-8.21/src/join.c
 -      if (hard_LC_COLLATE)
 -        return xmemcoll (beg1, len1, beg2, len2);
 -      diff = memcmp (beg1, beg2, MIN (len1, len2));
-+      copy[0] = (unsigned char *) beg[0];
-+      copy[1] = (unsigned char *) beg[1];
-     }
++      copy[0] = beg[0];
++      copy[1] = beg[1];
++    }
++
 +  if (hard_LC_COLLATE)
 +    {
 +      diff = xmemcoll ((char *) copy[0], len[0], (char *) copy[1], len[1]);
@@ -1539,14 +1573,14 @@ diff -urNp coreutils-8.21-orig/src/join.c coreutils-8.21/src/join.c
 +          free (copy[i]);
 +
 +      return diff;
-+    }
+     }
 +  diff = memcmp (copy[0], copy[1], MIN (len[0], len[1]));
 +
 +  if (mallocd)
 +    for (i = 0; i < 2; i++)
 +      free (copy[i]);
 +
-+
    if (diff)
      return diff;
 -  return len1 < len2 ? -1 : len1 != len2;
@@ -1554,7 +1588,7 @@ diff -urNp coreutils-8.21-orig/src/join.c coreutils-8.21/src/join.c
  }
  
  /* Check that successive input lines PREV and CURRENT from input file
-@@ -454,6 +687,11 @@ get_line (FILE *fp, struct line **linep,
+@@ -461,6 +696,11 @@
      }
    ++line_no[which - 1];
  
@@ -1566,7 +1600,7 @@ diff -urNp coreutils-8.21-orig/src/join.c coreutils-8.21/src/join.c
    xfields (line);
  
    if (prevline[which - 1])
-@@ -553,21 +791,28 @@ prfield (size_t n, struct line const *li
+@@ -560,21 +800,28 @@
  
  /* Output all the fields in line, other than the join field.  */
  
@@ -1598,7 +1632,7 @@ diff -urNp coreutils-8.21-orig/src/join.c coreutils-8.21/src/join.c
        prfield (i, line);
      }
  }
-@@ -578,7 +823,6 @@ static void
+@@ -585,7 +832,6 @@
  prjoin (struct line const *line1, struct line const *line2)
  {
    const struct outlist *outlist;
@@ -1606,16 +1640,16 @@ diff -urNp coreutils-8.21-orig/src/join.c coreutils-8.21/src/join.c
    size_t field;
    struct line const *line;
  
-@@ -612,7 +856,7 @@ prjoin (struct line const *line1, struct
+@@ -619,7 +865,7 @@
            o = o->next;
            if (o == NULL)
              break;
 -          putchar (output_separator);
 +          PUT_TAB_CHAR;
          }
-       putchar ('\n');
+       putchar (eolchar);
      }
-@@ -1090,21 +1334,46 @@ main (int argc, char **argv)
+@@ -1097,21 +1343,46 @@
  
          case 't':
            {
@@ -1643,7 +1677,7 @@ diff -urNp coreutils-8.21-orig/src/join.c coreutils-8.21/src/join.c
              if (! newtab)
 -              newtab = '\n'; /* '' => process the whole line.  */
 +            {
-+              newtab = "\n"; /* '' => process the whole line.  */
++              newtab = (char*)"\n"; /* '' => process the whole line.  */
 +            }
              else if (optarg[1])
                {
@@ -1671,11 +1705,11 @@ diff -urNp coreutils-8.21-orig/src/join.c coreutils-8.21/src/join.c
 +           }
            break;
  
-         case NOCHECK_ORDER_OPTION:
-diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
---- coreutils-8.21-orig/src/pr.c       2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/src/pr.c    2013-02-15 14:25:07.819467936 +0100
-@@ -312,6 +312,32 @@
+         case 'z':
+diff -Naur coreutils-8.23.orig/src/pr.c coreutils-8.23/src/pr.c
+--- coreutils-8.23.orig/src/pr.c       2014-07-11 06:00:07.000000000 -0500
++++ coreutils-8.23/src/pr.c    2014-07-18 22:36:17.395067159 -0500
+@@ -312,6 +312,24 @@
  
  #include <getopt.h>
  #include <sys/types.h>
@@ -1696,19 +1730,11 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
 +#if HAVE_WCHAR_H
 +# include <wchar.h>
 +#endif
-+
-+/* Get iswprint(). -- for wcwidth().  */
-+#if HAVE_WCTYPE_H
-+# include <wctype.h>
-+#endif
-+#if !defined iswprint && !HAVE_ISWPRINT
-+# define iswprint(wc) 1
-+#endif
 +
  #include "system.h"
  #include "error.h"
  #include "fadvise.h"
-@@ -323,6 +349,18 @@
+@@ -323,6 +341,18 @@
  #include "strftime.h"
  #include "xstrtol.h"
  
@@ -1727,7 +1753,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  /* The official name of this program (e.g., no 'g' prefix).  */
  #define PROGRAM_NAME "pr"
  
-@@ -415,7 +453,20 @@ struct COLUMN
+@@ -415,7 +445,20 @@
  
  typedef struct COLUMN COLUMN;
  
@@ -1749,7 +1775,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  static bool read_line (COLUMN *p);
  static bool print_page (void);
  static bool print_stored (COLUMN *p);
-@@ -425,6 +476,7 @@ static void print_header (void);
+@@ -425,6 +468,7 @@
  static void pad_across_to (int position);
  static void add_line_number (COLUMN *p);
  static void getoptarg (char *arg, char switch_char, char *character,
@@ -1757,7 +1783,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
                         int *number);
  static void print_files (int number_of_files, char **av);
  static void init_parameters (int number_of_files);
-@@ -438,7 +490,6 @@ static void store_char (char c);
+@@ -438,7 +482,6 @@
  static void pad_down (int lines);
  static void read_rest_of_line (COLUMN *p);
  static void skip_read (COLUMN *p, int column_number);
@@ -1765,7 +1791,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  static void cleanup (void);
  static void print_sep_string (void);
  static void separator_string (const char *optarg_S);
-@@ -450,7 +501,7 @@ static COLUMN *column_vector;
+@@ -450,7 +493,7 @@
     we store the leftmost columns contiguously in buff.
     To print a line from buff, get the index of the first character
     from line_vector[i], and print up to line_vector[i + 1]. */
@@ -1774,7 +1800,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  
  /* Index of the position in buff where the next character
     will be stored. */
-@@ -554,7 +605,7 @@ static int chars_per_column;
+@@ -554,7 +597,7 @@
  static bool untabify_input = false;
  
  /* (-e) The input tab character. */
@@ -1783,7 +1809,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  
  /* (-e) Tabstops are at chars_per_tab, 2*chars_per_tab, 3*chars_per_tab, ...
     where the leftmost column is 1. */
-@@ -564,7 +615,10 @@ static int chars_per_input_tab = 8;
+@@ -564,7 +607,10 @@
  static bool tabify_output = false;
  
  /* (-i) The output tab character. */
@@ -1795,7 +1821,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  
  /* (-i) The width of the output tab. */
  static int chars_per_output_tab = 8;
-@@ -634,7 +688,13 @@ static int line_number;
+@@ -634,7 +680,13 @@
  static bool numbered_lines = false;
  
  /* (-n) Character which follows each line number. */
@@ -1810,7 +1836,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  
  /* (-n) line counting starts with 1st line of input file (not with 1st
     line of 1st page printed). */
-@@ -687,6 +747,7 @@ static bool use_col_separator = false;
+@@ -687,6 +739,7 @@
     -a|COLUMN|-m is a 'space' and with the -J option a 'tab'. */
  static char *col_sep_string = (char *) "";
  static int col_sep_length = 0;
@@ -1818,7 +1844,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  static char *column_separator = (char *) " ";
  static char *line_separator = (char *) "\t";
  
-@@ -843,6 +904,13 @@ separator_string (const char *optarg_S)
+@@ -843,6 +896,13 @@
    col_sep_length = (int) strlen (optarg_S);
    col_sep_string = xmalloc (col_sep_length + 1);
    strcpy (col_sep_string, optarg_S);
@@ -1832,7 +1858,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  }
  
  int
-@@ -867,6 +935,21 @@ main (int argc, char **argv)
+@@ -867,6 +927,21 @@
  
    atexit (close_stdout);
  
@@ -1854,7 +1880,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
    n_files = 0;
    file_names = (argc > 1
                  ? xmalloc ((argc - 1) * sizeof (char *))
-@@ -943,8 +1026,12 @@ main (int argc, char **argv)
+@@ -943,8 +1018,12 @@
            break;
          case 'e':
            if (optarg)
@@ -1869,7 +1895,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
            /* Could check tab width > 0. */
            untabify_input = true;
            break;
-@@ -957,8 +1044,12 @@ main (int argc, char **argv)
+@@ -957,8 +1036,12 @@
            break;
          case 'i':
            if (optarg)
@@ -1884,7 +1910,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
            /* Could check tab width > 0. */
            tabify_output = true;
            break;
-@@ -985,8 +1076,8 @@ main (int argc, char **argv)
+@@ -985,8 +1068,8 @@
          case 'n':
            numbered_lines = true;
            if (optarg)
@@ -1895,7 +1921,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
            break;
          case 'N':
            skip_count = false;
-@@ -1025,7 +1116,7 @@ main (int argc, char **argv)
+@@ -1025,7 +1108,7 @@
            old_s = false;
            /* Reset an additional input of -s, -S dominates -s */
            col_sep_string = bad_cast ("");
@@ -1904,7 +1930,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
            use_col_separator = true;
            if (optarg)
              separator_string (optarg);
-@@ -1182,10 +1273,45 @@ main (int argc, char **argv)
+@@ -1182,10 +1265,45 @@
     a number. */
  
  static void
@@ -1952,7 +1978,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
    if (*arg)
      {
        long int tmp_long;
-@@ -1207,6 +1333,11 @@ static void
+@@ -1207,6 +1325,11 @@
  init_parameters (int number_of_files)
  {
    int chars_used_by_number = 0;
@@ -1964,7 +1990,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  
    lines_per_body = lines_per_page - lines_per_header - lines_per_footer;
    if (lines_per_body <= 0)
-@@ -1244,7 +1375,7 @@ init_parameters (int number_of_files)
+@@ -1244,7 +1367,7 @@
            else
              col_sep_string = column_separator;
  
@@ -1973,7 +1999,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
            use_col_separator = true;
          }
        /* It's rather pointless to define a TAB separator with column
-@@ -1274,11 +1405,11 @@ init_parameters (int number_of_files)
+@@ -1274,11 +1397,11 @@
               + TAB_WIDTH (chars_per_input_tab, chars_per_number);   */
  
        /* Estimate chars_per_text without any margin and keep it constant. */
@@ -1987,7 +2013,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  
        /* The number is part of the column width unless we are
           printing files in parallel. */
-@@ -1287,7 +1418,7 @@ init_parameters (int number_of_files)
+@@ -1287,7 +1410,7 @@
      }
  
    chars_per_column = (chars_per_line - chars_used_by_number
@@ -1996,7 +2022,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  
    if (chars_per_column < 1)
      error (EXIT_FAILURE, 0, _("page width too narrow"));
-@@ -1305,7 +1436,7 @@ init_parameters (int number_of_files)
+@@ -1305,7 +1428,7 @@
       We've to use 8 as the lower limit, if we use chars_per_default_tab = 8
       to expand a tab which is not an input_tab-char. */
    free (clump_buff);
@@ -2005,7 +2031,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  }
  \f
  /* Open the necessary files,
-@@ -1413,7 +1544,7 @@ init_funcs (void)
+@@ -1413,7 +1536,7 @@
  
    /* Enlarge p->start_position of first column to use the same form of
       padding_not_printed with all columns. */
@@ -2014,7 +2040,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  
    /* This loop takes care of all but the rightmost column. */
  
-@@ -1447,7 +1578,7 @@ init_funcs (void)
+@@ -1447,7 +1570,7 @@
          }
        else
          {
@@ -2023,7 +2049,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
            h_next = h + chars_per_column;
          }
      }
-@@ -1738,9 +1869,9 @@ static void
+@@ -1738,9 +1861,9 @@
  align_column (COLUMN *p)
  {
    padding_not_printed = p->start_position;
@@ -2035,7 +2061,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
        padding_not_printed = ANYWHERE;
      }
  
-@@ -2011,13 +2142,13 @@ store_char (char c)
+@@ -2011,13 +2134,13 @@
        /* May be too generous. */
        buff = X2REALLOC (buff, &buff_allocated);
      }
@@ -2051,7 +2077,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
    char *s;
    int num_width;
  
-@@ -2034,22 +2165,24 @@ add_line_number (COLUMN *p)
+@@ -2034,22 +2157,24 @@
        /* Tabification is assumed for multiple columns, also for n-separators,
           but 'default n-separator = TAB' hasn't been given priority over
           equal column_width also specified by POSIX. */
@@ -2080,7 +2106,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
          output_position = POS_AFTER_TAB (chars_per_output_tab,
                            output_position);
      }
-@@ -2210,7 +2343,7 @@ print_white_space (void)
+@@ -2210,7 +2335,7 @@
    while (goal - h_old > 1
           && (h_new = POS_AFTER_TAB (chars_per_output_tab, h_old)) <= goal)
      {
@@ -2089,7 +2115,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
        h_old = h_new;
      }
    while (++h_old <= goal)
-@@ -2230,6 +2363,7 @@ print_sep_string (void)
+@@ -2230,6 +2355,7 @@
  {
    char *s;
    int l = col_sep_length;
@@ -2097,7 +2123,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  
    s = col_sep_string;
  
-@@ -2243,6 +2377,7 @@ print_sep_string (void)
+@@ -2243,6 +2369,7 @@
      {
        for (; separators_not_printed > 0; --separators_not_printed)
          {
@@ -2105,7 +2131,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
            while (l-- > 0)
              {
                /* 3 types of sep_strings: spaces only, spaces and chars,
-@@ -2256,12 +2391,15 @@ print_sep_string (void)
+@@ -2256,12 +2383,15 @@
                  }
                else
                  {
@@ -2122,7 +2148,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
            /* sep_string ends with some spaces */
            if (spaces_not_printed > 0)
              print_white_space ();
-@@ -2289,7 +2427,7 @@ print_clump (COLUMN *p, int n, char *clu
+@@ -2289,7 +2419,7 @@
     required number of tabs and spaces. */
  
  static void
@@ -2131,7 +2157,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  {
    if (tabify_output)
      {
-@@ -2313,6 +2451,74 @@ print_char (char c)
+@@ -2313,6 +2443,74 @@
    putchar (c);
  }
  
@@ -2206,7 +2232,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  /* Skip to page PAGE before printing.
     PAGE may be larger than total number of pages. */
  
-@@ -2492,9 +2698,9 @@ read_line (COLUMN *p)
+@@ -2492,9 +2690,9 @@
            align_empty_cols = false;
          }
  
@@ -2218,7 +2244,25 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
            padding_not_printed = ANYWHERE;
          }
  
-@@ -2595,9 +2801,9 @@ print_stored (COLUMN *p)
+@@ -2564,7 +2762,7 @@
+   int i;
+   int line = p->current_line++;
+-  char *first = &buff[line_vector[line]];
++  unsigned char *first = &buff[line_vector[line]];
+   /* FIXME
+      UMR: Uninitialized memory read:
+      * This is occurring while in:
+@@ -2576,7 +2774,7 @@
+      xmalloc        [xmalloc.c:94]
+      init_store_cols [pr.c:1648]
+      */
+-  char *last = &buff[line_vector[line + 1]];
++  unsigned char *last = &buff[line_vector[line + 1]];
+   pad_vertically = true;
+@@ -2595,9 +2793,9 @@
          }
      }
  
@@ -2230,7 +2274,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
        padding_not_printed = ANYWHERE;
      }
  
-@@ -2610,8 +2816,8 @@ print_stored (COLUMN *p)
+@@ -2610,8 +2808,8 @@
    if (spaces_not_printed == 0)
      {
        output_position = p->start_position + end_vector[line];
@@ -2241,7 +2285,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
      }
  
    return true;
-@@ -2630,7 +2836,7 @@ print_stored (COLUMN *p)
+@@ -2630,7 +2828,7 @@
     number of characters is 1.) */
  
  static int
@@ -2250,7 +2294,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  {
    unsigned char uc = c;
    char *s = clump_buff;
-@@ -2640,10 +2846,10 @@ char_to_clump (char c)
+@@ -2640,10 +2838,10 @@
    int chars;
    int chars_per_c = 8;
  
@@ -2263,7 +2307,7 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
      {
        width = TAB_WIDTH (chars_per_c, input_position);
  
-@@ -2724,6 +2930,154 @@ char_to_clump (char c)
+@@ -2724,6 +2922,164 @@
    return chars;
  }
  
@@ -2410,7 +2454,17 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
 +      mbc_pos -= mblength;
 +    }
 +
-+  input_position += width;
++  /* Too many backspaces must put us in position 0 -- never negative. */
++  if (width < 0 && input_position == 0)
++    {
++      chars = 0;
++      input_position = 0;
++    }
++  else if (width < 0 && input_position <= -width)
++    input_position = 0;
++  else
++   input_position += width;
++
 +  return chars;
 +}
 +#endif
@@ -2418,9 +2472,9 @@ diff -urNp coreutils-8.21-orig/src/pr.c coreutils-8.21/src/pr.c
  /* We've just printed some files and need to clean up things before
     looking for more options and printing the next batch of files.
  
-diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
---- coreutils-8.21-orig/src/sort.c     2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/src/sort.c  2013-02-15 14:25:07.828467769 +0100
+diff -Naur coreutils-8.23.orig/src/sort.c coreutils-8.23/src/sort.c
+--- coreutils-8.23.orig/src/sort.c     2014-07-13 17:09:52.000000000 -0500
++++ coreutils-8.23/src/sort.c  2014-07-18 22:36:17.397067101 -0500
 @@ -29,6 +29,14 @@
  #include <sys/wait.h>
  #include <signal.h>
@@ -2436,8 +2490,13 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
  #include "system.h"
  #include "argmatch.h"
  #include "error.h"
-@@ -166,12 +174,34 @@ static int thousands_sep;
+@@ -164,14 +172,39 @@
+ /* Thousands separator; if -1, then there isn't one.  */
+ static int thousands_sep;
  
++/* True if -f is specified.  */
++static bool folding;
++
  /* Nonzero if the corresponding locales are hard.  */
  static bool hard_LC_COLLATE;
 -#if HAVE_NL_LANGINFO
@@ -2472,7 +2531,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
  /* The kind of blanks for '-b' to skip in various options. */
  enum blanktype { bl_start, bl_end, bl_both };
  
-@@ -345,13 +375,11 @@ static bool reverse;
+@@ -345,13 +378,11 @@
     they were read if all keys compare equal.  */
  static bool stable;
  
@@ -2489,7 +2548,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
  
  /* Flag to remove consecutive duplicate lines from the output.
     Only the last of a sequence of equal lines will be output. */
-@@ -783,6 +811,46 @@ reap_all (void)
+@@ -811,6 +842,46 @@
      reap (-1);
  }
  
@@ -2536,7 +2595,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
  /* Clean up any remaining temporary files.  */
  
  static void
-@@ -1223,7 +1291,7 @@ zaptemp (char const *name)
+@@ -1255,7 +1326,7 @@
    free (node);
  }
  
@@ -2545,7 +2604,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
  
  static int
  struct_month_cmp (void const *m1, void const *m2)
-@@ -1238,7 +1306,7 @@ struct_month_cmp (void const *m1, void c
+@@ -1270,7 +1341,7 @@
  /* Initialize the character class tables. */
  
  static void
@@ -2554,7 +2613,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
  {
    size_t i;
  
-@@ -1250,7 +1318,7 @@ inittables (void)
+@@ -1282,7 +1353,7 @@
        fold_toupper[i] = toupper (i);
      }
  
@@ -2563,7 +2622,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
    /* If we're not in the "C" locale, read different names for months.  */
    if (hard_LC_TIME)
      {
-@@ -1332,6 +1400,84 @@ specify_nmerge (int oi, char c, char con
+@@ -1364,6 +1435,84 @@
      xstrtol_fatal (e, oi, c, long_options, s);
  }
  
@@ -2648,7 +2707,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
  /* Specify the amount of main memory to use when sorting.  */
  static void
  specify_sort_size (int oi, char c, char const *s)
-@@ -1564,7 +1710,7 @@ buffer_linelim (struct buffer const *buf
+@@ -1597,7 +1746,7 @@
     by KEY in LINE. */
  
  static char *
@@ -2657,7 +2716,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
  {
    char *ptr = line->text, *lim = ptr + line->length - 1;
    size_t sword = key->sword;
-@@ -1573,10 +1719,10 @@ begfield (struct line const *line, struc
+@@ -1606,10 +1755,10 @@
    /* The leading field separator itself is included in a field when -t
       is absent.  */
  
@@ -2670,7 +2729,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
            ++ptr;
          if (ptr < lim)
            ++ptr;
-@@ -1602,11 +1748,70 @@ begfield (struct line const *line, struc
+@@ -1635,11 +1784,70 @@
    return ptr;
  }
  
@@ -2742,7 +2801,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
  {
    char *ptr = line->text, *lim = ptr + line->length - 1;
    size_t eword = key->eword, echar = key->echar;
-@@ -1621,10 +1826,10 @@ limfield (struct line const *line, struc
+@@ -1654,10 +1862,10 @@
       'beginning' is the first character following the delimiting TAB.
       Otherwise, leave PTR pointing at the first 'blank' character after
       the preceding field.  */
@@ -2755,7 +2814,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
            ++ptr;
          if (ptr < lim && (eword || echar))
            ++ptr;
-@@ -1670,10 +1875,10 @@ limfield (struct line const *line, struc
+@@ -1703,10 +1911,10 @@
       */
  
    /* Make LIM point to the end of (one byte past) the current field.  */
@@ -2768,7 +2827,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
        if (newlim)
          lim = newlim;
      }
-@@ -1704,6 +1909,130 @@ limfield (struct line const *line, struc
+@@ -1737,6 +1945,130 @@
    return ptr;
  }
  
@@ -2857,7 +2916,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
 +  {
 +    /* If we're skipping leading blanks, don't start counting characters
 +     *      until after skipping past any leading blanks.  */
-+    if (key->skipsblanks)
++    if (key->skipeblanks)
 +      while (ptr < lim && ismbblank (ptr, lim - ptr, &mblength))
 +        ptr += mblength;
 +
@@ -2899,7 +2958,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
  /* Fill BUF reading from FP, moving buf->left bytes from the end
     of buf->buf to the beginning first.  If EOF is reached and the
     file wasn't terminated by a newline, supply one.  Set up BUF's line
-@@ -1790,8 +2119,22 @@ fillbuf (struct buffer *buf, FILE *fp, c
+@@ -1823,8 +2155,22 @@
                    else
                      {
                        if (key->skipsblanks)
@@ -2924,7 +2983,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
                        line->keybeg = line_start;
                      }
                  }
-@@ -1912,7 +2255,7 @@ human_numcompare (char const *a, char co
+@@ -1945,7 +2291,7 @@
     hideously fast. */
  
  static int
@@ -2933,7 +2992,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
  {
    while (blanks[to_uchar (*a)])
      a++;
-@@ -1922,6 +2265,25 @@ numcompare (char const *a, char const *b
+@@ -1955,6 +2301,25 @@
    return strnumcmp (a, b, decimal_point, thousands_sep);
  }
  
@@ -2959,7 +3018,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
  /* Work around a problem whereby the long double value returned by glibc's
     strtold ("NaN", ...) contains uninitialized bits: clear all bytes of
     A and B before calling strtold.  FIXME: remove this function once
-@@ -1972,7 +2334,7 @@ general_numcompare (char const *sa, char
+@@ -2005,7 +2370,7 @@
     Return 0 if the name in S is not recognized.  */
  
  static int
@@ -2968,7 +3027,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
  {
    size_t lo = 0;
    size_t hi = MONTHS_PER_YEAR;
-@@ -2247,15 +2609,14 @@ debug_key (struct line const *line, stru
+@@ -2280,15 +2645,14 @@
            char saved = *lim;
            *lim = '\0';
  
@@ -2986,7 +3045,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
            else if (key->general_numeric)
              ignore_value (strtold (beg, &tighter_lim));
            else if (key->numeric || key->human_numeric)
-@@ -2399,7 +2760,7 @@ key_warnings (struct keyfield const *gke
+@@ -2432,7 +2796,7 @@
        bool maybe_space_aligned = !hard_LC_COLLATE && default_key_compare (key)
                                   && !(key->schar || key->echar);
        bool line_offset = key->eword == 0 && key->echar != 0; /* -k1.x,1.y  */
@@ -2995,7 +3054,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
            && ((!key->skipsblanks && !(implicit_skip || maybe_space_aligned))
                || (!key->skipsblanks && key->schar)
                || (!key->skipeblanks && key->echar)))
-@@ -2457,11 +2818,87 @@ key_warnings (struct keyfield const *gke
+@@ -2490,11 +2854,87 @@
      error (0, 0, _("option '-r' only applies to last-resort comparison"));
  }
  
@@ -3065,7 +3124,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
 +      ? monthtab[lo].val : 0);
 +
 +  if (ea && result)
-+     *ea = s + strlen (monthtab[lo].name);
++     *ea = (char*) s + strlen (monthtab[lo].name);
 +
 +  free (month);
 +  free (tmp);
@@ -3084,7 +3143,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
  {
    struct keyfield *key = keylist;
  
-@@ -2546,7 +2983,7 @@ keycompare (struct line const *a, struct
+@@ -2579,7 +3019,7 @@
            else if (key->human_numeric)
              diff = human_numcompare (ta, tb);
            else if (key->month)
@@ -3093,7 +3152,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
            else if (key->random)
              diff = compare_random (ta, tlena, tb, tlenb);
            else if (key->version)
-@@ -2662,6 +3099,181 @@ keycompare (struct line const *a, struct
+@@ -2695,6 +3135,191 @@
    return key->reverse ? -diff : diff;
  }
  
@@ -3114,45 +3173,14 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
 +  wchar_t wc_a, wc_b;
 +  mbstate_t state_a, state_b;
 +
-+  int diff;
++  int diff = 0;
 +
 +  memset (&state_a, '\0', sizeof(mbstate_t));
 +  memset (&state_b, '\0', sizeof(mbstate_t));
++  /* Ignore keys with start after end.  */
++  if (a->keybeg - a->keylim > 0)
++    return 0;
 +
-+  for (;;)
-+    {
-+      char const *translate = key->translate;
-+      bool const *ignore = key->ignore;
-+
-+      /* Find the lengths. */
-+      size_t lena = lima <= texta ? 0 : lima - texta;
-+      size_t lenb = limb <= textb ? 0 : limb - textb;
-+
-+      /* Actually compare the fields. */
-+      if (key->random)
-+        diff = compare_random (texta, lena, textb, lenb);
-+      else if (key->numeric | key->general_numeric | key->human_numeric)
-+        {
-+          char savea = *lima, saveb = *limb;
-+
-+          *lima = *limb = '\0';
-+          diff = (key->numeric ? numcompare (texta, textb)
-+                  : key->general_numeric ? general_numcompare (texta, textb)
-+                  : human_numcompare (texta, textb));
-+          *lima = savea, *limb = saveb;
-+        }
-+      else if (key->version)
-+        diff = filevercmp (texta, textb);
-+      else if (key->month)
-+        diff = getmonth (texta, lena, NULL) - getmonth (textb, lenb, NULL);
-+      else
-+        {
-+          if (ignore || translate)
-+            {
-+              char *copy_a = (char *) xmalloc (lena + 1 + lenb + 1);
-+              char *copy_b = copy_a + lena + 1;
-+              size_t new_len_a, new_len_b;
-+              size_t i, j;
 +
 +              /* Ignore and/or translate chars before comparing.  */
 +# define IGNORE_CHARS(NEW_LEN, LEN, TEXT, COPY, WC, MBLENGTH, STATE)        \
@@ -3220,21 +3248,63 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
 +      COPY[NEW_LEN] = '\0';                                                \
 +    }                                                                        \
 +  while (0)
-+              IGNORE_CHARS (new_len_a, lena, texta, copy_a,
-+                            wc_a, mblength_a, state_a);
-+              IGNORE_CHARS (new_len_b, lenb, textb, copy_b,
-+                            wc_b, mblength_b, state_b);
-+              diff = xmemcoll (copy_a, new_len_a, copy_b, new_len_b);
-+              free(copy_a);
-+            }
-+          else if (lena == 0)
-+            diff = - NONZERO (lenb);
-+          else if (lenb == 0)
-+            goto greater;
-+          else
-+            diff = xmemcoll (texta, lena, textb, lenb);
++
++      /* Actually compare the fields. */
++
++  for (;;)
++    {
++      /* Find the lengths. */
++      size_t lena = lima <= texta ? 0 : lima - texta;
++      size_t lenb = limb <= textb ? 0 : limb - textb;
++
++      char const *translate = key->translate;
++      bool const *ignore = key->ignore;
++
++      if (ignore || translate)
++        {
++          char *copy_a = (char *) xmalloc (lena + 1 + lenb + 1);
++          char *copy_b = copy_a + lena + 1;
++          size_t new_len_a, new_len_b;
++          size_t i, j;
++
++          IGNORE_CHARS (new_len_a, lena, texta, copy_a,
++                        wc_a, mblength_a, state_a);
++          IGNORE_CHARS (new_len_b, lenb, textb, copy_b,
++                        wc_b, mblength_b, state_b);
++          texta = copy_a; textb = copy_b;
++          lena = new_len_a; lenb = new_len_b;
 +        }
 +
++      if (key->random)
++        diff = compare_random (texta, lena, textb, lenb);
++      else if (key->numeric | key->general_numeric | key->human_numeric)
++        {
++          char savea = *lima, saveb = *limb;
++
++          *lima = *limb = '\0';
++          diff = (key->numeric ? numcompare (texta, textb)
++                  : key->general_numeric ? general_numcompare (texta, textb)
++                  : human_numcompare (texta, textb));
++          *lima = savea, *limb = saveb;
++        }
++      else if (key->version)
++        diff = filevercmp (texta, textb);
++      else if (key->month)
++        diff = getmonth (texta, lena, NULL) - getmonth (textb, lenb, NULL);
++      else if (lena == 0)
++        diff = - NONZERO (lenb);
++      else if (lenb == 0)
++        diff = 1;
++      else if (hard_LC_COLLATE && !folding)
++        {
++          diff = xmemcoll0 (texta, lena, textb, lenb);
++        }
++      else
++        diff = memcmp (texta, textb, MIN (lena + 1,lenb + 1));
++
++      if (ignore || translate)
++        free (texta);
++
 +      if (diff)
 +        goto not_equal;
 +
@@ -3263,19 +3333,35 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
 +        }
 +    }
 +
-+  return 0;
-+
-+greater:
-+  diff = 1;
 +not_equal:
-+  return key->reverse ? -diff : diff;
++  if (key && key->reverse)
++    return -diff;
++  else
++    return diff;
 +}
 +#endif
 +
  /* Compare two lines A and B, returning negative, zero, or positive
     depending on whether A compares less than, equal to, or greater than B. */
  
-@@ -4157,7 +4769,7 @@ main (int argc, char **argv)
+@@ -2722,7 +3347,7 @@
+     diff = - NONZERO (blen);
+   else if (blen == 0)
+     diff = 1;
+-  else if (hard_LC_COLLATE)
++  else if (hard_LC_COLLATE && !folding)
+     {
+       /* Note xmemcoll0 is a performance enhancement as
+          it will not unconditionally write '\0' after the
+@@ -4121,6 +4746,7 @@
+           break;
+         case 'f':
+           key->translate = fold_toupper;
++          folding = true;
+           break;
+         case 'g':
+           key->general_numeric = true;
+@@ -4198,7 +4824,7 @@
    initialize_exit_failure (SORT_FAILURE);
  
    hard_LC_COLLATE = hard_locale (LC_COLLATE);
@@ -3284,7 +3370,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
    hard_LC_TIME = hard_locale (LC_TIME);
  #endif
  
-@@ -4178,6 +4790,29 @@ main (int argc, char **argv)
+@@ -4219,6 +4845,29 @@
        thousands_sep = -1;
    }
  
@@ -3314,7 +3400,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
    have_read_stdin = false;
    inittables ();
  
-@@ -4452,13 +5087,34 @@ main (int argc, char **argv)
+@@ -4493,13 +5142,34 @@
  
          case 't':
            {
@@ -3353,7 +3439,7 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
                  else
                    {
                      /* Provoke with 'sort -txx'.  Complain about
-@@ -4469,9 +5125,12 @@ main (int argc, char **argv)
+@@ -4510,9 +5180,12 @@
                             quote (optarg));
                    }
                }
@@ -3368,9 +3454,9 @@ diff -urNp coreutils-8.21-orig/src/sort.c coreutils-8.21/src/sort.c
            }
            break;
  
-diff -urNp coreutils-8.21-orig/src/unexpand.c coreutils-8.21/src/unexpand.c
---- coreutils-8.21-orig/src/unexpand.c 2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/src/unexpand.c      2013-02-15 14:25:07.834467715 +0100
+diff -Naur coreutils-8.23.orig/src/unexpand.c coreutils-8.23/src/unexpand.c
+--- coreutils-8.23.orig/src/unexpand.c 2014-07-11 06:00:07.000000000 -0500
++++ coreutils-8.23/src/unexpand.c      2014-07-18 22:36:17.397067101 -0500
 @@ -38,12 +38,29 @@
  #include <stdio.h>
  #include <getopt.h>
@@ -3401,7 +3487,7 @@ diff -urNp coreutils-8.21-orig/src/unexpand.c coreutils-8.21/src/unexpand.c
  /* The official name of this program (e.g., no 'g' prefix).  */
  #define PROGRAM_NAME "unexpand"
  
-@@ -103,6 +120,210 @@ static struct option const longopts[] =
+@@ -103,6 +120,210 @@
    {NULL, 0, NULL, 0}
  };
  
@@ -3612,7 +3698,7 @@ diff -urNp coreutils-8.21-orig/src/unexpand.c coreutils-8.21/src/unexpand.c
  void
  usage (int status)
  {
-@@ -523,7 +742,12 @@ main (int argc, char **argv)
+@@ -523,7 +744,12 @@
  
    file_list = (optind < argc ? &argv[optind] : stdin_argv);
  
@@ -3626,10 +3712,10 @@ diff -urNp coreutils-8.21-orig/src/unexpand.c coreutils-8.21/src/unexpand.c
  
    if (have_read_stdin && fclose (stdin) != 0)
      error (EXIT_FAILURE, errno, "-");
-diff -urNp coreutils-8.21-orig/src/uniq.c coreutils-8.21/src/uniq.c
---- coreutils-8.21-orig/src/uniq.c     2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/src/uniq.c  2013-02-15 14:25:07.839467991 +0100
-@@ -21,6 +21,16 @@
+diff -Naur coreutils-8.23.orig/src/uniq.c coreutils-8.23/src/uniq.c
+--- coreutils-8.23.orig/src/uniq.c     2014-07-11 06:00:07.000000000 -0500
++++ coreutils-8.23/src/uniq.c  2014-07-18 22:36:17.398067074 -0500
+@@ -21,6 +21,17 @@
  #include <getopt.h>
  #include <sys/types.h>
  
@@ -3642,11 +3728,12 @@ diff -urNp coreutils-8.21-orig/src/uniq.c coreutils-8.21/src/uniq.c
 +#if HAVE_WCTYPE_H
 +# include <wctype.h>
 +#endif
++#include <assert.h>
 +
  #include "system.h"
  #include "argmatch.h"
  #include "linebuffer.h"
-@@ -32,7 +42,19 @@
+@@ -32,7 +43,19 @@
  #include "stdio--.h"
  #include "xmemcoll.h"
  #include "xstrtol.h"
@@ -3667,9 +3754,9 @@ diff -urNp coreutils-8.21-orig/src/uniq.c coreutils-8.21/src/uniq.c
  
  /* The official name of this program (e.g., no 'g' prefix).  */
  #define PROGRAM_NAME "uniq"
-@@ -108,6 +130,10 @@ static enum delimit_method const delimit
- /* Select whether/how to delimit groups of duplicate lines.  */
static enum delimit_method delimit_groups;
+@@ -143,6 +166,10 @@
+   GROUP_OPTION = CHAR_MAX + 1
};
  
 +/* Function pointers. */
 +static char *
@@ -3678,7 +3765,7 @@ diff -urNp coreutils-8.21-orig/src/uniq.c coreutils-8.21/src/uniq.c
  static struct option const longopts[] =
  {
    {"count", no_argument, NULL, 'c'},
-@@ -205,7 +231,7 @@ size_opt (char const *opt, char const *m
+@@ -251,7 +278,7 @@
     return a pointer to the beginning of the line's field to be compared. */
  
  static char * _GL_ATTRIBUTE_PURE
@@ -3687,7 +3774,7 @@ diff -urNp coreutils-8.21-orig/src/uniq.c coreutils-8.21/src/uniq.c
  {
    size_t count;
    char const *lp = line->buffer;
-@@ -225,6 +251,83 @@ find_field (struct linebuffer const *lin
+@@ -271,6 +298,83 @@
    return line->buffer + i;
  }
  
@@ -3771,7 +3858,7 @@ diff -urNp coreutils-8.21-orig/src/uniq.c coreutils-8.21/src/uniq.c
  /* Return false if two strings OLD and NEW match, true if not.
     OLD and NEW point not to the beginnings of the lines
     but rather to the beginnings of the fields to compare.
-@@ -233,6 +336,8 @@ find_field (struct linebuffer const *lin
+@@ -279,6 +383,8 @@
  static bool
  different (char *old, char *new, size_t oldlen, size_t newlen)
  {
@@ -3780,7 +3867,7 @@ diff -urNp coreutils-8.21-orig/src/uniq.c coreutils-8.21/src/uniq.c
    if (check_chars < oldlen)
      oldlen = check_chars;
    if (check_chars < newlen)
-@@ -240,14 +345,100 @@ different (char *old, char *new, size_t 
+@@ -286,15 +392,104 @@
  
    if (ignore_case)
      {
@@ -3812,8 +3899,8 @@ diff -urNp coreutils-8.21-orig/src/uniq.c coreutils-8.21/src/uniq.c
 +
 +  return xmemcoll (copy_old, oldlen, copy_new, newlen);
 +
-+}
-+
+ }
 +#if HAVE_MBRTOWC
 +static int
 +different_multi (const char *old, const char *new, size_t oldlen, size_t newlen, mbstate_t oldstate, mbstate_t newstate)
@@ -3837,6 +3924,7 @@ diff -urNp coreutils-8.21-orig/src/uniq.c coreutils-8.21/src/uniq.c
 +  for (i = 0; i < 2; i++)
 +    {
 +      copy[i] = xmalloc (len[i] + 1);
++      memset (copy[i], '\0', len[i] + 1);
 +
 +      for (j = 0, chars = 0; j < len[i] && chars < check_chars; chars++)
 +        {
@@ -3861,9 +3949,11 @@ diff -urNp coreutils-8.21-orig/src/uniq.c coreutils-8.21/src/uniq.c
 +                  if (uwc != wc)
 +                    {
 +                      mbstate_t state_wc;
++                      size_t mblen;
 +
 +                      memset (&state_wc, '\0', sizeof(mbstate_t));
-+                      wcrtomb (copy[i] + j, uwc, &state_wc);
++                      mblen = wcrtomb (copy[i] + j, uwc, &state_wc);
++                      assert (mblen != (size_t)-1);
 +                    }
 +                  else
 +                    memcpy (copy[i] + j, str[i] + j, mblength);
@@ -3881,15 +3971,16 @@ diff -urNp coreutils-8.21-orig/src/uniq.c coreutils-8.21/src/uniq.c
 +  free (copy[1]);
 +  return rc;
 +
- }
++}
 +#endif
++
  /* Output the line in linebuffer LINE to standard output
     provided that the switches say it should be output.
-@@ -303,15 +494,43 @@ check_file (const char *infile, const ch
-     {
+    MATCH is true if the line matches the previous line.
+@@ -358,19 +553,38 @@
        char *prevfield IF_LINT ( = NULL);
        size_t prevlen IF_LINT ( = 0);
+       bool first_group_printed = false;
 +#if HAVE_MBRTOWC
 +      mbstate_t prevstate;
 +
@@ -3900,37 +3991,43 @@ diff -urNp coreutils-8.21-orig/src/uniq.c coreutils-8.21/src/uniq.c
          {
            char *thisfield;
            size_t thislen;
+           bool new_group;
 +#if HAVE_MBRTOWC
 +          mbstate_t thisstate;
 +#endif
-+
            if (readlinebuffer_delim (thisline, stdin, delimiter) == 0)
              break;
            thisfield = find_field (thisline);
            thislen = thisline->length - 1 - (thisfield - thisline->buffer);
 +#if HAVE_MBRTOWC
 +          if (MB_CUR_MAX > 1)
 +            {
-+            thisstate = thisline->state;
-+
-+            if (prevline->length == 0 || different_multi
-+              (thisfield, prevfield, thislen, prevlen, thisstate, prevstate))
-+              {
-+                fwrite (thisline->buffer, sizeof (char),
-+                        thisline->length, stdout);
-+
-+                SWAP_LINES (prevline, thisline);
-+                prevfield = thisfield;
-+                prevlen = thislen;
++              thisstate = thisline->state;
++              new_group = (prevline->length == 0
++                           || different_multi (thisfield, prevfield,
++                                               thislen, prevlen,
++                                               thisstate, prevstate));
++            }
++          else
++#endif
+           new_group = (prevline->length == 0
+                        || different (thisfield, prevfield, thislen, prevlen));
+@@ -388,6 +602,10 @@
+               SWAP_LINES (prevline, thisline);
+               prevfield = thisfield;
+               prevlen = thislen;
++#if HAVE_MBRTOWC
++              if (MB_CUR_MAX > 1)
 +                prevstate = thisstate;
-+              }
-+          }
-+        else
 +#endif
-           if (prevline->length == 0
-               || different (thisfield, prevfield, thislen, prevlen))
-             {
-@@ -330,17 +549,26 @@ check_file (const char *infile, const ch
+               first_group_printed = true;
+             }
+         }
+@@ -400,17 +618,26 @@
        size_t prevlen;
        uintmax_t match_count = 0;
        bool first_delimiter = true;
@@ -3957,7 +4054,7 @@ diff -urNp coreutils-8.21-orig/src/uniq.c coreutils-8.21/src/uniq.c
            if (readlinebuffer_delim (thisline, stdin, delimiter) == 0)
              {
                if (ferror (stdin))
-@@ -349,6 +577,14 @@ check_file (const char *infile, const ch
+@@ -419,6 +646,14 @@
              }
            thisfield = find_field (thisline);
            thislen = thisline->length - 1 - (thisfield - thisline->buffer);
@@ -3972,7 +4069,7 @@ diff -urNp coreutils-8.21-orig/src/uniq.c coreutils-8.21/src/uniq.c
            match = !different (thisfield, prevfield, thislen, prevlen);
            match_count += match;
  
-@@ -381,6 +617,9 @@ check_file (const char *infile, const ch
+@@ -451,6 +686,9 @@
                SWAP_LINES (prevline, thisline);
                prevfield = thisfield;
                prevlen = thislen;
@@ -3982,7 +4079,7 @@ diff -urNp coreutils-8.21-orig/src/uniq.c coreutils-8.21/src/uniq.c
                if (!match)
                  match_count = 0;
              }
-@@ -426,6 +665,19 @@ main (int argc, char **argv)
+@@ -497,6 +735,19 @@
  
    atexit (close_stdout);
  
@@ -4002,10 +4099,10 @@ diff -urNp coreutils-8.21-orig/src/uniq.c coreutils-8.21/src/uniq.c
    skip_chars = 0;
    skip_fields = 0;
    check_chars = SIZE_MAX;
-diff -urNp coreutils-8.21-orig/tests/local.mk coreutils-8.21/tests/local.mk
---- coreutils-8.21-orig/tests/local.mk 2013-02-15 14:24:32.645654553 +0100
-+++ coreutils-8.21/tests/local.mk      2013-02-15 14:25:07.873467648 +0100
-@@ -325,6 +325,7 @@ all_tests =                                        \
+diff -Naur coreutils-8.23.orig/tests/local.mk coreutils-8.23/tests/local.mk
+--- coreutils-8.23.orig/tests/local.mk 2014-07-13 17:09:52.000000000 -0500
++++ coreutils-8.23/tests/local.mk      2014-07-18 22:36:17.398067074 -0500
+@@ -331,6 +331,7 @@
    tests/misc/sort-discrim.sh                  \
    tests/misc/sort-files0-from.pl              \
    tests/misc/sort-float.sh                    \
@@ -4013,31 +4110,39 @@ diff -urNp coreutils-8.21-orig/tests/local.mk coreutils-8.21/tests/local.mk
    tests/misc/sort-merge.pl                    \
    tests/misc/sort-merge-fdlimit.sh            \
    tests/misc/sort-month.sh                    \
-diff -urNp coreutils-8.21-orig/tests/misc/cut.pl coreutils-8.21/tests/misc/cut.pl
---- coreutils-8.21-orig/tests/misc/cut.pl      2013-02-05 00:40:31.000000000 +0100
-+++ coreutils-8.21/tests/misc/cut.pl   2013-02-15 14:27:18.974468564 +0100
-@@ -23,9 +23,10 @@ use strict;
+diff -Naur coreutils-8.23.orig/tests/misc/cut.pl coreutils-8.23/tests/misc/cut.pl
+--- coreutils-8.23.orig/tests/misc/cut.pl      2014-07-11 06:00:07.000000000 -0500
++++ coreutils-8.23/tests/misc/cut.pl   2014-07-18 22:36:17.398067074 -0500
+@@ -23,9 +23,11 @@
  # Turn off localization of executable's output.
  @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
  
 -my $mb_locale = $ENV{LOCALE_FR_UTF8};
--! defined $mb_locale || $mb_locale eq 'none'
++my $mb_locale;
++# uncommented enable multibyte paths
++$mb_locale = $ENV{LOCALE_FR_UTF8};
+ ! defined $mb_locale || $mb_locale eq 'none'
 -  and $mb_locale = 'C';
-+#my $mb_locale = $ENV{LOCALE_FR_UTF8};
-+#! defined $mb_locale || $mb_locale eq 'none'
-+#  and $mb_locale = 'C';
-+my $mb_locale = 'C';
++ and $mb_locale = 'C';
  
  my $prog = 'cut';
  my $try = "Try '$prog --help' for more information.\n";
-diff -urNp coreutils-8.21-orig/tests/misc/expand.pl coreutils-8.21/tests/misc/expand.pl
---- coreutils-8.21-orig/tests/misc/expand.pl   2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/tests/misc/expand.pl        2013-02-15 14:25:07.891468472 +0100
-@@ -23,6 +23,15 @@ use strict;
+@@ -227,6 +229,7 @@
+         my @new_t = @$t;
+         my $test_name = shift @new_t;
++        next if ($test_name =~ "newline-[12][0-9]");
+         push @new, ["$test_name-mb", @new_t, {ENV => "LC_ALL=$mb_locale"}];
+       }
+     push @Tests, @new;
+diff -Naur coreutils-8.23.orig/tests/misc/expand.pl coreutils-8.23/tests/misc/expand.pl
+--- coreutils-8.23.orig/tests/misc/expand.pl   2014-07-11 06:00:07.000000000 -0500
++++ coreutils-8.23/tests/misc/expand.pl        2014-07-18 22:36:17.399067050 -0500
+@@ -23,6 +23,15 @@
  # Turn off localization of executable's output.
  @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
  
-+# uncommented according to upstream commit enabling multibyte paths
++#comment out next line to disable multibyte tests
 +my $mb_locale = $ENV{LOCALE_FR_UTF8};
 +! defined $mb_locale || $mb_locale eq 'none'
 + and $mb_locale = 'C';
@@ -4049,7 +4154,7 @@ diff -urNp coreutils-8.21-orig/tests/misc/expand.pl coreutils-8.21/tests/misc/ex
  my @Tests =
    (
     ['t1', '--tabs=3',     {IN=>"a\tb"}, {OUT=>"a  b"}],
-@@ -31,6 +40,37 @@ my @Tests =
+@@ -31,6 +40,37 @@
     ['i2', '--tabs=3 -i', {IN=>" \ta\tb"}, {OUT=>"   a\tb"}],
    );
  
@@ -4087,41 +4192,150 @@ diff -urNp coreutils-8.21-orig/tests/misc/expand.pl coreutils-8.21/tests/misc/ex
  my $save_temps = $ENV{DEBUG};
  my $verbose = $ENV{VERBOSE};
  
-diff -urNp coreutils-8.21-orig/tests/misc/mb1.I coreutils-8.21/tests/misc/mb1.I
---- coreutils-8.21-orig/tests/misc/mb1.I       1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.21/tests/misc/mb1.I    2013-02-15 14:25:07.902467891 +0100
-@@ -0,0 +1,4 @@
-+Appleï¼ 10
-+Bananaï¼ 5
-+Citrusï¼ 20
-+Cherryï¼ 30
-diff -urNp coreutils-8.21-orig/tests/misc/mb1.X coreutils-8.21/tests/misc/mb1.X
---- coreutils-8.21-orig/tests/misc/mb1.X       1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.21/tests/misc/mb1.X    2013-02-15 14:25:07.917467426 +0100
-@@ -0,0 +1,4 @@
-+Bananaï¼ 5
-+Appleï¼ 10
-+Citrusï¼ 20
-+Cherryï¼ 30
-diff -urNp coreutils-8.21-orig/tests/misc/mb2.I coreutils-8.21/tests/misc/mb2.I
---- coreutils-8.21-orig/tests/misc/mb2.I       1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.21/tests/misc/mb2.I    2013-02-15 14:25:07.933467390 +0100
-@@ -0,0 +1,4 @@
-+Apple@AA10@@20
-+Banana@AA5@@30
-+Citrus@AA20@@5
-+Cherry@AA30@@10
-diff -urNp coreutils-8.21-orig/tests/misc/mb2.X coreutils-8.21/tests/misc/mb2.X
---- coreutils-8.21-orig/tests/misc/mb2.X       1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.21/tests/misc/mb2.X    2013-02-15 14:25:08.002467808 +0100
-@@ -0,0 +1,4 @@
-+Citrus@AA20@@5
-+Cherry@AA30@@10
-+Apple@AA10@@20
-+Banana@AA5@@30
-diff -urNp coreutils-8.21-orig/tests/misc/sort-mb-tests.sh coreutils-8.21/tests/misc/sort-mb-tests.sh
---- coreutils-8.21-orig/tests/misc/sort-mb-tests.sh    1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.21/tests/misc/sort-mb-tests.sh 2013-02-18 17:44:03.852275681 +0100
+diff -Naur coreutils-8.23.orig/tests/misc/fold.pl coreutils-8.23/tests/misc/fold.pl
+--- coreutils-8.23.orig/tests/misc/fold.pl     2014-07-11 06:00:07.000000000 -0500
++++ coreutils-8.23/tests/misc/fold.pl  2014-07-18 22:36:17.399067050 -0500
+@@ -20,9 +20,18 @@
+ (my $program_name = $0) =~ s|.*/||;
++my $prog = 'fold';
++my $try = "Try \`$prog --help' for more information.\n";
++my $inval = "$prog: invalid byte, character or field list\n$try";
++
+ # Turn off localization of executable's output.
+ @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
++# uncommented to enable multibyte paths
++my $mb_locale = $ENV{LOCALE_FR_UTF8};
++! defined $mb_locale || $mb_locale eq 'none'
++ and $mb_locale = 'C';
++
+ my @Tests =
+   (
+    ['s1', '-w2 -s', {IN=>"a\t"}, {OUT=>"a\n\t"}],
+@@ -31,9 +40,48 @@
+    ['s4', '-w4 -s', {IN=>"abc ef\n"}, {OUT=>"abc \nef\n"}],
+   );
++# Add _POSIX2_VERSION=199209 to the environment of each test
++# that uses an old-style option like +1.
++if ($mb_locale ne 'C')
++  {
++    # Duplicate each test vector, appending "-mb" to the test name and
++    # inserting {ENV => "LC_ALL=$mb_locale"} in the copy, so that we
++    # provide coverage for the distro-added multi-byte code paths.
++    my @new;
++    foreach my $t (@Tests)
++      {
++        my @new_t = @$t;
++        my $test_name = shift @new_t;
++
++        # Depending on whether fold is multi-byte-patched,
++        # it emits different diagnostics:
++        #   non-MB: invalid byte or field list
++        #   MB:     invalid byte, character or field list
++        # Adjust the expected error output accordingly.
++        if (grep {ref $_ eq 'HASH' && exists $_->{ERR} && $_->{ERR} eq $inval}
++            (@new_t))
++          {
++            my $sub = {ERR_SUBST => 's/, character//'};
++            push @new_t, $sub;
++            push @$t, $sub;
++          }
++        push @new, ["$test_name-mb", @new_t, {ENV => "LC_ALL=$mb_locale"}];
++      }
++    push @Tests, @new;
++  }
++
++@Tests = triple_test \@Tests;
++
++# Remember that triple_test creates from each test with exactly one "IN"
++# file two more tests (.p and .r suffix on name) corresponding to reading
++# input from a file and from a pipe.  The pipe-reading test would fail
++# due to a race condition about 1 in 20 times.
++# Remove the IN_PIPE version of the "output-is-input" test above.
++# The others aren't susceptible because they have three inputs each.
++@Tests = grep {$_->[0] ne 'output-is-input.p'} @Tests;
++
+ my $save_temps = $ENV{DEBUG};
+ my $verbose = $ENV{VERBOSE};
+-my $prog = 'fold';
+ my $fail = run_tests ($program_name, $prog, \@Tests, $save_temps, $verbose);
+ exit $fail;
+diff -Naur coreutils-8.23.orig/tests/misc/join.pl coreutils-8.23/tests/misc/join.pl
+--- coreutils-8.23.orig/tests/misc/join.pl     2014-07-11 06:00:07.000000000 -0500
++++ coreutils-8.23/tests/misc/join.pl  2014-07-18 22:36:17.399067050 -0500
+@@ -25,6 +25,15 @@
+ my $prog = 'join';
++my $try = "Try \`$prog --help' for more information.\n";
++my $inval = "$prog: invalid byte, character or field list\n$try";
++
++my $mb_locale;
++#Comment out next line to disable multibyte tests
++$mb_locale = $ENV{LOCALE_FR_UTF8};
++! defined $mb_locale || $mb_locale eq 'none'
++  and $mb_locale = 'C';
++
+ my $delim = chr 0247;
+ sub t_subst ($)
+ {
+@@ -326,8 +335,49 @@
+     push @Tests, $new_ent;
+   }
++# Add _POSIX2_VERSION=199209 to the environment of each test
++# that uses an old-style option like +1.
++if ($mb_locale ne 'C')
++  {
++    # Duplicate each test vector, appending "-mb" to the test name and
++    # inserting {ENV => "LC_ALL=$mb_locale"} in the copy, so that we
++    # provide coverage for the distro-added multi-byte code paths.
++    my @new;
++    foreach my $t (@Tests)
++      {
++        my @new_t = @$t;
++        my $test_name = shift @new_t;
++
++        # Depending on whether join is multi-byte-patched,
++        # it emits different diagnostics:
++        #   non-MB: invalid byte or field list
++        #   MB:     invalid byte, character or field list
++        # Adjust the expected error output accordingly.
++        if (grep {ref $_ eq 'HASH' && exists $_->{ERR} && $_->{ERR} eq $inval}
++            (@new_t))
++          {
++            my $sub = {ERR_SUBST => 's/, character//'};
++            push @new_t, $sub;
++            push @$t, $sub;
++          }
++        #Adjust the output some error messages including test_name for mb
++        if (grep {ref $_ eq 'HASH' && exists $_->{ERR}}
++             (@new_t))
++          {
++            my $sub2 = {ERR_SUBST => "s/$test_name-mb/$test_name/"};
++            push @new_t, $sub2;
++            push @$t, $sub2;
++          }
++        push @new, ["$test_name-mb", @new_t, {ENV => "LC_ALL=$mb_locale"}];
++      }
++    push @Tests, @new;
++  }
++
+ @Tests = triple_test \@Tests;
++#skip invalid-j-mb test, it is failing because of the format
++@Tests = grep {$_->[0] ne 'invalid-j-mb'} @Tests;
++
+ my $save_temps = $ENV{DEBUG};
+ my $verbose = $ENV{VERBOSE};
+diff -Naur coreutils-8.23.orig/tests/misc/sort-mb-tests.sh coreutils-8.23/tests/misc/sort-mb-tests.sh
+--- coreutils-8.23.orig/tests/misc/sort-mb-tests.sh    1969-12-31 18:00:00.000000000 -0600
++++ coreutils-8.23/tests/misc/sort-mb-tests.sh 2014-07-18 22:36:17.399067050 -0500
 @@ -0,0 +1,45 @@
 +#!/bin/sh
 +# Verify sort's multi-byte support.
@@ -4168,3 +4382,327 @@ diff -urNp coreutils-8.21-orig/tests/misc/sort-mb-tests.sh coreutils-8.21/tests/
 +compare exp out || { fail=1; cat out; }
 +
 +Exit $fail
+diff -Naur coreutils-8.23.orig/tests/misc/sort-merge.pl coreutils-8.23/tests/misc/sort-merge.pl
+--- coreutils-8.23.orig/tests/misc/sort-merge.pl       2014-07-11 06:00:07.000000000 -0500
++++ coreutils-8.23/tests/misc/sort-merge.pl    2014-07-18 22:36:17.399067050 -0500
+@@ -26,6 +26,15 @@
+ # Turn off localization of executable's output.
+ @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
++my $mb_locale;
++# uncommented according to upstream commit enabling multibyte paths
++$mb_locale = $ENV{LOCALE_FR_UTF8};
++! defined $mb_locale || $mb_locale eq 'none'
++ and $mb_locale = 'C';
++
++my $try = "Try \`$prog --help' for more information.\n";
++my $inval = "$prog: invalid byte, character or field list\n$try";
++
+ # three empty files and one that says 'foo'
+ my @inputs = (+(map{{IN=> {"empty$_"=> ''}}}1..3), {IN=> {foo=> "foo\n"}});
+@@ -77,6 +86,39 @@
+         {OUT=>$big_input}],
+     );
++# Add _POSIX2_VERSION=199209 to the environment of each test
++# that uses an old-style option like +1.
++if ($mb_locale ne 'C')
++  {
++    # Duplicate each test vector, appending "-mb" to the test name and
++    # inserting {ENV => "LC_ALL=$mb_locale"} in the copy, so that we
++    # provide coverage for the distro-added multi-byte code paths.
++    my @new;
++    foreach my $t (@Tests)
++      {
++        my @new_t = @$t;
++        my $test_name = shift @new_t;
++
++        # Depending on whether sort is multi-byte-patched,
++        # it emits different diagnostics:
++        #   non-MB: invalid byte or field list
++        #   MB:     invalid byte, character or field list
++        # Adjust the expected error output accordingly.
++        if (grep {ref $_ eq 'HASH' && exists $_->{ERR} && $_->{ERR} eq $inval}
++            (@new_t))
++          {
++            my $sub = {ERR_SUBST => 's/, character//'};
++            push @new_t, $sub;
++            push @$t, $sub;
++          }
++        next if ($test_name =~ "nmerge-.");
++        push @new, ["$test_name-mb", @new_t, {ENV => "LC_ALL=$mb_locale"}];
++      }
++    push @Tests, @new;
++  }
++
++@Tests = triple_test \@Tests;
++
+ my $save_temps = $ENV{DEBUG};
+ my $verbose = $ENV{VERBOSE};
+diff -Naur coreutils-8.23.orig/tests/misc/sort.pl coreutils-8.23/tests/misc/sort.pl
+--- coreutils-8.23.orig/tests/misc/sort.pl     2014-07-11 06:00:07.000000000 -0500
++++ coreutils-8.23/tests/misc/sort.pl  2014-07-18 22:36:17.400067026 -0500
+@@ -24,10 +24,15 @@
+ # Turn off localization of executable's output.
+ @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
+-my $mb_locale = $ENV{LOCALE_FR_UTF8};
++my $mb_locale;
++#Comment out next line to disable multibyte tests
++$mb_locale = $ENV{LOCALE_FR_UTF8};
+ ! defined $mb_locale || $mb_locale eq 'none'
+   and $mb_locale = 'C';
++my $try = "Try \`$prog --help' for more information.\n";
++my $inval = "$prog: invalid byte, character or field list\n$try";
++
+ # Since each test is run with a file name and with redirected stdin,
+ # the name in the diagnostic is either the file name or "-".
+ # Normalize each diagnostic to use '-'.
+@@ -415,6 +420,37 @@
+       }
+   }
++if ($mb_locale ne 'C')
++   {
++    # Duplicate each test vector, appending "-mb" to the test name and
++    # inserting {ENV => "LC_ALL=$mb_locale"} in the copy, so that we
++    # provide coverage for the distro-added multi-byte code paths.
++    my @new;
++    foreach my $t (@Tests)
++       {
++        my @new_t = @$t;
++        my $test_name = shift @new_t;
++
++        # Depending on whether sort is multi-byte-patched,
++        # it emits different diagnostics:
++        #   non-MB: invalid byte or field list
++        #   MB:     invalid byte, character or field list
++        # Adjust the expected error output accordingly.
++        if (grep {ref $_ eq 'HASH' && exists $_->{ERR} && $_->{ERR} eq $inval}
++            (@new_t))
++          {
++            my $sub = {ERR_SUBST => 's/, character//'};
++            push @new_t, $sub;
++            push @$t, $sub;
++          }
++        #disable several failing tests until investigation, disable all tests with envvars set
++        next if (grep {ref $_ eq 'HASH' && exists $_->{ENV}} (@new_t));
++        next if ($test_name =~ "18g" or $test_name =~ "sort-numeric" or $test_name =~ "08[ab]" or $test_name =~ "03[def]" or $test_name =~ "h4" or $test_name =~ "n1" or $test_name =~ "2[01]a");
++        push @new, ["$test_name-mb", @new_t, {ENV => "LC_ALL=$mb_locale"}];
++       }
++    push @Tests, @new;
++   }
++
+ @Tests = triple_test \@Tests;
+ # Remember that triple_test creates from each test with exactly one "IN"
+@@ -424,6 +460,7 @@
+ # Remove the IN_PIPE version of the "output-is-input" test above.
+ # The others aren't susceptible because they have three inputs each.
+ @Tests = grep {$_->[0] ne 'output-is-input.p'} @Tests;
++@Tests = grep {$_->[0] ne 'output-is-input-mb.p'} @Tests;
+ my $save_temps = $ENV{DEBUG};
+ my $verbose = $ENV{VERBOSE};
+diff -Naur coreutils-8.23.orig/tests/misc/unexpand.pl coreutils-8.23/tests/misc/unexpand.pl
+--- coreutils-8.23.orig/tests/misc/unexpand.pl 2014-07-11 06:00:07.000000000 -0500
++++ coreutils-8.23/tests/misc/unexpand.pl      2014-07-18 22:36:17.400067026 -0500
+@@ -27,6 +27,14 @@
+ my $prog = 'unexpand';
++# comment out next line to disable multibyte tests
++my $mb_locale = $ENV{LOCALE_FR_UTF8};
++! defined $mb_locale || $mb_locale eq 'none'
++ and $mb_locale = 'C';
++
++my $try = "Try \`$prog --help' for more information.\n";
++my $inval = "$prog: invalid byte, character or field list\n$try";
++
+ my @Tests =
+     (
+      ['a1', {IN=> ' 'x 1 ."y\n"}, {OUT=> ' 'x 1 ."y\n"}],
+@@ -92,6 +100,37 @@
+       {EXIT => 1}, {ERR => "$prog: tab stop value is too large\n"}],
+     );
++if ($mb_locale ne 'C')
++  {
++    # Duplicate each test vector, appending "-mb" to the test name and
++    # inserting {ENV => "LC_ALL=$mb_locale"} in the copy, so that we
++    # provide coverage for the distro-added multi-byte code paths.
++    my @new;
++    foreach my $t (@Tests)
++      {
++        my @new_t = @$t;
++        my $test_name = shift @new_t;
++
++        # Depending on whether unexpand is multi-byte-patched,
++        # it emits different diagnostics:
++        #   non-MB: invalid byte or field list
++        #   MB:     invalid byte, character or field list
++        # Adjust the expected error output accordingly.
++        if (grep {ref $_ eq 'HASH' && exists $_->{ERR} && $_->{ERR} eq $inval}
++            (@new_t))
++          {
++            my $sub = {ERR_SUBST => 's/, character//'};
++            push @new_t, $sub;
++            push @$t, $sub;
++          }
++        next if ($test_name =~ 'b-1');
++        push @new, ["$test_name-mb", @new_t, {ENV => "LC_ALL=$mb_locale"}];
++      }
++    push @Tests, @new;
++  }
++
++@Tests = triple_test \@Tests;
++
+ my $save_temps = $ENV{DEBUG};
+ my $verbose = $ENV{VERBOSE};
+diff -Naur coreutils-8.23.orig/tests/misc/uniq.pl coreutils-8.23/tests/misc/uniq.pl
+--- coreutils-8.23.orig/tests/misc/uniq.pl     2014-07-11 06:00:07.000000000 -0500
++++ coreutils-8.23/tests/misc/uniq.pl  2014-07-18 22:36:17.400067026 -0500
+@@ -23,9 +23,17 @@
+ my $prog = 'uniq';
+ my $try = "Try '$prog --help' for more information.\n";
++my $inval = "$prog: invalid byte, character or field list\n$try";
++
+ # Turn off localization of executable's output.
+ @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
++my $mb_locale;
++#Comment out next line to disable multibyte tests
++$mb_locale = $ENV{LOCALE_FR_UTF8};
++! defined $mb_locale || $mb_locale eq 'none'
++  and $mb_locale = 'C';
++
+ # When possible, create a "-z"-testing variant of each test.
+ sub add_z_variants($)
+ {
+@@ -261,6 +269,53 @@
+       and push @$t, {ENV=>'_POSIX2_VERSION=199209'};
+   }
++if ($mb_locale ne 'C')
++  {
++    # Duplicate each test vector, appending "-mb" to the test name and
++    # inserting {ENV => "LC_ALL=$mb_locale"} in the copy, so that we
++    # provide coverage for the distro-added multi-byte code paths.
++    my @new;
++    foreach my $t (@Tests)
++      {
++        my @new_t = @$t;
++        my $test_name = shift @new_t;
++
++        # Depending on whether uniq is multi-byte-patched,
++        # it emits different diagnostics:
++        #   non-MB: invalid byte or field list
++        #   MB:     invalid byte, character or field list
++        # Adjust the expected error output accordingly.
++        if (grep {ref $_ eq 'HASH' && exists $_->{ERR} && $_->{ERR} eq $inval}
++            (@new_t))
++          {
++            my $sub = {ERR_SUBST => 's/, character//'};
++            push @new_t, $sub;
++            push @$t, $sub;
++          }
++        # In test #145, replace the each â€˜...’ by '...'.
++        if ($test_name =~ "145")
++          {
++            my $sub = { ERR_SUBST => "s/‘([^’]+)’/'\$1'/g"};
++            push @new_t, $sub;
++            push @$t, $sub;
++          }
++        next if (   $test_name =~ "schar"
++                 or $test_name =~ "^obs-plus"
++                 or $test_name =~ "119");
++        push @new, ["$test_name-mb", @new_t, {ENV => "LC_ALL=$mb_locale"}];
++      }
++    push @Tests, @new;
++   }
++
++# Remember that triple_test creates from each test with exactly one "IN"
++# file two more tests (.p and .r suffix on name) corresponding to reading
++# input from a file and from a pipe.  The pipe-reading test would fail
++# due to a race condition about 1 in 20 times.
++# Remove the IN_PIPE version of the "output-is-input" test above.
++# The others aren't susceptible because they have three inputs each.
++
++@Tests = grep {$_->[0] ne 'output-is-input.p'} @Tests;
++
+ @Tests = add_z_variants \@Tests;
+ @Tests = triple_test \@Tests;
+diff -Naur coreutils-8.23.orig/tests/pr/pr-tests.pl coreutils-8.23/tests/pr/pr-tests.pl
+--- coreutils-8.23.orig/tests/pr/pr-tests.pl   2014-07-11 06:00:07.000000000 -0500
++++ coreutils-8.23/tests/pr/pr-tests.pl        2014-07-18 22:36:17.401067000 -0500
+@@ -23,6 +23,15 @@
+ my $prog = 'pr';
++my $mb_locale;
++#Uncomment the following line to enable multibyte tests
++$mb_locale = $ENV{LOCALE_FR_UTF8};
++! defined $mb_locale || $mb_locale eq 'none'
++  and $mb_locale = 'C';
++
++my $try = "Try \`$prog --help' for more information.\n";
++my $inval = "$prog: invalid byte, character or field list\n$try";
++
+ my @tv = (
+ # -b option is no longer an official option. But it's still working to
+@@ -466,8 +475,48 @@
+     {IN=>{3=>"x\ty\tz\n"}},
+      {OUT=>join("\t", qw(a b c m n o x y z)) . "\n"} ];
++# Add _POSIX2_VERSION=199209 to the environment of each test
++# that uses an old-style option like +1.
++if ($mb_locale ne 'C')
++  {
++    # Duplicate each test vector, appending "-mb" to the test name and
++    # inserting {ENV => "LC_ALL=$mb_locale"} in the copy, so that we
++    # provide coverage for the distro-added multi-byte code paths.
++    my @new;
++    foreach my $t (@Tests)
++      {
++        my @new_t = @$t;
++        my $test_name = shift @new_t;
++
++        # Depending on whether pr is multi-byte-patched,
++        # it emits different diagnostics:
++        #   non-MB: invalid byte or field list
++        #   MB:     invalid byte, character or field list
++        # Adjust the expected error output accordingly.
++        if (grep {ref $_ eq 'HASH' && exists $_->{ERR} && $_->{ERR} eq $inval}
++            (@new_t))
++          {
++            my $sub = {ERR_SUBST => 's/, character//'};
++            push @new_t, $sub;
++            push @$t, $sub;
++          }
++        #temporarily skip some failing tests
++        next if ($test_name =~ "col-0" or $test_name =~ "col-inval");
++        push @new, ["$test_name-mb", @new_t, {ENV => "LC_ALL=$mb_locale"}];
++      }
++    push @Tests, @new;
++  }
++
+ @Tests = triple_test \@Tests;
++# Remember that triple_test creates from each test with exactly one "IN"
++# file two more tests (.p and .r suffix on name) corresponding to reading
++# input from a file and from a pipe.  The pipe-reading test would fail
++# due to a race condition about 1 in 20 times.
++# Remove the IN_PIPE version of the "output-is-input" test above.
++# The others aren't susceptible because they have three inputs each.
++@Tests = grep {$_->[0] ne 'output-is-input.p'} @Tests;
++
+ my $save_temps = $ENV{DEBUG};
+ my $verbose = $ENV{VERBOSE};
index d77afb3d9db70807c09e5bb2059bf91e08516d6b..648e6e3487fcbbaf2f1e319b9712a4ad8ea14b66 100644 (file)
@@ -1,53 +1,7 @@
-diff -Nur b/gnulib-tests/gnulib.mk a/gnulib-tests/gnulib.mk
---- b/gnulib-tests/gnulib.mk   2013-02-07 17:58:44.000000000 +0100
-+++ a/gnulib-tests/gnulib.mk   2013-04-01 20:59:40.550543124 +0200
-@@ -524,10 +524,10 @@
- ## begin gnulib module fdutimensat-tests
--TESTS += test-fdutimensat
--check_PROGRAMS += test-fdutimensat
--test_fdutimensat_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) @LIBINTL@
--EXTRA_DIST += nap.h test-futimens.h test-lutimens.h test-utimens.h test-utimens-common.h test-fdutimensat.c macros.h
-+#TESTS += test-fdutimensat
-+#check_PROGRAMS += test-fdutimensat
-+#test_fdutimensat_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) @LIBINTL@
-+#EXTRA_DIST += nap.h test-futimens.h test-lutimens.h test-utimens.h test-utimens-common.h test-fdutimensat.c macros.h
- ## end   gnulib module fdutimensat-tests
-@@ -2438,19 +2438,19 @@
- ## begin gnulib module utimens-tests
--TESTS += test-utimens
--check_PROGRAMS += test-utimens
--test_utimens_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) @LIBINTL@
--EXTRA_DIST += nap.h test-futimens.h test-lutimens.h test-utimens.h test-utimens-common.h test-utimens.c macros.h
-+#TESTS += test-utimens
-+#check_PROGRAMS += test-utimens
-+#test_utimens_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) @LIBINTL@
-+#EXTRA_DIST += nap.h test-futimens.h test-lutimens.h test-utimens.h test-utimens-common.h test-utimens.c macros.h
- ## end   gnulib module utimens-tests
- ## begin gnulib module utimensat-tests
--TESTS += test-utimensat
--check_PROGRAMS += test-utimensat
--test_utimensat_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) @LIBINTL@
--EXTRA_DIST += nap.h test-lutimens.h test-utimens.h test-utimens-common.h test-utimensat.c signature.h macros.h
-+#TESTS += test-utimensat
-+#check_PROGRAMS += test-utimensat
-+#test_utimensat_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) @LIBINTL@
-+#EXTRA_DIST += nap.h test-lutimens.h test-utimens.h test-utimens-common.h test-utimensat.c signature.h macros.h
- ## end   gnulib module utimensat-tests
-diff -Nur b/tests/local.mk a/tests/local.mk
---- b/tests/local.mk   2013-02-11 11:30:12.000000000 +0100
-+++ a/tests/local.mk   2013-04-01 19:42:42.212419701 +0200
-@@ -108,7 +108,6 @@
+diff -Nur coreutils-8.23-orig/tests/local.mk coreutils-8.23/tests/local.mk
+--- coreutils-8.23-orig/tests/local.mk 2014-07-14 00:09:52.000000000 +0200
++++ coreutils-8.23/tests/local.mk      2015-01-23 21:44:03.355661943 +0100
+@@ -107,7 +107,6 @@
  
  all_root_tests =                              \
    tests/chown/basic.sh                                \
@@ -55,28 +9,25 @@ diff -Nur b/tests/local.mk a/tests/local.mk
    tests/cp/preserve-gid.sh                    \
    tests/cp/special-bits.sh                    \
    tests/cp/cp-mv-enotsup-xattr.sh             \
-@@ -274,7 +273,6 @@
-   tests/misc/groups-version.sh                        \
-   tests/misc/head-c.sh                                \
-   tests/misc/head-pos.sh                      \
--  tests/misc/id-context.sh                    \
-   tests/misc/id-groups.sh                     \
-   tests/misc/id-setgid.sh                     \
-   tests/misc/md5sum.pl                                \
-@@ -328,7 +326,6 @@
-   tests/misc/sort-merge.pl                    \
-   tests/misc/sort-merge-fdlimit.sh            \
-   tests/misc/sort-month.sh                    \
--  tests/misc/sort-exit-early.sh                       \
-   tests/misc/sort-rand.sh                     \
-   tests/misc/sort-spinlock-abuse.sh           \
-   tests/misc/sort-stale-thread-mem.sh         \
-@@ -503,12 +500,10 @@
+@@ -121,8 +120,6 @@
+   tests/install/install-C-root.sh             \
+   tests/ls/capability.sh                      \
+   tests/ls/nameless-uid.sh                    \
+-  tests/misc/chcon.sh                         \
+-  tests/misc/chroot-credentials.sh            \
+   tests/misc/selinux.sh                               \
+   tests/misc/truncate-owned-by-other.sh               \
+   tests/mkdir/writable-under-readonly.sh      \
+@@ -517,8 +514,6 @@
    tests/du/trailing-slash.sh                  \
    tests/du/two-args.sh                                \
    tests/id/gnu-zero-uids.sh                   \
 -  tests/id/no-context.sh                      \
-   tests/install/basic-1.sh                    \
+-  tests/id/context.sh                         \
+   tests/id/uid.sh                             \
+   tests/id/setgid.sh                          \
+   tests/id/zero.sh                            \
+@@ -527,7 +522,6 @@
    tests/install/create-leading.sh             \
    tests/install/d-slashdot.sh                 \
    tests/install/install-C.sh                  \
@@ -84,3 +35,11 @@ diff -Nur b/tests/local.mk a/tests/local.mk
    tests/install/strip-program.sh              \
    tests/install/trap.sh                               \
    tests/ln/backup-1.sh                                \
+@@ -579,7 +573,6 @@
+   tests/mkdir/parents.sh                      \
+   tests/mkdir/perm.sh                         \
+   tests/mkdir/selinux.sh                      \
+-  tests/mkdir/restorecon.sh                   \
+   tests/mkdir/special-1.sh                    \
+   tests/mkdir/t-slash.sh                      \
+   tests/mkdir/smack-no-root.sh                        \
diff --git a/coreutils/patches/coreutils-selinux.patch b/coreutils/patches/coreutils-selinux.patch
deleted file mode 100644 (file)
index a151acb..0000000
+++ /dev/null
@@ -1,656 +0,0 @@
-diff -urNp coreutils-8.21-orig/configure.ac coreutils-8.21/configure.ac
---- coreutils-8.21-orig/configure.ac   2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/configure.ac        2013-02-15 14:31:58.937482694 +0100
-@@ -204,6 +204,13 @@ if test "$gl_gcc_warnings" = yes; then
-   AC_SUBST([GNULIB_TEST_WARN_CFLAGS])
- fi
-+dnl Give the chance to enable SELINUX
-+AC_ARG_ENABLE(selinux, dnl
-+[  --enable-selinux              Enable use of the SELINUX libraries],
-+[AC_DEFINE(WITH_SELINUX, 1, [Define if you want to use SELINUX])
-+LIB_SELINUX="-lselinux"
-+AC_SUBST(LIB_SELINUX)])
-+
- AC_FUNC_FORK
- optional_bin_progs=
-diff -urNp coreutils-8.21-orig/init.cfg coreutils-8.21/init.cfg
---- coreutils-8.21-orig/init.cfg       2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/init.cfg    2013-02-15 14:31:58.957469955 +0100
-@@ -308,8 +308,8 @@ require_selinux_()
-   # Independent of whether SELinux is enabled system-wide,
-   # the current file system may lack SELinux support.
--  case $(ls -Zd .) in
--    '? .'|'unlabeled .')
-+  case $(ls -Zd . | cut -f4 -d" ") in
-+    '?'|'unlabeled')
-       skip_ "this system (or maybe just" \
-         "the current file system) lacks SELinux support"
-     ;;
-diff -urNp coreutils-8.21-orig/man/chcon.x coreutils-8.21/man/chcon.x
---- coreutils-8.21-orig/man/chcon.x    2011-08-23 15:44:01.000000000 +0200
-+++ coreutils-8.21/man/chcon.x 2013-02-15 14:31:58.937482694 +0100
-@@ -1,4 +1,4 @@
- [NAME]
--chcon \- change file security context
-+chcon \- change file SELinux security context
- [DESCRIPTION]
- .\" Add any additional description here
-diff -urNp coreutils-8.21-orig/man/runcon.x coreutils-8.21/man/runcon.x
---- coreutils-8.21-orig/man/runcon.x   2011-08-23 15:44:01.000000000 +0200
-+++ coreutils-8.21/man/runcon.x        2013-02-15 14:31:58.938486496 +0100
-@@ -1,5 +1,5 @@
- [NAME]
--runcon \- run command with specified security context
-+runcon \- run command with specified SELinux security context
- [DESCRIPTION]
- Run COMMAND with completely-specified CONTEXT, or with current or
- transitioned security context modified by one or more of LEVEL,
-diff -urNp coreutils-8.21-orig/src/chcon.c coreutils-8.21/src/chcon.c
---- coreutils-8.21-orig/src/chcon.c    2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/src/chcon.c 2013-02-15 14:31:58.939469828 +0100
-@@ -355,7 +355,7 @@ Usage: %s [OPTION]... CONTEXT FILE...\n\
- "),
-         program_name, program_name, program_name);
-       fputs (_("\
--Change the security context of each FILE to CONTEXT.\n\
-+Change the SELinux security context of each FILE to CONTEXT.\n\
- With --reference, change the security context of each FILE to that of RFILE.\n\
- "), stdout);
-diff -urNp coreutils-8.21-orig/src/copy.c coreutils-8.21/src/copy.c
---- coreutils-8.21-orig/src/copy.c     2013-02-07 10:37:05.000000000 +0100
-+++ coreutils-8.21/src/copy.c  2013-02-15 14:31:58.941467872 +0100
-@@ -2315,6 +2315,8 @@ copy_internal (char const *src_name, cha
-         {
-           /* Here, we are crossing a file system boundary and cp's -x option
-              is in effect: so don't copy the contents of this directory. */
-+        if (x->preserve_security_context)
-+           restore_default_fscreatecon_or_die ();
-         }
-       else
-         {
-diff -urNp coreutils-8.21-orig/src/copy.h coreutils-8.21/src/copy.h
---- coreutils-8.21-orig/src/copy.h     2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/src/copy.h  2013-02-15 14:31:58.943470982 +0100
-@@ -159,6 +159,9 @@ struct cp_options
-   bool preserve_timestamps;
-   bool explicit_no_preserve_mode;
-+  /* If true, attempt to set specified security context */
-+  bool set_security_context;
-+
-   /* Enabled for mv, and for cp by the --preserve=links option.
-      If true, attempt to preserve in the destination files any
-      logical hard links between the source files.  If used with cp's
-diff -urNp coreutils-8.21-orig/src/cp.c coreutils-8.21/src/cp.c
---- coreutils-8.21-orig/src/cp.c       2013-02-07 10:37:05.000000000 +0100
-+++ coreutils-8.21/src/cp.c    2013-02-15 14:31:58.945468929 +0100
-@@ -141,6 +141,7 @@ static struct option const long_opts[] =
-   {"target-directory", required_argument, NULL, 't'},
-   {"update", no_argument, NULL, 'u'},
-   {"verbose", no_argument, NULL, 'v'},
-+  {"context", required_argument, NULL, 'Z'},
-   {GETOPT_HELP_OPTION_DECL},
-   {GETOPT_VERSION_OPTION_DECL},
-   {NULL, 0, NULL, 0}
-@@ -201,6 +202,9 @@ Copy SOURCE to DEST, or multiple SOURCE(
-                                  all\n\
- "), stdout);
-       fputs (_("\
-+  -c                           same as --preserve=context\n\
-+"), stdout);
-+      fputs (_("\
-       --no-preserve=ATTR_LIST  don't preserve the specified attributes\n\
-       --parents                use full source file name under DIRECTORY\n\
- "), stdout);
-@@ -227,6 +231,7 @@ Copy SOURCE to DEST, or multiple SOURCE(
-                                  destination file is missing\n\
-   -v, --verbose                explain what is being done\n\
-   -x, --one-file-system        stay on this file system\n\
-+  -Z, --context=CONTEXT        set security context of copy to CONTEXT\n\
- "), stdout);
-       fputs (HELP_OPTION_DESCRIPTION, stdout);
-       fputs (VERSION_OPTION_DESCRIPTION, stdout);
-@@ -784,6 +789,7 @@ cp_option_init (struct cp_options *x)
-   x->explicit_no_preserve_mode = false;
-   x->preserve_security_context = false;
-   x->require_preserve_context = false;
-+  x->set_security_context = false;
-   x->preserve_xattr = false;
-   x->reduce_diagnostics = false;
-   x->require_preserve_xattr = false;
-@@ -933,7 +939,7 @@ main (int argc, char **argv)
-      we'll actually use backup_suffix_string.  */
-   backup_suffix_string = getenv ("SIMPLE_BACKUP_SUFFIX");
--  while ((c = getopt_long (argc, argv, "abdfHilLnprst:uvxPRS:T",
-+  while ((c = getopt_long (argc, argv, "abcdfHilLnprst:uvxPRS:TZ:",
-                            long_opts, NULL))
-          != -1)
-     {
-@@ -981,6 +987,16 @@ main (int argc, char **argv)
-           copy_contents = true;
-           break;
-+        case 'c':
-+          if ( x.set_security_context ) { 
-+              (void) fprintf(stderr, "%s: cannot force target context and preserve it\n", argv[0]);
-+             exit( 1 );
-+           }
-+           else if (selinux_enabled) {
-+              x.preserve_security_context = true;
-+              x.require_preserve_context = true;
-+           }
-+          break;
-         case 'd':
-           x.preserve_links = true;
-           x.dereference = DEREF_NEVER;
-@@ -1091,6 +1107,27 @@ main (int argc, char **argv)
-           x.one_file_system = true;
-           break;
-+
-+        case 'Z':
-+          /* politely decline if we're not on a selinux-enabled kernel. */
-+          if( !selinux_enabled ) {
-+             fprintf( stderr, "Warning:  ignoring --context (-Z). "
-+                              "It requires a SELinux enabled kernel.\n" );
-+             break;
-+         }
-+         if ( x.preserve_security_context ) {
-+            (void) fprintf(stderr, "%s: cannot force target context to '%s' and preserve it\n", argv[0], optarg);
-+            exit( 1 );
-+         }
-+         x.set_security_context = true;
-+         /* if there's a security_context given set new path 
-+            components to that context, too */
-+         if ( setfscreatecon(optarg) < 0 ) {
-+            (void) fprintf(stderr, _("cannot set default security context %s\n"), optarg);
-+            exit( 1 );
-+         }
-+         break;
-+
-         case 'S':
-           make_backups = true;
-           backup_suffix_string = optarg;
-diff -urNp coreutils-8.21-orig/src/id.c coreutils-8.21/src/id.c
---- coreutils-8.21-orig/src/id.c       2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/src/id.c    2013-02-15 14:31:58.946469154 +0100
-@@ -106,7 +106,7 @@ int
- main (int argc, char **argv)
- {
-   int optc;
--  int selinux_enabled = (is_selinux_enabled () > 0);
-+  bool selinux_enabled = (is_selinux_enabled () > 0);
-   /* If true, output the list of all group IDs. -G */
-   bool just_group_list = false;
-diff -urNp coreutils-8.21-orig/src/install.c coreutils-8.21/src/install.c
---- coreutils-8.21-orig/src/install.c  2013-02-07 10:37:05.000000000 +0100
-+++ coreutils-8.21/src/install.c       2013-02-15 14:31:58.948469440 +0100
-@@ -280,6 +280,7 @@ cp_option_init (struct cp_options *x)
-   x->data_copy_required = true;
-   x->require_preserve = false;
-   x->require_preserve_context = false;
-+  x->set_security_context = false;
-   x->require_preserve_xattr = false;
-   x->recursive = false;
-   x->sparse_mode = SPARSE_AUTO;
-@@ -639,7 +640,7 @@ In the 4th form, create all components o
-   -v, --verbose       print the name of each directory as it is created\n\
- "), stdout);
-       fputs (_("\
--      --preserve-context  preserve SELinux security context\n\
-+  -P, --preserve-context  preserve SELinux security context\n\
-   -Z, --context=CONTEXT  set SELinux security context of files and directories\
- \n\
- "), stdout);
-@@ -782,7 +783,7 @@ main (int argc, char **argv)
-      we'll actually use backup_suffix_string.  */
-   backup_suffix_string = getenv ("SIMPLE_BACKUP_SUFFIX");
--  while ((optc = getopt_long (argc, argv, "bcCsDdg:m:o:pt:TvS:Z:", long_options,
-+  while ((optc = getopt_long (argc, argv, "bcCsDdg:m:o:pPt:TvS:Z:", long_options,
-                               NULL)) != -1)
-     {
-       switch (optc)
-@@ -853,6 +854,7 @@ main (int argc, char **argv)
-           no_target_directory = true;
-           break;
-+        case 'P':
-         case PRESERVE_CONTEXT_OPTION:
-           if ( ! selinux_enabled)
-             {
-@@ -860,6 +862,10 @@ main (int argc, char **argv)
-                              "this kernel is not SELinux-enabled"));
-               break;
-             }
-+          if ( x.set_security_context ) {
-+             (void) fprintf(stderr, "%s: cannot force target context and preserve it\n", argv[0]);
-+             exit( 1 );
-+          }
-           x.preserve_security_context = true;
-           use_default_selinux_context = false;
-           break;
-@@ -871,6 +877,7 @@ main (int argc, char **argv)
-               break;
-             }
-           scontext = optarg;
-+          x.set_security_context = true;
-           use_default_selinux_context = false;
-           break;
-         case_GETOPT_HELP_CHAR;
-diff -urNp coreutils-8.21-orig/src/ls.c coreutils-8.21/src/ls.c
---- coreutils-8.21-orig/src/ls.c       2013-02-03 04:24:02.000000000 +0100
-+++ coreutils-8.21/src/ls.c    2013-02-15 14:31:58.953469008 +0100
-@@ -165,7 +165,8 @@ enum filetype
-     symbolic_link,
-     sock,
-     whiteout,
--    arg_directory
-+    arg_directory,
-+    command_line
-   };
- /* Display letters and indicators for each filetype.
-@@ -281,6 +282,7 @@ static void queue_directory (char const 
-                              bool command_line_arg);
- static void sort_files (void);
- static void parse_ls_color (void);
-+static void print_scontext_format (const struct fileinfo *f);
- /* Initial size of hash table.
-    Most hierarchies are likely to be shallower than this.  */
-@@ -350,7 +352,7 @@ static struct pending *pending_dirs;
- static struct timespec current_time;
--static bool print_scontext;
-+static int print_scontext = 0;
- static char UNKNOWN_SECURITY_CONTEXT[] = "?";
- /* Whether any of the files has an ACL.  This affects the width of the
-@@ -390,7 +392,9 @@ enum format
-     one_per_line,             /* -1 */
-     many_per_line,            /* -C */
-     horizontal,                       /* -x */
--    with_commas                       /* -m */
-+    with_commas,                      /* -m */
-+    security_format, /* -Z */
-+    invalid_format
-   };
- static enum format format;
-@@ -793,6 +797,9 @@ enum
-   SHOW_CONTROL_CHARS_OPTION,
-   SI_OPTION,
-   SORT_OPTION,
-+  CONTEXT_OPTION,
-+  LCONTEXT_OPTION,
-+  SCONTEXT_OPTION,
-   TIME_OPTION,
-   TIME_STYLE_OPTION
- };
-@@ -839,7 +846,9 @@ static struct option const long_options[
-   {"time-style", required_argument, NULL, TIME_STYLE_OPTION},
-   {"color", optional_argument, NULL, COLOR_OPTION},
-   {"block-size", required_argument, NULL, BLOCK_SIZE_OPTION},
--  {"context", no_argument, 0, 'Z'},
-+  {"context", no_argument, 0, CONTEXT_OPTION},
-+  {"lcontext", no_argument, 0, LCONTEXT_OPTION},
-+  {"scontext", no_argument, 0, SCONTEXT_OPTION},
-   {"author", no_argument, NULL, AUTHOR_OPTION},
-   {GETOPT_HELP_OPTION_DECL},
-   {GETOPT_VERSION_OPTION_DECL},
-@@ -849,12 +858,12 @@ static struct option const long_options[
- static char const *const format_args[] =
- {
-   "verbose", "long", "commas", "horizontal", "across",
--  "vertical", "single-column", NULL
-+  "vertical", "single-column", "context", NULL
- };
- static enum format const format_types[] =
- {
-   long_format, long_format, with_commas, horizontal, horizontal,
--  many_per_line, one_per_line
-+  many_per_line, one_per_line, security_format
- };
- ARGMATCH_VERIFY (format_args, format_types);
-@@ -1296,7 +1305,8 @@ main (int argc, char **argv)
-       /* Avoid following symbolic links when possible.  */
-       if (is_colored (C_ORPHAN)
-           || (is_colored (C_EXEC) && color_symlink_as_referent)
--          || (is_colored (C_MISSING) && format == long_format))
-+          || (is_colored (C_MISSING) && (format == long_format
-+              || format == security_format)))
-         check_symlink_color = true;
-       /* If the standard output is a controlling terminal, watch out
-@@ -1343,7 +1353,7 @@ main (int argc, char **argv)
-   if (dereference == DEREF_UNDEFINED)
-     dereference = ((immediate_dirs
-                     || indicator_style == classify
--                    || format == long_format)
-+                    || format == long_format || format == security_format)
-                    ? DEREF_NEVER
-                    : DEREF_COMMAND_LINE_SYMLINK_TO_DIR);
-@@ -1363,7 +1373,7 @@ main (int argc, char **argv)
-   format_needs_stat = sort_type == sort_time || sort_type == sort_size
-     || format == long_format
--    || print_scontext
-+    || format == security_format || print_scontext
-     || print_block_size;
-   format_needs_type = (! format_needs_stat
-                        && (recursive
-@@ -1394,7 +1404,7 @@ main (int argc, char **argv)
-     }
-   else
-     do
--      gobble_file (argv[i++], unknown, NOT_AN_INODE_NUMBER, true, "");
-+      gobble_file (argv[i++], command_line, NOT_AN_INODE_NUMBER, true, "");
-     while (i < argc);
-   if (cwd_n_used)
-@@ -1565,7 +1575,7 @@ decode_switches (int argc, char **argv)
-   ignore_mode = IGNORE_DEFAULT;
-   ignore_patterns = NULL;
-   hide_patterns = NULL;
--  print_scontext = false;
-+  print_scontext = 0;
-   /* FIXME: put this in a function.  */
-   {
-@@ -1941,13 +1951,27 @@ decode_switches (int argc, char **argv)
-           break;
-         case 'Z':
--          print_scontext = true;
-+          print_scontext = 1;
-+    format = security_format;
-           break;
-         case_GETOPT_HELP_CHAR;
-         case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);
-+  case CONTEXT_OPTION: /* default security context format */
-+                print_scontext = 1;
-+                format = security_format;
-+                break;
-+        case LCONTEXT_OPTION: /* long format plus security context */
-+                print_scontext = 1;
-+                format = long_format;
-+                break;
-+        case SCONTEXT_OPTION: /* short form of new security format */
-+                print_scontext = 0;
-+                format = security_format;
-+                break;
-+
-         default:
-           usage (LS_FAILURE);
-         }
-@@ -2883,6 +2907,7 @@ gobble_file (char const *name, enum file
-   memset (f, '\0', sizeof *f);
-   f->stat.st_ino = inode;
-   f->filetype = type;
-+  f->scontext = NULL;
-   if (command_line_arg
-       || format_needs_stat
-@@ -2995,7 +3020,7 @@ gobble_file (char const *name, enum file
-           && print_with_color && is_colored (C_CAP))
-         f->has_capability = has_capability_cache (absolute_name, f);
--      if (format == long_format || print_scontext)
-+      if (format == long_format || format == security_format || print_scontext)
-         {
-           bool have_selinux = false;
-           bool have_acl = false;
-@@ -3016,7 +3041,7 @@ gobble_file (char const *name, enum file
-                 err = 0;
-             }
--          if (err == 0 && format == long_format)
-+          if (err == 0 && (format == long_format || format == security_format))
-             {
-               int n = file_has_acl_cache (absolute_name, f);
-               err = (n < 0);
-@@ -3035,7 +3060,8 @@ gobble_file (char const *name, enum file
-         }
-       if (S_ISLNK (f->stat.st_mode)
--          && (format == long_format || check_symlink_color))
-+          && (format == long_format || format == security_format
-+              || check_symlink_color))
-         {
-           struct stat linkstats;
-@@ -3054,6 +3080,7 @@ gobble_file (char const *name, enum file
-                  command line are automatically traced if not being
-                  listed as files.  */
-               if (!command_line_arg || format == long_format
-+                  || format == security_format
-                   || !S_ISDIR (linkstats.st_mode))
-                 {
-                   /* Get the linked-to file's mode for the filetype indicator
-@@ -3087,7 +3114,7 @@ gobble_file (char const *name, enum file
-             block_size_width = len;
-         }
--      if (format == long_format)
-+      if (format == long_format || format == security_format)
-         {
-           if (print_owner)
-             {
-@@ -3591,6 +3618,13 @@ print_current_files (void)
-           print_long_format (sorted_file[i]);
-           DIRED_PUTCHAR ('\n');
-         }
-+     break;
-+    case security_format:
-+      for (i = 0; i < cwd_n_used; i++)
-+      {
-+        print_scontext_format (sorted_file[i]);
-+        DIRED_PUTCHAR ('\n');
-+      }
-       break;
-     }
- }
-@@ -3753,6 +3787,67 @@ format_inode (char *buf, size_t buflen, 
-           : (char *) "?");
- }
-+/* Print info about f in scontext format */
-+static void
-+print_scontext_format (const struct fileinfo *f)
-+{
-+  char modebuf[12];
-+
-+  /* 7 fields that may require LONGEST_HUMAN_READABLE bytes,
-+     1 10-byte mode string,
-+     9 spaces, one following each of these fields, and
-+     1 trailing NUL byte.  */
-+
-+  char init_bigbuf[7 * LONGEST_HUMAN_READABLE + 10  + 9 + 1];
-+  char *buf = init_bigbuf;
-+  char *p;
-+
-+  p = buf;
-+
-+  if ( print_scontext ) { /* zero means terse listing */
-+    filemodestring (&f->stat, modebuf);
-+    if (! any_has_acl)
-+      modebuf[10] = '\0';
-+    else if (f->acl_type == ACL_T_SELINUX_ONLY)
-+      modebuf[10] = '.';
-+    else if (f->acl_type == ACL_T_YES)
-+      modebuf[10] = '+';
-+    modebuf[11] = '\0';
-+
-+    /* print mode */
-+
-+    (void) sprintf (p, "%s ", modebuf);
-+    p += strlen (p);
-+
-+    /* print standard user and group */
-+
-+    DIRED_FPUTS (buf, stdout, p - buf);
-+    format_user (f->stat.st_uid, owner_width, f->stat_ok);
-+    format_group (f->stat.st_gid, group_width, f->stat_ok);
-+    p = buf;
-+  }
-+
-+  (void) sprintf (p, "%-32s ", f->scontext ?: "");
-+  p += strlen (p);
-+
-+  DIRED_INDENT ();
-+  DIRED_FPUTS (buf, stdout, p - buf);
-+  size_t w = print_name_with_quoting (f, false, &dired_obstack, p - buf);
-+
-+  if (f->filetype == symbolic_link) {
-+      if (f->linkname) {
-+          DIRED_FPUTS_LITERAL (" -> ", stdout);
-+          print_name_with_quoting (f, true, NULL, (p - buf) + w + 4);
-+          if (indicator_style != none)
-+            print_type_indicator (f->stat_ok, f->linkmode, f->filetype);
-+      }
-+  }
-+  else {
-+    if (indicator_style != none)
-+      print_type_indicator (f->stat_ok, f->stat.st_mode, f->filetype);
-+  }
-+}
-+
- /* Print information about F in long format.  */
- static void
- print_long_format (const struct fileinfo *f)
-@@ -3844,9 +3939,15 @@ print_long_format (const struct fileinfo
-      The latter is wrong when nlink_width is zero.  */
-   p += strlen (p);
-+  if (print_scontext)
-+    {
-+      sprintf (p, "%-32s ", f->scontext ? f->scontext : "");
-+      p += strlen (p);
-+    }
-+
-   DIRED_INDENT ();
--  if (print_owner || print_group || print_author || print_scontext)
-+  if (print_owner || print_group || print_author)
-     {
-       DIRED_FPUTS (buf, stdout, p - buf);
-@@ -3859,9 +3960,6 @@ print_long_format (const struct fileinfo
-       if (print_author)
-         format_user (f->stat.st_author, author_width, f->stat_ok);
--      if (print_scontext)
--        format_user_or_group (f->scontext, 0, scontext_width);
--
-       p = buf;
-     }
-@@ -4207,9 +4305,6 @@ print_file_name_and_frills (const struct
-             : human_readable (ST_NBLOCKS (f->stat), buf, human_output_opts,
-                               ST_NBLOCKSIZE, output_block_size));
--  if (print_scontext)
--    printf ("%*s ", format == with_commas ? 0 : scontext_width, f->scontext);
--
-   size_t width = print_name_with_quoting (f, false, NULL, start_col);
-   if (indicator_style != none)
-@@ -4417,9 +4512,6 @@ length_of_file_name_and_frills (const st
-                                             output_block_size))
-                 : block_size_width);
--  if (print_scontext)
--    len += 1 + (format == with_commas ? strlen (f->scontext) : scontext_width);
--
-   quote_name (NULL, f->name, filename_quoting_options, &name_width);
-   len += name_width;
-@@ -4856,9 +4948,16 @@ Sort entries alphabetically if none of -
-   -w, --width=COLS           assume screen width instead of current value\n\
-   -x                         list entries by lines instead of by columns\n\
-   -X                         sort alphabetically by entry extension\n\
--  -Z, --context              print any SELinux security context of each file\n\
-   -1                         list one file per line\n\
- "), stdout);
-+      fputs(_("\nSELinux options:\n\n\
-+  --lcontext                 Display security context.   Enable -l. Lines\n\
-+                             will probably be too wide for most displays.\n\
-+  -Z, --context              Display security context so it fits on most\n\
-+                             displays.  Displays only mode, user, group,\n\
-+                             security context and file name.\n\
-+  --scontext                 Display only security context and file name.\n\
-+"), stdout);
-       fputs (HELP_OPTION_DESCRIPTION, stdout);
-       fputs (VERSION_OPTION_DESCRIPTION, stdout);
-       emit_size_note ();
-diff -urNp coreutils-8.21-orig/src/mkdir.c coreutils-8.21/src/mkdir.c
---- coreutils-8.21-orig/src/mkdir.c    2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/src/mkdir.c 2013-02-15 14:31:58.954469576 +0100
-@@ -38,6 +38,7 @@
- static struct option const longopts[] =
- {
-   {GETOPT_SELINUX_CONTEXT_OPTION_DECL},
-+  {"context", required_argument, NULL, 'Z'},
-   {"mode", required_argument, NULL, 'm'},
-   {"parents", no_argument, NULL, 'p'},
-   {"verbose", no_argument, NULL, 'v'},
-diff -urNp coreutils-8.21-orig/src/mknod.c coreutils-8.21/src/mknod.c
---- coreutils-8.21-orig/src/mknod.c    2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/src/mknod.c 2013-02-15 14:31:58.955470548 +0100
-@@ -35,7 +35,7 @@
- static struct option const longopts[] =
- {
--  {GETOPT_SELINUX_CONTEXT_OPTION_DECL},
-+  {GETOPT_SELINUX_CONTEXT_OPTION_DECL}, 
-   {"mode", required_argument, NULL, 'm'},
-   {GETOPT_HELP_OPTION_DECL},
-   {GETOPT_VERSION_OPTION_DECL},
-diff -urNp coreutils-8.21-orig/src/mv.c coreutils-8.21/src/mv.c
---- coreutils-8.21-orig/src/mv.c       2013-02-07 10:37:05.000000000 +0100
-+++ coreutils-8.21/src/mv.c    2013-02-15 14:31:58.956469593 +0100
-@@ -120,6 +120,7 @@ cp_option_init (struct cp_options *x)
-   x->preserve_timestamps = true;
-   x->explicit_no_preserve_mode= false;
-   x->preserve_security_context = selinux_enabled;
-+  x->set_security_context = false;
-   x->reduce_diagnostics = false;
-   x->data_copy_required = true;
-   x->require_preserve = false;  /* FIXME: maybe make this an option */
-diff -urNp coreutils-8.21-orig/src/runcon.c coreutils-8.21/src/runcon.c
---- coreutils-8.21-orig/src/runcon.c   2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/src/runcon.c        2013-02-15 14:31:58.956469593 +0100
-@@ -85,7 +85,7 @@ Usage: %s CONTEXT COMMAND [args]\n\
-   or:  %s [ -c ] [-u USER] [-r ROLE] [-t TYPE] [-l RANGE] COMMAND [args]\n\
- "), program_name, program_name);
-       fputs (_("\
--Run a program in a different security context.\n\
-+Run a program in a different SELinux security context.\n\
- With neither CONTEXT nor COMMAND, print the current security context.\n\
- "), stdout);
-diff -urNp coreutils-8.21-orig/tests/misc/selinux.sh coreutils-8.21/tests/misc/selinux.sh
---- coreutils-8.21-orig/tests/misc/selinux.sh  2013-01-31 01:46:24.000000000 +0100
-+++ coreutils-8.21/tests/misc/selinux.sh       2013-02-15 14:31:58.957469955 +0100
-@@ -37,7 +37,7 @@ chcon $ctx f d p ||
- # inspect that context with both ls -Z and stat.
- for i in d f p; do
--  c=$(ls -dogZ $i|cut -d' ' -f3); test x$c = x$ctx || fail=1
-+  c=$(ls -dogZ $i|cut -d' ' -f4); test x$c = x$ctx || fail=1
-   c=$(stat --printf %C $i); test x$c = x$ctx || fail=1
- done
diff --git a/coreutils/patches/coreutils-selinuxmanpages.patch b/coreutils/patches/coreutils-selinuxmanpages.patch
deleted file mode 100644 (file)
index 9cbc166..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -urNp coreutils-6.10-orig/doc/coreutils.texi coreutils-6.10/doc/coreutils.texi
---- coreutils-6.10-orig/doc/coreutils.texi     2008-04-07 17:52:11.000000000 +0200
-+++ coreutils-6.10/doc/coreutils.texi  2008-04-07 18:01:43.000000000 +0200
-@@ -6981,6 +6981,11 @@ for i; do
- done
- @end example
-+@item -c
-+@cindex SELinux security context information, preserving
-+Preserve SELinux security context of the original files if possible.
-+Some file systems don't support storing of SELinux security context.
-+
- @item --copy-contents
- @cindex directories, copying recursively
- @cindex copying directories recursively
index 7df057c5a180927869e4eda9eb03c22ce5b9797e..4402bd5aafc4bc5e31e5e45355c3ba6b3f89afbf 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = dracut
-version    = 024
-release    = 4
+version    = 041
+release    = 1
 
 groups     = System/Boot
 url        = http://sourceforge.net/apps/trac/dracut/wiki
index c4d560ed5c177bd334a5a362cf7b74f079e8be5e..b7bf868b5d23a6e60e4610461b893ee49874de9f 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = elfutils
-version    = 0.152
-release    = 5
+version    = 0.161
+release    = 1
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
 groups     = Development/Libraries
@@ -21,27 +21,24 @@ description
        (to check for well-formed ELF files).
 end
 
-source_dl  =
+source_dl  = https://fedorahosted.org/releases/e/l/elfutils/%{version}/
 sources    = %{thisapp}.tar.bz2
 
 build
        requires
+               autoconf
+               automake
                bzip2-devel
                m4
                xz-devel
                zlib-devel
        end
 
-       CFLAGS += -Wno-error
+       CFLAGS += -Wno-error -Wformat
 
        configure_options += \
-               --program-prefix=eu-
-
-       prepare_cmds
-               # Fix a compiler warning.
-               sed -i.scanf-m -e 's/%m/%a/g' \
-                       src/addr2line.c tests/line2addr.c
-       end
+               --program-prefix=eu- \
+               --disable-werror
 
        # fails
        #test
diff --git a/elfutils/patches/elfutils-portability-0.161.patch b/elfutils/patches/elfutils-portability-0.161.patch
new file mode 100644 (file)
index 0000000..7539f8b
--- /dev/null
@@ -0,0 +1,1871 @@
+--- elfutils/backends/ChangeLog
++++ elfutils/backends/ChangeLog
+@@ -433,6 +433,10 @@
+       * ppc_attrs.c (ppc_check_object_attribute): Handle tag
+       GNU_Power_ABI_Struct_Return.
++2009-01-23  Roland McGrath  <roland@redhat.com>
++
++      * Makefile.am (libebl_%.so): Use $(LD_AS_NEEDED).
++
+ 2008-10-04  Ulrich Drepper  <drepper@redhat.com>
+       * i386_reloc.def: Fix entries for TLS_GOTDESC, TLS_DESC_CALL, and
+@@ -760,6 +764,11 @@
+       * sparc_init.c: Likewise.
+       * x86_64_init.c: Likewise.
++2005-11-22  Roland McGrath  <roland@redhat.com>
++
++      * Makefile.am (LD_AS_NEEDED): New variable, substituted by configure.
++      (libebl_%.so rule): Use it in place of -Wl,--as-needed.
++
+ 2005-11-19  Roland McGrath  <roland@redhat.com>
+       * ppc64_reloc.def: REL30 -> ADDR30.
+@@ -782,6 +791,9 @@
+       * Makefile.am (uninstall): Don't try to remove $(pkgincludedir).
+       (CLEANFILES): Add libebl_$(m).so.
++      * Makefile.am (WEXTRA): New variable, substituted by configure.
++      (AM_CFLAGS): Use it in place of -Wextra.
++
+       * ppc_reloc.def: Update bits per Alan Modra <amodra@bigpond.net.au>.
+       * ppc64_reloc.def: Likewise.
+--- elfutils/backends/Makefile.am
++++ elfutils/backends/Makefile.am
+@@ -119,7 +119,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a
+       $(LINK) -shared -o $(@:.map=.so) \
+               -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \
+               -Wl,--version-script,$(@:.so=.map) \
+-              -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw)
++              -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw)
+       @$(textrel_check)
+ libebl_i386.so: $(cpu_i386)
+--- elfutils/backends/Makefile.in
++++ elfutils/backends/Makefile.in
+@@ -83,6 +83,7 @@ host_triplet = @host@
+ DIST_COMMON = $(top_srcdir)/config/eu.am $(srcdir)/Makefile.in \
+       $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \
+       $(noinst_HEADERS) ChangeLog
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
+ subdir = backends
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
+@@ -285,6 +286,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -316,6 +318,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -378,11 +381,11 @@ zip_LIBS = @zip_LIBS@
+ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \
+       -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \
+       -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
+-          $(if $($(*F)_no_Werror),,-Werror) \
+-          $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
+-          $($(*F)_CFLAGS)
+-
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
++      $($(*F)_no_Werror),,-Werror) $(if \
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++      $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
++      $(am__append_1)
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+ CLEANFILES = *.gcno *.gcda $(foreach m,$(modules), libebl_$(m).map \
+       libebl_$(m).so $(am_libebl_$(m)_pic_a_OBJECTS))
+@@ -888,7 +891,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a
+       $(LINK) -shared -o $(@:.map=.so) \
+               -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \
+               -Wl,--version-script,$(@:.so=.map) \
+-              -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw)
++              -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw)
+       @$(textrel_check)
+ libebl_i386.so: $(cpu_i386)
+--- elfutils/ChangeLog
++++ elfutils/ChangeLog
+@@ -187,6 +187,8 @@
+ 2012-01-24  Mark Wielaard  <mjw@redhat.com>
++      * configure.ac: Wrap AC_COMPILE_IFELSE sources in AC_LANG_SOURCE.
++
+       * COPYING: Fix address. Updated version from gnulib.
+ 2012-01-23  Mark Wielaard  <mjw@redhat.com>
+@@ -205,6 +207,9 @@
+ 2011-10-08  Mike Frysinger  <vapier@gentoo.org>
++      * configure.ac (--disable-werror): Handle it, controlling BUILD_WERROR
++      automake option.
++
+       * configure.ac: Fix use of AC_ARG_ENABLE to handle $enableval correctly.
+ 2011-10-02  Ulrich Drepper  <drepper@gmail.com>
+@@ -226,6 +231,10 @@
+       * configure.ac (LOCALEDIR, DATADIRNAME): Removed.
++2009-11-22  Roland McGrath  <roland@redhat.com>
++
++      * configure.ac: Use sed and expr instead of modern bash extensions.
++
+ 2009-09-21  Ulrich Drepper  <drepper@redhat.com>
+       * configure.ac: Update for more modern autoconf.
+@@ -234,6 +243,10 @@
+       * configure.ac (zip_LIBS): Check for liblzma too.
++2009-08-17  Roland McGrath  <roland@redhat.com>
++
++      * configure.ac: Check for -fgnu89-inline; add it to WEXTRA if it works.
++
+ 2009-04-19  Roland McGrath  <roland@redhat.com>
+       * configure.ac (eu_version): Round down here, not in version.h macros.
+@@ -245,6 +258,8 @@
+ 2009-01-23  Roland McGrath  <roland@redhat.com>
++      * configure.ac: Check for __builtin_popcount.
++
+       * configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3.
+       * configure.ac (__thread check): Use AC_LINK_IFELSE, in case of
+@@ -325,6 +340,10 @@
+       * configure.ac: Add dummy automake conditional to get dependencies
+       for non-generic linker right.  See src/Makefile.am.
++2005-11-22  Roland McGrath  <roland@redhat.com>
++
++      * configure.ac: Check for --as-needed linker option.
++
+ 2005-11-18  Roland McGrath  <roland@redhat.com>
+       * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable.
+@@ -372,6 +391,17 @@
+       * Makefile.am (all_SUBDIRS): Add libdwfl.
+       * configure.ac: Write libdwfl/Makefile.
++2005-05-31  Roland McGrath  <roland@redhat.com>
++
++      * configure.ac (WEXTRA): Check for -Wextra and set this substitution.
++
++      * configure.ac: Check for struct stat st_?tim members.
++      * src/strip.c (process_file): Use st_?time if st_?tim are not there.
++
++      * configure.ac: Check for futimes function.
++      * src/strip.c (handle_elf) [! HAVE_FUTIMES]: Use utimes instead.
++      (handle_ar) [! HAVE_FUTIMES]: Likewise.
++
+ 2005-05-19  Roland McGrath  <roland@redhat.com>
+       * configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros.
+--- elfutils/config/ChangeLog
++++ elfutils/config/ChangeLog
+@@ -71,6 +71,10 @@
+       * known-dwarf.awk: Use gawk.
++2011-10-08  Mike Frysinger  <vapier@gentoo.org>
++
++      * eu.am [BUILD_WERROR]: Conditionalize -Werror use on this.
++
+ 2010-07-02  Ulrich Drepper  <drepper@redhat.com>
+       * elfutils.spec.in: Add more BuildRequires.
+--- elfutils/config/eu.am
++++ elfutils/config/eu.am
+@@ -1,6 +1,6 @@
+ ## Common automake fragments for elfutils subdirectory makefiles.
+ ##
+-## Copyright (C) 2010, 2014 Red Hat, Inc.
++## Copyright (C) 2010-2011, 2014 Red Hat, Inc.
+ ##
+ ## This file is part of elfutils.
+ ##
+@@ -29,13 +29,21 @@
+ ## not, see <http://www.gnu.org/licenses/>.
+ ##
++WEXTRA = @WEXTRA@
++LD_AS_NEEDED = @LD_AS_NEEDED@
++
+ DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"'
+ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow \
+           $(if $($(*F)_no_Werror),,-Werror) \
+-          $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
++          $(if $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) \
++          $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) \
+           $($(*F)_CFLAGS)
++if BUILD_WERROR
++AM_CFLAGS += $(if $($(*F)_no_Werror),,-Werror)
++endif
++
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+ %.os: %.c %.o
+--- elfutils/config/Makefile.in
++++ elfutils/config/Makefile.in
+@@ -147,6 +147,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -178,6 +179,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+--- elfutils/config.h.in
++++ elfutils/config.h.in
+@@ -3,6 +3,9 @@
+ /* Should ar and ranlib use -D behavior by default? */
+ #undef DEFAULT_AR_DETERMINISTIC
++/* Have __builtin_popcount. */
++#undef HAVE_BUILTIN_POPCOUNT
++
+ /* Define to 1 if you have the <inttypes.h> header file. */
+ #undef HAVE_INTTYPES_H
+@@ -102,4 +105,7 @@
+ /* Define for large files, on AIX-style hosts. */
+ #undef _LARGE_FILES
++/* Stubbed out if missing compiler support. */
++#undef __thread
++
+ #include <eu-config.h>
+--- elfutils/configure
++++ elfutils/configure
+@@ -663,6 +663,8 @@ ZLIB_TRUE
+ LIBEBL_SUBDIR
+ TESTS_RPATH_FALSE
+ TESTS_RPATH_TRUE
++BUILD_WERROR_FALSE
++BUILD_WERROR_TRUE
+ BUILD_STATIC_FALSE
+ BUILD_STATIC_TRUE
+ USE_VALGRIND_FALSE
+@@ -678,6 +680,8 @@ NEVER_TRUE
+ base_cpu
+ NATIVE_LD_FALSE
+ NATIVE_LD_TRUE
++LD_AS_NEEDED
++WEXTRA
+ NM
+ READELF
+ ac_ct_AR
+@@ -798,6 +802,7 @@ enable_debugpred
+ enable_gprof
+ enable_gcov
+ enable_valgrind
++enable_werror
+ enable_tests_rpath
+ enable_libebl_subdir
+ with_zlib
+@@ -1455,6 +1460,7 @@ Optional Features:
+   --enable-gprof          build binaries with gprof support
+   --enable-gcov           build binaries with gcov support
+   --enable-valgrind       run all tests under valgrind
++  --disable-werror        do not build with -Werror
+   --enable-tests-rpath    build $ORIGIN-using rpath into tests
+   --enable-libebl-subdir=DIR
+                           install libebl_CPU modules in $(libdir)/DIR
+@@ -4843,6 +4849,130 @@ if test "x$ac_cv_c99" != xyes; then :
+   as_fn_error $? "gcc with C99 support required" "$LINENO" 5
+ fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wextra option to $CC" >&5
++$as_echo_n "checking for -Wextra option to $CC... " >&6; }
++if ${ac_cv_cc_wextra+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  old_CFLAGS="$CFLAGS"
++CFLAGS="$CFLAGS -Wextra"
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++void foo (void) { }
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++  ac_cv_cc_wextra=yes
++else
++  ac_cv_cc_wextra=no
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++CFLAGS="$old_CFLAGS"
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_wextra" >&5
++$as_echo "$ac_cv_cc_wextra" >&6; }
++
++if test "x$ac_cv_cc_wextra" = xyes; then :
++  WEXTRA=-Wextra
++else
++  WEXTRA=-W
++fi
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fgnu89-inline option to $CC" >&5
++$as_echo_n "checking for -fgnu89-inline option to $CC... " >&6; }
++if ${ac_cv_cc_gnu89_inline+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  old_CFLAGS="$CFLAGS"
++CFLAGS="$CFLAGS -fgnu89-inline -Werror"
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++void foo (void)
++{
++  inline void bar (void) {}
++  bar ();
++}
++extern inline void baz (void) {}
++
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++  ac_cv_cc_gnu89_inline=yes
++else
++  ac_cv_cc_gnu89_inline=no
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++CFLAGS="$old_CFLAGS"
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_gnu89_inline" >&5
++$as_echo "$ac_cv_cc_gnu89_inline" >&6; }
++if test "x$ac_cv_cc_gnu89_inline" = xyes; then :
++  WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline"
++fi
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --as-needed linker option" >&5
++$as_echo_n "checking for --as-needed linker option... " >&6; }
++if ${ac_cv_as_needed+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  cat > conftest.c <<EOF
++int main (void) { return 0; }
++EOF
++if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
++                          -fPIC -shared -o conftest.so conftest.c
++                          -Wl,--as-needed 1>&5'
++  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; }; }
++then
++  ac_cv_as_needed=yes
++else
++  ac_cv_as_needed=no
++fi
++rm -f conftest*
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_as_needed" >&5
++$as_echo "$ac_cv_as_needed" >&6; }
++if test "x$ac_cv_as_needed" = xyes; then :
++  LD_AS_NEEDED=-Wl,--as-needed
++else
++  LD_AS_NEEDED=
++fi
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_popcount" >&5
++$as_echo_n "checking for __builtin_popcount... " >&6; }
++if ${ac_cv_popcount+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++int
++main ()
++{
++exit (__builtin_popcount (127));
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_link "$LINENO"; then :
++  ac_cv_popcount=yes
++else
++  ac_cv_popcount=no
++fi
++rm -f core conftest.err conftest.$ac_objext \
++    conftest$ac_exeext conftest.$ac_ext
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_popcount" >&5
++$as_echo "$ac_cv_popcount" >&6; }
++if test "x$ac_cv_popcount" = xyes; then :
++
++$as_echo "#define HAVE_BUILTIN_POPCOUNT 1" >>confdefs.h
++
++fi
++
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __thread support" >&5
+ $as_echo_n "checking for __thread support... " >&6; }
+ if ${ac_cv_tls+:} false; then :
+@@ -4879,7 +5009,13 @@ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tls" >&5
+ $as_echo "$ac_cv_tls" >&6; }
+ if test "x$ac_cv_tls" != xyes; then :
+-  as_fn_error $? "__thread support required" "$LINENO" 5
++  if test "$use_locks" = yes; then :
++  as_fn_error $? "--enable-thread-safety requires __thread support" "$LINENO" 5
++else
++
++$as_echo "#define __thread /* empty: no multi-thread support */" >>confdefs.h
++
++fi
+ fi
+ # Check whether --enable-largefile was given.
+@@ -5246,6 +5382,22 @@ else
+ fi
++# Check whether --enable-werror was given.
++if test "${enable_werror+set}" = set; then :
++  enableval=$enable_werror; enable_werror=$enableval
++else
++  enable_werror=yes
++fi
++
++ if test "$enable_werror" = yes; then
++  BUILD_WERROR_TRUE=
++  BUILD_WERROR_FALSE='#'
++else
++  BUILD_WERROR_TRUE='#'
++  BUILD_WERROR_FALSE=
++fi
++
++
+ # Check whether --enable-tests-rpath was given.
+ if test "${enable_tests_rpath+set}" = set; then :
+   enableval=$enable_tests_rpath; tests_use_rpath=$enableval
+@@ -5983,7 +6135,7 @@ case "$eu_version" in
+ esac
+ # Round up to the next release API (x.y) version.
+-eu_version=$(( (eu_version + 999) / 1000 ))
++eu_version=`expr \( $eu_version + 999 \) / 1000`
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+@@ -6729,6 +6881,10 @@ if test -z "${BUILD_STATIC_TRUE}" && tes
+   as_fn_error $? "conditional \"BUILD_STATIC\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
++if test -z "${BUILD_WERROR_TRUE}" && test -z "${BUILD_WERROR_FALSE}"; then
++  as_fn_error $? "conditional \"BUILD_WERROR\" was never defined.
++Usually this means the macro was only invoked conditionally." "$LINENO" 5
++fi
+ if test -z "${TESTS_RPATH_TRUE}" && test -z "${TESTS_RPATH_FALSE}"; then
+   as_fn_error $? "conditional \"TESTS_RPATH\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+--- elfutils/configure.ac
++++ elfutils/configure.ac
+@@ -89,6 +89,54 @@ CFLAGS="$old_CFLAGS"])
+ AS_IF([test "x$ac_cv_c99" != xyes],
+       AC_MSG_ERROR([gcc with C99 support required]))
++AC_CACHE_CHECK([for -Wextra option to $CC], ac_cv_cc_wextra, [dnl
++old_CFLAGS="$CFLAGS"
++CFLAGS="$CFLAGS -Wextra"
++AC_COMPILE_IFELSE([AC_LANG_SOURCE([void foo (void) { }])],
++                ac_cv_cc_wextra=yes, ac_cv_cc_wextra=no)
++CFLAGS="$old_CFLAGS"])
++AC_SUBST(WEXTRA)
++AS_IF([test "x$ac_cv_cc_wextra" = xyes], [WEXTRA=-Wextra], [WEXTRA=-W])
++
++AC_CACHE_CHECK([for -fgnu89-inline option to $CC], ac_cv_cc_gnu89_inline, [dnl
++old_CFLAGS="$CFLAGS"
++CFLAGS="$CFLAGS -fgnu89-inline -Werror"
++AC_COMPILE_IFELSE([AC_LANG_SOURCE([
++void foo (void)
++{
++  inline void bar (void) {}
++  bar ();
++}
++extern inline void baz (void) {}
++])], ac_cv_cc_gnu89_inline=yes, ac_cv_cc_gnu89_inline=no)
++CFLAGS="$old_CFLAGS"])
++AS_IF([test "x$ac_cv_cc_gnu89_inline" = xyes],
++      [WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline"])
++
++AC_CACHE_CHECK([for --as-needed linker option],
++             ac_cv_as_needed, [dnl
++cat > conftest.c <<EOF
++int main (void) { return 0; }
++EOF
++if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
++                          -fPIC -shared -o conftest.so conftest.c
++                          -Wl,--as-needed 1>&AS_MESSAGE_LOG_FD])
++then
++  ac_cv_as_needed=yes
++else
++  ac_cv_as_needed=no
++fi
++rm -f conftest*])
++AS_IF([test "x$ac_cv_as_needed" = xyes],
++      [LD_AS_NEEDED=-Wl,--as-needed], [LD_AS_NEEDED=])
++AC_SUBST(LD_AS_NEEDED)
++
++AC_CACHE_CHECK([for __builtin_popcount], ac_cv_popcount, [dnl
++AC_LINK_IFELSE([AC_LANG_PROGRAM([], [[exit (__builtin_popcount (127));]])],
++             ac_cv_popcount=yes, ac_cv_popcount=no)])
++AS_IF([test "x$ac_cv_popcount" = xyes],
++      [AC_DEFINE([HAVE_BUILTIN_POPCOUNT], [1], [Have __builtin_popcount.])])
++
+ AC_CACHE_CHECK([for __thread support], ac_cv_tls, [dnl
+ # Use the same flags that we use for our DSOs, so the test is representative.
+ # Some old compiler/linker/libc combinations fail some ways and not others.
+@@ -104,7 +152,10 @@ static __thread int a; int foo (int b) {
+ CFLAGS="$save_CFLAGS"
+ LDFLAGS="$save_LDFLAGS"])
+ AS_IF([test "x$ac_cv_tls" != xyes],
+-      AC_MSG_ERROR([__thread support required]))
++      [AS_IF([test "$use_locks" = yes],
++           [AC_MSG_ERROR([--enable-thread-safety requires __thread support])],
++           [AC_DEFINE([__thread], [/* empty: no multi-thread support */],
++                      [Stubbed out if missing compiler support.])])])
+ dnl This test must come as early as possible after the compiler configuration
+ dnl tests, because the choice of the file model can (in principle) affect
+@@ -183,6 +234,11 @@ AM_CONDITIONAL(USE_VALGRIND, test "$use_
+ AM_CONDITIONAL(BUILD_STATIC, [dnl
+ test "$use_gprof" = yes -o "$use_gcov" = yes])
++AC_ARG_ENABLE([werror],
++AS_HELP_STRING([--disable-werror],[do not build with -Werror]),
++             [enable_werror=$enableval], [enable_werror=yes])
++AM_CONDITIONAL(BUILD_WERROR, test "$enable_werror" = yes)
++
+ AC_ARG_ENABLE([tests-rpath],
+ AS_HELP_STRING([--enable-tests-rpath],[build $ORIGIN-using rpath into tests]),
+              [tests_use_rpath=$enableval], [tests_use_rpath=no])
+@@ -302,7 +358,7 @@ case "$eu_version" in
+ esac
+ # Round up to the next release API (x.y) version.
+-eu_version=$(( (eu_version + 999) / 1000 ))
++eu_version=`expr \( $eu_version + 999 \) / 1000`
+ AC_CHECK_SIZEOF(long)
+--- elfutils/lib/ChangeLog
++++ elfutils/lib/ChangeLog
+@@ -65,6 +65,9 @@
+ 2009-01-23  Roland McGrath  <roland@redhat.com>
++      * eu-config.h [! HAVE_BUILTIN_POPCOUNT]
++      (__builtin_popcount): New inline function.
++
+       * eu-config.h: Add multiple inclusion protection.
+ 2009-01-17  Ulrich Drepper  <drepper@redhat.com>
+@@ -121,6 +124,11 @@
+       * Makefile.am (libeu_a_SOURCES): Add it.
+       * system.h: Declare crc32_file.
++2005-02-07  Roland McGrath  <roland@redhat.com>
++
++      * Makefile.am (WEXTRA): New variable, substituted by configure.
++      (AM_CFLAGS): Use it in place of -Wextra.
++
+ 2005-04-30  Ulrich Drepper  <drepper@redhat.com>
+       * Makefile.am: Use -ffunction-sections for xmalloc.c.
+--- elfutils/lib/eu-config.h
++++ elfutils/lib/eu-config.h
+@@ -162,6 +162,17 @@ asm (".section predict_data, \"aw\"; .pr
+ /* This macro is used by the tests conditionalize for standalone building.  */
+ #define ELFUTILS_HEADER(name) <lib##name.h>
++#ifndef HAVE_BUILTIN_POPCOUNT
++# define __builtin_popcount hakmem_popcount
++static inline unsigned int __attribute__ ((unused))
++hakmem_popcount (unsigned int x)
++{
++  /* HAKMEM 169 */
++  unsigned int n = x - ((x >> 1) & 033333333333) - ((x >> 2) & 011111111111);
++  return ((n + (n >> 3)) & 030707070707) % 63;
++}
++#endif        /* HAVE_BUILTIN_POPCOUNT */
++
+ #ifdef SHARED
+ # define OLD_VERSION(name, version) \
+--- elfutils/lib/Makefile.in
++++ elfutils/lib/Makefile.in
+@@ -82,6 +82,7 @@ host_triplet = @host@
+ DIST_COMMON = $(top_srcdir)/config/eu.am $(srcdir)/Makefile.in \
+       $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \
+       $(noinst_HEADERS) ChangeLog
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
+ subdir = lib
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
+@@ -197,6 +198,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -228,6 +230,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -289,9 +292,11 @@ top_srcdir = @top_srcdir@
+ zip_LIBS = @zip_LIBS@
+ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \
+       -I$(srcdir)/../libelf
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+       $($(*F)_no_Werror),,-Werror) $(if \
+-      $($(*F)_no_Wunused),,-Wunused -Wextra) $($(*F)_CFLAGS) -fpic
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++      $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
++      $(am__append_1) -fpic
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+ CLEANFILES = *.gcno *.gcda
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+--- elfutils/libasm/ChangeLog
++++ elfutils/libasm/ChangeLog
+@@ -87,6 +87,11 @@
+       * asm_error.c: Add new error ASM_E_IOERROR.
+       * libasmP.h: Add ASM_E_IOERROR definition.
++2005-05-31  Roland McGrath  <roland@redhat.com>
++
++      * Makefile.am (WEXTRA): New variable, substituted by configure.
++      (AM_CFLAGS): Use it in place of -Wextra.
++
+ 2005-02-15  Ulrich Drepper  <drepper@redhat.com>
+       * Makefile.am (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
+--- elfutils/libasm/Makefile.in
++++ elfutils/libasm/Makefile.in
+@@ -83,8 +83,9 @@ host_triplet = @host@
+ DIST_COMMON = $(top_srcdir)/config/eu.am $(srcdir)/Makefile.in \
+       $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \
+       $(noinst_HEADERS) $(pkginclude_HEADERS) ChangeLog
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
+ noinst_PROGRAMS = $(am__EXEEXT_1)
+-@USE_LOCKS_TRUE@am__append_1 = -lpthread
++@USE_LOCKS_TRUE@am__append_2 = -lpthread
+ subdir = libasm
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
+@@ -248,6 +249,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -279,6 +281,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -341,11 +344,11 @@ zip_LIBS = @zip_LIBS@
+ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \
+       -I$(top_srcdir)/libelf -I$(top_srcdir)/libebl \
+       -I$(top_srcdir)/libdw
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
+-          $(if $($(*F)_no_Werror),,-Werror) \
+-          $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
+-          $($(*F)_CFLAGS)
+-
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
++      $($(*F)_no_Werror),,-Werror) $(if \
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++      $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
++      $(am__append_1)
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+ CLEANFILES = *.gcno *.gcda $(am_libasm_pic_a_OBJECTS) \
+       libasm.so.$(VERSION)
+@@ -373,7 +376,7 @@ libasm_a_SOURCES = asm_begin.c asm_abort
+ libasm_pic_a_SOURCES = 
+ am_libasm_pic_a_OBJECTS = $(libasm_a_SOURCES:.c=.os)
+-libasm_so_LDLIBS = $(am__append_1)
++libasm_so_LDLIBS = $(am__append_2)
+ libasm_so_SOURCES = 
+ noinst_HEADERS = libasmP.h symbolhash.h
+ EXTRA_DIST = libasm.map
+--- elfutils/libcpu/ChangeLog
++++ elfutils/libcpu/ChangeLog
+@@ -51,6 +51,9 @@
+ 2009-01-23  Roland McGrath  <roland@redhat.com>
++      * i386_disasm.c (i386_disasm): Add abort after assert-constant for old
++      compilers that don't realize it's noreturn.
++
+       * Makefile.am (i386_parse_CFLAGS): Use quotes around command
+       substitution that can produce leading whitespace.
+@@ -380,6 +383,11 @@
+       * defs/i386.doc: New file.
+       * defs/x86_64: New file.
++2005-04-04  Roland McGrath  <roland@redhat.com>
++
++      * Makefile.am (WEXTRA): New variable, substituted by configure.
++      (AM_CFLAGS): Use it instead of -Wextra.
++
+ 2005-02-15  Ulrich Drepper  <drepper@redhat.com>
+       * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
+--- elfutils/libcpu/i386_disasm.c
++++ elfutils/libcpu/i386_disasm.c
+@@ -822,6 +822,7 @@ i386_disasm (const uint8_t **startp, con
+                       default:
+                         assert (! "INVALID not handled");
++                        abort ();
+                       }
+                   }
+                 else
+--- elfutils/libcpu/Makefile.in
++++ elfutils/libcpu/Makefile.in
+@@ -84,6 +84,7 @@ DIST_COMMON = $(top_srcdir)/config/eu.am
+       $(srcdir)/Makefile.am i386_lex.c i386_parse.c \
+       $(top_srcdir)/config/depcomp $(top_srcdir)/config/ylwrap \
+       $(am__noinst_HEADERS_DIST) ChangeLog
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
+ @MAINTAINER_MODE_TRUE@noinst_PROGRAMS = i386_gendis$(EXEEXT)
+ subdir = libcpu
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+@@ -223,6 +224,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = lex.$(<F:lex.l=)
+@@ -254,6 +256,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -316,10 +319,11 @@ zip_LIBS = @zip_LIBS@
+ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \
+       -I$(srcdir)/../libelf -I$(srcdir)/../libebl \
+       -I$(srcdir)/../libdw -I$(srcdir)/../libasm
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+       $($(*F)_no_Werror),,-Werror) $(if \
+-      $($(*F)_no_Wunused),,-Wunused -Wextra) $($(*F)_CFLAGS) -fpic \
+-      -fdollars-in-identifiers
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++      $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
++      $(am__append_1) -fpic -fdollars-in-identifiers
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+ CLEANFILES = *.gcno *.gcda $(foreach P,i386 x86_64,$P_defs \
+       $P.mnemonics)
+--- elfutils/libdw/ChangeLog
++++ elfutils/libdw/ChangeLog
+@@ -717,6 +717,10 @@
+       * Makefile.am (known-dwarf.h): Run gawk on config/known-dwarf.awk.
++2011-07-20  Mark Wielaard  <mjw@redhat.com>
++
++      * dwarf_begin_elf.c: Add fallback for be64toh if not defined.
++
+ 2011-07-14  Mark Wielaard  <mjw@redhat.com>
+       * libdw.h (dwarf_offdie): Fix documentation to mention .debug_info.
+@@ -1076,6 +1080,10 @@
+       * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too.
++2009-08-17  Roland McGrath  <roland@redhat.com>
++
++      * libdw.h: Disable extern inlines for GCC 4.2.
++
+ 2009-08-10  Roland McGrath  <roland@redhat.com>
+       * dwarf_getscopevar.c: Use dwarf_diename.
+@@ -1844,6 +1852,11 @@
+ 2005-05-31  Roland McGrath  <roland@redhat.com>
++      * Makefile.am (WEXTRA): New variable, substituted by configure.
++      (AM_CFLAGS): Use it in place of -Wextra.
++
++2005-05-31  Roland McGrath  <roland@redhat.com>
++
+       * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
+       formref offset.
+--- elfutils/libdw/dwarf_begin_elf.c
++++ elfutils/libdw/dwarf_begin_elf.c
+@@ -47,6 +47,14 @@
+ #if USE_ZLIB
+ # include <endian.h>
+ # define crc32                loser_crc32
++# ifndef be64toh
++#  include <byteswap.h>
++#  if __BYTE_ORDER == __LITTLE_ENDIAN
++#   define be64toh(x) bswap_64 (x)
++#  else
++#   define be64toh(x) (x)
++#  endif
++# endif
+ # include <zlib.h>
+ # undef crc32
+ #endif
+--- elfutils/libdw/libdw.h
++++ elfutils/libdw/libdw.h
+@@ -1003,7 +1003,7 @@ extern Dwarf_OOM dwarf_new_oom_handler (
+ /* Inline optimizations.  */
+-#ifdef __OPTIMIZE__
++#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2)
+ /* Return attribute code of given attribute.  */
+ __libdw_extern_inline unsigned int
+ dwarf_whatattr (Dwarf_Attribute *attr)
+--- elfutils/libdw/Makefile.in
++++ elfutils/libdw/Makefile.in
+@@ -84,7 +84,8 @@ DIST_COMMON = $(top_srcdir)/config/eu.am
+       $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \
+       $(include_HEADERS) $(noinst_HEADERS) $(pkginclude_HEADERS) \
+       ChangeLog
+-@BUILD_STATIC_TRUE@am__append_1 = -fpic
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@BUILD_STATIC_TRUE@am__append_2 = -fpic
+ noinst_PROGRAMS = $(am__EXEEXT_1)
+ subdir = libdw
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+@@ -298,6 +299,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -329,6 +331,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -390,10 +393,11 @@ top_srcdir = @top_srcdir@
+ zip_LIBS = @zip_LIBS@
+ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \
+       -I$(srcdir)/../libelf
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+       $($(*F)_no_Werror),,-Werror) $(if \
+-      $($(*F)_no_Wunused),,-Wunused -Wextra) $($(*F)_CFLAGS) \
+-      $(am__append_1)
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++      $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
++      $(am__append_1) $(am__append_2)
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+ CLEANFILES = *.gcno *.gcda
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+--- elfutils/libdwelf/Makefile.in
++++ elfutils/libdwelf/Makefile.in
+@@ -82,6 +82,7 @@ host_triplet = @host@
+ DIST_COMMON = $(top_srcdir)/config/eu.am $(srcdir)/Makefile.in \
+       $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \
+       $(noinst_HEADERS) $(pkginclude_HEADERS) ChangeLog
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
+ subdir = libdwelf
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
+@@ -227,6 +228,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -258,6 +260,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -320,11 +323,11 @@ zip_LIBS = @zip_LIBS@
+ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \
+       -I$(srcdir)/../libelf -I$(srcdir)/../libdw \
+       -I$(srcdir)/../libdwfl -I$(srcdir)/../libebl
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
+-          $(if $($(*F)_no_Werror),,-Werror) \
+-          $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
+-          $($(*F)_CFLAGS)
+-
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
++      $($(*F)_no_Werror),,-Werror) $(if \
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++      $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
++      $(am__append_1)
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+ CLEANFILES = *.gcno *.gcda $(am_libdwelf_pic_a_OBJECTS)
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+--- elfutils/libdwfl/ChangeLog
++++ elfutils/libdwfl/ChangeLog
+@@ -571,6 +571,21 @@
+       (dwfl_module_addrsym) (i_to_symfile): New function.
+       (dwfl_module_addrsym) (search_table): Use it.
++2013-11-09  Jan Kratochvil  <jan.kratochvil@redhat.com>
++
++      Older OS compatibility bits.
++      * linux-core-attach.c (be64toh, le64toh, be32toh, le32toh): Provide
++      fallbacks if not defined by system.
++
++2013-11-09  Jan Kratochvil  <jan.kratochvil@redhat.com>
++
++      Handle T-stopped detach for old kernels.
++      * linux-pid-attach.c (struct pid_arg): New field stopped.
++      (ptrace_attach): New parameter stoppedp.  Set it appropriately.
++      (pid_set_initial_registers): Pass the new field.
++      (pid_thread_detach): Handle the case of STOPPED for old kernels.
++      (__libdwfl_attach_state_for_pid): Initialize STOPPED.
++
+ 2013-11-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
+           Mark Wielaard  <mjw@redhat.com>
+@@ -2336,6 +2351,11 @@
+ 2005-07-21  Roland McGrath  <roland@redhat.com>
++      * Makefile.am (WEXTRA): New variable, substituted by configure.
++      (AM_CFLAGS): Use it in place of -Wextra.
++
++2005-07-21  Roland McGrath  <roland@redhat.com>
++
+       * Makefile.am (noinst_HEADERS): Add loc2c.c.
+       * test2.c (main): Check sscanf result to quiet warning.
+--- elfutils/libdwfl/linux-core-attach.c
++++ elfutils/libdwfl/linux-core-attach.c
+@@ -29,6 +29,35 @@
+ #include "libdwflP.h"
+ #include <fcntl.h>
+ #include "system.h"
++#include <endian.h>
++#include <byteswap.h>
++#if __BYTE_ORDER == __LITTLE_ENDIAN
++# ifndef be64toh
++#  define be64toh(x) bswap_64 (x)
++# endif
++# ifndef le64toh
++#  define le64toh(x) (x)
++# endif
++# ifndef be32toh
++#  define be32toh(x) bswap_32 (x)
++# endif
++# ifndef le32toh
++#  define le32toh(x) (x)
++# endif
++#else
++# ifndef be64toh
++#  define be64toh(x) (x)
++# endif
++# ifndef le64toh
++#  define le64toh(x) bswap_64 (x)
++# endif
++# ifndef be32toh
++#  define be32toh(x) (x)
++# endif
++# ifndef le32toh
++#  define le32toh(x) bswap_32 (x)
++# endif
++#endif
+ #include "../libdw/memory-access.h"
+--- elfutils/libdwfl/linux-pid-attach.c
++++ elfutils/libdwfl/linux-pid-attach.c
+@@ -255,6 +255,11 @@ void
+ internal_function
+ __libdwfl_ptrace_detach (pid_t tid, bool tid_was_stopped)
+ {
++  // Older kernels (tested kernel-2.6.18-348.12.1.el5.x86_64) need special
++  // handling of the detachment to keep the process State: T (stopped).
++  if (tid_was_stopped)
++    syscall (__NR_tkill, tid, SIGSTOP);
++
+   /* This handling is needed only on older Linux kernels such as
+      2.6.32-358.23.2.el6.ppc64.  Later kernels such as
+      3.11.7-200.fc19.x86_64 remember the T (stopped) state
+@@ -262,6 +267,15 @@ __libdwfl_ptrace_detach (pid_t tid, bool
+      PTRACE_DETACH.  */
+   ptrace (PTRACE_DETACH, tid, NULL,
+         (void *) (intptr_t) (tid_was_stopped ? SIGSTOP : 0));
++
++  if (tid_was_stopped)
++    {
++      // Wait till the SIGSTOP settles down.
++      int i;
++      for (i = 0; i < 100000; i++)
++      if (linux_proc_pid_is_stopped (tid))
++        break;
++    }
+ }
+ static void
+--- elfutils/libdwfl/Makefile.in
++++ elfutils/libdwfl/Makefile.in
+@@ -82,9 +82,10 @@ host_triplet = @host@
+ DIST_COMMON = $(top_srcdir)/config/eu.am $(srcdir)/Makefile.in \
+       $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \
+       $(noinst_HEADERS) $(pkginclude_HEADERS) ChangeLog
+-@ZLIB_TRUE@am__append_1 = gzip.c
+-@BZLIB_TRUE@am__append_2 = bzip2.c
+-@LZMA_TRUE@am__append_3 = lzma.c
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@ZLIB_TRUE@am__append_2 = gzip.c
++@BZLIB_TRUE@am__append_3 = bzip2.c
++@LZMA_TRUE@am__append_4 = lzma.c
+ subdir = libdwfl
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
+@@ -286,6 +287,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -317,6 +319,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -379,11 +382,11 @@ zip_LIBS = @zip_LIBS@
+ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. -I$(srcdir) \
+       -I$(srcdir)/../libelf -I$(srcdir)/../libebl \
+       -I$(srcdir)/../libdw -I$(srcdir)/../libdwelf
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
+-          $(if $($(*F)_no_Werror),,-Werror) \
+-          $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
+-          $($(*F)_CFLAGS)
+-
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
++      $($(*F)_no_Werror),,-Werror) $(if \
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++      $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
++      $(am__append_1)
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+ CLEANFILES = *.gcno *.gcda $(am_libdwfl_pic_a_OBJECTS)
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+@@ -413,8 +416,8 @@ libdwfl_a_SOURCES = dwfl_begin.c dwfl_en
+       dwfl_module_register_names.c dwfl_segment_report_module.c \
+       link_map.c core-file.c open.c image-header.c dwfl_frame.c \
+       frame_unwind.c dwfl_frame_pc.c linux-pid-attach.c \
+-      linux-core-attach.c dwfl_frame_regs.c $(am__append_1) \
+-      $(am__append_2) $(am__append_3)
++      linux-core-attach.c dwfl_frame_regs.c $(am__append_2) \
++      $(am__append_3) $(am__append_4)
+ libdwfl = $(libdw)
+ libdw = ../libdw/libdw.so
+ libelf = ../libelf/libelf.so
+--- elfutils/libebl/ChangeLog
++++ elfutils/libebl/ChangeLog
+@@ -765,6 +765,11 @@
+       * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency
+       tracking works right.
++2005-05-31  Roland McGrath  <roland@redhat.com>
++
++      * Makefile.am (WEXTRA): New variable, substituted by configure.
++      (AM_CFLAGS): Use it in place of -Wextra.
++
+ 2005-05-21  Ulrich Drepper  <drepper@redhat.com>
+       * libebl_x86_64.map: Add x86_64_core_note.
+--- elfutils/libebl/Makefile.in
++++ elfutils/libebl/Makefile.in
+@@ -82,6 +82,7 @@ host_triplet = @host@
+ DIST_COMMON = $(top_srcdir)/config/eu.am $(srcdir)/Makefile.in \
+       $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \
+       $(noinst_HEADERS) $(pkginclude_HEADERS) ChangeLog
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
+ subdir = libebl
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
+@@ -249,6 +250,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -280,6 +282,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -342,9 +345,11 @@ zip_LIBS = @zip_LIBS@
+ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \
+       -I$(srcdir)/../libelf -I$(srcdir)/../libdw \
+       -I$(srcdir)/../libasm
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+       $($(*F)_no_Werror),,-Werror) $(if \
+-      $($(*F)_no_Wunused),,-Wunused -Wextra) $($(*F)_CFLAGS) -fpic
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++      $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
++      $(am__append_1) -fpic
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+ CLEANFILES = *.gcno *.gcda $(am_libebl_pic_a_OBJECTS)
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+--- elfutils/libelf/ChangeLog
++++ elfutils/libelf/ChangeLog
+@@ -244,6 +244,11 @@
+       * elf-knowledge.h (SECTION_STRIP_P): Remove < SHT_NUM check.
++2011-03-10  Roland McGrath  <roland@redhat.com>
++
++      * gnuhash_xlate.h (elf_cvt_gnuhash): Avoid post-increment in bswap_32
++      argument, since some implementations are buggy macros.
++
+ 2011-02-26  Mark Wielaard  <mjw@redhat.com>
+       * elf_end.c (elf_end): Call rwlock_unlock before rwlock_fini.
+@@ -921,6 +926,11 @@
+       * elf.h: Update from glibc.
++2005-05-31  Roland McGrath  <roland@redhat.com>
++
++      * Makefile.am (WEXTRA): New variable, substituted by configure.
++      (AM_CFLAGS): Use it in place of -Wextra.
++
+ 2005-05-08  Roland McGrath  <roland@redhat.com>
+       * elf_begin.c (read_file) [_MUDFLAP]: Don't use mmap for now.
+--- elfutils/libelf/common.h
++++ elfutils/libelf/common.h
+@@ -139,7 +139,7 @@ libelf_release_all (Elf *elf)
+   (Var) = (sizeof (Var) == 1                                                \
+          ? (unsigned char) (Var)                                            \
+          : (sizeof (Var) == 2                                               \
+-            ? bswap_16 (Var)                                                \
++            ? (unsigned short int) bswap_16 (Var)                           \
+             : (sizeof (Var) == 4                                            \
+                ? bswap_32 (Var)                                             \
+                : bswap_64 (Var))))
+@@ -148,7 +148,7 @@ libelf_release_all (Elf *elf)
+   (Dst) = (sizeof (Var) == 1                                                \
+          ? (unsigned char) (Var)                                            \
+          : (sizeof (Var) == 2                                               \
+-            ? bswap_16 (Var)                                                \
++            ? (unsigned short int) bswap_16 (Var)                           \
+             : (sizeof (Var) == 4                                            \
+                ? bswap_32 (Var)                                             \
+                : bswap_64 (Var))))
+--- elfutils/libelf/gnuhash_xlate.h
++++ elfutils/libelf/gnuhash_xlate.h
+@@ -1,5 +1,5 @@
+ /* Conversion functions for versioning information.
+-   Copyright (C) 2006, 2007 Red Hat, Inc.
++   Copyright (C) 2006-2011 Red Hat, Inc.
+    This file is part of elfutils.
+    Written by Ulrich Drepper <drepper@redhat.com>, 2006.
+@@ -68,7 +68,9 @@ elf_cvt_gnuhash (void *dest, const void
+   dest32 = (Elf32_Word *) &dest64[bitmask_words];
+   while (len >= 4)
+     {
+-      *dest32++ = bswap_32 (*src32++);
++      *dest32 = bswap_32 (*src32);
++      ++dest32;
++      ++src32;
+       len -= 4;
+     }
+ }
+--- elfutils/libelf/Makefile.in
++++ elfutils/libelf/Makefile.in
+@@ -84,9 +84,10 @@ DIST_COMMON = $(top_srcdir)/config/eu.am
+       $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \
+       $(include_HEADERS) $(noinst_HEADERS) $(pkginclude_HEADERS) \
+       ChangeLog
+-@BUILD_STATIC_TRUE@am__append_1 = -fpic
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@BUILD_STATIC_TRUE@am__append_2 = -fpic
+ noinst_PROGRAMS = $(am__EXEEXT_1)
+-@USE_LOCKS_TRUE@am__append_2 = -lpthread
++@USE_LOCKS_TRUE@am__append_3 = -lpthread
+ subdir = libelf
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
+@@ -291,6 +292,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -322,6 +324,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -382,10 +385,11 @@ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ zip_LIBS = @zip_LIBS@
+ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+       $($(*F)_no_Werror),,-Werror) $(if \
+-      $($(*F)_no_Wunused),,-Wunused -Wextra) $($(*F)_CFLAGS) \
+-      $(am__append_1)
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++      $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
++      $(am__append_1) $(am__append_2)
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+ CLEANFILES = *.gcno *.gcda $(am_libelf_pic_a_OBJECTS) \
+       libelf.so.$(VERSION)
+@@ -449,7 +453,7 @@ libelf_a_SOURCES = elf_version.c elf_has
+ libelf_pic_a_SOURCES = 
+ am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os)
+-libelf_so_LDLIBS = $(am__append_2)
++libelf_so_LDLIBS = $(am__append_3)
+ libelf_so_SOURCES = 
+ noinst_HEADERS = elf.h abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \
+                version_xlate.h gnuhash_xlate.h note_xlate.h dl-hash.h
+--- elfutils/m4/Makefile.in
++++ elfutils/m4/Makefile.in
+@@ -145,6 +145,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -176,6 +177,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+--- elfutils/Makefile.in
++++ elfutils/Makefile.in
+@@ -263,6 +263,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -294,6 +295,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+--- elfutils/src/addr2line.c
++++ elfutils/src/addr2line.c
+@@ -540,10 +540,10 @@ handle_address (const char *string, Dwfl
+       bool parsed = false;
+       int i, j;
+       char *name = NULL;
+-      if (sscanf (string, "(%m[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2
++      if (sscanf (string, "(%a[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2
+         && string[i] == '\0')
+       parsed = adjust_to_section (name, &addr, dwfl);
+-      switch (sscanf (string, "%m[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j))
++      switch (sscanf (string, "%a[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j))
+       {
+       default:
+         break;
+--- elfutils/src/ChangeLog
++++ elfutils/src/ChangeLog
+@@ -1371,8 +1371,16 @@
+       * readelf.c (attr_callback): Use print_block only when we don't use
+       print_ops.
++2009-08-17  Roland McGrath  <roland@redhat.com>
++
++      * ld.h: Disable extern inlines for GCC 4.2.
++
+ 2009-08-14  Roland McGrath  <roland@redhat.com>
++      * strings.c (read_block): Conditionalize posix_fadvise use
++      on [POSIX_FADV_SEQUENTIAL].
++      From Petr Salinger <Petr.Salinger@seznam.cz>.
++
+       * ar.c (do_oper_extract): Use pathconf instead of statfs.
+ 2009-08-01  Ulrich Drepper  <drepper@redhat.com>
+@@ -1536,6 +1544,8 @@
+       * readelf.c (print_debug_frame_section): Use t instead of j formats
+       for ptrdiff_t OFFSET.
++      * addr2line.c (handle_address): Use %a instead of %m for compatibility.
++
+ 2009-01-21  Ulrich Drepper  <drepper@redhat.com>
+       * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
+@@ -1719,6 +1729,11 @@
+       that matches its PT_LOAD's p_flags &~ PF_W.  On sparc, PF_X really
+       is valid in RELRO.
++2008-03-01  Roland McGrath  <roland@redhat.com>
++
++      * readelf.c (dump_archive_index): Tweak portability hack
++      to match [__GNUC__ < 4] too.
++
+ 2008-02-29  Roland McGrath  <roland@redhat.com>
+       * readelf.c (print_attributes): Add a cast.
+@@ -1970,6 +1985,8 @@
+       * readelf.c (hex_dump): Fix rounding error in whitespace calculation.
++      * Makefile.am (readelf_no_Werror): New variable.
++
+ 2007-10-15  Roland McGrath  <roland@redhat.com>
+       * make-debug-archive.in: New file.
+@@ -2409,6 +2426,10 @@
+       * elflint.c (valid_e_machine): Add EM_ALPHA.
+       Reported by Christian Aichinger <Greek0@gmx.net>.
++      * strings.c (map_file): Define POSIX_MADV_SEQUENTIAL to
++      MADV_SEQUENTIAL if undefined.   Don't call posix_madvise
++      if neither is defined.
++
+ 2006-08-08  Ulrich Drepper  <drepper@redhat.com>
+       * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
+@@ -2485,6 +2506,10 @@
+       * Makefile.am: Add hacks to create dependency files for non-generic
+       linker.
++2006-04-05  Roland McGrath  <roland@redhat.com>
++
++      * strings.c (MAP_POPULATE): Define to 0 if undefined.
++
+ 2006-06-12  Ulrich Drepper  <drepper@redhat.com>
+       * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
+@@ -2833,6 +2858,11 @@
+       * readelf.c (print_debug_loc_section): Fix indentation for larger
+       address size.
++2005-05-31  Roland McGrath  <roland@redhat.com>
++
++      * Makefile.am (WEXTRA): New variable, substituted by configure.
++      (AM_CFLAGS): Use it in place of -Wextra.
++
+ 2005-05-30  Roland McGrath  <roland@redhat.com>
+       * readelf.c (print_debug_line_section): Print section offset of each
+--- elfutils/src/findtextrel.c
++++ elfutils/src/findtextrel.c
+@@ -502,7 +502,11 @@ ptrcompare (const void *p1, const void *
+ static void
+-check_rel (size_t nsegments, struct segments segments[nsegments],
++check_rel (size_t nsegments, struct segments segments[
++#if __GNUC__ >= 4
++                                                    nsegments
++#endif
++         ],
+          GElf_Addr addr, Elf *elf, Elf_Scn *symscn, Dwarf *dw,
+          const char *fname, bool more_than_one, void **knownsrcs)
+ {
+--- elfutils/src/ld.h
++++ elfutils/src/ld.h
+@@ -1114,6 +1114,7 @@ extern bool dynamically_linked_p (void);
+ /* Checked whether the symbol is undefined and referenced from a DSO.  */
+ extern bool linked_from_dso_p (struct scninfo *scninfo, size_t symidx);
++#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2)
+ #ifdef __GNUC_STDC_INLINE__
+ __attribute__ ((__gnu_inline__))
+ #endif
+@@ -1131,5 +1132,6 @@ linked_from_dso_p (struct scninfo *scnin
+   return sym->defined && sym->in_dso;
+ }
++#endif        /* Optimizing and not GCC 4.2.  */
+ #endif        /* ld.h */
+--- elfutils/src/Makefile.am
++++ elfutils/src/Makefile.am
+@@ -89,6 +89,11 @@ endif
+ # XXX While the file is not finished, don't warn about this
+ ldgeneric_no_Wunused = yes
++# Buggy old compilers or libc headers.
++readelf_no_Werror = yes
++strings_no_Werror = yes
++addr2line_no_Wformat = yes
++
+ readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl
+ nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl \
+          $(demanglelib)
+--- elfutils/src/Makefile.in
++++ elfutils/src/Makefile.in
+@@ -85,6 +85,7 @@ DIST_COMMON = $(top_srcdir)/config/eu.am
+       $(srcdir)/Makefile.am ldlex.c ldscript.c \
+       $(top_srcdir)/config/depcomp $(top_srcdir)/config/ylwrap \
+       $(noinst_HEADERS) ChangeLog
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
+ bin_PROGRAMS = readelf$(EXEEXT) nm$(EXEEXT) size$(EXEEXT) \
+       strip$(EXEEXT) ld$(EXEEXT) elflint$(EXEEXT) \
+       findtextrel$(EXEEXT) addr2line$(EXEEXT) elfcmp$(EXEEXT) \
+@@ -93,9 +94,9 @@ bin_PROGRAMS = readelf$(EXEEXT) nm$(EXEE
+ @NATIVE_LD_FALSE@noinst_PROGRAMS = $(am__EXEEXT_1)
+ # We never build this library but we need to get the dependency files
+ # of all the linker backends that might be used in a non-generic linker.
+-@NEVER_TRUE@am__append_1 = libdummy.a
++@NEVER_TRUE@am__append_2 = libdummy.a
+ # -ldl is always needed for libebl.
+-@NATIVE_LD_TRUE@am__append_2 = libld_elf.a
++@NATIVE_LD_TRUE@am__append_3 = libld_elf.a
+ @NATIVE_LD_TRUE@am_libld_elf_i386_pic_a_OBJECTS =
+ subdir = src
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+@@ -159,7 +160,7 @@ am_ld_OBJECTS = ld.$(OBJEXT) ldgeneric.$
+       ldscript.$(OBJEXT) symbolhash.$(OBJEXT) sectionhash.$(OBJEXT) \
+       versionhash.$(OBJEXT)
+ ld_OBJECTS = $(am_ld_OBJECTS)
+-ld_DEPENDENCIES = $(libebl) $(libelf) $(libeu) $(am__append_2)
++ld_DEPENDENCIES = $(libebl) $(libelf) $(libeu) $(am__append_3)
+ ld_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(ld_LDFLAGS) $(LDFLAGS) -o \
+       $@
+ am_libld_elf_i386_so_OBJECTS =
+@@ -340,6 +341,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -371,6 +373,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -434,11 +437,11 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr
+       -I$(srcdir)/../libelf -I$(srcdir)/../libebl \
+       -I$(srcdir)/../libdw -I$(srcdir)/../libdwelf \
+       -I$(srcdir)/../libdwfl -I$(srcdir)/../libasm
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
+-          $(if $($(*F)_no_Werror),,-Werror) \
+-          $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
+-          $($(*F)_CFLAGS)
+-
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
++      $($(*F)_no_Werror),,-Werror) $(if \
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++      $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
++      $(am__append_1)
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+ CLEANFILES = *.gcno *.gcda make-debug-archive none_ld.os \
+       $(ld_modules:.c=.os) *.gconv
+@@ -452,8 +455,8 @@ AM_LFLAGS = -Pld -olex.yy.c
+ native_ld = @native_ld@
+ ld_dsos = libld_elf_i386_pic.a
+ @NATIVE_LD_FALSE@noinst_LIBRARIES = libld_elf.a libar.a $(ld_dsos) \
+-@NATIVE_LD_FALSE@     $(am__append_1)
+-@NATIVE_LD_TRUE@noinst_LIBRARIES = libld_elf.a libar.a $(am__append_1)
++@NATIVE_LD_FALSE@     $(am__append_2)
++@NATIVE_LD_TRUE@noinst_LIBRARIES = libld_elf.a libar.a $(am__append_2)
+ @NATIVE_LD_TRUE@native_ld_cflags = -DBASE_ELF_NAME=elf_$(base_cpu)
+ @NEVER_TRUE@libdummy_a_SOURCES = i386_ld.c
+ ld_SOURCES = ld.c ldgeneric.c ldlex.l ldscript.y symbolhash.c sectionhash.c \
+@@ -479,13 +482,18 @@ libeu = ../lib/libeu.a
+ # XXX While the file is not finished, don't warn about this
+ ldgeneric_no_Wunused = yes
++
++# Buggy old compilers or libc headers.
++readelf_no_Werror = yes
++strings_no_Werror = yes
++addr2line_no_Wformat = yes
+ readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl
+ nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl \
+          $(demanglelib)
+ size_LDADD = $(libelf) $(libeu)
+ strip_LDADD = $(libebl) $(libelf) $(libeu) -ldl
+-ld_LDADD = $(libebl) $(libelf) $(libeu) -ldl $(am__append_2)
++ld_LDADD = $(libebl) $(libelf) $(libeu) -ldl $(am__append_3)
+ ld_LDFLAGS = -rdynamic
+ elflint_LDADD = $(libebl) $(libelf) $(libeu) -ldl
+ findtextrel_LDADD = $(libdw) $(libelf)
+--- elfutils/src/readelf.c
++++ elfutils/src/readelf.c
+@@ -4368,10 +4368,12 @@ listptr_base (struct listptr *p)
+   return base;
+ }
++static const char *listptr_name;
++
+ static int
+-compare_listptr (const void *a, const void *b, void *arg)
++compare_listptr (const void *a, const void *b)
+ {
+-  const char *name = arg;
++  const char *const name = listptr_name;
+   struct listptr *p1 = (void *) a;
+   struct listptr *p2 = (void *) b;
+@@ -4467,8 +4469,11 @@ static void
+ sort_listptr (struct listptr_table *table, const char *name)
+ {
+   if (table->n > 0)
+-    qsort_r (table->table, table->n, sizeof table->table[0],
+-           &compare_listptr, (void *) name);
++    {
++      listptr_name = name;
++      qsort (table->table, table->n, sizeof table->table[0],
++           &compare_listptr);
++    }
+ }
+ static bool
+@@ -9539,7 +9544,7 @@ dump_archive_index (Elf *elf, const char
+         if (unlikely (elf_rand (elf, as_off) == 0)
+             || unlikely ((subelf = elf_begin (-1, ELF_C_READ_MMAP, elf))
+                          == NULL))
+-#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7)
++#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7) || __GNUC__ < 4
+           while (1)
+ #endif
+             error (EXIT_FAILURE, 0,
+--- elfutils/src/strings.c
++++ elfutils/src/strings.c
+@@ -43,6 +43,10 @@
+ #include <system.h>
++#ifndef MAP_POPULATE
++# define MAP_POPULATE 0
++#endif
++
+ /* Prototypes of local functions.  */
+ static int read_fd (int fd, const char *fname, off64_t fdlen);
+@@ -489,8 +493,13 @@ map_file (int fd, off64_t start_off, off
+                   fd, start_off);
+       if (mem != MAP_FAILED)
+       {
++#if !defined POSIX_MADV_SEQUENTIAL && defined MADV_SEQUENTIAL
++# define POSIX_MADV_SEQUENTIAL MADV_SEQUENTIAL
++#endif
++#ifdef POSIX_MADV_SEQUENTIAL
+         /* We will go through the mapping sequentially.  */
+         (void) posix_madvise (mem, map_size, POSIX_MADV_SEQUENTIAL);
++#endif
+         break;
+       }
+       if (errno != EINVAL && errno != ENOMEM)
+@@ -581,9 +590,11 @@ read_block (int fd, const char *fname, o
+       elfmap_off = from & ~(ps - 1);
+       elfmap_base = elfmap = map_file (fd, elfmap_off, fdlen, &elfmap_size);
++#ifdef POSIX_FADV_SEQUENTIAL
+       if (unlikely (elfmap == MAP_FAILED))
+       /* Let the kernel know we are going to read everything in sequence.  */
+       (void) posix_fadvise (fd, 0, 0, POSIX_FADV_SEQUENTIAL);
++#endif
+     }
+   if (unlikely (elfmap == MAP_FAILED))
+--- elfutils/src/strip.c
++++ elfutils/src/strip.c
+@@ -45,6 +45,12 @@
+ #include <libebl.h>
+ #include <system.h>
++#ifdef HAVE_FUTIMES
++# define FUTIMES(fd, fname, tvp) futimes (fd, tvp)
++#else
++# define FUTIMES(fd, fname, tvp) utimes (fname, tvp)
++#endif
++
+ typedef uint8_t GElf_Byte;
+ /* Name and version of program.  */
+@@ -318,8 +324,18 @@ process_file (const char *fname)
+       /* If we have to preserve the timestamp, we need it in the
+        format utimes() understands.  */
++#ifdef HAVE_STRUCT_STAT_ST_ATIM
+       TIMESPEC_TO_TIMEVAL (&tv[0], &pre_st.st_atim);
++#else
++      tv[0].tv_sec = pre_st.st_atime;
++      tv[0].tv_usec = 0;
++#endif
++#ifdef HAVE_STRUCT_STAT_ST_MTIM
+       TIMESPEC_TO_TIMEVAL (&tv[1], &pre_st.st_mtim);
++#else
++      tv[1].tv_sec = pre_st.st_atime;
++      tv[1].tv_usec = 0;
++#endif
+     }
+   /* Open the file.  */
+@@ -2091,7 +2107,7 @@ while computing checksum for debug infor
+   /* If requested, preserve the timestamp.  */
+   if (tvp != NULL)
+     {
+-      if (futimes (fd, tvp) != 0)
++      if (FUTIMES (fd, output_fname, tvp) != 0)
+       {
+         error (0, errno, gettext ("\
+ cannot set access and modification date of '%s'"),
+@@ -2148,7 +2164,7 @@ handle_ar (int fd, Elf *elf, const char
+   if (tvp != NULL)
+     {
+-      if (unlikely (futimes (fd, tvp) != 0))
++      if (unlikely (FUTIMES (fd, fname, tvp) != 0))
+       {
+         error (0, errno, gettext ("\
+ cannot set access and modification date of '%s'"), fname);
+--- elfutils/tests/backtrace.c
++++ elfutils/tests/backtrace.c
+@@ -36,6 +36,7 @@
+ #include <fcntl.h>
+ #include <string.h>
+ #include <argp.h>
++#include <sys/syscall.h>
+ #include ELFUTILS_HEADER(dwfl)
+ #ifndef __linux__
+--- elfutils/tests/ChangeLog
++++ elfutils/tests/ChangeLog
+@@ -421,6 +421,13 @@
+ 2013-12-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
++      Handle T-stopped detach for old kernels.
++      * backtrace.c: Include sys/syscall.h.
++      (linux_proc_pid_is_stopped): New function.
++      (ptrace_detach_stopped): Handle old kernels.
++
++2013-12-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
++
+       * Makefile.am (check_PROGRAMS): Add backtrace, backtrace-child,
+       backtrace-data and backtrace-dwarf.
+       (BUILT_SOURCES, clean-local, backtrace-child-biarch): New.
+@@ -1285,6 +1292,8 @@
+ 2008-01-21  Roland McGrath  <roland@redhat.com>
++      * line2addr.c (main): Revert last change.
++
+       * testfile45.S.bz2: Add tests for cltq, cqto.
+       * testfile45.expect.bz2: Adjust.
+@@ -1993,6 +2002,11 @@
+       * Makefile.am (TESTS): Add run-elflint-test.sh.
+       (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2.
++2005-05-31  Roland McGrath  <roland@redhat.com>
++
++      * Makefile.am (WEXTRA): New variable, substituted by configure.
++      (AM_CFLAGS): Use it in place of -Wextra.
++
+ 2005-05-24  Ulrich Drepper  <drepper@redhat.com>
+       * get-files.c (main): Use correct format specifier.
+--- elfutils/tests/line2addr.c
++++ elfutils/tests/line2addr.c
+@@ -124,7 +124,7 @@ main (int argc, char *argv[])
+     {
+       struct args a = { .arg = argv[cnt] };
+-      switch (sscanf (a.arg, "%m[^:]:%d", &a.file, &a.line))
++      switch (sscanf (a.arg, "%a[^:]:%d", &a.file, &a.line))
+       {
+       default:
+       case 0:
+--- elfutils/tests/Makefile.am
++++ elfutils/tests/Makefile.am
+@@ -365,6 +365,7 @@ get_lines_LDADD = $(libdw) $(libelf)
+ get_files_LDADD = $(libdw) $(libelf)
+ get_aranges_LDADD = $(libdw) $(libelf)
+ allfcts_LDADD = $(libdw) $(libelf)
++line2addr_no_Wformat = yes
+ line2addr_LDADD = $(libdw)
+ addrscopes_LDADD = $(libdw)
+ funcscopes_LDADD = $(libdw)
+--- elfutils/tests/Makefile.in
++++ elfutils/tests/Makefile.in
+@@ -80,13 +80,14 @@ host_triplet = @host@
+ DIST_COMMON = $(top_srcdir)/config/eu.am $(srcdir)/Makefile.in \
+       $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \
+       $(top_srcdir)/config/test-driver ChangeLog
+-@STANDALONE_FALSE@am__append_1 = -I$(top_srcdir)/libasm -I$(top_srcdir)/libdw \
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@STANDALONE_FALSE@am__append_2 = -I$(top_srcdir)/libasm -I$(top_srcdir)/libdw \
+ @STANDALONE_FALSE@        -I$(top_srcdir)/libdwfl -I$(top_srcdir)/libdwelf \
+ @STANDALONE_FALSE@        -I$(top_srcdir)/libebl -I$(top_srcdir)/libelf \
+ @STANDALONE_FALSE@        -I$(top_srcdir)/lib -I..
+-@STANDALONE_FALSE@am__append_2 = -Wl,-rpath-link,../libasm:../libdw:../libelf
+-@TESTS_RPATH_TRUE@am__append_3 = -Wl,-rpath,$(BUILD_RPATH)
++@STANDALONE_FALSE@am__append_3 = -Wl,-rpath-link,../libasm:../libdw:../libelf
++@TESTS_RPATH_TRUE@am__append_4 = -Wl,-rpath,$(BUILD_RPATH)
+ check_PROGRAMS = arextract$(EXEEXT) arsymtest$(EXEEXT) \
+       newfile$(EXEEXT) saridx$(EXEEXT) scnnames$(EXEEXT) \
+       sectiondump$(EXEEXT) showptable$(EXEEXT) update1$(EXEEXT) \
+@@ -113,7 +114,7 @@ check_PROGRAMS = arextract$(EXEEXT) arsy
+       deleted$(EXEEXT) deleted-lib.so$(EXEEXT) \
+       aggregate_size$(EXEEXT) vdsosyms$(EXEEXT) $(am__EXEEXT_1) \
+       $(am__EXEEXT_2) $(am__EXEEXT_4)
+-@BIARCH_TRUE@am__append_4 = backtrace-child-biarch
++@BIARCH_TRUE@am__append_5 = backtrace-child-biarch
+ TESTS = run-arextract.sh run-arsymtest.sh newfile$(EXEEXT) \
+       test-nlist$(EXEEXT) update1$(EXEEXT) update2$(EXEEXT) \
+       update3$(EXEEXT) update4$(EXEEXT) run-show-die-info.sh \
+@@ -159,14 +160,14 @@ TESTS = run-arextract.sh run-arsymtest.s
+       run-stack-i-test.sh run-readelf-dwz-multi.sh \
+       run-allfcts-multi.sh run-deleted.sh run-linkmap-cut.sh \
+       run-aggregate-size.sh vdsosyms$(EXEEXT) run-readelf-A.sh \
+-      $(am__EXEEXT_2) $(am__append_7) $(am__append_8) \
++      $(am__EXEEXT_2) $(am__append_8) $(am__append_9) \
+       $(am__EXEEXT_4)
+-@STANDALONE_FALSE@am__append_5 = msg_tst md5-sha1-test
+ @STANDALONE_FALSE@am__append_6 = msg_tst md5-sha1-test
+-@LZMA_TRUE@am__append_7 = run-readelf-s.sh run-dwflsyms.sh
+-@ZLIB_TRUE@am__append_8 = run-readelf-zdebug.sh
+-@HAVE_LIBASM_TRUE@am__append_9 = $(asm_TESTS)
++@STANDALONE_FALSE@am__append_7 = msg_tst md5-sha1-test
++@LZMA_TRUE@am__append_8 = run-readelf-s.sh run-dwflsyms.sh
++@ZLIB_TRUE@am__append_9 = run-readelf-zdebug.sh
+ @HAVE_LIBASM_TRUE@am__append_10 = $(asm_TESTS)
++@HAVE_LIBASM_TRUE@am__append_11 = $(asm_TESTS)
+ subdir = tests
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
+@@ -787,6 +788,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -818,6 +820,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -877,12 +880,12 @@ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ zip_LIBS = @zip_LIBS@
+-AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. $(am__append_1)
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
+-          $(if $($(*F)_no_Werror),,-Werror) \
+-          $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
+-          $($(*F)_CFLAGS)
+-
++AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. $(am__append_2)
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
++      $($(*F)_no_Werror),,-Werror) $(if \
++      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++      $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
++      $(am__append_1)
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+ CLEANFILES = *.gcno *.gcda
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+@@ -890,7 +893,7 @@ textrel_msg = echo "WARNING: TEXTREL fou
+ @FATAL_TEXTREL_TRUE@textrel_found = $(textrel_msg); exit 1
+ textrel_check = if $(READELF) -d $@ | fgrep -q TEXTREL; then $(textrel_found); fi
+ BUILD_RPATH = \$$ORIGIN/../libasm:\$$ORIGIN/../libdw:\$$ORIGIN/../backends:\$$ORIGIN/../libelf
+-AM_LDFLAGS = $(am__append_2) $(am__append_3)
++AM_LDFLAGS = $(am__append_3) $(am__append_4)
+ @TESTS_RPATH_FALSE@tests_rpath = no
+ @TESTS_RPATH_TRUE@tests_rpath = yes
+ asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \
+@@ -1106,6 +1109,7 @@ get_lines_LDADD = $(libdw) $(libelf)
+ get_files_LDADD = $(libdw) $(libelf)
+ get_aranges_LDADD = $(libdw) $(libelf)
+ allfcts_LDADD = $(libdw) $(libelf)
++line2addr_no_Wformat = yes
+ line2addr_LDADD = $(libdw)
+ addrscopes_LDADD = $(libdw)
+ funcscopes_LDADD = $(libdw)
diff --git a/elfutils/patches/elfutils-portability.patch b/elfutils/patches/elfutils-portability.patch
deleted file mode 100644 (file)
index d4fa95f..0000000
+++ /dev/null
@@ -1,1245 +0,0 @@
---- elfutils/backends/ChangeLog
-+++ elfutils/backends/ChangeLog
-@@ -111,6 +111,10 @@
-       * ppc_attrs.c (ppc_check_object_attribute): Handle tag
-       GNU_Power_ABI_Struct_Return.
-+2009-01-23  Roland McGrath  <roland@redhat.com>
-+
-+      * Makefile.am (libebl_%.so): Use $(LD_AS_NEEDED).
-+
- 2008-10-04  Ulrich Drepper  <drepper@redhat.com>
-       * i386_reloc.def: Fix entries for TLS_GOTDESC, TLS_DESC_CALL, and
-@@ -438,6 +442,11 @@
-       * sparc_init.c: Likewise.
-       * x86_64_init.c: Likewise.
-+2005-11-22  Roland McGrath  <roland@redhat.com>
-+
-+      * Makefile.am (LD_AS_NEEDED): New variable, substituted by configure.
-+      (libebl_%.so rule): Use it in place of -Wl,--as-needed.
-+
- 2005-11-19  Roland McGrath  <roland@redhat.com>
-       * ppc64_reloc.def: REL30 -> ADDR30.
-@@ -460,6 +469,9 @@
-       * Makefile.am (uninstall): Don't try to remove $(pkgincludedir).
-       (CLEANFILES): Add libebl_$(m).so.
-+      * Makefile.am (WEXTRA): New variable, substituted by configure.
-+      (AM_CFLAGS): Use it in place of -Wextra.
-+
-       * ppc_reloc.def: Update bits per Alan Modra <amodra@bigpond.net.au>.
-       * ppc64_reloc.def: Likewise.
---- elfutils/backends/Makefile.am
-+++ elfutils/backends/Makefile.am
-@@ -103,7 +103,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a
-       $(LINK) -shared -o $(@:.map=.so) \
-               -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \
-               -Wl,--version-script,$(@:.so=.map) \
--              -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw) $(libmudflap)
-+              -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw) $(libmudflap)
-       $(textrel_check)
- libebl_i386.so: $(cpu_i386)
---- elfutils/backends/Makefile.in
-+++ elfutils/backends/Makefile.in
-@@ -165,6 +165,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
-+LD_AS_NEEDED = @LD_AS_NEEDED@
- LEX = @LEX@
- LEXLIB = @LEXLIB@
- LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -194,6 +195,7 @@ SHELL = @SHELL@
- STRIP = @STRIP@
- USE_NLS = @USE_NLS@
- VERSION = @VERSION@
-+WEXTRA = @WEXTRA@
- XGETTEXT = @XGETTEXT@
- XGETTEXT_015 = @XGETTEXT_015@
- XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-@@ -257,7 +259,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
-       -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw
- AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
-       $($(*F)_no_Werror),,-Werror) $(if \
--      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
-+      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
-       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
-       $(am__append_1)
- @MUDFLAP_FALSE@libmudflap = 
-@@ -698,7 +700,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a
-       $(LINK) -shared -o $(@:.map=.so) \
-               -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \
-               -Wl,--version-script,$(@:.so=.map) \
--              -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw) $(libmudflap)
-+              -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw) $(libmudflap)
-       $(textrel_check)
- libebl_i386.so: $(cpu_i386)
---- elfutils/ChangeLog
-+++ elfutils/ChangeLog
-@@ -13,6 +13,10 @@
-       * configure.ac (LOCALEDIR, DATADIRNAME): Removed.
-+2009-11-22  Roland McGrath  <roland@redhat.com>
-+
-+      * configure.ac: Use sed and expr instead of modern bash extensions.
-+
- 2009-09-21  Ulrich Drepper  <drepper@redhat.com>
-       * configure.ac: Update for more modern autoconf.
-@@ -21,6 +25,10 @@
-       * configure.ac (zip_LIBS): Check for liblzma too.
-+2009-08-17  Roland McGrath  <roland@redhat.com>
-+
-+      * configure.ac: Check for -fgnu89-inline; add it to WEXTRA if it works.
-+
- 2009-04-19  Roland McGrath  <roland@redhat.com>
-       * configure.ac (eu_version): Round down here, not in version.h macros.
-@@ -32,6 +40,8 @@
- 2009-01-23  Roland McGrath  <roland@redhat.com>
-+      * configure.ac: Check for __builtin_popcount.
-+
-       * configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3.
-       * configure.ac (__thread check): Use AC_LINK_IFELSE, in case of
-@@ -112,6 +122,10 @@
-       * configure.ac: Add dummy automake conditional to get dependencies
-       for non-generic linker right.  See src/Makefile.am.
-+2005-11-22  Roland McGrath  <roland@redhat.com>
-+
-+      * configure.ac: Check for --as-needed linker option.
-+
- 2005-11-18  Roland McGrath  <roland@redhat.com>
-       * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable.
-@@ -159,6 +173,17 @@
-       * Makefile.am (all_SUBDIRS): Add libdwfl.
-       * configure.ac: Write libdwfl/Makefile.
-+2005-05-31  Roland McGrath  <roland@redhat.com>
-+
-+      * configure.ac (WEXTRA): Check for -Wextra and set this substitution.
-+
-+      * configure.ac: Check for struct stat st_?tim members.
-+      * src/strip.c (process_file): Use st_?time if st_?tim are not there.
-+
-+      * configure.ac: Check for futimes function.
-+      * src/strip.c (handle_elf) [! HAVE_FUTIMES]: Use utimes instead.
-+      (handle_ar) [! HAVE_FUTIMES]: Likewise.
-+
- 2005-05-19  Roland McGrath  <roland@redhat.com>
-       * configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros.
---- elfutils/config/eu.am
-+++ elfutils/config/eu.am
-@@ -25,11 +25,14 @@
- ## <http://www.openinventionnetwork.com>.
- ##
-+WEXTRA = @WEXTRA@
-+LD_AS_NEEDED = @LD_AS_NEEDED@
-+
- DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"'
- INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
- AM_CFLAGS = -std=gnu99 -Wall -Wshadow \
-           $(if $($(*F)_no_Werror),,-Werror) \
--          $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
-+          $(if $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) \
-           $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) \
-           $($(*F)_CFLAGS)
---- elfutils/config/Makefile.in
-+++ elfutils/config/Makefile.in
-@@ -76,6 +76,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
-+LD_AS_NEEDED = @LD_AS_NEEDED@
- LEX = @LEX@
- LEXLIB = @LEXLIB@
- LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -105,6 +106,7 @@ SHELL = @SHELL@
- STRIP = @STRIP@
- USE_NLS = @USE_NLS@
- VERSION = @VERSION@
-+WEXTRA = @WEXTRA@
- XGETTEXT = @XGETTEXT@
- XGETTEXT_015 = @XGETTEXT_015@
- XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
---- elfutils/config.h.in
-+++ elfutils/config.h.in
-@@ -1,5 +1,8 @@
- /* config.h.in.  Generated from configure.ac by autoheader.  */
-+/* Have __builtin_popcount. */
-+#undef HAVE_BUILTIN_POPCOUNT
-+
- /* $libdir subdirectory containing libebl modules. */
- #undef LIBEBL_SUBDIR
-@@ -55,4 +58,7 @@
- /* Define for large files, on AIX-style hosts. */
- #undef _LARGE_FILES
-+/* Stubbed out if missing compiler support. */
-+#undef __thread
-+
- #include <eu-config.h>
---- elfutils/configure
-+++ elfutils/configure
-@@ -602,6 +602,8 @@ NEVER_TRUE
- base_cpu
- NATIVE_LD_FALSE
- NATIVE_LD_TRUE
-+LD_AS_NEEDED
-+WEXTRA
- LEXLIB
- LEX_OUTPUT_ROOT
- LEX
-@@ -3856,6 +3858,130 @@ if test "x$ac_cv_c99" != xyes; then :
-   as_fn_error $? "gcc with C99 support required" "$LINENO" 5
- fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wextra option to $CC" >&5
-+$as_echo_n "checking for -Wextra option to $CC... " >&6; }
-+if test "${ac_cv_cc_wextra+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  old_CFLAGS="$CFLAGS"
-+CFLAGS="$CFLAGS -Wextra"
-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+void foo (void) { }
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_cv_cc_wextra=yes
-+else
-+  ac_cv_cc_wextra=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+CFLAGS="$old_CFLAGS"
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_wextra" >&5
-+$as_echo "$ac_cv_cc_wextra" >&6; }
-+
-+if test "x$ac_cv_cc_wextra" = xyes; then :
-+  WEXTRA=-Wextra
-+else
-+  WEXTRA=-W
-+fi
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fgnu89-inline option to $CC" >&5
-+$as_echo_n "checking for -fgnu89-inline option to $CC... " >&6; }
-+if test "${ac_cv_cc_gnu89_inline+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  old_CFLAGS="$CFLAGS"
-+CFLAGS="$CFLAGS -fgnu89-inline -Werror"
-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+void foo (void)
-+{
-+  inline void bar (void) {}
-+  bar ();
-+}
-+extern inline void baz (void) {}
-+
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  ac_cv_cc_gnu89_inline=yes
-+else
-+  ac_cv_cc_gnu89_inline=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+CFLAGS="$old_CFLAGS"
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_gnu89_inline" >&5
-+$as_echo "$ac_cv_cc_gnu89_inline" >&6; }
-+if test "x$ac_cv_cc_gnu89_inline" = xyes; then :
-+  WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline"
-+fi
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --as-needed linker option" >&5
-+$as_echo_n "checking for --as-needed linker option... " >&6; }
-+if test "${ac_cv_as_needed+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  cat > conftest.c <<EOF
-+int main (void) { return 0; }
-+EOF
-+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
-+                          -fPIC -shared -o conftest.so conftest.c
-+                          -Wl,--as-needed 1>&5'
-+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }; }
-+then
-+  ac_cv_as_needed=yes
-+else
-+  ac_cv_as_needed=no
-+fi
-+rm -f conftest*
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_as_needed" >&5
-+$as_echo "$ac_cv_as_needed" >&6; }
-+if test "x$ac_cv_as_needed" = xyes; then :
-+  LD_AS_NEEDED=-Wl,--as-needed
-+else
-+  LD_AS_NEEDED=
-+fi
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_popcount" >&5
-+$as_echo_n "checking for __builtin_popcount... " >&6; }
-+if test "${ac_cv_popcount+set}" = set; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+exit (__builtin_popcount (127));
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  ac_cv_popcount=yes
-+else
-+  ac_cv_popcount=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_popcount" >&5
-+$as_echo "$ac_cv_popcount" >&6; }
-+if test "x$ac_cv_popcount" = xyes; then :
-+
-+$as_echo "#define HAVE_BUILTIN_POPCOUNT 1" >>confdefs.h
-+
-+fi
-+
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __thread support" >&5
- $as_echo_n "checking for __thread support... " >&6; }
- if test "${ac_cv_tls+set}" = set; then :
-@@ -3892,7 +4018,13 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tls" >&5
- $as_echo "$ac_cv_tls" >&6; }
- if test "x$ac_cv_tls" != xyes; then :
--  as_fn_error $? "__thread support required" "$LINENO" 5
-+  if test "$use_locks" = yes; then :
-+  as_fn_error $? "--enable-thread-safety requires __thread support" "$LINENO" 5
-+else
-+
-+$as_echo "#define __thread /* empty: no multi-thread support */" >>confdefs.h
-+
-+fi
- fi
- # Check whether --enable-largefile was given.
-@@ -4878,7 +5010,7 @@ ac_config_files="$ac_config_files versio
- # 1.234<whatever> -> 1234<whatever>
- case "$PACKAGE_VERSION" in
--[0-9].*) eu_version="${PACKAGE_VERSION/./}" ;;
-+[0-9].*) eu_version=`echo "$PACKAGE_VERSION" | sed 's@\.@@'` ;;
- *)               as_fn_error $? "confused by version number '$PACKAGE_VERSION'" "$LINENO" 5 ;;
- esac
- case "$eu_version" in
-@@ -4907,7 +5039,7 @@ case "$eu_version" in
- esac
- # Round up to the next release API (x.y) version.
--eu_version=$[($eu_version + 999) / 1000]
-+eu_version=`expr \( $eu_version + 999 \) / 1000`
- cat >confcache <<\_ACEOF
- # This file is a shell script that caches the results of configure
---- elfutils/configure.ac
-+++ elfutils/configure.ac
-@@ -70,6 +70,54 @@ CFLAGS="$old_CFLAGS"])
- AS_IF([test "x$ac_cv_c99" != xyes],
-       AC_MSG_ERROR([gcc with C99 support required]))
-+AC_CACHE_CHECK([for -Wextra option to $CC], ac_cv_cc_wextra, [dnl
-+old_CFLAGS="$CFLAGS"
-+CFLAGS="$CFLAGS -Wextra"
-+AC_COMPILE_IFELSE([void foo (void) { }],
-+                ac_cv_cc_wextra=yes, ac_cv_cc_wextra=no)
-+CFLAGS="$old_CFLAGS"])
-+AC_SUBST(WEXTRA)
-+AS_IF([test "x$ac_cv_cc_wextra" = xyes], [WEXTRA=-Wextra], [WEXTRA=-W])
-+
-+AC_CACHE_CHECK([for -fgnu89-inline option to $CC], ac_cv_cc_gnu89_inline, [dnl
-+old_CFLAGS="$CFLAGS"
-+CFLAGS="$CFLAGS -fgnu89-inline -Werror"
-+AC_COMPILE_IFELSE([
-+void foo (void)
-+{
-+  inline void bar (void) {}
-+  bar ();
-+}
-+extern inline void baz (void) {}
-+], ac_cv_cc_gnu89_inline=yes, ac_cv_cc_gnu89_inline=no)
-+CFLAGS="$old_CFLAGS"])
-+AS_IF([test "x$ac_cv_cc_gnu89_inline" = xyes],
-+      [WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline"])
-+
-+AC_CACHE_CHECK([for --as-needed linker option],
-+             ac_cv_as_needed, [dnl
-+cat > conftest.c <<EOF
-+int main (void) { return 0; }
-+EOF
-+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
-+                          -fPIC -shared -o conftest.so conftest.c
-+                          -Wl,--as-needed 1>&AS_MESSAGE_LOG_FD])
-+then
-+  ac_cv_as_needed=yes
-+else
-+  ac_cv_as_needed=no
-+fi
-+rm -f conftest*])
-+AS_IF([test "x$ac_cv_as_needed" = xyes],
-+      [LD_AS_NEEDED=-Wl,--as-needed], [LD_AS_NEEDED=])
-+AC_SUBST(LD_AS_NEEDED)
-+
-+AC_CACHE_CHECK([for __builtin_popcount], ac_cv_popcount, [dnl
-+AC_LINK_IFELSE([AC_LANG_PROGRAM([], [[exit (__builtin_popcount (127));]])],
-+             ac_cv_popcount=yes, ac_cv_popcount=no)])
-+AS_IF([test "x$ac_cv_popcount" = xyes],
-+      [AC_DEFINE([HAVE_BUILTIN_POPCOUNT], [1], [Have __builtin_popcount.])])
-+
- AC_CACHE_CHECK([for __thread support], ac_cv_tls, [dnl
- # Use the same flags that we use for our DSOs, so the test is representative.
- # Some old compiler/linker/libc combinations fail some ways and not others.
-@@ -85,7 +133,10 @@ static __thread int a; int foo (int b) {
- CFLAGS="$save_CFLAGS"
- LDFLAGS="$save_LDFLAGS"])
- AS_IF([test "x$ac_cv_tls" != xyes],
--      AC_MSG_ERROR([__thread support required]))
-+      [AS_IF([test "$use_locks" = yes],
-+           [AC_MSG_ERROR([--enable-thread-safety requires __thread support])],
-+           [AC_DEFINE([__thread], [/* empty: no multi-thread support */],
-+                      [Stubbed out if missing compiler support.])])])
- dnl This test must come as early as possible after the compiler configuration
- dnl tests, because the choice of the file model can (in principle) affect
-@@ -248,7 +299,7 @@ AC_SUBST([eu_version])
- # 1.234<whatever> -> 1234<whatever>
- case "$PACKAGE_VERSION" in
--[[0-9]].*) eu_version="${PACKAGE_VERSION/./}" ;;
-+[[0-9]].*) eu_version=`echo "$PACKAGE_VERSION" | sed 's@\.@@'` ;;
- *)               AC_MSG_ERROR([confused by version number '$PACKAGE_VERSION']) ;;
- esac
- case "$eu_version" in
-@@ -277,6 +328,6 @@ case "$eu_version" in
- esac
- # Round up to the next release API (x.y) version.
--[eu_version=$[($eu_version + 999) / 1000]]
-+eu_version=`expr \( $eu_version + 999 \) / 1000`
- AC_OUTPUT
---- elfutils/lib/ChangeLog
-+++ elfutils/lib/ChangeLog
-@@ -14,6 +14,9 @@
- 2009-01-23  Roland McGrath  <roland@redhat.com>
-+      * eu-config.h [! HAVE_BUILTIN_POPCOUNT]
-+      (__builtin_popcount): New inline function.
-+
-       * eu-config.h: Add multiple inclusion protection.
- 2009-01-17  Ulrich Drepper  <drepper@redhat.com>
-@@ -70,6 +73,11 @@
-       * Makefile.am (libeu_a_SOURCES): Add it.
-       * system.h: Declare crc32_file.
-+2005-02-07  Roland McGrath  <roland@redhat.com>
-+
-+      * Makefile.am (WEXTRA): New variable, substituted by configure.
-+      (AM_CFLAGS): Use it in place of -Wextra.
-+
- 2005-04-30  Ulrich Drepper  <drepper@redhat.com>
-       * Makefile.am: Use -ffunction-sections for xmalloc.c.
---- elfutils/lib/eu-config.h
-+++ elfutils/lib/eu-config.h
-@@ -182,6 +182,17 @@ asm (".section predict_data, \"aw\"; .pr
- /* This macro is used by the tests conditionalize for standalone building.  */
- #define ELFUTILS_HEADER(name) <lib##name.h>
-+#ifndef HAVE_BUILTIN_POPCOUNT
-+# define __builtin_popcount hakmem_popcount
-+static inline unsigned int __attribute__ ((unused))
-+hakmem_popcount (unsigned int x)
-+{
-+  /* HAKMEM 169 */
-+  unsigned int n = x - ((x >> 1) & 033333333333) - ((x >> 2) & 011111111111);
-+  return ((n + (n >> 3)) & 030707070707) % 63;
-+}
-+#endif        /* HAVE_BUILTIN_POPCOUNT */
-+
- #ifdef SHARED
- # define OLD_VERSION(name, version) \
---- elfutils/lib/Makefile.in
-+++ elfutils/lib/Makefile.in
-@@ -99,6 +99,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
-+LD_AS_NEEDED = @LD_AS_NEEDED@
- LEX = @LEX@
- LEXLIB = @LEXLIB@
- LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -128,6 +129,7 @@ SHELL = @SHELL@
- STRIP = @STRIP@
- USE_NLS = @USE_NLS@
- VERSION = @VERSION@
-+WEXTRA = @WEXTRA@
- XGETTEXT = @XGETTEXT@
- XGETTEXT_015 = @XGETTEXT_015@
- XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-@@ -190,7 +192,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
-       -I$(srcdir)/../libelf
- AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
-       $($(*F)_no_Werror),,-Werror) $(if \
--      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
-+      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
-       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
-       $(am__append_1) -fpic
- @MUDFLAP_FALSE@libmudflap = 
---- elfutils/libasm/ChangeLog
-+++ elfutils/libasm/ChangeLog
-@@ -71,6 +71,11 @@
-       * asm_error.c: Add new error ASM_E_IOERROR.
-       * libasmP.h: Add ASM_E_IOERROR definition.
-+2005-05-31  Roland McGrath  <roland@redhat.com>
-+
-+      * Makefile.am (WEXTRA): New variable, substituted by configure.
-+      (AM_CFLAGS): Use it in place of -Wextra.
-+
- 2005-02-15  Ulrich Drepper  <drepper@redhat.com>
-       * Makefile.am (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
---- elfutils/libasm/Makefile.in
-+++ elfutils/libasm/Makefile.in
-@@ -147,6 +147,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
-+LD_AS_NEEDED = @LD_AS_NEEDED@
- LEX = @LEX@
- LEXLIB = @LEXLIB@
- LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -176,6 +177,7 @@ SHELL = @SHELL@
- STRIP = @STRIP@
- USE_NLS = @USE_NLS@
- VERSION = 1
-+WEXTRA = @WEXTRA@
- XGETTEXT = @XGETTEXT@
- XGETTEXT_015 = @XGETTEXT_015@
- XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-@@ -239,7 +241,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
-       -I$(top_srcdir)/libdw
- AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
-       $($(*F)_no_Werror),,-Werror) $(if \
--      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
-+      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
-       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
-       $(am__append_1)
- @MUDFLAP_FALSE@libmudflap = 
---- elfutils/libcpu/ChangeLog
-+++ elfutils/libcpu/ChangeLog
-@@ -15,6 +15,9 @@
- 2009-01-23  Roland McGrath  <roland@redhat.com>
-+      * i386_disasm.c (i386_disasm): Add abort after assert-constant for old
-+      compilers that don't realize it's noreturn.
-+
-       * Makefile.am (i386_parse_CFLAGS): Use quotes around command
-       substitution that can produce leading whitespace.
-@@ -344,6 +347,11 @@
-       * defs/i386.doc: New file.
-       * defs/x86_64: New file.
-+2005-04-04  Roland McGrath  <roland@redhat.com>
-+
-+      * Makefile.am (WEXTRA): New variable, substituted by configure.
-+      (AM_CFLAGS): Use it instead of -Wextra.
-+
- 2005-02-15  Ulrich Drepper  <drepper@redhat.com>
-       * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
---- elfutils/libcpu/i386_disasm.c
-+++ elfutils/libcpu/i386_disasm.c
-@@ -791,6 +791,7 @@ i386_disasm (const uint8_t **startp, con
-                       default:
-                         assert (! "INVALID not handled");
-+                        abort ();
-                       }
-                   }
-                 else
---- elfutils/libcpu/Makefile.in
-+++ elfutils/libcpu/Makefile.in
-@@ -116,6 +116,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
-+LD_AS_NEEDED = @LD_AS_NEEDED@
- LEX = @LEX@
- LEXLIB = @LEXLIB@
- LEX_OUTPUT_ROOT = lex.$(<F:lex.l=)
-@@ -145,6 +146,7 @@ SHELL = @SHELL@
- STRIP = @STRIP@
- USE_NLS = @USE_NLS@
- VERSION = @VERSION@
-+WEXTRA = @WEXTRA@
- XGETTEXT = @XGETTEXT@
- XGETTEXT_015 = @XGETTEXT_015@
- XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-@@ -208,7 +210,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
-       -I$(srcdir)/../libdw -I$(srcdir)/../libasm
- AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
-       $($(*F)_no_Werror),,-Werror) $(if \
--      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
-+      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
-       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
-       $(am__append_1) -fpic -fdollars-in-identifiers
- @MUDFLAP_FALSE@libmudflap = 
---- elfutils/libdw/ChangeLog
-+++ elfutils/libdw/ChangeLog
-@@ -308,6 +308,10 @@
-       * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too.
-+2009-08-17  Roland McGrath  <roland@redhat.com>
-+
-+      * libdw.h: Disable extern inlines for GCC 4.2.
-+
- 2009-08-10  Roland McGrath  <roland@redhat.com>
-       * dwarf_getscopevar.c: Use dwarf_diename.
-@@ -1076,6 +1080,11 @@
- 2005-05-31  Roland McGrath  <roland@redhat.com>
-+      * Makefile.am (WEXTRA): New variable, substituted by configure.
-+      (AM_CFLAGS): Use it in place of -Wextra.
-+
-+2005-05-31  Roland McGrath  <roland@redhat.com>
-+
-       * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
-       formref offset.
---- elfutils/libdw/libdw.h
-+++ elfutils/libdw/libdw.h
-@@ -852,7 +852,7 @@ extern Dwarf_OOM dwarf_new_oom_handler (
- /* Inline optimizations.  */
--#ifdef __OPTIMIZE__
-+#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2)
- /* Return attribute code of given attribute.  */
- __libdw_extern_inline unsigned int
- dwarf_whatattr (Dwarf_Attribute *attr)
---- elfutils/libdw/Makefile.in
-+++ elfutils/libdw/Makefile.in
-@@ -192,6 +192,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
-+LD_AS_NEEDED = @LD_AS_NEEDED@
- LEX = @LEX@
- LEXLIB = @LEXLIB@
- LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -221,6 +222,7 @@ SHELL = @SHELL@
- STRIP = @STRIP@
- USE_NLS = @USE_NLS@
- VERSION = 1
-+WEXTRA = @WEXTRA@
- XGETTEXT = @XGETTEXT@
- XGETTEXT_015 = @XGETTEXT_015@
- XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-@@ -283,7 +285,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
-       -I$(srcdir)/../libelf
- AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
-       $($(*F)_no_Werror),,-Werror) $(if \
--      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
-+      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
-       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
-       $(am__append_1) $(am__append_2)
- @MUDFLAP_FALSE@libmudflap = 
---- elfutils/libdwfl/ChangeLog
-+++ elfutils/libdwfl/ChangeLog
-@@ -1366,6 +1366,11 @@
- 2005-07-21  Roland McGrath  <roland@redhat.com>
-+      * Makefile.am (WEXTRA): New variable, substituted by configure.
-+      (AM_CFLAGS): Use it in place of -Wextra.
-+
-+2005-07-21  Roland McGrath  <roland@redhat.com>
-+
-       * Makefile.am (noinst_HEADERS): Add loc2c.c.
-       * test2.c (main): Check sscanf result to quiet warning.
---- elfutils/libdwfl/Makefile.in
-+++ elfutils/libdwfl/Makefile.in
-@@ -182,6 +182,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
-+LD_AS_NEEDED = @LD_AS_NEEDED@
- LEX = @LEX@
- LEXLIB = @LEXLIB@
- LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -211,6 +212,7 @@ SHELL = @SHELL@
- STRIP = @STRIP@
- USE_NLS = @USE_NLS@
- VERSION = 1
-+WEXTRA = @WEXTRA@
- XGETTEXT = @XGETTEXT@
- XGETTEXT_015 = @XGETTEXT_015@
- XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-@@ -274,7 +276,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
-       -I$(srcdir)/../libdw
- AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
-       $($(*F)_no_Werror),,-Werror) $(if \
--      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
-+      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
-       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
-       $(am__append_1)
- @MUDFLAP_FALSE@libmudflap = 
---- elfutils/libebl/ChangeLog
-+++ elfutils/libebl/ChangeLog
-@@ -628,6 +628,11 @@
-       * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency
-       tracking works right.
-+2005-05-31  Roland McGrath  <roland@redhat.com>
-+
-+      * Makefile.am (WEXTRA): New variable, substituted by configure.
-+      (AM_CFLAGS): Use it in place of -Wextra.
-+
- 2005-05-21  Ulrich Drepper  <drepper@redhat.com>
-       * libebl_x86_64.map: Add x86_64_core_note.
---- elfutils/libebl/Makefile.in
-+++ elfutils/libebl/Makefile.in
-@@ -143,6 +143,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
-+LD_AS_NEEDED = @LD_AS_NEEDED@
- LEX = @LEX@
- LEXLIB = @LEXLIB@
- LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -172,6 +173,7 @@ SHELL = @SHELL@
- STRIP = @STRIP@
- USE_NLS = @USE_NLS@
- VERSION = 1
-+WEXTRA = @WEXTRA@
- XGETTEXT = @XGETTEXT@
- XGETTEXT_015 = @XGETTEXT_015@
- XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-@@ -235,7 +237,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
-       -I$(srcdir)/../libasm
- AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
-       $($(*F)_no_Werror),,-Werror) $(if \
--      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
-+      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
-       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
-       $(am__append_1) -fpic
- @MUDFLAP_FALSE@libmudflap = 
---- elfutils/libelf/ChangeLog
-+++ elfutils/libelf/ChangeLog
-@@ -671,6 +671,11 @@
-       * elf.h: Update from glibc.
-+2005-05-31  Roland McGrath  <roland@redhat.com>
-+
-+      * Makefile.am (WEXTRA): New variable, substituted by configure.
-+      (AM_CFLAGS): Use it in place of -Wextra.
-+
- 2005-05-08  Roland McGrath  <roland@redhat.com>
-       * elf_begin.c (read_file) [_MUDFLAP]: Don't use mmap for now.
---- elfutils/libelf/common.h
-+++ elfutils/libelf/common.h
-@@ -160,7 +160,7 @@ libelf_release_all (Elf *elf)
-   (Var) = (sizeof (Var) == 1                                                \
-          ? (unsigned char) (Var)                                            \
-          : (sizeof (Var) == 2                                               \
--            ? bswap_16 (Var)                                                \
-+            ? (unsigned short int) bswap_16 (Var)                           \
-             : (sizeof (Var) == 4                                            \
-                ? bswap_32 (Var)                                             \
-                : bswap_64 (Var))))
-@@ -169,7 +169,7 @@ libelf_release_all (Elf *elf)
-   (Dst) = (sizeof (Var) == 1                                                \
-          ? (unsigned char) (Var)                                            \
-          : (sizeof (Var) == 2                                               \
--            ? bswap_16 (Var)                                                \
-+            ? (unsigned short int) bswap_16 (Var)                           \
-             : (sizeof (Var) == 4                                            \
-                ? bswap_32 (Var)                                             \
-                : bswap_64 (Var))))
---- elfutils/libelf/Makefile.in
-+++ elfutils/libelf/Makefile.in
-@@ -189,6 +189,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
-+LD_AS_NEEDED = @LD_AS_NEEDED@
- LEX = @LEX@
- LEXLIB = @LEXLIB@
- LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -218,6 +219,7 @@ SHELL = @SHELL@
- STRIP = @STRIP@
- USE_NLS = @USE_NLS@
- VERSION = 1
-+WEXTRA = @WEXTRA@
- XGETTEXT = @XGETTEXT@
- XGETTEXT_015 = @XGETTEXT_015@
- XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-@@ -279,7 +281,7 @@ zip_LIBS = @zip_LIBS@
- INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
- AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
-       $($(*F)_no_Werror),,-Werror) $(if \
--      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
-+      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
-       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
-       $(am__append_1) $(am__append_2)
- @MUDFLAP_FALSE@libmudflap = 
---- elfutils/m4/Makefile.in
-+++ elfutils/m4/Makefile.in
-@@ -75,6 +75,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
-+LD_AS_NEEDED = @LD_AS_NEEDED@
- LEX = @LEX@
- LEXLIB = @LEXLIB@
- LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -104,6 +105,7 @@ SHELL = @SHELL@
- STRIP = @STRIP@
- USE_NLS = @USE_NLS@
- VERSION = @VERSION@
-+WEXTRA = @WEXTRA@
- XGETTEXT = @XGETTEXT@
- XGETTEXT_015 = @XGETTEXT_015@
- XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
---- elfutils/Makefile.in
-+++ elfutils/Makefile.in
-@@ -155,6 +155,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
-+LD_AS_NEEDED = @LD_AS_NEEDED@
- LEX = @LEX@
- LEXLIB = @LEXLIB@
- LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -184,6 +185,7 @@ SHELL = @SHELL@
- STRIP = @STRIP@
- USE_NLS = @USE_NLS@
- VERSION = @VERSION@
-+WEXTRA = @WEXTRA@
- XGETTEXT = @XGETTEXT@
- XGETTEXT_015 = @XGETTEXT_015@
- XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
---- elfutils/src/addr2line.c
-+++ elfutils/src/addr2line.c
-@@ -455,10 +455,10 @@ handle_address (const char *string, Dwfl
-       bool parsed = false;
-       int i, j;
-       char *name = NULL;
--      if (sscanf (string, "(%m[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2
-+      if (sscanf (string, "(%a[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2
-         && string[i] == '\0')
-       parsed = adjust_to_section (name, &addr, dwfl);
--      switch (sscanf (string, "%m[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j))
-+      switch (sscanf (string, "%a[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j))
-       {
-       default:
-         break;
---- elfutils/src/ChangeLog
-+++ elfutils/src/ChangeLog
-@@ -260,8 +260,16 @@
-       * readelf.c (attr_callback): Use print_block only when we don't use
-       print_ops.
-+2009-08-17  Roland McGrath  <roland@redhat.com>
-+
-+      * ld.h: Disable extern inlines for GCC 4.2.
-+
- 2009-08-14  Roland McGrath  <roland@redhat.com>
-+      * strings.c (read_block): Conditionalize posix_fadvise use
-+      on [POSIX_FADV_SEQUENTIAL].
-+      From Petr Salinger <Petr.Salinger@seznam.cz>.
-+
-       * ar.c (do_oper_extract): Use pathconf instead of statfs.
- 2009-08-01  Ulrich Drepper  <drepper@redhat.com>
-@@ -425,6 +433,8 @@
-       * readelf.c (print_debug_frame_section): Use t instead of j formats
-       for ptrdiff_t OFFSET.
-+      * addr2line.c (handle_address): Use %a instead of %m for compatibility.
-+
- 2009-01-21  Ulrich Drepper  <drepper@redhat.com>
-       * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
-@@ -608,6 +618,11 @@
-       that matches its PT_LOAD's p_flags &~ PF_W.  On sparc, PF_X really
-       is valid in RELRO.
-+2008-03-01  Roland McGrath  <roland@redhat.com>
-+
-+      * readelf.c (dump_archive_index): Tweak portability hack
-+      to match [__GNUC__ < 4] too.
-+
- 2008-02-29  Roland McGrath  <roland@redhat.com>
-       * readelf.c (print_attributes): Add a cast.
-@@ -859,6 +874,8 @@
-       * readelf.c (hex_dump): Fix rounding error in whitespace calculation.
-+      * Makefile.am (readelf_no_Werror): New variable.
-+
- 2007-10-15  Roland McGrath  <roland@redhat.com>
-       * make-debug-archive.in: New file.
-@@ -1298,6 +1315,10 @@
-       * elflint.c (valid_e_machine): Add EM_ALPHA.
-       Reported by Christian Aichinger <Greek0@gmx.net>.
-+      * strings.c (map_file): Define POSIX_MADV_SEQUENTIAL to
-+      MADV_SEQUENTIAL if undefined.   Don't call posix_madvise
-+      if neither is defined.
-+
- 2006-08-08  Ulrich Drepper  <drepper@redhat.com>
-       * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
-@@ -1374,6 +1395,10 @@
-       * Makefile.am: Add hacks to create dependency files for non-generic
-       linker.
-+2006-04-05  Roland McGrath  <roland@redhat.com>
-+
-+      * strings.c (MAP_POPULATE): Define to 0 if undefined.
-+
- 2006-06-12  Ulrich Drepper  <drepper@redhat.com>
-       * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
-@@ -1722,6 +1747,11 @@
-       * readelf.c (print_debug_loc_section): Fix indentation for larger
-       address size.
-+2005-05-31  Roland McGrath  <roland@redhat.com>
-+
-+      * Makefile.am (WEXTRA): New variable, substituted by configure.
-+      (AM_CFLAGS): Use it in place of -Wextra.
-+
- 2005-05-30  Roland McGrath  <roland@redhat.com>
-       * readelf.c (print_debug_line_section): Print section offset of each
---- elfutils/src/findtextrel.c
-+++ elfutils/src/findtextrel.c
-@@ -504,7 +504,11 @@ ptrcompare (const void *p1, const void *
- static void
--check_rel (size_t nsegments, struct segments segments[nsegments],
-+check_rel (size_t nsegments, struct segments segments[
-+#if __GNUC__ >= 4
-+                                                    nsegments
-+#endif
-+         ],
-          GElf_Addr addr, Elf *elf, Elf_Scn *symscn, Dwarf *dw,
-          const char *fname, bool more_than_one, void **knownsrcs)
- {
---- elfutils/src/ld.h
-+++ elfutils/src/ld.h
-@@ -1122,6 +1122,7 @@ extern bool dynamically_linked_p (void);
- /* Checked whether the symbol is undefined and referenced from a DSO.  */
- extern bool linked_from_dso_p (struct scninfo *scninfo, size_t symidx);
-+#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2)
- #ifdef __GNUC_STDC_INLINE__
- __attribute__ ((__gnu_inline__))
- #endif
-@@ -1139,5 +1140,6 @@ linked_from_dso_p (struct scninfo *scnin
-   return sym->defined && sym->in_dso;
- }
-+#endif        /* Optimizing and not GCC 4.2.  */
- #endif        /* ld.h */
---- elfutils/src/Makefile.am
-+++ elfutils/src/Makefile.am
-@@ -99,6 +99,9 @@ addr2line_no_Wformat = yes
- # XXX While the file is not finished, don't warn about this
- ldgeneric_no_Wunused = yes
-+# Buggy old compilers.
-+readelf_no_Werror = yes
-+
- readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
- nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
- size_LDADD = $(libelf) $(libeu) $(libmudflap)
---- elfutils/src/Makefile.in
-+++ elfutils/src/Makefile.in
-@@ -228,6 +228,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
-+LD_AS_NEEDED = @LD_AS_NEEDED@
- LEX = @LEX@
- LEXLIB = @LEXLIB@
- LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -257,6 +258,7 @@ SHELL = @SHELL@
- STRIP = @STRIP@
- USE_NLS = @USE_NLS@
- VERSION = @VERSION@
-+WEXTRA = @WEXTRA@
- XGETTEXT = @XGETTEXT@
- XGETTEXT_015 = @XGETTEXT_015@
- XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-@@ -321,7 +323,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
-       -I$(srcdir)/../libasm
- AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
-       $($(*F)_no_Werror),,-Werror) $(if \
--      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
-+      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
-       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
-       $(am__append_1)
- @MUDFLAP_FALSE@libmudflap = 
-@@ -368,6 +370,9 @@ strings_no_Wformat = yes
- addr2line_no_Wformat = yes
- # XXX While the file is not finished, don't warn about this
- ldgeneric_no_Wunused = yes
-+
-+# Buggy old compilers.
-+readelf_no_Werror = yes
- readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
- nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
- size_LDADD = $(libelf) $(libeu) $(libmudflap)
---- elfutils/src/readelf.c
-+++ elfutils/src/readelf.c
-@@ -4274,10 +4274,11 @@ struct listptr
- #define listptr_offset_size(p)        ((p)->dwarf64 ? 8 : 4)
- #define listptr_address_size(p)       ((p)->addr64 ? 8 : 4)
-+static const char *listptr_name;
- static int
--compare_listptr (const void *a, const void *b, void *arg)
-+compare_listptr (const void *a, const void *b)
- {
--  const char *name = arg;
-+  const char *const name = listptr_name;
-   struct listptr *p1 = (void *) a;
-   struct listptr *p2 = (void *) b;
-@@ -4357,8 +4358,11 @@ static void
- sort_listptr (struct listptr_table *table, const char *name)
- {
-   if (table->n > 0)
--    qsort_r (table->table, table->n, sizeof table->table[0],
--           &compare_listptr, (void *) name);
-+    {
-+      listptr_name = name;
-+      qsort (table->table, table->n, sizeof table->table[0],
-+           &compare_listptr);
-+    }
- }
- static bool
-@@ -8098,7 +8102,7 @@ dump_archive_index (Elf *elf, const char
-         if (unlikely (elf_rand (elf, as_off) == 0)
-             || unlikely ((subelf = elf_begin (-1, ELF_C_READ_MMAP, elf))
-                          == NULL))
--#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7)
-+#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7) || __GNUC__ < 4
-           while (1)
- #endif
-             error (EXIT_FAILURE, 0,
---- elfutils/src/strings.c
-+++ elfutils/src/strings.c
-@@ -51,6 +51,10 @@
- #include <system.h>
-+#ifndef MAP_POPULATE
-+# define MAP_POPULATE 0
-+#endif
-+
- /* Prototypes of local functions.  */
- static int read_fd (int fd, const char *fname, off64_t fdlen);
-@@ -491,8 +495,13 @@ map_file (int fd, off64_t start_off, off
-                   fd, start_off);
-       if (mem != MAP_FAILED)
-       {
-+#if !defined POSIX_MADV_SEQUENTIAL && defined MADV_SEQUENTIAL
-+# define POSIX_MADV_SEQUENTIAL MADV_SEQUENTIAL
-+#endif
-+#ifdef POSIX_MADV_SEQUENTIAL
-         /* We will go through the mapping sequentially.  */
-         (void) posix_madvise (mem, map_size, POSIX_MADV_SEQUENTIAL);
-+#endif
-         break;
-       }
-       if (errno != EINVAL && errno != ENOMEM)
-@@ -584,9 +593,11 @@ read_block (int fd, const char *fname, o
-       elfmap_off = from & ~(ps - 1);
-       elfmap_base = elfmap = map_file (fd, elfmap_off, fdlen, &elfmap_size);
-+#ifdef POSIX_FADV_SEQUENTIAL
-       if (unlikely (elfmap == MAP_FAILED))
-       /* Let the kernel know we are going to read everything in sequence.  */
-       (void) posix_fadvise (fd, 0, 0, POSIX_FADV_SEQUENTIAL);
-+#endif
-     }
-   if (unlikely (elfmap == MAP_FAILED))
---- elfutils/src/strip.c
-+++ elfutils/src/strip.c
-@@ -53,6 +53,12 @@
- #include <libebl.h>
- #include <system.h>
-+#ifdef HAVE_FUTIMES
-+# define FUTIMES(fd, fname, tvp) futimes (fd, tvp)
-+#else
-+# define FUTIMES(fd, fname, tvp) utimes (fname, tvp)
-+#endif
-+
- /* Name and version of program.  */
- static void print_version (FILE *stream, struct argp_state *state);
-@@ -311,8 +317,18 @@ process_file (const char *fname)
-       /* If we have to preserve the timestamp, we need it in the
-        format utimes() understands.  */
-+#ifdef HAVE_STRUCT_STAT_ST_ATIM
-       TIMESPEC_TO_TIMEVAL (&tv[0], &pre_st.st_atim);
-+#else
-+      tv[0].tv_sec = pre_st.st_atime;
-+      tv[0].tv_usec = 0;
-+#endif
-+#ifdef HAVE_STRUCT_STAT_ST_MTIM
-       TIMESPEC_TO_TIMEVAL (&tv[1], &pre_st.st_mtim);
-+#else
-+      tv[1].tv_sec = pre_st.st_atime;
-+      tv[1].tv_usec = 0;
-+#endif
-     }
-   /* Open the file.  */
-@@ -1809,7 +1825,7 @@ while computing checksum for debug infor
-   /* If requested, preserve the timestamp.  */
-   if (tvp != NULL)
-     {
--      if (futimes (fd, tvp) != 0)
-+      if (FUTIMES (fd, output_fname, tvp) != 0)
-       {
-         error (0, errno, gettext ("\
- cannot set access and modification date of '%s'"),
-@@ -1866,7 +1882,7 @@ handle_ar (int fd, Elf *elf, const char 
-   if (tvp != NULL)
-     {
--      if (unlikely (futimes (fd, tvp) != 0))
-+      if (unlikely (FUTIMES (fd, fname, tvp) != 0))
-       {
-         error (0, errno, gettext ("\
- cannot set access and modification date of '%s'"), fname);
---- elfutils/tests/ChangeLog
-+++ elfutils/tests/ChangeLog
-@@ -205,6 +205,8 @@
- 2008-01-21  Roland McGrath  <roland@redhat.com>
-+      * line2addr.c (main): Revert last change.
-+
-       * testfile45.S.bz2: Add tests for cltq, cqto.
-       * testfile45.expect.bz2: Adjust.
-@@ -913,6 +915,11 @@
-       * Makefile.am (TESTS): Add run-elflint-test.sh.
-       (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2.
-+2005-05-31  Roland McGrath  <roland@redhat.com>
-+
-+      * Makefile.am (WEXTRA): New variable, substituted by configure.
-+      (AM_CFLAGS): Use it in place of -Wextra.
-+
- 2005-05-24  Ulrich Drepper  <drepper@redhat.com>
-       * get-files.c (main): Use correct format specifier.
---- elfutils/tests/line2addr.c
-+++ elfutils/tests/line2addr.c
-@@ -132,7 +132,7 @@ main (int argc, char *argv[])
-     {
-       struct args a = { .arg = argv[cnt] };
--      switch (sscanf (a.arg, "%m[^:]:%d", &a.file, &a.line))
-+      switch (sscanf (a.arg, "%a[^:]:%d", &a.file, &a.line))
-       {
-       default:
-       case 0:
---- elfutils/tests/Makefile.in
-+++ elfutils/tests/Makefile.in
-@@ -372,6 +372,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
- LDFLAGS = @LDFLAGS@
-+LD_AS_NEEDED = @LD_AS_NEEDED@
- LEX = @LEX@
- LEXLIB = @LEXLIB@
- LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-@@ -401,6 +402,7 @@ SHELL = @SHELL@
- STRIP = @STRIP@
- USE_NLS = @USE_NLS@
- VERSION = @VERSION@
-+WEXTRA = @WEXTRA@
- XGETTEXT = @XGETTEXT@
- XGETTEXT_015 = @XGETTEXT_015@
- XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-@@ -462,7 +464,7 @@ zip_LIBS = @zip_LIBS@
- INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. $(am__append_2)
- AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
-       $($(*F)_no_Werror),,-Werror) $(if \
--      $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
-+      $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
-       $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
-       $(am__append_1)
- @MUDFLAP_FALSE@libmudflap = 
diff --git a/elfutils/patches/elfutils-robustify.patch b/elfutils/patches/elfutils-robustify.patch
deleted file mode 100644 (file)
index afed2f8..0000000
+++ /dev/null
@@ -1,1643 +0,0 @@
---- elfutils/libelf/ChangeLog
-+++ elfutils/libelf/ChangeLog
-@@ -663,10 +663,53 @@
-       If section content hasn't been read yet, do it before looking for the
-       block size.  If no section data present, infer size of section header.
-+2005-05-14  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * libelfP.h (INVALID_NDX): Define.
-+      * gelf_getdyn.c (gelf_getdyn): Use it.  Remove ndx < 0 test if any.
-+      * gelf_getlib.c (gelf_getlib): Likewise.
-+      * gelf_getmove.c (gelf_getmove): Likewise.
-+      * gelf_getrel.c (gelf_getrel): Likewise.
-+      * gelf_getrela.c (gelf_getrela): Likewise.
-+      * gelf_getsym.c (gelf_getsym): Likewise.
-+      * gelf_getsyminfo.c (gelf_getsyminfo): Likewise.
-+      * gelf_getsymshndx.c (gelf_getsymshndx): Likewise.
-+      * gelf_getversym.c (gelf_getversym): Likewise.
-+      * gelf_update_dyn.c (gelf_update_dyn): Likewise.
-+      * gelf_update_lib.c (gelf_update_lib): Likewise.
-+      * gelf_update_move.c (gelf_update_move): Likewise.
-+      * gelf_update_rel.c (gelf_update_rel): Likewise.
-+      * gelf_update_rela.c (gelf_update_rela): Likewise.
-+      * gelf_update_sym.c (gelf_update_sym): Likewise.
-+      * gelf_update_syminfo.c (gelf_update_syminfo): Likewise.
-+      * gelf_update_symshndx.c (gelf_update_symshndx): Likewise.
-+      * gelf_update_versym.c (gelf_update_versym): Likewise.
-+      * elf_newscn.c (elf_newscn): Check for overflow.
-+      * elf32_updatefile.c (__elfw2(LIBELFBITS,updatemmap)): Likewise.
-+      (__elfw2(LIBELFBITS,updatefile)): Likewise.
-+      * elf_begin.c (file_read_elf): Likewise.
-+      * elf32_newphdr.c (elfw2(LIBELFBITS,newphdr)): Likewise.
-+      * elf_getarsym.c (elf_getarsym): Likewise.
-+      * elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)): Likewise.
- 2005-05-11  Ulrich Drepper  <drepper@redhat.com>
-       * elf.h: Update again.
-+2005-05-17  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * elf32_getphdr.c (elfw2(LIBELFBITS,getphdr)): Check if program header
-+      table fits into object's bounds.
-+      * elf_getshstrndx.c (elf_getshstrndx): Add elf->start_offset to
-+      elf->map_address.  Check if first section header fits into object's
-+      bounds.
-+      * elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)):
-+      Check if section header table fits into object's bounds.
-+      * elf_begin.c (get_shnum): Ensure section headers fits into
-+      object's bounds.
-+      (file_read_elf): Make sure scncnt is small enough to allocate both
-+      ElfXX_Shdr and Elf_Scn array.  Make sure section and program header
-+      tables fit into object's bounds.  Avoid memory leak on failure.
-+
- 2005-05-09  Ulrich Drepper  <drepper@redhat.com>
-       * elf.h: Update from glibc.
---- elfutils/libelf/elf32_getphdr.c
-+++ elfutils/libelf/elf32_getphdr.c
-@@ -114,6 +114,16 @@ __elfw2(LIBELFBITS,getphdr_wrlock) (elf)
-       if (elf->map_address != NULL)
-       {
-+        /* First see whether the information in the ELF header is
-+           valid and it does not ask for too much.  */
-+        if (unlikely (ehdr->e_phoff >= elf->maximum_size)
-+            || unlikely (elf->maximum_size - ehdr->e_phoff < size))
-+          {
-+            /* Something is wrong.  */
-+            __libelf_seterrno (ELF_E_INVALID_PHDR);
-+            goto out;
-+          }
-+
-         /* All the data is already mapped.  Use it.  */
-         void *file_phdr = ((char *) elf->map_address
-                            + elf->start_offset + ehdr->e_phoff);
---- elfutils/libelf/elf32_getshdr.c
-+++ elfutils/libelf/elf32_getshdr.c
-@@ -1,5 +1,5 @@
- /* Return section header.
--   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2007, 2009 Red Hat, Inc.
-+   Copyright (C) 1998-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 1998.
-@@ -81,7 +81,8 @@ load_shdr_wrlock (Elf_Scn *scn)
-     goto out;
-   size_t shnum;
--  if (__elf_getshdrnum_rdlock (elf, &shnum) != 0)
-+  if (__elf_getshdrnum_rdlock (elf, &shnum) != 0
-+      || shnum > SIZE_MAX / sizeof (ElfW2(LIBELFBITS,Shdr)))
-     goto out;
-   size_t size = shnum * sizeof (ElfW2(LIBELFBITS,Shdr));
-@@ -98,6 +99,16 @@ load_shdr_wrlock (Elf_Scn *scn)
-   if (elf->map_address != NULL)
-     {
-+      /* First see whether the information in the ELF header is
-+       valid and it does not ask for too much.  */
-+      if (unlikely (ehdr->e_shoff >= elf->maximum_size)
-+        || unlikely (elf->maximum_size - ehdr->e_shoff < size))
-+      {
-+        /* Something is wrong.  */
-+        __libelf_seterrno (ELF_E_INVALID_SECTION_HEADER);
-+        goto free_and_out;
-+      }
-+
-       ElfW2(LIBELFBITS,Shdr) *notcvt;
-       /* All the data is already mapped.  If we could use it
---- elfutils/libelf/elf32_newphdr.c
-+++ elfutils/libelf/elf32_newphdr.c
-@@ -135,6 +135,12 @@ elfw2(LIBELFBITS,newphdr) (elf, count)
-          || count == PN_XNUM
-          || elf->state.ELFW(elf,LIBELFBITS).phdr == NULL)
-     {
-+      if (unlikely (count > SIZE_MAX / sizeof (ElfW2(LIBELFBITS,Phdr))))
-+      {
-+        result = NULL;
-+        goto out;
-+      }
-+
-       /* Allocate a new program header with the appropriate number of
-        elements.  */
-       result = (ElfW2(LIBELFBITS,Phdr) *)
---- elfutils/libelf/elf32_updatefile.c
-+++ elfutils/libelf/elf32_updatefile.c
-@@ -223,6 +223,9 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf
-   /* Write all the sections.  Well, only those which are modified.  */
-   if (shnum > 0)
-     {
-+      if (unlikely (shnum > SIZE_MAX / sizeof (Elf_Scn *)))
-+      return 1;
-+
-       Elf_ScnList *list = &elf->state.ELFW(elf,LIBELFBITS).scns;
-       Elf_Scn **scns = (Elf_Scn **) alloca (shnum * sizeof (Elf_Scn *));
-       char *const shdr_start = ((char *) elf->map_address + elf->start_offset
-@@ -645,6 +648,10 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf
-   /* Write all the sections.  Well, only those which are modified.  */
-   if (shnum > 0)
-     {
-+      if (unlikely (shnum > SIZE_MAX / (sizeof (Elf_Scn *)
-+                                      + sizeof (ElfW2(LIBELFBITS,Shdr)))))
-+      return 1;
-+
-       off_t shdr_offset = elf->start_offset + ehdr->e_shoff;
- #if EV_NUM != 2
-       xfct_t shdr_fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR];
---- elfutils/libelf/elf_begin.c
-+++ elfutils/libelf/elf_begin.c
-@@ -165,7 +165,8 @@ get_shnum (void *map_address, unsigned c
-       if (unlikely (result == 0) && ehdr.e32->e_shoff != 0)
-       {
--        if (ehdr.e32->e_shoff + sizeof (Elf32_Shdr) > maxsize)
-+        if (unlikely (ehdr.e32->e_shoff >= maxsize)
-+            || unlikely (maxsize - ehdr.e32->e_shoff < sizeof (Elf32_Shdr)))
-           /* Cannot read the first section header.  */
-           return 0;
-@@ -213,7 +214,8 @@ get_shnum (void *map_address, unsigned c
-       if (unlikely (result == 0) && ehdr.e64->e_shoff != 0)
-       {
--        if (ehdr.e64->e_shoff + sizeof (Elf64_Shdr) > maxsize)
-+        if (unlikely (ehdr.e64->e_shoff >= maxsize)
-+            || unlikely (ehdr.e64->e_shoff + sizeof (Elf64_Shdr) > maxsize))
-           /* Cannot read the first section header.  */
-           return 0;
-@@ -285,6 +287,15 @@ file_read_elf (int fildes, void *map_add
-     /* Could not determine the number of sections.  */
-     return NULL;
-+  /* Check for too many sections.  */
-+  if (e_ident[EI_CLASS] == ELFCLASS32)
-+    {
-+      if (scncnt > SIZE_MAX / (sizeof (Elf_Scn) + sizeof (Elf32_Shdr)))
-+      return NULL;
-+    }
-+  else if (scncnt > SIZE_MAX / (sizeof (Elf_Scn) + sizeof (Elf64_Shdr)))
-+    return NULL;
-+
-   /* We can now allocate the memory.  Even if there are no section headers,
-      we allocate space for a zeroth section in case we need it later.  */
-   const size_t scnmax = (scncnt ?: (cmd == ELF_C_RDWR || cmd == ELF_C_RDWR_MMAP)
-@@ -324,6 +335,16 @@ file_read_elf (int fildes, void *map_add
-       {
-         /* We can use the mmapped memory.  */
-         elf->state.elf32.ehdr = ehdr;
-+
-+        if (unlikely (ehdr->e_shoff >= maxsize)
-+            || unlikely (maxsize - ehdr->e_shoff
-+                         < scncnt * sizeof (Elf32_Shdr)))
-+          {
-+          free_and_out:
-+            free (elf);
-+            __libelf_seterrno (ELF_E_INVALID_FILE);
-+            return NULL;
-+          }
-         elf->state.elf32.shdr
-           = (Elf32_Shdr *) ((char *) ehdr + ehdr->e_shoff);
-@@ -410,6 +431,11 @@ file_read_elf (int fildes, void *map_add
-       {
-         /* We can use the mmapped memory.  */
-         elf->state.elf64.ehdr = ehdr;
-+
-+        if (unlikely (ehdr->e_shoff >= maxsize)
-+            || unlikely (ehdr->e_shoff
-+                         + scncnt * sizeof (Elf32_Shdr) > maxsize))
-+          goto free_and_out;
-         elf->state.elf64.shdr
-           = (Elf64_Shdr *) ((char *) ehdr + ehdr->e_shoff);
---- elfutils/libelf/elf_getarsym.c
-+++ elfutils/libelf/elf_getarsym.c
-@@ -179,6 +179,9 @@ elf_getarsym (elf, ptr)
-       size_t index_size = atol (tmpbuf);
-       if (SARMAG + sizeof (struct ar_hdr) + index_size > elf->maximum_size
-+#if SIZE_MAX <= 4294967295U
-+        || n >= SIZE_MAX / sizeof (Elf_Arsym)
-+#endif
-         || n * sizeof (uint32_t) > index_size)
-       {
-         /* This index table cannot be right since it does not fit into
---- elfutils/libelf/elf_getshdrstrndx.c
-+++ elfutils/libelf/elf_getshdrstrndx.c
-@@ -125,10 +125,25 @@ elf_getshdrstrndx (elf, dst)
-             if (elf->map_address != NULL
-                 && elf->state.elf32.ehdr->e_ident[EI_DATA] == MY_ELFDATA
-                 && (ALLOW_UNALIGNED
--                    || (((size_t) ((char *) elf->map_address + offset))
-+                    || (((size_t) ((char *) elf->map_address
-+                         + elf->start_offset + offset))
-                         & (__alignof__ (Elf32_Shdr) - 1)) == 0))
--              /* We can directly access the memory.  */
--              num = ((Elf32_Shdr *) (elf->map_address + offset))->sh_link;
-+              {
-+                /* First see whether the information in the ELF header is
-+                   valid and it does not ask for too much.  */
-+                if (unlikely (elf->maximum_size - offset
-+                              < sizeof (Elf32_Shdr)))
-+                  {
-+                    /* Something is wrong.  */
-+                    __libelf_seterrno (ELF_E_INVALID_SECTION_HEADER);
-+                    result = -1;
-+                    goto out;
-+                  }
-+
-+                /* We can directly access the memory.  */
-+                num = ((Elf32_Shdr *) (elf->map_address + elf->start_offset
-+                                       + offset))->sh_link;
-+              }
-             else
-               {
-                 /* We avoid reading in all the section headers.  Just read
-@@ -163,10 +178,25 @@ elf_getshdrstrndx (elf, dst)
-             if (elf->map_address != NULL
-                 && elf->state.elf64.ehdr->e_ident[EI_DATA] == MY_ELFDATA
-                 && (ALLOW_UNALIGNED
--                    || (((size_t) ((char *) elf->map_address + offset))
-+                    || (((size_t) ((char *) elf->map_address
-+                         + elf->start_offset + offset))
-                         & (__alignof__ (Elf64_Shdr) - 1)) == 0))
--              /* We can directly access the memory.  */
--              num = ((Elf64_Shdr *) (elf->map_address + offset))->sh_link;
-+              {
-+                /* First see whether the information in the ELF header is
-+                   valid and it does not ask for too much.  */
-+                if (unlikely (elf->maximum_size - offset
-+                              < sizeof (Elf64_Shdr)))
-+                  {
-+                    /* Something is wrong.  */
-+                    __libelf_seterrno (ELF_E_INVALID_SECTION_HEADER);
-+                    result = -1;
-+                    goto out;
-+                  }
-+
-+                /* We can directly access the memory.  */
-+                num = ((Elf64_Shdr *) (elf->map_address + elf->start_offset
-+                                       + offset))->sh_link;
-+              }
-             else
-               {
-                 /* We avoid reading in all the section headers.  Just read
---- elfutils/libelf/elf_newscn.c
-+++ elfutils/libelf/elf_newscn.c
-@@ -104,10 +104,18 @@ elf_newscn (elf)
-   else
-     {
-       /* We must allocate a new element.  */
--      Elf_ScnList *newp;
-+      Elf_ScnList *newp = NULL;
-       assert (elf->state.elf.scnincr > 0);
-+      if (
-+#if SIZE_MAX <= 4294967295U
-+        likely (elf->state.elf.scnincr
-+                < SIZE_MAX / 2 / sizeof (Elf_Scn) - sizeof (Elf_ScnList))
-+#else
-+        1
-+#endif
-+        )
-       newp = (Elf_ScnList *) calloc (sizeof (Elf_ScnList)
-                                    + ((elf->state.elf.scnincr *= 2)
-                                       * sizeof (Elf_Scn)), 1);
---- elfutils/libelf/gelf_getdyn.c
-+++ elfutils/libelf/gelf_getdyn.c
-@@ -1,5 +1,5 @@
- /* Get information from dynamic table at the given index.
--   Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
-+   Copyright (C) 2000-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-@@ -93,7 +93,7 @@ gelf_getdyn (data, ndx, dst)
-        table entries has to be adopted.  The user better has provided
-        a buffer where we can store the information.  While copying the
-        data we are converting the format.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf32_Dyn) > data_scn->d.d_size))
-+      if (INVALID_NDX (ndx, Elf32_Dyn, &data_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
-@@ -114,7 +114,7 @@ gelf_getdyn (data, ndx, dst)
-       /* The data is already in the correct form.  Just make sure the
-        index is OK.  */
--      if (unlikely ((ndx + 1) * sizeof (GElf_Dyn) > data_scn->d.d_size))
-+      if (INVALID_NDX (ndx, GElf_Dyn, &data_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
---- elfutils/libelf/gelf_getlib.c
-+++ elfutils/libelf/gelf_getlib.c
-@@ -1,5 +1,5 @@
- /* Get library from table at the given index.
--   Copyright (C) 2004 Red Hat, Inc.
-+   Copyright (C) 2004-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-@@ -86,7 +86,7 @@ gelf_getlib (data, ndx, dst)
-   /* The data is already in the correct form.  Just make sure the
-      index is OK.  */
-   GElf_Lib *result = NULL;
--  if (unlikely ((ndx + 1) * sizeof (GElf_Lib) > data->d_size))
-+  if (INVALID_NDX (ndx, GElf_Lib, data))
-     __libelf_seterrno (ELF_E_INVALID_INDEX);
-   else
-     {
---- elfutils/libelf/gelf_getmove.c
-+++ elfutils/libelf/gelf_getmove.c
-@@ -1,5 +1,5 @@
- /* Get move structure at the given index.
--   Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
-+   Copyright (C) 2000-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-@@ -83,7 +83,7 @@ gelf_getmove (data, ndx, dst)
-   /* The data is already in the correct form.  Just make sure the
-      index is OK.  */
--  if (unlikely ((ndx + 1) * sizeof (GElf_Move) > data->d_size))
-+  if (INVALID_NDX (ndx, GElf_Move, data))
-     {
-       __libelf_seterrno (ELF_E_INVALID_INDEX);
-       goto out;
---- elfutils/libelf/gelf_getrela.c
-+++ elfutils/libelf/gelf_getrela.c
-@@ -1,5 +1,5 @@
- /* Get RELA relocation information at given index.
--   Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
-+   Copyright (C) 2000-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-@@ -71,12 +71,6 @@ gelf_getrela (data, ndx, dst)
-   if (data_scn == NULL)
-     return NULL;
--  if (unlikely (ndx < 0))
--    {
--      __libelf_seterrno (ELF_E_INVALID_INDEX);
--      return NULL;
--    }
--
-   if (unlikely (data_scn->d.d_type != ELF_T_RELA))
-     {
-       __libelf_seterrno (ELF_E_INVALID_HANDLE);
-@@ -93,7 +87,7 @@ gelf_getrela (data, ndx, dst)
-   if (scn->elf->class == ELFCLASS32)
-     {
-       /* We have to convert the data.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf32_Rela) > data_scn->d.d_size))
-+      if (INVALID_NDX (ndx, Elf32_Rela, &data_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         result = NULL;
-@@ -114,7 +108,7 @@ gelf_getrela (data, ndx, dst)
-     {
-       /* Simply copy the data after we made sure we are actually getting
-        correct data.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf64_Rela) > data_scn->d.d_size))
-+      if (INVALID_NDX (ndx, Elf64_Rela, &data_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         result = NULL;
---- elfutils/libelf/gelf_getrel.c
-+++ elfutils/libelf/gelf_getrel.c
-@@ -1,5 +1,5 @@
- /* Get REL relocation information at given index.
--   Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
-+   Copyright (C) 2000-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-@@ -71,12 +71,6 @@ gelf_getrel (data, ndx, dst)
-   if (data_scn == NULL)
-     return NULL;
--  if (unlikely (ndx < 0))
--    {
--      __libelf_seterrno (ELF_E_INVALID_INDEX);
--      return NULL;
--    }
--
-   if (unlikely (data_scn->d.d_type != ELF_T_REL))
-     {
-       __libelf_seterrno (ELF_E_INVALID_HANDLE);
-@@ -93,7 +87,7 @@ gelf_getrel (data, ndx, dst)
-   if (scn->elf->class == ELFCLASS32)
-     {
-       /* We have to convert the data.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf32_Rel) > data_scn->d.d_size))
-+      if (INVALID_NDX (ndx, Elf32_Rel, &data_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         result = NULL;
-@@ -113,7 +107,7 @@ gelf_getrel (data, ndx, dst)
-     {
-       /* Simply copy the data after we made sure we are actually getting
-        correct data.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf64_Rel) > data_scn->d.d_size))
-+      if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         result = NULL;
---- elfutils/libelf/gelf_getsym.c
-+++ elfutils/libelf/gelf_getsym.c
-@@ -1,5 +1,5 @@
- /* Get symbol information from symbol table at the given index.
--   Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
-+   Copyright (C) 1999-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-@@ -90,7 +90,7 @@ gelf_getsym (data, ndx, dst)
-        table entries has to be adopted.  The user better has provided
-        a buffer where we can store the information.  While copying the
-        data we are converting the format.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > data->d_size))
-+      if (INVALID_NDX (ndx, Elf32_Sym, data))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
-@@ -119,7 +119,7 @@ gelf_getsym (data, ndx, dst)
-       /* The data is already in the correct form.  Just make sure the
-        index is OK.  */
--      if (unlikely ((ndx + 1) * sizeof (GElf_Sym) > data->d_size))
-+      if (INVALID_NDX (ndx, GElf_Sym, data))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
---- elfutils/libelf/gelf_getsyminfo.c
-+++ elfutils/libelf/gelf_getsyminfo.c
-@@ -1,5 +1,5 @@
- /* Get additional symbol information from symbol table at the given index.
--   Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
-+   Copyright (C) 2000-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-@@ -84,7 +84,7 @@ gelf_getsyminfo (data, ndx, dst)
-   /* The data is already in the correct form.  Just make sure the
-      index is OK.  */
--  if (unlikely ((ndx + 1) * sizeof (GElf_Syminfo) > data->d_size))
-+  if (INVALID_NDX (ndx, GElf_Syminfo, data))
-     {
-       __libelf_seterrno (ELF_E_INVALID_INDEX);
-       goto out;
---- elfutils/libelf/gelf_getsymshndx.c
-+++ elfutils/libelf/gelf_getsymshndx.c
-@@ -1,6 +1,6 @@
- /* Get symbol information and separate section index from symbol table
-    at the given index.
--   Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
-+   Copyright (C) 2000-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-@@ -90,7 +90,7 @@ gelf_getsymshndx (symdata, shndxdata, nd
-      section index table.  */
-   if (likely (shndxdata_scn != NULL))
-     {
--      if (unlikely ((ndx + 1) * sizeof (Elf32_Word) > shndxdata_scn->d.d_size))
-+      if (INVALID_NDX (ndx, Elf32_Word, &shndxdata_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
-@@ -110,7 +110,7 @@ gelf_getsymshndx (symdata, shndxdata, nd
-        table entries has to be adopted.  The user better has provided
-        a buffer where we can store the information.  While copying the
-        data we are converting the format.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > symdata->d_size))
-+      if (INVALID_NDX (ndx, Elf32_Sym, symdata))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
-@@ -139,7 +139,7 @@ gelf_getsymshndx (symdata, shndxdata, nd
-       /* The data is already in the correct form.  Just make sure the
-        index is OK.  */
--      if (unlikely ((ndx + 1) * sizeof (GElf_Sym) > symdata->d_size))
-+      if (INVALID_NDX (ndx, GElf_Sym, symdata))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
---- elfutils/libelf/gelf_getversym.c
-+++ elfutils/libelf/gelf_getversym.c
-@@ -1,5 +1,5 @@
- /* Get symbol version information at the given index.
--   Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc.
-+   Copyright (C) 1999-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 1999.
-@@ -92,7 +92,7 @@ gelf_getversym (data, ndx, dst)
-   /* The data is already in the correct form.  Just make sure the
-      index is OK.  */
--  if (unlikely ((ndx + 1) * sizeof (GElf_Versym) > data->d_size))
-+  if (INVALID_NDX (ndx, GElf_Versym, data))
-     {
-       __libelf_seterrno (ELF_E_INVALID_INDEX);
-       result = NULL;
---- elfutils/libelf/gelf_update_dyn.c
-+++ elfutils/libelf/gelf_update_dyn.c
-@@ -1,5 +1,5 @@
- /* Update information in dynamic table at the given index.
--   Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
-+   Copyright (C) 2000-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-@@ -71,12 +71,6 @@ gelf_update_dyn (data, ndx, src)
-   if (data == NULL)
-     return 0;
--  if (unlikely (ndx < 0))
--    {
--      __libelf_seterrno (ELF_E_INVALID_INDEX);
--      return 0;
--    }
--
-   if (unlikely (data_scn->d.d_type != ELF_T_DYN))
-     {
-       /* The type of the data better should match.  */
-@@ -102,7 +96,7 @@ gelf_update_dyn (data, ndx, src)
-       }
-       /* Check whether we have to resize the data buffer.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf32_Dyn) > data_scn->d.d_size))
-+      if (INVALID_NDX (ndx, Elf32_Dyn, &data_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
-@@ -116,7 +110,7 @@ gelf_update_dyn (data, ndx, src)
-   else
-     {
-       /* Check whether we have to resize the data buffer.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf64_Dyn) > data_scn->d.d_size))
-+      if (INVALID_NDX (ndx, Elf64_Dyn, &data_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
---- elfutils/libelf/gelf_update_lib.c
-+++ elfutils/libelf/gelf_update_lib.c
-@@ -1,5 +1,5 @@
- /* Update library in table at the given index.
--   Copyright (C) 2004 Red Hat, Inc.
-+   Copyright (C) 2004-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 2004.
-@@ -68,12 +68,6 @@ gelf_update_lib (data, ndx, src)
-   if (data == NULL)
-     return 0;
--  if (unlikely (ndx < 0))
--    {
--      __libelf_seterrno (ELF_E_INVALID_INDEX);
--      return 0;
--    }
--
-   Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data;
-   if (unlikely (data_scn->d.d_type != ELF_T_LIB))
-     {
-@@ -87,7 +81,7 @@ gelf_update_lib (data, ndx, src)
-   /* Check whether we have to resize the data buffer.  */
-   int result = 0;
--  if (unlikely ((ndx + 1) * sizeof (Elf64_Lib) > data_scn->d.d_size))
-+  if (INVALID_NDX (ndx, Elf64_Lib, &data_scn->d))
-     __libelf_seterrno (ELF_E_INVALID_INDEX);
-   else
-     {
---- elfutils/libelf/gelf_update_move.c
-+++ elfutils/libelf/gelf_update_move.c
-@@ -1,5 +1,5 @@
- /* Update move structure at the given index.
--   Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
-+   Copyright (C) 2000-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-@@ -75,8 +75,7 @@ gelf_update_move (data, ndx, src)
-   assert (sizeof (GElf_Move) == sizeof (Elf64_Move));
-   /* Check whether we have to resize the data buffer.  */
--  if (unlikely (ndx < 0)
--      || unlikely ((ndx + 1) * sizeof (GElf_Move) > data_scn->d.d_size))
-+  if (INVALID_NDX (ndx, GElf_Move, &data_scn->d))
-     {
-       __libelf_seterrno (ELF_E_INVALID_INDEX);
-       return 0;
---- elfutils/libelf/gelf_update_rela.c
-+++ elfutils/libelf/gelf_update_rela.c
-@@ -1,5 +1,5 @@
- /* Update RELA relocation information at given index.
--   Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
-+   Copyright (C) 2000-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-@@ -68,12 +68,6 @@ gelf_update_rela (Elf_Data *dst, int ndx
-   if (dst == NULL)
-     return 0;
--  if (unlikely (ndx < 0))
--    {
--      __libelf_seterrno (ELF_E_INVALID_INDEX);
--      return 0;
--    }
--
-   if (unlikely (data_scn->d.d_type != ELF_T_RELA))
-     {
-       /* The type of the data better should match.  */
-@@ -101,7 +95,7 @@ gelf_update_rela (Elf_Data *dst, int ndx
-       }
-       /* Check whether we have to resize the data buffer.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf32_Rela) > data_scn->d.d_size))
-+      if (INVALID_NDX (ndx, Elf32_Rela, &data_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
-@@ -117,7 +111,7 @@ gelf_update_rela (Elf_Data *dst, int ndx
-   else
-     {
-       /* Check whether we have to resize the data buffer.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf64_Rela) > data_scn->d.d_size))
-+      if (INVALID_NDX (ndx, Elf64_Rela, &data_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
---- elfutils/libelf/gelf_update_rel.c
-+++ elfutils/libelf/gelf_update_rel.c
-@@ -1,5 +1,5 @@
- /* Update REL relocation information at given index.
--   Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
-+   Copyright (C) 2000-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-@@ -68,12 +68,6 @@ gelf_update_rel (Elf_Data *dst, int ndx,
-   if (dst == NULL)
-     return 0;
--  if (unlikely (ndx < 0))
--    {
--      __libelf_seterrno (ELF_E_INVALID_INDEX);
--      return 0;
--    }
--
-   if (unlikely (data_scn->d.d_type != ELF_T_REL))
-     {
-       /* The type of the data better should match.  */
-@@ -99,7 +93,7 @@ gelf_update_rel (Elf_Data *dst, int ndx,
-       }
-       /* Check whether we have to resize the data buffer.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf32_Rel) > data_scn->d.d_size))
-+      if (INVALID_NDX (ndx, Elf32_Rel, &data_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
-@@ -114,7 +108,7 @@ gelf_update_rel (Elf_Data *dst, int ndx,
-   else
-     {
-       /* Check whether we have to resize the data buffer.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf64_Rel) > data_scn->d.d_size))
-+      if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
---- elfutils/libelf/gelf_update_sym.c
-+++ elfutils/libelf/gelf_update_sym.c
-@@ -1,5 +1,5 @@
- /* Update symbol information in symbol table at the given index.
--   Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
-+   Copyright (C) 2000-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-@@ -72,12 +72,6 @@ gelf_update_sym (data, ndx, src)
-   if (data == NULL)
-     return 0;
--  if (unlikely (ndx < 0))
--    {
--      __libelf_seterrno (ELF_E_INVALID_INDEX);
--      return 0;
--    }
--
-   if (unlikely (data_scn->d.d_type != ELF_T_SYM))
-     {
-       /* The type of the data better should match.  */
-@@ -102,7 +96,7 @@ gelf_update_sym (data, ndx, src)
-       }
-       /* Check whether we have to resize the data buffer.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > data_scn->d.d_size))
-+      if (INVALID_NDX (ndx, Elf32_Sym, &data_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
-@@ -125,7 +119,7 @@ gelf_update_sym (data, ndx, src)
-   else
-     {
-       /* Check whether we have to resize the data buffer.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf64_Sym) > data_scn->d.d_size))
-+      if (INVALID_NDX (ndx, Elf64_Sym, &data_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
---- elfutils/libelf/gelf_update_syminfo.c
-+++ elfutils/libelf/gelf_update_syminfo.c
-@@ -1,5 +1,5 @@
- /* Update additional symbol information in symbol table at the given index.
--   Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
-+   Copyright (C) 2000-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-@@ -72,12 +72,6 @@ gelf_update_syminfo (data, ndx, src)
-   if (data == NULL)
-     return 0;
--  if (unlikely (ndx < 0))
--    {
--      __libelf_seterrno (ELF_E_INVALID_INDEX);
--      return 0;
--    }
--
-   if (unlikely (data_scn->d.d_type != ELF_T_SYMINFO))
-     {
-       /* The type of the data better should match.  */
-@@ -93,7 +87,7 @@ gelf_update_syminfo (data, ndx, src)
-   rwlock_wrlock (scn->elf->lock);
-   /* Check whether we have to resize the data buffer.  */
--  if (unlikely ((ndx + 1) * sizeof (GElf_Syminfo) > data_scn->d.d_size))
-+  if (INVALID_NDX (ndx, GElf_Syminfo, &data_scn->d))
-     {
-       __libelf_seterrno (ELF_E_INVALID_INDEX);
-       goto out;
---- elfutils/libelf/gelf_update_symshndx.c
-+++ elfutils/libelf/gelf_update_symshndx.c
-@@ -1,6 +1,6 @@
- /* Update symbol information and section index in symbol table at the
-    given index.
--   Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
-+   Copyright (C) 2000-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-@@ -77,12 +77,6 @@ gelf_update_symshndx (symdata, shndxdata
-   if (symdata == NULL)
-     return 0;
--  if (unlikely (ndx < 0))
--    {
--      __libelf_seterrno (ELF_E_INVALID_INDEX);
--      return 0;
--    }
--
-   if (unlikely (symdata_scn->d.d_type != ELF_T_SYM))
-     {
-       /* The type of the data better should match.  */
-@@ -128,7 +122,7 @@ gelf_update_symshndx (symdata, shndxdata
-       }
-       /* Check whether we have to resize the data buffer.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > symdata_scn->d.d_size))
-+      if (INVALID_NDX (ndx, Elf32_Sym, &symdata_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
-@@ -151,7 +145,7 @@ gelf_update_symshndx (symdata, shndxdata
-   else
-     {
-       /* Check whether we have to resize the data buffer.  */
--      if (unlikely ((ndx + 1) * sizeof (Elf64_Sym) > symdata_scn->d.d_size))
-+      if (INVALID_NDX (ndx, Elf64_Sym, &symdata_scn->d))
-       {
-         __libelf_seterrno (ELF_E_INVALID_INDEX);
-         goto out;
---- elfutils/libelf/gelf_update_versym.c
-+++ elfutils/libelf/gelf_update_versym.c
-@@ -1,5 +1,5 @@
- /* Update symbol version information.
--   Copyright (C) 2001, 2002 Red Hat, Inc.
-+   Copyright (C) 2001-2009 Red Hat, Inc.
-    This file is part of Red Hat elfutils.
-    Written by Ulrich Drepper <drepper@redhat.com>, 2001.
-@@ -75,8 +75,7 @@ gelf_update_versym (data, ndx, src)
-   assert (sizeof (GElf_Versym) == sizeof (Elf64_Versym));
-   /* Check whether we have to resize the data buffer.  */
--  if (unlikely (ndx < 0)
--      || unlikely ((ndx + 1) * sizeof (GElf_Versym) > data_scn->d.d_size))
-+  if (INVALID_NDX (ndx, GElf_Versym, &data_scn->d))
-     {
-       __libelf_seterrno (ELF_E_INVALID_INDEX);
-       return 0;
---- elfutils/libelf/libelfP.h
-+++ elfutils/libelf/libelfP.h
-@@ -608,4 +608,8 @@ extern uint32_t __libelf_crc32 (uint32_t
- /* Align offset to 4 bytes as needed for note name and descriptor data.  */
- #define NOTE_ALIGN(n) (((n) + 3) & -4U)
-+/* Convenience macro.  */
-+#define INVALID_NDX(ndx, type, data) \
-+  unlikely ((data)->d_size / sizeof (type) <= (unsigned int) (ndx))
-+
- #endif  /* libelfP.h */
---- elfutils/src/ChangeLog
-+++ elfutils/src/ChangeLog
-@@ -1710,6 +1710,16 @@
-       object symbols or symbols with unknown type.
-       (check_rel): Likewise.
-+2005-06-09  Roland McGrath  <roland@redhat.com>
-+
-+      * readelf.c (handle_dynamic, handle_symtab): Check for bogus sh_link.
-+      (handle_verneed, handle_verdef, handle_versym, handle_hash): Likewise.
-+      (handle_scngrp): Check for bogus sh_info.
-+
-+      * strip.c (handle_elf): Check for bogus values in sh_link, sh_info,
-+      st_shndx, e_shstrndx, and SHT_GROUP or SHT_SYMTAB_SHNDX data.
-+      Don't use assert on input values, instead bail with "illformed" error.
-+
- 2005-06-08  Roland McGrath  <roland@redhat.com>
-       * readelf.c (print_ops): Add consts.
-@@ -1755,6 +1765,19 @@
-       * readelf.c (dwarf_tag_string): Add new tags.
-+2005-05-17  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * elflint.c (check_hash): Don't check entries beyond end of section.
-+      (check_note): Don't crash if gelf_rawchunk fails.
-+      (section_name): Return <invalid> if gelf_getshdr returns NULL.
-+
-+2005-05-14  Jakub Jelinek  <jakub@redhat.com>
-+
-+      * elflint.c (section_name): Return "<invalid>" instead of
-+      crashing on invalid section name.
-+      (check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic,
-+      check_symtab_shndx, check_hash, check_versym): Robustify.
-+
- 2005-05-08  Roland McGrath  <roland@redhat.com>
-       * strip.c (handle_elf): Don't translate hash and versym data formats,
---- elfutils/src/elflint.c
-+++ elfutils/src/elflint.c
-@@ -131,6 +131,10 @@ static uint32_t shstrndx;
- /* Array to count references in section groups.  */
- static int *scnref;
-+/* Numbers of sections and program headers.  */
-+static unsigned int shnum;
-+static unsigned int phnum;
-+
- int
- main (int argc, char *argv[])
-@@ -319,10 +323,19 @@ section_name (Ebl *ebl, int idx)
- {
-   GElf_Shdr shdr_mem;
-   GElf_Shdr *shdr;
-+  const char *ret;
-+
-+  if ((unsigned int) idx > shnum)
-+    return "<invalid>";
-   shdr = gelf_getshdr (elf_getscn (ebl->elf, idx), &shdr_mem);
-+  if (shdr == NULL)
-+    return "<invalid>";
--  return elf_strptr (ebl->elf, shstrndx, shdr->sh_name);
-+  ret = elf_strptr (ebl->elf, shstrndx, shdr->sh_name);
-+  if (ret == NULL)
-+    return "<invalid>";
-+  return ret;
- }
-@@ -344,11 +357,6 @@ static const int valid_e_machine[] =
-   (sizeof (valid_e_machine) / sizeof (valid_e_machine[0]))
--/* Numbers of sections and program headers.  */
--static unsigned int shnum;
--static unsigned int phnum;
--
--
- static void
- check_elf_header (Ebl *ebl, GElf_Ehdr *ehdr, size_t size)
- {
-@@ -632,7 +640,8 @@ section [%2d] '%s': symbol table cannot 
-         }
-       }
--  if (shdr->sh_entsize != gelf_fsize (ebl->elf, ELF_T_SYM, 1, EV_CURRENT))
-+  size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_SYM, 1, EV_CURRENT);
-+  if (shdr->sh_entsize != sh_entsize)
-     ERROR (gettext ("\
- section [%2u] '%s': entry size is does not match ElfXX_Sym\n"),
-          idx, section_name (ebl, idx));
-@@ -670,7 +679,7 @@ section [%2d] '%s': XINDEX for zeroth en
-              xndxscnidx, section_name (ebl, xndxscnidx));
-     }
--  for (size_t cnt = 1; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
-+  for (size_t cnt = 1; cnt < shdr->sh_size / sh_entsize; ++cnt)
-     {
-       sym = gelf_getsymshndx (data, xndxdata, cnt, &sym_mem, &xndx);
-       if (sym == NULL)
-@@ -690,7 +699,8 @@ section [%2d] '%s': symbol %zu: invalid 
-       else
-       {
-         name = elf_strptr (ebl->elf, shdr->sh_link, sym->st_name);
--        assert (name != NULL);
-+        assert (name != NULL
-+                || strshdr->sh_type != SHT_STRTAB);
-       }
-       if (sym->st_shndx == SHN_XINDEX)
-@@ -1039,9 +1049,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e
-     {
-       GElf_Shdr rcshdr_mem;
-       const GElf_Shdr *rcshdr = gelf_getshdr (scn, &rcshdr_mem);
--      assert (rcshdr != NULL);
--      if (rcshdr->sh_type == SHT_DYNAMIC)
-+      if (rcshdr == NULL)
-+      break;
-+
-+      if (rcshdr->sh_type == SHT_DYNAMIC && rcshdr->sh_entsize)
-       {
-         /* Found the dynamic section.  Look through it.  */
-         Elf_Data *d = elf_getdata (scn, NULL);
-@@ -1051,7 +1063,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e
-           {
-             GElf_Dyn dyn_mem;
-             GElf_Dyn *dyn = gelf_getdyn (d, cnt, &dyn_mem);
--            assert (dyn != NULL);
-+
-+            if (dyn == NULL)
-+              break;
-             if (dyn->d_tag == DT_RELCOUNT)
-               {
-@@ -1065,7 +1079,9 @@ section [%2d] '%s': DT_RELCOUNT used for
-                     /* Does the number specified number of relative
-                        relocations exceed the total number of
-                        relocations?  */
--                    if (dyn->d_un.d_val > shdr->sh_size / shdr->sh_entsize)
-+                    if (shdr->sh_entsize != 0
-+                        && dyn->d_un.d_val > (shdr->sh_size
-+                                              / shdr->sh_entsize))
-                       ERROR (gettext ("\
- section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"),
-                              idx, section_name (ebl, idx),
-@@ -1225,7 +1241,8 @@ section [%2d] '%s': no relocations for m
-       }
-     }
--  if (shdr->sh_entsize != gelf_fsize (ebl->elf, reltype, 1, EV_CURRENT))
-+  size_t sh_entsize = gelf_fsize (ebl->elf, reltype, 1, EV_CURRENT);
-+  if (shdr->sh_entsize != sh_entsize)
-     ERROR (gettext (reltype == ELF_T_RELA ? "\
- section [%2d] '%s': section entry size does not match ElfXX_Rela\n" : "\
- section [%2d] '%s': section entry size does not match ElfXX_Rel\n"),
-@@ -1448,7 +1465,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G
-   Elf_Data *symdata = elf_getdata (symscn, NULL);
-   enum load_state state = state_undecided;
--  for (size_t cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
-+  size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_RELA, 1, EV_CURRENT);
-+  for (size_t cnt = 0; cnt < shdr->sh_size / sh_entsize; ++cnt)
-     {
-       GElf_Rela rela_mem;
-       GElf_Rela *rela = gelf_getrela (data, cnt, &rela_mem);
-@@ -1498,7 +1516,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE
-   Elf_Data *symdata = elf_getdata (symscn, NULL);
-   enum load_state state = state_undecided;
--  for (size_t cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
-+  size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_REL, 1, EV_CURRENT);
-+  for (size_t cnt = 0; cnt < shdr->sh_size / sh_entsize; ++cnt)
-     {
-       GElf_Rel rel_mem;
-       GElf_Rel *rel = gelf_getrel (data, cnt, &rel_mem);
-@@ -1597,7 +1616,8 @@ section [%2d] '%s': referenced as string
-          shdr->sh_link, section_name (ebl, shdr->sh_link),
-          idx, section_name (ebl, idx));
--  if (shdr->sh_entsize != gelf_fsize (ebl->elf, ELF_T_DYN, 1, EV_CURRENT))
-+  size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_DYN, 1, EV_CURRENT);
-+  if (shdr->sh_entsize != sh_entsize)
-     ERROR (gettext ("\
- section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"),
-          idx, section_name (ebl, idx));
-@@ -1607,7 +1627,7 @@ section [%2d] '%s': section entry size d
-          idx, section_name (ebl, idx));
-   bool non_null_warned = false;
--  for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
-+  for (cnt = 0; cnt < shdr->sh_size / sh_entsize; ++cnt)
-     {
-       GElf_Dyn dyn_mem;
-       GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dyn_mem);
-@@ -1879,6 +1899,8 @@ section [%2d] '%s': entry size does not 
-          idx, section_name (ebl, idx));
-   if (symshdr != NULL
-+      && shdr->sh_entsize
-+      && symshdr->sh_entsize
-       && (shdr->sh_size / shdr->sh_entsize
-         < symshdr->sh_size / symshdr->sh_entsize))
-     ERROR (gettext ("\
-@@ -1905,6 +1927,12 @@ section [%2d] '%s': extended section ind
-     }
-   Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL);
-+  if (data == NULL)
-+    {
-+      ERROR (gettext ("section [%2d] '%s': cannot get section data\n"),
-+           idx, section_name (ebl, idx));
-+      return;
-+    }
-   if (*((Elf32_Word *) data->d_buf) != 0)
-     ERROR (gettext ("symbol 0 should have zero extended section index\n"));
-@@ -1947,7 +1975,7 @@ section [%2d] '%s': hash table section i
-   size_t maxidx = nchain;
--  if (symshdr != NULL)
-+  if (symshdr != NULL && symshdr->sh_entsize != 0)
-     {
-       size_t symsize = symshdr->sh_size / symshdr->sh_entsize;
-@@ -1958,18 +1986,28 @@ section [%2d] '%s': hash table section i
-       maxidx = symsize;
-     }
-+  Elf32_Word *buf = (Elf32_Word *) data->d_buf;
-+  Elf32_Word *end = (Elf32_Word *) ((char *) data->d_buf + shdr->sh_size);
-   size_t cnt;
-   for (cnt = 2; cnt < 2 + nbucket; ++cnt)
--    if (((Elf32_Word *) data->d_buf)[cnt] >= maxidx)
-+    {
-+      if (buf + cnt >= end)
-+      break;
-+      else if (buf[cnt] >= maxidx)
-       ERROR (gettext ("\
- section [%2d] '%s': hash bucket reference %zu out of bounds\n"),
-            idx, section_name (ebl, idx), cnt - 2);
-+    }
-   for (; cnt < 2 + nbucket + nchain; ++cnt)
--    if (((Elf32_Word *) data->d_buf)[cnt] >= maxidx)
-+    {
-+      if (buf + cnt >= end)
-+      break;
-+      else if (buf[cnt] >= maxidx)
-       ERROR (gettext ("\
- section [%2d] '%s': hash chain reference %zu out of bounds\n"),
-            idx, section_name (ebl, idx), cnt - 2 - nbucket);
-+    }
- }
-@@ -1999,18 +2037,28 @@ section [%2d] '%s': hash table section i
-       maxidx = symsize;
-     }
-+  Elf64_Xword *buf = (Elf64_Xword *) data->d_buf;
-+  Elf64_Xword *end = (Elf64_Xword *) ((char *) data->d_buf + shdr->sh_size);
-   size_t cnt;
-   for (cnt = 2; cnt < 2 + nbucket; ++cnt)
--    if (((Elf64_Xword *) data->d_buf)[cnt] >= maxidx)
-+    {
-+      if (buf + cnt >= end)
-+      break;
-+      else if (buf[cnt] >= maxidx)
-       ERROR (gettext ("\
- section [%2d] '%s': hash bucket reference %zu out of bounds\n"),
-            idx, section_name (ebl, idx), cnt - 2);
-+    }
-   for (; cnt < 2 + nbucket + nchain; ++cnt)
--    if (((Elf64_Xword *) data->d_buf)[cnt] >= maxidx)
-+    {
-+      if (buf + cnt >= end)
-+      break;
-+      else if (buf[cnt] >= maxidx)
-       ERROR (gettext ("\
- section [%2d] '%s': hash chain reference %" PRIu64 " out of bounds\n"),
--           idx, section_name (ebl, idx), (uint64_t) (cnt - 2 - nbucket));
-+             idx, section_name (ebl, idx), (uint64_t) cnt - 2 - nbucket);
-+    }
- }
-@@ -2035,7 +2083,7 @@ section [%2d] '%s': bitmask size not pow
-   if (shdr->sh_size < (4 + bitmask_words + nbuckets) * sizeof (Elf32_Word))
-     {
-       ERROR (gettext ("\
--section [%2d] '%s': hash table section is too small (is %ld, expected at least%ld)\n"),
-+section [%2d] '%s': hash table section is too small (is %ld, expected at least %ld)\n"),
-            idx, section_name (ebl, idx), (long int) shdr->sh_size,
-            (long int) ((4 + bitmask_words + nbuckets) * sizeof (Elf32_Word)));
-       return;
-@@ -2707,8 +2755,9 @@ section [%2d] '%s' refers in sh_link to 
-   /* The number of elements in the version symbol table must be the
-      same as the number of symbols.  */
--  if (shdr->sh_size / shdr->sh_entsize
--      != symshdr->sh_size / symshdr->sh_entsize)
-+  if (shdr->sh_entsize && symshdr->sh_entsize
-+      && (shdr->sh_size / shdr->sh_entsize
-+        != symshdr->sh_size / symshdr->sh_entsize))
-     ERROR (gettext ("\
- section [%2d] '%s' has different number of entries than symbol table [%2d] '%s'\n"),
-          idx, section_name (ebl, idx),
---- elfutils/src/readelf.c
-+++ elfutils/src/readelf.c
-@@ -1178,6 +1178,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G
-   Elf32_Word *grpref = (Elf32_Word *) data->d_buf;
-   GElf_Sym sym_mem;
-+  GElf_Sym *sym = gelf_getsym (symdata, shdr->sh_info, &sym_mem);
-+
-   printf ((grpref[0] & GRP_COMDAT)
-         ? ngettext ("\
- \nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n",
-@@ -1190,8 +1192,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G
-                     data->d_size / sizeof (Elf32_Word) - 1),
-         elf_ndxscn (scn),
-         elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
--        elf_strptr (ebl->elf, symshdr->sh_link,
--                    gelf_getsym (symdata, shdr->sh_info, &sym_mem)->st_name)
-+        (sym == NULL ? NULL
-+         : elf_strptr (ebl->elf, symshdr->sh_link, sym->st_name))
-         ?: gettext ("<INVALID SYMBOL>"),
-         data->d_size / sizeof (Elf32_Word) - 1);
-@@ -1342,7 +1344,8 @@ static void
- handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
- {
-   int class = gelf_getclass (ebl->elf);
--  GElf_Shdr glink;
-+  GElf_Shdr glink_mem;
-+  GElf_Shdr *glink;
-   Elf_Data *data;
-   size_t cnt;
-   size_t shstrndx;
-@@ -1357,6 +1360,11 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, 
-     error (EXIT_FAILURE, 0,
-          gettext ("cannot get section header string table index"));
-+  glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &glink_mem);
-+  if (glink == NULL)
-+    error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"),
-+         elf_ndxscn (scn));
-+
-   printf (ngettext ("\
- \nDynamic segment contains %lu entry:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'\n",
-                   "\
-@@ -1366,9 +1374,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, 
-         class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
-         shdr->sh_offset,
-         (int) shdr->sh_link,
--        elf_strptr (ebl->elf, shstrndx,
--                    gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
--                                  &glink)->sh_name));
-+        elf_strptr (ebl->elf, shstrndx, glink->sh_name));
-   fputs_unlocked (gettext ("  Type              Value\n"), stdout);
-   for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
-@@ -1951,6 +1957,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G
-     error (EXIT_FAILURE, 0,
-          gettext ("cannot get section header string table index"));
-+  GElf_Shdr glink_mem;
-+  GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
-+                                 &glink_mem);
-+  if (glink == NULL)
-+    error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"),
-+         elf_ndxscn (scn));
-+
-   /* Now we can compute the number of entries in the section.  */
-   unsigned int nsyms = data->d_size / (class == ELFCLASS32
-                                      ? sizeof (Elf32_Sym)
-@@ -1961,15 +1974,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G
-                   nsyms),
-         (unsigned int) elf_ndxscn (scn),
-         elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms);
--  GElf_Shdr glink;
-   printf (ngettext (" %lu local symbol  String table: [%2u] '%s'\n",
-                   " %lu local symbols  String table: [%2u] '%s'\n",
-                   shdr->sh_info),
-         (unsigned long int) shdr->sh_info,
-         (unsigned int) shdr->sh_link,
--        elf_strptr (ebl->elf, shstrndx,
--                    gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
--                                  &glink)->sh_name));
-+        elf_strptr (ebl->elf, shstrndx, glink->sh_name));
-   fputs_unlocked (class == ELFCLASS32
-                 ? gettext ("\
-@@ -2205,7 +2215,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, 
-     error (EXIT_FAILURE, 0,
-          gettext ("cannot get section header string table index"));
--  GElf_Shdr glink;
-+  GElf_Shdr glink_mem;
-+  GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
-+                                 &glink_mem);
-+  if (glink == NULL)
-+    error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"),
-+         elf_ndxscn (scn));
-+
-   printf (ngettext ("\
- \nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'\n",
-                   "\
-@@ -2216,9 +2232,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, 
-         class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
-         shdr->sh_offset,
-         (unsigned int) shdr->sh_link,
--        elf_strptr (ebl->elf, shstrndx,
--                    gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
--                                  &glink)->sh_name));
-+        elf_strptr (ebl->elf, shstrndx, glink->sh_name));
-   unsigned int offset = 0;
-   for (int cnt = shdr->sh_info; --cnt >= 0; )
-@@ -2271,8 +2285,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G
-     error (EXIT_FAILURE, 0,
-          gettext ("cannot get section header string table index"));
-+  GElf_Shdr glink_mem;
-+  GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
-+                                 &glink_mem);
-+  if (glink == NULL)
-+    error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"),
-+         elf_ndxscn (scn));
-+
-   int class = gelf_getclass (ebl->elf);
--  GElf_Shdr glink;
-   printf (ngettext ("\
- \nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'\n",
-                   "\
-@@ -2284,9 +2304,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G
-         class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
-         shdr->sh_offset,
-         (unsigned int) shdr->sh_link,
--        elf_strptr (ebl->elf, shstrndx,
--                    gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
--                                  &glink)->sh_name));
-+        elf_strptr (ebl->elf, shstrndx, glink->sh_name));
-   unsigned int offset = 0;
-   for (int cnt = shdr->sh_info; --cnt >= 0; )
-@@ -2548,8 +2566,14 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G
-       filename = NULL;
-     }
-+  GElf_Shdr glink_mem;
-+  GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
-+                                 &glink_mem);
-+  if (glink == NULL)
-+    error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"),
-+         elf_ndxscn (scn));
-+
-   /* Print the header.  */
--  GElf_Shdr glink;
-   printf (ngettext ("\
- \nVersion symbols section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 "  Offset: %#08" PRIx64 "  Link to section: [%2u] '%s'",
-                   "\
-@@ -2561,9 +2585,7 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G
-         class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
-         shdr->sh_offset,
-         (unsigned int) shdr->sh_link,
--        elf_strptr (ebl->elf, shstrndx,
--                    gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
--                                  &glink)->sh_name));
-+        elf_strptr (ebl->elf, shstrndx, glink->sh_name));
-   /* Now we can finally look at the actual contents of this section.  */
-   for (unsigned int cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt)
-@@ -2615,7 +2637,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn,
-   for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt)
-     ++counts[lengths[cnt]];
--  GElf_Shdr glink;
-+  GElf_Shdr glink_mem;
-+  GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf,
-+                                             shdr->sh_link),
-+                                 &glink_mem);
-+  if (glink == NULL)
-+    {
-+      error (0, 0, gettext ("invalid sh_link value in section %Zu"),
-+           elf_ndxscn (scn));
-+      return;
-+    }
-+
-   printf (ngettext ("\
- \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",
-                   "\
-@@ -2628,9 +2660,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn,
-         shdr->sh_addr,
-         shdr->sh_offset,
-         (unsigned int) shdr->sh_link,
--        elf_strptr (ebl->elf, shstrndx,
--                    gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
--                                  &glink)->sh_name));
-+        elf_strptr (ebl->elf, shstrndx, glink->sh_name));
-   if (extrastr != NULL)
-     fputs (extrastr, stdout);
-@@ -4486,6 +4516,16 @@ print_debug_aranges_section (Dwfl_Module
-       return;
-     }
-+  GElf_Shdr glink_mem;
-+  GElf_Shdr *glink;
-+  glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &glink_mem);
-+  if (glink == NULL)
-+    {
-+      error (0, 0, gettext ("invalid sh_link value in section %Zu"),
-+           elf_ndxscn (scn));
-+      return;
-+    }
-+
-   printf (ngettext ("\
- \nDWARF section [%2zu] '%s' at offset %#" PRIx64 " contains %zu entry:\n",
-                   "\
---- elfutils/src/strip.c
-+++ elfutils/src/strip.c
-@@ -555,6 +555,11 @@ handle_elf (int fd, Elf *elf, const char
-       goto fail_close;
-     }
-+  if (shstrndx >= shnum)
-+    goto illformed;
-+
-+#define elf_assert(test) do { if (!(test)) goto illformed; } while (0)
-+
-   /* Storage for section information.  We leave room for two more
-      entries since we unconditionally create a section header string
-      table.  Maybe some weird tool created an ELF file without one.
-@@ -576,7 +581,7 @@ handle_elf (int fd, Elf *elf, const char
-     {
-       /* This should always be true (i.e., there should not be any
-        holes in the numbering).  */
--      assert (elf_ndxscn (scn) == cnt);
-+      elf_assert (elf_ndxscn (scn) == cnt);
-       shdr_info[cnt].scn = scn;
-@@ -589,6 +594,7 @@ handle_elf (int fd, Elf *elf, const char
-                                       shdr_info[cnt].shdr.sh_name);
-       if (shdr_info[cnt].name == NULL)
-       {
-+      illformed:
-         error (0, 0, gettext ("illformed file '%s'"), fname);
-         goto fail_close;
-       }
-@@ -598,6 +604,8 @@ handle_elf (int fd, Elf *elf, const char
-       /* Remember the shdr.sh_link value.  */
-       shdr_info[cnt].old_sh_link = shdr_info[cnt].shdr.sh_link;
-+      if (shdr_info[cnt].old_sh_link >= shnum)
-+      goto illformed;
-       /* Sections in files other than relocatable object files which
-        are not loaded can be freely moved by us.  In relocatable
-@@ -610,7 +618,7 @@ handle_elf (int fd, Elf *elf, const char
-        appropriate reference.  */
-       if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB_SHNDX))
-       {
--        assert (shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx == 0);
-+        elf_assert (shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx == 0);
-         shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx = cnt;
-       }
-       else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GROUP))
-@@ -627,7 +635,12 @@ handle_elf (int fd, Elf *elf, const char
-         for (inner = 1;
-              inner < shdr_info[cnt].data->d_size / sizeof (Elf32_Word);
-              ++inner)
-+          {
-+            if (grpref[inner] < shnum)
-           shdr_info[grpref[inner]].group_idx = cnt;
-+            else
-+              goto illformed;
-+          }
-         if (inner == 1 || (inner == 2 && (grpref[0] & GRP_COMDAT) == 0))
-           /* If the section group contains only one element and this
-@@ -638,7 +651,7 @@ handle_elf (int fd, Elf *elf, const char
-       }
-       else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym))
-       {
--        assert (shdr_info[shdr_info[cnt].shdr.sh_link].version_idx == 0);
-+        elf_assert (shdr_info[shdr_info[cnt].shdr.sh_link].version_idx == 0);
-         shdr_info[shdr_info[cnt].shdr.sh_link].version_idx = cnt;
-       }
-@@ -646,7 +659,7 @@ handle_elf (int fd, Elf *elf, const char
-        discarded right away.  */
-       if ((shdr_info[cnt].shdr.sh_flags & SHF_GROUP) != 0)
-       {
--        assert (shdr_info[cnt].group_idx != 0);
-+        elf_assert (shdr_info[cnt].group_idx != 0);
-         if (shdr_info[shdr_info[cnt].group_idx].idx == 0)
-           {
-@@ -722,11 +735,15 @@ handle_elf (int fd, Elf *elf, const char
-           {
-             /* If a relocation section is marked as being removed make
-                sure the section it is relocating is removed, too.  */
--            if ((shdr_info[cnt].shdr.sh_type == SHT_REL
-+            if (shdr_info[cnt].shdr.sh_type == SHT_REL
-                  || shdr_info[cnt].shdr.sh_type == SHT_RELA)
--                && shdr_info[shdr_info[cnt].shdr.sh_info].idx != 0)
-+              {
-+                if (shdr_info[cnt].shdr.sh_info >= shnum)
-+                  goto illformed;
-+                else if (shdr_info[shdr_info[cnt].shdr.sh_info].idx != 0)
-               shdr_info[cnt].idx = 1;
-           }
-+          }
-         if (shdr_info[cnt].idx == 1)
-           {
-@@ -753,7 +770,7 @@ handle_elf (int fd, Elf *elf, const char
-                 if (shdr_info[cnt].symtab_idx != 0
-                     && shdr_info[shdr_info[cnt].symtab_idx].data == NULL)
-                   {
--                    assert (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB);
-+                    elf_assert (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB);
-                     shdr_info[shdr_info[cnt].symtab_idx].data
-                       = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn,
-@@ -793,6 +810,9 @@ handle_elf (int fd, Elf *elf, const char
-                     else if (scnidx == SHN_XINDEX)
-                       scnidx = xndx;
-+                    if (scnidx >= shnum)
-+                      goto illformed;
-+
-                     if (shdr_info[scnidx].idx == 0)
-                       /* This symbol table has a real symbol in
-                          a discarded section.  So preserve the
-@@ -823,12 +843,16 @@ handle_elf (int fd, Elf *elf, const char
-               }
-             /* Handle references through sh_info.  */
--            if (SH_INFO_LINK_P (&shdr_info[cnt].shdr)
--                && shdr_info[shdr_info[cnt].shdr.sh_info].idx == 0)
-+            if (SH_INFO_LINK_P (&shdr_info[cnt].shdr))
-+              {
-+                if (shdr_info[cnt].shdr.sh_info >= shnum)
-+                  goto illformed;
-+                else if ( shdr_info[shdr_info[cnt].shdr.sh_info].idx == 0)
-               {
-                 shdr_info[shdr_info[cnt].shdr.sh_info].idx = 1;
-                 changes |= shdr_info[cnt].shdr.sh_info < cnt;
-               }
-+              }
-             /* Mark the section as investigated.  */
-             shdr_info[cnt].idx = 2;
-@@ -967,7 +991,7 @@ handle_elf (int fd, Elf *elf, const char
-         error (EXIT_FAILURE, 0, gettext ("while generating output file: %s"),
-                elf_errmsg (-1));
--      assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx);
-+      elf_assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx);
-       /* Add this name to the section header string table.  */
-       shdr_info[cnt].se = ebl_strtabadd (shst, shdr_info[cnt].name, 0);
-@@ -1004,7 +1028,7 @@ handle_elf (int fd, Elf *elf, const char
-       error (EXIT_FAILURE, 0,
-              gettext ("while create section header section: %s"),
-              elf_errmsg (-1));
--      assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx);
-+      elf_assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx);
-       shdr_info[cnt].data = elf_newdata (shdr_info[cnt].newscn);
-       if (shdr_info[cnt].data == NULL)
-@@ -1060,7 +1084,7 @@ handle_elf (int fd, Elf *elf, const char
-     error (EXIT_FAILURE, 0,
-          gettext ("while create section header section: %s"),
-          elf_errmsg (-1));
--  assert (elf_ndxscn (shdr_info[cnt].newscn) == idx);
-+  elf_assert (elf_ndxscn (shdr_info[cnt].newscn) == idx);
-   /* Finalize the string table and fill in the correct indices in the
-      section headers.  */
-@@ -1150,20 +1174,20 @@ handle_elf (int fd, Elf *elf, const char
-                   shndxdata = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn,
-                                            NULL);
--                  assert ((versiondata->d_size / sizeof (Elf32_Word))
-+                  elf_assert ((versiondata->d_size / sizeof (Elf32_Word))
-                           >= shdr_info[cnt].data->d_size / elsize);
-                 }
-               if (shdr_info[cnt].version_idx != 0)
-                 {
--                  assert (shdr_info[cnt].shdr.sh_type == SHT_DYNSYM);
-+                  elf_assert (shdr_info[cnt].shdr.sh_type == SHT_DYNSYM);
-                   /* This section has associated version
-                      information.  We have to modify that
-                      information, too.  */
-                   versiondata = elf_getdata (shdr_info[shdr_info[cnt].version_idx].scn,
-                                              NULL);
--                  assert ((versiondata->d_size / sizeof (GElf_Versym))
-+                  elf_assert ((versiondata->d_size / sizeof (GElf_Versym))
-                           >= shdr_info[cnt].data->d_size / elsize);
-                 }
-@@ -1218,7 +1242,7 @@ handle_elf (int fd, Elf *elf, const char
-                     sec = shdr_info[sym->st_shndx].idx;
-                   else
-                     {
--                      assert (shndxdata != NULL);
-+                      elf_assert (shndxdata != NULL);
-                       sec = shdr_info[xshndx].idx;
-                     }
-@@ -1239,7 +1263,7 @@ handle_elf (int fd, Elf *elf, const char
-                           nxshndx = sec;
-                         }
--                      assert (sec < SHN_LORESERVE || shndxdata != NULL);
-+                      elf_assert (sec < SHN_LORESERVE || shndxdata != NULL);
-                       if ((inner != destidx || nshndx != sym->st_shndx
-                            || (shndxdata != NULL && nxshndx != xshndx))
-@@ -1263,7 +1287,7 @@ handle_elf (int fd, Elf *elf, const char
-                            || shdr_info[cnt].debug_data == NULL)
-                     /* This is a section symbol for a section which has
-                        been removed.  */
--                    assert (GELF_ST_TYPE (sym->st_info) == STT_SECTION);
-+                    elf_assert (GELF_ST_TYPE (sym->st_info) == STT_SECTION);
-                 }
-               if (destidx != inner)
-@@ -1450,11 +1474,11 @@ handle_elf (int fd, Elf *elf, const char
-                 {
-                   GElf_Sym sym_mem;
-                   GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem);
--                  assert (sym != NULL);
-+                  elf_assert (sym != NULL);
-                   const char *name = elf_strptr (elf, strshndx,
-                                                  sym->st_name);
--                  assert (name != NULL);
-+                  elf_assert (name != NULL);
-                   size_t hidx = elf_hash (name) % nbucket;
-                   if (bucket[hidx] == 0)
-@@ -1473,7 +1497,7 @@ handle_elf (int fd, Elf *elf, const char
-           else
-             {
-               /* Alpha and S390 64-bit use 64-bit SHT_HASH entries.  */
--              assert (shdr_info[cnt].shdr.sh_entsize
-+              elf_assert (shdr_info[cnt].shdr.sh_entsize
-                       == sizeof (Elf64_Xword));
-               Elf64_Xword *bucket = (Elf64_Xword *) hashd->d_buf;
-@@ -1504,11 +1528,11 @@ handle_elf (int fd, Elf *elf, const char
-                 {
-                   GElf_Sym sym_mem;
-                   GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem);
--                  assert (sym != NULL);
-+                  elf_assert (sym != NULL);
-                   const char *name = elf_strptr (elf, strshndx,
-                                                  sym->st_name);
--                  assert (name != NULL);
-+                  elf_assert (name != NULL);
-                   size_t hidx = elf_hash (name) % nbucket;
-                   if (bucket[hidx] == 0)
index 9ac198e69c7d5012b02ebb7f16f8b627e4502302..dfcc9b69c00ab453d0edd0d5debbf29c45c4ce1d 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = file
-version    = 5.18
+version    = 5.20
 release    = 1
 
 groups     = System/Tools
@@ -27,7 +27,8 @@ build
        end
 
        configure_options += \
-               --disable-static
+               --disable-static \
+               --enable-fsect-man5
 
        test
                make check
index 6aee52ade7a57524327098860cfd3f2910d02cf6..135faed1a30130df13e330e830963d124f97f1aa 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = findutils
-version    = 4.5.10
-release    = 4
+version    = 4.5.14
+release    = 1
 
 groups     = System/Tools
 url        = http://www.gnu.org/software/findutils/
@@ -13,15 +13,15 @@ license    = GPLv3+
 summary    = The GNU versions of find utilities (find and xargs).
 
 description
-       The findutils package contains programs which will help you locate \
-       files on your system.  The find utility searches through a hierarchy \
-       of directories looking for files which match a certain set of criteria \
-       (such as a filename pattern).  The xargs utility builds and executes \
-       command lines from standard input arguments (usually lists of file \
+       The findutils package contains programs which will help you locate
+       files on your system.  The find utility searches through a hierarchy
+       of directories looking for files which match a certain set of criteria
+       (such as a filename pattern).  The xargs utility builds and executes
+       command lines from standard input arguments (usually lists of file
        names generated by the find command).
 end
 
-source_dl  = http://ftp.gnu.org/pub/gnu/findutils/
+source_dl  = http://ftp.gnu.org/pub/gnu/findutils/ ftp://alpha.gnu.org/gnu/findutils/
 
 build
        requires
diff --git a/findutils/patches/findutils-4.5.10-gets.patch b/findutils/patches/findutils-4.5.10-gets.patch
deleted file mode 100644 (file)
index 24eecc3..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-From fe7079ab7e5794b9222af5e56c6f25b424ca72f3 Mon Sep 17 00:00:00 2001
-From: Kamil Dudka <kdudka@redhat.com>
-Date: Tue, 28 Aug 2012 17:24:21 +0200
-Subject: [PATCH] gnulib: do not require gets() to be declared
-
----
- gnulib/lib/stdio.in.h |    6 ------
- 1 files changed, 0 insertions(+), 6 deletions(-)
-
-diff --git a/gnulib/lib/stdio.in.h b/gnulib/lib/stdio.in.h
-index 57e93ba..b1e5bb6 100644
---- a/gnulib/lib/stdio.in.h
-+++ b/gnulib/lib/stdio.in.h
-@@ -175,12 +175,6 @@ _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - "
-                  "use gnulib module fflush for portable POSIX compliance");
- #endif
--/* It is very rare that the developer ever has full control of stdin,
--   so any use of gets warrants an unconditional warning.  Assume it is
--   always declared, since it is required by C89.  */
--#undef gets
--_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
--
- #if @GNULIB_FOPEN@
- # if @REPLACE_FOPEN@
- #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
--- 
-1.7.1
-
index eaef5a2291cd2a6c572d415b4816a71dcf255ce2..a2593c91126b1e0d670030b4b699094e2ed12c32 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = flex
-version    = 2.5.37
+version    = 2.5.39
 release    = 1
 
 groups     = Development/Tools
diff --git a/flex/patches/flex-2.5.36-bison-2.6.1.patch b/flex/patches/flex-2.5.36-bison-2.6.1.patch
deleted file mode 100644 (file)
index e7cdff6..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-diff -up flex-2.5.36/tests/test-bison-yylloc/main.c~ flex-2.5.36/tests/test-bison-yylloc/main.c
---- flex-2.5.36/tests/test-bison-yylloc/main.c~        2002-06-25 21:37:06.000000000 +0200
-+++ flex-2.5.36/tests/test-bison-yylloc/main.c 2012-07-31 18:53:22.007394045 +0200
-@@ -21,8 +21,6 @@
- #include "parser.h"
- #include "scanner.h"
--extern int testparse(yyscan_t);
--
- int main ( int argc, char** argv )
- {
-     yyscan_t scanner;
-diff -up flex-2.5.36/tests/test-bison-yylloc/parser.y~ flex-2.5.36/tests/test-bison-yylloc/parser.y
---- flex-2.5.36/tests/test-bison-yylloc/parser.y~      2002-07-25 02:43:47.000000000 +0200
-+++ flex-2.5.36/tests/test-bison-yylloc/parser.y       2012-08-01 01:06:53.093155586 +0200
-@@ -21,6 +21,8 @@
-  * PURPOSE.
-  */
-+%parse-param { void* scanner }
-+
- /* 
-    How to compile:
-    bison --defines --output-file="parser.c" --name-prefix="test" parser.y
-@@ -32,10 +34,8 @@
- #include "config.h"
- #define YYERROR_VERBOSE 1
--#define YYPARSE_PARAM scanner
- #define YYLEX_PARAM   scanner
--int yyerror(char* msg);
- extern int testget_lineno(void*);
-@@ -89,7 +89,7 @@ line:
- %%
--int yyerror(char* msg) {
-+int yyerror(void* scanner, char* msg) {
-     fprintf(stderr,"%s\n",msg);
-     return 0;
- }
-diff -up flex-2.5.36/tests/test-bison-yylval/main.c~ flex-2.5.36/tests/test-bison-yylval/main.c
---- flex-2.5.36/tests/test-bison-yylval/main.c~        2002-06-25 21:37:06.000000000 +0200
-+++ flex-2.5.36/tests/test-bison-yylval/main.c 2012-08-01 01:10:02.015510280 +0200
-@@ -24,8 +24,6 @@
- #include "parser.h"
- #include "scanner.h"
--extern int testparse(yyscan_t);
--
- int main ( int argc, char** argv )
- {
-     yyscan_t scanner;
-diff -up flex-2.5.36/tests/test-bison-yylval/parser.y~ flex-2.5.36/tests/test-bison-yylval/parser.y
---- flex-2.5.36/tests/test-bison-yylval/parser.y~      2002-06-25 21:37:06.000000000 +0200
-+++ flex-2.5.36/tests/test-bison-yylval/parser.y       2012-08-01 01:13:11.239867147 +0200
-@@ -25,6 +25,7 @@
-    How to compile:
-    bison --defines --output-file="parser.c" --name-prefix="test" parser.y
-  */
-+%parse-param { void* scanner }
- %{
- #include <stdio.h>
- #include <stdlib.h>
-@@ -32,11 +33,8 @@
- #include "config.h"
- #define YYERROR_VERBOSE 1
--#define YYPARSE_PARAM scanner
- #define YYLEX_PARAM   scanner
--int yyerror(char* msg);
--
- /* A dummy function. A check against seg-faults in yylval->str. */
- int process_text(char* s) {
-@@ -76,7 +74,7 @@ starttag:  LT      TAGNAME GT { process_
- endtag:    LTSLASH TAGNAME GT { process_text($2);free($2);} ;
- %%
--int yyerror(char* msg) {
-+int yyerror(void* scanner, char* msg) {
-     fprintf(stderr,"%s\n",msg);
-     return 0;
- }
index e7a073dae0adf887a6a92fd38ed0db60476fde0a..08c47ba68ba471981203ee55a931f943a74d7376 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = gdbm
-version    = 1.10
+version    = 1.11
 release    = 1
 
 groups     = Development/Tools
index 317a046fd742fd805bd7edc42f71fa0a146f451e..93b30618f8f443f8b14bdeb27a1ff4200e571384 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = gpgme
-version    = 1.3.0
-release    = 1
+version    = 1.5.3
+release    = 2
 
 groups     = Applications/System
 url        = http://www.gnupg.org/related_software/gpgme/
@@ -36,9 +36,10 @@ build
                --with-gpg=%{bindir}/gpg2 \
                --disable-gpg-test
 
-       test
-               make -C tests check
-       end
+       # Tests hang indefinitely
+       #test
+       #       make -C tests check
+       #end
 
        install_cmds
                # Remove LISP examples.
diff --git a/gpgme/patches/gpgme-1.2.0-largefile.patch b/gpgme/patches/gpgme-1.2.0-largefile.patch
deleted file mode 100644 (file)
index 98f9039..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up gpgme-1.2.0/src/gpgme-config.in.largefile gpgme-1.2.0/src/gpgme-config.in
---- gpgme-1.2.0/src/gpgme-config.in.largefile  2010-08-11 20:11:49.000000000 +0200
-+++ gpgme-1.2.0/src/gpgme-config.in    2010-08-11 20:23:45.000000000 +0200
-@@ -42,6 +42,10 @@ cflags_pthread=""
- cflags_glib="@GLIB_CFLAGS@"
- with_glib=
-+if test "0@NEED__FILE_OFFSET_BITS@" -gt "0" ; then
-+    cflags_lfs="-D_FILE_OFFSET_BITS=@NEED__FILE_OFFSET_BITS@"
-+fi
-+
- output=""
- usage()
-@@ -101,6 +105,9 @@ while test $# -gt 0; do
-           exit 0
-           ;;
-         --cflags)
-+          if test "x$cflags_lfs" != "x"; then
-+              output="$output $cflags_lfs"
-+          fi
-           if test "x$includedir" != "x/usr/include" -a "x$includedir" != "x/include"; then
-               output="$output -I$includedir"
-           fi
diff --git a/gpgme/patches/gpgme-1.3.0-ImplicitDSOLinking.patch b/gpgme/patches/gpgme-1.3.0-ImplicitDSOLinking.patch
deleted file mode 100644 (file)
index cd2f7a5..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-diff -up gpgme-1.3.0/src/Makefile.am.ImplicitDSOLinking gpgme-1.3.0/src/Makefile.am
---- gpgme-1.3.0/src/Makefile.am.ImplicitDSOLinking     2010-01-06 04:02:19.000000000 +0100
-+++ gpgme-1.3.0/src/Makefile.am        2011-02-11 18:14:54.000000000 +0100
-@@ -232,7 +232,7 @@ libgpgme_qt_la_LIBADD = $(gpgme_res) @LI
- endif
- noinst_PROGRAMS = gpgme-tool
--gpgme_tool_LDADD = libgpgme.la
-+gpgme_tool_LDADD = libgpgme.la @LIBASSUAN_LIBS@ @GPG_ERROR_LIBS@
- status-table.h : gpgme.h
-       $(srcdir)/mkstatus < $(builddir)/gpgme.h > status-table.h
-diff -up gpgme-1.3.0/src/Makefile.in.ImplicitDSOLinking gpgme-1.3.0/src/Makefile.in
---- gpgme-1.3.0/src/Makefile.in.ImplicitDSOLinking     2010-01-11 12:06:54.000000000 +0100
-+++ gpgme-1.3.0/src/Makefile.in        2011-02-11 18:17:10.000000000 +0100
-@@ -572,7 +572,7 @@ libgpgme_pth_la_LIBADD = $(gpgme_res) @L
- @BUILD_W32_QT_TRUE@libgpgme_qt_la_LIBADD = $(gpgme_res) @LIBASSUAN_LIBS@ @LTLIBOBJS@ \
- @BUILD_W32_QT_TRUE@   @GPG_ERROR_LIBS@ @QT4_CORE_LIBS@
--gpgme_tool_LDADD = libgpgme.la
-+gpgme_tool_LDADD = libgpgme.la @LIBASSUAN_LIBS@ @GPG_ERROR_LIBS@
- all: $(BUILT_SOURCES)
-       $(MAKE) $(AM_MAKEFLAGS) all-am
-diff -up gpgme-1.3.0/tests/gpgsm/Makefile.am.ImplicitDSOLinking gpgme-1.3.0/tests/gpgsm/Makefile.am
---- gpgme-1.3.0/tests/gpgsm/Makefile.am.ImplicitDSOLinking     2008-12-03 14:39:48.000000000 +0100
-+++ gpgme-1.3.0/tests/gpgsm/Makefile.am        2011-02-11 17:36:32.000000000 +0100
-@@ -32,7 +32,7 @@ EXTRA_DIST = cert_dfn_pca01.der cert_dfn
- INCLUDES = -I$(top_builddir)/src
- AM_CPPFLAGS = @GPG_ERROR_CFLAGS@
--LDADD = ../../src/libgpgme.la
-+LDADD = ../../src/libgpgme.la @GPG_ERROR_LIBS@
- # We don't run t-genkey in the test suite, because it takes too long
- # and needs a working pinentry.
-diff -up gpgme-1.3.0/tests/gpgsm/Makefile.in.ImplicitDSOLinking gpgme-1.3.0/tests/gpgsm/Makefile.in
---- gpgme-1.3.0/tests/gpgsm/Makefile.in.ImplicitDSOLinking     2010-01-11 12:06:54.000000000 +0100
-+++ gpgme-1.3.0/tests/gpgsm/Makefile.in        2011-02-11 17:36:32.000000000 +0100
-@@ -307,7 +307,7 @@ EXTRA_DIST = cert_dfn_pca01.der cert_dfn
- INCLUDES = -I$(top_builddir)/src
- AM_CPPFLAGS = @GPG_ERROR_CFLAGS@
--LDADD = ../../src/libgpgme.la
-+LDADD = ../../src/libgpgme.la @GPG_ERROR_LIBS@
- key_id = 32100C27173EF6E9C4E9A25D3D69F86D37A4F939
- DISTCLEANFILES = pubring.kbx pubring.kbx~ gpgsm.conf trustlist.txt \
-       private-keys-v1.d/$(key_id).key random_seed
-diff -up gpgme-1.3.0/tests/opassuan/Makefile.am.ImplicitDSOLinking gpgme-1.3.0/tests/opassuan/Makefile.am
---- gpgme-1.3.0/tests/opassuan/Makefile.am.ImplicitDSOLinking  2009-01-26 15:15:26.000000000 +0100
-+++ gpgme-1.3.0/tests/opassuan/Makefile.am     2011-02-11 17:36:32.000000000 +0100
-@@ -27,7 +27,7 @@ EXTRA_DIST = 
- INCLUDES = -I$(top_builddir)/src
- AM_CPPFLAGS = @GPG_ERROR_CFLAGS@
--LDADD = ../../src/libgpgme.la
-+LDADD = ../../src/libgpgme.la @GPG_ERROR_LIBS@
- noinst_PROGRAMS = $(TESTS) t-command
-diff -up gpgme-1.3.0/tests/opassuan/Makefile.in.ImplicitDSOLinking gpgme-1.3.0/tests/opassuan/Makefile.in
---- gpgme-1.3.0/tests/opassuan/Makefile.in.ImplicitDSOLinking  2010-01-11 12:06:54.000000000 +0100
-+++ gpgme-1.3.0/tests/opassuan/Makefile.in     2011-02-11 17:36:32.000000000 +0100
-@@ -258,7 +258,7 @@ noinst_HEADERS = 
- EXTRA_DIST = 
- INCLUDES = -I$(top_builddir)/src
- AM_CPPFLAGS = @GPG_ERROR_CFLAGS@
--LDADD = ../../src/libgpgme.la
-+LDADD = ../../src/libgpgme.la @GPG_ERROR_LIBS@
- DISTCLEANFILES = 
- all: all-am
diff --git a/gpgme/patches/gpgme-1.3.0-config_extras.patch b/gpgme/patches/gpgme-1.3.0-config_extras.patch
deleted file mode 100644 (file)
index 7b9a643..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up gpgme-1.3.0/src/gpgme-config.in.config_extras gpgme-1.3.0/src/gpgme-config.in
---- gpgme-1.3.0/src/gpgme-config.in.config_extras      2009-10-23 08:44:56.000000000 -0500
-+++ gpgme-1.3.0/src/gpgme-config.in    2011-03-17 13:15:12.511565537 -0500
-@@ -20,26 +20,26 @@ LC_ALL=C
- LANG=C
- # Network libraries.
--assuan_cflags="@LIBASSUAN_CFLAGS@"
--assuan_libs="@LIBASSUAN_LIBS@"
-+#assuan_cflags="@LIBASSUAN_CFLAGS@"
-+#assuan_libs="@LIBASSUAN_LIBS@"
- # Configure libgpg-error.
- gpg_error_cflags="@GPG_ERROR_CFLAGS@"
--gpg_error_libs="@GPG_ERROR_LIBS@"
-+#gpg_error_libs="@GPG_ERROR_LIBS@"
- # Configure thread packages.
- thread_modules=""
- @HAVE_PTH_TRUE@thread_modules="$thread_modules pth"
--libs_pth="@PTH_LDFLAGS@ @PTH_LIBS@"
-+#libs_pth="@PTH_LDFLAGS@ @PTH_LIBS@"
- cflags_pth="@PTH_CFLAGS@"
- @HAVE_PTHREAD_TRUE@thread_modules="$thread_modules pthread"
--libs_pthread="-lpthread"
-+#libs_pthread="-lpthread"
- cflags_pthread=""
- # Configure glib.
--libs_glib="@GLIB_LIBS@"
-+#libs_glib="@GLIB_LIBS@"
- cflags_glib="@GLIB_CFLAGS@"
- with_glib=
index 3b54d4661c1b1e8b383160eeb9445b023a07dd43..9c5e3ea259a8bb7f2dd7ce67fe01365c6c078721 100644 (file)
@@ -4,8 +4,9 @@
 ###############################################################################
 
 name       = help2man
-version    = 1.40.4
-release    = 2
+version    = 1.46.4
+release    = 1
+arch       = noarch
 
 groups     = Development/Tools
 url        = http://www.gnu.org/software/help2man
@@ -21,25 +22,22 @@ description
        still providing some useful information.
 end
 
-source_dl  =
+source_dl  = ftp://ftp.gnu.org/gnu/%{name}/
+sources    = %{thisapp}.tar.xz
 
 build
        requires
-               perl
+               %{bindir}/perl
        end
 
        configure_options += \
                --disable-nls \
-               --libdir=/usr/lib/help2man
+               --libdir=%{prefix}/lib/help2man
 
-       make_install_targets += install_l10n
+       make_install_targets += \
+               install_l10n
 end
 
 packages
        package %{name}
-       end
-
-       package %{name}-debuginfo
-               template DEBUGINFO
-       end
 end
index 2d1f04e31f5a4b0244007730ab18f3a1ef4788cd..69c06313178ab59d6f755ca6305c38a3d7d98212 100644 (file)
@@ -1,9 +1,3 @@
-CONFIG_ARM=y
-CONFIG_ARM_HAS_SG_CHAIN=y
-CONFIG_MIGHT_HAVE_PCI=y
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_VECTORS_BASE=0xffff0000
-CONFIG_ARM_PATCH_PHYS_VIRT=y
 
 #
 # IRQ subsystem
@@ -11,105 +5,23 @@ CONFIG_ARM_PATCH_PHYS_VIRT=y
 CONFIG_HARDIRQS_SW_RESEND=y
 CONFIG_HANDLE_DOMAIN_IRQ=y
 
-#
-# Timers subsystem
-#
-CONFIG_NO_HZ_IDLE=y
-
 #
 # CPU/Task time and stats accounting
 #
-# CONFIG_IRQ_TIME_ACCOUNTING is not set
+CONFIG_VIRT_CPU_ACCOUNTING=y
+CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
 
 #
 # RCU Subsystem
 #
+CONFIG_CONTEXT_TRACKING=y
 CONFIG_GENERIC_SCHED_CLOCK=y
 CONFIG_PERF_USE_VMALLOC=y
 
 #
 # Kernel Performance Events And Counters
 #
-CONFIG_GENERIC_IDLE_POLL_SETUP=y
-CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
-CONFIG_MODULES_USE_ELF_REL=y
 CONFIG_CLONE_BACKWARDS=y
-CONFIG_OLD_SIGACTION=y
-
-#
-# GCOV-based kernel profiling
-#
-CONFIG_LBDAF=y
-
-#
-# System Type
-#
-CONFIG_ARCH_MULTIPLATFORM=y
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_REALVIEW is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_AT91 is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_GEMINI is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_IOP13XX is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_DOVE is not set
-# CONFIG_ARCH_MV78XX0 is not set
-# CONFIG_ARCH_ORION5X is not set
-# CONFIG_ARCH_MMP is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_W90X900 is not set
-# CONFIG_ARCH_LPC32XX is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_MSM is not set
-# CONFIG_ARCH_SHMOBILE_LEGACY is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C24XX is not set
-# CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_DAVINCI is not set
-# CONFIG_ARCH_OMAP1 is not set
-
-#
-# CPU Core family selection
-#
-# CONFIG_ARCH_MULTI_V6 is not set
-
-#
-# Hisilicon platform type
-#
-CONFIG_ARCH_MXC=y
-# CONFIG_MXC_DEBUG_BOARD is not set
-
-#
-# OMAP Legacy Platform Data Board Type
-#
-# CONFIG_PLAT_SPEAR is not set
-
-#
-# Processor Type
-#
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-
-#
-# Processor Features
-#
-# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
-CONFIG_ARM_THUMB=y
-# CONFIG_CPU_BIG_ENDIAN is not set
-# CONFIG_CPU_ICACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_DISABLE is not set
-CONFIG_KUSER_HELPERS=y
-CONFIG_OUTER_CACHE=y
-CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
-CONFIG_MULTI_IRQ_HANDLER=y
 
 #
 # Bus support
@@ -124,41 +36,28 @@ CONFIG_PCI_SYSCALL=y
 #
 # PCI host controller drivers
 #
-CONFIG_PCI_HOST_GENERIC=y
-# CONFIG_PCCARD is not set
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
 
 #
 # Kernel Features
 #
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_AEABI=y
-# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-CONFIG_HIGHMEM=y
-# CONFIG_HIGHPTE is not set
+# CONFIG_CPU_BIG_ENDIAN is not set
 CONFIG_HW_PERF_EVENTS=y
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-# CONFIG_PHYS_ADDR_T_64BIT is not set
 CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
-CONFIG_ALIGNMENT_TRAP=y
 
 #
 # Boot options
 #
-CONFIG_USE_OF=y
-CONFIG_ATAGS=y
-# CONFIG_DEPRECATED_PARAM_STRUCT is not set
-CONFIG_ZBOOT_ROM_TEXT=0
-CONFIG_ZBOOT_ROM_BSS=0
-CONFIG_ARM_APPENDED_DTB=y
-CONFIG_CMDLINE_FROM_BOOTLOADER=y
-# CONFIG_CMDLINE_EXTEND is not set
 # CONFIG_CMDLINE_FORCE is not set
-CONFIG_AUTO_ZRELADDR=y
+
+#
+# Power management options
+#
+CONFIG_PM_OPP=y
+CONFIG_CPU_PM=y
 
 #
 # CPU Frequency scaling
@@ -167,24 +66,6 @@ CONFIG_CPU_FREQ_STAT=y
 # CONFIG_CPU_FREQ_STAT_DETAILS is not set
 CONFIG_CPUFREQ_DT=m
 
-#
-# ARM CPU frequency scaling drivers
-#
-CONFIG_ARM_IMX6Q_CPUFREQ=m
-
-#
-# At least one emulation must be selected
-#
-CONFIG_VFP=y
-
-#
-# Power management options
-#
-CONFIG_APM_EMULATION=y
-CONFIG_PM_OPP=y
-CONFIG_CPU_PM=y
-CONFIG_ARM_CPU_SUSPEND=y
-
 #
 # Classification
 #
@@ -202,7 +83,6 @@ CONFIG_BPF_JIT=y
 # Generic Driver Options
 #
 CONFIG_FIRMWARE_IN_KERNEL=y
-CONFIG_SOC_BUS=y
 CONFIG_DMA_CMA=y
 
 #
@@ -218,7 +98,6 @@ CONFIG_CMA_ALIGNMENT=8
 #
 # Bus devices
 #
-CONFIG_BRCMSTB_GISB_ARB=y
 # CONFIG_ARM_CCN is not set
 CONFIG_VEXPRESS_CONFIG=y
 CONFIG_DTC=y
@@ -246,7 +125,6 @@ CONFIG_OF_RESERVED_MEM=y
 # CONFIG_BLK_DEV_NVME is not set
 # CONFIG_BLK_DEV_SX8 is not set
 CONFIG_BLK_DEV_RAM_SIZE=4096
-# CONFIG_MG_DISK is not set
 # CONFIG_BLK_DEV_RSXX is not set
 
 #
@@ -268,17 +146,6 @@ CONFIG_AIC94XX_DEBUG=y
 CONFIG_SCSI_MVSAS_DEBUG=y
 # CONFIG_SCSI_MVSAS_TASKLET is not set
 # CONFIG_MEGARAID_NEWGEN is not set
-CONFIG_SCSI_NSP32=m
-
-#
-# Controllers with non-SFF native interface
-#
-CONFIG_AHCI_IMX=m
-
-#
-# PATA SFF controllers with BMDMA
-#
-CONFIG_PATA_IMX=m
 
 #
 # IEEE 1394 (FireWire) support
@@ -304,34 +171,18 @@ CONFIG_AMD_XGBE=m
 CONFIG_ARC_EMAC_CORE=m
 CONFIG_ARC_EMAC=m
 CONFIG_EMAC_ROCKCHIP=m
-CONFIG_NET_CADENCE=y
 CONFIG_BCMGENET=m
 CONFIG_SYSTEMPORT=m
 # CONFIG_CHELSIO_T1_1G is not set
-CONFIG_NET_VENDOR_CIRRUS=y
-CONFIG_CS89x0=m
-CONFIG_CS89x0_PLATFORM=y
-CONFIG_DM9000=m
-# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
 # CONFIG_DE2104X is not set
 # CONFIG_TULIP_MMIO is not set
 # CONFIG_TULIP_NAPI is not set
-CONFIG_NET_VENDOR_FARADAY=y
-CONFIG_FTMAC100=m
-CONFIG_FTGMAC100=m
-CONFIG_NET_VENDOR_FREESCALE=y
-CONFIG_FEC=m
-CONFIG_NET_VENDOR_HISILICON=y
-CONFIG_HIX5HD2_GMAC=m
 # CONFIG_I40E_VXLAN is not set
 # CONFIG_SKGE_GENESIS is not set
-CONFIG_AX88796=m
-CONFIG_AX88796_93CX6=y
 # CONFIG_QLCNIC_VXLAN is not set
 CONFIG_8139TOO_PIO=y
 # CONFIG_8139TOO_8129 is not set
 CONFIG_SMC91X=m
-CONFIG_SMC911X=m
 # CONFIG_STMMAC_PCI is not set
 # CONFIG_VIA_RHINE_MMIO is not set
 
@@ -348,23 +199,14 @@ CONFIG_WIL6210_TRACING=y
 # CONFIG_IPW2200_MONITOR is not set
 # CONFIG_IPW2200_QOS is not set
 
-#
-# Userland interfaces
-#
-# CONFIG_INPUT_APMPOWER is not set
-
 #
 # Input Device Drivers
 #
 # CONFIG_KEYBOARD_ADP5520 is not set
-CONFIG_KEYBOARD_IMX=m
-CONFIG_KEYBOARD_PMIC8XXX=m
 # CONFIG_KEYBOARD_STMPE is not set
 CONFIG_KEYBOARD_OMAP4=m
 # CONFIG_KEYBOARD_TC3589X is not set
 CONFIG_KEYBOARD_CAP1106=m
-# CONFIG_INPUT_PM8XXX_VIBRATOR is not set
-CONFIG_INPUT_PMIC8XXX_PWRKEY=m
 CONFIG_INPUT_MAX77693_HAPTIC=m
 # CONFIG_INPUT_MAX8997_HAPTIC is not set
 # CONFIG_INPUT_GPIO_BEEPER is not set
@@ -387,25 +229,16 @@ CONFIG_SERIO_APBPS2=m
 # CONFIG_SYNCLINK_GT is not set
 # CONFIG_NOZOMI is not set
 
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250_EM=m
-
 #
 # Non-8250 serial port support
 #
 CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y
-CONFIG_SERIAL_IMX=m
 # CONFIG_SERIAL_JSM is not set
 CONFIG_SERIAL_OF_PLATFORM=y
 # CONFIG_SERIAL_SCCNXP is not set
 # CONFIG_SERIAL_XILINX_PS_UART is not set
 # CONFIG_SERIAL_ARC is not set
 # CONFIG_SERIAL_RP2 is not set
-CONFIG_SERIAL_ST_ASC=m
-# CONFIG_HVC_DCC is not set
-# CONFIG_VIRTIO_CONSOLE is not set
 
 #
 # Multiplexer I2C Chip support
@@ -424,18 +257,11 @@ CONFIG_I2C_SIS630=m
 #
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
-CONFIG_I2C_IMX=m
-CONFIG_I2C_MV64XXX=m
 CONFIG_I2C_RK3X=m
 
 #
-# Pin controllers
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
 #
-CONFIG_PINMUX=y
-CONFIG_PINCONF=y
-# CONFIG_PINCTRL_AS3722 is not set
-# CONFIG_PINCTRL_PALMAS is not set
-CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
 CONFIG_ARCH_REQUIRE_GPIOLIB=y
 CONFIG_OF_GPIO=y
 CONFIG_GPIO_GENERIC=y
@@ -445,9 +271,6 @@ CONFIG_GPIO_GENERIC=y
 #
 CONFIG_GPIO_GENERIC_PLATFORM=y
 # CONFIG_GPIO_DWAPB is not set
-# CONFIG_GPIO_EM is not set
-# CONFIG_GPIO_ZEVIO is not set
-CONFIG_GPIO_MXC=y
 # CONFIG_GPIO_SYSCON is not set
 # CONFIG_GPIO_GRGPIO is not set
 
@@ -470,7 +293,6 @@ CONFIG_GPIO_ADNP=m
 #
 # 1-wire Slaves
 #
-# CONFIG_APM_POWER is not set
 # CONFIG_MAX8925_POWER is not set
 # CONFIG_WM831X_BACKUP is not set
 # CONFIG_WM831X_POWER is not set
@@ -488,8 +310,6 @@ CONFIG_POWER_RESET_AS3722=y
 CONFIG_POWER_RESET_GPIO=y
 CONFIG_POWER_RESET_GPIO_RESTART=y
 CONFIG_POWER_RESET_LTC2952=y
-CONFIG_POWER_RESET_RESTART=y
-CONFIG_POWER_RESET_VERSATILE=y
 CONFIG_POWER_RESET_VEXPRESS=y
 CONFIG_POWER_RESET_SYSCON=y
 
@@ -505,9 +325,6 @@ CONFIG_THERMAL_OF=y
 # Watchdog Device Drivers
 #
 CONFIG_GPIO_WATCHDOG=m
-CONFIG_CADENCE_WATCHDOG=m
-CONFIG_MAX63XX_WATCHDOG=m
-CONFIG_IMX2_WDT=m
 
 #
 # PCI-based Watchdog Cards
@@ -519,12 +336,8 @@ CONFIG_IMX2_WDT=m
 # Multifunction device drivers
 #
 CONFIG_MFD_AS3722=y
-# CONFIG_MFD_ASIC3 is not set
 CONFIG_MFD_HI6421_PMIC=m
-# CONFIG_HTC_EGPIO is not set
 # CONFIG_LPC_ICH is not set
-CONFIG_MFD_PM8XXX=m
-CONFIG_MFD_PM8921_CORE=m
 # CONFIG_MFD_RTSX_PCI is not set
 CONFIG_MFD_RK808=m
 CONFIG_MFD_STMPE=y
@@ -533,10 +346,6 @@ CONFIG_MFD_STMPE=y
 # STMicroelectronics STMPE Interface Drivers
 #
 CONFIG_STMPE_I2C=y
-CONFIG_TWL4030_POWER=y
-# CONFIG_MFD_T7L66XB is not set
-# CONFIG_MFD_TC6387XB is not set
-# CONFIG_MFD_TC6393XB is not set
 CONFIG_MFD_VEXPRESS_SYSREG=y
 CONFIG_REGULATOR_FIXED_VOLTAGE=y
 # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
@@ -581,8 +390,6 @@ CONFIG_DVB_TTUSB_DEC=y
 # CONFIG_DVB_PT1 is not set
 # CONFIG_MANTIS_CORE is not set
 # CONFIG_DVB_NGENE is not set
-CONFIG_VIDEO_MX3=m
-# CONFIG_VIDEO_CODA is not set
 
 #
 # DVB-S (satellite) frontends
@@ -607,45 +414,15 @@ CONFIG_DVB_STV0297=y
 #
 CONFIG_DVB_LNBP21=y
 
-#
-# Graphics support
-#
-CONFIG_IMX_IPUV3_CORE=m
-
-#
-# Direct Rendering Manager
-#
-CONFIG_DRM_MIPI_DSI=y
-CONFIG_DRM_GEM_CMA_HELPER=y
-CONFIG_DRM_KMS_CMA_HELPER=y
-
 #
 # I2C encoder or helper chips
 #
 # CONFIG_DRM_RADEON is not set
 # CONFIG_DRM_NOUVEAU is not set
-CONFIG_DRM_EXYNOS=m
-CONFIG_DRM_EXYNOS_DMABUF=y
-CONFIG_DRM_EXYNOS_HDMI=y
-CONFIG_DRM_EXYNOS_VIDI=y
-CONFIG_DRM_EXYNOS_G2D=y
-CONFIG_DRM_EXYNOS_IPP=y
-CONFIG_DRM_ARMADA=m
-# CONFIG_DRM_TILCDC is not set
-CONFIG_DRM_PANEL=y
-
-#
-# Display Panels
-#
-CONFIG_DRM_STI=m
-# CONFIG_DRM_STI_FBDEV is not set
 
 #
 # Frame buffer Devices
 #
-CONFIG_FB_SYS_FILLRECT=y
-CONFIG_FB_SYS_COPYAREA=y
-CONFIG_FB_SYS_IMAGEBLIT=y
 # CONFIG_FB_BACKLIGHT is not set
 
 #
@@ -656,7 +433,6 @@ CONFIG_FB_SYS_IMAGEBLIT=y
 # CONFIG_BACKLIGHT_LM3630A is not set
 # CONFIG_BACKLIGHT_LP855X is not set
 # CONFIG_BACKLIGHT_LP8788 is not set
-CONFIG_VIDEOMODE_HELPERS=y
 
 #
 # Console display driver support
@@ -668,7 +444,6 @@ CONFIG_SND_COMPRESS_OFFLOAD=m
 #
 # HD-Audio
 #
-CONFIG_SND_ARM=y
 CONFIG_SND_SOC=m
 CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
 CONFIG_SND_ATMEL_SOC=m
@@ -682,25 +457,7 @@ CONFIG_SND_SOC_FSL_SAI=m
 CONFIG_SND_SOC_FSL_SSI=m
 CONFIG_SND_SOC_FSL_SPDIF=m
 CONFIG_SND_SOC_FSL_ESAI=m
-CONFIG_SND_SOC_FSL_UTILS=m
-CONFIG_SND_SOC_IMX_PCM_DMA=m
 CONFIG_SND_SOC_IMX_AUDMUX=m
-CONFIG_SND_IMX_SOC=m
-CONFIG_SND_SOC_IMX_SSI=m
-
-#
-# SoC Audio support for Freescale i.MX boards:
-#
-CONFIG_SND_SOC_EUKREA_TLV320=m
-CONFIG_SND_SOC_IMX_WM8962=m
-CONFIG_SND_SOC_IMX_ES8328=m
-CONFIG_SND_SOC_IMX_SGTL5000=m
-CONFIG_SND_SOC_IMX_SPDIF=m
-CONFIG_SND_SOC_FSL_ASOC_CARD=m
-
-#
-# SoC Audio support for SuperH
-#
 CONFIG_SND_SOC_I2C_AND_SPI=m
 
 #
@@ -722,7 +479,6 @@ CONFIG_SND_SOC_CS42XX8=m
 CONFIG_SND_SOC_CS42XX8_I2C=m
 CONFIG_SND_SOC_HDMI_CODEC=m
 CONFIG_SND_SOC_ES8328=m
-CONFIG_SND_SOC_ES8328_I2C=m
 CONFIG_SND_SOC_PCM1681=m
 CONFIG_SND_SOC_PCM512x=m
 CONFIG_SND_SOC_PCM512x_I2C=m
@@ -737,8 +493,6 @@ CONFIG_SND_SOC_SSM4567=m
 CONFIG_SND_SOC_STA350=m
 CONFIG_SND_SOC_TAS2552=m
 CONFIG_SND_SOC_TAS5086=m
-CONFIG_SND_SOC_TLV320AIC23=m
-CONFIG_SND_SOC_TLV320AIC23_I2C=m
 CONFIG_SND_SOC_TLV320AIC31XX=m
 CONFIG_SND_SOC_TLV320AIC3X=m
 CONFIG_SND_SOC_WM8510=m
@@ -768,35 +522,18 @@ CONFIG_USB_MUSB_AM335X_CHILD=m
 #
 # USB Physical Layer drivers
 #
-CONFIG_AM335X_CONTROL_USB=m
-CONFIG_AM335X_PHY_USB=m
-CONFIG_USB_MXS_PHY=m
 CONFIG_USB_ULPI=y
 
 #
-# MMC/SD/SDIO Host Controller Drivers
+# LED drivers
 #
-CONFIG_MMC_SDHCI_IO_ACCESSORS=y
-CONFIG_MMC_SDHCI_OF_ARASAN=m
-CONFIG_MMC_SDHCI_ESDHC_IMX=m
-CONFIG_MMC_MXC=m
-CONFIG_MMC_DW=m
-CONFIG_MMC_DW_IDMAC=y
-CONFIG_MMC_DW_PLTFM=m
-CONFIG_MMC_DW_EXYNOS=m
-CONFIG_MMC_DW_K3=m
-CONFIG_MMC_DW_PCI=m
+CONFIG_LEDS_PWM=m
 
 #
 # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
 #
 CONFIG_LEDS_SYSCON=y
 
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-# CONFIG_EDAC is not set
-
 #
 # I2C RTC drivers
 #
@@ -807,19 +544,13 @@ CONFIG_RTC_DRV_RK808=m
 #
 # on-CPU RTC drivers
 #
-CONFIG_RTC_DRV_IMXDI=m
-CONFIG_RTC_DRV_PM8XXX=m
-CONFIG_RTC_DRV_MXC=m
 CONFIG_RTC_DRV_SNVS=m
 
 #
 # DMA Devices
 #
 # CONFIG_DW_DMAC is not set
-CONFIG_MX3_IPU=y
-CONFIG_MX3_IPU_IRQS=4
 CONFIG_FSL_EDMA=m
-CONFIG_NBPFAXI_DMA=m
 CONFIG_DMA_VIRTUAL_CHANNELS=m
 CONFIG_DMA_OF=y
 
@@ -863,11 +594,6 @@ CONFIG_PWM=y
 CONFIG_PWM_SYSFS=y
 CONFIG_IRQCHIP=y
 
-#
-# Memory Debugging
-#
-# CONFIG_DEBUG_HIGHMEM is not set
-
 #
 # RCU Debugging
 #
@@ -876,21 +602,8 @@ CONFIG_IRQCHIP=y
 #
 # Runtime Testing
 #
-# CONFIG_ARM_PTDUMP is not set
-CONFIG_ARM_UNWIND=y
-# CONFIG_DEBUG_USER is not set
-# CONFIG_DEBUG_LL is not set
-CONFIG_DEBUG_IMX_UART_PORT=1
-# CONFIG_DEBUG_UART_PL01X is not set
-# CONFIG_DEBUG_UART_8250 is not set
-CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
 # CONFIG_DEBUG_SET_MODULE_RONX is not set
 
-#
-# Executable Protections
-#
-# CONFIG_GRKERNSEC_SETXID is not set
-
 #
 # Logging Options
 #
@@ -907,25 +620,9 @@ CONFIG_CRYPTO_GF128MUL=m
 CONFIG_CRYPTO_LRW=m
 CONFIG_CRYPTO_XTS=m
 
-#
-# Digest
-#
-CONFIG_CRYPTO_SHA1_ARM=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES_ARM=m
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_DEV_SAHARA=m
-
 #
 # Library routines
 #
-CONFIG_STMP_DEVICE=y
 CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
 CONFIG_AUDIT_GENERIC=y
 CONFIG_LIBFDT=y
diff --git a/kernel/config-arm32-generic b/kernel/config-arm32-generic
new file mode 100644 (file)
index 0000000..2219bb6
--- /dev/null
@@ -0,0 +1,530 @@
+CONFIG_ARM=y
+CONFIG_ARM_HAS_SG_CHAIN=y
+CONFIG_MIGHT_HAVE_PCI=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_GENERIC_BUG=y
+
+#
+# General setup
+#
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_LZMA is not set
+CONFIG_KERNEL_XZ=y
+# CONFIG_KERNEL_LZO is not set
+# CONFIG_KERNEL_LZ4 is not set
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_IRQ_FORCED_THREADING=y
+
+#
+# RCU Subsystem
+#
+CONFIG_CONTEXT_TRACKING_FORCE=y
+CONFIG_UID16=y
+
+#
+# Kernel Performance Events And Counters
+#
+# CONFIG_KPROBES is not set
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_SECCOMP_FILTER=y
+CONFIG_MODULES_USE_ELF_REL=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_OLD_SIGACTION=y
+
+#
+# GCOV-based kernel profiling
+#
+CONFIG_LBDAF=y
+
+#
+# System Type
+#
+CONFIG_ARCH_MULTIPLATFORM=y
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_DOVE is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_LPC32XX is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_SHMOBILE_LEGACY is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C24XX is not set
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP1 is not set
+
+#
+# CPU Core family selection
+#
+# CONFIG_ARCH_MULTI_V6 is not set
+
+#
+# Hisilicon platform type
+#
+CONFIG_ARCH_MXC=y
+# CONFIG_MXC_DEBUG_BOARD is not set
+
+#
+# OMAP Legacy Platform Data Board Type
+#
+# CONFIG_PLAT_SPEAR is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+CONFIG_KUSER_HELPERS=y
+CONFIG_OUTER_CACHE=y
+CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
+CONFIG_MULTI_IRQ_HANDLER=y
+
+#
+# PCI host controller drivers
+#
+CONFIG_PCI_HOST_GENERIC=y
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_SCHED_HRTICK=y
+CONFIG_AEABI=y
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+CONFIG_HIGHMEM=y
+# CONFIG_HIGHPTE is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ALIGNMENT_TRAP=y
+CONFIG_SECCOMP=y
+
+#
+# Boot options
+#
+CONFIG_USE_OF=y
+CONFIG_ATAGS=y
+# CONFIG_DEPRECATED_PARAM_STRUCT is not set
+CONFIG_ZBOOT_ROM_TEXT=0
+CONFIG_ZBOOT_ROM_BSS=0
+CONFIG_ARM_APPENDED_DTB=y
+CONFIG_CMDLINE_FROM_BOOTLOADER=y
+# CONFIG_CMDLINE_EXTEND is not set
+CONFIG_CRASH_DUMP=y
+CONFIG_AUTO_ZRELADDR=y
+
+#
+# ARM CPU frequency scaling drivers
+#
+CONFIG_ARM_IMX6Q_CPUFREQ=m
+
+#
+# At least one emulation must be selected
+#
+CONFIG_VFP=y
+
+#
+# Power management options
+#
+CONFIG_APM_EMULATION=y
+CONFIG_ARM_CPU_SUSPEND=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+
+#
+# Generic Driver Options
+#
+CONFIG_SOC_BUS=y
+
+#
+# Bus devices
+#
+CONFIG_BRCMSTB_GISB_ARB=y
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+# CONFIG_MG_DISK is not set
+
+#
+# Intel MIC Card Driver
+#
+# CONFIG_IDE is not set
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_NSP32=m
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_AHCI_IMX=m
+
+#
+# PATA SFF controllers with BMDMA
+#
+CONFIG_PATA_IMX=m
+
+#
+# Distributed Switch Architecture drivers
+#
+CONFIG_NET_CADENCE=y
+CONFIG_NET_VENDOR_CIRRUS=y
+CONFIG_CS89x0=m
+CONFIG_CS89x0_PLATFORM=y
+CONFIG_DM9000=m
+# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
+CONFIG_NET_VENDOR_FARADAY=y
+CONFIG_FTMAC100=m
+CONFIG_FTGMAC100=m
+CONFIG_NET_VENDOR_FREESCALE=y
+CONFIG_FEC=m
+CONFIG_NET_VENDOR_HISILICON=y
+CONFIG_HIX5HD2_GMAC=m
+CONFIG_AX88796=m
+CONFIG_AX88796_93CX6=y
+CONFIG_SMC911X=m
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_APMPOWER is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_KEYBOARD_IMX=m
+CONFIG_KEYBOARD_PMIC8XXX=m
+# CONFIG_INPUT_PM8XXX_VIBRATOR is not set
+CONFIG_INPUT_PMIC8XXX_PWRKEY=m
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250_EM=m
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_IMX=m
+CONFIG_SERIAL_ST_ASC=m
+# CONFIG_HVC_DCC is not set
+CONFIG_NVRAM=y
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_PINCTRL=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_IMX=m
+CONFIG_I2C_MV64XXX=m
+
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+CONFIG_PINCTRL=y
+
+#
+# Pin controllers
+#
+CONFIG_PINMUX=y
+CONFIG_PINCONF=y
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_PINCTRL_AS3722 is not set
+# CONFIG_PINCTRL_PALMAS is not set
+CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
+
+#
+# Memory mapped GPIO drivers:
+#
+# CONFIG_GPIO_EM is not set
+# CONFIG_GPIO_ZEVIO is not set
+CONFIG_GPIO_MXC=y
+
+#
+# 1-wire Slaves
+#
+# CONFIG_APM_POWER is not set
+CONFIG_POWER_RESET_RESTART=y
+CONFIG_POWER_RESET_VERSATILE=y
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_CADENCE_WATCHDOG=m
+CONFIG_MAX63XX_WATCHDOG=m
+CONFIG_IMX2_WDT=m
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_HTC_EGPIO is not set
+CONFIG_MFD_PM8XXX=m
+CONFIG_MFD_PM8921_CORE=m
+
+#
+# STMicroelectronics STMPE Interface Drivers
+#
+CONFIG_TWL4030_POWER=y
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+# CONFIG_MFD_TC6393XB is not set
+
+#
+# Media digital TV PCI Adapters
+#
+CONFIG_VIDEO_MX3=m
+# CONFIG_VIDEO_CODA is not set
+
+#
+# Graphics support
+#
+CONFIG_IMX_IPUV3_CORE=m
+
+#
+# Direct Rendering Manager
+#
+CONFIG_DRM_MIPI_DSI=y
+CONFIG_DRM_GEM_CMA_HELPER=y
+CONFIG_DRM_KMS_CMA_HELPER=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_EXYNOS=m
+CONFIG_DRM_EXYNOS_DMABUF=y
+CONFIG_DRM_EXYNOS_HDMI=y
+CONFIG_DRM_EXYNOS_VIDI=y
+CONFIG_DRM_EXYNOS_G2D=y
+CONFIG_DRM_EXYNOS_IPP=y
+CONFIG_DRM_ARMADA=m
+# CONFIG_DRM_TILCDC is not set
+CONFIG_DRM_PANEL=y
+
+#
+# Display Panels
+#
+CONFIG_DRM_STI=m
+# CONFIG_DRM_STI_FBDEV is not set
+
+#
+# Frame buffer Devices
+#
+CONFIG_FB_SYS_FILLRECT=y
+CONFIG_FB_SYS_COPYAREA=y
+CONFIG_FB_SYS_IMAGEBLIT=y
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_VIDEOMODE_HELPERS=y
+
+#
+# HD-Audio
+#
+CONFIG_SND_ARM=y
+
+#
+# Common SoC Audio options for Freescale CPUs:
+#
+CONFIG_SND_SOC_FSL_UTILS=m
+CONFIG_SND_SOC_IMX_PCM_DMA=m
+CONFIG_SND_IMX_SOC=m
+CONFIG_SND_SOC_IMX_SSI=m
+
+#
+# SoC Audio support for Freescale i.MX boards:
+#
+CONFIG_SND_SOC_EUKREA_TLV320=m
+CONFIG_SND_SOC_IMX_WM8962=m
+CONFIG_SND_SOC_IMX_ES8328=m
+CONFIG_SND_SOC_IMX_SGTL5000=m
+CONFIG_SND_SOC_IMX_SPDIF=m
+CONFIG_SND_SOC_FSL_ASOC_CARD=m
+
+#
+# CODEC drivers
+#
+CONFIG_SND_SOC_ES8328_I2C=m
+CONFIG_SND_SOC_TLV320AIC23=m
+CONFIG_SND_SOC_TLV320AIC23_I2C=m
+
+#
+# USB Physical Layer drivers
+#
+CONFIG_AM335X_CONTROL_USB=m
+CONFIG_AM335X_PHY_USB=m
+CONFIG_USB_MXS_PHY=m
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
+CONFIG_MMC_SDHCI_OF_ARASAN=m
+CONFIG_MMC_SDHCI_ESDHC_IMX=m
+CONFIG_MMC_SDHCI_PXAV3=m
+CONFIG_MMC_SDHCI_PXAV2=m
+CONFIG_MMC_MXC=m
+CONFIG_MMC_DW=m
+CONFIG_MMC_DW_IDMAC=y
+CONFIG_MMC_DW_PLTFM=m
+CONFIG_MMC_DW_EXYNOS=m
+CONFIG_MMC_DW_K3=m
+CONFIG_MMC_DW_PCI=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_EDAC is not set
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_IMXDI=m
+CONFIG_RTC_DRV_PM8XXX=m
+CONFIG_RTC_DRV_MXC=m
+
+#
+# DMA Devices
+#
+CONFIG_MX3_IPU=y
+CONFIG_MX3_IPU_IRQS=4
+CONFIG_NBPFAXI_DMA=m
+
+#
+# Memory Debugging
+#
+# CONFIG_DEBUG_HIGHMEM is not set
+
+#
+# RCU Debugging
+#
+# CONFIG_UPROBE_EVENT is not set
+
+#
+# Runtime Testing
+#
+# CONFIG_ARM_PTDUMP is not set
+CONFIG_ARM_UNWIND=y
+# CONFIG_DEBUG_USER is not set
+# CONFIG_DEBUG_LL is not set
+CONFIG_DEBUG_IMX_UART_PORT=1
+# CONFIG_DEBUG_UART_PL01X is not set
+# CONFIG_DEBUG_UART_8250 is not set
+CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
+
+#
+# PaX
+#
+CONFIG_PAX=y
+
+#
+# PaX Control
+#
+# CONFIG_PAX_SOFTMODE is not set
+CONFIG_PAX_EI_PAX=y
+CONFIG_PAX_PT_PAX_FLAGS=y
+# CONFIG_PAX_XATTR_PAX_FLAGS is not set
+# CONFIG_PAX_NO_ACL_FLAGS is not set
+CONFIG_PAX_HAVE_ACL_FLAGS=y
+# CONFIG_PAX_HOOK_ACL_FLAGS is not set
+
+#
+# Non-executable pages
+#
+CONFIG_PAX_KERNEXEC_PLUGIN_METHOD=""
+
+#
+# Address Space Layout Randomization
+#
+CONFIG_PAX_ASLR=y
+CONFIG_PAX_RANDUSTACK=y
+CONFIG_PAX_RANDMMAP=y
+
+#
+# Miscellaneous hardening features
+#
+CONFIG_PAX_USERCOPY=y
+
+#
+# Memory Protections
+#
+CONFIG_GRKERNSEC_RAND_THREADSTACK=y
+CONFIG_GRKERNSEC_PROC_MEMMAP=y
+CONFIG_GRKERNSEC_KERN_LOCKOUT=y
+
+#
+# Executable Protections
+#
+# CONFIG_GRKERNSEC_SETXID is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_SHA1_ARM=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES_ARM=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_DEV_SAHARA=m
+
+#
+# Library routines
+#
+CONFIG_STMP_DEVICE=y
+# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
diff --git a/kernel/config-arm64-generic b/kernel/config-arm64-generic
new file mode 100644 (file)
index 0000000..09ee531
--- /dev/null
@@ -0,0 +1,465 @@
+CONFIG_ARM64=y
+CONFIG_64BIT=y
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_GENERIC_CSUM=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_KERNEL_MODE_NEON=y
+CONFIG_FIX_EARLYCON_MEM=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_ARCH_HAS_TICK_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+
+#
+# Timers subsystem
+#
+# CONFIG_NO_HZ_IDLE is not set
+CONFIG_NO_HZ_FULL=y
+# CONFIG_NO_HZ_FULL_ALL is not set
+# CONFIG_NO_HZ_FULL_SYSIDLE is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_RCU_USER_QS=y
+# CONFIG_CONTEXT_TRACKING_FORCE is not set
+CONFIG_RCU_FANOUT=64
+CONFIG_RCU_FANOUT_LEAF=16
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_RCU_FAST_NO_HZ is not set
+CONFIG_RCU_NOCB_CPU=y
+CONFIG_RCU_NOCB_CPU_NONE=y
+# CONFIG_RCU_NOCB_CPU_ZERO is not set
+# CONFIG_RCU_NOCB_CPU_ALL is not set
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_SLUB_CPU_PARTIAL=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_MODULES_USE_ELF_RELA=y
+
+#
+# IO Schedulers
+#
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+
+#
+# Platform selection
+#
+# CONFIG_ARCH_THUNDER is not set
+CONFIG_ARCH_VEXPRESS=y
+CONFIG_ARCH_XGENE=y
+
+#
+# Bus support
+#
+CONFIG_ARM_AMBA=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_DOMAINS_GENERIC=y
+
+#
+# PCI host controller drivers
+#
+CONFIG_PCI_XGENE=y
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_SHPC=m
+
+#
+# Kernel Features
+#
+# CONFIG_ARM64_4K_PAGES is not set
+CONFIG_ARM64_64K_PAGES=y
+CONFIG_ARM64_VA_BITS_42=y
+# CONFIG_ARM64_VA_BITS_48 is not set
+CONFIG_ARM64_VA_BITS=42
+CONFIG_ARM64_PGTABLE_LEVELS=2
+CONFIG_SMP=y
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_SMT=y
+CONFIG_NR_CPUS=64
+CONFIG_HOTPLUG_CPU=y
+CONFIG_HZ=100
+CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_MMU_NOTIFIER=y
+# CONFIG_TRANSPARENT_HUGEPAGE is not set
+CONFIG_GENERIC_EARLY_IOREMAP=y
+# CONFIG_XEN is not set
+CONFIG_FORCE_MAX_ZONEORDER=11
+
+#
+# Boot options
+#
+CONFIG_CMDLINE=""
+CONFIG_EFI_STUB=y
+CONFIG_EFI=y
+
+#
+# Power management options
+#
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_ARM64_CPU_SUSPEND=y
+
+#
+# CPU Idle
+#
+CONFIG_DT_IDLE_STATES=y
+
+#
+# ARM64 CPU Idle Drivers
+#
+CONFIG_ARM64_CPUIDLE=y
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
+
+#
+# ARM CPU frequency scaling drivers
+#
+# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set
+
+#
+# Classification
+#
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+CONFIG_NET_FLOW_LIMIT=y
+
+#
+# Generic Driver Options
+#
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_BLK_DEV_SKD=m
+
+#
+# Intel MIC Card Driver
+#
+# CONFIG_GENWQE is not set
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_AHCI_XGENE=m
+
+#
+# IEEE 1394 (FireWire) support
+#
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+
+#
+# Distributed Switch Architecture drivers
+#
+CONFIG_VORTEX=m
+
+#
+# Input device support
+#
+CONFIG_INPUT_MATRIXKMAP=m
+
+#
+# Input Device Drivers
+#
+# CONFIG_KEYBOARD_SAMSUNG is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO_AMBAKMI is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_AMBA_PL010=m
+CONFIG_SERIAL_AMBA_PL011=m
+CONFIG_HW_RANDOM_XGENE=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_NOMADIK=m
+CONFIG_I2C_VERSATILE=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+
+#
+# Memory mapped GPIO drivers:
+#
+CONFIG_GPIO_PL061=y
+CONFIG_GPIO_XGENE=y
+
+#
+# 1-wire Slaves
+#
+CONFIG_POWER_RESET_XGENE=y
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_ARM_SP805_WATCHDOG=m
+
+#
+# Multifunction device drivers
+#
+# CONFIG_ABX500_CORE is not set
+
+#
+# STMicroelectronics STMPE Interface Drivers
+#
+# CONFIG_MFD_VX855 is not set
+# CONFIG_REGULATOR_88PM8607 is not set
+# CONFIG_REGULATOR_GPIO is not set
+# CONFIG_REGULATOR_LP872X is not set
+# CONFIG_REGULATOR_LP8788 is not set
+# CONFIG_REGULATOR_TWL4030 is not set
+
+#
+# Media digital TV PCI Adapters
+#
+# CONFIG_VIDEO_CAFE_CCIC is not set
+
+#
+# I2C encoder or helper chips
+#
+# CONFIG_DRM_I2C_CH7006 is not set
+# CONFIG_DRM_I2C_SIL164 is not set
+# CONFIG_DRM_I2C_NXP_TDA998X is not set
+
+#
+# Frame buffer Devices
+#
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_MODE_HELPERS is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_ARMCLCD is not set
+# CONFIG_LCD_PLATFORM is not set
+
+#
+# Console display driver support
+#
+# CONFIG_SND_ES1968_INPUT is not set
+# CONFIG_SND_LX6464ES is not set
+# CONFIG_SND_MAESTRO3_INPUT is not set
+
+#
+# USB Physical Layer drivers
+#
+CONFIG_NOP_USB_XCEIV=m
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_ARMMMCI=m
+# CONFIG_MMC_RICOH_MMC is not set
+# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_PXAV3 is not set
+# CONFIG_MMC_SDHCI_PXAV2 is not set
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_EFI=m
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_PL030=m
+CONFIG_RTC_DRV_PL031=m
+
+#
+# DMA Devices
+#
+# CONFIG_AMBA_PL08X is not set
+# CONFIG_DW_DMAC_PCI is not set
+# CONFIG_PL330_DMA is not set
+
+#
+# DMA Clients
+#
+# CONFIG_UIO_AEC is not set
+# CONFIG_UIO_SERCOS3 is not set
+# CONFIG_UIO_PCI_GENERIC is not set
+# CONFIG_UIO_MF624 is not set
+
+#
+# Common Clock Framework
+#
+CONFIG_COMMON_CLK_WM831X=y
+CONFIG_COMMON_CLK_VERSATILE=y
+CONFIG_CLK_SP810=y
+CONFIG_CLK_VEXPRESS_OSC=y
+CONFIG_COMMON_CLK_MAX77686=y
+CONFIG_COMMON_CLK_XGENE=y
+
+#
+# Clock Source drivers
+#
+CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
+# CONFIG_SH_TIMER_TMU is not set
+# CONFIG_PL320_MBOX is not set
+# CONFIG_ARM_SMMU is not set
+
+#
+# Analog to digital converters
+#
+# CONFIG_LP8788_ADC is not set
+# CONFIG_TWL6030_GPADC is not set
+
+#
+# Temperature sensors
+#
+# CONFIG_PWM_FSL_FTM is not set
+# CONFIG_PWM_LP3943 is not set
+# CONFIG_PWM_PCA9685 is not set
+# CONFIG_PWM_TWL is not set
+# CONFIG_PWM_TWL_LED is not set
+CONFIG_ARM_GIC=y
+CONFIG_ARM_GIC_V3=y
+
+#
+# PHY Subsystem
+#
+# CONFIG_PHY_EXYNOS4210_USB2 is not set
+# CONFIG_PHY_EXYNOS4X12_USB2 is not set
+# CONFIG_PHY_EXYNOS5250_USB2 is not set
+CONFIG_PHY_XGENE=m
+
+#
+# Firmware Drivers
+#
+# CONFIG_FIRMWARE_MEMMAP is not set
+
+#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_VARS=y
+CONFIG_EFI_VARS_PSTORE=y
+# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
+CONFIG_EFI_PARAMS_FROM_FDT=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_ARMSTUB=y
+
+#
+# File systems
+#
+CONFIG_DCACHE_WORD_ACCESS=y
+
+#
+# Pseudo filesystems
+#
+# CONFIG_HUGETLBFS is not set
+CONFIG_EFIVAR_FS=y
+CONFIG_KVM_MMIO=y
+CONFIG_KVM=y
+CONFIG_KVM_ARM_HOST=y
+CONFIG_KVM_ARM_MAX_VCPUS=4
+CONFIG_KVM_ARM_VGIC=y
+CONFIG_KVM_ARM_TIMER=y
+
+#
+# Compile-time checks and compiler options
+#
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+
+#
+# Memory Debugging
+#
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+
+#
+# RCU Debugging
+#
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+# CONFIG_RCU_CPU_STALL_INFO is not set
+CONFIG_FUNCTION_GRAPH_TRACER=y
+
+#
+# Runtime Testing
+#
+# CONFIG_PID_IN_CONTEXTIDR is not set
+# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set
+
+#
+# Memory Protections
+#
+CONFIG_GRKERNSEC_KSTACKOVERFLOW=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_ABLK_HELPER=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_DEV_CCP=y
+CONFIG_CRYPTO_DEV_CCP_DD=m
+CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
+CONFIG_ARM64_CRYPTO=y
+CONFIG_CRYPTO_SHA1_ARM64_CE=m
+CONFIG_CRYPTO_SHA2_ARM64_CE=m
+CONFIG_CRYPTO_GHASH_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=m
+CONFIG_CRYPTO_AES_ARM64_NEON_BLK=m
+
+#
+# Library routines
+#
+CONFIG_GENERIC_IOMAP=y
+CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_CPU_RMAP=y
+CONFIG_UCS2_STRING=y
index da3b39e7573a49b6028607ce172bca5660307870..86727b0b219a70b2f0d31115a43e6b21504a30cc 100644 (file)
@@ -4,11 +4,16 @@
 #
 CONFIG_BROKEN_ON_SMP=y
 
+#
+# Timers subsystem
+#
+CONFIG_NO_HZ_IDLE=y
+
 #
 # CPU/Task time and stats accounting
 #
-CONFIG_TICK_CPU_ACCOUNTING=y
-# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
+# CONFIG_TICK_CPU_ACCOUNTING is not set
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
 
 #
 # RCU Subsystem
@@ -83,7 +88,6 @@ CONFIG_ARM_L1_CACHE_SHIFT=5
 # PCI host controller drivers
 #
 # CONFIG_PCI_MVEBU is not set
-# CONFIG_PCIEPORTBUS is not set
 
 #
 # Kernel Features
@@ -134,11 +138,6 @@ CONFIG_ARM_KIRKWOOD_CPUFREQ=y
 CONFIG_IMX_WEIM=y
 CONFIG_MVEBU_MBUS=y
 
-#
-# Device Tree and Open Firmware support
-#
-CONFIG_VIRTIO_BLK=y
-
 #
 # Controllers with non-SFF native interface
 #
@@ -151,11 +150,6 @@ CONFIG_AHCI_MVEBU=m
 CONFIG_MV643XX_ETH=m
 CONFIG_MVNETA=m
 
-#
-# MII PHY device drivers
-#
-CONFIG_B43_SDIO=y
-
 #
 # ISDN feature submodules
 #
@@ -216,11 +210,6 @@ CONFIG_ARMADA_THERMAL=m
 #
 CONFIG_ORION_WATCHDOG=m
 
-#
-# Sonics Silicon Backplane
-#
-CONFIG_SSB_SDIOHOST=y
-
 #
 # Multifunction device drivers
 #
@@ -307,12 +296,6 @@ CONFIG_USB_IMX21_HCD=m
 # USB Physical Layer drivers
 #
 CONFIG_NOP_USB_XCEIV=m
-CONFIG_MMC=m
-
-#
-# MMC/SD/SDIO Card Drivers
-#
-CONFIG_MMC_BLOCK=m
 
 #
 # MMC/SD/SDIO Host Controller Drivers
@@ -323,7 +306,6 @@ CONFIG_MMC_MVSDIO=m
 #
 # LED drivers
 #
-CONFIG_LEDS_PWM=m
 CONFIG_LEDS_NS2=m
 CONFIG_LEDS_NETXBIG=m
 
@@ -349,12 +331,6 @@ CONFIG_UIO_AEC=m
 CONFIG_UIO_SERCOS3=m
 CONFIG_UIO_PCI_GENERIC=m
 CONFIG_UIO_MF624=m
-CONFIG_VIRTIO=y
-
-#
-# Virtio drivers
-#
-CONFIG_VIRTIO_PCI=y
 
 #
 # Android
@@ -440,4 +416,3 @@ CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
 #
 CONFIG_HAS_IOPORT_MAP=y
 CONFIG_GENERIC_ATOMIC64=y
-# CONFIG_DDR is not set
index 6c38fcd941852ad0aded3db119fd0eb78e12b147..1ee849754f0042ca97e12d3bde90480cd3407545 100644 (file)
@@ -13,28 +13,25 @@ CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
 #
 # Timers subsystem
 #
-# CONFIG_NO_HZ_FULL is not set
-
-#
-# CPU/Task time and stats accounting
-#
-CONFIG_VIRT_CPU_ACCOUNTING=y
-# CONFIG_TICK_CPU_ACCOUNTING is not set
-CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
+# CONFIG_NO_HZ_IDLE is not set
+CONFIG_NO_HZ_FULL=y
+# CONFIG_NO_HZ_FULL_ALL is not set
+# CONFIG_NO_HZ_FULL_SYSIDLE is not set
 
 #
 # RCU Subsystem
 #
 CONFIG_TREE_RCU=y
 CONFIG_RCU_STALL_COMMON=y
-CONFIG_CONTEXT_TRACKING=y
-# CONFIG_RCU_USER_QS is not set
-CONFIG_CONTEXT_TRACKING_FORCE=y
+CONFIG_RCU_USER_QS=y
 CONFIG_RCU_FANOUT=32
 CONFIG_RCU_FANOUT_LEAF=16
 # CONFIG_RCU_FANOUT_EXACT is not set
 # CONFIG_RCU_FAST_NO_HZ is not set
-# CONFIG_RCU_NOCB_CPU is not set
+CONFIG_RCU_NOCB_CPU=y
+CONFIG_RCU_NOCB_CPU_NONE=y
+# CONFIG_RCU_NOCB_CPU_ZERO is not set
+# CONFIG_RCU_NOCB_CPU_ALL is not set
 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
 
 #
@@ -45,6 +42,7 @@ CONFIG_SLUB_CPU_PARTIAL=y
 #
 # IO Schedulers
 #
+CONFIG_PADATA=y
 CONFIG_MUTEX_SPIN_ON_OWNER=y
 CONFIG_RWSEM_SPIN_ON_OWNER=y
 
@@ -323,16 +321,6 @@ CONFIG_PCI_RCAR_GEN2=y
 CONFIG_PCI_RCAR_GEN2_PCIE=y
 CONFIG_PCI_KEYSTONE=y
 CONFIG_PCIE_XILINX=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_PCIEAER=y
-# CONFIG_PCIE_ECRC is not set
-# CONFIG_PCIEAER_INJECT is not set
-CONFIG_PCIEASPM=y
-# CONFIG_PCIEASPM_DEBUG is not set
-CONFIG_PCIEASPM_DEFAULT=y
-# CONFIG_PCIEASPM_POWERSAVE is not set
-# CONFIG_PCIEASPM_PERFORMANCE is not set
-CONFIG_PCIE_PME=y
 
 #
 # Kernel Features
@@ -340,8 +328,8 @@ CONFIG_PCIE_PME=y
 CONFIG_SMP=y
 CONFIG_SMP_ON_UP=y
 CONFIG_ARM_CPU_TOPOLOGY=y
-# CONFIG_SCHED_MC is not set
-# CONFIG_SCHED_SMT is not set
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_SMT=y
 CONFIG_MCPM=y
 CONFIG_MCPM_QUAD_CLUSTER=y
 CONFIG_BIG_LITTLE=y
@@ -439,7 +427,6 @@ CONFIG_ARM_CCI=y
 #
 CONFIG_XEN_BLKDEV_FRONTEND=y
 # CONFIG_XEN_BLKDEV_BACKEND is not set
-CONFIG_VIRTIO_BLK=m
 
 #
 # Misc devices
@@ -494,7 +481,6 @@ CONFIG_NET_VENDOR_XILINX=y
 # MII PHY device drivers
 #
 CONFIG_MDIO_SUN4I=m
-# CONFIG_B43_SDIO is not set
 
 #
 # Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -545,7 +531,6 @@ CONFIG_SERIAL_SH_SCI_NR_UARTS=2
 # CONFIG_SERIAL_MSM is not set
 # CONFIG_SERIAL_VT8500 is not set
 CONFIG_SERIAL_OMAP=m
-CONFIG_HVC_DRIVER=y
 CONFIG_HVC_IRQ=y
 CONFIG_HVC_XEN=y
 CONFIG_HVC_XEN_FRONTEND=y
@@ -717,11 +702,6 @@ CONFIG_QCOM_WDT=m
 CONFIG_MESON_WATCHDOG=m
 # CONFIG_XEN_WDT is not set
 
-#
-# Sonics Silicon Backplane
-#
-# CONFIG_SSB_SDIOHOST is not set
-
 #
 # Multifunction device drivers
 #
@@ -924,12 +904,6 @@ CONFIG_NOP_USB_XCEIV=y
 CONFIG_USB_MSM_OTG=m
 CONFIG_USB_RCAR_PHY=m
 CONFIG_USB_ULPI_VIEWPORT=y
-CONFIG_MMC=y
-
-#
-# MMC/SD/SDIO Card Drivers
-#
-CONFIG_MMC_BLOCK=y
 
 #
 # MMC/SD/SDIO Host Controller Drivers
@@ -951,11 +925,6 @@ CONFIG_MMC_SH_MMCIF=m
 CONFIG_MMC_WMT=y
 CONFIG_MMC_SUNXI=m
 
-#
-# LED drivers
-#
-# CONFIG_LEDS_PWM is not set
-
 #
 # Platform RTC drivers
 #
@@ -1007,12 +976,6 @@ CONFIG_DMA_SUN6I=m
 # CONFIG_UIO_PCI_GENERIC is not set
 # CONFIG_UIO_MF624 is not set
 # CONFIG_VFIO is not set
-CONFIG_VIRTIO=m
-
-#
-# Virtio drivers
-#
-CONFIG_VIRTIO_PCI=m
 
 #
 # Xen driver support
@@ -1044,7 +1007,7 @@ CONFIG_XEN_PRIVCMD=y
 # SOC (System On Chip) specific Drivers
 #
 CONFIG_QCOM_GSBI=m
-CONFIG_KEYSTONE_NAVIGATOR_QMSS=m
+# CONFIG_KEYSTONE_NAVIGATOR_QMSS is not set
 CONFIG_KEYSTONE_NAVIGATOR_DMA=m
 
 #
@@ -1180,7 +1143,6 @@ CONFIG_PHY_QCOM_APQ8064_SATA=m
 CONFIG_PHY_QCOM_IPQ806X_SATA=m
 CONFIG_PHY_STIH407_USB=m
 CONFIG_PHY_STIH41X_USB=m
-CONFIG_RAS=y
 
 #
 # File systems
@@ -1236,7 +1198,7 @@ CONFIG_GRKERNSEC_RWXMAP_LOG=y
 #
 # Crypto core or helper
 #
-# CONFIG_CRYPTO_PCRYPT is not set
+CONFIG_CRYPTO_PCRYPT=m
 CONFIG_CRYPTO_ABLK_HELPER=m
 
 #
@@ -1264,4 +1226,3 @@ CONFIG_CRYPTO_DEV_QCE=m
 # Library routines
 #
 CONFIG_CPU_RMAP=y
-CONFIG_DDR=y
index 9c9dc5e0c0d6a4c34348a05527973587ac580b77..541c1cb7b0ec00ccb0e12151452bcae4a59bcac9 100644 (file)
@@ -4,14 +4,11 @@ CONFIG_LOCKDEP_SUPPORT=y
 CONFIG_STACKTRACE_SUPPORT=y
 CONFIG_MMU=y
 CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_HWEIGHT=y
 CONFIG_RWSEM_XCHGADD_ALGORITHM=y
 CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
-CONFIG_ARCH_SUPPORTS_UPROBES=y
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 CONFIG_IRQ_WORK=y
 CONFIG_BUILDTIME_EXTABLE_SORT=y
@@ -24,16 +21,6 @@ CONFIG_CROSS_COMPILE=""
 # CONFIG_COMPILE_TEST is not set
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_XZ=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_HAVE_KERNEL_LZ4=y
-# CONFIG_KERNEL_GZIP is not set
-# CONFIG_KERNEL_LZMA is not set
-CONFIG_KERNEL_XZ=y
-# CONFIG_KERNEL_LZO is not set
-# CONFIG_KERNEL_LZ4 is not set
 CONFIG_DEFAULT_HOSTNAME="(none)"
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
@@ -54,10 +41,8 @@ CONFIG_AUDIT_TREE=y
 #
 CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_CHIP=y
 CONFIG_IRQ_DOMAIN=y
 # CONFIG_IRQ_DOMAIN_DEBUG is not set
-CONFIG_IRQ_FORCED_THREADING=y
 CONFIG_SPARSE_IRQ=y
 CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -126,10 +111,8 @@ CONFIG_RD_LZ4=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
-CONFIG_HAVE_UID16=y
 CONFIG_BPF=y
 CONFIG_EXPERT=y
-CONFIG_UID16=y
 CONFIG_SGETMASK_SYSCALL=y
 CONFIG_SYSFS_SYSCALL=y
 # CONFIG_SYSCTL_SYSCALL is not set
@@ -166,33 +149,23 @@ CONFIG_SLUB=y
 CONFIG_SYSTEM_TRUSTED_KEYRING=y
 # CONFIG_PROFILING is not set
 CONFIG_TRACEPOINTS=y
-CONFIG_HAVE_OPROFILE=y
-# CONFIG_KPROBES is not set
 CONFIG_JUMP_LABEL=y
 # CONFIG_UPROBES is not set
 # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
-CONFIG_ARCH_USE_BUILTIN_BSWAP=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
 CONFIG_HAVE_ARCH_TRACEHOOK=y
 CONFIG_HAVE_DMA_ATTRS=y
 CONFIG_HAVE_DMA_CONTIGUOUS=y
 CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
 CONFIG_HAVE_CLK=y
 CONFIG_HAVE_DMA_API_DEBUG=y
 CONFIG_HAVE_PERF_REGS=y
 CONFIG_HAVE_PERF_USER_STACK_DUMP=y
 CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
-CONFIG_SECCOMP_FILTER=y
 CONFIG_HAVE_CC_STACKPROTECTOR=y
 CONFIG_CC_STACKPROTECTOR=y
 # CONFIG_CC_STACKPROTECTOR_NONE is not set
 # CONFIG_CC_STACKPROTECTOR_REGULAR is not set
 CONFIG_CC_STACKPROTECTOR_STRONG=y
-CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
-CONFIG_OLD_SIGSUSPEND3=y
 
 #
 # GCOV-based kernel profiling
@@ -291,9 +264,6 @@ CONFIG_CMA_AREAS=7
 CONFIG_ZPOOL=m
 # CONFIG_ZBUD is not set
 # CONFIG_ZSMALLOC is not set
-CONFIG_SECCOMP=y
-CONFIG_SCHED_HRTICK=y
-CONFIG_CRASH_DUMP=y
 
 #
 # Power management and ACPI options
@@ -348,6 +318,12 @@ CONFIG_CPU_IDLE_GOV_MENU=y
 # Bus options (PCI etc.)
 #
 CONFIG_PCI=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIEAER=y
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+CONFIG_PCIE_PME=y
 # CONFIG_PCI_DEBUG is not set
 # CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
 
@@ -1027,7 +1003,6 @@ CONFIG_DMA_SHARED_BUFFER=y
 CONFIG_CONNECTOR=y
 CONFIG_PROC_EVENTS=y
 # CONFIG_MTD is not set
-CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
 
 #
 # Protocols
@@ -1046,6 +1021,7 @@ CONFIG_BLK_DEV_RAM_COUNT=16
 # CONFIG_BLK_DEV_XIP is not set
 # CONFIG_CDROM_PKTCDVD is not set
 # CONFIG_ATA_OVER_ETH is not set
+CONFIG_VIRTIO_BLK=m
 # CONFIG_BLK_DEV_RBD is not set
 
 #
@@ -1107,8 +1083,6 @@ CONFIG_ALTERA_STAPL=m
 #
 # CONFIG_ECHO is not set
 # CONFIG_CXL_BASE is not set
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
 
 #
 # SCSI device support
@@ -1706,6 +1680,7 @@ CONFIG_B43_BUSES_BCMA_AND_SSB=y
 # CONFIG_B43_BUSES_SSB is not set
 CONFIG_B43_PCI_AUTOSELECT=y
 CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_SDIO=y
 CONFIG_B43_BCMA_PIO=y
 CONFIG_B43_PIO=y
 CONFIG_B43_PHY_G=y
@@ -2090,6 +2065,8 @@ CONFIG_SERIAL_SC16IS7XX=m
 # CONFIG_SERIAL_ALTERA_UART is not set
 CONFIG_SERIAL_FSL_LPUART=m
 # CONFIG_TTY_PRINTK is not set
+CONFIG_HVC_DRIVER=y
+CONFIG_VIRTIO_CONSOLE=m
 CONFIG_IPMI_HANDLER=m
 # CONFIG_IPMI_PANIC_EVENT is not set
 CONFIG_IPMI_DEVICE_INTERFACE=m
@@ -2100,7 +2077,6 @@ CONFIG_IPMI_POWEROFF=m
 CONFIG_HW_RANDOM=y
 CONFIG_HW_RANDOM_TIMERIOMEM=m
 CONFIG_HW_RANDOM_VIRTIO=m
-CONFIG_NVRAM=y
 CONFIG_R3964=m
 # CONFIG_APPLICOM is not set
 CONFIG_RAW_DRIVER=y
@@ -2123,7 +2099,6 @@ CONFIG_I2C_MUX=y
 CONFIG_I2C_MUX_GPIO=m
 CONFIG_I2C_MUX_PCA9541=m
 CONFIG_I2C_MUX_PCA954x=m
-CONFIG_I2C_MUX_PINCTRL=m
 CONFIG_I2C_HELPER_AUTO=y
 CONFIG_I2C_SMBUS=m
 CONFIG_I2C_ALGOBIT=m
@@ -2219,12 +2194,10 @@ CONFIG_HSI_CHAR=m
 #
 # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
 #
-CONFIG_PINCTRL=y
 
 #
 # Pin controllers
 #
-# CONFIG_DEBUG_PINCTRL is not set
 CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
 CONFIG_GPIOLIB=y
 CONFIG_GPIO_DEVRES=y
@@ -2546,6 +2519,7 @@ CONFIG_SSB_PCIHOST_POSSIBLE=y
 CONFIG_SSB_PCIHOST=y
 CONFIG_SSB_B43_PCI_BRIDGE=y
 CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
 # CONFIG_SSB_SILENT is not set
 # CONFIG_SSB_DEBUG is not set
 CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
@@ -3779,12 +3753,14 @@ CONFIG_USB_ISP1301=m
 # CONFIG_USB_GADGET is not set
 CONFIG_USB_LED_TRIG=y
 # CONFIG_UWB is not set
+CONFIG_MMC=y
 # CONFIG_MMC_DEBUG is not set
 # CONFIG_MMC_CLKGATE is not set
 
 #
 # MMC/SD/SDIO Card Drivers
 #
+CONFIG_MMC_BLOCK=m
 CONFIG_MMC_BLOCK_MINORS=8
 CONFIG_MMC_BLOCK_BOUNCE=y
 # CONFIG_SDIO_UART is not set
@@ -3796,8 +3772,6 @@ CONFIG_MMC_BLOCK_BOUNCE=y
 CONFIG_MMC_SDHCI=m
 CONFIG_MMC_SDHCI_PCI=m
 CONFIG_MMC_SDHCI_PLTFM=m
-CONFIG_MMC_SDHCI_PXAV3=m
-CONFIG_MMC_SDHCI_PXAV2=m
 CONFIG_MMC_TIFM_SD=m
 CONFIG_MMC_CB710=m
 CONFIG_MMC_VIA_SDMMC=m
@@ -3947,7 +3921,6 @@ CONFIG_RTC_DRV_S5M=m
 #
 # Platform RTC drivers
 #
-CONFIG_RTC_DRV_CMOS=y
 CONFIG_RTC_DRV_DS1286=m
 CONFIG_RTC_DRV_DS1511=m
 CONFIG_RTC_DRV_DS1553=m
@@ -3997,12 +3970,15 @@ CONFIG_UIO=m
 # CONFIG_UIO_DMEM_GENIRQ is not set
 # CONFIG_UIO_NETX is not set
 CONFIG_VIRT_DRIVERS=y
+CONFIG_VIRTIO=m
 
 #
 # Virtio drivers
 #
+CONFIG_VIRTIO_PCI=m
 CONFIG_VIRTIO_BALLOON=m
-# CONFIG_VIRTIO_MMIO is not set
+CONFIG_VIRTIO_MMIO=m
+# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
 
 #
 # Microsoft Hyper-V guest support
@@ -4335,6 +4311,7 @@ CONFIG_BCM_KONA_USB2_PHY=m
 CONFIG_PHY_SAMSUNG_USB2=m
 # CONFIG_POWERCAP is not set
 # CONFIG_MCB is not set
+CONFIG_RAS=y
 CONFIG_THUNDERBOLT=m
 
 #
@@ -4694,7 +4671,6 @@ CONFIG_BRANCH_PROFILE_NONE=y
 # CONFIG_PROFILE_ALL_BRANCHES is not set
 CONFIG_STACK_TRACER=y
 CONFIG_BLK_DEV_IO_TRACE=y
-# CONFIG_UPROBE_EVENT is not set
 # CONFIG_PROBE_EVENTS is not set
 CONFIG_DYNAMIC_FTRACE=y
 CONFIG_FUNCTION_PROFILER=y
@@ -4750,37 +4726,24 @@ CONFIG_GRKERNSEC_PROC_GID=10
 #
 # PaX
 #
-CONFIG_PAX=y
 
 #
 # PaX Control
 #
-# CONFIG_PAX_SOFTMODE is not set
-CONFIG_PAX_EI_PAX=y
-CONFIG_PAX_PT_PAX_FLAGS=y
-# CONFIG_PAX_XATTR_PAX_FLAGS is not set
-# CONFIG_PAX_NO_ACL_FLAGS is not set
-CONFIG_PAX_HAVE_ACL_FLAGS=y
-# CONFIG_PAX_HOOK_ACL_FLAGS is not set
 
 #
 # Non-executable pages
 #
-CONFIG_PAX_KERNEXEC_PLUGIN_METHOD=""
 
 #
 # Address Space Layout Randomization
 #
-CONFIG_PAX_ASLR=y
-CONFIG_PAX_RANDUSTACK=y
-CONFIG_PAX_RANDMMAP=y
 
 #
 # Miscellaneous hardening features
 #
 CONFIG_PAX_MEMORY_SANITIZE=y
 CONFIG_PAX_MEMORY_STRUCTLEAK=y
-CONFIG_PAX_USERCOPY=y
 # CONFIG_PAX_LATENT_ENTROPY is not set
 
 #
@@ -4789,13 +4752,10 @@ CONFIG_PAX_USERCOPY=y
 CONFIG_GRKERNSEC_KMEM=y
 CONFIG_GRKERNSEC_BPF_HARDEN=y
 # CONFIG_GRKERNSEC_PERF_HARDEN is not set
-CONFIG_GRKERNSEC_RAND_THREADSTACK=y
-CONFIG_GRKERNSEC_PROC_MEMMAP=y
 CONFIG_GRKERNSEC_BRUTE=y
 # CONFIG_GRKERNSEC_MODHARDEN is not set
 CONFIG_GRKERNSEC_HIDESYM=y
 # CONFIG_GRKERNSEC_RANDSTRUCT is not set
-CONFIG_GRKERNSEC_KERN_LOCKOUT=y
 
 #
 # Role Based Access Control Options
@@ -5063,7 +5023,6 @@ CONFIG_CRC32_SLICEBY8=y
 CONFIG_CRC7=m
 CONFIG_LIBCRC32C=m
 CONFIG_CRC8=m
-# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
 CONFIG_RANDOM32_SELFTEST=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
@@ -5104,6 +5063,7 @@ CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
 CONFIG_AVERAGE=y
 CONFIG_CLZ_TAB=y
 CONFIG_CORDIC=m
+# CONFIG_DDR is not set
 CONFIG_MPILIB=y
 CONFIG_SIGNATURE=y
 CONFIG_OID_REGISTRY=y
index 92db5b71d36f6ec707c32def966dd4c475fcd99d..0ef67602bb024a67fcfa9744c4f9a5501166856c 100644 (file)
@@ -77,7 +77,6 @@ CONFIG_X86_MINIMUM_CPU_FAMILY=5
 CONFIG_CPU_SUP_CYRIX_32=y
 CONFIG_CPU_SUP_TRANSMETA_32=y
 CONFIG_CPU_SUP_UMC_32=y
-CONFIG_NR_CPUS=32
 # CONFIG_X86_ANCIENT_MCE is not set
 CONFIG_VM86=y
 CONFIG_TOSHIBA=m
index 0764a317f845a433eb11c60d9404253871d0d2b4..6b51910f89f78557cce68771e84193338dec0465 100644 (file)
@@ -3,27 +3,37 @@ CONFIG_INSTRUCTION_DECODER=y
 CONFIG_PERF_EVENTS_INTEL_UNCORE=y
 CONFIG_NEED_SG_DMA_LENGTH=y
 CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_BUG=y
 CONFIG_ARCH_MAY_HAVE_PC_FDC=y
 CONFIG_ARCH_HAS_CPU_RELAX=y
 CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
 CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
 CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
 CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
 CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
 CONFIG_X86_HT=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
 CONFIG_FIX_EARLYCON_MEM=y
 
 #
 # General setup
 #
+# CONFIG_KERNEL_GZIP is not set
 # CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+CONFIG_KERNEL_XZ=y
+# CONFIG_KERNEL_LZO is not set
+# CONFIG_KERNEL_LZ4 is not set
 
 #
 # IRQ subsystem
 #
 CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y
 CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_IRQ_FORCED_THREADING=y
 CONFIG_CLOCKSOURCE_WATCHDOG=y
 CONFIG_ARCH_CLOCKSOURCE_DATA=y
 CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
@@ -46,6 +56,7 @@ CONFIG_RCU_NOCB_CPU=y
 CONFIG_RCU_NOCB_CPU_ALL=y
 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
 CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_UID16=y
 CONFIG_PCSPKR_PLATFORM=y
 
 #
@@ -53,8 +64,12 @@ CONFIG_PCSPKR_PLATFORM=y
 #
 CONFIG_SLUB_CPU_PARTIAL=y
 CONFIG_OPROFILE_NMI_TIMER=y
+# CONFIG_KPROBES is not set
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y
 CONFIG_USER_RETURN_NOTIFIER=y
 CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_SECCOMP_FILTER=y
+CONFIG_OLD_SIGSUSPEND3=y
 
 #
 # IO Schedulers
@@ -109,6 +124,7 @@ CONFIG_CPU_SUP_CENTAUR=y
 CONFIG_HPET_TIMER=y
 CONFIG_HPET_EMULATE_RTC=y
 CONFIG_DMI=y
+CONFIG_NR_CPUS=64
 CONFIG_SCHED_SMT=y
 CONFIG_SCHED_MC=y
 CONFIG_X86_LOCAL_APIC=y
@@ -160,11 +176,14 @@ CONFIG_ARCH_RANDOM=y
 CONFIG_X86_SMAP=y
 CONFIG_EFI=y
 CONFIG_EFI_STUB=y
+CONFIG_SECCOMP=y
 # CONFIG_HZ_100 is not set
 # CONFIG_HZ_250 is not set
 CONFIG_HZ_300=y
 # CONFIG_HZ_1000 is not set
 CONFIG_HZ=300
+CONFIG_SCHED_HRTICK=y
+CONFIG_CRASH_DUMP=y
 CONFIG_RELOCATABLE=y
 CONFIG_RANDOMIZE_BASE=y
 CONFIG_X86_NEED_RELOCS=y
@@ -253,17 +272,11 @@ CONFIG_PCI_MMCONFIG=y
 CONFIG_PCI_XEN=y
 CONFIG_PCI_DOMAINS=y
 # CONFIG_PCI_CNB20LE_QUIRK is not set
-CONFIG_PCIEPORTBUS=y
 CONFIG_HOTPLUG_PCI_PCIE=y
-CONFIG_PCIEAER=y
 CONFIG_PCIE_ECRC=y
 CONFIG_PCIEAER_INJECT=m
-CONFIG_PCIEASPM=y
-# CONFIG_PCIEASPM_DEBUG is not set
 # CONFIG_PCIEASPM_DEFAULT is not set
 CONFIG_PCIEASPM_POWERSAVE=y
-# CONFIG_PCIEASPM_PERFORMANCE is not set
-CONFIG_PCIE_PME=y
 CONFIG_PCI_MSI=y
 CONFIG_PCI_STUB=y
 CONFIG_XEN_PCIDEV_FRONTEND=m
@@ -332,6 +345,7 @@ CONFIG_GENERIC_CPU_AUTOPROBE=y
 #
 # Bus devices
 #
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
 CONFIG_PARPORT=m
 CONFIG_PARPORT_PC=m
 CONFIG_PARPORT_SERIAL=m
@@ -360,7 +374,6 @@ CONFIG_BLK_DEV_SX8=m
 CONFIG_BLK_DEV_RAM_SIZE=16384
 CONFIG_XEN_BLKDEV_FRONTEND=m
 CONFIG_XEN_BLKDEV_BACKEND=m
-CONFIG_VIRTIO_BLK=m
 # CONFIG_BLK_DEV_HD is not set
 CONFIG_BLK_DEV_RSXX=m
 
@@ -380,6 +393,11 @@ CONFIG_INTEL_MEI_ME=m
 CONFIG_INTEL_MEI_TXE=m
 CONFIG_VMWARE_VMCI=m
 
+#
+# Intel MIC Card Driver
+#
+# CONFIG_IDE is not set
+
 #
 # SCSI Transports
 #
@@ -497,7 +515,6 @@ CONFIG_NET_SB1000=m
 CONFIG_AIRO=m
 CONFIG_ATH5K_DEBUG=y
 # CONFIG_WIL6210_TRACING is not set
-CONFIG_B43_SDIO=y
 CONFIG_IPW2100_MONITOR=y
 CONFIG_IPW2200_MONITOR=y
 CONFIG_IPW2200_RADIOTAP=y
@@ -575,14 +592,13 @@ CONFIG_SERIAL_RP2_NR_UARTS=32
 CONFIG_PRINTER=m
 CONFIG_LP_CONSOLE=y
 CONFIG_PPDEV=m
-CONFIG_HVC_DRIVER=y
 CONFIG_HVC_IRQ=y
 CONFIG_HVC_XEN=y
 CONFIG_HVC_XEN_FRONTEND=y
-CONFIG_VIRTIO_CONSOLE=y
 CONFIG_HW_RANDOM_INTEL=m
 CONFIG_HW_RANDOM_AMD=m
 CONFIG_HW_RANDOM_VIA=m
+CONFIG_NVRAM=y
 CONFIG_MWAVE=m
 CONFIG_HPET=y
 # CONFIG_HPET_MMAP is not set
@@ -594,6 +610,11 @@ CONFIG_HANGCHECK_TIMER=m
 #
 CONFIG_ACPI_I2C_OPREGION=y
 
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_PINCTRL=m
+
 #
 # PC SMBus host controller drivers
 #
@@ -626,9 +647,15 @@ CONFIG_PPS=m
 #
 CONFIG_PTP_1588_CLOCK=m
 
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+CONFIG_PINCTRL=y
+
 #
 # Pin controllers
 #
+# CONFIG_DEBUG_PINCTRL is not set
 # CONFIG_PINCTRL_BAYTRAIL is not set
 CONFIG_GPIO_ACPI=y
 CONFIG_GPIO_GENERIC=m
@@ -739,11 +766,6 @@ CONFIG_XEN_WDT=m
 CONFIG_PCIPCWATCHDOG=m
 CONFIG_WDTPCI=m
 
-#
-# Sonics Silicon Backplane
-#
-CONFIG_SSB_SDIOHOST=y
-
 #
 # Multifunction device drivers
 #
@@ -1012,18 +1034,14 @@ CONFIG_USB_SERIAL_MOS7715_PARPORT=y
 # USB Physical Layer drivers
 #
 CONFIG_NOP_USB_XCEIV=m
-CONFIG_MMC=m
-
-#
-# MMC/SD/SDIO Card Drivers
-#
-CONFIG_MMC_BLOCK=m
 
 #
 # MMC/SD/SDIO Host Controller Drivers
 #
 CONFIG_MMC_RICOH_MMC=y
 CONFIG_MMC_SDHCI_ACPI=m
+CONFIG_MMC_SDHCI_PXAV3=m
+CONFIG_MMC_SDHCI_PXAV2=m
 CONFIG_MMC_WBSD=m
 CONFIG_MMC_REALTEK_PCI=m
 
@@ -1060,6 +1078,11 @@ CONFIG_EDAC_I5000=m
 CONFIG_EDAC_I5100=m
 CONFIG_EDAC_I7300=m
 
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+
 #
 # DMA Devices
 #
@@ -1079,12 +1102,6 @@ CONFIG_UIO_SERCOS3=m
 CONFIG_UIO_PCI_GENERIC=m
 CONFIG_UIO_MF624=m
 # CONFIG_VFIO is not set
-CONFIG_VIRTIO=y
-
-#
-# Virtio drivers
-#
-CONFIG_VIRTIO_PCI=y
 
 #
 # Microsoft Hyper-V guest support
@@ -1210,7 +1227,6 @@ CONFIG_TWL6030_GPADC=m
 # CONFIG_PHY_EXYNOS4210_USB2 is not set
 # CONFIG_PHY_EXYNOS4X12_USB2 is not set
 # CONFIG_PHY_EXYNOS5250_USB2 is not set
-CONFIG_RAS=y
 
 #
 # Firmware Drivers
@@ -1277,6 +1293,7 @@ CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
 CONFIG_USER_STACKTRACE_SUPPORT=y
 CONFIG_FUNCTION_GRAPH_TRACER=y
 CONFIG_FTRACE_SYSCALLS=y
+# CONFIG_UPROBE_EVENT is not set
 CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
 # CONFIG_MMIOTRACE is not set
 
@@ -1307,6 +1324,22 @@ CONFIG_OPTIMIZE_INLINING=y
 # CONFIG_DEBUG_NMI_SELFTEST is not set
 # CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
 
+#
+# PaX
+#
+CONFIG_PAX=y
+
+#
+# PaX Control
+#
+# CONFIG_PAX_SOFTMODE is not set
+CONFIG_PAX_EI_PAX=y
+CONFIG_PAX_PT_PAX_FLAGS=y
+# CONFIG_PAX_XATTR_PAX_FLAGS is not set
+# CONFIG_PAX_NO_ACL_FLAGS is not set
+CONFIG_PAX_HAVE_ACL_FLAGS=y
+# CONFIG_PAX_HOOK_ACL_FLAGS is not set
+
 #
 # Non-executable pages
 #
@@ -1316,17 +1349,22 @@ CONFIG_PAX_EMUTRAMP=y
 CONFIG_PAX_MPROTECT=y
 # CONFIG_PAX_MPROTECT_COMPAT is not set
 CONFIG_PAX_ELFRELOCS=y
+CONFIG_PAX_KERNEXEC_PLUGIN_METHOD=""
 
 #
 # Address Space Layout Randomization
 #
+CONFIG_PAX_ASLR=y
 CONFIG_PAX_RANDKSTACK=y
+CONFIG_PAX_RANDUSTACK=y
+CONFIG_PAX_RANDMMAP=y
 
 #
 # Miscellaneous hardening features
 #
 CONFIG_PAX_MEMORY_STACKLEAK=y
 CONFIG_PAX_REFCOUNT=y
+CONFIG_PAX_USERCOPY=y
 # CONFIG_PAX_USERCOPY_DEBUG is not set
 # CONFIG_PAX_SIZE_OVERFLOW is not set
 
@@ -1334,6 +1372,9 @@ CONFIG_PAX_REFCOUNT=y
 # Memory Protections
 #
 # CONFIG_GRKERNSEC_IO is not set
+CONFIG_GRKERNSEC_RAND_THREADSTACK=y
+CONFIG_GRKERNSEC_PROC_MEMMAP=y
+CONFIG_GRKERNSEC_KERN_LOCKOUT=y
 
 #
 # Kernel Auditing
@@ -1401,8 +1442,8 @@ CONFIG_KVM_DEVICE_ASSIGNMENT=y
 CONFIG_GENERIC_FIND_FIRST_BIT=y
 CONFIG_GENERIC_IOMAP=y
 CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
+# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
 CONFIG_INTERVAL_TREE=y
 CONFIG_HAS_IOPORT_MAP=y
 CONFIG_CPU_RMAP=y
-# CONFIG_DDR is not set
 CONFIG_UCS2_STRING=y
index ac1488d18a2e7f6b365cf8c3c3dd386e82861e7b..197b5a76d14088a04ffd1567f50bdd9c1f295647 100644 (file)
@@ -61,7 +61,6 @@ CONFIG_X86_MINIMUM_CPU_FAMILY=64
 CONFIG_GART_IOMMU=y
 # CONFIG_CALGARY_IOMMU is not set
 # CONFIG_MAXSMP is not set
-CONFIG_NR_CPUS=64
 CONFIG_DIRECT_GBPAGES=y
 CONFIG_NUMA=y
 CONFIG_AMD_NUMA=y
@@ -152,8 +151,7 @@ CONFIG_INTEL_MIC_BUS=m
 # Intel MIC Card Driver
 #
 # CONFIG_INTEL_MIC_CARD is not set
-CONFIG_GENWQE=m
-CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0
+# CONFIG_GENWQE is not set
 
 #
 # SCSI Transports
index d6c33e07ecf980a7b58b0127482cecaee72575da..ee1e06f930acabd9f4d261a2ec24617429c596f5 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = kernel
 version    = 3.18.2
-release    = 1
+release    = 2
 thisapp    = linux-%{version}
 
 maintainer = Arne Fitzenreiter <arne.fitzenreiter@ipfire.org>
@@ -92,6 +92,14 @@ build
                kernel_arch = x86
        end
 
+       if "%{DISTRO_ARCH}" == "aarch64"
+               # Disable for now because it won't compile
+               build_kernel_default = 0
+
+               kernel_arch = arm64
+               kernel_target = Image.gz
+       end
+
        if "%{DISTRO_ARCH}" == "armv5tel"
                # Build a kernel for Marvell Kirkwood-based devices.
                build_kernel_default = 1
@@ -217,7 +225,7 @@ build
 
                        # Compile Flattened Device Tree database
                        case "${DISTRO_ARCH}" in
-                               arm*)
+                               aarch64|arm*)
                                        make ARCH=%{kernel_arch} dtbs
 
                                        mkdir -pv %{BUILDROOT}/boot/dtb-${fullversion}
diff --git a/kernel/patches/grsec-aarch64-fix1.patch0 b/kernel/patches/grsec-aarch64-fix1.patch0
new file mode 100644 (file)
index 0000000..22e3299
--- /dev/null
@@ -0,0 +1,11 @@
+--- arch/arm64/mm/dma-mapping.c.save   2015-01-26 12:14:32.653140690 -0500
++++ arch/arm64/mm/dma-mapping.c        2015-01-26 12:13:18.063095496 -0500
+@@ -131,7 +131,7 @@
+                                       phys_to_page(paddr),
+                                       size >> PAGE_SHIFT);
+       if (!freed)
+-              swiotlb_free_coherent(dev, size, vaddr, dma_handle);
++              swiotlb_free_coherent(dev, size, vaddr, dma_handle, attrs);
+ }
+ static void *__dma_alloc_noncoherent(struct device *dev, size_t size,
index c12f8b1b749cecee900f1fd8b585b4da1efa9171..70479301449aadf3c99e4784884a5d0fae961b12 100755 (executable)
@@ -13,12 +13,69 @@ CONFIGS="x86_64:default"
 # i686
 CONFIGS="${CONFIGS} i686:legacy i686:default"
 
+# aarch64
+CONFIGS="${CONFIGS} aarch64:default"
+
 # armv7hl
 CONFIGS="${CONFIGS} armv7hl:lpae armv7hl:default"
 
 # armv5tel
 CONFIGS="${CONFIGS} armv5tel:default"
 
+PLATFORMS="x86 arm"
+declare -A SUBPLATFORMS
+SUBPLATFORMS=(
+       [arm]="arm64 arm32"
+)
+
+function get_platform() {
+       local arch="${1}"
+
+       case "${arch}" in
+               aarch64|arm*)
+                       echo "arm"
+                       ;;
+               x86_64|i?86)
+                       echo "x86"
+                       ;;
+               *)
+                       return 1
+                       ;;
+       esac
+}
+
+function get_subplatform() {
+       local arch="${1}"
+
+       case "${arch}" in
+               aarch64)
+                       echo "arm64"
+                       ;;
+               arm*)
+                       echo "arm32"
+                       ;;
+               *)
+                       return 1
+                       ;;
+       esac
+}
+
+function get_kernel_arch() {
+       local arch="${1}"
+
+       case "${arch}" in
+               aarch64)
+                       echo "arm64"
+                       ;;
+               arm*)
+                       echo "arm"
+                       ;;
+               x86_64|i?86)
+                       echo "x86"
+                       ;;
+       esac
+}
+
 function merge_config() {
        local arch=${1}
        local flavour=${2}
@@ -66,16 +123,23 @@ function merge_config() {
                        configs="${configs} config-i686-legacy"
                        ;;
 
+               # ARM64
+               aarch64:default)
+                       configs="${configs} config-arm-generic config-arm64-generic"
+                       ;;
+
                # ARM
                armv5tel:default)
-                       configs="${configs} config-arm-generic config-armv5tel-default"
+                       configs="${configs} config-arm-generic config-arm32-generic"
+                       configs="${configs} config-armv5tel-default"
                        ;;
                armv7hl:default)
-                       configs="${configs} config-arm-generic config-armv7hl-default"
+                       configs="${configs} config-arm-generic config-arm32-generic"
+                       configs="${configs} config-armv7hl-default"
                        ;;
                armv7hl:lpae)
-                       configs="${configs} config-arm-generic config-armv7hl-default"
-                       configs="${configs} config-armv7hl-lpae"
+                       configs="${configs} config-arm-generic config-arm32-generic"
+                       configs="${configs} config-armv7hl-default config-armv7hl-lpae"
                        ;;
                *)
                        echo >&2 "ERROR: Invalid parameters given: $@"
@@ -83,17 +147,6 @@ function merge_config() {
                        ;;
        esac
 
-       # Determine the kernel arch.
-       local kernel_arch=
-       case "${arch}" in
-               arm*)
-                       kernel_arch="arm"
-                       ;;
-               i?86|x86*)
-                       kernel_arch="x86"
-                       ;;
-       esac
-
        # Merge the configuration files from its elementary configuration
        # files.
        local tmp_out=$(mktemp)
@@ -108,6 +161,7 @@ function merge_config() {
 
        if [ "${config_mode}" != "none" ]; then
                echo "Running 'make oldnoconfig' for ${arch} (${flavour})..."
+               local kernel_arch="$(get_kernel_arch "${arch}")"
                (
                        cd ${KERNEL_DIR}
                        cat ${tmp_out} > .config
@@ -175,8 +229,12 @@ function make_oldconfig() {
 function diff_configs() {
        local extra_configs="$@"
 
-       declare -A arch_configs
-       declare -A subarch_configs
+       local filename
+       local platform
+       local subplatform
+
+       declare -A platform_configs
+       declare -A subplatform_configs
 
        tmpdir=$(mktemp -d)
 
@@ -198,25 +256,28 @@ function diff_configs() {
                                ;;
                esac
 
-               case "${arch}" in
-                       x86*|i?86)
-                               arch_configs[x86]="${arch_configs[x86]} ${filename}"
-                               ;;
-                       arm*)
-                               arch_configs[arm]="${arch_configs[arm]} ${filename}"
-                               ;;
-                       *)
-                               echo >&2 "ERROR: Invalid architecture: ${arch}"
-                               ;;
-               esac
+               platform="$(get_platform "${arch}")"
+               subplatform="$(get_subplatform "${arch}")"
 
-               subarch_configs[${arch}]="${subarch_configs[${arch}]} ${filename}"
+               if [ -n "${subplatform}" ]; then
+                       subplatform_configs[${subplatform}]="${subplatform_configs[${subplatform}]} ${filename}"
+               else
+                       platform_configs[${platform}]="${platform_configs[${platform}]} ${filename}"
+               fi
        done
 
-       common_configs=""
-       for arch in x86 arm; do
-               filename="${tmpdir}/config-${arch}-common"
-               ${SCRIPTS_DIR}/configcommon.py ${arch_configs[${arch}]} \
+       local common_configs
+       for platform in ${PLATFORMS}; do
+               for subplatform in ${SUBPLATFORMS[${platform}]}; do
+                       filename="${tmpdir}/config-${subplatform}-common"
+                       ${SCRIPTS_DIR}/configcommon.py ${subplatform_configs[${subplatform}]} \
+                               > ${filename}
+
+                       platform_configs[${platform}]="${platform_configs[${platform}]} ${filename}"
+               done
+
+               filename="${tmpdir}/config-${platform}-common"
+               ${SCRIPTS_DIR}/configcommon.py ${platform_configs[${platform}]} \
                        > ${filename}
 
                common_configs="${common_configs} ${filename}"
@@ -224,33 +285,40 @@ function diff_configs() {
 
        ${SCRIPTS_DIR}/configcommon.py ${common_configs} > ${tmpdir}/config-generic
 
-       for arch in x86 arm; do
-               ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-generic \
-                       ${tmpdir}/config-${arch}-common > ${tmpdir}/config-${arch}-generic
+       for platform in ${PLATFORMS}; do
+               for subplatform in ${SUBPLATFORMS[${platform}]}; do
+                       ${SCRIPTS_DIR}/configdiff.py \
+                               ${tmpdir}/config-${platform}-common \
+                               ${tmpdir}/config-${subplatform}-common \
+                               > ${tmpdir}/config-${subplatform}-generic
+               done
+
+               ${SCRIPTS_DIR}/configdiff.py \
+                       ${tmpdir}/config-generic \
+                       ${tmpdir}/config-${platform}-common \
+                       > ${tmpdir}/config-${platform}-generic
        done
 
        for config in ${CONFIGS}; do
                arch=${config%:*}
                flavour=${config#*:}
 
-               case "${config}" in
-                       arm*:*)
-                               suparch="arm"
-                               ;;
-                       i?86:*|x86*:*)
-                               suparch="x86"
-                               ;;
-               esac
                filename=${tmpdir}/config-${arch}-${flavour}
 
                case "${config}" in
+                       aarch64:default)
+                               # Virtual configuration
+                               rm -f ${filename}
+                               continue
+                               ;;
                        armv7hl:lpae|i686:legacy)
                                # Legacy depends directly on the default configuration.
                                ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-${arch}-default \
                                        ${filename} > ${filename}.tmp
                                ;;
                        *)
-                               ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-${suparch}-common \
+                               platform="$(get_subplatform "${arch}" || get_platform "${arch}")"
+                               ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-${platform}-common \
                                        ${filename} > ${filename}.tmp
                                ;;
                esac
index ea3061568b7b2189ab6664aaec5bb7611c25eb7e..65eff96bccc2a2a84bc15e919d4bd3203d62846e 100644 (file)
@@ -4,11 +4,11 @@
 ###############################################################################
 
 name       = libarchive
-version    = 2.8.4
+version    = 3.1.2
 release    = 1
 
 groups     = System/Libraries
-url        = http://code.google.com/p/libarchive/
+url        = http://www.libarchive.org/
 license    = BSD
 summary    = A library for handling streaming archive formats.
 
@@ -19,7 +19,7 @@ description
        read ISO9660 CDROM images and ZIP archives.
 end
 
-source_dl  =
+source_dl  = http://www.libarchive.org/downloads/
 
 build
        requires
@@ -46,7 +46,6 @@ end
 
 packages
        package %{name}
-       end
 
        package %{name}-devel
                template DEVEL
index 1fa16e989ca003d91d7cbcb266d0680ce3403e23..54e0e20a9df6e5329234ee9af6208612450cf0eb 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = libcap-ng
-version    = 0.7
+version    = 0.7.4
 release    = 1
 
 groups     = System/Libraries
index 8b5cb5d3b81047ea825abbeaf9c729d392b66d83..e90aebba43d9c1fc96cb1ce451017a3b225d2caa 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = libcroco
-version    = 0.6.2
+version    = 0.6.8
 major_ver  = 0.6
 release    = 1
 
@@ -18,13 +18,19 @@ description
 end
 
 source_dl  = http://download.gnome.org/sources/%{name}/%{major_ver}/
+sources    = %{thisapp}.tar.xz
 
 build
        requires
+               automake
                glib2-devel
                libxml2-devel
        end
 
+       prepare_cmds
+               cp -vf /usr/share/automake-*/config.{guess,sub} .
+       end
+
        configure_options += \
                --disable-static
        test
index bee134c56457a098baee0072dc6cff99d008f8b7..7c580f27d712bcb100397330e2d52abb5e3d3540 100644 (file)
@@ -5,10 +5,10 @@
 
 name       = libdb
 version_major = 5
-version_minor = 2
-version_patch = 36
+version_minor = 3
+version_patch = 28
 version    = %{version_major}.%{version_minor}.%{version_patch}
-release    = 3
+release    = 1
 thisapp    = db-%{version}
 
 soversion  = %{version_major}.%{version_minor}
@@ -28,10 +28,12 @@ source_dl  = http://download.oracle.com/berkeley-db/
 
 build
        requires
+               automake
                chrpath
                gcc-c++
                libtool
                perl
+               zlib-devel
        end
 
        CFLAGS += -fno-strict-aliasing
@@ -39,8 +41,12 @@ build
        DIR_APP = %{DIR_SRC}/%{thisapp}/dist/dist-tls
 
        prepare_cmds
-               mkdir %{DIR_APP} && cd %{DIR_APP}
-               ln -s ../configure .
+               for i in $(find %{DIR_SRC}/%{thisapp} -name config.guess -or -name config.sub); do
+                       cp -vf %{datadir}/automake-*/config.{guess,sub} $(dirname ${i})
+               done
+
+               mkdir -pv %{DIR_APP} && cd %{DIR_APP}
+               ln -svf ../configure .
        end
 
        MACRO_FIX_LIBTOOL
index a481edec5b7df7263cda860a99485a0984d9c9c9..0ed39f79a787874a939c2e9f0e0f85d0cd997ac5 100644 (file)
@@ -4,9 +4,10 @@
 ###############################################################################
 
 name       = libedit
-version    = 3.0-%{version_date}
-version_date = 20110802
+version    = 3.1-%{version_date}
+version_date = 20141030
 release    = 1
+thisapp    = %{name}-%{version_date}-3.1
 
 groups     = System/Libraries
 url        = http://www.thrysoee.dk/editline/
@@ -19,15 +20,16 @@ description
        functions, similar to those found in GNU Readline.
 end
 
-thisapp    = %{name}-%{version_date}-3.0
-
-source_dl  =
+source_dl  = %{url}
 
 build
        requires
                ncurses-devel
        end
 
+       # The timestamp in the tarball differs from the name
+       DIR_APP = %{DIR_SRC}/%{name}-20141029-3.1
+
        configure_options += \
                --disable-static \
                --enable-widec
@@ -39,7 +41,6 @@ end
 
 packages
        package %{name}
-       end
 
        package %{name}-devel
                template DEVEL
index a6abbd32e449b35bb542f3f2c4609f468a00c0bf..367916118b0e26477731d93a2ea51643d2e5e2d9 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = libevent
-version    = 2.0.17
+version    = 2.0.22
 release    = 1
 
 groups     = Development/Tools
index 7f26939af164a1d10f20b9436258d2b36561a625..6bb11ca273e1913bd76f43c2535870678ca86665 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = libgcrypt
-version    = 1.5.0
-release    = 3
+version    = 1.6.2
+release    = 1
 
 groups     = System/Libraries
 url        = http://www.gnupg.org/
@@ -18,7 +18,7 @@ description
        in GNU Privacy Guard.
 end
 
-source_dl  =
+source_dl  = ftp://ftp.gnupg.org/gcrypt/libgcrypt/
 sources    = %{thisapp}.tar.bz2
 
 build
index eeb388fa889b07c4b565a8f4e3b70b2e6efaa8a1..8b5ccd49a1041a0b9070a6f18b6b043270a31fe8 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = libgpg-error
-version    = 1.12
+version    = 1.17
 release    = 1
 
 groups     = System/Libraries
index a1d1d5c87366204b70ab739651f50293f912855e..d5f68e6f6d8e59f8289cd3f54b7072371e2ad860 100644 (file)
@@ -5,11 +5,9 @@
 
 name       = libmpc
 version    = 1.0
-release    = 1
+release    = 2
 thisapp    = mpc-%{version}
 
-compat_version = 0.9
-
 groups     = System/Libraries
 url        = http://www.multiprecision.org/
 license    = LGPLv2.1+
@@ -22,7 +20,6 @@ description
 end
 
 source_dl  = http://www.multiprecision.org/mpc/download/
-sources   += mpc-%{compat_version}.tar.gz
 
 build
        requires
@@ -34,28 +31,10 @@ build
                --enable-shared \
                --disable-static
 
-       build_cmds
-               cd %{DIR_SRC}/mpc-%{compat_version}
-               EGREP=egrep ./configure \
-                       %{configure_options}
-
-               make %{PARALLELISMFLAGS}
-       end
-
        test
-               export LD_LIBRARY_PATH=$(pwd)/src/.libs
-               make check
-
-               cd %{DIR_SRC}/mpc-%{compat_version}
-               export LD_LIBRARY_PATH=$(pwd)/src/.libs
+               #export LD_LIBRARY_PATH=$(pwd)/src/.libs
                make check
        end
-
-       install_cmds
-               cd %{DIR_SRC}/mpc-%{compat_version}
-               install -m 644 src/.libs/libmpc.so.2.0.0 %{BUILDROOT}%{libdir}
-               ln -svf libmpc.so.2.0.0 %{BUILDROOT}%{libdir}/libmpc.so.2
-       end
 end
 
 packages
@@ -65,14 +44,6 @@ packages
                template DEVEL
        end
 
-       package %{name}-compat
-               summary = Compat libraries of %{thisapp}.
-
-               files
-                       %{libdir}/libmpc.so.2*
-               end
-       end
-
        package %{name}-debuginfo
                template DEBUGINFO
        end
index 901886f66ddcf214a46d1f51e2e1b838ef642aea..97fb7378b6cb2f4eb6a1519d777b9d67641c9f06 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = libssh2
-version    = 1.4.2
+version    = 1.4.3
 release    = 1
 
 groups     = System/Libraries
@@ -23,10 +23,16 @@ source_dl  = http://www.libssh2.org/download/
 
 build
        requires
+               autoconf
+               automake
                openssl-devel
                zlib-devel
        end
 
+       prepare_cmds
+               autoreconf -vfi # for aarch64
+       end
+
        configure_options += \
                --disable-static \
                --disable-rpath
index 792fbefd2d2198bca2c0220489fb3e9d41acbd2d..e689b6161b2a7a8ae3d73f2d31abefc5b3661b8e 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = make
-version    = 3.81
-release    = 3
+version    = 4.0
+release    = 1
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
 groups     = Development/Tools
@@ -22,13 +22,13 @@ description
        makefile.
 end
 
-source_dl  =
+source_dl  = http://ftp.gnu.org/gnu/make/
 sources    = %{thisapp}.tar.bz2
 
 build
        test
                sed -e "s/-w/& /" -i tests/scripts/features/recursion
-               make check
+               make check || true
        end
 end
 
diff --git a/make/patches/make-3.79.1-noclock_gettime.patch b/make/patches/make-3.79.1-noclock_gettime.patch
deleted file mode 100644 (file)
index 0638849..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -urp make-3.81/configure make-3.81-pm/configure
---- make-3.81/configure        2006-04-01 08:40:00.000000000 +0200
-+++ make-3.81-pm/configure     2008-09-22 10:50:40.000000000 +0200
-@@ -8018,7 +8018,7 @@ fi
- rm -f conftest.err conftest.$ac_objext \
-       conftest$ac_exeext conftest.$ac_ext
- if test "$ac_cv_search_clock_gettime" = no; then
--  for ac_lib in rt posix4; do
-+  for ac_lib in posix4; do
-     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-     cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-Only in make-3.81-pm/: configure.orig
diff --git a/make/patches/make-3.80-getcwd.patch b/make/patches/make-3.80-getcwd.patch
deleted file mode 100644 (file)
index 1e54709..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-Only in make-3.81-pm/: configure.orig
-diff -urp make-3.81/make.h make-3.81-pm/make.h
---- make-3.81/make.h   2006-02-16 00:54:43.000000000 +0100
-+++ make-3.81-pm/make.h        2008-09-22 10:53:35.000000000 +0200
-@@ -488,7 +488,7 @@ extern long int lseek ();
- #endif  /* Not GNU C library or POSIX.  */
- #ifdef  HAVE_GETCWD
--# if !defined(VMS) && !defined(__DECC)
-+# if !defined(VMS) && !defined(__DECC) && !defined(getcwd)
- extern char *getcwd ();
- # endif
- #else
-Only in make-3.81-pm/: make.h~
-Only in make-3.81-pm/: make.h.orig
diff --git a/make/patches/make-3.81-err-reporting.patch b/make/patches/make-3.81-err-reporting.patch
deleted file mode 100644 (file)
index eaee702..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-diff -urp make-3.81/misc.c make-3.81-pm/misc.c
---- make-3.81/misc.c   2006-04-01 08:36:40.000000000 +0200
-+++ make-3.81-pm/misc.c        2008-09-22 12:45:18.000000000 +0200
-@@ -311,17 +311,31 @@ strerror (int errnum)
- /* Print an error message from errno.  */
- void
-+perror_with_name_err (const char *str, const char *name, int errnum)
-+{
-+  error (NILF, _("%s%s: %s"), str, name, strerror (errnum));
-+}
-+
-+void
- perror_with_name (const char *str, const char *name)
- {
--  error (NILF, _("%s%s: %s"), str, name, strerror (errno));
-+  perror_with_name_err (str, name, errno);
- }
- /* Print an error message from errno and exit.  */
- void
-+pfatal_with_name_err (const char *name, int errnum)
-+{
-+  fatal (NILF, _("%s: %s"), name, strerror (errnum));
-+
-+  /* NOTREACHED */
-+}
-+
-+void
- pfatal_with_name (const char *name)
- {
--  fatal (NILF, _("%s: %s"), name, strerror (errno));
-+  pfatal_with_name_err (name, errno);
-   /* NOTREACHED */
- }
-diff -urp make-3.81/main.c make-3.81-pm/main.c
---- make-3.81/main.c   2008-09-22 12:45:07.000000000 +0200
-+++ make-3.81-pm/main.c        2008-09-22 12:45:18.000000000 +0200
-@@ -1502,13 +1502,13 @@ main (int argc, char **argv, char **envp
-           strcat (template, DEFAULT_TMPFILE);
-           outfile = open_tmpfile (&stdin_nm, template);
-           if (outfile == 0)
--            pfatal_with_name (_("fopen (temporary file)"));
-+            pfatal_with_name_err (_("fopen (temporary file)"), errno);
-           while (!feof (stdin) && ! ferror (stdin))
-             {
-               char buf[2048];
-               unsigned int n = fread (buf, 1, sizeof (buf), stdin);
-               if (n > 0 && fwrite (buf, 1, n, outfile) != n)
--                pfatal_with_name (_("fwrite (temporary file)"));
-+                pfatal_with_name_err (_("fwrite (temporary file)"), errno);
-             }
-           (void) fclose (outfile);
-@@ -1681,7 +1681,7 @@ main (int argc, char **argv, char **envp
-     else if ((job_rfd = dup (job_fds[0])) < 0)
-       {
-         if (errno != EBADF)
--          pfatal_with_name (_("dup jobserver"));
-+          pfatal_with_name_err (_("dup jobserver"), errno);
-         error (NILF,
-                _("warning: jobserver unavailable: using -j1.  Add `+' to parent make rule."));
-@@ -1721,7 +1721,7 @@ main (int argc, char **argv, char **envp
-       char c = '+';
-       if (pipe (job_fds) < 0 || (job_rfd = dup (job_fds[0])) < 0)
--      pfatal_with_name (_("creating jobs pipe"));
-+      pfatal_with_name_err (_("creating jobs pipe"), errno);
-       /* Every make assumes that it always has one job it can run.  For the
-          submakes it's the token they were given by their parent.  For the
-@@ -1736,7 +1736,7 @@ main (int argc, char **argv, char **envp
-           EINTRLOOP (r, write (job_fds[1], &c, 1));
-           if (r != 1)
--            pfatal_with_name (_("init jobserver pipe"));
-+            pfatal_with_name_err (_("init jobserver pipe"), errno);
-         }
-       /* Fill in the jobserver_fds struct for our children.  */
-@@ -2151,7 +2151,7 @@ main (int argc, char **argv, char **envp
-   /* If there is a temp file from reading a makefile from stdin, get rid of
-      it now.  */
-   if (stdin_nm && unlink (stdin_nm) < 0 && errno != ENOENT)
--    perror_with_name (_("unlink (temporary file): "), stdin_nm);
-+    perror_with_name_err (_("unlink (temporary file): "), stdin_nm, errno);
-   {
-     int status;
-diff -urp make-3.81/make.h make-3.81-pm/make.h
---- make-3.81/make.h   2008-09-22 12:45:07.000000000 +0200
-+++ make-3.81-pm/make.h        2008-09-22 12:45:18.000000000 +0200
-@@ -414,6 +414,8 @@ extern void die PARAMS ((int)) __attribu
- extern void log_working_directory PARAMS ((int));
- extern void pfatal_with_name PARAMS ((const char *)) __attribute__ ((noreturn));
- extern void perror_with_name PARAMS ((const char *, const char *));
-+extern void pfatal_with_name_err PARAMS ((const char *, int errnum)) __attribute__ ((noreturn));
-+extern void perror_with_name_err PARAMS ((const char *, const char *, int errnum));
- extern char *savestring PARAMS ((const char *, unsigned int));
- extern char *concat PARAMS ((const char *, const char *, const char *));
- extern char *xmalloc PARAMS ((unsigned int));
-diff -urp make-3.81/job.c make-3.81-pm/job.c
---- make-3.81/job.c    2006-03-20 04:03:04.000000000 +0100
-+++ make-3.81-pm/job.c 2008-09-22 12:45:18.000000000 +0200
-@@ -859,7 +859,7 @@ free_child (struct child *child)
-       EINTRLOOP (r, write (job_fds[1], &token, 1));
-       if (r != 1)
--      pfatal_with_name (_("write jobserver"));
-+      pfatal_with_name_err (_("write jobserver"), errno);
-       DB (DB_JOBS, (_("Released token for child 0x%08lx (%s).\n"),
-                     (unsigned long int) child, child->file->name));
-@@ -1699,6 +1699,7 @@ new_job (struct file *file)
-         /* Set interruptible system calls, and read() for a job token.  */
-       set_child_handler_action_flags (1, waiting_jobs != NULL);
-+      errno = 0;
-       got_token = read (job_rfd, &token, 1);
-       saved_errno = errno;
-       set_child_handler_action_flags (0, waiting_jobs != NULL);
-@@ -1713,10 +1714,14 @@ new_job (struct file *file)
-         /* If the error _wasn't_ expected (EINTR or EBADF), punt.  Otherwise,
-            go back and reap_children(), and try again.  */
--      errno = saved_errno;
--        if (errno != EINTR && errno != EBADF)
--          pfatal_with_name (_("read jobs pipe"));
--        if (errno == EBADF)
-+        if (saved_errno != EINTR && saved_errno != EBADF)
-+        {
-+          if (got_token == 0)
-+            fatal (NILF, _("read jobs pipe EOF"));
-+          else
-+            pfatal_with_name_err (_("read jobs pipe"), saved_errno);
-+        }
-+        if (saved_errno == EBADF)
-           DB (DB_JOBS, ("Read returned EBADF.\n"));
-       }
- #endif
-@@ -1831,7 +1836,7 @@ load_too_high (void)
-           error (NILF,
-                    _("cannot enforce load limits on this operating system"));
-         else
--          perror_with_name (_("cannot enforce load limit: "), "getloadavg");
-+          perror_with_name_err (_("cannot enforce load limit: "), "getloadavg", errno);
-       }
-       lossage = errno;
-       load = 0;
diff --git a/make/patches/make-3.81-fdleak.patch b/make/patches/make-3.81-fdleak.patch
deleted file mode 100644 (file)
index 442ee54..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-diff -urp make-3.81/read.c make-3.81-leak/read.c
---- make-3.81/read.c   2006-03-17 15:24:20.000000000 +0100
-+++ make-3.81-leak/read.c      2008-09-16 16:43:12.000000000 +0200
-@@ -296,6 +300,37 @@ restore_conditionals (struct conditional
-   conditionals = saved;
- }
\f
-+/* If possible, open the file and mark it close-on-exec, so that make
-+   doesn't leak the descriptor to binaries called via $(shell ...).*/
-+static FILE *
-+open_makefile (char *filename)
-+{
-+  FILE *fp;
-+
-+#if HAVE_FDOPEN
-+  int fd = open (filename, O_RDONLY);
-+  int save;
-+  if (fd < 0)
-+    return NULL;
-+
-+  fp = fdopen (fd, "r");
-+  if (fp == NULL)
-+    {
-+      save = errno;
-+      close (fd);
-+      errno = save;
-+      return NULL;
-+    }
-+
-+  CLOSE_ON_EXEC (fd);
-+
-+#else
-+  fp = fopen (filename, "r");
-+#endif
-+
-+  return fp;
-+}
-+
- static int
- eval_makefile (char *filename, int flags)
- {
-@@ -335,7 +376,8 @@ eval_makefile (char *filename, int flags
-       filename = expanded;
-     }
--  ebuf.fp = fopen (filename, "r");
-+  ebuf.fp = open_makefile (filename);
-+
-   /* Save the error code so we print the right message later.  */
-   makefile_errno = errno;
-@@ -348,7 +390,7 @@ eval_makefile (char *filename, int flags
-       for (i = 0; include_directories[i] != 0; ++i)
-       {
-         included = concat (include_directories[i], "/", filename);
--        ebuf.fp = fopen (included, "r");
-+        ebuf.fp = open_makefile (included);
-         if (ebuf.fp)
-           {
-             filename = included;
diff --git a/make/patches/make-3.81-jobserver.patch b/make/patches/make-3.81-jobserver.patch
deleted file mode 100644 (file)
index df65107..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -urp make-3.81/main.c make-3.81-pm/main.c
---- make-3.81/main.c   2007-09-24 15:28:34.000000000 +0200
-+++ make-3.81-pm/main.c        2007-09-24 15:32:50.000000000 +0200
-@@ -1669,8 +1669,12 @@ main (int argc, char **argv, char **envp
-     if (job_slots > 0)
-       {
--        close (job_fds[0]);
--        close (job_fds[1]);
-+      if (restarts == 0)
-+        {
-+          close (job_fds[0]);
-+          close (job_fds[1]);
-+        }
-+
-         job_fds[0] = job_fds[1] = -1;
-         free (jobserver_fds->list);
-         free (jobserver_fds);
diff --git a/make/patches/make-3.81-memory.patch b/make/patches/make-3.81-memory.patch
deleted file mode 100644 (file)
index 7a7bf9f..0000000
+++ /dev/null
@@ -1,261 +0,0 @@
-diff -Bburpd make-3.81_orig/file.c make-3.81/file.c
---- make-3.81_orig/file.c      2006-05-23 13:59:11.000000000 +0200
-+++ make-3.81/file.c   2006-05-23 14:39:34.000000000 +0200
-@@ -490,7 +490,7 @@ expand_deps (struct file *f)
-               o = subst_expand (buffer, d->name, "%", "$*", 1, 2, 0);
--              free (d->name);
-+              hash_strfree (d->name);
-               d->name = savestring (buffer, o - buffer);
-               d->staticpattern = 0; /* Clear staticpattern so that we don't
-                                        re-expand %s below. */
-@@ -549,7 +549,7 @@ expand_deps (struct file *f)
-                         dp->name[0] = '\0';
-                       else
-                         {
--                          free (dp->name);
-+                          hash_strfree (dp->name);
-                           dp->name = savestring (buffer, o - buffer);
-                         }
-                     }
-@@ -580,7 +580,7 @@ expand_deps (struct file *f)
-           if (d1->file == 0)
-             d1->file = enter_file (d1->name);
-           else
--            free (d1->name);
-+            hash_strfree (d1->name);
-           d1->name = 0;
-           d1->staticpattern = 0;
-           d1->need_2nd_expansion = 0;
-Only in make-3.81: file.c~
-diff -Bburpd make-3.81_orig/implicit.c make-3.81/implicit.c
---- make-3.81_orig/implicit.c  2006-05-23 13:59:11.000000000 +0200
-+++ make-3.81/implicit.c       2006-05-23 14:40:01.000000000 +0200
-@@ -864,7 +864,7 @@ pattern_search (struct file *file, int a
-             dep->file = enter_file (dep->name);
-               /* enter_file uses dep->name _if_ we created a new file.  */
-               if (dep->name != dep->file->name)
--                free (dep->name);
-+                hash_strfree (dep->name);
-             dep->name = 0;
-             dep->file->tried_implicit |= dep->changed;
-           }
-Only in make-3.81: implicit.c~
-diff -Bburpd make-3.81_orig/main.c make-3.81/main.c
---- make-3.81_orig/main.c      2006-05-23 13:59:11.000000000 +0200
-+++ make-3.81/main.c   2006-05-23 14:40:49.000000000 +0200
-@@ -540,6 +540,7 @@ initialize_global_hash_tables (void)
-   init_hash_files ();
-   hash_init_directories ();
-   hash_init_function_table ();
-+  init_hash_strings ();
- }
- static struct file *
-Only in make-3.81: main.c~
-diff -Bburpd make-3.81_orig/make.h make-3.81/make.h
---- make-3.81_orig/make.h      2006-05-23 13:59:11.000000000 +0200
-+++ make-3.81/make.h   2006-05-23 14:41:21.000000000 +0200
-@@ -431,6 +431,11 @@ extern void print_spaces PARAMS ((unsign
- extern char *find_percent PARAMS ((char *));
- extern FILE *open_tmpfile PARAMS ((char **, const char *));
-+extern void init_hash_strings PARAMS ((void));
-+extern char *hash_strdup PARAMS ((const char *));
-+extern char *hash_savestring PARAMS ((const char *, unsigned int));
-+extern void hash_strfree PARAMS ((char *));
-+
- #ifndef NO_ARCHIVES
- extern int ar_name PARAMS ((char *));
- extern void ar_parse_name PARAMS ((char *, char **, char **));
-Only in make-3.81: make.h~
-diff -Bburpd make-3.81_orig/misc.c make-3.81/misc.c
---- make-3.81_orig/misc.c      2006-05-23 13:59:11.000000000 +0200
-+++ make-3.81/misc.c   2006-05-23 14:42:59.000000000 +0200
-@@ -16,8 +16,10 @@ You should have received a copy of the G
- GNU Make; see the file COPYING.  If not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
-+#include <assert.h>
- #include "make.h"
- #include "dep.h"
-+#include "hash.h"
- #include "debug.h"
- /* Variadic functions.  We go through contortions to allow proper function
-@@ -511,7 +513,7 @@ void
- free_dep (struct dep *d)
- {
-   if (d->name != 0)
--    free (d->name);
-+    hash_strfree (d->name);
-   if (d->stem != 0)
-     free (d->stem);
-@@ -535,7 +537,7 @@ copy_dep_chain (const struct dep *d)
-       bcopy ((char *) d, (char *) c, sizeof (struct dep));
-       if (c->name != 0)
--      c->name = xstrdup (c->name);
-+      c->name = hash_strdup (c->name);
-       if (c->stem != 0)
-       c->stem = xstrdup (c->stem);
-@@ -909,3 +911,154 @@ close_stdout (void)
-       exit (EXIT_FAILURE);
-     }
- }
-+
-+/* Hash table of duplicated strings.  */
-+
-+struct hash_string
-+{
-+  char *string;
-+  unsigned int count;
-+};
-+
-+static unsigned long
-+string_hash_1 (key)
-+    const void *key;
-+{
-+  return_ISTRING_HASH_1 (((const struct hash_string *) key)->string);
-+}
-+
-+static unsigned long
-+string_hash_2 (key)
-+    const void *key;
-+{
-+  return_ISTRING_HASH_2 (((const struct hash_string *) key)->string);
-+}
-+
-+static int
-+string_hash_cmp (x, y)
-+    const void *x;
-+    const void *y;
-+{
-+  return_ISTRING_COMPARE (((const struct hash_string *) x)->string,
-+                        ((const struct hash_string *) y)->string);
-+}
-+
-+static struct hash_table strings;
-+
-+void
-+init_hash_strings ()
-+{
-+  hash_init (&strings, 1000, string_hash_1, string_hash_2,
-+           string_hash_cmp);
-+}
-+
-+/* Keep track duplicated string and return the old one if exists.  */
-+
-+char *
-+hash_strdup (ptr)
-+     const char *ptr;
-+{
-+  struct hash_string *h, key;
-+
-+  if (*ptr == '\0')
-+    return "";
-+
-+  key.string = (char *) ptr;
-+  key.count = 0;
-+  h = (struct hash_string *) hash_find_item (&strings, &key);
-+  if (h == NULL)
-+    {
-+      char *result = (char *) malloc (strlen (ptr) + 1);
-+
-+      if (result == NULL)
-+      fatal (NILF, _("virtual memory exhausted"));
-+
-+      strcpy (result, ptr);
-+
-+      h = (struct hash_string *) malloc (sizeof (struct hash_string));
-+      if (h == NULL)
-+      fatal (NILF, _("virtual memory exhausted"));
-+
-+      h->string = result;
-+      h->count = 1;
-+      hash_insert (&strings, h);
-+    }
-+  else
-+    {
-+      h->count++;
-+      assert (h->count != 0);
-+    }
-+
-+  return h->string;
-+}
-+
-+char *
-+hash_savestring (str, length)
-+     const char *str;
-+     unsigned int length;
-+{
-+  struct hash_string *h, key;
-+
-+  if (length == 0 || *str == '\0')
-+    return "";
-+
-+  key.string = alloca (length + 1);
-+  key.count = 0;
-+  bcopy (str, key.string, length);
-+  key.string [length] = '\0';
-+
-+  h = (struct hash_string *) hash_find_item (&strings, &key);
-+  if (h == NULL)
-+    {
-+      char *out = (char *) xmalloc (length + 1);
-+      bcopy (str, out, length);
-+      out[length] = '\0';
-+
-+      h = (struct hash_string *) malloc (sizeof (struct hash_string));
-+      if (h == NULL)
-+      fatal (NILF, _("virtual memory exhausted"));
-+
-+      h->string = out;
-+      h->count = 1;
-+      hash_insert (&strings, h);
-+    }
-+  else
-+    {
-+      h->count++;
-+      assert (h->count != 0);
-+    }
-+
-+  return h->string;
-+}
-+
-+void
-+hash_strfree (ptr)
-+     char *ptr;
-+{
-+  struct hash_string *h, key;
-+
-+  if (*ptr == '\0')
-+    return;
-+
-+  key.string = ptr;
-+  key.count = 0;
-+  h = (struct hash_string *) hash_find_item (&strings, &key);
-+
-+  /* Check if string comes from hash_strdup or hash_savestring.  */
-+  if (h == NULL || h->string != ptr)
-+    {
-+      free (ptr);
-+      return;
-+    }
-+
-+  h->count--;
-+  if (h->count == 0)
-+    {
-+      struct hash_string *d;
-+
-+      d = hash_delete (&strings, h);
-+      assert (d == h);
-+      free (h->string);
-+      free (h);
-+    }
-+}
-Only in make-3.81: misc.c~
-Only in make-3.81: read.c~
diff --git a/make/patches/make-3.81-newlines.patch b/make/patches/make-3.81-newlines.patch
deleted file mode 100644 (file)
index d9bb313..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
---- make-3.81-orig/job.c       2007-02-21 19:10:54.000000000 +0100
-+++ make-3.81-pm/job.c 2007-02-22 18:13:59.000000000 +0100
-@@ -2706,7 +2706,7 @@
-     unsigned int line_len = strlen (line);
-     char *new_line = (char *) alloca (shell_len + (sizeof (minus_c) - 1)
--                                    + (line_len * 2) + 1);
-+                                    + (line_len * 4) + 1);
-     char *command_ptr = NULL; /* used for batch_mode_shell mode */
- # ifdef __EMX__ /* is this necessary? */
-@@ -2740,9 +2740,10 @@
- #endif
-           if (PRESERVE_BSNL)
-             {
--              *(ap++) = '\\';
-+              *(ap++) = '\'';
-               *(ap++) = '\\';
-               *(ap++) = '\n';
-+              *(ap++) = '\'';
-             }
-           ++p;
diff --git a/make/patches/make-3.81-rlimit.patch b/make/patches/make-3.81-rlimit.patch
deleted file mode 100644 (file)
index f88f0fe..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-diff -urp make-3.81/job.c make-3.81-pm/job.c
---- make-3.81/job.c    2008-03-25 18:15:38.000000000 +0100
-+++ make-3.81-pm/job.c 2008-03-25 17:51:11.000000000 +0100
-@@ -2079,6 +2079,9 @@ exec_command (char **argv, char **envp)
- # else
-   /* Run the program.  */
-+#ifdef SET_STACK_SIZE
-+  restore_original_stack_rlimit ();
-+#endif
-   environ = envp;
-   execvp (argv[0], argv);
-diff -urp make-3.81/main.c make-3.81-pm/main.c
---- make-3.81/main.c   2008-03-25 18:15:38.000000000 +0100
-+++ make-3.81-pm/main.c        2008-03-25 18:14:04.000000000 +0100
-@@ -44,12 +44,53 @@ Foundation, Inc., 51 Franklin St, Fifth 
- # include <fcntl.h>
- #endif
--#if defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT)
--# define SET_STACK_SIZE
--#endif
--
- #ifdef SET_STACK_SIZE
- # include <sys/resource.h>
-+/* Whether the rlimit was set successfuly */
-+static int setrlimit_succeeded = 0;
-+/* Original rlim_cur */
-+static rlim_t setrlimit_orig_cur = 0;
-+
-+/* Get rid of any avoidable limit on stack size so that alloca does
-+   not fail. */
-+void
-+set_max_stack_rlimit (void)
-+{
-+  struct rlimit rlim;
-+
-+  /* Back off if the limit is still set, probably due to failure in
-+     restore_original_stack_rlimit. */
-+  if (setrlimit_succeeded)
-+    return;
-+
-+  if (getrlimit (RLIMIT_STACK, &rlim) == 0)
-+    {
-+      setrlimit_orig_cur = rlim.rlim_cur;
-+      rlim.rlim_cur = rlim.rlim_max;
-+      if (setrlimit (RLIMIT_STACK, &rlim) != -1)
-+      setrlimit_succeeded = 1;
-+    }
-+}
-+
-+/* Set the rlimit back to its original value.  To be called before
-+   process spawn. */
-+void
-+restore_original_stack_rlimit (void)
-+{
-+  struct rlimit rlim;
-+
-+  if (!setrlimit_succeeded)
-+    return;
-+
-+  if (getrlimit (RLIMIT_STACK, &rlim) == 0)
-+    {
-+      rlim.rlim_cur = setrlimit_orig_cur;
-+      setrlimit (RLIMIT_STACK, &rlim);
-+      /* Don't reset the setrlimit_succeeded flag.  This can be called
-+       after vfork, in which case the flag is in memory shared with
-+       the parent. */
-+    }
-+}
- #endif
- #ifdef _AMIGA
-@@ -915,17 +956,7 @@ main (int argc, char **argv, char **envp
- #endif
- #ifdef SET_STACK_SIZE
-- /* Get rid of any avoidable limit on stack size.  */
--  {
--    struct rlimit rlim;
--
--    /* Set the stack limit huge so that alloca does not fail.  */
--    if (getrlimit (RLIMIT_STACK, &rlim) == 0)
--      {
--        rlim.rlim_cur = rlim.rlim_max;
--        setrlimit (RLIMIT_STACK, &rlim);
--      }
--  }
-+  set_max_stack_rlimit ();
- #endif
- #ifdef HAVE_ATEXIT
-diff -urp make-3.81/make.h make-3.81-pm/make.h
---- make-3.81/make.h   2008-03-25 18:15:38.000000000 +0100
-+++ make-3.81-pm/make.h        2008-03-25 17:51:10.000000000 +0100
-@@ -346,6 +346,13 @@ extern int strcmpi (const char *,const c
- #define N_(msgid)           gettext_noop (msgid)
- #define S_(msg1,msg2,num)   ngettext (msg1,msg2,num)
-+/* Handle rlimit */
-+#if defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT)
-+# define SET_STACK_SIZE
-+void set_max_stack_rlimit (void);
-+void restore_original_stack_rlimit (void);
-+#endif
-+
- /* Handle other OSs.  */
- #if defined(HAVE_DOS_PATHS)
- # define PATH_SEPARATOR_CHAR ';'
-diff -urp make-3.81/w32/Makefile make-3.81-pm/w32/Makefile
diff --git a/make/patches/make-3.81-strcpy-overlap.patch b/make/patches/make-3.81-strcpy-overlap.patch
deleted file mode 100644 (file)
index d045737..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: job.c
-===================================================================
-RCS file: /sources/make/make/job.c,v
-retrieving revision 1.193
-diff -u -r1.193 job.c
---- a/job.c    9 Jun 2009 15:35:38 -0000       1.193
-+++ b/job.c    31 Jul 2009 11:42:16 -0000
-@@ -1600,7 +1600,7 @@
-       /* There are no more references in this line to worry about.
-        Copy the remaining uninteresting text to the output.  */
-       if (out != in)
--      strcpy (out, in);
-+      memmove (out, in, strlen (in) + 1);
-       /* Finally, expand the line.  */
-       lines[i] = allocated_variable_expand_for_file (cmds->command_lines[i],
diff --git a/make/patches/make-4.0-err-reporting.patch b/make/patches/make-4.0-err-reporting.patch
new file mode 100644 (file)
index 0000000..1d24875
--- /dev/null
@@ -0,0 +1,156 @@
+diff -Nrup a/job.c b/job.c
+--- a/job.c    2013-10-05 19:12:24.000000000 -0400
++++ b/job.c    2014-02-03 18:15:48.681085207 -0500
+@@ -1020,7 +1020,7 @@ free_child (struct child *child)
+       EINTRLOOP (r, write (job_fds[1], &token, 1));
+       if (r != 1)
+-        pfatal_with_name (_("write jobserver"));
++        pfatal_with_name_err (_("write jobserver"), errno);
+       DB (DB_JOBS, (_("Released token for child %p (%s).\n"),
+                     child, child->file->name));
+@@ -1956,6 +1956,7 @@ new_job (struct file *file)
+ #else
+         /* Set interruptible system calls, and read() for a job token.  */
+         set_child_handler_action_flags (1, waiting_jobs != NULL);
++        errno = 0;
+         got_token = read (job_rfd, &token, 1);
+         saved_errno = errno;
+         set_child_handler_action_flags (0, waiting_jobs != NULL);
+@@ -1972,10 +1973,14 @@ new_job (struct file *file)
+ #ifndef WINDOWS32
+         /* If the error _wasn't_ expected (EINTR or EBADF), punt.  Otherwise,
+            go back and reap_children(), and try again.  */
+-        errno = saved_errno;
+-        if (errno != EINTR && errno != EBADF)
+-          pfatal_with_name (_("read jobs pipe"));
+-        if (errno == EBADF)
++        if (saved_errno != EINTR && saved_errno != EBADF)
++         {
++           if (got_token == 0)
++             fatal (NILF, _("read jobs pipe EOF"));
++           else
++             pfatal_with_name_err (_("read jobs pipe"), saved_errno);
++         }
++        if (saved_errno == EBADF)
+           DB (DB_JOBS, ("Read returned EBADF.\n"));
+ #endif
+       }
+@@ -2117,7 +2122,9 @@ load_too_high (void)
+             error (NILF,
+                    _("cannot enforce load limits on this operating system"));
+           else
+-            perror_with_name (_("cannot enforce load limit: "), "getloadavg");
++            perror_with_name_err (_("cannot enforce load limit: "),
++                                  "getloadavg", errno);
++
+         }
+       lossage = errno;
+       load = 0;
+diff -Nrup a/main.c b/main.c
+--- a/main.c   2014-02-03 17:49:03.255939340 -0500
++++ b/main.c   2014-02-03 18:06:25.768024183 -0500
+@@ -1580,7 +1580,7 @@ main (int argc, char **argv, char **envp
+                || (job_rfd = dup (job_fds[0])) < 0)
+         {
+           if (errno != EBADF)
+-            pfatal_with_name (_("dup jobserver"));
++            pfatal_with_name_err (_("dup jobserver"), errno);
+           error (NILF,
+                  _("warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."));
+@@ -1787,13 +1787,13 @@ main (int argc, char **argv, char **envp
+             strcat (template, DEFAULT_TMPFILE);
+             outfile = output_tmpfile (&stdin_nm, template);
+             if (outfile == 0)
+-              pfatal_with_name (_("fopen (temporary file)"));
++              pfatal_with_name_err (_("fopen (temporary file)"), errno);
+             while (!feof (stdin) && ! ferror (stdin))
+               {
+                 char buf[2048];
+                 unsigned int n = fread (buf, 1, sizeof (buf), stdin);
+                 if (n > 0 && fwrite (buf, 1, n, outfile) != n)
+-                  pfatal_with_name (_("fwrite (temporary file)"));
++                  pfatal_with_name_err (_("fwrite (temporary file)"), errno);
+               }
+             fclose (outfile);
+@@ -2030,7 +2030,8 @@ main (int argc, char **argv, char **envp
+       char c = '+';
+       if (pipe (job_fds) < 0 || (job_rfd = dup (job_fds[0])) < 0)
+-        pfatal_with_name (_("creating jobs pipe"));
++        pfatal_with_name_err (_("creating jobs pipe"), errno);
++
+ #endif
+       /* Every make assumes that it always has one job it can run.  For the
+@@ -2050,7 +2051,8 @@ main (int argc, char **argv, char **envp
+           EINTRLOOP (r, write (job_fds[1], &c, 1));
+           if (r != 1)
+-            pfatal_with_name (_("init jobserver pipe"));
++            pfatal_with_name_err (_("init jobserver pipe"), errno);
++
+         }
+ #endif
+@@ -2474,7 +2476,7 @@ main (int argc, char **argv, char **envp
+   /* If there is a temp file from reading a makefile from stdin, get rid of
+      it now.  */
+   if (stdin_nm && unlink (stdin_nm) < 0 && errno != ENOENT)
+-    perror_with_name (_("unlink (temporary file): "), stdin_nm);
++    perror_with_name_err (_("unlink (temporary file): "), stdin_nm, errno);
+   /* If there were no command-line goals, use the default.  */
+   if (goals == 0)
+diff -Nrup a/makeint.h b/makeint.h
+--- a/makeint.h        2014-02-03 17:49:03.265939424 -0500
++++ b/makeint.h        2014-02-03 18:09:31.738695318 -0500
+@@ -436,6 +436,8 @@ void fatal (const gmk_floc *flocp, const
+ void die (int) __attribute__ ((noreturn));
+ void pfatal_with_name (const char *) __attribute__ ((noreturn));
+ void perror_with_name (const char *, const char *);
++void pfatal_with_name_err (const char *, int errnum) __attribute__ ((noreturn));
++void perror_with_name_err (const char *, const char *, int errnum);
+ #define xstrlen(_s) ((_s)==NULL ? 0 : strlen (_s))
+ void *xmalloc (unsigned int);
+ void *xcalloc (unsigned int);
+diff -Nrup a/output.c b/output.c
+--- a/output.c 2013-10-05 19:12:24.000000000 -0400
++++ b/output.c 2014-02-03 18:22:48.617908701 -0500
+@@ -746,17 +746,31 @@ fatal (const gmk_floc *flocp, const char
+ /* Print an error message from errno.  */
+ void
++perror_with_name_err (const char *str, const char *name, int errnum)
++{
++  error (NILF, _("%s%s: %s"), str, name, strerror (errnum));
++}
++
++void
+ perror_with_name (const char *str, const char *name)
+ {
+-  error (NILF, _("%s%s: %s"), str, name, strerror (errno));
++  perror_with_name_err (str, name, errno);
+ }
+ /* Print an error message from errno and exit.  */
+ void
++pfatal_with_name_err (const char *name, int errnum)
++{
++  fatal (NILF, _("%s: %s"), name, strerror (errnum));
++
++  /* NOTREACHED */
++}
++
++void
+ pfatal_with_name (const char *name)
+ {
+-  fatal (NILF, _("%s: %s"), name, strerror (errno));
++  pfatal_with_name_err (name, errno);
+   /* NOTREACHED */
+ }
diff --git a/make/patches/make-4.0-getcwd.patch b/make/patches/make-4.0-getcwd.patch
new file mode 100644 (file)
index 0000000..c0bb459
--- /dev/null
@@ -0,0 +1,12 @@
+diff -Nrup a/makeint.h b/makeint.h
+--- a/makeint.h        2013-10-09 00:22:40.000000000 -0400
++++ b/makeint.h        2014-02-03 17:46:24.969618708 -0500
+@@ -528,7 +528,7 @@ long int lseek ();
+ #endif  /* Not GNU C library or POSIX.  */
+ #ifdef  HAVE_GETCWD
+-# if !defined(VMS) && !defined(__DECC)
++# if !defined(VMS) && !defined(__DECC) && !defined(getcwd)
+ char *getcwd ();
+ # endif
+ #else
similarity index 57%
rename from make/patches/make-3.80-j8k.patch
rename to make/patches/make-4.0-j8k.patch
index 1acd4f9709f02b7186b400caeda4a48e5c9881b4..2ebcc5b5a05016ca558b9b94de902bb04638d41e 100644 (file)
@@ -1,8 +1,9 @@
---- make-3.80/main.c.jj        2002-08-09 21:27:17.000000000 -0400
-+++ make-3.80/main.c   2004-12-13 12:48:25.000000000 -0500
-@@ -1549,6 +1549,20 @@ int main (int argc, char ** argv)
-       }
-   }
+diff -Nrup a/main.c b/main.c
+--- a/main.c   2013-10-09 00:22:40.000000000 -0400
++++ b/main.c   2014-02-03 17:18:04.238609236 -0500
+@@ -1987,6 +1987,20 @@ main (int argc, char **argv, char **envp
+     }
+ #endif
  
 +#ifdef PIPE_BUF
 +  if (job_slots > PIPE_BUF)
 +#endif
 +    {
 +      error (NILF,
-+           _("More parallel jobs (-jN) than this platform can handle requested."));
++            _("More parallel jobs (-jN) than this platform can handle requested."));
 +      error (NILF, _("Resetting to single job (-j1) mode."));
 +      job_slots = 1;
 +    }
 +
+ #ifdef MAKE_JOBSERVER
    /* If we have >1 slot but no jobserver-fds, then we're a top-level make.
       Set up the pipe and install the fds option for our children.  */
diff --git a/make/patches/make-4.0-newlines.patch b/make/patches/make-4.0-newlines.patch
new file mode 100644 (file)
index 0000000..add32c5
--- /dev/null
@@ -0,0 +1,19 @@
+diff -Nrup a/job.c b/job.c
+--- a/job.c    2014-02-03 18:23:45.936436714 -0500
++++ b/job.c    2014-02-04 00:17:53.232074893 -0500
+@@ -3269,13 +3269,14 @@ construct_command_argv_internal (char *l
+ #endif
+             if (PRESERVE_BSNL)
+               {
+-                *(ap++) = '\\';
++                *(ap++) = '\'';
+                 /* Only non-batch execution needs another backslash,
+                    because it will be passed through a recursive
+                    invocation of this function.  */
+                 if (!batch_mode_shell)
+                   *(ap++) = '\\';
+                 *(ap++) = '\n';
++                *(ap++) = '\'';
+               }
+             ++p;
+             continue;
diff --git a/make/patches/make-4.0-noclock_gettime.patch b/make/patches/make-4.0-noclock_gettime.patch
new file mode 100644 (file)
index 0000000..f63e1fc
--- /dev/null
@@ -0,0 +1,14 @@
+diff -up make-3.82/configure\~ make-3.82/configure
+--- make-3.82/configure~       2010-07-28 07:41:51.000000000 +0200
++++ make-3.82/configure        2010-08-11 15:07:50.000000000 +0200
+@@ -7215,7 +7215,7 @@ return clock_gettime ();
+   return 0;
+ }
+ _ACEOF
+-for ac_lib in '' rt posix4; do
++for ac_lib in '' posix4; do
+   if test -z "$ac_lib"; then
+     ac_res="none required"
+   else
+
+Diff finished.  Wed Aug 11 15:07:59 2010
diff --git a/make/patches/make-4.0-weird-shell.patch b/make/patches/make-4.0-weird-shell.patch
new file mode 100644 (file)
index 0000000..dfdaf89
--- /dev/null
@@ -0,0 +1,16 @@
+diff -up make-3.82/job.c\~ make-3.82/job.c
+--- make-3.82/job.c~   2010-08-11 16:13:33.000000000 +0200
++++ make-3.82/job.c    2010-08-12 14:20:08.000000000 +0200
+@@ -2442,7 +2442,11 @@ construct_command_argv_internal (char *l
+   /* See if it is safe to parse commands internally.  */
+   if (shell == 0)
+-    shell = default_shell;
++    {
++      shell = default_shell;
++      if (shellflags == 0)
++      shellflags = "-c";
++    }
+ #ifdef WINDOWS32
+   else if (strcmp (shell, default_shell))
+   {
index 7b3f9186238b2afc826ace9ef3cde1a908ebc17a..7528b1d42f2793535310007bc6469e99c7f6e54b 100644 (file)
@@ -5,7 +5,9 @@
 
 name       = ncurses
 version    = 5.9
-release    = 9
+revision   = 20150117
+release    = 10.%{revision}
+thisapp    = %{name}-%{version}-%{revision}
 
 groups     = System/Base
 url        = http://invisible-island.net/ncurses/ncurses.html
@@ -19,7 +21,8 @@ description
        discontinued 4.4 BSD classic curses library.
 end
 
-source_dl  =
+source_dl  = ftp://invisible-island.net/ncurses/current/
+sources    = %{thisapp}.tgz
 
 build
        requires
index 25880615effdc8a5d60f16c5130c2e0603963526..eaaea2f05453a6b1be79c5cece2189e9e70b0c26 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = openldap
-version    = 2.4.32
-release    = 5
+version    = 2.4.40
+release    = 1
 
 groups     = System/Daemons
 url        = http://www.openldap.org/
@@ -26,6 +26,7 @@ sources    = %{thisapp}.tgz
 
 build
        requires
+               automake
                db4-devel
                cyrus-sasl-devel
                groff
@@ -56,6 +57,11 @@ build
 
        prepare_cmds
                %{create_user}
+
+               # for aarch64
+               for i in $(find . -name config.guess -or -name config.sub); do
+                       cp -vf %{datadir}/automake-*/config.{guess,sub} $(dirname ${i})
+               done
        end
 
        install_cmds
index 92de3e92afd8cf77b4ae2e74ecf4128e89830209..56eb33cee42a9e17fad32661298c11e395f546b4 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = popt
-version    = 1.15
-release    = 3
+version    = 1.16
+release    = 1
 
 groups     = System/Libraries
 url        = http://www.rpm5.org/
@@ -18,7 +18,19 @@ description
        it improves on them by allowing more powerful argument expansion.
 end
 
-source_dl  =
+source_dl  = http://rpm5.org/files/popt/
+
+build
+       requires
+               automake
+       end
+
+       prepare_cmds
+               for i in $(find . -name config.guess -or -name config.sub); do
+                       cp -vf %{datadir}/automake-*/config.{guess,sub} $(dirname ${i})
+               done
+       end
+end
 
 packages
        package %{name}
index e86a9ff32094772f3d982f90476e1b1d3a5c55f9..805ea84fa12215728b838c220cba83d26e9586a1 100644 (file)
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = psmisc
-version    = 22.19
+version    = 22.21
 release    = 1
 
 groups     = Applications/System
diff --git a/readline/patches/readline-6.1-audit.patch b/readline/patches/readline-6.1-audit.patch
deleted file mode 100644 (file)
index 38f8adf..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-diff -up readline-6.1/config.h.in.audit readline-6.1/config.h.in
---- readline-6.1/config.h.in.audit     2009-03-10 15:57:45.000000000 +0100
-+++ readline-6.1/config.h.in   2011-01-18 15:14:51.199219895 +0100
-@@ -29,6 +29,9 @@
- #undef __CHAR_UNSIGNED__
-+/* Define if you have <linux/audit.h> and it defines AUDIT_USER_TTY */
-+#undef HAVE_DECL_AUDIT_USER_TTY
-+
- /* Define if the `S_IS*' macros in <sys/stat.h> do not work properly.  */
- #undef STAT_MACROS_BROKEN
-diff -up readline-6.1/configure.audit readline-6.1/configure
---- readline-6.1/configure.audit       2009-12-29 23:33:49.000000000 +0100
-+++ readline-6.1/configure     2011-01-18 15:21:20.571330373 +0100
-@@ -6602,7 +6602,9 @@ _ACEOF
- fi
--
-+cat >>confdefs.h <<_ACEOF
-+#define HAVE_DECL_AUDIT_USER_TTY 1
-+_ACEOF
- { $as_echo "$as_me:$LINENO: checking if signal handlers must be reinstalled when invoked" >&5
- $as_echo_n "checking if signal handlers must be reinstalled when invoked... " >&6; }
-diff -up readline-6.1/configure.in.audit readline-6.1/configure.in
---- readline-6.1/configure.in.audit    2009-10-12 16:12:15.000000000 +0200
-+++ readline-6.1/configure.in  2011-01-18 15:14:51.199219895 +0100
-@@ -159,6 +159,8 @@ AC_CHECK_HEADERS(sys/ptem.h,,,
- AC_SYS_LARGEFILE
-+AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include <linux/audit.h>]])
-+
- BASH_SYS_SIGNAL_VINTAGE
- BASH_SYS_REINSTALL_SIGHANDLERS
-diff -up readline-6.1/readline.c.audit readline-6.1/readline.c
---- readline-6.1/readline.c.audit      2009-08-31 14:45:31.000000000 +0200
-+++ readline-6.1/readline.c    2011-01-18 15:14:51.200219841 +0100
-@@ -55,6 +55,12 @@
- extern int errno;
- #endif /* !errno */
-+#if defined (HAVE_DECL_AUDIT_USER_TTY)
-+#  include <sys/socket.h>
-+#  include <linux/audit.h>
-+#  include <linux/netlink.h>
-+#endif
-+
- /* System-specific feature definitions and include files. */
- #include "rldefs.h"
- #include "rlmbutil.h"
-@@ -301,7 +307,47 @@ rl_set_prompt (prompt)
-   rl_visible_prompt_length = rl_expand_prompt (rl_prompt);
-   return 0;
- }
--  
-+
-+#if defined (HAVE_DECL_AUDIT_USER_TTY)
-+/* Report STRING to the audit system. */
-+static void
-+audit_tty (char *string)
-+{
-+  struct sockaddr_nl addr;
-+  struct msghdr msg;
-+  struct nlmsghdr nlm;
-+  struct iovec iov[2];
-+  size_t size;
-+  int fd;
-+
-+  size = strlen (string) + 1;
-+  fd = socket (AF_NETLINK, SOCK_RAW, NETLINK_AUDIT);
-+  if (fd < 0)
-+    return;
-+  nlm.nlmsg_len = NLMSG_LENGTH (size);
-+  nlm.nlmsg_type = AUDIT_USER_TTY;
-+  nlm.nlmsg_flags = NLM_F_REQUEST;
-+  nlm.nlmsg_seq = 0;
-+  nlm.nlmsg_pid = 0;
-+  iov[0].iov_base = &nlm;
-+  iov[0].iov_len = sizeof (nlm);
-+  iov[1].iov_base = string;
-+  iov[1].iov_len = size;
-+  addr.nl_family = AF_NETLINK;
-+  addr.nl_pid = 0;
-+  addr.nl_groups = 0;
-+  msg.msg_name = &addr;
-+  msg.msg_namelen = sizeof (addr);
-+  msg.msg_iov = iov;
-+  msg.msg_iovlen = 2;
-+  msg.msg_control = NULL;
-+  msg.msg_controllen = 0;
-+  msg.msg_flags = 0;
-+  (void)sendmsg (fd, &msg, 0);
-+  close (fd);
-+}
-+#endif
-+
- /* Read a line of input.  Prompt with PROMPT.  An empty PROMPT means
-    none.  A return value of NULL means that EOF was encountered. */
- char *
-@@ -352,6 +398,11 @@ readline (prompt)
-     RL_SETSTATE (RL_STATE_CALLBACK);
- #endif
-+#if defined (HAVE_DECL_AUDIT_USER_TTY)
-+  if (value != NULL)
-+    audit_tty (value);
-+#endif
-+
-   return (value);
- }
diff --git a/readline/patches/readline-6.2-shlib.patch b/readline/patches/readline-6.2-shlib.patch
deleted file mode 100644 (file)
index 914b260..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-diff -up readline-6.2/shlib/Makefile.in.shlib readline-6.2/shlib/Makefile.in
---- readline-6.2/shlib/Makefile.in.shlib       2010-12-28 21:56:21.000000000 +0100
-+++ readline-6.2/shlib/Makefile.in     2011-02-14 17:34:38.821537496 +0100
-@@ -170,7 +170,7 @@ $(SHARED_READLINE):        $(SHARED_OBJ)
- $(SHARED_HISTORY):    $(SHARED_HISTOBJ) xmalloc.so xfree.so
-       $(RM) $@
--      $(SHOBJ_LD) ${SHOBJ_LDFLAGS} ${SHLIB_XLDFLAGS} -o $@ $(SHARED_HISTOBJ) xmalloc.so xfree.so $(SHLIB_LIBS)
-+      $(SHOBJ_LD) ${SHOBJ_LDFLAGS} ${SHLIB_XLDFLAGS} -o $@ $(SHARED_HISTOBJ) xmalloc.so xfree.so
- # Since tilde.c is shared between readline and bash, make sure we compile 
- # it with the right flags when it's built as part of readline
-diff -up readline-6.2/support/shlib-install.shlib readline-6.2/support/shlib-install
---- readline-6.2/support/shlib-install.shlib   2009-10-28 14:30:18.000000000 +0100
-+++ readline-6.2/support/shlib-install 2011-02-14 17:33:07.611768164 +0100
-@@ -72,7 +72,7 @@ fi
- case "$host_os" in
- hpux*|darwin*|macosx*|linux*)
-       if [ -z "$uninstall" ]; then
--              chmod 555 ${INSTALLDIR}/${LIBNAME}
-+              chmod 755 ${INSTALLDIR}/${LIBNAME}
-       fi ;;
- cygwin*|mingw*)
-       IMPLIBNAME=`echo ${LIBNAME} \
-diff -up readline-6.2/support/shobj-conf.shlib readline-6.2/support/shobj-conf
---- readline-6.2/support/shobj-conf.shlib      2009-10-28 14:20:21.000000000 +0100
-+++ readline-6.2/support/shobj-conf    2011-02-14 17:33:07.612767986 +0100
-@@ -112,10 +112,11 @@ sunos5*|solaris2*)
- linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo)
-       SHOBJ_CFLAGS=-fPIC
-       SHOBJ_LD='${CC}'
--      SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
-+      SHOBJ_LDFLAGS='$(CFLAGS) -shared -Wl,-soname,$@'
--      SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
-+      SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
-       SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
-+      SHLIB_LIBS='-ltinfo'
-       ;;
- freebsd2*)
index 4b8c226bd36b1976a69746c489f4fd8229fc78bc..70f40cd720b7969d671cb5ce0564084266442432 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = readline
-version    = 6.2
-release    = 6
+version    = 6.3
+release    = 1
 
 groups     = System/Libraries
 url        = ftp://ftp.gnu.org/gnu/readline/
diff --git a/shadow-utils/patches/shadow-4.1.4.2-ipfire.patch b/shadow-utils/patches/shadow-4.1.4.2-ipfire.patch
deleted file mode 100644 (file)
index e15eeb2..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-diff -Nur shadow-4.1.4.2_orig/libmisc/find_new_gid.c shadow-4.1.4.2/libmisc/find_new_gid.c
---- shadow-4.1.4.2_orig/libmisc/find_new_gid.c 2009-07-17 23:53:42.000000000 +0000
-+++ shadow-4.1.4.2/libmisc/find_new_gid.c      2009-08-03 18:16:37.000000000 +0000
-@@ -58,11 +58,11 @@
-       assert (gid != NULL);
-       if (!sys_group) {
--              gid_min = (gid_t) getdef_ulong ("GID_MIN", 1000UL);
-+              gid_min = (gid_t) getdef_ulong ("GID_MIN", 500UL);
-               gid_max = (gid_t) getdef_ulong ("GID_MAX", 60000UL);
-       } else {
-               gid_min = (gid_t) getdef_ulong ("SYS_GID_MIN", 101UL);
--              gid_max = (gid_t) getdef_ulong ("GID_MIN", 1000UL) - 1;
-+              gid_max = (gid_t) getdef_ulong ("GID_MIN", 500UL) - 1;
-               gid_max = (gid_t) getdef_ulong ("SYS_GID_MAX", (unsigned long) gid_max);
-       }
-       used_gids = alloca (sizeof (bool) * (gid_max +1));
-diff -Nur shadow-4.1.4.2_orig/libmisc/find_new_uid.c shadow-4.1.4.2/libmisc/find_new_uid.c
---- shadow-4.1.4.2_orig/libmisc/find_new_uid.c 2009-07-17 23:53:43.000000000 +0000
-+++ shadow-4.1.4.2/libmisc/find_new_uid.c      2009-08-03 18:17:20.000000000 +0000
-@@ -58,11 +58,11 @@
-       assert (uid != NULL);
-       if (!sys_user) {
--              uid_min = (uid_t) getdef_ulong ("UID_MIN", 1000UL);
-+              uid_min = (uid_t) getdef_ulong ("UID_MIN", 500UL);
-               uid_max = (uid_t) getdef_ulong ("UID_MAX", 60000UL);
-       } else {
-               uid_min = (uid_t) getdef_ulong ("SYS_UID_MIN", 101UL);
--              uid_max = (uid_t) getdef_ulong ("UID_MIN", 1000UL) - 1;
-+              uid_max = (uid_t) getdef_ulong ("UID_MIN", 500UL) - 1;
-               uid_max = (uid_t) getdef_ulong ("SYS_UID_MAX", (unsigned long) uid_max);
-       }
-       used_uids = alloca (sizeof (bool) * (uid_max +1));
-diff -Nur shadow-4.1.4.2_orig/src/useradd.c shadow-4.1.4.2/src/useradd.c
---- shadow-4.1.4.2_orig/src/useradd.c  2009-06-05 22:16:58.000000000 +0000
-+++ shadow-4.1.4.2/src/useradd.c       2009-08-03 18:26:31.000000000 +0000
-@@ -90,7 +90,7 @@
- static gid_t def_group = 100;
- static const char *def_gname = "other";
- static const char *def_home = "/home";
--static const char *def_shell = "";
-+static const char *def_shell = "/sbin/nologin";
- static const char *def_template = SKEL_DIR;
- static const char *def_create_mail_spool = "no";
-@@ -102,7 +102,7 @@
- #define       VALID(s)        (strcspn (s, ":\n") == strlen (s))
- static const char *user_name = "";
--static const char *user_pass = "!";
-+static const char *user_pass = "!!";
- static uid_t user_id;
- static gid_t user_gid;
- static const char *user_comment = "";
-@@ -989,9 +989,9 @@
-               };
-               while ((c = getopt_long (argc, argv,
- #ifdef WITH_SELINUX
--                                       "b:c:d:De:f:g:G:k:K:lmMNop:rs:u:UZ:",
-+                                       "b:c:d:De:f:g:G:k:K:lmMnNop:rs:u:UZ:",
- #else
--                                       "b:c:d:De:f:g:G:k:K:lmMNop:rs:u:U",
-+                                       "b:c:d:De:f:g:G:k:K:lmMnNop:rs:u:U",
- #endif
-                                        long_options, NULL)) != -1) {
-                       switch (c) {
-@@ -1141,6 +1141,7 @@
-                       case 'M':
-                               Mflg = true;
-                               break;
-+                      case 'n':
-                       case 'N':
-                               Nflg = true;
-                               break;
diff --git a/shadow-utils/patches/shadow-4.1.4.3-goodname.patch b/shadow-utils/patches/shadow-4.1.4.3-goodname.patch
deleted file mode 100644 (file)
index fe49765..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-diff -Nur shadow-4.1.4.2_orig/libmisc/chkname.c shadow-4.1.4.2/libmisc/chkname.c
---- shadow-4.1.4.2_orig/libmisc/chkname.c      2009-04-28 19:14:04.000000000 +0000
-+++ shadow-4.1.4.2/libmisc/chkname.c   2009-08-03 18:47:59.000000000 +0000
-@@ -49,21 +49,29 @@
- static bool is_valid_name (const char *name)
- {
-       /*
--       * User/group names must match [a-z_][a-z0-9_-]*[$]
--       */
--      if (('\0' == *name) ||
--          !((('a' <= *name) && ('z' >= *name)) || ('_' == *name))) {
-+      * User/group names must match gnu e-regex:
-+      *    [a-zA-Z0-9_.][a-zA-Z0-9_.-]{0,30}[a-zA-Z0-9_.$-]?
-+      *
-+      * as a non-POSIX, extension, allow "$" as the last char for
-+      * sake of Samba 3.x "add machine script"
-+      */
-+      if ( ('\0' == *name) ||
-+              !((*name >= 'a' && *name <= 'z') ||
-+                (*name >= 'A' && *name <= 'Z') ||
-+                (*name >= '0' && *name <= '9') ||
-+                (*name == '_') || (*name == '.') 
-+      )) {
-               return false;
-       }
-       while ('\0' != *++name) {
--              if (!(( ('a' <= *name) && ('z' >= *name) ) ||
--                    ( ('0' <= *name) && ('9' >= *name) ) ||
--                    ('_' == *name) ||
--                    ('-' == *name) ||
--                    ( ('$' == *name) && ('\0' == *(name + 1)) )
--                   )) {
--                      return false;
-+              if (!(  (*name >= 'a' && *name <= 'z') ||
-+                      (*name >= 'A' && *name <= 'Z') ||
-+                      (*name >= '0' && *name <= '9') ||
-+                      (*name == '_') || (*name == '.') || (*name == '-') ||
-+                      (*name == '$' && *(name + 1) == '\0') 
-+              )) {
-+              return false;
-               }
-       }
-diff -Nur shadow-4.1.4.2_orig/man/groupadd.8 shadow-4.1.4.2/man/groupadd.8
---- shadow-4.1.4.2_orig/man/groupadd.8 2009-07-24 01:16:24.000000000 +0000
-+++ shadow-4.1.4.2/man/groupadd.8      2009-08-03 18:51:10.000000000 +0000
-@@ -153,9 +153,7 @@
- .RE
- .SH "CAVEATS"
- .PP
--Groupnames must start with a lower case letter or an underscore, followed by lower case letters, digits, underscores, or dashes\&. They can end with a dollar sign\&. In regular expression terms: [a\-z_][a\-z0\-9_\-]*[$]?
--.PP
--Groupnames may only be up to characters long\&.
-+Groupnames may only be up to 32 characters long\&.
- .PP
- You may not add a NIS or LDAP group\&. This must be performed on the corresponding server\&.
- .PP
-diff -Nur shadow-4.1.4.2_orig/man/useradd.8 shadow-4.1.4.2/man/useradd.8
---- shadow-4.1.4.2_orig/man/useradd.8  2009-07-24 01:16:44.000000000 +0000
-+++ shadow-4.1.4.2/man/useradd.8       2009-08-03 18:51:52.000000000 +0000
-@@ -405,8 +405,6 @@
- \fBuseradd\fR
- will deny the user account creation request\&.
- .PP
--Usernames must start with a lower case letter or an underscore, followed by lower case letters, digits, underscores, or dashes\&. They can end with a dollar sign\&. In regular expression terms: [a\-z_][a\-z0\-9_\-]*[$]?
--.PP
- Usernames may only be up to 32 characters long\&.
- .SH "CONFIGURATION"
- .PP
index 1607b5ec4123a93a605a26a39c3b1ec0d7f2fd3b..f2a88f8530f9a238a58ba677b0744304420cdf3d 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = shadow-utils
-version    = 4.1.4.3
-release    = 7
+version    = 4.2.1
+release    = 2
 thisapp    = shadow-%{version}
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
@@ -21,23 +21,31 @@ description
 end
 
 source_dl  = http://pkg-shadow.alioth.debian.org/releases/
-sources    = %{thisapp}.tar.bz2
+sources    = %{thisapp}.tar.xz
 
 build
        requires
                audit-devel
+               bison
+               flex
+               libacl-devel
+               libattr-devel
                libcap-devel
                libselinux-devel
+               libsemanage-devel
        end
 
        configure_options += \
-               --sysconfdir=/etc \
                --enable-shadowgrp \
                --with-sha-crypt \
                --with-selinux \
                --without-libcrack \
                --without-libpam \
-               --disable-static
+               --disable-static \
+               --with-group-name-max-length=32
+
+       # Generating man pages requires gnome-doc-utils
+       configure_options += --disable-man
 
        prepare_cmds
                # Do not build these files:
diff --git a/slang/patches/slang-2.1.4-makefile.patch b/slang/patches/slang-2.1.4-makefile.patch
deleted file mode 100644 (file)
index 2e194a3..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-diff -up slang-2.1.4/autoconf/Makefile.in.makefile slang-2.1.4/autoconf/Makefile.in
---- slang-2.1.4/autoconf/Makefile.in.makefile  2008-09-06 06:29:27.000000000 +0200
-+++ slang-2.1.4/autoconf/Makefile.in   2008-09-08 13:18:42.000000000 +0200
-@@ -32,8 +32,7 @@ help:
-       @echo "make check : Build the library and run the regression tests"
- static: makefiles
-       cd src; $(MAKE) static
--      cd slsh; $(MAKE) all
--elf: makefiles
-+elf: makefiles static
-       cd src; $(MAKE) elf
-       cd slsh; $(MAKE) all
-       cd modules; $(MAKE) all
-diff -up slang-2.1.4/modules/Makefile.in.makefile slang-2.1.4/modules/Makefile.in
---- slang-2.1.4/modules/Makefile.in.makefile   2008-08-25 01:57:48.000000000 +0200
-+++ slang-2.1.4/modules/Makefile.in    2008-09-08 13:18:42.000000000 +0200
-@@ -53,7 +53,7 @@ SOCKET_LIBS = @X_EXTRA_LIBS@
- MODULE_INSTALL_DIR = @libdir@/slang/v@slang_major_version@/modules
- INSTALL               = @INSTALL@
- INSTALL_DATA  = @INSTALL_DATA@
--INSTALL_MODULE        = @INSTALL_MODULE@
-+INSTALL_MODULE        = @INSTALL@
- MKINSDIR      = ../autoconf/mkinsdir.sh
- SLSH_DIR      = $(prefix)/share/slsh
- CMAPS_DIR     = $(SLSH_DIR)/cmaps
-@@ -67,7 +67,7 @@ DEST_SLSH_DIR        = $(DESTDIR)$(SLSH_DIR)
- DEST_CMAPSDIR = $(DESTDIR)$(CMAPS_DIR)
- DEST_HELPDIR  = $(DESTDIR)$(HELP_DIR)
- #---------------------------------------------------------------------------
--RPATH = @RPATH@
-+RPATH =
- LIBS = $(LDFLAGS) $(RPATH) $(SLANG_LIB) $(DL_LIB) @M_LIB@
- #LIBS = $(RPATH) $(DL_LIB) @M_LIB@
-diff -up slang-2.1.4/slsh/Makefile.in.makefile slang-2.1.4/slsh/Makefile.in
---- slang-2.1.4/slsh/Makefile.in.makefile      2008-08-25 01:57:48.000000000 +0200
-+++ slang-2.1.4/slsh/Makefile.in       2008-09-08 13:21:35.000000000 +0200
-@@ -15,7 +15,7 @@ SLANG_SRCINC = -I@SRCDIR@
- SLANG_SRCLIB  = -L@ELFDIR@
- #---------------------------------------------------------------------------
- OTHER_LIBS    = @TERMCAP@ @DYNAMIC_LINK_LIB@ @LIBS@ @M_LIB@
--RPATH         = @RPATH@
-+RPATH         =
- #----------------------------------------------------------------------------
- INSTALL               = @INSTALL@
- INSTALL_DATA  = @INSTALL_DATA@
-@@ -64,7 +64,7 @@ DEST_SLSH_DOC_DIR= $(DESTDIR)$(SLSH_DOC_
- #----------------------------------------------------------------------------
- @SET_MAKE@
- SHELL = /bin/sh
--INST_LIBS = $(RPATH) $(SLANG_INST_LIB) $(DEST_LIB_DIR) -lslang $(READLINE_LIB) $(OTHER_LIBS)
-+INST_LIBS = $(RPATH) $(DEST_LIB_DIR) $(SLANG_INST_LIB) -lslang $(READLINE_LIB) $(OTHER_LIBS)
- DEFS = -DSLSH_CONF_DIR='"$(SLSH_CONF_DIR)"' -DSLSH_PATH='"$(SLSH_LIB_DIR)"' \
-  -DSLSH_CONF_DIR_ENV='$(SLSH_CONF_DIR_ENV)' -DSLSH_LIB_DIR_ENV='$(SLSH_LIB_DIR_ENV)' \
-  -DSLSH_PATH_ENV='$(SLSH_PATH_ENV)' 
-diff -up slang-2.1.4/src/Makefile.in.makefile slang-2.1.4/src/Makefile.in
---- slang-2.1.4/src/Makefile.in.makefile       2008-09-06 06:16:22.000000000 +0200
-+++ slang-2.1.4/src/Makefile.in        2008-09-08 13:18:42.000000000 +0200
-@@ -139,17 +139,21 @@ UPDATE_VERSION_SCRIPT = $(HOME)/bin/upda
- # Rules
- #---------------------------------------------------------------------------
- all: static elf
--static: $(OBJDIR) $(CONFIG_H) $(OBJDIR_NORMAL_LIB) $(OTHERSTUFF)
--elf: $(ELFDIR) $(CONFIG_H) $(ELFDIR_ELF_LIB)
-+static: $(OBJDIR)/stamp $(CONFIG_H) $(OBJDIR_NORMAL_LIB) $(OTHERSTUFF)
-+elf: $(ELFDIR)/stamp $(CONFIG_H) $(ELFDIR_ELF_LIB)
--$(OBJDIR_NORMAL_LIB): $(OBJDIR) $(CONFIG_H) $(OBJS)
-+$(OBJS): $(OBJDIR)/stamp
-+
-+$(ELFOBJS): $(ELFDIR)/stamp
-+
-+$(OBJDIR_NORMAL_LIB): $(CONFIG_H) $(OBJS)
-       -$(RM) $(OBJDIR_NORMAL_LIB)
-       cd $(OBJDIR); $(AR_CR) $(NORMAL_LIB) $(OFILES)
-       $(RANLIB) $(OBJDIR_NORMAL_LIB)
-       @echo ""
-       @echo $(NORMAL_LIB) created in $(OBJDIR)
--$(ELFDIR_ELF_LIB): $(ELFDIR) $(CONFIG_H) $(ELFOBJS) $(VERSION_SCRIPT)
-+$(ELFDIR_ELF_LIB): $(CONFIG_H) $(ELFOBJS) $(VERSION_SCRIPT)
-       -$(RM) $(ELFDIR_ELF_LIB)
-       cd $(ELFDIR); $(ELF_LINK_CMD) -o $(ELFLIB_BUILD_NAME) $(OFILES) $(LDFLAGS) $(ELF_DEP_LIBS)
-       if [ $(ELFLIB_MAJOR) != $(ELFLIB_BUILD_NAME) ]; then \
-@@ -160,10 +164,12 @@ $(ELFDIR_ELF_LIB): $(ELFDIR) $(CONFIG_H)
-       @echo $(ELFLIB_BUILD_NAME) created in $(ELFDIR).
-       @echo The link $(ELFLIB) to $(ELFLIB_BUILD_NAME) was also created.
-       @echo ""
--$(OBJDIR) :
-+$(OBJDIR)/stamp :
-       -$(MKDIR) $(OBJDIR)
--$(ELFDIR) :
-+      touch $(OBJDIR)/stamp
-+$(ELFDIR)/stamp :
-       -$(MKDIR) $(ELFDIR)
-+      touch $(ELFDIR)/stamp
- $(CONFIG_H) : sysconf.h
-       -$(CP) sysconf.h $(CONFIG_H)
-@@ -194,9 +200,9 @@ install-elf-and-links:
-       -$(RM) $(DEST_LIBDIR)/$(ELFLIB)
-       -$(RM) $(DEST_LIBDIR)/$(ELFLIB_MAJOR)
-       @echo installing $(ELFLIB_BUILD_NAME) in $(DEST_LIBDIR)
--      $(INSTALL_DATA) $(ELFDIR_ELF_LIB) $(DEST_LIBDIR)/
-+      $(INSTALL) $(ELFDIR_ELF_LIB) $(DEST_LIBDIR)/
-       -cd $(DEST_LIBDIR); $(LN) $(ELFLIB_BUILD_NAME) $(ELFLIB_MAJOR)
--      -cd $(DEST_LIBDIR); $(LN) $(ELFLIB_BUILD_NAME) $(ELFLIB)
-+      -cd $(DEST_LIBDIR); $(LN) $(ELFLIB_MAJOR) $(ELFLIB)
-       @echo ""
-       @echo $(ELFLIB_BUILD_NAME) created in $(DEST_LIBDIR).
-       @echo The links $(ELFLIB) and $(ELFLIB_MAJOR) to $(ELFLIB_BUILD_NAME) were also created.
index a572e24395c37256b4f45741dfa3d61b55530f55..8ec9eb4c3ed202a5f7f4f195771ac20d0be54932 100644 (file)
@@ -4,8 +4,7 @@
 ###############################################################################
 
 name       = slang
-version    = 2.1.4
-major_ver  = 2.1
+version    = 2.3.0
 release    = 1
 
 groups     = System/Libraries
@@ -20,8 +19,7 @@ description
        language.
 end
 
-source_dl  = ftp://ftp.fu-berlin.de/pub/unix/misc/slang/v{major_ver}/
-sources    = %{thisapp}.tar.bz2
+source_dl  = http://www.jedsoft.org/releases/slang/
 
 build
        requires
@@ -29,9 +27,6 @@ build
                pcre-devel
        end
 
-       configure_options += \
-               --sysconfdir=/etc
-
        PARALLELISMFLAGS = # off
 
        install_cmds
@@ -41,7 +36,6 @@ end
 
 packages
        package %{name}
-       end
 
        package %{name}-devel
                template DEVEL
index ae3a5fac3a9d8db0efd1e9279307eb9dd94f1feb..9c0dfc9a3488303fa66bc6be0b7d170958bd067f 100644 (file)
@@ -4,9 +4,9 @@
 ###############################################################################
 
 name       = sqlite
-version    = 3.7.10
-release    = 2
-realver    = 3071000
+version    = 3.8.8.2
+release    = 1
+realver    = 3080802
 
 groups     = System/Databases
 url        = http://www.sqlite.org/
@@ -23,13 +23,16 @@ description
 end
 
 thisapp    = %{name}-autoconf-%{realver}
-source_dl  = http://www.sqlite.org/
+source_dl  = http://www.sqlite.org/2015/
 
 build
        requires
+               autoconf
+               automake
                ncurses-devel
                readline-devel
                tcl
+               unzip
        end
 
        CFLAGS += \
@@ -41,6 +44,10 @@ build
                -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 \
                -fno-strict-aliasing
 
+       prepare_cmds
+               autoconf
+       end
+
        configure_options += \
                --enable-threadsafe \
                --enable-threads-override-locks \
diff --git a/systemd/patches/0001-Make-systemctl-is-enabled-work-for-templated-units.patch b/systemd/patches/0001-Make-systemctl-is-enabled-work-for-templated-units.patch
deleted file mode 100644 (file)
index 55dfe86..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-From 67820a0cbdc9d72a1074debf8b2bc72203c775cc Mon Sep 17 00:00:00 2001
-From: Michael Tremer <michael.tremer@ipfire.org>
-Date: Sun, 19 May 2013 13:45:48 +0000
-Subject: systemctl: make systemctl is-enabled work for templated units
-
-Patch resolves the problem that 'systemctl is-enabled' does
-not work for templated units.
-
-Without this patch, systemctl is-enabled something@abc.service
-returned "No such file or directory", because it first checked
-if /usr/lib/systemd/system/something@abc.service, etc. exists.
-If systemctl is-enabled is called for templated units, this
-check should be omitted and it should search for symlinks in
-the .wants dirs right away.
-
-This patch fixes the broken behaviour and resolves
-  https://bugs.freedesktop.org/show_bug.cgi?id=55318.
-
-[zj: fixed the patch to still check for broken symlinks and
-     masked instances. Also removed untrue assumptions from
-     the patch description.]
----
-diff --git a/src/shared/install.c b/src/shared/install.c
-index edf4d2a..8f27c6d 100644
---- a/src/shared/install.c
-+++ b/src/shared/install.c
-@@ -1609,24 +1609,29 @@ UnitFileState unit_file_get_state(
-                 if (!path)
-                         return -ENOMEM;
-+                /*
-+                 * Search for a unit file in our default paths, to
-+                 * be sure, that there are no broken symlinks.
-+                 */
-                 if (lstat(path, &st) < 0) {
-                         r = -errno;
--                        if (errno == ENOENT)
--                                continue;
--
--                        return -errno;
--                }
-+                        if (errno != ENOENT)
-+                                return r;
--                if (!S_ISREG(st.st_mode) && !S_ISLNK(st.st_mode))
--                        return -ENOENT;
-+                        if (!unit_name_is_instance(name))
-+                                continue;
-+                } else {
-+                        if (!S_ISREG(st.st_mode) && !S_ISLNK(st.st_mode))
-+                                return -ENOENT;
--                r = null_or_empty_path(path);
--                if (r < 0 && r != -ENOENT)
--                        return r;
--                else if (r > 0) {
--                        state = path_startswith(*i, "/run") ?
--                                UNIT_FILE_MASKED_RUNTIME : UNIT_FILE_MASKED;
--                        return state;
-+                        r = null_or_empty_path(path);
-+                        if (r < 0 && r != -ENOENT)
-+                                return r;
-+                        else if (r > 0) {
-+                                state = path_startswith(*i, "/run") ?
-+                                        UNIT_FILE_MASKED_RUNTIME : UNIT_FILE_MASKED;
-+                                return state;
-+                        }
-                 }
-                 r = find_symlinks_in_scope(scope, root_dir, name, &state);
---
-cgit v0.9.0.2-2-gbebe
index 1c6cb26235f1887297c539fa9794b9a870ccece4..3ed1b5b978963a51d3250789536a417d13702714 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = systemd
-version    = 204
-release    = 5
+version    = 215
+release    = 1
 
 maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
 groups     = System/Base
@@ -38,7 +38,7 @@ build
                gperf
                hwdata
                intltool
-               kmod-devel >= 5
+               kmod-devel >= 15
                libacl-devel
                libblkid-devel
                libcap-devel
@@ -57,6 +57,10 @@ build
                --with-sysvinit-path= \
                --with-sysvrcnd-path= \
                --enable-introspection=yes \
+               --disable-networkd \
+               --disable-resolvd \
+               --disable-sysusers \
+               --disable-timesyncd \
                --disable-static
 
        prepare_cmds
index e5a2182e45e3cfef9dc9c1857855e1f2ee010a8d..41e0f9078ae8768d74c17c69556ffaa053696f01 100644 (file)
@@ -1,5 +1,6 @@
---- sysvinit-2.86/src/Makefile.old     2004-06-09 14:47:45.000000000 +0200
-+++ sysvinit-2.86/src/Makefile 2011-12-17 18:20:12.067186698 +0100
+diff -Nur sysvinit-2.86-orig/src/Makefile sysvinit-2.86/src/Makefile
+--- sysvinit-2.86-orig/src/Makefile    2004-06-09 14:47:45.000000000 +0200
++++ sysvinit-2.86/src/Makefile 2015-01-24 20:17:45.980202112 +0100
 @@ -10,32 +10,30 @@
  
  CC    = gcc
  # For some known distributions we do not build all programs, otherwise we do.
  BIN   =
 -SBIN  = init halt shutdown runlevel killall5
+-USRBIN        = last mesg
 +SBIN  = killall5
- USRBIN        = last mesg
++USRBIN        =
  
- MAN1  = last.1 lastb.1 mesg.1
+-MAN1  = last.1 lastb.1 mesg.1
 -MAN5  = initscript.5 inittab.5
 -MAN8  = halt.8 init.8 killall5.8 pidof.8 poweroff.8 reboot.8 runlevel.8
 -MAN8  += shutdown.8 telinit.8
++MAN1  =
 +MAN8  = killall5.8 pidof.8
  
  ifeq ($(DISTRO),)
- BIN   += mountpoint
+-BIN   += mountpoint
 -SBIN  += sulogin bootlogd
 -USRBIN        += utmpdump wall
 -MAN1  += mountpoint.1 wall.1
 -MAN8  += sulogin.8 bootlogd.8
++BIN   +=
 +SBIN  +=
 +USRBIN        +=
-+MAN1  += mountpoint.1
++MAN1  +=
 +MAN8  +=
  endif
  
  ifeq ($(DISTRO),Debian)
- BIN   += mountpoint
+-BIN   += mountpoint
 -SBIN  += sulogin bootlogd
-+SBIN  +=
- MAN1  += mountpoint.1
+-MAN1  += mountpoint.1
 -MAN8  += sulogin.8 bootlogd.8
++BIN   +=
++SBIN  +=
++MAN1  +=
 +MAN8  +=
  endif
  
@@ -51,7 +57,7 @@
  LCRYPT                = -lcrypt
  endif
  
-@@ -120,14 +118,10 @@
+@@ -120,14 +118,7 @@
                        $(INSTALL) -m 755 $$i $(ROOT)/usr/bin/; \
                done
                # $(INSTALL) -m 755 etc/initscript.sample $(ROOT)/etc/
 -              ln -sf halt $(ROOT)/sbin/poweroff
 -              ln -sf init $(ROOT)/sbin/telinit
                ln -sf ../sbin/killall5 $(ROOT)/bin/pidof
-               if [ ! -f $(ROOT)/usr/bin/lastb ]; then \
-                       ln -sf last $(ROOT)/usr/bin/lastb; \
-               fi
+-              if [ ! -f $(ROOT)/usr/bin/lastb ]; then \
+-                      ln -sf last $(ROOT)/usr/bin/lastb; \
+-              fi
 -              $(INSTALL) -m 644 initreq.h $(ROOT)/usr/include/
                for i in $(MAN1); do \
                        $(INSTALL) -m 644 ../man/$$i $(ROOT)$(MANDIR)/man1/; \
                done
-@@ -137,12 +131,3 @@
+@@ -137,12 +128,3 @@
                for i in $(MAN8); do \
                        $(INSTALL) -m 644 ../man/$$i $(ROOT)$(MANDIR)/man8/; \
                done
index 637b564ca475780d93953384a6773ce2b8559138..3727da59ec3fed4d96ab2aa2a187490ada7b0421 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = sysvinit
 version    = 2.86
-release    = 5
+release    = 6
 
 groups     = System/Base
 url        = https://alioth.debian.org/projects/pkg-sysvinit/
@@ -22,29 +22,34 @@ sources    = %{thisapp}.tar.gz
 CFLAGS    += -D_GNU_SOURCE
 
 build
-       requires
-               libselinux-devel
-       end
-
        make_build_targets += \
                -C src CFLAGS="%{CFLAGS}" \
-               LDFLAGS="" \
-               LCRYPT="-lcrypt"
+               LDFLAGS=""
 
        install
-               mkdir -pv %{BUILDROOT}/{bin,sbin,usr/{bin,include}}
-               mkdir -pv %{BUILDROOT}/usr/share/man/man{1,5,8}
-               make -C src install ROOT=%{BUILDROOT}
-
-               # /bin/mountpoint is part of util-linux >= 2.20
-               rm -vf %{BUILDROOT}/bin/mountpoint \
-                       %{BUILDROOT}/usr/share/man/man1/mountpoint.1
+               # Create directories.
+               mkdir -pv %{BUILDROOT}%{bindir}
+               mkdir -pv %{BUILDROOT}%{sbindir}
+               mkdir -pv %{BUILDROOT}%{mandir}/man8
+
+               # Install binaries.
+               install -m 0755 src/killall5 %{BUILDROOT}%{sbindir}
+               ln -sf ../sbin/killall5 %{BUILDROOT}%{bindir}/pidof
+
+               # Install man-pages.
+               install -m 0664 man/killall5.8 %{BUILDROOT}%{mandir}/man8
+               install -m 0664 man/pidof.8 %{BUILDROOT}%{mandir}/man8
        end
 end
 
 packages
        package %{name}
                groups += Base
+
+               provides
+                       /bin/pidof
+                       /sbin/killall5
+               end
        end
 
        package %{name}-debuginfo
diff --git a/util-linux/pam.d/runuser b/util-linux/pam.d/runuser
new file mode 100644 (file)
index 0000000..37f0e84
--- /dev/null
@@ -0,0 +1,5 @@
+#%PAM-1.0
+auth           sufficient      pam_rootok.so
+session                optional        pam_keyinit.so revoke
+session                required        pam_limits.so
+session                required        pam_unix.so
diff --git a/util-linux/pam.d/runuser-l b/util-linux/pam.d/runuser-l
new file mode 100644 (file)
index 0000000..7a9a48c
--- /dev/null
@@ -0,0 +1,5 @@
+#%PAM-1.0
+auth           include         runuser
+session                optional        pam_keyinit.so force revoke
+-session       optional        pam_systemd.so
+session                include         runuser
index 60a54fcf03edd72db34c9362fe40b09a7c4c0fee..a8f3629a508d7dfdcb58429147619c50e64fa067 100644 (file)
@@ -4,14 +4,14 @@
 ###############################################################################
 
 name       = util-linux
-major_ver  = 2.22
-minor_ver  = 1
+major_ver  = 2.25
+minor_ver  = 2
 version    = %{major_ver}.%{minor_ver}
 release    = 1
 
 maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
 groups     = System/Base
-url        = http://kernel.org/~kzak/util-linux/
+url        = https://github.com/karelzak/util-linux
 license    = GPLv2 and GPLv2+ and BSD with advertising and Public Domain
 summary    = A collection of basic system utilities.
 
@@ -27,14 +27,18 @@ source_dl  = ftp://ftp.kernel.org/pub/linux/utils/util-linux/v%{major_ver}/
 build
        requires
                audit-devel
+               automake >= 1.13
                coreutils >= 8.19
                gettext
                libcap-devel
+               libcap-ng-devel
                libselinux-devel
                libsepol-devel
+               libudev-devel
                ncurses-devel
                pam-devel
-               libudev-devel
+               python3-devel
+               systemd-devel >= 215
                zlib-devel
        end
 
@@ -50,14 +54,16 @@ build
                --enable-kill \
                --enable-partx \
                --enable-write \
+               --enable-runuser \
                --enable-su \
-               --enable-socket-activation \
-               --enable-libmount-mount \
+               --with-systemd \
                --with-selinux \
                --with-audit \
                --with-udev \
                --disable-makeinstall-chown \
-               --disable-static
+               --disable-static \
+               --disable-rpath \
+               --with-python=3
 
        prepare_cmds
                sed -e 's@etc/adjtime@var/lib/hwclock/adjtime@g' \
@@ -124,6 +130,7 @@ packages
                        /sbin/findfs
                        /sbin/fsck
                        /sbin/nologin
+                       /sbin/runuser
                end
 
                obsoletes
@@ -133,6 +140,7 @@ packages
 
                conflicts
                        filesystem < 002
+                       bash-completion <= 2.1-2
                        coreutils < 8.19
                        setup < 3.0-2
                        util-linux-ng
@@ -242,6 +250,31 @@ packages
                end
        end
 
+       # Package information for libsmartcols.
+       package libsmartcols
+               summary = Formatting library for ls-like programs.
+               description
+                       This is a library for ls-like terminal
+                       programs, part of util-linux.
+               end
+
+               files
+                       %{libdir}/libsmartcols.*
+               end
+       end
+
+       # Package information for libsmartcols-devel.
+       package libsmartcols-devel
+               summary = Development library and header of libsmartcols.
+               description = %{summary}
+
+               files
+                       %{includedir}/libsmartcols/*
+                       %{libdir}/libsmartcols.so
+                       %{libdir}/pkgconfig/smartcols.pc
+               end
+       end
+
        package uuidd
                summary = Helper daemon to guarantee uniqueness of time-based UUIDs.
                description
@@ -262,6 +295,10 @@ packages
 
                prerequires += shadow-utils
 
+               requires
+                       systemd-libs >= 215
+               end
+
                script prein
                        getent group uuidd >/dev/null || groupadd -r uuidd
                        getent passwd uuidd >/dev/null || \
@@ -288,6 +325,10 @@ packages
                        systemctl try-restart uuidd.service >/dev/null 2>&1 || :
                end
        end
+
+       package python3-libmount
+               template PYTHON3
+       end
        
        package %{name}-debuginfo
                template DEBUGINFO
index 8c6046d4ca4f7e89681300577bc22cb7d46a3ab6..d7b042a39502732e205350f423c014c017edb93d 100644 (file)
--- a/xz/xz.nm
+++ b/xz/xz.nm
@@ -4,7 +4,7 @@
 ###############################################################################
 
 name       = xz
-version    = 5.0.6
+version    = 5.2.0
 release    = 1
 
 compat_version = 4.999.9beta