Shipping libc6:i386 in the amd64 images would be useful
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Snappy | Status tracked in Trunk | |||||
15.04 |
Fix Released
|
Undecided
|
Oliver Grawert | |||
Trunk |
Fix Released
|
Undecided
|
Oliver Grawert |
Bug Description
Without /lib/ld-linux.so.2 in the base image, 32-bit executables can't be loaded. There are some hacks to get around that:
1) Mangle ELF headers to point at an ld.so you ship with your snap (no tool support for it and super hacky anyway)
2) Use overlayfs (not ready yet)
3) Use a kernel hook to swap out which ld.so gets run (requires privileges)
4) Prefix your 32-bit command with the full path to an ld.so you ship with your snap (doesn't get inherited by subprocesses)
So none of those are quite ideal. libc6:i386 is about 10M on my system. So it's not tiny. But it's the easiest/best way to allow 32-bit executables in snappy.
It doesn't seem so unreasonable that ISVs would want to throw some old 32-bit executable in a snap.
Related branches
affects: | snappy-ubuntu → snappy |
(Actually, my dumb ld_preload scripts may be able to work around this by doing #4 but handling subprocesses during an intercepted execve call.)