Debian Patches

Status for libaio/0.3.113-8

Patch Description Author Forwarded Bugs Origin Last update
0001-harness-use-off64_t-instead-of-off_t-in-test-23.t-EI.patch [PATCH libaio 01/26] harness: use off64_t instead of off_t in test 23.t (EINVAL on 32-bit) Andreas Baumann <mail@andreasbaumann.cc> no 2022-06-02
0002-man-Fix-typos.patch [PATCH libaio 02/26] man: Fix typos Guillem Jover <guillem@hadrons.org> yes vendor 2021-10-10
0003-build-Update-.gitignore-for-the-harness-artifacts.patch [PATCH libaio 03/26] build: Update .gitignore for the harness artifacts Guillem Jover <guillem@hadrons.org> no 2024-03-05
0004-build-Fix-DESTDIR-and-pathname-variables-handling.patch [PATCH libaio 04/26] build: Fix DESTDIR and pathname variables handling

The convention for DESTDIR is that it is only prefixed during the
install target. In this case we postpone that to the inner Makefile
so that it can be invoked directly while preserving the expected
semantics. We should also prefer the user specified pathname variables
if already set in any way, and do not need to pass them explicitly
to the sub-make.
Guillem Jover <guillem@hadrons.org> no 2020-04-12
0005-build-Honor-user-build-flags.patch [PATCH libaio 05/26] build: Honor user build flags
CPPFLAGS, CFLAGS and LDFLAGS are user flags, which we need to preserve,
regardless of the user passing them over the environment or the
command-line. Any required flag that the build system needs, has to be
set in some other flag (which we will namespace with «MK_») so that the
build will use even if the user flags are passed, even though the user
should be able to override by appending after them. We pass CPPFLAGS to
any compilation command that missed them.
Guillem Jover <guillem@hadrons.org> no 2020-04-12
0006-build-Remove-all-test-artifacts-on-clean.patch [PATCH libaio 06/26] build: Remove all test artifacts on clean
We create these artifacts when running the test suite, so should remove
them when running the clean target.
Guillem Jover <guillem@hadrons.org> no 2023-08-06
0007-Move-semicolon-to-SYMVER-and-DEFSYMVER-call-sites.patch [PATCH libaio 07/26] Move semicolon to SYMVER and DEFSYMVER call sites

These look like function macros, so let's unify their call sites to use
function syntax with a final semicolon.
Guillem Jover <guillem@hadrons.org> yes vendor 2021-11-03
0008-Use-new-symver-function-attribute-to-support-LTO-bui.patch [PATCH libaio 08/26] Use new symver function attribute to support LTO builds

The LTO support cannot work properly when there are versioned symbols
via asm statements, as those are not seen by the compiler. Use the new
function attributes if supported instead of the asm statements.

We need to move the SYMVER calls after the function definitions
otherwise it will reference symbols not yet seen.
Guillem Jover <guillem@hadrons.org> yes vendor 2021-11-02
0009-Remove-unused-vsys_def.h.patch [PATCH libaio 09/26] Remove unused vsys_def.h
This was an old header to handle the syscalls, which is not used anymore
since commit 34c539fcb98c4397b9f04e93f8a475a9e445cf33.
Guillem Jover <guillem@hadrons.org> no 2024-03-01
0010-Remove-unused-raw_syscall.c.patch [PATCH libaio 10/26] Remove unused raw_syscall.c
The ia64_aio_raw_syscall assembler function was replaced by the
__ia64_raw_syscall in commit a4984400f1d40c3cd9353ee2d817271c0fa3b4bd.

The hand-crafted syscalls for all architectures then got removed
in commit 97fd3fc0195500e616e34047cba4846164c411d9.

This file has not actually been used for a while, so we can drop it.
Guillem Jover <guillem@hadrons.org> no 2024-03-01
0011-Wrap-long-declarations-exceeding-80-columns.patch [PATCH libaio 11/26] Wrap long declarations exceeding 80 columns Guillem Jover <guillem@hadrons.org> no 2024-03-03
0012-syscall-Fix-ARM-definitions-to-match-exactly-the-ker.patch [PATCH libaio 12/26] syscall: Fix ARM definitions to match exactly the kernel

Otherwise we get preprocessor warnings due to the redefinitions.
Guillem Jover <guillem@hadrons.org> no 2020-04-12
0013-syscall-Fix-ia64-definitions-to-match-exactly-the-ke.patch [PATCH libaio 13/26] syscall: Fix ia64 definitions to match exactly the kernel

