Bug 1335925

Summary: glibc: Fix aarch64 ABI issues
Product: Red Hat Enterprise Linux 7 Reporter: Florian Weimer <fweimer>
Component: glibcAssignee: Florian Weimer <fweimer>
Status: CLOSED ERRATA QA Contact: Arjun Shankar <ashankar>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.3CC: ashankar, codonell, fweimer, mcermak, mnewsome, pfrankli, yselkowi
Target Milestone: rcKeywords: Patch
Target Release: ---   
Hardware: aarch64   
OS: Unspecified   
Whiteboard:
Fixed In Version: glibc-2.17-135.el7 Doc Type: No Doc Update
Doc Text:
undefined
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-03 08:32:06 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1335629, 1346397    
Bug Blocks: 1277314    

Description Florian Weimer 2016-05-13 14:32:54 UTC
We need to backport several patches from glibc upstream to maintain ABI compatibility with upstream.

The patches identified so far are (the first one is minor):

commit 5c40c3bab2fddaca8cfe12d75944d1fef8adf1a4
Author: Alan Hayward <alan.hayward>
Date:   Tue Nov 11 16:32:34 2014 +0000

     [AArch64] Add ipc.h.

     Adding ipc.h for AArch64 adjusted to behave correctly on big endian
     targets.

commit 14d623bcd178d336b47fdb4f0c973720d56d907c
Author: Szabolcs Nagy <nsz>
Date:   Thu Jul 9 09:39:51 2015 +0100

     [AArch64][BZ 18400] fix elf_prpsinfo in procfs.h

     Kernel uses int pr_uid, pr_gid, but glibc used unsigned short.

     This is an ABI breaking change, but the size and alignment of
     the struct and the layout of other members is not changed and
     there is no known usage of pr_uid and pr_gid so it is expected
     to be safe.

         [BZ #18400]
         * sysdeps/unix/sysv/linux/aarch64/sys/procfs.h (struct elf_prpsinfo):
         Fix pr_uid and pr_gid members.

commit b8528e771c0f31ebb8ac2470e2cf7ee9a50693e2
Author: Szabolcs Nagy <nsz>
Date:   Thu Jul 9 09:53:30 2015 +0100

     [AArch64][BZ 18648] change greg_t definition in ucontext.h

     This is an ABI breaking change, but

         typedef int greg_t;

     is not a useful definition on aarch64.

     greg_t is usually used for defining gregset_t which is used
     in mcontext_t.  The general registers in mcontext_t can only
     be accessed by target specific code and on aarch64 greg_t
     is not needed for that so this change is not supposed to break
     existing code, just fix the definition.

         [BZ #18648]
         * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h (greg_t): Change the
         definition to elf_greg_t.

     (Added another BZ entry that was missed in the previous commit).


This seems to be also worth having (the ABI impact is very indirect, though):

commit 2b1d7148e3664eeb177ae2fc91bf282d75da7623
Author: Szabolcs Nagy <nsz>
Date:   Mon Jul 6 12:46:43 2015 +0100

     [AArch64] make setcontext etc functions consistent with the kernel

Comment 2 Yaakov Selkowitz 2016-05-17 21:29:43 UTC
Can bug 1221046 be fixed as well?

Comment 6 errata-xmlrpc 2016-11-03 08:32:06 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2016-2573.html