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
o...@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
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org

Reply via email to