GNU bug report logs - #35650
[PATCH] Improving HP-UX support

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: coreutils; Reported by: "Osipov, Michael" <michael.osipov@HIDDEN>; Keywords: patch; dated Thu, 9 May 2019 14:34:02 UTC; Maintainer for coreutils is bug-coreutils@HIDDEN.

Message received at 35650 <at> debbugs.gnu.org:


Received: (at 35650) by debbugs.gnu.org; 11 May 2019 21:45:12 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat May 11 17:45:12 2019
Received: from localhost ([127.0.0.1]:41365 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hPZns-0006dI-08
	for submit <at> debbugs.gnu.org; Sat, 11 May 2019 17:45:12 -0400
Received: from zimbra.cs.ucla.edu ([131.179.128.68]:46848)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eggert@HIDDEN>) id 1hPZnp-0006cv-Gs
 for 35650 <at> debbugs.gnu.org; Sat, 11 May 2019 17:45:10 -0400
Received: from localhost (localhost [127.0.0.1])
 by zimbra.cs.ucla.edu (Postfix) with ESMTP id 9A1A2161856;
 Sat, 11 May 2019 14:45:03 -0700 (PDT)
Received: from zimbra.cs.ucla.edu ([127.0.0.1])
 by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032)
 with ESMTP id HEJd-Rsd_2WM; Sat, 11 May 2019 14:45:02 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1])
 by zimbra.cs.ucla.edu (Postfix) with ESMTP id 6941A1618B1;
 Sat, 11 May 2019 14:45:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu
Received: from zimbra.cs.ucla.edu ([127.0.0.1])
 by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id f8PmtZOYIC45; Sat, 11 May 2019 14:45:02 -0700 (PDT)
Received: from [192.168.147.182] (unknown [12.201.183.3])
 by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id CADE4161144;
 Sat, 11 May 2019 14:45:01 -0700 (PDT)
Subject: Re: bug#35650: [PATCH] Improving HP-UX support
To: =?UTF-8?Q?P=c3=a1draig_Brady?= <P@HIDDEN>
References: <9f26b1e7-e075-1fa7-f004-f89d8cf41c21@HIDDEN>
 <b575ac04-7b69-3a51-6e0e-684ee2492977@HIDDEN>
From: Paul Eggert <eggert@HIDDEN>
Message-ID: <b6936938-69d9-424e-e46d-ded27b5b1c54@HIDDEN>
Date: Sat, 11 May 2019 16:45:00 -0500
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <b575ac04-7b69-3a51-6e0e-684ee2492977@HIDDEN>
Content-Type: multipart/mixed; boundary="------------0A4A07D6D3D251D818CE82DA"
Content-Language: en-US
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 35650
Cc: contact@HIDDEN, "Osipov, Michael" <michael.osipov@HIDDEN>,
 35650 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

This is a multi-part message in MIME format.
--------------0A4A07D6D3D251D818CE82DA
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 5/10/19 4:49 AM, P=C3=A1draig Brady wrote:
> this file comes from blake2 upstream source on github,
> so you might want to broach the change there.

I'll cc: this email to contact@HIDDEN to let them know about the=20
problem (if you're just catching up you can see the thread at=20
<https://bugs.gnu.org/35650>).

We shouldn't simply push this problem upstream to the BLAKE2=20
maintainers, as the BLAKE2 code is now in coreutils and if it breaks a=20
build then it's our responsibility to fix it. So for now I installed the=20
attached patch into coreutils, which I hope works around the BLAKE2=20
code's problem.

The underlying problem is that the reference code's definition of the=20
BLAKE2_PACKED macro assumes that the compiler is compatible with either=20
GCC or with Microsoft's C compiler, and HP-UX aCC is neither. As far as=20
I can see, for blake2.h on typical current platforms, there is no need=20
to use __attribute__ ((oacked)) or the Microsoft equivalent because the=20
data structure is already packed well enough, so the attached patch=20
simply skips the attribute unless we know that it will work.

I also noticed that the BLAKE2 code is not portable code according to=20
either POSIX or to the C standard, since it assumes types like uint64_t=20
that both standards say are optional. If that's OK with the BLAKE2=20
maintainers then the attached patch should suffice, as it should be=20
"good enough" for most common platforms. If you want the code to be=20
portable, you'll need to arrange for it to pack and unpack by hand, at=20
least on platforms that don't support a packed attribute and/or don't=20
support types like uint64_t.


--------------0A4A07D6D3D251D818CE82DA
Content-Type: text/plain; charset=UTF-8;
 name="0001-b2sum-port-to-HP-UX-C.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="0001-b2sum-port-to-HP-UX-C.txt"

RnJvbSA2ZTk3ZDM2MWI0N2M5ODE5NjZmMGJmZWYwMzY1OWM1NzI0MDliY2JhIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1
PgpEYXRlOiBTYXQsIDExIE1heSAyMDE5IDEzOjQ4OjE2IC0wNzAwClN1YmplY3Q6IFtQQVRD
SF0gYjJzdW06IHBvcnQgdG8gSFAtVVggQwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5
cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu
ZzogOGJpdAoKKiBzcmMvYmxha2UyL2JsYWtlMi5oIChCTEFLRTJfUEFDS0VEKToKRG9u4oCZ
dCBhc3N1bWUgX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIHdvcmtzIG9uIG5vbi1NaWNyb3Nv
ZnQKY29tcGlsZXJzLiAgSW5zdGVhZCwgYXNzdW1lIGl0IHdvcmtzIG9ubHkgaWYgd2UgaGF2
ZSBnb29kCnJlYXNvbiB0byBhc3N1bWUgc28sIGFuZCBmYWxsIGJhY2sgb24gTWljcm9zb2Z0
IChvciBub3QgcGFja2luZykKb3RoZXJ3aXNlLiAgSW4gcHJhY3RpY2UsIG5vdCBwYWNraW5n
IGlzIGdvb2QgZW5vdWdoIGFuZCB0aGUKQkxBS0UyX1BBQ0tFRCBtYWNybyBpcyBtb3N0bHkg
anVzdCBmb3IgZG9jdW1lbnRhdGlvbi4KLS0tCiBzcmMvYmxha2UyL2JsYWtlMi5oIHwgMTYg
KysrKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDQg
ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JsYWtlMi9ibGFrZTIuaCBiL3NyYy9i
bGFrZTIvYmxha2UyLmgKaW5kZXggZDI1ZDVmZGI5Li4zOTYwYmRiMmQgMTAwNjQ0Ci0tLSBh
L3NyYy9ibGFrZTIvYmxha2UyLmgKKysrIGIvc3JjL2JsYWtlMi9ibGFrZTIuaApAQCAtMTgs
MTAgKzE4LDE4IEBACiAjaW5jbHVkZSA8c3RkZGVmLmg+CiAjaW5jbHVkZSA8c3RkaW50Lmg+
CiAKLSNpZiBkZWZpbmVkKF9NU0NfVkVSKQotI2RlZmluZSBCTEFLRTJfUEFDS0VEKHgpIF9f
cHJhZ21hKHBhY2socHVzaCwgMSkpIHggX19wcmFnbWEocGFjayhwb3ApKQotI2Vsc2UKLSNk
ZWZpbmUgQkxBS0UyX1BBQ0tFRCh4KSB4IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpCisjaWZk
ZWYgX19oYXNfYXR0cmlidXRlCisjIGlmIF9faGFzX2F0dHJpYnV0ZSAocGFja2VkKQorIyAg
ZGVmaW5lIEJMQUtFMl9QQUNLRUQoeCkgeCBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkKKyMg
ZW5kaWYKKyNlbmRpZgorI2lmICFkZWZpbmVkIEJMQUtFMl9QQUNLRUQgJiYgZGVmaW5lZCBf
TVNDX1ZFUgorIyBkZWZpbmUgQkxBS0UyX1BBQ0tFRCh4KSBfX3ByYWdtYSAocGFjayAocHVz
aCwgMSkpIHggX19wcmFnbWEgKHBhY2sgKHBvcCkpCisjZW5kaWYKKyNpZm5kZWYgQkxBS0Uy
X1BBQ0tFRAorLyogVGhpcyBzaG91bGQgYmUgZ29vZCBlbm91Z2ggb24gb3RoZXIgcGxhdGZv
cm1zLgorICAgSWYgaXQncyBub3QgZ29vZCBvbiB5b3VycywgcGxlYXNlIGZpbGUgYSBidWcg
cmVwb3J0LiAgKi8KKyMgZGVmaW5lIEJMQUtFMl9QQUNLRUQoeCkgeAogI2VuZGlmCiAKICNp
ZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotLSAKMi4yMC4xCgo=
--------------0A4A07D6D3D251D818CE82DA--




Information forwarded to bug-coreutils@HIDDEN:
bug#35650; Package coreutils. Full text available.

Message received at 35650 <at> debbugs.gnu.org:


Received: (at 35650) by debbugs.gnu.org; 11 May 2019 21:15:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat May 11 17:15:17 2019
Received: from localhost ([127.0.0.1]:41321 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hPZKu-0005sd-R6
	for submit <at> debbugs.gnu.org; Sat, 11 May 2019 17:15:17 -0400
Received: from zimbra.cs.ucla.edu ([131.179.128.68]:44606)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eggert@HIDDEN>) id 1hPZKq-0005sD-Lc
 for 35650 <at> debbugs.gnu.org; Sat, 11 May 2019 17:15:14 -0400
Received: from localhost (localhost [127.0.0.1])
 by zimbra.cs.ucla.edu (Postfix) with ESMTP id 544C21619ED;
 Sat, 11 May 2019 14:15:06 -0700 (PDT)
Received: from zimbra.cs.ucla.edu ([127.0.0.1])
 by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032)
 with ESMTP id odOdmIoRC6jC; Sat, 11 May 2019 14:15:02 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1])
 by zimbra.cs.ucla.edu (Postfix) with ESMTP id C706B1619F0;
 Sat, 11 May 2019 14:15:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu
Received: from zimbra.cs.ucla.edu ([127.0.0.1])
 by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id re3xc8beVB0D; Sat, 11 May 2019 14:15:02 -0700 (PDT)
Received: from [192.168.147.182] (unknown [12.201.183.3])
 by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id B5C3B161058;
 Sat, 11 May 2019 14:15:01 -0700 (PDT)
Subject: Re: bug#35650: [PATCH] Improving HP-UX support
To: "Osipov, Michael" <michael.osipov@HIDDEN>
References: <9f26b1e7-e075-1fa7-f004-f89d8cf41c21@HIDDEN>
From: Paul Eggert <eggert@HIDDEN>
Message-ID: <1394c8fe-1d2c-7d37-0d58-838ebb3f246c@HIDDEN>
Date: Sat, 11 May 2019 16:14:57 -0500
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <9f26b1e7-e075-1fa7-f004-f89d8cf41c21@HIDDEN>
Content-Type: multipart/mixed; boundary="------------CDFB95ED5CCF23E9B247040B"
Content-Language: en-US
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 35650
Cc: =?UTF-8?Q?P=c3=a1draig_Brady?= <P@HIDDEN>, 35650 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

This is a multi-part message in MIME format.
--------------CDFB95ED5CCF23E9B247040B
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

Thanks for the bug report. I installed the attached patches to coreutils=20
on savannah to fix some (but not all) of the bugs, and some other=20
C99-related bugs I noticed, and have some further comments and questions.

On 5/9/19 5:50 AM, Osipov, Michael wrote:
>
> * basenc.c: HP aCC does not allow anonymous unions inside structs,

Fixed in the 3rd attached patch, in a slightly-different way.

> * blake2/blake2.h: __attribute__((packed)) does not exist in HP aCC,=20
> use #pragma pack

