On Friday, 6 January 2017 03:51:42 IST Kevin Kofler wrote:
...
* I do not see any practical advantage of Debian multiarch over FHS
multilib.
Good question, multiarch is a huge win for *embedded* developers.
Let me give real life example from my $day job:
* We build stuff for arm and x86_64 (I ignore our legacy platforms
like x86, ppc, whatnot...)
* We cross compile most stuff (faster), but not everything is easily
cross-compilable:
- Notorious examples are libraries with their own code-generation tools.
- Examples: thrift, dbus-c++ (you need to *run* built tools)
- So we build some packages natively (either on real ARM or in chroot with
qemu-user-static).
* With old, non-multiarch scheme:
- Library packages compiled natively on ARM would be under /usr/lib.
- But they cannot be installed on the build machine, so I can cross-compile
applications against them.
- The workaround was to unpack them, relocate the libraries, headers, etc
to the prefix expected by cross compiler (e.g: /opt/toolchain/....) and
repack the result into an "all" architecture package.
* With multiarch distribution (Debian/jessie in my case):
- Everything is symetric. ARM libraries goes to /usr/lib/arm-linux-gnu
*regardless* if they were built natively or cross-compiled.
- These packages may be co-installed on my development host and be used
by the cross compiler.
- So I have an ARM repository, everything built (natively + cross) is uploaded
there and I can pull library dependencies into my build environment.
- And the *exact* same binary packages installed on the ARM target are
installed and being used by the cross compilers.
This is by far better and cleaner than the multilib, but:
* It is a very big change, far wider in scope than just library directories.
(pkg-config, cross-compilers, dynamic linking, rpath, packaging tools, etc.)
* Debian introduced it in Debian/wheezy (~2012) but the real benefits were
reaped only since Debian/jessie (~2015) when many libraries were already
pre-built as multiarch and Debian shipped a multiarch aware cross-compilers.
* So, I'm ambivalent here -- multiarch is great, but it's a big change and
I'm not sure it's worth it *for Fedora users*.
* Meanwhile, I'll keep using Fedora (KDE) as my personal workstation/server OS
but develop everything at $day job on Debian (KDE) and for Debian (targets).
Long live Linux ;-)
--
Oron Peled Voice: +972-4-8228492
oron(a)actcom.co.il
http://users.actcom.co.il/~oron
"Debugging is at least twice as hard as writing the program in the
first place. So if your code is as clever as you can possibly make
it, then by definition you're not smart enough to debug it."
-- Brian Kernighan