Re: Backport due to incorrect socket syscall definitions on s390x with Linux 4.3 headers.
- To: Stefan Liebler <stli@linux.vnet.ibm.com>
- Cc: ldv@altlinux.org, Allan McRae <allan@archlinux.org>, debian-glibc@lists.debian.org, Carlos O'Donell <carlos@redhat.com>, Siddhesh Poyarekar <siddhesh@redhat.com>, Florian Weimer <fweimer@redhat.com>, vapier@gentoo.org, raj.khem@gmail.com, schwab@suse.com, adconrad@ubuntu.com
- Subject: Re: Backport due to incorrect socket syscall definitions on s390x with Linux 4.3 headers.
- From: Aurelien Jarno <aurel32@debian.org>
- Date: Thu, 25 Feb 2016 16:41:04 +0100
- Message-id: <[🔎] 20160225154104.GA8144@aurel32.net>
- Mail-followup-to: Stefan Liebler <stli@linux.vnet.ibm.com>, ldv@altlinux.org, Allan McRae <allan@archlinux.org>, debian-glibc@lists.debian.org, Carlos O'Donell <carlos@redhat.com>, Siddhesh Poyarekar <siddhesh@redhat.com>, Florian Weimer <fweimer@redhat.com>, vapier@gentoo.org, raj.khem@gmail.com, schwab@suse.com, adconrad@ubuntu.com
- In-reply-to: <56CF1F2B.8060000@linux.vnet.ibm.com>
- References: <56CF1F2B.8060000@linux.vnet.ibm.com>
On 2016-02-25 16:35, Stefan Liebler wrote:
> Hi,
>
> Beginning with Linux 4.3, the kernel headers contain direct system call
> numbers __NR_socket etc. on s390x. On older kernels, the socket-multiplexer
> syscall __NR_socketcall was used.
>
> To enable these new syscalls, the patch
> "S390: Call direct system calls for socket operations."
> (https://sourceware.org/git/?p=glibc.git;a=commit;h=016495b818cb61df7d0d10e6db54074271b3e3a5)
> was applied upstream.
> If glibc 2.23 is configured with --enable-kernel=4.3 and newer,
> the direct socket syscalls are used.
> For older kernels, the socket-multiplexer syscall is used.
>
> In glibc 2.22 and earlier, this patch is currently not applied.
> If you build glibc on an kernel < 4.3, the socket-multiplexer syscall is
> used. But if you build glibc on kernel >= 4.3, the direct
> socket-syscalls are used. If you install this glibc on an
> kernel < 4.3, all socket operations will fail.
> See "Bug 19682 - s390x: Incorrect syscall definitions cause breakage with
> Linux 4.3 headers" (https://sourceware.org/bugzilla/show_bug.cgi?id=19682)
> The configure switch --enable-kernel does not influence this behaviour on
> older glibc-releases.
>
> The solution is to remove the direct socket-syscalls in
> sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (see attached patch) on
> older glibc-releases as it was done by the upstream patch, too. These
> entries were never used on s390x, but the c-files in
> sysdeps/unix/sysv/linux/.
> After this removal, the behaviour of the socket functions are not changed
> compared to the original glibc release version and the
> socket-multiplexer-syscall is always used.
>
> Florian Weimer told me, that he already did this for Fedora 23 (glibc 2.22)
> and Fedora 22 (glibc 2.21).
> Thus, backporting this to glibc branch 2.22, and 2.21 would be the best for
> Fedora.
>
> Which other glibc-branches should be updated???
>
> Please give feedback.
For debian we already applied the fix on our 2.21 and 2.22 packaging.
Therefore a backport to these branches would indeed be appreciated.
Aurelien
--
Aurelien Jarno GPG: 4096R/1DDD8C9B
aurelien@aurel32.net http://www.aurel32.net
Reply to: