This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Question regarding minimal supported Linux kernel headers (now it is 3.2.0)
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Tue, 12 Nov 2019 12:26:17 -0300
- Subject: Re: Question regarding minimal supported Linux kernel headers (now it is 3.2.0)
- References: <20191112133953.0c3594ed@jawa> <alpine.DEB.2.21.1911121403360.30723@digraph.polyomino.org.uk>
On 12/11/2019 11:13, Joseph Myers wrote:
> On Tue, 12 Nov 2019, Lukasz Majewski wrote:
>
>> The pselect6 conversion has been postponed on purpose as microblaze
>> port gained support for pselect6 from Linux kernel 3.15. Between 3.2
>> (minimal supported glibc Linux headers) and 3.15 this syscall is
>> emulated and hence the generic code is convoluted.
>>
>> For the above reason the conversion of pselect6 has been postponed until
>> the minimal glibc's Linux headers are bumped to the version after 3.15.
>>
>> Dear community - when the minimal glibc version may be increased?
>>
>> Are there any guidelines when the minimal version shall be increased
>> (like once per X glibc releases) ?
>
> For pselect6, I suggest a preparatory change increasing the minimum
> version for microblaze only and removing the racy emulation code from
> glibc citing bug 9813, which could then be marked as FIXED with
> appropriate milestone set once the emulation code has been completely
> removed. (misc/pselect.c would change to an ENOSYS stub complete with
> stub_warning call.)
>
Another possibility, to avoid pessimization and make microblaze an outlier
regarding minimum kernel support (although I think we already have alpha
in this state) would be:
1. Move generic pselect as microblaze linux specific implementation.
2. Clean-up linux implementation to just use pselect6.
3. Set generic as default ENOSYS/stub and set bug 9813 fixed.
4. Base microblaze implementation on Linux generic and use fallback
only if it returns ENOSYS.
5. Remove __ASSUME_PSELECT6.
6. Implement __pselect6_time64 as __ppoll_time64. The microblaze will
just call the __pselec6 redefined as another symbol and use fallback
just if it returns ENOSYS. The generic __pselec6 will use the usual
path: __pselec6_time64 then __pselec6 if ENOSYS. This is a performance
hit on microblaze from kernel 3.2 to 3.15, but I think if pselect is
indeed required, it is also expected that an updated kernel would be
used.
Something like https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/azanella/pselect-time64