Subject: Re: bug#8960: stdbuf on bi-arch systems

From: Bruno Haible <[email-masked]>
Date: Fri, 18 Jan 2019 19:09:40 +0100

Hi Assaf,

> >> The program 'stdbuf' on bi-arch x86 / x86_64 systems cannot work on all kinds
> >> of programs.
> [...]
> >> I would like to have a single binary that works on both x86 and x86_64 programs.
> [...]
> > if stdbuf sets both LD_PRELOAD_32 and LD_PRELOAD_64 to the
> > appropriate libstdbuf.so, it should just work.
> 
> It's been more than 7 years since last comments/progress on this issue.
> Is it still relevant / needed ?

Yes, it is still relevant:

  * Bi-arch systems are still frequent. Large packages are still often
    provided as 32-bit binaries, from some vendors.

  * The behaviour of stdbuf in coreutils-8.30 is still the same:

    $ /arch/x86-linux/gnu/bin/stdbuf -o 0 /bin/pwd
    ERROR: ld.so: object '/arch/x86-linux/gnu/libexec/coreutils/libstdbuf.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
    /home/bruno

    $ /arch/x86_64-linux/gnu/bin/stdbuf -o 0 /arch/x86-linux/gnu/bin/pwd
    ERROR: ld.so: object '/arch/x86_64-linux/gnu/libexec/coreutils/libstdbuf.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
    /home/bruno

  * The distributor (Ubuntu 16.04 in my case) has not fixed the problem either:

    $ /usr/bin/stdbuf --version
    stdbuf (GNU coreutils) 8.25
    ...

    $ /usr/bin/stdbuf -o 0 /arch/x86-linux/gnu/bin/pwd
    ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/coreutils/libstdbuf.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
    /home/bruno

Bruno