As near as I can make out, that code (a) doesn't need the packed=20
attribute on any popular platform, and (b) wouldn't be portable among=20
Standard C platforms even if Standard C had the packed attribute. I'll=20
try to follow up with the BLAKE2 folks and CC: here.

> * copy.c, mkfifo.c: disable SELinux code if it is not available

As you noted, this patch isn't needed (the code builds without it) so=20
let's omit the patch.

>
> * system.h: use __attribute(x) on a GNU-style compiler only
> * configure.ac, local.mk: use HP aCC-style linker options for libstdbuf=
=20

I don't see why these patches are needed. 'configure' should arrange for=20
libstdbuf to be built only if you are using GCC. If libstdbuf is being=20
built when you use HP-UX aCC, that suggests there is a bug in=20
'configure.ac' and we should fix that bug rather than try to port=20
libstdbuf to HP-UX.

>
>> FORCE_UNSAFE_CONFIGURE=3D1 gl_cv_have_include_next=3Dno=20
>> ac_cv_func_getacl=3Dno ac_cv_func_aclsort=3Dno=20
>> ac_cv_header_sys_bitypes_h=3Dno $CONFIGURE
>> gmake install

Why do you need all those flags and why do you need to use gmake? Plain=20
'./configure; make' should work. The fact that you need those flags=20
suggests that there is a bug in configure.ac, and it'd be better to fix=20
the underlying bug than to try to paper around it (and possibly=20
introduce further bugs).


> * I have disabled the compilation of b2sum completely because gmake=20
> repeatedly quits with:
>> gmake[2]: *** No rule to make target '/var/tmp/AAA000546.i', needed=20
>> by 'src/b2sum-md5sum.o'.=C2=A0 Stop.
>> gmake[2]: Leaving directory '/tmp/system-compile/gnu/coreutils-8.31'
>> gmake[1]: *** [Makefile:12647: all-recursive] Error 1
>> gmake[1]: Leaving directory '/tmp/system-compile/gnu/coreutils-8.31'
>> gmake: *** [Makefile:6827: all] Error 2

Presumably your top-level Makefile is messed up somehow. Please=20
investigate the rule for building b2sum that is in 'Makefile', and try=20
to figure out how it got corrupted. It might be a bug in the way=20
'configure' calls 'sed', or a bug in your 'sed' or 'awk' implementation.

> * The configuration of PIC and shared library is for HP-UX now. At=20
> best autotools would determine that with some default m4 file.=20
Plain './configure; make' should work and if it doesn't work we should=20
fix it. Normally it does not build shared libraries or try to use PIC;=20
although you can arrange for it to do so that is lower priority for us.

--------------CDFB95ED5CCF23E9B247040B
Content-Type: text/x-patch;
 name="0001-build-update-gnulib-submodule-to-latest.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="0001-build-update-gnulib-submodule-to-latest.patch"

From 83317a740c1930513ecfab64123545b66a93c556 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@HIDDEN>
Date: Sat, 11 May 2019 08:34:59 -0700
Subject: [PATCH 1/4] build: update gnulib submodule to latest

---
 gnulib | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnulib b/gnulib
index 22b911f63..c7d0b4506 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 22b911f63ca11395f03ce2ce3cc0b371a37a576d
+Subproject commit c7d0b4506574887be5835ae9ae892d365afbb98c
-- 
2.21.0


--------------CDFB95ED5CCF23E9B247040B
Content-Type: text/x-patch;
 name="0002-maint-adjust-to-recent-verify_true-removal.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="0002-maint-adjust-to-recent-verify_true-removal.patch"

From ac790dd221a774b9f6dda7b924a74c0d3a673514 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@HIDDEN>
Date: Sat, 11 May 2019 09:32:04 -0700
Subject: [PATCH 2/4] maint: adjust to recent verify_true removal

* src/system.h (X2NREALLOC, X2REALLOC, DECIMAL_DIGIT_ACCUMULATE):
Use verify_expr instead of verify_true, which has been removed.
(DECIMAL_DIGIT_ACCUMULATE): Remove unnecessary size check.
---
 src/system.h | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/system.h b/src/system.h
index e4790f7cc..65cd742fc 100644
--- a/src/system.h
+++ b/src/system.h
@@ -245,15 +245,15 @@ uid_t getuid (void);
    the third argument to x2nrealloc would be 'sizeof *(P)'.
    Ensure that sizeof *(P) is *not* 1.  In that case, it'd be
    better to use X2REALLOC, although not strictly necessary.  */
-#define X2NREALLOC(P, PN) ((void) verify_true (sizeof *(P) != 1), \
-                           x2nrealloc (P, PN, sizeof *(P)))
+#define X2NREALLOC(P, PN) verify_expr (sizeof *(P) != 1, \
+                                       x2nrealloc (P, PN, sizeof *(P)))
 
 /* Using x2realloc (when appropriate) usually makes your code more
    readable than using x2nrealloc, but it also makes it so your
    code will malfunction if sizeof *(P) ever becomes 2 or greater.
    So use this macro instead of using x2realloc directly.  */
-#define X2REALLOC(P, PN) ((void) verify_true (sizeof *(P) == 1), \
-                          x2realloc (P, PN))
+#define X2REALLOC(P, PN) verify_expr (sizeof *(P) == 1, \
+                                      x2realloc (P, PN))
 
 #include "unlocked-io.h"
 #include "same-inode.h"
@@ -567,11 +567,11 @@ is_nul (void const *buf, size_t length)
 #define DECIMAL_DIGIT_ACCUMULATE(Accum, Digit_val, Type)		\
   (									\
    (void) (&(Accum) == (Type *) NULL),  /* The type matches.  */	\
-   (void) verify_true (! TYPE_SIGNED (Type)), /* The type is unsigned.  */ \
-   (void) verify_true (sizeof (Accum) == sizeof (Type)), /* Added check.  */ \
-   (((Type) -1 / 10 < (Accum)						\
-     || (Type) ((Accum) * 10 + (Digit_val)) < (Accum))			\
-    ? false : (((Accum) = (Accum) * 10 + (Digit_val)), true))		\
+   verify_expr (! TYPE_SIGNED (Type), /* The type is unsigned.  */      \
+                (((Type) -1 / 10 < (Accum)                              \
+                  || (Type) ((Accum) * 10 + (Digit_val)) < (Accum))     \
+                 ? false                                                \
+                 : (((Accum) = (Accum) * 10 + (Digit_val)), true)))     \
   )
 
 static inline void
-- 
2.21.0


--------------CDFB95ED5CCF23E9B247040B
Content-Type: text/x-patch;
 name="0003-basenc-port-to-C99.patch"
Content-Disposition: attachment;
 filename="0003-basenc-port-to-C99.patch"
Content-Transfer-Encoding: quoted-printable

From f344f473fe985b52563864ef3031dfc6a643d6a1 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@HIDDEN>
Date: Sat, 11 May 2019 13:01:37 -0700
Subject: [PATCH 3/4] basenc: port to C99
MIME-Version: 1.0
Content-Type: text/plain; charset=3DUTF-8
Content-Transfer-Encoding: 8bit

* src/basenc.c: Various minor style cleanups.
(struct base_decode_context): Do not use anonymous unions, as
they=E2=80=99re not in C99.  Use a named union instead.  All uses changed=
.
---
 src/basenc.c | 184 ++++++++++++++++++++++++---------------------------
 1 file changed, 88 insertions(+), 96 deletions(-)

diff --git a/src/basenc.c b/src/basenc.c
index 5ec7bf4a5..a167fb917 100644
--- a/src/basenc.c
+++ b/src/basenc.c
@@ -242,12 +242,12 @@ struct base_decode_context
 {
   int i; /* will be updated manually */
   union {
-    struct base64_decode_context b64ctx;
-    struct base32_decode_context b32ctx;
-    struct base16_decode_context b16ctx;
-    struct base2_decode_context  b2ctx;
-    struct z85_decode_context    z85ctx;
-  };
+    struct base64_decode_context base64;
+    struct base32_decode_context base32;
+    struct base16_decode_context base16;
+    struct base2_decode_context base2;
+    struct z85_decode_context z85;
+  } ctx;
   char *inbuf;
   size_t bufsize;
 };
@@ -271,7 +271,7 @@ base64_length_wrapper (int len)
 static void
 base64_decode_ctx_init_wrapper (struct base_decode_context *ctx)
 {
-  base64_decode_ctx_init (&ctx->b64ctx);
+  base64_decode_ctx_init (&ctx->ctx.base64);
 }
=20
 static bool
@@ -279,8 +279,8 @@ base64_decode_ctx_wrapper (struct base_decode_context=
 *ctx,
                            const char *restrict in, size_t inlen,
                            char *restrict out, size_t *outlen)
 {
-  bool b =3D base64_decode_ctx (&ctx->b64ctx, in, inlen, out, outlen);
-  ctx->i =3D ctx->b64ctx.i;
+  bool b =3D base64_decode_ctx (&ctx->ctx.base64, in, inlen, out, outlen=
);
+  ctx->i =3D ctx->ctx.base64.i;
   return b;
 }
=20
@@ -296,8 +296,8 @@ prepare_inbuf (struct base_decode_context *ctx, size_=
t inlen)
 {
   if (ctx->bufsize < inlen)
     {
-      ctx->bufsize =3D inlen*2;
-      ctx->inbuf =3D xnrealloc (ctx->inbuf, ctx->bufsize, sizeof (char) =
);
+      ctx->bufsize =3D inlen * 2;
+      ctx->inbuf =3D xnrealloc (ctx->inbuf, ctx->bufsize, sizeof (char))=
;
     }
 }
