• Markaos@lemmy.one
    link
    fedilink
    arrow-up
    1
    ·
    1 month ago

    Your argument is to have 2 subtly incompatible abis and one day binaries magically break.

    Whereas your argument seems to be to have a special C variant for 32bit Linux - there’s no reason to have a special time64_t anywhere else.

    No program with time32_t will ever work after 2038, so any compiled that way are broken from compilation.

    Yeah, so what will breaking the ABI do? Break it a bit more?

    If you really want to be clever, mangle the symbols for the functions that handle time so they encode time64 as appropriate

    That’s what MUSL libc does, and the result is two subtly incompatible ABIs - statically linked programs are fine, but if a dynamically linked library exports any function with time_t parameter or return value, it will use whatever size was configured at build time and it becomes a part of its ABI. So fixing this properly would require every library that wants to pass time_t values in its API to implement its own name mangling. That’s not a reasonable request for a barely used platform (remember, this is just 32bit userland, 64bit was always unaffected).

    • InverseParallax@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      1
      ·
      1 month ago

      Great, then we just leave everything alone and say 32-bit user land is broken past 2038, doubt too many people are dying to run 32-bit userland after that, but if they are I can guarantee they’ll be running old binaries probably without source.

      • CarrotsHaveEars@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        1 month ago

        I might be selfish for saying so, but if anyone set up their mind to run anything on a 32-bit system after 2038, they must care enough to compile themselves, right? Any binaries compiled today will be EOL by then.

        • InverseParallax@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 month ago

          I think this is a reasonable assumption, but my experience suggests it will absolutely not be true for a lot of proprietary software.

          That being said, that stuff will only be supported on rhel which will bend over backwards to keep it sort of working somehow.