Hi,

On 2020-04-26 16:37, Julien Cristau wrote:
> On Sun, Feb 16, 2020 at 04:27:11PM +0000, Ben Hutchings wrote:
> > This was discussed on IRC with Julien Cristau, but unfortunately I
> > didn't save a log.  The main points that came up were:
> > 
> > * Executables built for the O32 FP64 ABI require this kernel config
> >   change and older kernel versions will refuse to load them.  So the
> >   kernel needs to be upgraded before installing any binaries built
> >   for the new FP ABI.
> > 
> > * Normally the support for an additional ABI would be included in
> >   release N.0 and used in N+1.  Since this was not present in 10.0, it
> >   would be possible for users to start upgrading to bullseye while
> >   still running a kernel that does not support O32 FP64.  We need to
> >   prevent them getting a broken system.
> > 
> > * Julien proposed that libc6 would have a preinst check on the kernel
> >   when it is changed to use the new FP ABI.  Presumably all binaries
> >   built for the new FP ABI should also have a versioned dependency on
> >   at least this version of libc6.
> > 
> > So I don't see any reason not to update the kernel configuration
> > already, as it will remain compatible with the O32 FPXX binaries in
> > buster.  Only the user-space changes in unstable (libc6 and toolchain)
> > need to be carefully coordinated.
> > 
> Here's the irc log for the record:
> 
> < bwh> jcristau: While you are here, could you have a quick look at #949259?
> < jcristau> that's kind of awkward
> < jcristau> maybe it's ok because it's only mips, but...
> < bwh> but what?
> < jcristau> well i'd normally expect bullseye to run on buster r0
> < jcristau> what's the failure mode if the kernel doesn't support O32_FP64?
> < bwh> syq_: Can you answer?
> < bwh> jcristau: It looks to me like exec will fail for programs built for 
> the new FP ABI
> < jcristau> so they'll need to get a dependency on a new libc with a preinst 
> check?
> < bwh> jcristau: That seems like a reasonable approach
> < bwh> that + prominent notice in the release notes
> < syq_> jcristau: it will complain that not support such binary
> < syq_> jcristau: if kernel doesn't enable FP64
> 
> I think you can go ahead provided that:
> - enabling this support in the kernel doesn't break previously-supported
>   userspace

I think it's fine enabling support for it in the stable kernel.

> - Aurélien as glibc maintainer is OK with this plan

Well I am not sure it can be handled at the glibc level:
- It's not clear to me how to detect the kernel support O32_FP64. We
  indeed have a check for the kernel version in the glibc preinst check
  in order to make sure all the syscalls used by the glibc are
  available. New syscalls are only added in major upstream kernel
  versions, so it's just fine to check for a minimum version.
  Now we are talking about a change that is introduced only in Debian
  kernels in a minor stable version. It's not clear to me which version
  to use in the preinst check given people can use backport kernels or
  use their own kernel.
- Not all binaries depends on glibc. go binaries for example do not
  depends on glibc. It's not clear to me if they will also start using
  the new FP ABI. If so I guess we need to add the same check in all
  their preinst scripts.

So overall it looks like something to me that should go in the release
notes instead, just like we do for an ISA level raise.

Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurel...@aurel32.net                 http://www.aurel32.net

Reply via email to