Otherwise we get preprocessor warnings due to the redefinitions.
Guillem Jover <guillem@hadrons.org> no 2020-04-12
0014-harness-Add-KERNEL_RW_POINTER-for-various-32-bit-arc.patch [PATCH libaio 14/26] harness: Add KERNEL_RW_POINTER for various 32-bit architectures Guillem Jover <guillem@hadrons.org> no 2019-08-14
0015-Fix-and-improve-MIPS-support.patch [PATCH libaio 15/26] Fix and improve MIPS support
Fix structure padding for MIPS 64, add syscall definitions, and the
kernel R/W pointer.
Guillem Jover <guillem@hadrons.org> no 2019-08-14
0016-Add-PARISC-support.patch [PATCH libaio 16/26] Add PARISC support Guillem Jover <guillem@hadrons.org> no 2019-08-14
0017-Add-m68k-support.patch [PATCH libaio 17/26] Add m68k support Guillem Jover <guillem@hadrons.org> no 2019-08-14
0018-Add-SH-support.patch [PATCH libaio 18/26] Add SH support Nobuhiro Iwamatsu <iwamatsu@nigauri.org> no 2020-04-12
0019-Add-x32-support.patch [PATCH libaio 19/26] Add x32 support Guillem Jover <guillem@hadrons.org> no 2020-04-12
0020-Rename-sigset-struct-from-data-to-aio_sigset.patch [PATCH libaio 20/26] Rename sigset struct from data to aio_sigset
This makes the purpose more clear, and matches the naming in the aio
syscall implementation in Linux.
Guillem Jover <guillem@hadrons.org> no 2024-03-05
0021-Add-time64-syscall-support.patch [PATCH libaio 21/26] Add time64 syscall support
This implements both io_getevents() and io_pgetevents() as wrappers over
the new aio_getevents() and aio_pgetevents() which use __kernel_timespec
as its timespec data type which should always be 64-bit. We add the
necessary conversion from __kernel_old_timespec or timsepec struct
types.
Guillem Jover <guillem@hadrons.org> no 2024-03-01
0022-Add-time64-public-functions-on-32-bit-architectures.patch [PATCH libaio 22/26] Add time64 public functions on 32-bit architectures

This adds new time64 functions for io_getevents() and io_pgetevents()
that will get redirected when building with _TIME_BITS=64.

Ideally we should generate the .map file and not include these symbols
on 64-bit architectures, but this will do for now.
Guillem Jover <guillem@hadrons.org> no 2024-03-01
0023-Fix-io_pgetevents-syscall-wrapper-on-32-bit-userland.patch [PATCH libaio 23/26] Fix io_pgetevents() syscall wrapper on 32-bit userland on 64-bit kernels

The kernel compat syscall in the kernel got introduced with a broken
layout, which requires a pointer to the actual sigset_t variable but
with the size of the running kernel, not the size of the compat code.

This means that when the wrapper sends the expected compat (32-bit)
pointer, the kernel reads a 64-bit pointer, eating with it also the
sigset size member. And then proceeds to fail the comparison of the
sigset_t size and returns EINVAL.

This really needs to be fixed in the kernel, as there's no apparent
user of the broken compat layout (from codesearch.debian.org, nor a
quick github.com search). But we have to workaround it in libaio so
that we can use kernels that have not yet been fixed.

We do that, by trying the non-broken layout (that would be used with
a 32-bit userland on a 32-bit kernel), and if that fails with -EINVAL
we retry with a structure padded to what the kernel expects.
Guillem Jover <guillem@hadrons.org> not-needed vendor 2019-08-16
0024-Disable-io_pgetevents_time64-as-it-is-broken-on-64-b.patch [PATCH libaio 24/26] Disable io_pgetevents_time64 as it is broken on 64-bit kernel 32-bit userland

On 64-bit kernels running 32-bit userland, this syscall misbehaves
when passing a sigmask by always returning -EINVAL. This works on 32-bit
kernels. The syscall entry point is possible wrong and needs to be fixed
in the kernel. For now disable as the code is handling clean 64-bit time_t
and the timeout is relative anyway.

Once this is fixed in the kernel, and after enough time has passed we
can decide whether to enable this.
Guillem Jover <guillem@hadrons.org> not-needed vendor 2024-03-05
0025-build-Use-a-temporary-SONAME-bump-to-avoid-stomping-.patch [PATCH libaio 25/26] build: Use a temporary SONAME bump to avoid stomping over upstream ABI

We are using a different SONAME in case upstream wants to see a
different implementation for the newly added symbols. Where we then can
easily revert to the original SONAME. If upstream takes the symbols as
is, then we can simply create a compat symlink.
Guillem Jover <guillem@hadrons.org> not-needed vendor 2024-03-04
0026-harness-Disable-failing-test-23.patch [PATCH libaio 26/26] harness: Disable failing test 23
This new test fails on several architectures. But it is a new test
intended to check for a Linux kernel regression, so we are not worse
off than were before. Add it to the EXTRACASES variables, which has
currently the side effect of disabling it, as it is not handled
explicitly in the make target responsible for that variable.

This is probably not needed anymore with the off64_t fix in upstream,
but let's not try to revert this now while the time64 transition is
ongoing.
Guillem Jover <guillem@hadrons.org> not-needed vendor 2022-04-19
0001-harness-Hardcode-list-of-ports-that-cannot-check-PRO.patch [PATCH libaio] harness: Hardcode list of ports that cannot check PROT_WRITE is readable

On these ports, the write() check does not work, so we need to hardcode
the list.
Guillem Jover <guillem@hadrons.org> no 2024-03-06

All known versions for source package 'libaio'

Links