Hey Simon,

Simon McVittie wrote:
>On Tue, 04 Feb 2020 at 13:14:10 +0000, Steve McIntyre wrote:
>> Arnd scanned the library packages in the Debian archive and identified
>> that about one third of our library packages would need rebuilding
>> (and tracking) to make a (recursive) transition.
>
>Is a list of affected/unaffected packages available? (I know they'll
>be long lists.) Depending on how high up the stack they are, the right
>approach might change.

I don't have the list, I'm afraid. Arnd?

>Thinking about i386 specifically, since the tradeoffs for that architecture
>are likely to be a little different due to the prevalence of proprietary
>binaries, the use-cases I am aware of are:
>
>- Old hardware that doesn't implement amd64.
>  Breaking ABI would help here, but equally, this use-case seems likely
>  to go away "naturally" in the next 10? years (and for example Ubuntu is
>  already relegating i386 to a second-class-citizen status as a multiarch
>  library stack on amd64 systems, with no kernel or full bootable OS).
>
>- amd64-capable machines that have inherited a legacy i386 installation
>  because their owner doesn't want to reinstall or sidegrade to amd64.
>  Breaking the i386 ABI seems like it would be counterproductive here:
>  they'll still need to reinstall or sidegrade, and sidegrading from
>  i386 to i386t would probably be very crash-prone, since those will
>  presumably both have to be represented by ELF32 x86 binaries?
>
>- 32-bit Wine (to run 32-bit Windows programs).
>  On the Unix side, breaking ABI would maybe help. On the Windows side,
>  Wine needs to match whatever Microsoft does to solve this problem
>  (apparently time_t already defaults to 64-bit on Windows, but older
>  binaries will presumably use 32-bit time_t forever).

Hmmm. I didn't think Microsoft used *time_t* as such, but had their
own 64-bit format based on an epoch in ~1600?

>- Running old proprietary or otherwise sourceless binaries (e.g. games).
>  Breaking ABI is counterproductive: we can't recompile the games anyway.
>  Some solutions for running these (e.g. the Steam Runtime used by Steam)
>  rely on host libraries being approximately ABI-compatible with the ones
>  the binaries were compiled against, because they need to fetch graphics
>  drivers and their dependencies from the host system, otherwise they
>  could not work on recent GPUs (although by 2038, with faster CPUs, we'll
>  hopefully be able to run 2010s games at acceptable performance with
>  software rendering like llvmpipe, which would sidestep this issue).
>  (See the slides/video from my recent FOSDEM talk for more details)

ACK. I'm in agreement here. I also personally don't see the same
benefit to doing a 64-bit time_t transition for i386, using any of the
models we've suggested. It's a legacy ABI that we should explicitly
warn people will break. Have the Steam folks considered this issue at
all yet, OOC?

armhf is a different kettle of fish, without the same set of legacy
binaries. There are *many* legacy proprietary binaries for the
architecture, but the only ones that really matter are on other
platforms (Android or iOS) and really not our problem here. :-)

-- 
Steve McIntyre, Cambridge, UK.                                st...@einval.com
  Armed with "Valor": "Centurion" represents quality of Discipline,
  Honor, Integrity and Loyalty. Now you don't have to be a Caesar to
  concord the digital world while feeling safe and proud.

Reply via email to