=20
@@ -322,14 +322,14 @@ base64url_encode (const char *restrict in, size_t i=
nlen,
 static bool
 isbase64url (char ch)
 {
-  return ( (ch =3D=3D '-') || (ch =3D=3D '_') \
-           || ( (ch !=3D '+') && (ch !=3D '/') && isbase64 (ch) ) );
+  return (ch =3D=3D '-' || ch =3D=3D '_'
+          || (ch !=3D '+' && ch !=3D '/' && isbase64 (ch)));
 }
=20
 static void
 base64url_decode_ctx_init_wrapper (struct base_decode_context *ctx)
 {
-  base64_decode_ctx_init (&ctx->b64ctx);
+  base64_decode_ctx_init (&ctx->ctx.base64);
   init_inbuf (ctx);
 }
=20
@@ -347,7 +347,7 @@ base64url_decode_ctx_wrapper (struct base_decode_cont=
ext *ctx,
   char* p =3D ctx->inbuf;
   while (i--)
     {
-      if (*p =3D=3D '+' || *p =3D=3D'/')
+      if (*p =3D=3D '+' || *p =3D=3D '/')
         {
           *outlen =3D 0;
           return false; /* reject base64 input */
@@ -359,8 +359,9 @@ base64url_decode_ctx_wrapper (struct base_decode_cont=
ext *ctx,
       ++p;
     }
=20
-  bool b =3D base64_decode_ctx (&ctx->b64ctx, ctx->inbuf, inlen, out, ou=
tlen);
-  ctx->i =3D ctx->b64ctx.i;
+  bool b =3D base64_decode_ctx (&ctx->ctx.base64, ctx->inbuf, inlen,
+                              out, outlen);
+  ctx->i =3D ctx->ctx.base64.i;
=20
   return b;
 }
@@ -376,7 +377,7 @@ base32_length_wrapper (int len)
 static void
 base32_decode_ctx_init_wrapper (struct base_decode_context *ctx)
 {
-  base32_decode_ctx_init (&ctx->b32ctx);
+  base32_decode_ctx_init (&ctx->ctx.base32);
 }
=20
 static bool
@@ -384,8 +385,8 @@ base32_decode_ctx_wrapper (struct base_decode_context=
 *ctx,
                            const char *restrict in, size_t inlen,
                            char *restrict out, size_t *outlen)
 {
-  bool b =3D base32_decode_ctx (&ctx->b32ctx, in, inlen, out, outlen);
-  ctx->i =3D ctx->b32ctx.i;
+  bool b =3D base32_decode_ctx (&ctx->ctx.base32, in, inlen, out, outlen=
);
+  ctx->i =3D ctx->ctx.base32.i;
   return b;
 }
=20
@@ -434,7 +435,7 @@ static const char base32_hex_to_norm[32+9] =3D {
 inline static bool
 isbase32hex (char ch)
 {
-  return ( (ch>=3D'0' && ch<=3D'9') || (ch>=3D'A' && ch<=3D'V') );
+  return ('0' <=3D ch && ch <=3D '9') || ('A' <=3D ch && ch <=3D 'V');
 }
=20
=20
@@ -444,12 +445,10 @@ base32hex_encode (const char *restrict in, size_t i=
nlen,
 {
   base32_encode (in, inlen, out, outlen);
=20
-  char* p =3D out;
-  while (outlen--)
+  for (char *p =3D out; outlen--; p++)
     {
-      assert (*p >=3D 0x32 && *p <=3D 0x5a);          /* LCOV_EXCL_LINE =
*/
-      *p =3D base32_norm_to_hex[(int)*p - 0x32];
-      ++p;
+      assert (0x32 <=3D *p && *p <=3D 0x5a);          /* LCOV_EXCL_LINE =
*/
+      *p =3D base32_norm_to_hex[*p - 0x32];
     }
 }
=20
@@ -457,7 +456,7 @@ base32hex_encode (const char *restrict in, size_t inl=
en,
 static void
 base32hex_decode_ctx_init_wrapper (struct base_decode_context *ctx)
 {
-  base32_decode_ctx_init (&ctx->b32ctx);
+  base32_decode_ctx_init (&ctx->ctx.base32);
   init_inbuf (ctx);
 }
=20
@@ -481,8 +480,9 @@ base32hex_decode_ctx_wrapper (struct base_decode_cont=
ext *ctx,
       ++in;
     }
=20
-  bool b =3D base32_decode_ctx (&ctx->b32ctx, ctx->inbuf, inlen, out, ou=
tlen);
-  ctx->i =3D ctx->b32ctx.i;
+  bool b =3D base32_decode_ctx (&ctx->ctx.base32, ctx->inbuf, inlen,
+                              out, outlen);
+  ctx->i =3D ctx->ctx.base32.i;
=20
   return b;
 }
@@ -491,16 +491,16 @@ base32hex_decode_ctx_wrapper (struct base_decode_co=
ntext *ctx,
 static bool
 isbase16 (char ch)
 {
-  return ( (ch>=3D'0' && ch<=3D'9') || (ch>=3D'A' && ch<=3D'F') );
+  return ('0' <=3D ch && ch <=3D '9') || ('A' <=3D ch && ch <=3D 'F');
 }
=20
 static int
 base16_length (int len)
 {
-  return len*2;
+  return len * 2;
 }
=20
-static const char base16[16] =3D { "0123456789ABCDEF" };
+static const char base16[16] =3D "0123456789ABCDEF";
=20
 static void
 base16_encode (const char *restrict in, size_t inlen,
@@ -508,8 +508,9 @@ base16_encode (const char *restrict in, size_t inlen,
 {
   while (inlen--)
     {
-      *out++ =3D base16[ ( ((unsigned char)*in) >> 4) ];
-      *out++ =3D base16[ ( ((unsigned char)*in) & 0x0F ) ];
+      unsigned char c =3D *in;
+      *out++ =3D base16[c >> 4];
+      *out++ =3D base16[c & 0x0F];
       ++in;
     }
 }
@@ -519,7 +520,7 @@ static void
 base16_decode_ctx_init (struct base_decode_context *ctx)
 {
   init_inbuf (ctx);
-  ctx->b16ctx.have_nibble =3D false;
+  ctx->ctx.base16.have_nibble =3D false;
   ctx->i =3D 1;
 }
=20
@@ -538,7 +539,7 @@ base16_decode_ctx (struct base_decode_context *ctx,
      if there is a dangling high nibble - we are missing the low nibble,
      so return false - indicating an invalid input.  */
   if (inlen =3D=3D 0)
-    return !ctx->b16ctx.have_nibble;
+    return !ctx->ctx.base16.have_nibble;
=20
   while (inlen--)
     {
@@ -557,18 +558,18 @@ base16_decode_ctx (struct base_decode_context *ctx,
=20
       ++in;
=20
-      if (ctx->b16ctx.have_nibble)
+      if (ctx->ctx.base16.have_nibble)
         {
           /* have both nibbles, write octet */
-          *out++ =3D (ctx->b16ctx.nibble<<4) + nib;
+          *out++ =3D (ctx->ctx.base16.nibble << 4) + nib;
           ++(*outlen);
         }
       else
         {
           /* Store higher nibble until next one arrives */
-          ctx->b16ctx.nibble =3D nib;
+          ctx->ctx.base16.nibble =3D nib;
         }
-      ctx->b16ctx.have_nibble =3D !ctx->b16ctx.have_nibble;
+      ctx->ctx.base16.have_nibble =3D !ctx->ctx.base16.have_nibble;
     }
   return true;
 }
@@ -590,17 +591,11 @@ isz85 (char ch)
   return c_isalnum (ch) || (strchr (".-:+=3D^!/*?&<>()[]{}@%$#", ch) !=3D=
 NULL);
 }
=20
-static char z85_encoding[85] =3D {
-  "0123456789" \
-  "abcdefghij" \
-  "klmnopqrst" \
-  "uvwxyzABCD" \
-  "EFGHIJKLMN" \
-  "OPQRSTUVWX" \
-  "YZ.-:+=3D^!/" \
-  "*?&<>()[]{" \
-  "}@%$#"
-};
+static char const z85_encoding[85] =3D
+  "0123456789"
+  "abcdefghijklmnopqrstuvwxyz"
+  "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+  ".-:+=3D^!/*?&<>()[]{}@%$#";
=20
 static void
 z85_encode (const char *restrict in, size_t inlen,
@@ -616,7 +611,7 @@ z85_encode (const char *restrict in, size_t inlen,
       if (inlen =3D=3D 0)
         {
           /* no more input, exactly on 4 octet boundary. */
-          if (i =3D=3D0)
+          if (i =3D=3D 0)
             return;
=20
           /* currently, there's no way to return an error in encoding.  =
*/
@@ -625,14 +620,14 @@ z85_encode (const char *restrict in, size_t inlen,
         }
       else
         {
-          quad[i++] =3D (unsigned char)*in++;
+          quad[i++] =3D *in++;
           --inlen;
         }
=20
       /* Got a quad, encode it */
-      if (i=3D=3D4)
+      if (i =3D=3D 4)
         {
-          val =3D (quad[0]<<24) + (quad[1]<<16) + (quad[2]<<8) + quad[3]=
;
+          val =3D (quad[0] << 24) + (quad[1] << 16) + (quad[2] << 8) + q=
uad[3];
=20
           for (int j =3D 4; j>=3D0; --j)
             {
@@ -657,20 +652,20 @@ static void
 z85_decode_ctx_init (struct base_decode_context *ctx)
 {
   init_inbuf (ctx);
-  ctx->z85ctx.i =3D 0;
+  ctx->ctx.z85.i =3D 0;
   ctx->i =3D 1;
 }
=20
=20
 # define Z85_LO_CTX_TO_32BIT_VAL(ctx) \
-  (((ctx)->z85ctx.octets[1] * 85 * 85 * 85) +   \
-   ((ctx)->z85ctx.octets[2] * 85 * 85) +	    \
-   ((ctx)->z85ctx.octets[3] * 85) +		    \
-   ((ctx)->z85ctx.octets[4]))
+  (((ctx)->ctx.z85.octets[1] * 85 * 85 * 85) +      \
+   ((ctx)->ctx.z85.octets[2] * 85 * 85) +	    \
+   ((ctx)->ctx.z85.octets[3] * 85) +		    \
+   ((ctx)->ctx.z85.octets[4]))
=20
=20
 # define Z85_HI_CTX_TO_32BIT_VAL(ctx) \
-  ((ctx)->z85ctx.octets[0] * 85 * 85 * 85 * 85 )
+  ((ctx)->ctx.z85.octets[0] * 85 * 85 * 85 * 85 )
=20
 /*
  0 -  9:  0 1 2 3 4 5 6 7 8 9
@@ -704,7 +699,6 @@ z85_decode_ctx (struct base_decode_context *ctx,
                 char *restrict out, size_t *outlen)
 {
   bool ignore_lines =3D true;  /* for now, always ignore them */
-  unsigned char c;
=20
   *outlen =3D 0;
=20
@@ -713,7 +707,7 @@ z85_decode_ctx (struct base_decode_context *ctx,
      so return false - indicating an invalid input.  */
   if (inlen =3D=3D 0)
     {
-      if (ctx->z85ctx.i > 0)
+      if (ctx->ctx.z85.i > 0)
         {
           /* Z85 variant does not allow padding - input must
              be a multiple of 5 - so return error.  */
@@ -731,7 +725,7 @@ z85_decode_ctx (struct base_decode_context *ctx,
         }
=20
       /* z85 decoding */
-      c =3D (unsigned char)(*in);
+      unsigned char c =3D *in;
=20
       if (c >=3D 33 && c <=3D 125)
         {
@@ -744,8 +738,8 @@ z85_decode_ctx (struct base_decode_context *ctx,
=20
       ++in;
=20
-      ctx->z85ctx.octets[ctx->z85ctx.i++] =3D c;
-      if (ctx->z85ctx.i =3D=3D 5)
+      ctx->ctx.z85.octets[ctx->ctx.z85.i++] =3D c;
+      if (ctx->ctx.z85.i =3D=3D 5)
         {
           /* decode the lowest 4 octets, then check for overflows.  */
           unsigned int val =3D Z85_LO_CTX_TO_32BIT_VAL (ctx);
@@ -761,25 +755,25 @@ z85_decode_ctx (struct base_decode_context *ctx,
              '%' (decoded to 82) in the highest octet can fit in unsigne=
d int
              if the other 4 octets decode to a small enough value.
           */
-          if ((ctx->z85ctx.octets[0] =3D=3D 84 || ctx->z85ctx.octets[0] =
=3D=3D 83) \
-              || (ctx->z85ctx.octets[0] =3D=3D 82 \
-                  && (val > 0xFFFFFFFF - 82*85*85*85*85U)))
+          if (ctx->ctx.z85.octets[0] =3D=3D 84 || ctx->ctx.z85.octets[0]=
 =3D=3D 83
+              || (ctx->ctx.z85.octets[0] =3D=3D 82
+                  && val > 0xFFFFFFFF - 82*85*85*85*85U))
             return false;
=20
           /* no overflow, add the high octet value */
           val +=3D Z85_HI_CTX_TO_32BIT_VAL (ctx);
=20
-          *out++ =3D (val>>24)&0xFF;
-          *out++ =3D (val>>16)&0xFF;
-          *out++ =3D (val>>8)&0xFF;
-          *out++ =3D (val)&0xFF;
+          *out++ =3D (val >> 24) & 0xFF;
+          *out++ =3D (val >> 16) & 0xFF;
+          *out++ =3D (val >> 8) & 0xFF;
+          *out++ =3D val & 0xFF;
=20
           *outlen +=3D 4;
=20
-          ctx->z85ctx.i =3D 0;
+          ctx->ctx.z85.i =3D 0;
         }
     }
-  ctx->i =3D ctx->z85ctx.i;
+  ctx->i =3D ctx->ctx.z85.i;
   return true;
 }
=20
@@ -787,13 +781,13 @@ z85_decode_ctx (struct base_decode_context *ctx,
 inline static bool
 isbase2 (char ch)
 {
-  return (ch=3D=3D'0' || ch=3D=3D'1');
+  return ch =3D=3D '0' || ch =3D=3D '1';
 }
=20
 static int
 base2_length (int len)
 {
-  return len*8;
+  return len * 8;
 }
=20
=20
@@ -801,13 +795,12 @@ inline static void
 base2msbf_encode (const char *restrict in, size_t inlen,
                   char *restrict out, size_t outlen)
 {
-  unsigned char c;
   while (inlen--)
     {
-      c =3D (unsigned char)*in;
-      for (int i=3D0;i<8;++i)
+      unsigned char c =3D *in;
+      for (int i =3D 0; i < 8; i++)
         {
-          *out++ =3D (c & 0x80)?'1':'0';
+          *out++ =3D c & 0x80 ? '1' : '0';
           c <<=3D 1;
         }
       outlen -=3D 8;
@@ -819,13 +812,12 @@ inline static void
 base2lsbf_encode (const char *restrict in, size_t inlen,
                   char *restrict out, size_t outlen)
 {
-  unsigned char c;
   while (inlen--)
     {
-      c =3D (unsigned char)*in;
-      for (int i=3D0;i<8;++i)
+      unsigned char c =3D *in;
+      for (int i =3D 0; i < 8; i++)
         {
-          *out++ =3D (c & 0x01)?'1':'0';
+          *out++ =3D c & 0x01 ? '1' : '0';
           c >>=3D 1;
         }
       outlen -=3D 8;
@@ -838,7 +830,7 @@ static void
 base2_decode_ctx_init (struct base_decode_context *ctx)
 {
   init_inbuf (ctx);
-  ctx->b2ctx.octet =3D 0;
+  ctx->ctx.base2.octet =3D 0;
   ctx->i =3D 0;
 }
=20
@@ -856,7 +848,7 @@ base2lsbf_decode_ctx (struct base_decode_context *ctx=
,
      if there is a dangling bit - we are missing some bits,
      so return false - indicating an invalid input.  */
   if (inlen =3D=3D 0)
-    return ctx->i=3D=3D0;
+    return ctx->i =3D=3D 0;
=20
   while (inlen--)
     {
@@ -870,13 +862,13 @@ base2lsbf_decode_ctx (struct base_decode_context *c=
tx,
         return false;
=20
       bool bit =3D (*in =3D=3D '1');
-      ctx->b2ctx.octet |=3D bit << ctx->i;
+      ctx->ctx.base2.octet |=3D bit << ctx->i;
       ++ctx->i;
=20
-      if (ctx->i=3D=3D8)
+      if (ctx->i =3D=3D 8)
         {
-          *out++ =3D ctx->b2ctx.octet ;
-          ctx->b2ctx.octet =3D 0;
+          *out++ =3D ctx->ctx.base2.octet;
+          ctx->ctx.base2.octet =3D 0;
           ++*outlen;
           ctx->i =3D 0;
         }
@@ -900,7 +892,7 @@ base2msbf_decode_ctx (struct base_decode_context *ctx=
,
      if there is a dangling bit - we are missing some bits,
      so return false - indicating an invalid input.  */
   if (inlen =3D=3D 0)
-    return ctx->i=3D=3D0;
+    return ctx->i =3D=3D 0;
=20
   while (inlen--)
     {
@@ -917,12 +909,12 @@ base2msbf_decode_ctx (struct base_decode_context *c=
tx,
       if (ctx->i =3D=3D 0)
         ctx->i =3D 8;
       --ctx->i;
-      ctx->b2ctx.octet |=3D bit << ctx->i;
+      ctx->ctx.base2.octet |=3D bit << ctx->i;
=20
-      if (ctx->i=3D=3D0)
+      if (ctx->i =3D=3D 0)
         {
-          *out++ =3D ctx->b2ctx.octet ;
-          ctx->b2ctx.octet =3D 0;
+          *out++ =3D ctx->ctx.base2.octet;
+          ctx->ctx.base2.octet =3D 0;
           ++*outlen;
           ctx->i =3D 0;
         }
--=20
2.21.0


--------------CDFB95ED5CCF23E9B247040B
Content-Type: text/x-patch;
 name="0004-cp-port-fiemap.h-to-C99.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="0004-cp-port-fiemap.h-to-C99.patch"

From 785f742280e157d9811e1800c84cfc6d3633c470 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@HIDDEN>
Date: Sat, 11 May 2019 13:09:39 -0700
Subject: [PATCH 4/4] cp: port fiemap.h to C99

* src/extent-scan.c (extent_scan_read): Adjust to change in
struct fiemap.
* src/fiemap.h (struct fiemap): Use FLEXIBLE_ARRAY_MEMBER
to port to C99.
---
 src/extent-scan.c | 3 ++-
 src/fiemap.h      | 9 ++-------
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/src/extent-scan.c b/src/extent-scan.c
index 2c9db4405..ae0d3914b 100644
--- a/src/extent-scan.c
+++ b/src/extent-scan.c
@@ -94,7 +94,8 @@ extent_scan_read (struct extent_scan *scan)
       union { struct fiemap f; char c[4096]; } fiemap_buf;
       struct fiemap *fiemap = &fiemap_buf.f;
       struct fiemap_extent *fm_extents = &fiemap->fm_extents[0];
-      enum { count = (sizeof fiemap_buf - sizeof *fiemap)/sizeof *fm_extents };
+      enum { headersize = offsetof (struct fiemap, fm_extents) };
+      enum { count = (sizeof fiemap_buf - headersize) / sizeof *fm_extents };
       verify (count > 1);
 
       /* This is required at least to initialize fiemap->fm_start,
diff --git a/src/fiemap.h b/src/fiemap.h
index 88a9fa614..bf5337381 100644
--- a/src/fiemap.h
+++ b/src/fiemap.h
@@ -51,13 +51,8 @@ struct fiemap
 
   uint32_t fm_reserved;
 
-  /* Array of mapped extents(out).
-     This is protected by the ifdef because it uses non standard
-     zero length arrays.  Note C99 has the equivalent flexible arrays,
-     but we don't use those for maximum portability to older systems.  */
-# ifdef __linux__
-  struct fiemap_extent fm_extents[0];
-# endif
+  /* Array of mapped extents(out).  */
+  struct fiemap_extent fm_extents[FLEXIBLE_ARRAY_MEMBER];
 };
 
 /* The maximum offset can be mapped for a file.  */
-- 
2.21.0


--------------CDFB95ED5CCF23E9B247040B--




Information forwarded to bug-coreutils@HIDDEN:
bug#35650; Package coreutils. Full text available.

Message received at 35650 <at> debbugs.gnu.org:


Received: (at 35650) by debbugs.gnu.org; 10 May 2019 09:50:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 10 05:50:06 2019
Received: from localhost ([127.0.0.1]:37183 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hP2AG-0002q7-7g
	for submit <at> debbugs.gnu.org; Fri, 10 May 2019 05:50:04 -0400
Received: from mail.magicbluesmoke.com ([82.195.144.49]:45108)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <P@HIDDEN>) id 1hP2AC-0002pO-ID
 for 35650 <at> debbugs.gnu.org; Fri, 10 May 2019 05:50:03 -0400
Received: from localhost.localdomain (unknown [109.78.242.23])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mail.magicbluesmoke.com (Postfix) with ESMTPSA id 337E9AC20;
 Fri, 10 May 2019 10:49:59 +0100 (IST)
Subject: Re: bug#35650: [PATCH] Improving HP-UX support
To: "Osipov, Michael" <michael.osipov@HIDDEN>, 35650 <at> debbugs.gnu.org
References: <9f26b1e7-e075-1fa7-f004-f89d8cf41c21@HIDDEN>
From: =?UTF-8?Q?P=c3=a1draig_Brady?= <P@HIDDEN>
Message-ID: <b575ac04-7b69-3a51-6e0e-684ee2492977@HIDDEN>
Date: Fri, 10 May 2019 02:49:58 -0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <9f26b1e7-e075-1fa7-f004-f89d8cf41c21@HIDDEN>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 35650
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

On 09/05/19 03:50, Osipov, Michael wrote:
> Hi folks,
> 
> please find a patch attached to properly compile and link GNU coreutils 
> 8.31 on HP-UX IA64. As of now, it does not compile out of the box.
> 
> The patch includes these changes:
> 
> * basenc.c: HP aCC does not allow anonymous unions inside structs, I 
> have named it otherwise the compilation fails
> * blake2/blake2.h: __attribute__((packed)) does not exist in HP aCC, use 
> #pragma pack
> * copy.c, mkfifo.c: disable SELinux code if it is not available
> * system.h: use __attribute(x) on a GNU-style compiler only
> * configure.ac, local.mk: use HP aCC-style linker options for libstdbuf
> 
> Compile instructions:
>> export PREFIX=/opt/ports/coreutils
>> export LIBDIR=$PREFIX/lib/hpux32
>> export CONFIGURE="./configure --prefix=$PREFIX --libdir=$LIBDIR"
>> export CPPFLAGS="-I$PREFIX/include -D_INCLUDE_STDC__SOURCE_199901"
>> export LDFLAGS="-L$LIBDIR"
>> autoreconf -fi
>> FORCE_UNSAFE_CONFIGURE=1 gl_cv_have_include_next=no ac_cv_func_getacl=no ac_cv_func_aclsort=no ac_cv_header_sys_bitypes_h=no $CONFIGURE
>> gmake install
> The patch isn't perfect, some issues need to be discussion because I 
> don't know yet how to solve them:
> * copy.c, mkfifo.c: for some reason the code compiles w/o changes 
> although SELinux is not available

These selinux interfaces are provided by gnulib,
and so should automatically by ignored on HPUX.
I.E. I'm not sure this part is needed at all.

> * I have disabled the compilation of b2sum completely because gmake 
> repeatedly quits with:
>> gmake[2]: *** No rule to make target '/var/tmp/AAA000546.i', needed by 'src/b2sum-md5sum.o'.  Stop.
>> gmake[2]: Leaving directory '/tmp/system-compile/gnu/coreutils-8.31'
>> gmake[1]: *** [Makefile:12647: all-recursive] Error 1
>> gmake[1]: Leaving directory '/tmp/system-compile/gnu/coreutils-8.31'
>> gmake: *** [Makefile:6827: all] Error 2


> diff -ur src/blake2/blake2.h src/blake2/blake2.h
> --- src/blake2/blake2.h	2018-05-14 06:20:24 +0000
> +++ src/blake2/blake2.h	2019-05-08 15:08:42 +0000
> @@ -21,8 +21,12 @@
>  #if defined(_MSC_VER)
>  #define BLAKE2_PACKED(x) __pragma(pack(push, 1)) x __pragma(pack(pop))
>  #else
> +#ifdef __hpux
> +#define BLAKE2_PACKED(x) x
>
> +#else
>  #define BLAKE2_PACKED(x) x __attribute__((packed))
>  #endif
> +#endif
>  
>  #if defined(__cplusplus)
>  extern "C" {
> @@ -86,6 +90,9 @@
>      size_t        outlen;
>    } blake2bp_state;
>  
> +#ifdef __hpux
> +#pragma pack 1
> +#endif
>  
>    BLAKE2_PACKED(struct blake2s_param__
>    {
> @@ -102,9 +109,15 @@
>      uint8_t  salt[BLAKE2S_SALTBYTES]; /* 24 */
>      uint8_t  personal[BLAKE2S_PERSONALBYTES];  /* 32 */
>    });
> +#ifdef __hpux
> +#pragma pack
> +#endif

That's a bit awkward,
also this file comes from blake2 upstream source on github,
so you might want to broach the change there.

> diff -ur src/system.h src/system.h
> --- src/system.h	2019-01-05 11:36:22 +0000
> +++ src/system.h	2019-05-08 15:19:29 +0000
> @@ -422,6 +422,10 @@
>  # endif
>  #endif
>  
> +#ifndef __GNUC__
> +#define __attribute(x) /* empty */
> +#endif

The only use of __attribute is:

src/libstdbuf.c:/* Use __attribute to avoid elision of __attribute__ on SUNPRO_C etc.  */
src/libstdbuf.c:static void __attribute ((constructor))

So we should probably have special __hpux handling in that file
rather than doing the above.

This is all dependent on stdbuf actually working on your platform.
Possibly the most appropriate change would be to use __attribute
rather than __attribute__ in configure.ac

>  #ifndef ATTRIBUTE_NORETURN
>  # define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
>  #endif
> --- configure.ac	2019-03-04 08:40:55 +0000
> +++ configure.ac	2019-05-08 15:40:41 +0000
> @@ -481,8 +481,8 @@
>  gl_WARN_ADD([-errwarn], [CFLAGS])
>  # Put this message here, after gl_WARN_ADD's chatter.
>  AC_MSG_CHECKING([whether this system supports stdbuf])
> -CFLAGS="-fPIC $CFLAGS"
> -LDFLAGS="-shared $LDFLAGS"
> +CFLAGS="+z $CFLAGS"
> +LDFLAGS="-b $LDFLAGS"

This would need to be conditional,
again if stdbuf does actually work on hpux.

thanks,
Pádraig





Information forwarded to bug-coreutils@HIDDEN:
bug#35650; Package coreutils. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 9 May 2019 14:33:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 09 10:33:53 2019
Received: from localhost ([127.0.0.1]:36026 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hOk7K-0004Hz-Qn
	for submit <at> debbugs.gnu.org; Thu, 09 May 2019 10:33:53 -0400
Received: from eggs.gnu.org ([209.51.188.92]:33065)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <michael.osipov@HIDDEN>) id 1hOgdJ-00075F-20
 for submit <at> debbugs.gnu.org; Thu, 09 May 2019 06:50:39 -0400
Received: from lists.gnu.org ([209.51.188.17]:44793)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <michael.osipov@HIDDEN>)
 id 1hOgdD-0006BS-RK
 for submit <at> debbugs.gnu.org; Thu, 09 May 2019 06:50:31 -0400
Received: from eggs.gnu.org ([209.51.188.92]:47439)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <michael.osipov@HIDDEN>) id 1hOgdB-0001Ff-Ln
 for bug-coreutils@HIDDEN; Thu, 09 May 2019 06:50:31 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_HI,
 URIBL_BLOCKED autolearn=disabled version=3.3.2
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <michael.osipov@HIDDEN>) id 1hOgd5-00063m-SD
 for bug-coreutils@HIDDEN; Thu, 09 May 2019 06:50:27 -0400
Received: from david.siemens.de ([192.35.17.14]:53379)
 by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <michael.osipov@HIDDEN>)
 id 1hOgd5-0005uz-HU
 for bug-coreutils@HIDDEN; Thu, 09 May 2019 06:50:23 -0400
Received: from mail3.siemens.de (mail3.siemens.de [139.25.208.14])
 by david.siemens.de (8.15.2/8.15.2) with ESMTPS id x49AoJZT018927
 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK)
 for <bug-coreutils@HIDDEN>; Thu, 9 May 2019 12:50:19 +0200
Received: from [147.54.65.49] (MD11GXTC.ad001.siemens.net [147.54.65.49])
 by mail3.siemens.de (8.15.2/8.15.2) with ESMTP id x49AoH41013072
 for <bug-coreutils@HIDDEN>; Thu, 9 May 2019 12:50:17 +0200
From: "Osipov, Michael" <michael.osipov@HIDDEN>
Subject: [PATCH] Improving HP-UX support
To: bug-coreutils@HIDDEN
Message-ID: <9f26b1e7-e075-1fa7-f004-f89d8cf41c21@HIDDEN>
Date: Thu, 9 May 2019 12:50:16 +0200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101
 Thunderbird/60.6.1
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------CF13B4556E5C6122759E6339"
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x
X-Received-From: 192.35.17.14
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Spam-Score: -1.6 (-)
X-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Thu, 09 May 2019 10:33:48 -0400
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.6 (--)

This is a multi-part message in MIME format.
--------------CF13B4556E5C6122759E6339
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi folks,

please find a patch attached to properly compile and link GNU coreutils 
8.31 on HP-UX IA64. As of now, it does not compile out of the box.

The patch includes these changes:

* basenc.c: HP aCC does not allow anonymous unions inside structs, I 
have named it otherwise the compilation fails
* blake2/blake2.h: __attribute__((packed)) does not exist in HP aCC, use 
#pragma pack
* copy.c, mkfifo.c: disable SELinux code if it is not available
* system.h: use __attribute(x) on a GNU-style compiler only
* configure.ac, local.mk: use HP aCC-style linker options for libstdbuf

Compile instructions:
> export PREFIX=/opt/ports/coreutils
> export LIBDIR=$PREFIX/lib/hpux32
> export CONFIGURE="./configure --prefix=$PREFIX --libdir=$LIBDIR"
> export CPPFLAGS="-I$PREFIX/include -D_INCLUDE_STDC__SOURCE_199901"
> export LDFLAGS="-L$LIBDIR"
> autoreconf -fi
> FORCE_UNSAFE_CONFIGURE=1 gl_cv_have_include_next=no ac_cv_func_getacl=no ac_cv_func_aclsort=no ac_cv_header_sys_bitypes_h=no $CONFIGURE
> gmake install

The patch isn't perfect, some issues need to be discussion because I 
don't know yet how to solve them:
* copy.c, mkfifo.c: for some reason the code compiles w/o changes 
although SELinux is not available
* I have disabled the compilation of b2sum completely because gmake 
repeatedly quits with:
> gmake[2]: *** No rule to make target '/var/tmp/AAA000546.i', needed by 'src/b2sum-md5sum.o'.  Stop.
> gmake[2]: Leaving directory '/tmp/system-compile/gnu/coreutils-8.31'
> gmake[1]: *** [Makefile:12647: all-recursive] Error 1
> gmake[1]: Leaving directory '/tmp/system-compile/gnu/coreutils-8.31'
> gmake: *** [Makefile:6827: all] Error 2
* The configuration of PIC and shared library is for HP-UX now. At best 
autotools would determine that with some default m4 file.

Note: I am not subscribed to this list.

Regards,

Michael


--------------CF13B4556E5C6122759E6339
Content-Type: text/plain; charset=UTF-8;
 name="coreutils.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="coreutils.patch"

ZGlmZiAtdXIgc3JjL2Jhc2VuYy5jIHNyYy9iYXNlbmMuYwotLS0gc3JjL2Jhc2VuYy5jCTIw
MTktMDItMTEgMDI6NTE6NDcgKzAwMDAKKysrIHNyYy9iYXNlbmMuYwkyMDE5LTA1LTA4IDE1
OjA4OjUwICswMDAwCkBAIC0yNDcsNyArMjQ3LDcgQEAKICAgICBzdHJ1Y3QgYmFzZTE2X2Rl
Y29kZV9jb250ZXh0IGIxNmN0eDsKICAgICBzdHJ1Y3QgYmFzZTJfZGVjb2RlX2NvbnRleHQg
IGIyY3R4OwogICAgIHN0cnVjdCB6ODVfZGVjb2RlX2NvbnRleHQgICAgejg1Y3R4OwotICB9
OworICB9IGJkY29udGV4dDsKICAgY2hhciAqaW5idWY7CiAgIHNpemVfdCBidWZzaXplOwog
fTsKQEAgLTI3MSw3ICsyNzEsNyBAQAogc3RhdGljIHZvaWQKIGJhc2U2NF9kZWNvZGVfY3R4
X2luaXRfd3JhcHBlciAoc3RydWN0IGJhc2VfZGVjb2RlX2NvbnRleHQgKmN0eCkKIHsKLSAg
YmFzZTY0X2RlY29kZV9jdHhfaW5pdCAoJmN0eC0+YjY0Y3R4KTsKKyAgYmFzZTY0X2RlY29k
ZV9jdHhfaW5pdCAoJmN0eC0+YmRjb250ZXh0LmI2NGN0eCk7CiB9CiAKIHN0YXRpYyBib29s
CkBAIC0yNzksOCArMjc5LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIgKnJlc3RyaWN0IGluLCBzaXplX3QgaW5sZW4sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjaGFyICpyZXN0cmljdCBvdXQsIHNpemVfdCAqb3V0bGVuKQogewotICBib29s
IGIgPSBiYXNlNjRfZGVjb2RlX2N0eCAoJmN0eC0+YjY0Y3R4LCBpbiwgaW5sZW4sIG91dCwg
b3V0bGVuKTsKLSAgY3R4LT5pID0gY3R4LT5iNjRjdHguaTsKKyAgYm9vbCBiID0gYmFzZTY0
X2RlY29kZV9jdHggKCZjdHgtPmJkY29udGV4dC5iNjRjdHgsIGluLCBpbmxlbiwgb3V0LCBv
dXRsZW4pOworICBjdHgtPmkgPSBjdHgtPmJkY29udGV4dC5iNjRjdHguaTsKICAgcmV0dXJu
IGI7CiB9CiAKQEAgLTMyOSw3ICszMjksNyBAQAogc3RhdGljIHZvaWQKIGJhc2U2NHVybF9k
ZWNvZGVfY3R4X2luaXRfd3JhcHBlciAoc3RydWN0IGJhc2VfZGVjb2RlX2NvbnRleHQgKmN0
eCkKIHsKLSAgYmFzZTY0X2RlY29kZV9jdHhfaW5pdCAoJmN0eC0+YjY0Y3R4KTsKKyAgYmFz
ZTY0X2RlY29kZV9jdHhfaW5pdCAoJmN0eC0+YmRjb250ZXh0LmI2NGN0eCk7CiAgIGluaXRf
aW5idWYgKGN0eCk7CiB9CiAKQEAgLTM1OSw4ICszNTksOCBAQAogICAgICAgKytwOwogICAg
IH0KIAotICBib29sIGIgPSBiYXNlNjRfZGVjb2RlX2N0eCAoJmN0eC0+YjY0Y3R4LCBjdHgt
PmluYnVmLCBpbmxlbiwgb3V0LCBvdXRsZW4pOwotICBjdHgtPmkgPSBjdHgtPmI2NGN0eC5p
OworICBib29sIGIgPSBiYXNlNjRfZGVjb2RlX2N0eCAoJmN0eC0+YmRjb250ZXh0LmI2NGN0
eCwgY3R4LT5pbmJ1ZiwgaW5sZW4sIG91dCwgb3V0bGVuKTsKKyAgY3R4LT5pID0gY3R4LT5i
ZGNvbnRleHQuYjY0Y3R4Lmk7CiAKICAgcmV0dXJuIGI7CiB9CkBAIC0zNzYsNyArMzc2LDcg
QEAKIHN0YXRpYyB2b2lkCiBiYXNlMzJfZGVjb2RlX2N0eF9pbml0X3dyYXBwZXIgKHN0cnVj
dCBiYXNlX2RlY29kZV9jb250ZXh0ICpjdHgpCiB7Ci0gIGJhc2UzMl9kZWNvZGVfY3R4X2lu
aXQgKCZjdHgtPmIzMmN0eCk7CisgIGJhc2UzMl9kZWNvZGVfY3R4X2luaXQgKCZjdHgtPmJk
Y29udGV4dC5iMzJjdHgpOwogfQogCiBzdGF0aWMgYm9vbApAQCAtMzg0LDggKzM4NCw4IEBA
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpyZXN0cmljdCBpbiwg
c2l6ZV90IGlubGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqcmVzdHJp
Y3Qgb3V0LCBzaXplX3QgKm91dGxlbikKIHsKLSAgYm9vbCBiID0gYmFzZTMyX2RlY29kZV9j
dHggKCZjdHgtPmIzMmN0eCwgaW4sIGlubGVuLCBvdXQsIG91dGxlbik7Ci0gIGN0eC0+aSA9
IGN0eC0+YjMyY3R4Lmk7CisgIGJvb2wgYiA9IGJhc2UzMl9kZWNvZGVfY3R4ICgmY3R4LT5i
ZGNvbnRleHQuYjMyY3R4LCBpbiwgaW5sZW4sIG91dCwgb3V0bGVuKTsKKyAgY3R4LT5pID0g
Y3R4LT5iZGNvbnRleHQuYjMyY3R4Lmk7CiAgIHJldHVybiBiOwogfQogCkBAIC00NTcsNyAr
NDU3LDcgQEAKIHN0YXRpYyB2b2lkCiBiYXNlMzJoZXhfZGVjb2RlX2N0eF9pbml0X3dyYXBw
ZXIgKHN0cnVjdCBiYXNlX2RlY29kZV9jb250ZXh0ICpjdHgpCiB7Ci0gIGJhc2UzMl9kZWNv
ZGVfY3R4X2luaXQgKCZjdHgtPmIzMmN0eCk7CisgIGJhc2UzMl9kZWNvZGVfY3R4X2luaXQg
KCZjdHgtPmJkY29udGV4dC5iMzJjdHgpOwogICBpbml0X2luYnVmIChjdHgpOwogfQogCkBA
IC00ODEsOCArNDgxLDggQEAKICAgICAgICsraW47CiAgICAgfQogCi0gIGJvb2wgYiA9IGJh
c2UzMl9kZWNvZGVfY3R4ICgmY3R4LT5iMzJjdHgsIGN0eC0+aW5idWYsIGlubGVuLCBvdXQs
IG91dGxlbik7Ci0gIGN0eC0+aSA9IGN0eC0+YjMyY3R4Lmk7CisgIGJvb2wgYiA9IGJhc2Uz
Ml9kZWNvZGVfY3R4ICgmY3R4LT5iZGNvbnRleHQuYjMyY3R4LCBjdHgtPmluYnVmLCBpbmxl
biwgb3V0LCBvdXRsZW4pOworICBjdHgtPmkgPSBjdHgtPmJkY29udGV4dC5iMzJjdHguaTsK
IAogICByZXR1cm4gYjsKIH0KQEAgLTUxOSw3ICs1MTksNyBAQAogYmFzZTE2X2RlY29kZV9j
dHhfaW5pdCAoc3RydWN0IGJhc2VfZGVjb2RlX2NvbnRleHQgKmN0eCkKIHsKICAgaW5pdF9p
bmJ1ZiAoY3R4KTsKLSAgY3R4LT5iMTZjdHguaGF2ZV9uaWJibGUgPSBmYWxzZTsKKyAgY3R4
LT5iZGNvbnRleHQuYjE2Y3R4LmhhdmVfbmliYmxlID0gZmFsc2U7CiAgIGN0eC0+aSA9IDE7
CiB9CiAKQEAgLTUzOCw3ICs1MzgsNyBAQAogICAgICBpZiB0aGVyZSBpcyBhIGRhbmdsaW5n
IGhpZ2ggbmliYmxlIC0gd2UgYXJlIG1pc3NpbmcgdGhlIGxvdyBuaWJibGUsCiAgICAgIHNv
IHJldHVybiBmYWxzZSAtIGluZGljYXRpbmcgYW4gaW52YWxpZCBpbnB1dC4gICovCiAgIGlm
IChpbmxlbiA9PSAwKQotICAgIHJldHVybiAhY3R4LT5iMTZjdHguaGF2ZV9uaWJibGU7Cisg
ICAgcmV0dXJuICFjdHgtPmJkY29udGV4dC5iMTZjdHguaGF2ZV9uaWJibGU7CiAKICAgd2hp
bGUgKGlubGVuLS0pCiAgICAgewpAQCAtNTU3LDE4ICs1NTcsMTggQEAKIAogICAgICAgKytp
bjsKIAotICAgICAgaWYgKGN0eC0+YjE2Y3R4LmhhdmVfbmliYmxlKQorICAgICAgaWYgKGN0
eC0+YmRjb250ZXh0LmIxNmN0eC5oYXZlX25pYmJsZSkKICAgICAgICAgewogICAgICAgICAg
IC8qIGhhdmUgYm90aCBuaWJibGVzLCB3cml0ZSBvY3RldCAqLwotICAgICAgICAgICpvdXQr
KyA9IChjdHgtPmIxNmN0eC5uaWJibGU8PDQpICsgbmliOworICAgICAgICAgICpvdXQrKyA9
IChjdHgtPmJkY29udGV4dC5iMTZjdHgubmliYmxlPDw0KSArIG5pYjsKICAgICAgICAgICAr
Kygqb3V0bGVuKTsKICAgICAgICAgfQogICAgICAgZWxzZQogICAgICAgICB7CiAgICAgICAg
ICAgLyogU3RvcmUgaGlnaGVyIG5pYmJsZSB1bnRpbCBuZXh0IG9uZSBhcnJpdmVzICovCi0g
ICAgICAgICAgY3R4LT5iMTZjdHgubmliYmxlID0gbmliOworICAgICAgICAgIGN0eC0+YmRj
b250ZXh0LmIxNmN0eC5uaWJibGUgPSBuaWI7CiAgICAgICAgIH0KLSAgICAgIGN0eC0+YjE2
Y3R4LmhhdmVfbmliYmxlID0gIWN0eC0+YjE2Y3R4LmhhdmVfbmliYmxlOworICAgICAgY3R4
LT5iZGNvbnRleHQuYjE2Y3R4LmhhdmVfbmliYmxlID0gIWN0eC0+YmRjb250ZXh0LmIxNmN0
eC5oYXZlX25pYmJsZTsKICAgICB9CiAgIHJldHVybiB0cnVlOwogfQpAQCAtNjU3LDIwICs2
NTcsMjAgQEAKIHo4NV9kZWNvZGVfY3R4X2luaXQgKHN0cnVjdCBiYXNlX2RlY29kZV9jb250
ZXh0ICpjdHgpCiB7CiAgIGluaXRfaW5idWYgKGN0eCk7Ci0gIGN0eC0+ejg1Y3R4LmkgPSAw
OworICBjdHgtPmJkY29udGV4dC56ODVjdHguaSA9IDA7CiAgIGN0eC0+aSA9IDE7CiB9CiAK
IAogIyBkZWZpbmUgWjg1X0xPX0NUWF9UT18zMkJJVF9WQUwoY3R4KSBcCi0gICgoKGN0eCkt
Pno4NWN0eC5vY3RldHNbMV0gKiA4NSAqIDg1ICogODUpICsgICBcCi0gICAoKGN0eCktPno4
NWN0eC5vY3RldHNbMl0gKiA4NSAqIDg1KSArCSAgICBcCi0gICAoKGN0eCktPno4NWN0eC5v
Y3RldHNbM10gKiA4NSkgKwkJICAgIFwKLSAgICgoY3R4KS0+ejg1Y3R4Lm9jdGV0c1s0XSkp
CisgICgoKGN0eCktPmJkY29udGV4dC56ODVjdHgub2N0ZXRzWzFdICogODUgKiA4NSAqIDg1
KSArICAgXAorICAgKChjdHgpLT5iZGNvbnRleHQuejg1Y3R4Lm9jdGV0c1syXSAqIDg1ICog
ODUpICsJICAgIFwKKyAgICgoY3R4KS0+YmRjb250ZXh0Lno4NWN0eC5vY3RldHNbM10gKiA4
NSkgKwkJICAgIFwKKyAgICgoY3R4KS0+YmRjb250ZXh0Lno4NWN0eC5vY3RldHNbNF0pKQog
CiAKICMgZGVmaW5lIFo4NV9ISV9DVFhfVE9fMzJCSVRfVkFMKGN0eCkgXAotICAoKGN0eCkt
Pno4NWN0eC5vY3RldHNbMF0gKiA4NSAqIDg1ICogODUgKiA4NSApCisgICgoY3R4KS0+YmRj
b250ZXh0Lno4NWN0eC5vY3RldHNbMF0gKiA4NSAqIDg1ICogODUgKiA4NSApCiAKIC8qCiAg
MCAtICA5OiAgMCAxIDIgMyA0IDUgNiA3IDggOQpAQCAtNzEzLDcgKzcxMyw3IEBACiAgICAg
IHNvIHJldHVybiBmYWxzZSAtIGluZGljYXRpbmcgYW4gaW52YWxpZCBpbnB1dC4gICovCiAg
IGlmIChpbmxlbiA9PSAwKQogICAgIHsKLSAgICAgIGlmIChjdHgtPno4NWN0eC5pID4gMCkK
KyAgICAgIGlmIChjdHgtPmJkY29udGV4dC56ODVjdHguaSA+IDApCiAgICAgICAgIHsKICAg
ICAgICAgICAvKiBaODUgdmFyaWFudCBkb2VzIG5vdCBhbGxvdyBwYWRkaW5nIC0gaW5wdXQg
bXVzdAogICAgICAgICAgICAgIGJlIGEgbXVsdGlwbGUgb2YgNSAtIHNvIHJldHVybiBlcnJv
ci4gICovCkBAIC03NDQsOCArNzQ0LDggQEAKIAogICAgICAgKytpbjsKIAotICAgICAgY3R4
LT56ODVjdHgub2N0ZXRzW2N0eC0+ejg1Y3R4LmkrK10gPSBjOwotICAgICAgaWYgKGN0eC0+
ejg1Y3R4LmkgPT0gNSkKKyAgICAgIGN0eC0+YmRjb250ZXh0Lno4NWN0eC5vY3RldHNbY3R4
LT5iZGNvbnRleHQuejg1Y3R4LmkrK10gPSBjOworICAgICAgaWYgKGN0eC0+YmRjb250ZXh0
Lno4NWN0eC5pID09IDUpCiAgICAgICAgIHsKICAgICAgICAgICAvKiBkZWNvZGUgdGhlIGxv
d2VzdCA0IG9jdGV0cywgdGhlbiBjaGVjayBmb3Igb3ZlcmZsb3dzLiAgKi8KICAgICAgICAg
ICB1bnNpZ25lZCBpbnQgdmFsID0gWjg1X0xPX0NUWF9UT18zMkJJVF9WQUwgKGN0eCk7CkBA
IC03NjEsOCArNzYxLDggQEAKICAgICAgICAgICAgICAnJScgKGRlY29kZWQgdG8gODIpIGlu
IHRoZSBoaWdoZXN0IG9jdGV0IGNhbiBmaXQgaW4gdW5zaWduZWQgaW50CiAgICAgICAgICAg
ICAgaWYgdGhlIG90aGVyIDQgb2N0ZXRzIGRlY29kZSB0byBhIHNtYWxsIGVub3VnaCB2YWx1
ZS4KICAgICAgICAgICAqLwotICAgICAgICAgIGlmICgoY3R4LT56ODVjdHgub2N0ZXRzWzBd
ID09IDg0IHx8IGN0eC0+ejg1Y3R4Lm9jdGV0c1swXSA9PSA4MykgXAotICAgICAgICAgICAg
ICB8fCAoY3R4LT56ODVjdHgub2N0ZXRzWzBdID09IDgyIFwKKyAgICAgICAgICBpZiAoKGN0
eC0+YmRjb250ZXh0Lno4NWN0eC5vY3RldHNbMF0gPT0gODQgfHwgY3R4LT5iZGNvbnRleHQu
ejg1Y3R4Lm9jdGV0c1swXSA9PSA4MykgXAorICAgICAgICAgICAgICB8fCAoY3R4LT5iZGNv
bnRleHQuejg1Y3R4Lm9jdGV0c1swXSA9PSA4MiBcCiAgICAgICAgICAgICAgICAgICAmJiAo
dmFsID4gMHhGRkZGRkZGRiAtIDgyKjg1Kjg1Kjg1Kjg1VSkpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCkBAIC03NzYsMTAgKzc3NiwxMCBAQAogCiAgICAgICAgICAgKm91dGxl
biArPSA0OwogCi0gICAgICAgICAgY3R4LT56ODVjdHguaSA9IDA7CisgICAgICAgICAgY3R4
LT5iZGNvbnRleHQuejg1Y3R4LmkgPSAwOwogICAgICAgICB9CiAgICAgfQotICBjdHgtPmkg
PSBjdHgtPno4NWN0eC5pOworICBjdHgtPmkgPSBjdHgtPmJkY29udGV4dC56ODVjdHguaTsK
ICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTgzOCw3ICs4MzgsNyBAQAogYmFzZTJfZGVjb2Rl
X2N0eF9pbml0IChzdHJ1Y3QgYmFzZV9kZWNvZGVfY29udGV4dCAqY3R4KQogewogICBpbml0
X2luYnVmIChjdHgpOwotICBjdHgtPmIyY3R4Lm9jdGV0ID0gMDsKKyAgY3R4LT5iZGNvbnRl
eHQuYjJjdHgub2N0ZXQgPSAwOwogICBjdHgtPmkgPSAwOwogfQogCkBAIC04NzAsMTMgKzg3
MCwxMyBAQAogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgIGJvb2wgYml0ID0gKCpp
biA9PSAnMScpOwotICAgICAgY3R4LT5iMmN0eC5vY3RldCB8PSBiaXQgPDwgY3R4LT5pOwor
ICAgICAgY3R4LT5iZGNvbnRleHQuYjJjdHgub2N0ZXQgfD0gYml0IDw8IGN0eC0+aTsKICAg
ICAgICsrY3R4LT5pOwogCiAgICAgICBpZiAoY3R4LT5pPT04KQogICAgICAgICB7Ci0gICAg
ICAgICAgKm91dCsrID0gY3R4LT5iMmN0eC5vY3RldCA7Ci0gICAgICAgICAgY3R4LT5iMmN0
eC5vY3RldCA9IDA7CisgICAgICAgICAgKm91dCsrID0gY3R4LT5iZGNvbnRleHQuYjJjdHgu
b2N0ZXQgOworICAgICAgICAgIGN0eC0+YmRjb250ZXh0LmIyY3R4Lm9jdGV0ID0gMDsKICAg
ICAgICAgICArKypvdXRsZW47CiAgICAgICAgICAgY3R4LT5pID0gMDsKICAgICAgICAgfQpA
QCAtOTE3LDEyICs5MTcsMTIgQEAKICAgICAgIGlmIChjdHgtPmkgPT0gMCkKICAgICAgICAg
Y3R4LT5pID0gODsKICAgICAgIC0tY3R4LT5pOwotICAgICAgY3R4LT5iMmN0eC5vY3RldCB8
PSBiaXQgPDwgY3R4LT5pOworICAgICAgY3R4LT5iZGNvbnRleHQuYjJjdHgub2N0ZXQgfD0g
Yml0IDw8IGN0eC0+aTsKIAogICAgICAgaWYgKGN0eC0+aT09MCkKICAgICAgICAgewotICAg
ICAgICAgICpvdXQrKyA9IGN0eC0+YjJjdHgub2N0ZXQgOwotICAgICAgICAgIGN0eC0+YjJj
dHgub2N0ZXQgPSAwOworICAgICAgICAgICpvdXQrKyA9IGN0eC0+YmRjb250ZXh0LmIyY3R4
Lm9jdGV0IDsKKyAgICAgICAgICBjdHgtPmJkY29udGV4dC5iMmN0eC5vY3RldCA9IDA7CiAg
ICAgICAgICAgKysqb3V0bGVuOwogICAgICAgICAgIGN0eC0+aSA9IDA7CiAgICAgICAgIH0K
ZGlmZiAtdXIgc3JjL2JsYWtlMi9ibGFrZTIuaCBzcmMvYmxha2UyL2JsYWtlMi5oCi0tLSBz
cmMvYmxha2UyL2JsYWtlMi5oCTIwMTgtMDUtMTQgMDY6MjA6MjQgKzAwMDAKKysrIHNyYy9i
bGFrZTIvYmxha2UyLmgJMjAxOS0wNS0wOCAxNTowODo0MiArMDAwMApAQCAtMjEsOCArMjEs
MTIgQEAKICNpZiBkZWZpbmVkKF9NU0NfVkVSKQogI2RlZmluZSBCTEFLRTJfUEFDS0VEKHgp
IF9fcHJhZ21hKHBhY2socHVzaCwgMSkpIHggX19wcmFnbWEocGFjayhwb3ApKQogI2Vsc2UK
KyNpZmRlZiBfX2hwdXgKKyNkZWZpbmUgQkxBS0UyX1BBQ0tFRCh4KSB4CisjZWxzZQogI2Rl
ZmluZSBCTEFLRTJfUEFDS0VEKHgpIHggX19hdHRyaWJ1dGVfXygocGFja2VkKSkKICNlbmRp
ZgorI2VuZGlmCiAKICNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogZXh0ZXJuICJDIiB7CkBA
IC04Niw2ICs5MCw5IEBACiAgICAgc2l6ZV90ICAgICAgICBvdXRsZW47CiAgIH0gYmxha2Uy
YnBfc3RhdGU7CiAKKyNpZmRlZiBfX2hwdXgKKyNwcmFnbWEgcGFjayAxCisjZW5kaWYKIAog
ICBCTEFLRTJfUEFDS0VEKHN0cnVjdCBibGFrZTJzX3BhcmFtX18KICAgewpAQCAtMTAyLDkg
KzEwOSwxNSBAQAogICAgIHVpbnQ4X3QgIHNhbHRbQkxBS0UyU19TQUxUQllURVNdOyAvKiAy
NCAqLwogICAgIHVpbnQ4X3QgIHBlcnNvbmFsW0JMQUtFMlNfUEVSU09OQUxCWVRFU107ICAv
KiAzMiAqLwogICB9KTsKKyNpZmRlZiBfX2hwdXgKKyNwcmFnbWEgcGFjaworI2VuZGlmCiAK
ICAgdHlwZWRlZiBzdHJ1Y3QgYmxha2Uyc19wYXJhbV9fIGJsYWtlMnNfcGFyYW07CiAKKyNp
ZmRlZiBfX2hwdXgKKyNwcmFnbWEgcGFjayAxCisjZW5kaWYKICAgQkxBS0UyX1BBQ0tFRChz
dHJ1Y3QgYmxha2UyYl9wYXJhbV9fCiAgIHsKICAgICB1aW50OF90ICBkaWdlc3RfbGVuZ3Ro
OyAvKiAxICovCkBAIC0xMjAsNiArMTMzLDkgQEAKICAgICB1aW50OF90ICBzYWx0W0JMQUtF
MkJfU0FMVEJZVEVTXTsgLyogNDggKi8KICAgICB1aW50OF90ICBwZXJzb25hbFtCTEFLRTJC
X1BFUlNPTkFMQllURVNdOyAgLyogNjQgKi8KICAgfSk7CisjaWZkZWYgX19ocHV4CisjcHJh
Z21hIHBhY2sKKyNlbmRpZgogCiAgIHR5cGVkZWYgc3RydWN0IGJsYWtlMmJfcGFyYW1fXyBi
bGFrZTJiX3BhcmFtOwogCmRpZmYgLXVyIHNyYy9jb3B5LmMgc3JjL2NvcHkuYwotLS0gc3Jj
L2NvcHkuYwkyMDE5LTAxLTA1IDExOjM2OjIyICswMDAwCisrKyBzcmMvY29weS5jCTIwMTkt
MDUtMDggMTc6MjU6MjIgKzAwMDAKQEAgLTIxLDcgKzIxLDkgQEAKICNpbmNsdWRlIDxhc3Nl
cnQuaD4KICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4K
KyNpZiBIQVZFX1NFTElOVVhfU0VMSU5VWF9ICiAjaW5jbHVkZSA8c2VsaW51eC9zZWxpbnV4
Lmg+CisjZW5kaWYgLyogSEFWRV9TRUxJTlVYX1NFTElOVVhfSCAqLwogCiAjaWYgSEFWRV9I
VVJEX0gKICMgaW5jbHVkZSA8aHVyZC5oPgpAQCAtODkzLDYgKzg5NSw3IEBACiBzZXRfcHJv
Y2Vzc19zZWN1cml0eV9jdHggKGNoYXIgY29uc3QgKnNyY19uYW1lLCBjaGFyIGNvbnN0ICpk
c3RfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZV90IG1vZGUsIGJvb2wg
bmV3X2RzdCwgY29uc3Qgc3RydWN0IGNwX29wdGlvbnMgKngpCiB7CisjaWYgSEFWRV9TRUxJ
TlVYX1NFTElOVVhfSAogICBpZiAoeC0+cHJlc2VydmVfc2VjdXJpdHlfY29udGV4dCkKICAg
ICB7CiAgICAgICAvKiBTZXQgdGhlIGRlZmF1bHQgY29udGV4dCBmb3IgdGhlIHByb2Nlc3Mg
dG8gbWF0Y2ggdGhlIHNvdXJjZS4gICovCkBAIC05NDAsNiArOTQzLDcgQEAKICAgICAgICAg
ICAgICAgICAgcXVvdGVhZiAoZHN0X25hbWUpKTsKICAgICAgICAgfQogICAgIH0KKyNlbmRp
ZiAvKiBIQVZFX1NFTElOVVhfU0VMSU5VWF9IICovCiAKICAgcmV0dXJuIHRydWU7CiB9CkBA
IC0xMDY2LDYgKzEwNzAsNyBAQAogICAgICAgZGVzdF9kZXNjID0gb3BlbiAoZHN0X25hbWUs
IG9wZW5fZmxhZ3MpOwogICAgICAgZGVzdF9lcnJubyA9IGVycm5vOwogCisjaWYgSEFWRV9T
RUxJTlVYX1NFTElOVVhfSAogICAgICAgLyogV2hlbiB1c2luZyBjcCAtLXByZXNlcnZlPWNv
bnRleHQgdG8gY29weSB0byBhbiBleGlzdGluZyBkZXN0aW5hdGlvbiwKICAgICAgICAgIHJl
c2V0IHRoZSBjb250ZXh0IGFzIHBlciB0aGUgZGVmYXVsdCBjb250ZXh0LCB3aGljaCBoYXMg
YWxyZWFkeSBiZWVuCiAgICAgICAgICBzZXQgYWNjb3JkaW5nIHRvIHRoZSBzcmMuCkBAIC0x
MDg2LDYgKzEwOTEsNyBAQAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAg
ICAgICAgfQorI2VuZGlmIC8qIEhBVkVfU0VMSU5VWF9TRUxJTlVYX0ggKi8KIAogICAgICAg
aWYgKGRlc3RfZGVzYyA8IDAgJiYgeC0+dW5saW5rX2Rlc3RfYWZ0ZXJfZmFpbGVkX29wZW4p
CiAgICAgICAgIHsKQEAgLTE3NjgsOSArMTc3NCwxMSBAQAogc3RhdGljIHZvaWQKIHJlc3Rv
cmVfZGVmYXVsdF9mc2NyZWF0ZWNvbl9vcl9kaWUgKHZvaWQpCiB7CisjaWYgSEFWRV9TRUxJ
TlVYX1NFTElOVVhfSAogICBpZiAoc2V0ZnNjcmVhdGVjb24gKE5VTEwpICE9IDApCiAgICAg
ZGllIChFWElUX0ZBSUxVUkUsIGVycm5vLAogICAgICAgICAgXygiZmFpbGVkIHRvIHJlc3Rv
cmUgdGhlIGRlZmF1bHQgZmlsZSBjcmVhdGlvbiBjb250ZXh0IikpOworI2VuZGlmIC8qIEhB
VkVfU0VMSU5VWF9TRUxJTlVYX0ggKi8KIH0KIAogLyogQ3JlYXRlIGEgaGFyZCBsaW5rIERT
VF9OQU1FIHRvIFNSQ19OQU1FLCBob25vcmluZyB0aGUgUkVQTEFDRSwgVkVSQk9TRSBhbmQK
QEAgLTI0ODMsMTIgKzI0OTEsMTQgQEAKIAogICBkZWxheWVkX29rID0gdHJ1ZTsKIAorI2lm
IEhBVkVfU0VMSU5VWF9TRUxJTlVYX0gKICAgLyogSWYgcmVxdWlyZWQsIHNldCB0aGUgZGVm
YXVsdCBzZWN1cml0eSBjb250ZXh0IGZvciBuZXcgZmlsZXMuCiAgICAgIEFsc28gZm9yIGV4
aXN0aW5nIGZpbGVzIHRoaXMgaXMgdXNlZCBhcyBhIHJlZmVyZW5jZQogICAgICB3aGVuIGNv
cHlpbmcgdGhlIGNvbnRleHQgd2l0aCAtLXByZXNlcnZlPWNvbnRleHQuCiAgICAgIEZJWE1F
OiBEbyB3ZSBuZWVkIHRvIGNvbnNpZGVyIGRzdF9tb2RlX2JpdHMgaGVyZT8gICovCiAgIGlm
ICghIHNldF9wcm9jZXNzX3NlY3VyaXR5X2N0eCAoc3JjX25hbWUsIGRzdF9uYW1lLCBzcmNf
bW9kZSwgbmV3X2RzdCwgeCkpCiAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmIC8qIEhBVkVf
U0VMSU5VWF9TRUxJTlVYX0ggKi8KIAogICBpZiAoU19JU0RJUiAoc3JjX21vZGUpKQogICAg
IHsKZGlmZiAtdXIgc3JjL2xvY2FsLm1rIHNyYy9sb2NhbC5tawotLS0gc3JjL2xvY2FsLm1r
CTIwMTktMDMtMDQgMDk6MzY6MzMgKzAwMDAKKysrIHNyYy9sb2NhbC5tawkyMDE5LTA1LTA4
IDE1OjQwOjUwICswMDAwCkBAIC00MzEsOCArNDMxLDggQEAKICMgTm90ZSBsaWJzdGRidWYg
aXMgb25seSBjb21waWxlZCBpZiBHQ0MgaXMgYXZhaWxhYmxlCiAjIChhcyBwZXIgdGhlIGNo
ZWNrIGluIGNvbmZpZ3VyZS5hYyksIHNvIHRoZXNlIGZsYWdzIHNob3VsZCBiZSBhdmFpbGFi
bGUuCiAjIGxpYnRvb2wgaXMgcHJvYmFibHkgcmVxdWlyZWQgdG8gcmVsYXggdGhpcyBkZXBl
bmRlbmN5Lgotc3JjX2xpYnN0ZGJ1Zl9zb19MREZMQUdTID0gLXNoYXJlZAotc3JjX2xpYnN0
ZGJ1Zl9zb19DRkxBR1MgPSAtZlBJQyAkKEFNX0NGTEFHUykKK3NyY19saWJzdGRidWZfc29f
TERGTEFHUyA9IC1iCitzcmNfbGlic3RkYnVmX3NvX0NGTEFHUyA9ICt6ICQoQU1fQ0ZMQUdT
KQogCiBCVUlMVF9TT1VSQ0VTICs9IHNyYy9jb3JldXRpbHMuaAogaWYgU0lOR0xFX0JJTkFS
WQpkaWZmIC11ciBzcmMvbWtmaWZvLmMgc3JjL21rZmlmby5jCi0tLSBzcmMvbWtmaWZvLmMJ
MjAxOS0wMS0wNSAxMTozNjoyMiArMDAwMAorKysgc3JjL21rZmlmby5jCTIwMTktMDUtMDgg
MTc6MjU6MzcgKzAwMDAKQEAgLTIwLDcgKzIwLDkgQEAKICNpbmNsdWRlIDxzdGRpby5oPgog
I2luY2x1ZGUgPGdldG9wdC5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2lmIEhBVkVf
U0VMSU5VWF9TRUxJTlVYX0gKICNpbmNsdWRlIDxzZWxpbnV4L3NlbGludXguaD4KKyNlbmRp
ZiAvKiBIQVZFX1NFTElOVVhfU0VMSU5VWF9IICovCiAKICNpbmNsdWRlICJzeXN0ZW0uaCIK
ICNpbmNsdWRlICJkaWUuaCIKQEAgLTgwLDcgKzgyLDkgQEAKICAgY2hhciBjb25zdCAqc3Bl
Y2lmaWVkX21vZGUgPSBOVUxMOwogICBpbnQgZXhpdF9zdGF0dXMgPSBFWElUX1NVQ0NFU1M7
CiAgIGludCBvcHRjOworI2lmIEhBVkVfU0VMSU5VWF9TRUxJTlVYX0gKICAgY2hhciBjb25z
dCAqc2NvbnRleHQgPSBOVUxMOworI2VuZGlmIC8qIEhBVkVfU0VMSU5VWF9TRUxJTlVYX0gg
Ki8KICAgYm9vbCBzZXRfc2VjdXJpdHlfY29udGV4dCA9IGZhbHNlOwogCiAgIGluaXRpYWxp
emVfbWFpbiAoJmFyZ2MsICZhcmd2KTsKQEAgLTk4LDYgKzEwMiw3IEBACiAgICAgICAgIGNh
c2UgJ20nOgogICAgICAgICAgIHNwZWNpZmllZF9tb2RlID0gb3B0YXJnOwogICAgICAgICAg
IGJyZWFrOworI2lmIEhBVkVfU0VMSU5VWF9TRUxJTlVYX0gKICAgICAgICAgY2FzZSAnWic6
CiAgICAgICAgICAgaWYgKGlzX3NtYWNrX2VuYWJsZWQgKCkpCiAgICAgICAgICAgICB7CkBA
IC0xMTgsNiArMTIzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIml0IHJlcXVpcmVz
IGFuIFNFTGludXgvU01BQ0stZW5hYmxlZCBrZXJuZWwiKSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogSEFWRV9TRUxJTlVYX1NFTElOVVhfSCAqLwog
ICAgICAgICBjYXNlX0dFVE9QVF9IRUxQX0NIQVI7CiAgICAgICAgIGNhc2VfR0VUT1BUX1ZF
UlNJT05fQ0hBUiAoUFJPR1JBTV9OQU1FLCBBVVRIT1JTKTsKICAgICAgICAgZGVmYXVsdDoK
QEAgLTEzMSw2ICsxMzcsNyBAQAogICAgICAgdXNhZ2UgKEVYSVRfRkFJTFVSRSk7CiAgICAg
fQogCisjaWYgSEFWRV9TRUxJTlVYX1NFTElOVVhfSAogICBpZiAoc2NvbnRleHQpCiAgICAg
ewogICAgICAgaW50IHJldCA9IDA7CkBAIC0xNDQsNiArMTUxLDcgQEAKICAgICAgICAgICAg
ICBfKCJmYWlsZWQgdG8gc2V0IGRlZmF1bHQgZmlsZSBjcmVhdGlvbiBjb250ZXh0IHRvICVz
IiksCiAgICAgICAgICAgICAgcXVvdGUgKHNjb250ZXh0KSk7CiAgICAgfQorI2VuZGlmIC8q
IEhBVkVfU0VMSU5VWF9TRUxJTlVYX0ggKi8KIAogICBuZXdtb2RlID0gTU9ERV9SV19VR087
CiAgIGlmIChzcGVjaWZpZWRfbW9kZSkKZGlmZiAtdXIgc3JjL3N5c3RlbS5oIHNyYy9zeXN0
ZW0uaAotLS0gc3JjL3N5c3RlbS5oCTIwMTktMDEtMDUgMTE6MzY6MjIgKzAwMDAKKysrIHNy
Yy9zeXN0ZW0uaAkyMDE5LTA1LTA4IDE1OjE5OjI5ICswMDAwCkBAIC00MjIsNiArNDIyLDEw
IEBACiAjIGVuZGlmCiAjZW5kaWYKIAorI2lmbmRlZiBfX0dOVUNfXworI2RlZmluZSBfX2F0
dHJpYnV0ZSh4KSAvKiBlbXB0eSAqLworI2VuZGlmCisKICNpZm5kZWYgQVRUUklCVVRFX05P
UkVUVVJOCiAjIGRlZmluZSBBVFRSSUJVVEVfTk9SRVRVUk4gX19hdHRyaWJ1dGVfXyAoKF9f
bm9yZXR1cm5fXykpCiAjZW5kaWYKLS0tIGNvbmZpZ3VyZS5hYwkyMDE5LTAzLTA0IDA4OjQw
OjU1ICswMDAwCisrKyBjb25maWd1cmUuYWMJMjAxOS0wNS0wOCAxNTo0MDo0MSArMDAwMApA
QCAtNDgxLDggKzQ4MSw4IEBACiBnbF9XQVJOX0FERChbLWVycndhcm5dLCBbQ0ZMQUdTXSkK
ICMgUHV0IHRoaXMgbWVzc2FnZSBoZXJlLCBhZnRlciBnbF9XQVJOX0FERCdzIGNoYXR0ZXIu
CiBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhpcyBzeXN0ZW0gc3VwcG9ydHMgc3RkYnVm
XSkKLUNGTEFHUz0iLWZQSUMgJENGTEFHUyIKLUxERkxBR1M9Ii1zaGFyZWQgJExERkxBR1Mi
CitDRkxBR1M9Iit6ICRDRkxBR1MiCitMREZMQUdTPSItYiAkTERGTEFHUyIKIHN0ZGJ1Zl9z
dXBwb3J0ZWQ9bm8KICMgTm90ZSB3ZSBvbmx5IExJTksgaGVyZSByYXRoZXIgdGhhbiBSVU4g
dG8gc3VwcG9ydCBjcm9zcyBjb21waWxhdGlvbgogQUNfTElOS19JRkVMU0UoCi0tLSBidWls
ZC1hdXgvZ2VuLWxpc3RzLW9mLXByb2dyYW1zLnNoCTIwMTktMDUtMDggMTg6MDc6MjEgKzAw
MDAKKysrIGJ1aWxkLWF1eC9nZW4tbGlzdHMtb2YtcHJvZ3JhbXMuc2gJMjAxOS0wNS0wOCAx
NjoyNzoyMSArMDAwMApAQCAtNDIsNyArNDIsNiBAQAogIyBiZSBidWlsZGFibGUgd2l0aG91
dCBwcm9ibGVtcyBvbiBhbnkgdGFyZ2V0IHN5c3RlbS4KIG5vcm1hbF9wcm9ncz0nCiAgICAg
WwotICAgIGIyc3VtCiAgICAgYmFzZTY0CiAgICAgYmFzZTMyCiAgICAgYmFzZW5jCg==
--------------CF13B4556E5C6122759E6339--




Acknowledgement sent to "Osipov, Michael" <michael.osipov@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-coreutils@HIDDEN. Full text available.
Report forwarded to bug-coreutils@HIDDEN:
bug#35650; Package coreutils. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sat, 11 May 2019 22:00:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.