Control: retitle -1 gtk3-nocsd: secondary arch libraries aren't installed by default, causes unnecessary warnings
Control: tags -1 + confirmed help

Am 2016-05-10 13:24, schrieb Vincent Lefevre:
After compiling a program with "gcc -m32", running this program
yields:

ERROR: ld.so: object 'libgtk3-nocsd.so.0' from LD_PRELOAD cannot be
preloaded (cannot open shared object file): ignored.

on stderr. This is an annoying error message, which can also break
scripts that check error output.

Yes, so the problem is that gtk3-nocsd sets LD_PRELOAD=libgtk3-noscd.so.0. That means that ld.so tries to preload the library - and there's currently now way of telling ld.so to not print an error and simply ignore and entry
in LD_PRELOAD if it can't load it. (And you only have the amd64 version
installed.)

(For this reason the library is installed as mode 4644, to make ld.so
preload it even if the binary is setuid/setgid/has fscaps, otherwise you'd
get the same message everytime you type 'ping' or 'su'. See the lintian
overrides of the package.)

gtk3-nocsd is Multi-Arch-aware though: you can install the libgtk3-nocsd0
package on i386 (in addition to the native arch one that's already
installed on your system) and the message will disappear. (gtk3-nocsd is
Arch: all, libgtk3-nocsd0 is Arch: any and M-A: same.)

Unfortunately, I have no good solution how to improve that:

gtk3-nocsd should be as transparent as possible.

I agree fully - but I don't really see a good way how to solve it.

1. There's no Depends/Recommends: pkg:all-enabled-archs in APT
2. There's no way of telling ld.so "yeah, it's fine if this LD_PRELOAD
   fails, just try it and if it doesn't work silently ignore it"

I could of course add a postinst debconf prompt to gtk3-nocsd so that if
multiple architectures are installed, but gtk3-nocsd isn't, the user gets
a message and is asked to install libgtk3-nocsd0 for the other archs.
Would that be something you'd be OK with?

Do you have any other ideas?

Regards,
Christian

Reply via email to